@tscircuit/schematic-trace-solver 0.0.159 → 0.0.161

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/index.d.ts +43 -9
  2. package/dist/index.js +807 -115
  3. package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +210 -6
  4. package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +536 -94
  5. package/lib/solvers/InlineNetLabelSolver/pushAnchoredNetLabelsAwayFromInlineLabels.ts +9 -7
  6. package/lib/solvers/InlineNetLabelSolver/pushInlineTerminalLabelsAwayFromAnchoredLabels.ts +295 -0
  7. package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +7 -35
  8. package/lib/solvers/SchematicTraceLinesSolver/getTraceConnectedPinComponents.ts +60 -0
  9. package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/getFixedLabelCoordinate.ts +44 -13
  10. package/lib/types/InputProblem.ts +5 -4
  11. package/package.json +1 -1
  12. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +1 -1
  13. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +1 -1
  14. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +79 -79
  15. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +85 -85
  16. package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +1 -1
  17. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +163 -163
  18. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +547 -547
  19. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +13 -13
  20. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +267 -267
  21. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +267 -267
  22. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +109 -109
  23. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +1 -1
  24. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +49 -49
  25. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +1 -1
  26. package/tests/bug-reports/bug-report-20260825T045913Z/__snapshots__/bug-report-20260825T045913Z.snap.svg +103 -103
  27. package/tests/bug-reports/bug-report-20260825T103621Z/__snapshots__/bug-report-20260825T103621Z.snap.svg +103 -103
  28. package/tests/bug-reports/bug-report-20260826T072956Z/__snapshots__/bug-report-20260826T072956Z.snap.svg +600 -792
  29. package/tests/bug-reports/bug-report-20260826T072956Z/bug-report-20260826T072956Z.test.ts +66 -1
  30. package/tests/examples/__snapshots__/example51.snap.svg +568 -568
  31. package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +16 -1
  32. package/tests/fixtures/convertSolverOutputToCircuitJson.ts +23 -12
  33. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +736 -736
  34. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +79 -79
  35. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +127 -127
  36. package/tests/repros/__snapshots__/repro-bluetooth-controller-ground-decoupling-groups.snap.svg +106 -0
  37. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +31 -31
  38. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +121 -121
  39. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +43 -43
  40. package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +19 -19
  41. package/tests/repros/__snapshots__/repro-core-ground-inline-label-fallback.snap.svg +277 -0
  42. package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +19 -19
  43. package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +7 -7
  44. package/tests/repros/__snapshots__/repro-dc-power-isolated-routing.snap.svg +37 -37
  45. package/tests/repros/__snapshots__/repro-hdc2080-ground-label-alignment.snap.svg +137 -0
  46. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +61 -61
  47. package/tests/repros/__snapshots__/repro-pga300-redundant-ground-traces.snap.svg +115 -115
  48. package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +743 -743
  49. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +43 -43
  50. package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +1 -1
  51. package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +17 -17
  52. package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1131 -1131
  53. package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +7 -7
  54. package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +7 -7
  55. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +666 -666
  56. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +73 -73
  57. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +73 -73
  58. package/tests/repros/assets/repro-bluetooth-controller-ground-decoupling-groups.input.json +214 -0
  59. package/tests/repros/assets/repro-core-ground-inline-label-fallback.input.json +863 -0
  60. package/tests/repros/repro-bluetooth-controller-ground-decoupling-groups.test.ts +18 -0
  61. package/tests/repros/repro-core-ground-inline-label-fallback.test.ts +34 -0
  62. package/tests/repros/repro-hdc2080-ground-label-alignment.test.ts +239 -0
  63. package/tests/repros/repro-tida010076-j4-ground-bus.test.ts +14 -10
  64. package/tests/repros/repro-tida010076-page02.test.ts +2 -2
  65. package/tests/repros/repro-usb-power-vbus-label-detour.test.ts +14 -0
  66. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +1 -1
  67. package/tests/solvers/InlineNetLabelSolver/multi-pin-connected-components.test.ts +252 -0
  68. package/tests/solvers/InlineNetLabelSolver/opposite-side-placement.test.ts +71 -0
  69. package/tests/solvers/InlineNetLabelSolver/push-anchored-net-labels-away.test.ts +8 -2
  70. package/tests/solvers/InlineNetLabelSolver/push-inline-terminal-labels-away.test.ts +91 -0
  71. package/tests/solvers/InlineNetLabelSolver/two-pin-terminal-stubs-atomic.test.ts +7 -1
