diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg
new file mode 100644
index 0000000..7fa9175
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg
@@ -0,0 +1,1723 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg
similarity index 96%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg
index d734632..fadec40 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg
@@ -41,12 +41,12 @@ z
-
-
+
@@ -82,7 +82,7 @@ z
-
+
@@ -116,7 +116,7 @@ z
-
+
@@ -154,7 +154,7 @@ z
-
+
@@ -198,7 +198,7 @@ z
-
+
@@ -240,7 +240,7 @@ z
-
+
@@ -284,7 +284,7 @@ z
-
+
@@ -351,12 +351,12 @@ z
-
-
+
@@ -391,7 +391,7 @@ z
-
+
@@ -408,7 +408,7 @@ z
-
+
@@ -424,7 +424,7 @@ z
-
+
@@ -440,7 +440,7 @@ z
-
+
@@ -606,7 +606,7 @@ L 190.633003 68.854931
L 190.987916 68.11121
L 237.126681 68.11121
L 237.126681 68.11121
-" clip-path="url(#pa9537c6c1b)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #ff7f0e; stroke-width: 0.5"/>
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg
new file mode 100644
index 0000000..9649e6e
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg
@@ -0,0 +1,1198 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg
deleted file mode 100644
index a4a9504..0000000
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg
+++ /dev/null
@@ -1,1170 +0,0 @@
-
-
-
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg
new file mode 100644
index 0000000..3e0fd57
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg
@@ -0,0 +1,905 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg
new file mode 100644
index 0000000..be56efd
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg
@@ -0,0 +1,2214 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg
new file mode 100644
index 0000000..c844ccb
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg
@@ -0,0 +1,1262 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg
new file mode 100644
index 0000000..8680605
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg
@@ -0,0 +1,9279 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg
new file mode 100644
index 0000000..45a8dc5
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg
@@ -0,0 +1,1886 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg
similarity index 99%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg
index ac4dcea..ba70155 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg
@@ -39,7 +39,7 @@ z
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
+
@@ -36160,7 +36160,7 @@ z
-
+
@@ -36226,7 +36226,7 @@ z
-
+
@@ -36240,7 +36240,7 @@ z
-
+
@@ -36275,7 +36275,7 @@ z
-
+
@@ -36310,7 +36310,7 @@ z
-
+
@@ -36325,7 +36325,7 @@ z
-
+
@@ -36340,7 +36340,7 @@ z
-
+
@@ -36383,12 +36383,12 @@ z
-
-
+
@@ -36413,7 +36413,7 @@ z
-
+
@@ -36427,7 +36427,7 @@ z
-
+
@@ -36440,7 +36440,7 @@ z
-
+
@@ -36453,7 +36453,7 @@ z
-
+
@@ -36645,16 +36645,16 @@ z
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #7fbee9; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ffbf86; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #87de87; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #eb9293; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #c9b3de; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #cca79f; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #e377c2; stroke-width: 0.5; stroke-linecap: square"/>
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
@@ -37561,9 +37561,9 @@ z
L 111.772314 112.20716
L 174.203572 122.422799
L 236.634831 132.515235
-" clip-path="url(#pc0740a4ffe)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pda5ad0327a)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/>
-
-
-
-
-
-
+
+
+
+
+
@@ -37624,7 +37624,7 @@ L 57.076366 117.235821
-
+
@@ -37758,7 +37758,7 @@ L 57.076366 130.702197
-
+
@@ -37932,7 +37932,7 @@ L 57.076366 144.168574
-
+
@@ -37985,7 +37985,7 @@ L 57.076366 157.63495
-
+
@@ -38061,7 +38061,7 @@ L 57.076366 171.101326
-
+
@@ -38090,7 +38090,7 @@ L 66.076366 189.067702
-
+
@@ -38106,7 +38106,7 @@ L 66.076366 189.067702
-
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg
new file mode 100644
index 0000000..eceb546
--- /dev/null
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg
@@ -0,0 +1,1930 @@
+
+
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg
similarity index 99%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg
index 4b77cc8..82d5f46 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg
@@ -39,7 +39,7 @@ z
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
+
@@ -36160,7 +36160,7 @@ z
-
+
@@ -36226,7 +36226,7 @@ z
-
+
@@ -36240,7 +36240,7 @@ z
-
+
@@ -36275,7 +36275,7 @@ z
-
+
@@ -36310,7 +36310,7 @@ z
-
+
@@ -36325,7 +36325,7 @@ z
-
+
@@ -36340,7 +36340,7 @@ z
-
+
@@ -36383,12 +36383,12 @@ z
-
-
+
@@ -36422,7 +36422,7 @@ z
-
+
@@ -36438,7 +36438,7 @@ z
-
+
@@ -36454,7 +36454,7 @@ z
-
+
@@ -36469,7 +36469,7 @@ z
-
+
@@ -36484,7 +36484,7 @@ z
-
+
@@ -36678,16 +36678,16 @@ z
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #7fbee9; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ffbf86; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #87de87; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #eb9293; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #c9b3de; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #cca79f; stroke-width: 0.5"/>
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
@@ -37675,9 +37675,9 @@ z
L 201.372614 108.816966
L 335.989779 118.88376
L 470.606945 128.882548
-" clip-path="url(#p86905052b0)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/>
+" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/>
-
-
-
-
-
-
+
+
+
+
+
@@ -37738,7 +37738,7 @@ L 63.662873 131.635821
-
+
@@ -37872,7 +37872,7 @@ L 63.662873 145.102197
-
+
@@ -38046,7 +38046,7 @@ L 63.662873 158.568574
-
+
@@ -38099,7 +38099,7 @@ L 63.662873 172.03495
-
+
@@ -38175,7 +38175,7 @@ L 63.662873 185.501326
-
+
@@ -38204,7 +38204,7 @@ L 72.662873 203.467702
-
+
@@ -38220,7 +38220,7 @@ L 72.662873 203.467702
-
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg
similarity index 99%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg
index 83313e3..20dbaef 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg
@@ -6043,7 +6043,7 @@ L -393.279419 98.790415
L -393.48983 98.790415
L -393.70024 98.790415
z
-" clip-path="url(#p929863a6c0)" style="fill: #7fbee9; fill-opacity: 0.5; stroke: #7fbee9; stroke-opacity: 0.5; stroke-width: 0.24"/>
+" clip-path="url(#pde329a851f)" style="fill: #7fbee9; fill-opacity: 0.5; stroke: #7fbee9; stroke-opacity: 0.5; stroke-width: 0.24"/>
+" clip-path="url(#pde329a851f)" style="fill: #ffbf86; fill-opacity: 0.5; stroke: #ffbf86; stroke-opacity: 0.5; stroke-width: 0.24"/>
-
-
+
@@ -12140,7 +12140,7 @@ z
-
+
@@ -12185,7 +12185,7 @@ z
-
+
@@ -12228,7 +12228,7 @@ z
-
+
@@ -12273,7 +12273,7 @@ z
-
+
@@ -12313,7 +12313,7 @@ z
-
+
@@ -12349,7 +12349,7 @@ z
-
+
@@ -12422,12 +12422,12 @@ z
-
-
+
@@ -12451,7 +12451,7 @@ z
-
+
@@ -12466,7 +12466,7 @@ z
-
+
@@ -12481,7 +12481,7 @@ z
-
+
@@ -12496,7 +12496,7 @@ z
-
+
@@ -12511,7 +12511,7 @@ z
-
+
@@ -12626,7 +12626,7 @@ L 235.63746 132.835579
L 236.899923 132.912244
L 237.531154 132.913169
L 237.531154 132.913169
-" clip-path="url(#p929863a6c0)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pde329a851f)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pde329a851f)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pde329a851f)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/>
-
+
@@ -13355,7 +13355,7 @@ z
-
+
@@ -13370,7 +13370,7 @@ z
-
+
@@ -13385,7 +13385,7 @@ z
-
+
@@ -13400,7 +13400,7 @@ z
-
+
@@ -13415,7 +13415,7 @@ z
-
+
@@ -13430,7 +13430,7 @@ z
-
+
@@ -13453,7 +13453,7 @@ z
-
+
@@ -13469,7 +13469,7 @@ z
-
+
@@ -13485,7 +13485,7 @@ z
-
+
@@ -13501,7 +13501,7 @@ z
-
+
@@ -13517,7 +13517,7 @@ z
-
+
@@ -13533,7 +13533,7 @@ z
-
+
@@ -13549,7 +13549,7 @@ z
-
+
@@ -13678,17 +13678,17 @@ L 482.764962 129.259894
L 484.027425 129.327142
L 484.448246 129.327391
L 484.448246 129.327391
-" clip-path="url(#p66b6dd12a8)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pf2174cdfdc)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pf2174cdfdc)" style="fill: none; stroke: #d3d3d3; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#pf2174cdfdc)" style="fill: none; stroke: #d3d3d3; stroke-width: 0.5; stroke-linecap: square"/>
+
-
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg
similarity index 91%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg
index 6fe0844..aa97a84 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg
@@ -41,12 +41,12 @@ z
-
-
+
@@ -104,7 +104,7 @@ z
-
+
@@ -145,7 +145,7 @@ z
-
+
@@ -192,7 +192,7 @@ z
-
+
@@ -237,7 +237,7 @@ z
-
+
@@ -284,7 +284,7 @@ z
-
+
@@ -326,7 +326,7 @@ z
-
+
@@ -364,7 +364,7 @@ z
-
+
@@ -459,12 +459,12 @@ z
-
-
+
@@ -500,7 +500,7 @@ z
-
+
@@ -518,7 +518,7 @@ z
-
+
@@ -535,7 +535,7 @@ z
-
+
@@ -552,7 +552,7 @@ z
-
+
@@ -569,7 +569,7 @@ z
-
+
@@ -634,7 +634,7 @@ L 191.336112 13.719234
L 216.813658 13.688469
L 242.291205 13.881329
L 242.291205 13.881329
-" clip-path="url(#p1c57071a03)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #d62728; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #9467bd; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #8c564b; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #e377c2; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #7f7f7f; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #bcbd22; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #17becf; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
-
+
@@ -807,7 +807,7 @@ z
-
+
@@ -824,7 +824,7 @@ z
-
+
@@ -841,7 +841,7 @@ z
-
+
@@ -858,7 +858,7 @@ z
-
+
@@ -875,7 +875,7 @@ z
-
+
@@ -892,7 +892,7 @@ z
-
+
@@ -909,7 +909,7 @@ z
-
+
@@ -934,7 +934,7 @@ z
-
+
@@ -949,68 +949,68 @@ z
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1064,7 +1064,7 @@ L 429.25897 14.240747
L 454.736516 13.82995
L 480.214063 14.041406
L 480.214063 14.041406
-" clip-path="url(#pa5eb07a0dc)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #d62728; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #9467bd; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #8c564b; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #e377c2; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #7f7f7f; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #bcbd22; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #17becf; stroke-width: 0.5; stroke-linecap: square"/>
+" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/>
+
-
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg
similarity index 98%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg
index 63d625c..2911e55 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg
@@ -39,7 +39,7 @@ z
-
-
-
+
+
-
-
-
+
+
-
-
+
@@ -4146,7 +4146,7 @@ z
-
+
@@ -4191,7 +4191,7 @@ z
-
+
@@ -4234,7 +4234,7 @@ z
-
+
@@ -4279,7 +4279,7 @@ z
-
+
@@ -4319,7 +4319,7 @@ z
-
+
@@ -4355,7 +4355,7 @@ z
-
+
@@ -4428,12 +4428,12 @@ z
-
-
+
@@ -4468,7 +4468,7 @@ z
-
+
@@ -4485,7 +4485,7 @@ z
-
+
@@ -4501,7 +4501,7 @@ z
-
+
@@ -4517,7 +4517,7 @@ z
-
+
@@ -4533,7 +4533,7 @@ z
-
+
@@ -4549,7 +4549,7 @@ z
-
+
@@ -4674,7 +4674,7 @@ L 235.88324 119.667839
L 236.416143 119.85937
L 237.126681 119.903286
L 237.126681 119.903286
-" clip-path="url(#pfc05cf2efb)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#p1a422b9577)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/>
+" clip-path="url(#p1a422b9577)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/>
+
diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg
similarity index 99%
rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg
rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg
index e26566c..fb5cf86 100644
--- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg
+++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg
@@ -39,7 +39,7 @@ z
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
+
@@ -36160,7 +36160,7 @@ z
-
+
@@ -36226,7 +36226,7 @@ z