@@ -72,27 +72,27 @@ orientation: y+" data-x="-3.541" data-y="1.9509999999999998" cx="211.34932100548
72
72
  .port-label { fill: rgb(0, 100, 100); }
73
73
  .component-name { fill: rgb(0, 100, 100); }
74
74
 
75
- </style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 341.56626506005 285.0542168673999 L 323.49397590342005 285.0542168673999 L 323.49397590342005 208.24698795172242 L 706.6265060239759 208.24698795172242 L 706.6265060239759 285.0542168673999 L 724.698795180606 285.0542168673999" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="28.915662650608002px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 341.56626506005 285.0542168673999 L 323.49397590342005 285.0542168673999 L 323.49397590342005 208.24698795172242 L 706.6265060239759 208.24698795172242 L 706.6265060239759 285.0542168673999 L 724.698795180606 285.0542168673999" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6144578313260003px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 522.28915662635 285.0542168673999 L 703.01204819265 285.0542168673999 L 703.01204819265 556.1385542168499 L 666.86746987939 556.1385542168499" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="28.915662650608002px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 522.28915662635 285.0542168673999 L 703.01204819265 285.0542168673999 L 703.01204819265 556.1385542168499 L 666.86746987939 556.1385542168499" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6144578313260003px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 862.048192770994 285.0542168673999 L 905.6024096384722 285.0542168673999 L 905.6024096384722 239.69277108425865" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="28.915662650608002px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 862.048192770994 285.0542168673999 L 905.6024096384722 285.0542168673999 L 905.6024096384722 239.69277108425865" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6144578313260003px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 558.43373493961 556.1385542168499 L 514.8795180721316 556.1385542168499 L 514.8795180721316 474.6325301204487" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="28.915662650608002px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 558.43373493961 556.1385542168499 L 514.8795180721316 556.1385542168499 L 514.8795180721316 474.6325301204487" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.6144578313260003px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="413.85542168657" y="226.31927710835237" width="36.14457831326001" height="117.46987951809507" stroke-width="3.6144578313260003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="413.85542168657" y="226.31927710835237" width="36.14457831326001" height="117.46987951809507" fill="transparent"/><text class="sch-text" x="431.9277108432" y="285.0542168673999" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="32.530120481934px" transform="rotate(0, 431.9277108432, 285.0542168673999)">schematic_component_0</text><line class="component-pin sch-component-pin sch-port-line" x1="413.85542168657" y1="285.0542168673999" x2="341.56626506005" y2="285.0542168673999" stroke-width="3.6144578313260003px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="337.951807228724" y="281.4397590360739" width="7.228915662652001" height="7.228915662652001" opacity="0"/></g><text class="pin-number sch-pin-number" x="377.71084337331" y="281.43975903607395" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.108433734945px" transform=""></text><text class="pin-number sch-pin-label" x="431.9277108432" y="285.0542168673999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="27.108433734945px" transform="">schematic_port_0</text><line class="component-pin sch-component-pin sch-port-line" x1="449.99999999983004" y1="285.0542168673999" x2="522.28915662635" y2="285.0542168673999" stroke-width="3.6144578313260003px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="518.6746987950239" y="281.4397590360739" width="7.228915662652001" height="7.228915662652001" opacity="0"/></g><text class="pin-number sch-pin-number" x="486.14457831308994" y="281.43975903607395" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.108433734945px" transform=""></text><text class="pin-number sch-pin-label" x="431.9277108432" y="285.0542168673999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.108433734945px" transform="">schematic_port_1</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="784.337349397485" y="239.87349397582489" width="18.07228915662995" height="90.36144578315003" stroke-width="3.6144578313260003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="784.337349397485" y="239.87349397582489" width="18.07228915662995" height="90.36144578315003" fill="transparent"/><text class="sch-text" x="793.3734939758" y="285.0542168673999" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="30.120481927716668px" transform="rotate(0, 793.3734939758, 285.0542168673999)">schematic_component_1</text><line class="component-pin sch-component-pin sch-port-line" x1="784.337349397485" y1="285.0542168673999" x2="724.698795180606" y2="285.0542168673999" stroke-width="3.6144578313260003px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="721.08433734928" y="281.4397590360739" width="7.228915662652001" height="7.228915662652001" opacity="0"/></g><text class="pin-number sch-pin-number" x="754.5180722890454" y="281.43975903607395" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.108433734945px" transform=""></text><text class="pin-number sch-pin-label" x="802.409638554115" y="285.0542168673999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="27.108433734945px" transform="">schematic_port_2</text><line class="component-pin sch-component-pin sch-port-line" x1="802.409638554115" y1="285.0542168673999" x2="862.048192770994" y2="285.0542168673999" stroke-width="3.6144578313260003px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="858.4337349396679" y="281.4397590360739" width="7.228915662652001" height="7.228915662652001" opacity="0"/></g><text class="pin-number sch-pin-number" x="832.2289156625545" y="281.43975903607395" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.108433734945px" transform=""></text><text class="pin-number sch-pin-label" x="784.337349397485" y="285.0542168673999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.108433734945px" transform="">schematic_port_3</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="603.6144578311851" y="480.23493975900396" width="18.072289156629836" height="151.807228915692" stroke-width="3.6144578313260003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="603.6144578311851" y="480.23493975900396" width="18.072289156629836" height="151.807228915692" fill="transparent"/><text class="sch-text" x="612.6506024094999" y="556.1385542168499" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="32.530120481934px" transform="rotate(0, 612.6506024094999, 556.1385542168499)">schematic_component_2</text><line class="component-pin sch-component-pin sch-port-line" x1="603.6144578311851" y1="556.1385542168499" x2="558.43373493961" y2="556.1385542168499" stroke-width="3.6144578313260003px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="554.8192771082839" y="552.5240963855239" width="7.228915662652001" height="7.228915662652001" opacity="0"/></g><text class="pin-number sch-pin-number" x="581.0240963853975" y="552.524096385524" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.108433734945px" transform=""></text><text class="pin-number sch-pin-label" x="621.6867469878149" y="556.1385542168499" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="27.108433734945px" transform="">schematic_port_4</text><line class="component-pin sch-component-pin sch-port-line" x1="621.6867469878149" y1="556.1385542168499" x2="666.86746987939" y2="556.1385542168499" stroke-width="3.6144578313260003px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="663.253012048064" y="552.5240963855239" width="7.228915662652001" height="7.228915662652001" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.2771084336025" y="552.524096385524" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.108433734945px" transform=""></text><text class="pin-number sch-pin-label" x="603.6144578311851" y="556.1385542168499" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.108433734945px" transform="">schematic_port_5</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="341.56626506005" cy="285.0542168673999" r="7.228915662652001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="522.28915662635" cy="285.0542168673999" r="7.228915662652001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="724.698795180606" cy="285.0542168673999" r="7.228915662652001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="862.048192770994" cy="285.0542168673999" r="7.228915662652001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="558.43373493961" cy="556.1385542168499" r="7.228915662652001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="666.86746987939" cy="556.1385542168499" r="7.228915662652001" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
76
- M 612.6506024094999,285.0542168673999
77
- L 630.7228915661299,294.81325301198007
78
- L 630.7228915661299,356.7891566264499
79
- L 594.57831325287,356.7891566264499
80
- L 594.57831325287,294.81325301198007
75
+ </style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 255.71105588675005 257.3889646668 L 233.28911227794015 257.3889646668 L 233.28911227794015 162.09570432935743 L 708.634316784712 162.09570432935743 L 708.634316784712 257.3889646668 L 731.056260393522 257.3889646668" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="35.875109774096px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 255.71105588675005 257.3889646668 L 233.28911227794015 257.3889646668 L 233.28911227794015 162.09570432935743 L 708.634316784712 162.09570432935743 L 708.634316784712 257.3889646668 L 731.056260393522 257.3889646668" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.484388721762px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 479.93049197484993 257.3889646668 L 704.14992806295 257.3889646668 L 704.14992806295 593.71811879895 L 659.3060408453299 593.71811879895" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="35.875109774096px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 479.93049197484993 257.3889646668 L 704.14992806295 257.3889646668 L 704.14992806295 593.71811879895 L 659.3060408453299 593.71811879895" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.484388721762px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 901.4630318204779 257.3889646668 L 955.49991591771 257.3889646668 L 955.49991591771 201.10988620868693" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="35.875109774096px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 901.4630318204779 257.3889646668 L 955.49991591771 257.3889646668 L 955.49991591771 201.10988620868693" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.484388721762px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 524.7743791924701 593.71811879895 L 470.73749509523793 593.71811879895 L 470.73749509523793 492.59515312321696" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="35.875109774096px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 524.7743791924701 593.71811879895 L 470.73749509523793 593.71811879895 L 470.73749509523793 492.59515312321696" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.484388721762px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="345.3988303219901" y="184.51764793816744" width="44.84388721761991" height="145.74263345726513" stroke-width="4.484388721762px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="345.3988303219901" y="184.51764793816744" width="44.84388721761991" height="145.74263345726513" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="345.3988303219901" y1="257.3889646668" x2="255.71105588675005" y2="257.3889646668" stroke-width="4.484388721762px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="251.22666716498804" y="252.904575945038" width="8.968777443524" height="8.968777443524" opacity="0"/></g><text class="pin-number sch-pin-number" x="300.55494310437007" y="252.904575945038" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="33.632915413214995px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="390.24271753961" y1="257.3889646668" x2="479.93049197484993" y2="257.3889646668" stroke-width="4.484388721762px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="475.4461032530879" y="252.904575945038" width="8.968777443524" height="8.968777443524" opacity="0"/></g><text class="pin-number sch-pin-number" x="435.0866047572299" y="252.904575945038" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="33.632915413214995px" transform=""></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="805.048674302595" y="201.33410564477504" width="22.42194360881001" height="112.10971804404994" stroke-width="4.484388721762px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="805.048674302595" y="201.33410564477504" width="22.42194360881001" height="112.10971804404994" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="805.048674302595" y1="257.3889646668" x2="731.056260393522" y2="257.3889646668" stroke-width="4.484388721762px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="726.57187167176" y="252.904575945038" width="8.968777443524" height="8.968777443524" opacity="0"/></g><text class="pin-number sch-pin-number" x="768.0524673480585" y="252.904575945038" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="33.632915413214995px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="827.470617911405" y1="257.3889646668" x2="901.4630318204779" y2="257.3889646668" stroke-width="4.484388721762px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="896.9786430987159" y="252.904575945038" width="8.968777443524" height="8.968777443524" opacity="0"/></g><text class="pin-number sch-pin-number" x="864.4668248659415" y="252.904575945038" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="33.632915413214995px" transform=""></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="580.829238214495" y="499.545955641948" width="22.421943608809897" height="188.34432631400398" stroke-width="4.484388721762px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="580.829238214495" y="499.545955641948" width="22.421943608809897" height="188.34432631400398" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="580.829238214495" y1="593.71811879895" x2="524.7743791924701" y2="593.71811879895" stroke-width="4.484388721762px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="520.2899904707081" y="589.2337300771879" width="8.968777443524" height="8.968777443524" opacity="0"/></g><text class="pin-number sch-pin-number" x="552.8018087034825" y="589.233730077188" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="33.632915413214995px" transform=""></text><line class="component-pin sch-component-pin sch-port-line" x1="603.2511818233049" y1="593.71811879895" x2="659.3060408453299" y2="593.71811879895" stroke-width="4.484388721762px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="654.8216521235679" y="589.2337300771879" width="8.968777443524" height="8.968777443524" opacity="0"/></g><text class="pin-number sch-pin-number" x="631.2786113343175" y="589.233730077188" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="33.632915413214995px" transform=""></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="255.71105588675005" cy="257.3889646668" r="8.968777443524" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="479.93049197484993" cy="257.3889646668" r="8.968777443524" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="731.056260393522" cy="257.3889646668" r="8.968777443524" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="901.4630318204779" cy="257.3889646668" r="8.968777443524" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="524.7743791924701" cy="593.71811879895" r="8.968777443524" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="659.3060408453299" cy="593.71811879895" r="8.968777443524" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
76
+ M 592.0402100189,257.3889646668
77
+ L 614.46215362771,269.4968142155574
78
+ L 614.46215362771,346.3891328313698
79
+ L 569.61826641009,346.3891328313698
80
+ L 569.61826641009,269.4968142155574
81
81
  Z
82
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6144578313260003px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="612.6506024094999" y="301.31927710836686" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.530120481934px" transform="rotate(90 612.6506024094999 301.31927710836686)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
83
- M 905.6024096384722,239.69277108425865
84
- L 887.5301204818422,229.93373493967846
85
- L 887.5301204818422,167.95783132520864
86
- L 923.6746987951021,167.95783132520864
87
- L 923.6746987951021,229.93373493967846
82
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.484388721762px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="592.0402100189" y="277.568713914729" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.359498495858px" transform="rotate(90 592.0402100189 277.568713914729)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
83
+ M 955.49991591771,201.10988620868693
84
+ L 933.0779723089,189.00203665992953
85
+ L 933.0779723089,112.1097180441171
86
+ L 977.92185952652,112.1097180441171
87
+ L 977.92185952652,189.00203665992953
88
88
  Z
89
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6144578313260003px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="905.6024096384722" y="223.42771084329166" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.530120481934px" transform="rotate(-90 905.6024096384722 223.42771084329166)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
90
- M 514.8795180721316,474.6325301204487
91
- L 496.80722891550164,464.8734939758685
92
- L 496.80722891550164,402.89759036139867
93
- L 532.9518072287616,402.89759036139867
94
- L 532.9518072287616,464.8734939758685
89
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.484388721762px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="955.49991591771" y="180.93013696075792" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.359498495858px" transform="rotate(-90 955.49991591771 180.93013696075792)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
90
+ M 470.73749509523793,492.59515312321696
91
+ L 448.3155514864279,480.4873035744596
92
+ L 448.3155514864279,403.59498495864716
93
+ L 493.15943870404794,403.59498495864716
94
+ L 493.15943870404794,480.4873035744596
95
95
  Z
96
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.6144578313260003px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="514.8795180721316" y="458.3674698794817" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="32.530120481934px" transform="rotate(-90 514.8795180721316 458.3674698794817)">XX</text><text class="sch-text" x="515.060240963698" y="188.36746987942945" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="21.686746987956px" transform="rotate(0, 515.060240963698, 188.36746987942945)">XXXXXX</text>
96
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.484388721762px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="470.73749509523793" y="472.41540387528795" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.359498495858px" transform="rotate(-90 470.73749509523793 472.41540387528795)">XX</text><text class="sch-text" x="470.9617145313259" y="137.43156635966648" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="26.906332330572px" transform="rotate(0, 470.9617145313259, 137.43156635966648)">XXXXXX</text>
97
97
  </g>
98
98
  </svg>