diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake
index e09a68a5f03e998b41a80a44a8dd2cf709583994..7ddbe6d3cfb69d79efa8f3e39f22317140329db3 100644
--- a/cmake/dependencies.cmake
+++ b/cmake/dependencies.cmake
@@ -25,6 +25,7 @@ set(OBSW_INCLUDE_DIRS
 )
 
 set(MAIN_COMPUTER
+    src/boards/Main/Data/ABKTrajectorySet.cpp
     src/boards/Main/Sensors/Sensors.cpp
     src/boards/Main/AlgoReference/AlgoReference.cpp
     src/boards/Main/Radio/Radio.cpp
@@ -34,7 +35,7 @@ set(MAIN_COMPUTER
     src/boards/Main/StateMachines/NASController/NASController.cpp
     src/boards/Main/StateMachines/ADAController/ADAController.cpp
     src/boards/Main/PinHandler/PinHandler.cpp
-    # src/boards/Main/StateMachines/ABKController/ABKController.cpp
+    src/boards/Main/StateMachines/ABKController/ABKController.cpp
     src/boards/Main/StateMachines/MEAController/MEAController.cpp
     src/boards/Main/StatsRecorder/StatsRecorder.cpp
 )
diff --git a/src/boards/Main/BoardScheduler.h b/src/boards/Main/BoardScheduler.h
index 11428599a702a4c921d51c74785ca71c7829253f..dfd49ec8d70ba76aa8e01db31ec233d792f00931 100644
--- a/src/boards/Main/BoardScheduler.h
+++ b/src/boards/Main/BoardScheduler.h
@@ -76,6 +76,8 @@ public:
 
     Boardcore::TaskScheduler &getMeaScheduler() { return nas; }
 
+    Boardcore::TaskScheduler &getAbkScheduler() { return nas; }
+
     Boardcore::TaskScheduler &getAdaScheduler() { return ada; }
 
     Boardcore::TaskScheduler &getSensorsScheduler() { return sensors; }
diff --git a/src/boards/Main/Configs/ABKConfig.h b/src/boards/Main/Configs/ABKConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..522a27e736e19b5cae56baa76e5f4dff9e6aab7d
--- /dev/null
+++ b/src/boards/Main/Configs/ABKConfig.h
@@ -0,0 +1,73 @@
+/* Copyright (c) 2024 Skyward Experimental Rocketry
+ * Authors: Davide Mor
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#pragma once
+
+#include <algorithms/AirBrakes/AirBrakesInterp.h>
+#include <units/Frequency.h>
+
+#include <cstdint>
+
+namespace Main
+{
+
+namespace Config
+{
+
+namespace ABK
+{
+
+/* linter off */ using namespace Boardcore::Units::Frequency;
+
+constexpr Hertz UPDATE_RATE = 10_hz;
+
+constexpr unsigned int SHADOW_MODE_TIMEOUT = 500;  // [ms]
+
+// TODO remove this useless config from interpolation algorithm
+static const Boardcore::AirBrakesConfig BULLSHIT_RANDOM_CONFIG_REMOVE_ME_PLEASE{
+    0.4884,      -1.4391,    6.6940,
+    -18.4272,    29.1044,    -24.5585,
+    8.6058,      9.0426,     159.5995,
+    4.8188,      -208.4471,  47.0771,
+    1.9433e+03,  -205.6689,  -6.4634e+03,
+    331.0332,    8.8763e+03, -161.8111,
+    -3.9917e+03, 2.8025e-06, 0.0373,
+    20,          -0.009216,  0.02492,
+    -0.01627,    0.03191,    0.017671458676443,
+    0,
+};
+
+static const Boardcore::AirBrakesInterpConfig CONFIG = {
+    .FILTER_MINIMUM_ALTITUDE = 1000,
+    .FILTER_MAXIMUM_ALTITUDE = 3000,
+    .STARTING_FILTER_VALUE   = 0.9f,
+    .ABK_CRITICAL_ALTITUDE   = 2990,
+    .DZ                      = 10,
+    .INITIAL_MASS            = 26,
+    .DM                      = 0.4f,
+    .N_FORWARD               = 0};
+
+}  // namespace ABK
+
+}  // namespace Config
+
+}  // namespace Main
\ No newline at end of file
diff --git a/src/boards/Main/Configs/SchedulerConfig.h b/src/boards/Main/Configs/SchedulerConfig.h
index 8d3150dc5343025db42a1f2c5a9f9a005e050d7c..1d28559e1fcadbba7cf37ead818450c818cd48d0 100644
--- a/src/boards/Main/Configs/SchedulerConfig.h
+++ b/src/boards/Main/Configs/SchedulerConfig.h
@@ -35,8 +35,10 @@ namespace Scheduler
 
 // Used for NAS related activities (state machines/scheduler)
 static const miosix::Priority NAS_PRIORITY = miosix::PRIORITY_MAX - 1;
-// Used for NAS related activities (state machines/scheduler)
+// Used for MEA related activities (state machines/scheduler)
 static const miosix::Priority MEA_PRIORITY = miosix::PRIORITY_MAX - 1;
+// Used for ABK related activities (state machines/scheduler)
+static const miosix::Priority ABK_PRIORITY = miosix::PRIORITY_MAX - 1;
 // Used for ADA related activities (state machines/scheduler)
 static const miosix::Priority ADA_PRIORITY = miosix::PRIORITY_MAX - 1;
 // Used for Sensors TaskScheduler
diff --git a/src/boards/Main/Data/ABKTrajectorySet.cpp b/src/boards/Main/Data/ABKTrajectorySet.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..47cecd3afb4c660acdccef980ea46b0fd744bee8
--- /dev/null
+++ b/src/boards/Main/Data/ABKTrajectorySet.cpp
@@ -0,0 +1,6719 @@
+/* Copyright (c) 2024 Skyward Experimental Rocketry
+ * Author: Davide Mor
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "ABKTrajectorySet.h"
+
+using namespace Boardcore;
+
+// =============================================
+//    WARNING: GEMINI ROCCARASO TRAJECTORIES
+//             REMOVE THESE!!!
+// =============================================
+TrajectoryPoint t0_closed[] = {
+    TrajectoryPoint(0, 291.697688278318),
+    TrajectoryPoint(10, 290.984535447996),
+    TrajectoryPoint(20, 290.272554676878),
+    TrajectoryPoint(30, 289.561766863639),
+    TrajectoryPoint(40, 288.852030395801),
+    TrajectoryPoint(50, 288.143059351263),
+    TrajectoryPoint(60, 287.435031702346),
+    TrajectoryPoint(70, 286.728110939376),
+    TrajectoryPoint(80, 286.021892458837),
+    TrajectoryPoint(90, 285.316377182964),
+    TrajectoryPoint(100, 284.612028614926),
+    TrajectoryPoint(110, 283.908322286167),
+    TrajectoryPoint(120, 283.205255534554),
+    TrajectoryPoint(130, 282.50308711451),
+    TrajectoryPoint(140, 281.801667911645),
+    TrajectoryPoint(150, 281.1008305958),
+    TrajectoryPoint(160, 280.400637653825),
+    TrajectoryPoint(170, 279.701294671578),
+    TrajectoryPoint(180, 279.002478787265),
+    TrajectoryPoint(190, 278.304185227024),
+    TrajectoryPoint(200, 277.606610031429),
+    TrajectoryPoint(210, 276.909620330855),
+    TrajectoryPoint(220, 276.213100610647),
+    TrajectoryPoint(230, 275.517059820918),
+    TrajectoryPoint(240, 274.82171272541),
+    TrajectoryPoint(250, 274.126785845519),
+    TrajectoryPoint(260, 273.43227319665),
+    TrajectoryPoint(270, 272.738247390128),
+    TrajectoryPoint(280, 272.044742814953),
+    TrajectoryPoint(290, 271.351605000273),
+    TrajectoryPoint(300, 270.658827282562),
+    TrajectoryPoint(310, 269.966503330181),
+    TrajectoryPoint(320, 269.274581563642),
+    TrajectoryPoint(330, 268.582974629793),
+    TrajectoryPoint(340, 267.891675380714),
+    TrajectoryPoint(350, 267.200770381043),
+    TrajectoryPoint(360, 266.510185961775),
+    TrajectoryPoint(370, 265.819866035091),
+    TrajectoryPoint(380, 265.129803108316),
+    TrajectoryPoint(390, 264.440060197535),
+    TrajectoryPoint(400, 263.750580678499),
+    TrajectoryPoint(410, 263.061316875416),
+    TrajectoryPoint(420, 262.372261048453),
+    TrajectoryPoint(430, 261.683445809333),
+    TrajectoryPoint(440, 260.994850482844),
+    TrajectoryPoint(450, 260.306423575181),
+    TrajectoryPoint(460, 259.618157164805),
+    TrajectoryPoint(470, 258.93005453962),
+    TrajectoryPoint(480, 258.242133161705),
+    TrajectoryPoint(490, 257.554334259916),
+    TrajectoryPoint(500, 256.866649771936),
+    TrajectoryPoint(510, 256.179071425476),
+    TrajectoryPoint(520, 255.491612941993),
+    TrajectoryPoint(530, 254.80424221825),
+    TrajectoryPoint(540, 254.116941049339),
+    TrajectoryPoint(550, 253.429701072041),
+    TrajectoryPoint(560, 252.742514410224),
+    TrajectoryPoint(570, 252.055379875809),
+    TrajectoryPoint(580, 251.368271078778),
+    TrajectoryPoint(590, 250.681179566394),
+    TrajectoryPoint(600, 249.99409673583),
+    TrajectoryPoint(610, 249.307013259786),
+    TrajectoryPoint(620, 248.619912378961),
+    TrajectoryPoint(630, 247.932785721418),
+    TrajectoryPoint(640, 247.245624600031),
+    TrajectoryPoint(650, 246.558420198845),
+    TrajectoryPoint(660, 245.871163580697),
+    TrajectoryPoint(670, 245.183824700715),
+    TrajectoryPoint(680, 244.496407515798),
+    TrajectoryPoint(690, 243.808904442685),
+    TrajectoryPoint(700, 243.121306454657),
+    TrajectoryPoint(710, 242.433604414687),
+    TrajectoryPoint(720, 241.745776514132),
+    TrajectoryPoint(730, 241.057801409348),
+    TrajectoryPoint(740, 240.369689078822),
+    TrajectoryPoint(750, 239.681430271073),
+    TrajectoryPoint(760, 238.993015629897),
+    TrajectoryPoint(770, 238.30443569757),
+    TrajectoryPoint(780, 237.61566492373),
+    TrajectoryPoint(790, 236.926679238592),
+    TrajectoryPoint(800, 236.237495318523),
+    TrajectoryPoint(810, 235.548103559551),
+    TrajectoryPoint(820, 234.858494256803),
+    TrajectoryPoint(830, 234.16865760621),
+    TrajectoryPoint(840, 233.478583705918),
+    TrajectoryPoint(850, 232.788224228347),
+    TrajectoryPoint(860, 232.097591757854),
+    TrajectoryPoint(870, 231.406688953627),
+    TrajectoryPoint(880, 230.715505725166),
+    TrajectoryPoint(890, 230.024031880883),
+    TrajectoryPoint(900, 229.332257128576),
+    TrajectoryPoint(910, 228.640171075695),
+    TrajectoryPoint(920, 227.94775068442),
+    TrajectoryPoint(930, 227.254954930989),
+    TrajectoryPoint(940, 226.561814303897),
+    TrajectoryPoint(950, 225.868318174168),
+    TrajectoryPoint(960, 225.174455806958),
+    TrajectoryPoint(970, 224.480216361252),
+    TrajectoryPoint(980, 223.785588889414),
+    TrajectoryPoint(990, 223.090562336636),
+    TrajectoryPoint(1000, 222.395125540258),
+    TrajectoryPoint(1010, 221.699255543157),
+    TrajectoryPoint(1020, 221.002910978018),
+    TrajectoryPoint(1030, 220.306121420704),
+    TrajectoryPoint(1040, 219.60887541045),
+    TrajectoryPoint(1050, 218.911161371448),
+    TrajectoryPoint(1060, 218.212967611875),
+    TrajectoryPoint(1070, 217.514282322845),
+    TrajectoryPoint(1080, 216.8150935773),
+    TrajectoryPoint(1090, 216.115389328827),
+    TrajectoryPoint(1100, 215.415157410421),
+    TrajectoryPoint(1110, 214.714385533196),
+    TrajectoryPoint(1120, 214.013061285041),
+    TrajectoryPoint(1130, 213.311172129224),
+    TrajectoryPoint(1140, 212.608673742036),
+    TrajectoryPoint(1150, 211.905576887698),
+    TrajectoryPoint(1160, 211.201877731975),
+    TrajectoryPoint(1170, 210.497563350611),
+    TrajectoryPoint(1180, 209.792620686413),
+    TrajectoryPoint(1190, 209.087036547734),
+    TrajectoryPoint(1200, 208.380797606912),
+    TrajectoryPoint(1210, 207.673890398689),
+    TrajectoryPoint(1220, 206.966301318579),
+    TrajectoryPoint(1230, 206.258016621218),
+    TrajectoryPoint(1240, 205.549022418667),
+    TrajectoryPoint(1250, 204.839304678699),
+    TrajectoryPoint(1260, 204.128849223041),
+    TrajectoryPoint(1270, 203.417641725602),
+    TrajectoryPoint(1280, 202.705667710654),
+    TrajectoryPoint(1290, 201.992912551),
+    TrajectoryPoint(1300, 201.279361466101),
+    TrajectoryPoint(1310, 200.564999520181),
+    TrajectoryPoint(1320, 199.849811620298),
+    TrajectoryPoint(1330, 199.133782514392),
+    TrajectoryPoint(1340, 198.416896789296),
+    TrajectoryPoint(1350, 197.699138868718),
+    TrajectoryPoint(1360, 196.980493011203),
+    TrajectoryPoint(1370, 196.260943308046),
+    TrajectoryPoint(1380, 195.540473681187),
+    TrajectoryPoint(1390, 194.819067881072),
+    TrajectoryPoint(1400, 194.096709484473),
+    TrajectoryPoint(1410, 193.373381892281),
+    TrajectoryPoint(1420, 192.649068327263),
+    TrajectoryPoint(1430, 191.923751831781),
+    TrajectoryPoint(1440, 191.197415265473),
+    TrajectoryPoint(1450, 190.470041302905),
+    TrajectoryPoint(1460, 189.741612431169),
+    TrajectoryPoint(1470, 189.012110947453),
+    TrajectoryPoint(1480, 188.281518956566),
+    TrajectoryPoint(1490, 187.549818368419),
+    TrajectoryPoint(1500, 186.816952567424),
+    TrajectoryPoint(1510, 186.082905678569),
+    TrajectoryPoint(1520, 185.347689154617),
+    TrajectoryPoint(1530, 184.611283957458),
+    TrajectoryPoint(1540, 183.873670839394),
+    TrajectoryPoint(1550, 183.134830340299),
+    TrajectoryPoint(1560, 182.394742784713),
+    TrajectoryPoint(1570, 181.653388278888),
+    TrajectoryPoint(1580, 180.910746707778),
+    TrajectoryPoint(1590, 180.166797731971),
+    TrajectoryPoint(1600, 179.421520784558),
+    TrajectoryPoint(1610, 178.674808817941),
+    TrajectoryPoint(1620, 177.926676784425),
+    TrajectoryPoint(1630, 177.177146378547),
+    TrajectoryPoint(1640, 176.426195929864),
+    TrajectoryPoint(1650, 175.67380352185),
+    TrajectoryPoint(1660, 174.919946988324),
+    TrajectoryPoint(1670, 174.164603909805),
+    TrajectoryPoint(1680, 173.407715382908),
+    TrajectoryPoint(1690, 172.649146178947),
+    TrajectoryPoint(1700, 171.889013057377),
+    TrajectoryPoint(1710, 171.127292370435),
+    TrajectoryPoint(1720, 170.363960195215),
+    TrajectoryPoint(1730, 169.598992329481),
+    TrajectoryPoint(1740, 168.832310429993),
+    TrajectoryPoint(1750, 168.063764499078),
+    TrajectoryPoint(1760, 167.293498806744),
+    TrajectoryPoint(1770, 166.521487795767),
+    TrajectoryPoint(1780, 165.747705604384),
+    TrajectoryPoint(1790, 164.972080733082),
+    TrajectoryPoint(1800, 164.194399148115),
+    TrajectoryPoint(1810, 163.414856083536),
+    TrajectoryPoint(1820, 162.633424199322),
+    TrajectoryPoint(1830, 161.850075822372),
+    TrajectoryPoint(1840, 161.064556645122),
+    TrajectoryPoint(1850, 160.276961344482),
+    TrajectoryPoint(1860, 159.487352451706),
+    TrajectoryPoint(1870, 158.695700675387),
+    TrajectoryPoint(1880, 157.901720616709),
+    TrajectoryPoint(1890, 157.105519268063),
+    TrajectoryPoint(1900, 156.307171866083),
+    TrajectoryPoint(1910, 155.506626385401),
+    TrajectoryPoint(1920, 154.703483224839),
+    TrajectoryPoint(1930, 153.89808575136),
+    TrajectoryPoint(1940, 153.090401455257),
+    TrajectoryPoint(1950, 152.280087885851),
+    TrajectoryPoint(1960, 151.467267063182),
+    TrajectoryPoint(1970, 150.652044175097),
+    TrajectoryPoint(1980, 149.834109418323),
+    TrajectoryPoint(1990, 149.013471914356),
+    TrajectoryPoint(2000, 148.190311224522),
+    TrajectoryPoint(2010, 147.364252189324),
+    TrajectoryPoint(2020, 146.535383279066),
+    TrajectoryPoint(2030, 145.703863786175),
+    TrajectoryPoint(2040, 144.869143927633),
+    TrajectoryPoint(2050, 144.031606027675),
+    TrajectoryPoint(2060, 143.191114848679),
+    TrajectoryPoint(2070, 142.347330408586),
+    TrajectoryPoint(2080, 141.500661472084),
+    TrajectoryPoint(2090, 140.650526550284),
+    TrajectoryPoint(2100, 139.797269614436),
+    TrajectoryPoint(2110, 138.940659933022),
+    TrajectoryPoint(2120, 138.08056305132),
+    TrajectoryPoint(2130, 137.217170605551),
+    TrajectoryPoint(2140, 136.349970986925),
+    TrajectoryPoint(2150, 135.479471796961),
+    TrajectoryPoint(2160, 134.604895213864),
+    TrajectoryPoint(2170, 133.726945074672),
+    TrajectoryPoint(2180, 132.844708576594),
+    TrajectoryPoint(2190, 131.958955479211),
+    TrajectoryPoint(2200, 131.068753317653),
+    TrajectoryPoint(2210, 130.174816309537),
+    TrajectoryPoint(2220, 129.27633929721),
+    TrajectoryPoint(2230, 128.373820743973),
+    TrajectoryPoint(2240, 127.466742075516),
+    TrajectoryPoint(2250, 126.555223090573),
+    TrajectoryPoint(2260, 125.639200846806),
+    TrajectoryPoint(2270, 124.71823997185),
+    TrajectoryPoint(2280, 123.792752260635),
+    TrajectoryPoint(2290, 122.862047991453),
+    TrajectoryPoint(2300, 121.926390385521),
+    TrajectoryPoint(2310, 120.985781216501),
+    TrajectoryPoint(2320, 120.039447022012),
+    TrajectoryPoint(2330, 119.087894481187),
+    TrajectoryPoint(2340, 118.130967276745),
+    TrajectoryPoint(2350, 117.167913449536),
+    TrajectoryPoint(2360, 116.199153768707),
+    TrajectoryPoint(2370, 115.224530490338),
+    TrajectoryPoint(2380, 114.243642807481),
+    TrajectoryPoint(2390, 113.256236854829),
+    TrajectoryPoint(2400, 112.262428217485),
+    TrajectoryPoint(2410, 111.262017430573),
+    TrajectoryPoint(2420, 110.254797311192),
+    TrajectoryPoint(2430, 109.240210388553),
+    TrajectoryPoint(2440, 108.218359657945),
+    TrajectoryPoint(2450, 107.18905886819),
+    TrajectoryPoint(2460, 106.152068475589),
+    TrajectoryPoint(2470, 105.107139357046),
+    TrajectoryPoint(2480, 104.054012347058),
+    TrajectoryPoint(2490, 102.992417746795),
+    TrajectoryPoint(2500, 101.922074803322),
+    TrajectoryPoint(2510, 100.842691156895),
+    TrajectoryPoint(2520, 99.753962254038),
+    TrajectoryPoint(2530, 98.6555707239711),
+    TrajectoryPoint(2540, 97.5471857157151),
+    TrajectoryPoint(2550, 96.4284621929983),
+    TrajectoryPoint(2560, 95.2990401838284),
+    TrajectoryPoint(2570, 94.1585439813332),
+    TrajectoryPoint(2580, 93.0065812921652),
+    TrajectoryPoint(2590, 91.8427423284479),
+    TrajectoryPoint(2600, 90.6665988388753),
+    TrajectoryPoint(2610, 89.4774390540253),
+    TrajectoryPoint(2620, 88.2746396649513),
+    TrajectoryPoint(2630, 87.0580281855391),
+    TrajectoryPoint(2640, 85.8270846882579),
+    TrajectoryPoint(2650, 84.5804379182145),
+    TrajectoryPoint(2660, 83.3180612390695),
+    TrajectoryPoint(2670, 82.0392338060996),
+    TrajectoryPoint(2680, 80.7424991054066),
+    TrajectoryPoint(2690, 79.4279821236853),
+    TrajectoryPoint(2700, 78.0935956269846),
+    TrajectoryPoint(2710, 76.7393940987897),
+    TrajectoryPoint(2720, 75.3636329858332),
+    TrajectoryPoint(2730, 73.9651817263447),
+    TrajectoryPoint(2740, 72.5431290280362),
+    TrajectoryPoint(2750, 71.0958831964234),
+    TrajectoryPoint(2760, 69.6212360147459),
+    TrajectoryPoint(2770, 68.1180465393934),
+    TrajectoryPoint(2780, 66.5843147037006),
+    TrajectoryPoint(2790, 65.0178549168622),
+    TrajectoryPoint(2800, 63.4162742978174),
+    TrajectoryPoint(2810, 61.7767195677176),
+    TrajectoryPoint(2820, 60.095624802691),
+    TrajectoryPoint(2830, 58.3702755230403),
+    TrajectoryPoint(2840, 56.5962574251198),
+    TrajectoryPoint(2850, 54.7686724086359),
+    TrajectoryPoint(2860, 52.8819145270167),
+    TrajectoryPoint(2870, 50.9298307741777),
+    TrajectoryPoint(2880, 48.9042896236109),
+    TrajectoryPoint(2890, 46.7957762132094),
+    TrajectoryPoint(2900, 44.5930868834589),
+    TrajectoryPoint(2910, 42.2799660800708),
+    TrajectoryPoint(2920, 39.8388300333339),
+    TrajectoryPoint(2930, 37.2438952999428),
+    TrajectoryPoint(2940, 34.4609033921338),
+    TrajectoryPoint(2950, 31.4390325302813),
+    TrajectoryPoint(2960, 28.1028168888058),
+    TrajectoryPoint(2970, 24.3209267802065),
+    TrajectoryPoint(2980, 19.8437772488535),
+    TrajectoryPoint(2990, 14.0194488542204),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t1_closed[] = {
+    TrajectoryPoint(0, 290.829077875845),
+    TrajectoryPoint(10, 290.122172054902),
+    TrajectoryPoint(20, 289.417015425694),
+    TrajectoryPoint(30, 288.712681652409),
+    TrajectoryPoint(40, 288.009090411237),
+    TrajectoryPoint(50, 287.306575566213),
+    TrajectoryPoint(60, 286.604955600667),
+    TrajectoryPoint(70, 285.904016310454),
+    TrajectoryPoint(80, 285.203904889002),
+    TrajectoryPoint(90, 284.504762210305),
+    TrajectoryPoint(100, 283.806241375245),
+    TrajectoryPoint(110, 283.108339356948),
+    TrajectoryPoint(120, 282.411426891841),
+    TrajectoryPoint(130, 281.715105784861),
+    TrajectoryPoint(140, 281.019347001664),
+    TrajectoryPoint(150, 280.324320518395),
+    TrajectoryPoint(160, 279.629993971235),
+    TrajectoryPoint(170, 278.936176071407),
+    TrajectoryPoint(180, 278.242861849887),
+    TrajectoryPoint(190, 277.550330696212),
+    TrajectoryPoint(200, 276.858263577897),
+    TrajectoryPoint(210, 276.166648858561),
+    TrajectoryPoint(220, 275.475577471328),
+    TrajectoryPoint(230, 274.785082243284),
+    TrajectoryPoint(240, 274.094990631664),
+    TrajectoryPoint(250, 273.405296556451),
+    TrajectoryPoint(260, 272.716137305278),
+    TrajectoryPoint(270, 272.027402462398),
+    TrajectoryPoint(280, 271.339018608207),
+    TrajectoryPoint(290, 270.650979032165),
+    TrajectoryPoint(300, 269.963428352593),
+    TrajectoryPoint(310, 269.276199688281),
+    TrajectoryPoint(320, 268.58927089732),
+    TrajectoryPoint(330, 267.902638402271),
+    TrajectoryPoint(340, 267.216418064091),
+    TrajectoryPoint(350, 266.530455149956),
+    TrajectoryPoint(360, 265.844742552838),
+    TrajectoryPoint(370, 265.159274959654),
+    TrajectoryPoint(380, 264.474140252046),
+    TrajectoryPoint(390, 263.789215233555),
+    TrajectoryPoint(400, 263.104492503099),
+    TrajectoryPoint(410, 262.419964350752),
+    TrajectoryPoint(420, 261.735687838805),
+    TrajectoryPoint(430, 261.051584197904),
+    TrajectoryPoint(440, 260.367636256453),
+    TrajectoryPoint(450, 259.683836135295),
+    TrajectoryPoint(460, 259.000206047323),
+    TrajectoryPoint(470, 258.316717367152),
+    TrajectoryPoint(480, 257.633339113222),
+    TrajectoryPoint(490, 256.950063274559),
+    TrajectoryPoint(500, 256.266886049725),
+    TrajectoryPoint(510, 255.583814805828),
+    TrajectoryPoint(520, 254.900809880192),
+    TrajectoryPoint(530, 254.217863149985),
+    TrajectoryPoint(540, 253.534966317164),
+    TrajectoryPoint(550, 252.852115469077),
+    TrajectoryPoint(560, 252.169295073575),
+    TrajectoryPoint(570, 251.486489660126),
+    TrajectoryPoint(580, 250.803690845035),
+    TrajectoryPoint(590, 250.120890099958),
+    TrajectoryPoint(600, 249.438073589924),
+    TrajectoryPoint(610, 248.755227958891),
+    TrajectoryPoint(620, 248.072346441901),
+    TrajectoryPoint(630, 247.389420428771),
+    TrajectoryPoint(640, 246.706441184727),
+    TrajectoryPoint(650, 246.023389640157),
+    TrajectoryPoint(660, 245.340249714397),
+    TrajectoryPoint(670, 244.657023333154),
+    TrajectoryPoint(680, 243.973701668469),
+    TrajectoryPoint(690, 243.290275780156),
+    TrajectoryPoint(700, 242.606736620884),
+    TrajectoryPoint(710, 241.923040328153),
+    TrajectoryPoint(720, 241.23920538233),
+    TrajectoryPoint(730, 240.555224440028),
+    TrajectoryPoint(740, 239.871088341122),
+    TrajectoryPoint(750, 239.186787823495),
+    TrajectoryPoint(760, 238.502312831033),
+    TrajectoryPoint(770, 237.817608922812),
+    TrajectoryPoint(780, 237.132708127409),
+    TrajectoryPoint(790, 236.447601039962),
+    TrajectoryPoint(800, 235.762278155135),
+    TrajectoryPoint(810, 235.076729869037),
+    TrajectoryPoint(820, 234.39094648083),
+    TrajectoryPoint(830, 233.704891884481),
+    TrajectoryPoint(840, 233.018554126146),
+    TrajectoryPoint(850, 232.331948690626),
+    TrajectoryPoint(860, 231.645065695013),
+    TrajectoryPoint(870, 230.957895156788),
+    TrajectoryPoint(880, 230.270426994446),
+    TrajectoryPoint(890, 229.582651027917),
+    TrajectoryPoint(900, 228.894548232979),
+    TrajectoryPoint(910, 228.206068791782),
+    TrajectoryPoint(920, 227.517248524449),
+    TrajectoryPoint(930, 226.828077023166),
+    TrajectoryPoint(940, 226.138543776481),
+    TrajectoryPoint(950, 225.448638169104),
+    TrajectoryPoint(960, 224.758349481575),
+    TrajectoryPoint(970, 224.0676668898),
+    TrajectoryPoint(980, 223.376579464479),
+    TrajectoryPoint(990, 222.685050692273),
+    TrajectoryPoint(1000, 221.993064690274),
+    TrajectoryPoint(1010, 221.300639720334),
+    TrajectoryPoint(1020, 220.607764565613),
+    TrajectoryPoint(1030, 219.914427897154),
+    TrajectoryPoint(1040, 219.220618272985),
+    TrajectoryPoint(1050, 218.526324137143),
+    TrajectoryPoint(1060, 217.831533818629),
+    TrajectoryPoint(1070, 217.136235530293),
+    TrajectoryPoint(1080, 216.440417367657),
+    TrajectoryPoint(1090, 215.744067307687),
+    TrajectoryPoint(1100, 215.0471732075),
+    TrajectoryPoint(1110, 214.349681234015),
+    TrajectoryPoint(1120, 213.651617827089),
+    TrajectoryPoint(1130, 212.952973951545),
+    TrajectoryPoint(1140, 212.25373709601),
+    TrajectoryPoint(1150, 211.553894621211),
+    TrajectoryPoint(1160, 210.853433758546),
+    TrajectoryPoint(1170, 210.152341608619),
+    TrajectoryPoint(1180, 209.450605139728),
+    TrajectoryPoint(1190, 208.748211186327),
+    TrajectoryPoint(1200, 208.045146447444),
+    TrajectoryPoint(1210, 207.341397485074),
+    TrajectoryPoint(1220, 206.63695072253),
+    TrajectoryPoint(1230, 205.931792442771),
+    TrajectoryPoint(1240, 205.225908786697),
+    TrajectoryPoint(1250, 204.519285751413),
+    TrajectoryPoint(1260, 203.811909188463),
+    TrajectoryPoint(1270, 203.103764802039),
+    TrajectoryPoint(1280, 202.39483814716),
+    TrajectoryPoint(1290, 201.685114627816),
+    TrajectoryPoint(1300, 200.974579495099),
+    TrajectoryPoint(1310, 200.263217845284),
+    TrajectoryPoint(1320, 199.551014617905),
+    TrajectoryPoint(1330, 198.83795459378),
+    TrajectoryPoint(1340, 198.124022393023),
+    TrajectoryPoint(1350, 197.409202473016),
+    TrajectoryPoint(1360, 196.693479126357),
+    TrajectoryPoint(1370, 195.976836478773),
+    TrajectoryPoint(1380, 195.259258487002),
+    TrajectoryPoint(1390, 194.540728936648),
+    TrajectoryPoint(1400, 193.821231439988),
+    TrajectoryPoint(1410, 193.100749433768),
+    TrajectoryPoint(1420, 192.379266176939),
+    TrajectoryPoint(1430, 191.656764748376),
+    TrajectoryPoint(1440, 190.933228044551),
+    TrajectoryPoint(1450, 190.20863877717),
+    TrajectoryPoint(1460, 189.482979470771),
+    TrajectoryPoint(1470, 188.756232460279),
+    TrajectoryPoint(1480, 188.028379888526),
+    TrajectoryPoint(1490, 187.299403703721),
+    TrajectoryPoint(1500, 186.569285656882),
+    TrajectoryPoint(1510, 185.838007299214),
+    TrajectoryPoint(1520, 185.105507192333),
+    TrajectoryPoint(1530, 184.371765601887),
+    TrajectoryPoint(1540, 183.636801220906),
+    TrajectoryPoint(1550, 182.900594630179),
+    TrajectoryPoint(1560, 182.163126195348),
+    TrajectoryPoint(1570, 181.424376063945),
+    TrajectoryPoint(1580, 180.684324162368),
+    TrajectoryPoint(1590, 179.942950192808),
+    TrajectoryPoint(1600, 179.200233630109),
+    TrajectoryPoint(1610, 178.456153718572),
+    TrajectoryPoint(1620, 177.710613893524),
+    TrajectoryPoint(1630, 176.963598576561),
+    TrajectoryPoint(1640, 176.215148726596),
+    TrajectoryPoint(1650, 175.465242470346),
+    TrajectoryPoint(1660, 174.713857684942),
+    TrajectoryPoint(1670, 173.96097199428),
+    TrajectoryPoint(1680, 173.206562765285),
+    TrajectoryPoint(1690, 172.4505311038),
+    TrajectoryPoint(1700, 171.692810521247),
+    TrajectoryPoint(1710, 170.933488157364),
+    TrajectoryPoint(1720, 170.172540133522),
+    TrajectoryPoint(1730, 169.409942291753),
+    TrajectoryPoint(1740, 168.64567019047),
+    TrajectoryPoint(1750, 167.879554206843),
+    TrajectoryPoint(1760, 167.111614131452),
+    TrajectoryPoint(1770, 166.34191476266),
+    TrajectoryPoint(1780, 165.570430283399),
+    TrajectoryPoint(1790, 164.797134567163),
+    TrajectoryPoint(1800, 164.021816777897),
+    TrajectoryPoint(1810, 163.244527411786),
+    TrajectoryPoint(1820, 162.465335453913),
+    TrajectoryPoint(1830, 161.684213275933),
+    TrajectoryPoint(1840, 160.901044112436),
+    TrajectoryPoint(1850, 160.115645042362),
+    TrajectoryPoint(1860, 159.328218769358),
+    TrajectoryPoint(1870, 158.53873604667),
+    TrajectoryPoint(1880, 157.747046321975),
+    TrajectoryPoint(1890, 156.952984241906),
+    TrajectoryPoint(1900, 156.15676266115),
+    TrajectoryPoint(1910, 155.358350584961),
+    TrajectoryPoint(1920, 154.557416650126),
+    TrajectoryPoint(1930, 153.754102012342),
+    TrajectoryPoint(1940, 152.948487268968),
+    TrajectoryPoint(1950, 152.140359660956),
+    TrajectoryPoint(1960, 151.329578949268),
+    TrajectoryPoint(1970, 150.516383010107),
+    TrajectoryPoint(1980, 149.700589632649),
+    TrajectoryPoint(1990, 148.881949787186),
+    TrajectoryPoint(2000, 148.060773715051),
+    TrajectoryPoint(2010, 147.23681120013),
+    TrajectoryPoint(2020, 146.409897777274),
+    TrajectoryPoint(2030, 145.580320852129),
+    TrajectoryPoint(2040, 144.747652426745),
+    TrajectoryPoint(2050, 143.912028131551),
+    TrajectoryPoint(2060, 143.073559183707),
+    TrajectoryPoint(2070, 142.231659479903),
+    TrajectoryPoint(2080, 141.386862559265),
+    TrajectoryPoint(2090, 140.538704393667),
+    TrajectoryPoint(2100, 139.687290783155),
+    TrajectoryPoint(2110, 138.832628253849),
+    TrajectoryPoint(2120, 137.974346110366),
+    TrajectoryPoint(2130, 137.112871033484),
+    TrajectoryPoint(2140, 136.247457672887),
+    TrajectoryPoint(2150, 135.378777012577),
+    TrajectoryPoint(2160, 134.506027212234),
+    TrajectoryPoint(2170, 133.629822593518),
+    TrajectoryPoint(2180, 132.74942754111),
+    TrajectoryPoint(2190, 131.865407817577),
+    TrajectoryPoint(2200, 130.977000888017),
+    TrajectoryPoint(2210, 130.084860666808),
+    TrajectoryPoint(2220, 129.188057115323),
+    TrajectoryPoint(2230, 128.287304916148),
+    TrajectoryPoint(2240, 127.381871800353),
+    TrajectoryPoint(2250, 126.472088647913),
+    TrajectoryPoint(2260, 125.557684168049),
+    TrajectoryPoint(2270, 124.638428526806),
+    TrajectoryPoint(2280, 123.714631056739),
+    TrajectoryPoint(2290, 122.785501210383),
+    TrajectoryPoint(2300, 121.851503075104),
+    TrajectoryPoint(2310, 120.912440830451),
+    TrajectoryPoint(2320, 119.967735287543),
+    TrajectoryPoint(2330, 119.017796100875),
+    TrajectoryPoint(2340, 118.062388321257),
+    TrajectoryPoint(2350, 117.100901468559),
+    TrajectoryPoint(2360, 116.133708726001),
+    TrajectoryPoint(2370, 115.160636824536),
+    TrajectoryPoint(2380, 114.181194958593),
+    TrajectoryPoint(2390, 113.195309277643),
+    TrajectoryPoint(2400, 112.203005205245),
+    TrajectoryPoint(2410, 111.204083201297),
+    TrajectoryPoint(2420, 110.198295295584),
+    TrajectoryPoint(2430, 109.185121788222),
+    TrajectoryPoint(2440, 108.164712722323),
+    TrajectoryPoint(2450, 107.136837632749),
+    TrajectoryPoint(2460, 106.101256915076),
+    TrajectoryPoint(2470, 105.057721388591),
+    TrajectoryPoint(2480, 104.005971833185),
+    TrajectoryPoint(2490, 102.945738498333),
+    TrajectoryPoint(2500, 101.876740582235),
+    TrajectoryPoint(2510, 100.798685679019),
+    TrajectoryPoint(2520, 99.7112691917454),
+    TrajectoryPoint(2530, 98.6141737087591),
+    TrajectoryPoint(2540, 97.5070683407233),
+    TrajectoryPoint(2550, 96.3896080154607),
+    TrajectoryPoint(2560, 95.2614327274642),
+    TrajectoryPoint(2570, 94.1221667386778),
+    TrajectoryPoint(2580, 92.9714177268462),
+    TrajectoryPoint(2590, 91.8087758774081),
+    TrajectoryPoint(2600, 90.6338129145457),
+    TrajectoryPoint(2610, 89.4458787073954),
+    TrajectoryPoint(2620, 88.2442247651321),
+    TrajectoryPoint(2630, 87.0287420336022),
+    TrajectoryPoint(2640, 85.7989105704131),
+    TrajectoryPoint(2650, 84.5534152660321),
+    TrajectoryPoint(2660, 83.2921150807374),
+    TrajectoryPoint(2670, 82.014401350699),
+    TrajectoryPoint(2680, 80.7187073523509),
+    TrajectoryPoint(2690, 79.4052657110939),
+    TrajectoryPoint(2700, 78.0718839085126),
+    TrajectoryPoint(2710, 76.7187188147948),
+    TrajectoryPoint(2720, 75.3439262036785),
+    TrajectoryPoint(2730, 73.9464719823418),
+    TrajectoryPoint(2740, 72.5253960116352),
+    TrajectoryPoint(2750, 71.0790628106865),
+    TrajectoryPoint(2760, 69.605352224911),
+    TrajectoryPoint(2770, 68.1030785439597),
+    TrajectoryPoint(2780, 66.5702415163878),
+    TrajectoryPoint(2790, 65.0046553770575),
+    TrajectoryPoint(2800, 63.4039270807116),
+    TrajectoryPoint(2810, 61.7652383944638),
+    TrajectoryPoint(2820, 60.0849510939485),
+    TrajectoryPoint(2830, 58.3603874267216),
+    TrajectoryPoint(2840, 56.5871637456788),
+    TrajectoryPoint(2850, 54.7603182114602),
+    TrajectoryPoint(2860, 52.8743051150524),
+    TrajectoryPoint(2870, 50.9229401999799),
+    TrajectoryPoint(2880, 48.8980914998915),
+    TrajectoryPoint(2890, 46.7902437443092),
+    TrajectoryPoint(2900, 44.5881928976516),
+    TrajectoryPoint(2910, 42.2757031657274),
+    TrajectoryPoint(2920, 39.8351667536236),
+    TrajectoryPoint(2930, 37.2407994157408),
+    TrajectoryPoint(2940, 34.4583574305346),
+    TrajectoryPoint(2950, 31.4369990092808),
+    TrajectoryPoint(2960, 28.101257203988),
+    TrajectoryPoint(2970, 24.3198210242276),
+    TrajectoryPoint(2980, 19.8430839205536),
+    TrajectoryPoint(2990, 14.019128463856),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t2_closed[] = {
+    TrajectoryPoint(0, 289.990532647539),
+    TrajectoryPoint(10, 289.290629334632),
+    TrajectoryPoint(20, 288.591524150995),
+    TrajectoryPoint(30, 287.893139205481),
+    TrajectoryPoint(40, 287.195935188177),
+    TrajectoryPoint(50, 286.499447145895),
+    TrajectoryPoint(60, 285.80361876589),
+    TrajectoryPoint(70, 285.108716919421),
+    TrajectoryPoint(80, 284.414616111409),
+    TrajectoryPoint(90, 283.72111733734),
+    TrajectoryPoint(100, 283.028305908279),
+    TrajectoryPoint(110, 282.336376766393),
+    TrajectoryPoint(120, 281.644994825122),
+    TrajectoryPoint(130, 280.95415627984),
+    TrajectoryPoint(140, 280.264118377312),
+    TrajectoryPoint(150, 279.574653525184),
+    TrajectoryPoint(160, 278.885679483621),
+    TrajectoryPoint(170, 278.197269942942),
+    TrajectoryPoint(180, 277.509534392015),
+    TrajectoryPoint(190, 276.822239615796),
+    TrajectoryPoint(200, 276.135380289327),
+    TrajectoryPoint(210, 275.449113629437),
+    TrajectoryPoint(220, 274.763323659928),
+    TrajectoryPoint(230, 274.077921314087),
+    TrajectoryPoint(240, 273.392900446543),
+    TrajectoryPoint(250, 272.708449809811),
+    TrajectoryPoint(260, 272.024342074227),
+    TrajectoryPoint(270, 271.340570164451),
+    TrajectoryPoint(280, 270.657164681517),
+    TrajectoryPoint(290, 269.974198011273),
+    TrajectoryPoint(300, 269.291523580107),
+    TrajectoryPoint(310, 268.609134666897),
+    TrajectoryPoint(320, 267.927069649664),
+    TrajectoryPoint(330, 267.245349080588),
+    TrajectoryPoint(340, 266.563872345745),
+    TrajectoryPoint(350, 265.882632346677),
+    TrajectoryPoint(360, 265.201657131346),
+    TrajectoryPoint(370, 264.520957818512),
+    TrajectoryPoint(380, 263.840455322292),
+    TrajectoryPoint(390, 263.160142268207),
+    TrajectoryPoint(400, 262.480027897729),
+    TrajectoryPoint(410, 261.800136004061),
+    TrajectoryPoint(420, 261.120395239726),
+    TrajectoryPoint(430, 260.440798023814),
+    TrajectoryPoint(440, 259.761336527479),
+    TrajectoryPoint(450, 259.082045843505),
+    TrajectoryPoint(460, 258.402864059875),
+    TrajectoryPoint(470, 257.723781206795),
+    TrajectoryPoint(480, 257.04478933079),
+    TrajectoryPoint(490, 256.365893858026),
+    TrajectoryPoint(500, 255.687076890643),
+    TrajectoryPoint(510, 255.008315364283),
+    TrajectoryPoint(520, 254.329601218851),
+    TrajectoryPoint(530, 253.650926225461),
+    TrajectoryPoint(540, 252.972286353988),
+    TrajectoryPoint(550, 252.293660416161),
+    TrajectoryPoint(560, 251.615039235209),
+    TrajectoryPoint(570, 250.936414499555),
+    TrajectoryPoint(580, 250.257777392541),
+    TrajectoryPoint(590, 249.579107520317),
+    TrajectoryPoint(600, 248.900400574317),
+    TrajectoryPoint(610, 248.221648151675),
+    TrajectoryPoint(620, 247.54284172103),
+    TrajectoryPoint(630, 246.863972630215),
+    TrajectoryPoint(640, 246.185007937019),
+    TrajectoryPoint(650, 245.505954714799),
+    TrajectoryPoint(660, 244.826806064946),
+    TrajectoryPoint(670, 244.147553243614),
+    TrajectoryPoint(680, 243.468187397823),
+    TrajectoryPoint(690, 242.788682034575),
+    TrajectoryPoint(700, 242.109022336875),
+    TrajectoryPoint(710, 241.429217331709),
+    TrajectoryPoint(720, 240.749258053238),
+    TrajectoryPoint(730, 240.069135432812),
+    TrajectoryPoint(740, 239.388840302282),
+    TrajectoryPoint(750, 238.708334729357),
+    TrajectoryPoint(760, 238.027616389498),
+    TrajectoryPoint(770, 237.346693489852),
+    TrajectoryPoint(780, 236.665556721415),
+    TrajectoryPoint(790, 235.984196676983),
+    TrajectoryPoint(800, 235.302603852965),
+    TrajectoryPoint(810, 234.620758226245),
+    TrajectoryPoint(820, 233.938615799731),
+    TrajectoryPoint(830, 233.256208509574),
+    TrajectoryPoint(840, 232.573526676086),
+    TrajectoryPoint(850, 231.890560521205),
+    TrajectoryPoint(860, 231.207300169286),
+    TrajectoryPoint(870, 230.523735647671),
+    TrajectoryPoint(880, 229.839856776478),
+    TrajectoryPoint(890, 229.155595480256),
+    TrajectoryPoint(900, 228.470997524063),
+    TrajectoryPoint(910, 227.786052715702),
+    TrajectoryPoint(920, 227.10075076137),
+    TrajectoryPoint(930, 226.415081265576),
+    TrajectoryPoint(940, 225.729033730923),
+    TrajectoryPoint(950, 225.04259755775),
+    TrajectoryPoint(960, 224.355762043657),
+    TrajectoryPoint(970, 223.668483317803),
+    TrajectoryPoint(980, 222.980758770208),
+    TrajectoryPoint(990, 222.292601340314),
+    TrajectoryPoint(1000, 221.604000048377),
+    TrajectoryPoint(1010, 220.914943805308),
+    TrajectoryPoint(1020, 220.225421411858),
+    TrajectoryPoint(1030, 219.535421557711),
+    TrajectoryPoint(1040, 218.844932820517),
+    TrajectoryPoint(1050, 218.15394366484),
+    TrajectoryPoint(1060, 217.462442441048),
+    TrajectoryPoint(1070, 216.770417384147),
+    TrajectoryPoint(1080, 216.077821062503),
+    TrajectoryPoint(1090, 215.384664298062),
+    TrajectoryPoint(1100, 214.690948191719),
+    TrajectoryPoint(1110, 213.996660628405),
+    TrajectoryPoint(1120, 213.301789369925),
+    TrajectoryPoint(1130, 212.606322053624),
+    TrajectoryPoint(1140, 211.910246191012),
+    TrajectoryPoint(1150, 211.213549166341),
+    TrajectoryPoint(1160, 210.516218235156),
+    TrajectoryPoint(1170, 209.818240522791),
+    TrajectoryPoint(1180, 209.119603022842),
+    TrajectoryPoint(1190, 208.420292595602),
+    TrajectoryPoint(1200, 207.720295966463),
+    TrajectoryPoint(1210, 207.019599724287),
+    TrajectoryPoint(1220, 206.318190319742),
+    TrajectoryPoint(1230, 205.616054063619),
+    TrajectoryPoint(1240, 204.913177125106),
+    TrajectoryPoint(1250, 204.209545530044),
+    TrajectoryPoint(1260, 203.505145159153),
+    TrajectoryPoint(1270, 202.799961746222),
+    TrajectoryPoint(1280, 202.093980876282),
+    TrajectoryPoint(1290, 201.387187983746),
+    TrajectoryPoint(1300, 200.679568350519),
+    TrajectoryPoint(1310, 199.971107104085),
+    TrajectoryPoint(1320, 199.261789215561),
+    TrajectoryPoint(1330, 198.551599497726),
+    TrajectoryPoint(1340, 197.840522603016),
+    TrajectoryPoint(1350, 197.128543021498),
+    TrajectoryPoint(1360, 196.415645078801),
+    TrajectoryPoint(1370, 195.701812934028),
+    TrajectoryPoint(1380, 194.987030577632),
+    TrajectoryPoint(1390, 194.271281829256),
+    TrajectoryPoint(1400, 193.554550335542),
+    TrajectoryPoint(1410, 192.836819567913),
+    TrajectoryPoint(1420, 192.118072820307),
+    TrajectoryPoint(1430, 191.398293206884),
+    TrajectoryPoint(1440, 190.677463659694),
+    TrajectoryPoint(1450, 189.955566926305),
+    TrajectoryPoint(1460, 189.232585567395),
+    TrajectoryPoint(1470, 188.508501954297),
+    TrajectoryPoint(1480, 187.783298266512),
+    TrajectoryPoint(1490, 187.056956489174),
+    TrajectoryPoint(1500, 186.329458410464),
+    TrajectoryPoint(1510, 185.600785618995),
+    TrajectoryPoint(1520, 184.870919501133),
+    TrajectoryPoint(1530, 184.139841238284),
+    TrajectoryPoint(1540, 183.407455774352),
+    TrajectoryPoint(1550, 182.673796287573),
+    TrajectoryPoint(1560, 181.938860700964),
+    TrajectoryPoint(1570, 181.202629201723),
+    TrajectoryPoint(1580, 180.46508175607),
+    TrajectoryPoint(1590, 179.726198106159),
+    TrajectoryPoint(1600, 178.985957766931),
+    TrajectoryPoint(1610, 178.244340022909),
+    TrajectoryPoint(1620, 177.50132392493),
+    TrajectoryPoint(1630, 176.756810850301),
+    TrajectoryPoint(1640, 176.010779537374),
+    TrajectoryPoint(1650, 175.26327789023),
+    TrajectoryPoint(1660, 174.514283827528),
+    TrajectoryPoint(1670, 173.763775014745),
+    TrajectoryPoint(1680, 173.011728860433),
+    TrajectoryPoint(1690, 172.258122512408),
+    TrajectoryPoint(1700, 171.502802299328),
+    TrajectoryPoint(1710, 170.745799826362),
+    TrajectoryPoint(1720, 169.987158029808),
+    TrajectoryPoint(1730, 169.226852794084),
+    TrajectoryPoint(1740, 168.464859719965),
+    TrajectoryPoint(1750, 167.701148737858),
+    TrajectoryPoint(1760, 166.935458415675),
+    TrajectoryPoint(1770, 166.167995325343),
+    TrajectoryPoint(1780, 165.398733692557),
+    TrajectoryPoint(1790, 164.627647433495),
+    TrajectoryPoint(1800, 163.854662367914),
+    TrajectoryPoint(1810, 163.079553375224),
+    TrajectoryPoint(1820, 162.302528510133),
+    TrajectoryPoint(1830, 161.523560187086),
+    TrajectoryPoint(1840, 160.742620481751),
+    TrajectoryPoint(1850, 159.959392392691),
+    TrajectoryPoint(1860, 159.174077919573),
+    TrajectoryPoint(1870, 158.386693913255),
+    TrajectoryPoint(1880, 157.597210803919),
+    TrajectoryPoint(1890, 156.805229841621),
+    TrajectoryPoint(1900, 156.011065255406),
+    TrajectoryPoint(1910, 155.214697246271),
+    TrajectoryPoint(1920, 154.415922921581),
+    TrajectoryPoint(1930, 153.614623793633),
+    TrajectoryPoint(1940, 152.811011747412),
+    TrajectoryPoint(1950, 152.005000931991),
+    TrajectoryPoint(1960, 151.196194495543),
+    TrajectoryPoint(1970, 150.384960134497),
+    TrajectoryPoint(1980, 149.57124041917),
+    TrajectoryPoint(1990, 148.754533875081),
+    TrajectoryPoint(2000, 147.935278523036),
+    TrajectoryPoint(2010, 147.113346278167),
+    TrajectoryPoint(2020, 146.288325452034),
+    TrajectoryPoint(2030, 145.460628658026),
+    TrajectoryPoint(2040, 144.629946895004),
+    TrajectoryPoint(2050, 143.796174767656),
+    TrajectoryPoint(2060, 142.959592799733),
+    TrajectoryPoint(2070, 142.119588813678),
+    TrajectoryPoint(2080, 141.276603912625),
+    TrajectoryPoint(2090, 140.430360174269),
+    TrajectoryPoint(2100, 139.580730880441),
+    TrajectoryPoint(2110, 138.727954136291),
+    TrajectoryPoint(2120, 137.871428705336),
+    TrajectoryPoint(2130, 137.011737812166),
+    TrajectoryPoint(2140, 136.148126450635),
+    TrajectoryPoint(2150, 135.281162988202),
+    TrajectoryPoint(2160, 134.410225809084),
+    TrajectoryPoint(2170, 133.535711065008),
+    TrajectoryPoint(2180, 132.65709956286),
+    TrajectoryPoint(2190, 131.774742497623),
+    TrajectoryPoint(2200, 130.888089926654),
+    TrajectoryPoint(2210, 129.997586473053),
+    TrajectoryPoint(2220, 129.102506764339),
+    TrajectoryPoint(2230, 128.203465468637),
+    TrajectoryPoint(2240, 127.299625668779),
+    TrajectoryPoint(2250, 126.391523900619),
+    TrajectoryPoint(2260, 125.478685893337),
+    TrajectoryPoint(2270, 124.561082042761),
+    TrajectoryPoint(2280, 123.638888122458),
+    TrajectoryPoint(2290, 122.711316602962),
+    TrajectoryPoint(2300, 121.778925986366),
+    TrajectoryPoint(2310, 120.841361773559),
+    TrajectoryPoint(2320, 119.898233943148),
+    TrajectoryPoint(2330, 118.949857663134),
+    TrajectoryPoint(2340, 117.995906426099),
+    TrajectoryPoint(2350, 117.035952554308),
+    TrajectoryPoint(2360, 116.07027781758),
+    TrajectoryPoint(2370, 115.098708862294),
+    TrajectoryPoint(2380, 114.120667320821),
+    TrajectoryPoint(2390, 113.136254502301),
+    TrajectoryPoint(2400, 112.145408092451),
+    TrajectoryPoint(2410, 111.147928478732),
+    TrajectoryPoint(2420, 110.143485075267),
+    TrajectoryPoint(2430, 109.131723764081),
+    TrajectoryPoint(2440, 108.112711507268),
+    TrajectoryPoint(2450, 107.086217777984),
+    TrajectoryPoint(2460, 106.052002913153),
+    TrajectoryPoint(2470, 105.009817676376),
+    TrajectoryPoint(2480, 103.95940279472),
+    TrajectoryPoint(2490, 102.900488467612),
+    TrajectoryPoint(2500, 101.832793845895),
+    TrajectoryPoint(2510, 100.756026478954),
+    TrajectoryPoint(2520, 99.6698817276448),
+    TrajectoryPoint(2530, 98.5740421405746),
+    TrajectoryPoint(2540, 97.4681767910725),
+    TrajectoryPoint(2550, 96.3519405719673),
+    TrajectoryPoint(2560, 95.2249734450403),
+    TrajectoryPoint(2570, 94.0868996417504),
+    TrajectoryPoint(2580, 92.937326811532),
+    TrajectoryPoint(2590, 91.7758451136384),
+    TrajectoryPoint(2600, 90.6020262481441),
+    TrajectoryPoint(2610, 89.4152799633214),
+    TrajectoryPoint(2620, 88.2147361589403),
+    TrajectoryPoint(2630, 87.000347402234),
+    TrajectoryPoint(2640, 85.7715937359367),
+    TrajectoryPoint(2650, 84.527214583509),
+    TrajectoryPoint(2660, 83.2669577874919),
+    TrajectoryPoint(2670, 81.9903236346375),
+    TrajectoryPoint(2680, 80.6956383732317),
+    TrajectoryPoint(2690, 79.3832391537127),
+    TrajectoryPoint(2700, 78.0508312241006),
+    TrajectoryPoint(2710, 76.6986708698004),
+    TrajectoryPoint(2720, 75.3248170873549),
+    TrajectoryPoint(2730, 73.9283294471792),
+    TrajectoryPoint(2740, 72.5082003818366),
+    TrajectoryPoint(2750, 71.0627519044716),
+    TrajectoryPoint(2760, 69.5899493514023),
+    TrajectoryPoint(2770, 68.088563550995),
+    TrajectoryPoint(2780, 66.5565940725129),
+    TrajectoryPoint(2790, 64.9918549815491),
+    TrajectoryPoint(2800, 63.3919530733085),
+    TrajectoryPoint(2810, 61.7541041282596),
+    TrajectoryPoint(2820, 60.0745997507789),
+    TrajectoryPoint(2830, 58.3507978337962),
+    TrajectoryPoint(2840, 56.5783444803655),
+    TrajectoryPoint(2850, 54.7522159954608),
+    TrajectoryPoint(2860, 52.8669251254865),
+    TrajectoryPoint(2870, 50.9162572872799),
+    TrajectoryPoint(2880, 48.8920800877321),
+    TrajectoryPoint(2890, 46.7848778599192),
+    TrajectoryPoint(2900, 44.5834462029579),
+    TrajectoryPoint(2910, 42.2715684944862),
+    TrajectoryPoint(2920, 39.8316136279946),
+    TrajectoryPoint(2930, 37.2377965794946),
+    TrajectoryPoint(2940, 34.4558879526583),
+    TrajectoryPoint(2950, 31.4350265460602),
+    TrajectoryPoint(2960, 28.0997443226259),
+    TrajectoryPoint(2970, 24.318748429892),
+    TrajectoryPoint(2980, 19.8424113696207),
+    TrajectoryPoint(2990, 14.018817664886),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t3_closed[] = {
+    TrajectoryPoint(0, 289.182107830101),
+    TrajectoryPoint(10, 288.487638116439),
+    TrajectoryPoint(20, 287.794369522951),
+    TrajectoryPoint(30, 287.102211933116),
+    TrajectoryPoint(40, 286.410695187298),
+    TrajectoryPoint(50, 285.719817704691),
+    TrajectoryPoint(60, 285.029943027159),
+    TrajectoryPoint(70, 284.340728032277),
+    TrajectoryPoint(80, 283.65209586107),
+    TrajectoryPoint(90, 282.964224486183),
+    TrajectoryPoint(100, 282.277101384937),
+    TrajectoryPoint(110, 281.590507383385),
+    TrajectoryPoint(120, 280.904450122347),
+    TrajectoryPoint(130, 280.219221744867),
+    TrajectoryPoint(140, 279.534471301906),
+    TrajectoryPoint(150, 278.850194443121),
+    TrajectoryPoint(160, 278.166533743119),
+    TrajectoryPoint(170, 277.483443750756),
+    TrajectoryPoint(180, 276.800778293557),
+    TrajectoryPoint(190, 276.118531957525),
+    TrajectoryPoint(200, 275.436914717286),
+    TrajectoryPoint(210, 274.755690398112),
+    TrajectoryPoint(220, 274.074838303812),
+    TrajectoryPoint(230, 273.394405066399),
+    TrajectoryPoint(240, 272.714461114381),
+    TrajectoryPoint(250, 272.034844647825),
+    TrajectoryPoint(260, 271.355549436037),
+    TrajectoryPoint(270, 270.676648132464),
+    TrajectoryPoint(280, 269.998117180636),
+    TrajectoryPoint(290, 269.31986469574),
+    TrajectoryPoint(300, 268.641883957194),
+    TrajectoryPoint(310, 267.964246231187),
+    TrajectoryPoint(320, 267.286895934092),
+    TrajectoryPoint(330, 266.609776440362),
+    TrajectoryPoint(340, 265.932880673336),
+    TrajectoryPoint(350, 265.256262317718),
+    TrajectoryPoint(360, 264.579872075959),
+    TrajectoryPoint(370, 263.903666326736),
+    TrajectoryPoint(380, 263.227637732365),
+    TrajectoryPoint(390, 262.551815422004),
+    TrajectoryPoint(400, 261.876175277844),
+    TrajectoryPoint(410, 261.200674608831),
+    TrajectoryPoint(420, 260.525305881423),
+    TrajectoryPoint(430, 259.850074355068),
+    TrajectoryPoint(440, 259.174983876365),
+    TrajectoryPoint(450, 258.499989049415),
+    TrajectoryPoint(460, 257.825082186983),
+    TrajectoryPoint(470, 257.150255398236),
+    TrajectoryPoint(480, 256.475518987411),
+    TrajectoryPoint(490, 255.800839060547),
+    TrajectoryPoint(500, 255.126204212873),
+    TrajectoryPoint(510, 254.451606451008),
+    TrajectoryPoint(520, 253.777039039285),
+    TrajectoryPoint(530, 253.102490277219),
+    TrajectoryPoint(540, 252.427944642911),
+    TrajectoryPoint(550, 251.753394045062),
+    TrajectoryPoint(560, 251.078830246711),
+    TrajectoryPoint(570, 250.404239549638),
+    TrajectoryPoint(580, 249.729606329369),
+    TrajectoryPoint(590, 249.054926860967),
+    TrajectoryPoint(600, 248.380192818114),
+    TrajectoryPoint(610, 247.705395749725),
+    TrajectoryPoint(620, 247.030517745045),
+    TrajectoryPoint(630, 246.355538213215),
+    TrajectoryPoint(640, 245.680463309527),
+    TrajectoryPoint(650, 245.005284486521),
+    TrajectoryPoint(660, 244.329993085172),
+    TrajectoryPoint(670, 243.654580340112),
+    TrajectoryPoint(680, 242.97899931081),
+    TrajectoryPoint(690, 242.303272242708),
+    TrajectoryPoint(700, 241.627391969393),
+    TrajectoryPoint(710, 240.951349614003),
+    TrajectoryPoint(720, 240.275136199286),
+    TrajectoryPoint(730, 239.598735259265),
+    TrajectoryPoint(740, 238.922102531394),
+    TrajectoryPoint(750, 238.245267141656),
+    TrajectoryPoint(760, 237.568219974598),
+    TrajectoryPoint(770, 236.89095181662),
+    TrajectoryPoint(780, 236.213453358014),
+    TrajectoryPoint(790, 235.535715194701),
+    TrajectoryPoint(800, 234.857681583719),
+    TrajectoryPoint(810, 234.179376911183),
+    TrajectoryPoint(820, 233.500800847528),
+    TrajectoryPoint(830, 232.821943814915),
+    TrajectoryPoint(840, 232.142796139083),
+    TrajectoryPoint(850, 231.463348050087),
+    TrajectoryPoint(860, 230.783589682829),
+    TrajectoryPoint(870, 230.103465159568),
+    TrajectoryPoint(880, 229.422995047235),
+    TrajectoryPoint(890, 228.742182562763),
+    TrajectoryPoint(900, 228.061017624598),
+    TrajectoryPoint(910, 227.379490051459),
+    TrajectoryPoint(920, 226.697589562234),
+    TrajectoryPoint(930, 226.015305775741),
+    TrajectoryPoint(940, 225.332628210357),
+    TrajectoryPoint(950, 224.64951167313),
+    TrajectoryPoint(960, 223.965954940055),
+    TrajectoryPoint(970, 223.281971459366),
+    TrajectoryPoint(980, 222.597550481904),
+    TrajectoryPoint(990, 221.912681151786),
+    TrajectoryPoint(1000, 221.227352505668),
+    TrajectoryPoint(1010, 220.541553471925),
+    TrajectoryPoint(1020, 219.855272869754),
+    TrajectoryPoint(1030, 219.168499408195),
+    TrajectoryPoint(1040, 218.481221685092),
+    TrajectoryPoint(1050, 217.793413282696),
+    TrajectoryPoint(1060, 217.105040699245),
+    TrajectoryPoint(1070, 216.416129220919),
+    TrajectoryPoint(1080, 215.726667113262),
+    TrajectoryPoint(1090, 215.036642523188),
+    TrajectoryPoint(1100, 214.346043477744),
+    TrajectoryPoint(1110, 213.654857882841),
+    TrajectoryPoint(1120, 212.963073521924),
+    TrajectoryPoint(1130, 212.270678054611),
+    TrajectoryPoint(1140, 211.577659015282),
+    TrajectoryPoint(1150, 210.884003811634),
+    TrajectoryPoint(1160, 210.189699723196),
+    TrajectoryPoint(1170, 209.494733899818),
+    TrajectoryPoint(1180, 208.799093360109),
+    TrajectoryPoint(1190, 208.102764989864),
+    TrajectoryPoint(1200, 207.405735540444),
+    TrajectoryPoint(1210, 206.707991627129),
+    TrajectoryPoint(1220, 206.009519727452),
+    TrajectoryPoint(1230, 205.310303799033),
+    TrajectoryPoint(1240, 204.610315296992),
+    TrajectoryPoint(1250, 203.909559678483),
+    TrajectoryPoint(1260, 203.208022969636),
+    TrajectoryPoint(1270, 202.505691050197),
+    TrajectoryPoint(1280, 201.802549651752),
+    TrajectoryPoint(1290, 201.098584355917),
+    TrajectoryPoint(1300, 200.393780592496),
+    TrajectoryPoint(1310, 199.688123637622),
+    TrajectoryPoint(1320, 198.981598611851),
+    TrajectoryPoint(1330, 198.274190478238),
+    TrajectoryPoint(1340, 197.56588404038),
+    TrajectoryPoint(1350, 196.856663940426),
+    TrajectoryPoint(1360, 196.146514657056),
+    TrajectoryPoint(1370, 195.435420503433),
+    TrajectoryPoint(1380, 194.723365625114),
+    TrajectoryPoint(1390, 194.010308695131),
+    TrajectoryPoint(1400, 193.296252909082),
+    TrajectoryPoint(1410, 192.581183606465),
+    TrajectoryPoint(1420, 191.865084115041),
+    TrajectoryPoint(1430, 191.147937583066),
+    TrajectoryPoint(1440, 190.429726976956),
+    TrajectoryPoint(1450, 189.710435078906),
+    TrajectoryPoint(1460, 188.990044484474),
+    TrajectoryPoint(1470, 188.268537600125),
+    TrajectoryPoint(1480, 187.545896640728),
+    TrajectoryPoint(1490, 186.822103627015),
+    TrajectoryPoint(1500, 186.097140382996),
+    TrajectoryPoint(1510, 185.370988533322),
+    TrajectoryPoint(1520, 184.643629500611),
+    TrajectoryPoint(1530, 183.915044502719),
+    TrajectoryPoint(1540, 183.185214549962),
+    TrajectoryPoint(1550, 182.454087620405),
+    TrajectoryPoint(1560, 181.721602774448),
+    TrajectoryPoint(1570, 180.987808302819),
+    TrajectoryPoint(1580, 180.252684210011),
+    TrajectoryPoint(1590, 179.516210276581),
+    TrajectoryPoint(1600, 178.778366055993),
+    TrajectoryPoint(1610, 178.039130871408),
+    TrajectoryPoint(1620, 177.298483812401),
+    TrajectoryPoint(1630, 176.556403731627),
+    TrajectoryPoint(1640, 175.812777108933),
+    TrajectoryPoint(1650, 175.067602452673),
+    TrajectoryPoint(1660, 174.320921985024),
+    TrajectoryPoint(1670, 173.572713411345),
+    TrajectoryPoint(1680, 172.822954180107),
+    TrajectoryPoint(1690, 172.071621479073),
+    TrajectoryPoint(1700, 171.318692231397),
+    TrajectoryPoint(1710, 170.563943004238),
+    TrajectoryPoint(1720, 169.807533251097),
+    TrajectoryPoint(1730, 169.049446917602),
+    TrajectoryPoint(1740, 168.289659645109),
+    TrajectoryPoint(1750, 167.528146786912),
+    TrajectoryPoint(1760, 166.764765718723),
+    TrajectoryPoint(1770, 165.999467153305),
+    TrajectoryPoint(1780, 165.232357085834),
+    TrajectoryPoint(1790, 164.463409473346),
+    TrajectoryPoint(1800, 163.692597958339),
+    TrajectoryPoint(1810, 162.919685838993),
+    TrajectoryPoint(1820, 162.14475871462),
+    TrajectoryPoint(1830, 161.36787535874),
+    TrajectoryPoint(1840, 160.589007887833),
+    TrajectoryPoint(1850, 159.807969061943),
+    TrajectoryPoint(1860, 159.024698948165),
+    TrajectoryPoint(1870, 158.239346675455),
+    TrajectoryPoint(1880, 157.451882714642),
+    TrajectoryPoint(1890, 156.662035140382),
+    TrajectoryPoint(1900, 155.86986200023),
+    TrajectoryPoint(1910, 155.075472960758),
+    TrajectoryPoint(1920, 154.278790922891),
+    TrajectoryPoint(1930, 153.479443181285),
+    TrajectoryPoint(1940, 152.67777015486),
+    TrajectoryPoint(1950, 151.873739038617),
+    TrajectoryPoint(1960, 151.066915305604),
+    TrajectoryPoint(1970, 150.257580255098),
+    TrajectoryPoint(1980, 149.445770622936),
+    TrajectoryPoint(1990, 148.631035081752),
+    TrajectoryPoint(2000, 147.813639581047),
+    TrajectoryPoint(2010, 146.993647022485),
+    TrajectoryPoint(2020, 146.170486289793),
+    TrajectoryPoint(2030, 145.344610145469),
+    TrajectoryPoint(2040, 144.515853279567),
+    TrajectoryPoint(2050, 143.683874788175),
+    TrajectoryPoint(2060, 142.849074531548),
+    TrajectoryPoint(2070, 142.010953079031),
+    TrajectoryPoint(2080, 141.169723033753),
+    TrajectoryPoint(2090, 140.325334283944),
+    TrajectoryPoint(2100, 139.477433081159),
+    TrajectoryPoint(2110, 138.626464065991),
+    TrajectoryPoint(2120, 137.771659590004),
+    TrajectoryPoint(2130, 136.913658444504),
+    TrajectoryPoint(2140, 136.051831558164),
+    TrajectoryPoint(2150, 135.186531341384),
+    TrajectoryPoint(2160, 134.317350631723),
+    TrajectoryPoint(2170, 133.444472731043),
+    TrajectoryPoint(2180, 132.567589563416),
+    TrajectoryPoint(2190, 131.686843041269),
+    TrajectoryPoint(2200, 130.801890554278),
+    TrajectoryPoint(2210, 129.912971447264),
+    TrajectoryPoint(2220, 129.019563468995),
+    TrajectoryPoint(2230, 128.122154035541),
+    TrajectoryPoint(2240, 127.219883914503),
+    TrajectoryPoint(2250, 126.313411598424),
+    TrajectoryPoint(2260, 125.402091170407),
+    TrajectoryPoint(2270, 124.48608813533),
+    TrajectoryPoint(2280, 123.565385958573),
+    TrajectoryPoint(2290, 122.639386555774),
+    TrajectoryPoint(2300, 121.708553902917),
+    TrajectoryPoint(2310, 120.77244110872),
+    TrajectoryPoint(2320, 119.83084240012),
+    TrajectoryPoint(2330, 118.883980904618),
+    TrajectoryPoint(2340, 117.931440972961),
+    TrajectoryPoint(2350, 116.972972927859),
+    TrajectoryPoint(2360, 116.008769517596),
+    TrajectoryPoint(2370, 115.0386573072),
+    TrajectoryPoint(2380, 114.061972709715),
+    TrajectoryPoint(2390, 113.07898752469),
+    TrajectoryPoint(2400, 112.089554031402),
+    TrajectoryPoint(2410, 111.093472547498),
+    TrajectoryPoint(2420, 110.090332102255),
+    TrajectoryPoint(2430, 109.079939701269),
+    TrajectoryPoint(2440, 108.062281456774),
+    TrajectoryPoint(2450, 107.037126782327),
+    TrajectoryPoint(2460, 106.004235958171),
+    TrajectoryPoint(2470, 104.963359694045),
+    TrajectoryPoint(2480, 103.914238665882),
+    TrajectoryPoint(2490, 102.856603024624),
+    TrajectoryPoint(2500, 101.790171875195),
+    TrajectoryPoint(2510, 100.714618329294),
+    TrajectoryPoint(2520, 99.6296978451342),
+    TrajectoryPoint(2530, 98.5351188831332),
+    TrajectoryPoint(2540, 97.4304557412904),
+    TrajectoryPoint(2550, 96.3154063227267),
+    TrajectoryPoint(2560, 95.1896105572851),
+    TrajectoryPoint(2570, 94.0526926466147),
+    TrajectoryPoint(2580, 92.9042602124198),
+    TrajectoryPoint(2590, 91.7439033882566),
+    TrajectoryPoint(2600, 90.5711938504912),
+    TrajectoryPoint(2610, 89.3855995405474),
+    TrajectoryPoint(2620, 88.1861321721964),
+    TrajectoryPoint(2630, 86.9728041990342),
+    TrajectoryPoint(2640, 85.7450956489303),
+    TrajectoryPoint(2650, 84.5017989338394),
+    TrajectoryPoint(2660, 83.2425539259075),
+    TrajectoryPoint(2670, 81.9669667685812),
+    TrajectoryPoint(2680, 80.6732597287169),
+    TrajectoryPoint(2690, 79.3618642701204),
+    TrajectoryPoint(2700, 78.0304080190454),
+    TrajectoryPoint(2710, 76.6792221405925),
+    TrajectoryPoint(2720, 75.3062788564618),
+    TrajectoryPoint(2730, 73.9107287146203),
+    TrajectoryPoint(2740, 72.4915180773333),
+    TrajectoryPoint(2750, 71.0469276770162),
+    TrajectoryPoint(2760, 69.575005880163),
+    TrajectoryPoint(2770, 68.0744813032637),
+    TrajectoryPoint(2780, 66.5433533415323),
+    TrajectoryPoint(2790, 64.9794358961371),
+    TrajectoryPoint(2800, 63.3803356072063),
+    TrajectoryPoint(2810, 61.7433012808369),
+    TrajectoryPoint(2820, 60.0645563868848),
+    TrajectoryPoint(2830, 58.3414934287796),
+    TrajectoryPoint(2840, 56.5697873929039),
+    TrajectoryPoint(2850, 54.7443545298248),
+    TrajectoryPoint(2860, 52.8597643370541),
+    TrajectoryPoint(2870, 50.9097727881416),
+    TrajectoryPoint(2880, 48.8862470757287),
+    TrajectoryPoint(2890, 46.7796711478539),
+    TrajectoryPoint(2900, 44.5788402486425),
+    TrajectoryPoint(2910, 42.2675563651644),
+    TrajectoryPoint(2920, 39.8281657616084),
+    TrajectoryPoint(2930, 37.2348826584473),
+    TrajectoryPoint(2940, 34.4534915630279),
+    TrajectoryPoint(2950, 31.4331124313534),
+    TrajectoryPoint(2960, 28.0982761691317),
+    TrajectoryPoint(2970, 24.3177075274654),
+    TrajectoryPoint(2980, 19.8417586758741),
+    TrajectoryPoint(2990, 14.0185160329622),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t4_closed[] = {
+    TrajectoryPoint(0, 288.400431198465),
+    TrajectoryPoint(10, 287.711921016228),
+    TrajectoryPoint(20, 287.024564629671),
+    TrajectoryPoint(30, 286.337866313319),
+    TrajectoryPoint(40, 285.65181294685),
+    TrajectoryPoint(50, 284.966768428709),
+    TrajectoryPoint(60, 284.282290678797),
+    TrajectoryPoint(70, 283.598377146192),
+    TrajectoryPoint(80, 282.915280133241),
+    TrajectoryPoint(90, 282.232818502879),
+    TrajectoryPoint(100, 281.550868454993),
+    TrajectoryPoint(110, 280.869510195808),
+    TrajectoryPoint(120, 280.188872452093),
+    TrajectoryPoint(130, 279.50869613773),
+    TrajectoryPoint(140, 278.828976782997),
+    TrajectoryPoint(150, 278.149911832688),
+    TrajectoryPoint(160, 277.47133057719),
+    TrajectoryPoint(170, 276.793158194143),
+    TrajectoryPoint(180, 276.11542941738),
+    TrajectoryPoint(190, 275.438274708529),
+    TrajectoryPoint(200, 274.761483007308),
+    TrajectoryPoint(210, 274.085048710897),
+    TrajectoryPoint(220, 273.409061175978),
+    TrajectoryPoint(230, 272.733493015012),
+    TrajectoryPoint(240, 272.058238351673),
+    TrajectoryPoint(250, 271.38329094514),
+    TrajectoryPoint(260, 270.708756326526),
+    TrajectoryPoint(270, 270.034534437161),
+    TrajectoryPoint(280, 269.360577790603),
+    TrajectoryPoint(290, 268.686879681535),
+    TrajectoryPoint(300, 268.013536529709),
+    TrajectoryPoint(310, 267.340433023407),
+    TrajectoryPoint(320, 266.66754782805),
+    TrajectoryPoint(330, 265.994873900041),
+    TrajectoryPoint(340, 265.322484013229),
+    TrajectoryPoint(350, 264.650282362245),
+    TrajectoryPoint(360, 263.978253406401),
+    TrajectoryPoint(370, 263.30638985346),
+    TrajectoryPoint(380, 262.634735152878),
+    TrajectoryPoint(390, 261.96322912017),
+    TrajectoryPoint(400, 261.291851422255),
+    TrajectoryPoint(410, 260.620594579627),
+    TrajectoryPoint(420, 259.949474410455),
+    TrajectoryPoint(430, 259.278466969676),
+    TrajectoryPoint(440, 258.607544660365),
+    TrajectoryPoint(450, 257.936699855327),
+    TrajectoryPoint(460, 257.265928649302),
+    TrajectoryPoint(470, 256.595230918324),
+    TrajectoryPoint(480, 255.924576148272),
+    TrajectoryPoint(490, 255.253956587112),
+    TrajectoryPoint(500, 254.583364311473),
+    TrajectoryPoint(510, 253.912792037851),
+    TrajectoryPoint(520, 253.242223924358),
+    TrajectoryPoint(530, 252.571649626302),
+    TrajectoryPoint(540, 251.901061124742),
+    TrajectoryPoint(550, 251.230450259334),
+    TrajectoryPoint(560, 250.559796205452),
+    TrajectoryPoint(570, 249.889092990303),
+    TrajectoryPoint(580, 249.218334819605),
+    TrajectoryPoint(590, 248.54751344508),
+    TrajectoryPoint(600, 247.876620497016),
+    TrajectoryPoint(610, 247.205625469229),
+    TrajectoryPoint(620, 246.534528863012),
+    TrajectoryPoint(630, 245.863328766793),
+    TrajectoryPoint(640, 245.192016715646),
+    TrajectoryPoint(650, 244.520584135817),
+    TrajectoryPoint(660, 243.849006570674),
+    TrajectoryPoint(670, 243.177263154125),
+    TrajectoryPoint(680, 242.505367764573),
+    TrajectoryPoint(690, 241.833311715744),
+    TrajectoryPoint(700, 241.161086219717),
+    TrajectoryPoint(710, 240.488682390396),
+    TrajectoryPoint(720, 239.816058586825),
+    TrajectoryPoint(730, 239.143217628455),
+    TrajectoryPoint(740, 238.470167128845),
+    TrajectoryPoint(750, 237.796898065338),
+    TrajectoryPoint(760, 237.123401319153),
+    TrajectoryPoint(770, 236.44966767735),
+    TrajectoryPoint(780, 235.775664645354),
+    TrajectoryPoint(790, 235.101370558986),
+    TrajectoryPoint(800, 234.426808353039),
+    TrajectoryPoint(810, 233.751968646039),
+    TrajectoryPoint(820, 233.076841961013),
+    TrajectoryPoint(830, 232.401418726393),
+    TrajectoryPoint(840, 231.725689276717),
+    TrajectoryPoint(850, 231.049614962792),
+    TrajectoryPoint(860, 230.373181617153),
+    TrajectoryPoint(870, 229.696410463845),
+    TrajectoryPoint(880, 229.019291628508),
+    TrajectoryPoint(890, 228.341815138819),
+    TrajectoryPoint(900, 227.66397092451),
+    TrajectoryPoint(910, 226.985748817252),
+    TrajectoryPoint(920, 226.307138550401),
+    TrajectoryPoint(930, 225.62809946443),
+    TrajectoryPoint(940, 224.948620192505),
+    TrajectoryPoint(950, 224.268720345345),
+    TrajectoryPoint(960, 223.588389398183),
+    TrajectoryPoint(970, 222.90761672199),
+    TrajectoryPoint(980, 222.226391582827),
+    TrajectoryPoint(990, 221.544703141109),
+    TrajectoryPoint(1000, 220.862540450785),
+    TrajectoryPoint(1010, 220.179892458441),
+    TrajectoryPoint(1020, 219.496748002327),
+    TrajectoryPoint(1030, 218.813060371453),
+    TrajectoryPoint(1040, 218.128834552168),
+    TrajectoryPoint(1050, 217.444078261782),
+    TrajectoryPoint(1060, 216.758780017229),
+    TrajectoryPoint(1070, 216.072928219891),
+    TrajectoryPoint(1080, 215.386511154428),
+    TrajectoryPoint(1090, 214.699516987561),
+    TrajectoryPoint(1100, 214.011933766801),
+    TrajectoryPoint(1110, 213.323749419139),
+    TrajectoryPoint(1120, 212.634951749688),
+    TrajectoryPoint(1130, 211.945528440289),
+    TrajectoryPoint(1140, 211.255467048075),
+    TrajectoryPoint(1150, 210.564755004007),
+    TrajectoryPoint(1160, 209.873379611363),
+    TrajectoryPoint(1170, 209.181328044208),
+    TrajectoryPoint(1180, 208.488577492694),
+    TrajectoryPoint(1190, 207.795104219395),
+    TrajectoryPoint(1200, 207.100917295221),
+    TrajectoryPoint(1210, 206.406003476037),
+    TrajectoryPoint(1220, 205.710349380257),
+    TrajectoryPoint(1230, 205.013941487196),
+    TrajectoryPoint(1240, 204.316766135399),
+    TrajectoryPoint(1250, 203.618809520941),
+    TrajectoryPoint(1260, 202.920057695692),
+    TrajectoryPoint(1270, 202.220496565557),
+    TrajectoryPoint(1280, 201.520111888687),
+    TrajectoryPoint(1290, 200.81888927366),
+    TrajectoryPoint(1300, 200.116814177633),
+    TrajectoryPoint(1310, 199.413871904466),
+    TrajectoryPoint(1320, 198.710047602816),
+    TrajectoryPoint(1330, 198.005326264198),
+    TrajectoryPoint(1340, 197.299692721025),
+    TrajectoryPoint(1350, 196.593131644607),
+    TrajectoryPoint(1360, 195.885627543123),
+    TrajectoryPoint(1370, 195.177164759563),
+    TrajectoryPoint(1380, 194.467727469639),
+    TrajectoryPoint(1390, 193.757299679654),
+    TrajectoryPoint(1400, 193.045865224347),
+    TrajectoryPoint(1410, 192.333407764698),
+    TrajectoryPoint(1420, 191.6199107857),
+    TrajectoryPoint(1430, 190.905322780246),
+    TrajectoryPoint(1440, 190.189647107171),
+    TrajectoryPoint(1450, 189.472876527352),
+    TrajectoryPoint(1460, 188.754993670017),
+    TrajectoryPoint(1470, 188.035980975529),
+    TrajectoryPoint(1480, 187.315820692875),
+    TrajectoryPoint(1490, 186.59449487712),
+    TrajectoryPoint(1500, 185.871985386811),
+    TrajectoryPoint(1510, 185.148273881338),
+    TrajectoryPoint(1520, 184.423341818247),
+    TrajectoryPoint(1530, 183.697170450505),
+    TrajectoryPoint(1540, 182.969740823718),
+    TrajectoryPoint(1550, 182.241033773288),
+    TrajectoryPoint(1560, 181.511029901333),
+    TrajectoryPoint(1570, 180.779594730267),
+    TrajectoryPoint(1580, 180.046816739329),
+    TrajectoryPoint(1590, 179.312675745994),
+    TrajectoryPoint(1600, 178.577151340754),
+    TrajectoryPoint(1610, 177.840222883898),
+    TrajectoryPoint(1620, 177.101869502225),
+    TrajectoryPoint(1630, 176.362070085694),
+    TrajectoryPoint(1640, 175.620803284013),
+    TrajectoryPoint(1650, 174.877927579264),
+    TrajectoryPoint(1660, 174.13348723214),
+    TrajectoryPoint(1670, 173.387505887092),
+    TrajectoryPoint(1680, 172.639961030897),
+    TrajectoryPoint(1690, 171.89082988964),
+    TrajectoryPoint(1700, 171.140089424815),
+    TrajectoryPoint(1710, 170.387650638499),
+    TrajectoryPoint(1720, 169.633402250696),
+    TrajectoryPoint(1730, 168.877464597034),
+    TrajectoryPoint(1740, 168.119813357763),
+    TrajectoryPoint(1750, 167.36042392504),
+    TrajectoryPoint(1760, 166.599271398437),
+    TrajectoryPoint(1770, 165.836083865085),
+    TrajectoryPoint(1780, 165.071057442012),
+    TrajectoryPoint(1790, 164.30418100186),
+    TrajectoryPoint(1800, 163.535428226177),
+    TrajectoryPoint(1810, 162.764691737369),
+    TrajectoryPoint(1820, 161.991796265612),
+    TrajectoryPoint(1830, 161.216932229542),
+    TrajectoryPoint(1840, 160.44007178471),
+    TrajectoryPoint(1850, 159.661154930748),
+    TrajectoryPoint(1860, 158.879864904239),
+    TrajectoryPoint(1870, 158.096480527657),
+    TrajectoryPoint(1880, 157.310972310723),
+    TrajectoryPoint(1890, 156.523192595656),
+    TrajectoryPoint(1900, 155.732948427036),
+    TrajectoryPoint(1910, 154.940476310972),
+    TrajectoryPoint(1920, 154.145744978267),
+    TrajectoryPoint(1930, 153.348364840947),
+    TrajectoryPoint(1940, 152.548570137481),
+    TrajectoryPoint(1950, 151.746405439504),
+    TrajectoryPoint(1960, 150.941554975928),
+    TrajectoryPoint(1970, 150.134059878806),
+    TrajectoryPoint(1980, 149.324078400722),
+    TrajectoryPoint(1990, 148.511275730857),
+    TrajectoryPoint(2000, 147.695682053642),
+    TrajectoryPoint(2010, 146.877479624742),
+    TrajectoryPoint(2020, 146.056211137843),
+    TrajectoryPoint(2030, 145.232098933755),
+    TrajectoryPoint(2040, 144.405208023058),
+    TrajectoryPoint(2050, 143.574967360873),
+    TrajectoryPoint(2060, 142.741893413172),
+    TrajectoryPoint(2070, 141.905596904374),
+    TrajectoryPoint(2080, 141.066067208368),
+    TrajectoryPoint(2090, 140.223476723442),
+    TrajectoryPoint(2100, 139.377249997122),
+    TrajectoryPoint(2110, 138.527944110655),
+    TrajectoryPoint(2120, 137.67489661382),
+    TrajectoryPoint(2130, 136.81853288239),
+    TrajectoryPoint(2140, 135.95843599383),
+    TrajectoryPoint(2150, 135.094747569336),
+    TrajectoryPoint(2160, 134.22726973848),
+    TrajectoryPoint(2170, 133.355978103545),
+    TrajectoryPoint(2180, 132.480770572025),
+    TrajectoryPoint(2190, 131.601584886375),
+    TrajectoryPoint(2200, 130.718280681949),
+    TrajectoryPoint(2210, 129.830897081207),
+    TrajectoryPoint(2220, 128.939109933057),
+    TrajectoryPoint(2230, 128.043210776131),
+    TrajectoryPoint(2240, 127.142533944956),
+    TrajectoryPoint(2250, 126.237641512498),
+    TrajectoryPoint(2260, 125.327792021431),
+    TrajectoryPoint(2270, 124.413341145268),
+    TrajectoryPoint(2280, 123.494084919109),
+    TrajectoryPoint(2290, 122.569609890261),
+    TrajectoryPoint(2300, 121.6402878983),
+    TrajectoryPoint(2310, 120.705582049405),
+    TrajectoryPoint(2320, 119.76546607844),
+    TrajectoryPoint(2330, 118.820073430179),
+    TrajectoryPoint(2340, 117.868901639836),
+    TrajectoryPoint(2350, 116.911874406278),
+    TrajectoryPoint(2360, 115.949097760183),
+    TrajectoryPoint(2370, 114.980359684919),
+    TrajectoryPoint(2380, 114.005029137626),
+    TrajectoryPoint(2390, 113.023428406018),
+    TrajectoryPoint(2400, 112.035365109698),
+    TrajectoryPoint(2410, 111.040639498985),
+    TrajectoryPoint(2420, 110.03876236273),
+    TrajectoryPoint(2430, 109.029697543662),
+    TrajectoryPoint(2440, 108.013352449616),
+    TrajectoryPoint(2450, 106.98949643655),
+    TrajectoryPoint(2460, 105.957889729889),
+    TrajectoryPoint(2470, 104.918282987238),
+    TrajectoryPoint(2480, 103.870416835007),
+    TrajectoryPoint(2490, 102.814021377134),
+    TrajectoryPoint(2500, 101.74877062261),
+    TrajectoryPoint(2510, 100.674404702738),
+    TrajectoryPoint(2520, 99.5906811754193),
+    TrajectoryPoint(2530, 98.4972858586535),
+    TrajectoryPoint(2540, 97.3938531451154),
+    TrajectoryPoint(2550, 96.2799549001043),
+    TrajectoryPoint(2560, 95.1552953515873),
+    TrajectoryPoint(2570, 94.019498672057),
+    TrajectoryPoint(2580, 92.8721724560516),
+    TrajectoryPoint(2590, 91.7129068119073),
+    TrajectoryPoint(2600, 90.5412733926751),
+    TrajectoryPoint(2610, 89.3567967164087),
+    TrajectoryPoint(2620, 88.1583735932861),
+    TrajectoryPoint(2630, 86.9460746997048),
+    TrajectoryPoint(2640, 85.7193800486954),
+    TrajectoryPoint(2650, 84.4771335603578),
+    TrajectoryPoint(2660, 83.2188701530575),
+    TrajectoryPoint(2670, 81.9442988619684),
+    TrajectoryPoint(2680, 80.6515408918803),
+    TrajectoryPoint(2690, 79.3410791988585),
+    TrajectoryPoint(2700, 78.0105864796306),
+    TrajectoryPoint(2710, 76.6603461600492),
+    TrajectoryPoint(2720, 75.2882863068892),
+    TrajectoryPoint(2730, 73.893645873302),
+    TrajectoryPoint(2740, 72.4753264520392),
+    TrajectoryPoint(2750, 71.0315686679998),
+    TrajectoryPoint(2760, 69.5605015614551),
+    TrajectoryPoint(2770, 68.0608127335285),
+    TrajectoryPoint(2780, 66.5305014103984),
+    TrajectoryPoint(2790, 64.9673813334451),
+    TrajectoryPoint(2800, 63.3690589919956),
+    TrajectoryPoint(2810, 61.7328152723726),
+    TrajectoryPoint(2820, 60.0548074594194),
+    TrajectoryPoint(2830, 58.3324616765179),
+    TrajectoryPoint(2840, 56.5614809638394),
+    TrajectoryPoint(2850, 54.7367232413618),
+    TrajectoryPoint(2860, 52.8528131267647),
+    TrajectoryPoint(2870, 50.9034779957129),
+    TrajectoryPoint(2880, 48.8805846385624),
+    TrajectoryPoint(2890, 46.7746166292359),
+    TrajectoryPoint(2900, 44.5743688667463),
+    TrajectoryPoint(2910, 42.2636614095763),
+    TrajectoryPoint(2920, 39.824818545402),
+    TrajectoryPoint(2930, 37.2320537610135),
+    TrajectoryPoint(2940, 34.4511650642228),
+    TrajectoryPoint(2950, 31.4312541138461),
+    TrajectoryPoint(2960, 28.0968507888569),
+    TrajectoryPoint(2970, 24.3166969327988),
+    TrajectoryPoint(2980, 19.8411249726781),
+    TrajectoryPoint(2990, 14.0182231684044),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t5_closed[] = {
+    TrajectoryPoint(0, 287.645068077735),
+    TrajectoryPoint(10, 286.962205130311),
+    TrajectoryPoint(20, 286.280179676493),
+    TrajectoryPoint(30, 285.598860517744),
+    TrajectoryPoint(40, 284.918429532041),
+    TrajectoryPoint(50, 284.238547504384),
+    TrajectoryPoint(60, 283.559211689187),
+    TrajectoryPoint(70, 282.880732817141),
+    TrajectoryPoint(80, 282.202794897937),
+    TrajectoryPoint(90, 281.525351622756),
+    TrajectoryPoint(100, 280.848541071326),
+    TrajectoryPoint(110, 280.172359709641),
+    TrajectoryPoint(120, 279.496623828556),
+    TrajectoryPoint(130, 278.821328872096),
+    TrajectoryPoint(140, 278.146715039818),
+    TrajectoryPoint(150, 277.472512081307),
+    TrajectoryPoint(160, 276.798702896296),
+    TrajectoryPoint(170, 276.125366203722),
+    TrajectoryPoint(180, 275.452531494382),
+    TrajectoryPoint(190, 274.780045558337),
+    TrajectoryPoint(200, 274.107902768587),
+    TrajectoryPoint(210, 273.436225799665),
+    TrajectoryPoint(220, 272.764909414153),
+    TrajectoryPoint(230, 272.093893075098),
+    TrajectoryPoint(240, 271.423170548129),
+    TrajectoryPoint(250, 270.752872388411),
+    TrajectoryPoint(260, 270.082838729061),
+    TrajectoryPoint(270, 269.41305761704),
+    TrajectoryPoint(280, 268.743535533207),
+    TrajectoryPoint(290, 268.074347999303),
+    TrajectoryPoint(300, 267.405373454689),
+    TrajectoryPoint(310, 266.736605246243),
+    TrajectoryPoint(320, 266.068049577673),
+    TrajectoryPoint(330, 265.399753173828),
+    TrajectoryPoint(340, 264.731625122843),
+    TrajectoryPoint(350, 264.06365847463),
+    TrajectoryPoint(360, 263.395849868737),
+    TrajectoryPoint(370, 262.728240782365),
+    TrajectoryPoint(380, 262.060756558422),
+    TrajectoryPoint(390, 261.393390020641),
+    TrajectoryPoint(400, 260.726133749202),
+    TrajectoryPoint(410, 260.059010182716),
+    TrajectoryPoint(420, 259.391976029199),
+    TrajectoryPoint(430, 258.725016965189),
+    TrajectoryPoint(440, 258.058125427881),
+    TrajectoryPoint(450, 257.391301739614),
+    TrajectoryPoint(460, 256.724531778613),
+    TrajectoryPoint(470, 256.0577953091),
+    TrajectoryPoint(480, 255.391084646739),
+    TrajectoryPoint(490, 254.724391940888),
+    TrajectoryPoint(500, 254.057706940469),
+    TrajectoryPoint(510, 253.391014925052),
+    TrajectoryPoint(520, 252.724307867906),
+    TrajectoryPoint(530, 252.0575778245),
+    TrajectoryPoint(540, 251.390814826726),
+    TrajectoryPoint(550, 250.723994890922),
+    TrajectoryPoint(560, 250.057119779301),
+    TrajectoryPoint(570, 249.390181448748),
+    TrajectoryPoint(580, 248.723171730173),
+    TrajectoryPoint(590, 248.056079187464),
+    TrajectoryPoint(600, 247.388869047185),
+    TrajectoryPoint(610, 246.721556001355),
+    TrajectoryPoint(620, 246.054131779844),
+    TrajectoryPoint(630, 245.386588000762),
+    TrajectoryPoint(640, 244.718916175861),
+    TrajectoryPoint(650, 244.051073881721),
+    TrajectoryPoint(660, 243.383072751928),
+    TrajectoryPoint(670, 242.714912529256),
+    TrajectoryPoint(680, 242.046584614037),
+    TrajectoryPoint(690, 241.378080307108),
+    TrajectoryPoint(700, 240.709385427713),
+    TrajectoryPoint(710, 240.040449230509),
+    TrajectoryPoint(720, 239.371305855379),
+    TrajectoryPoint(730, 238.701946468383),
+    TrajectoryPoint(740, 238.032362139138),
+    TrajectoryPoint(750, 237.362543843013),
+    TrajectoryPoint(760, 236.692482463019),
+    TrajectoryPoint(770, 236.022113617346),
+    TrajectoryPoint(780, 235.351476653399),
+    TrajectoryPoint(790, 234.680565756963),
+    TrajectoryPoint(800, 234.009371644625),
+    TrajectoryPoint(810, 233.337884939232),
+    TrajectoryPoint(820, 232.666096170764),
+    TrajectoryPoint(830, 231.993988417772),
+    TrajectoryPoint(840, 231.321503974306),
+    TrajectoryPoint(850, 230.648686359201),
+    TrajectoryPoint(860, 229.975525900583),
+    TrajectoryPoint(870, 229.302012830173),
+    TrajectoryPoint(880, 228.628137283441),
+    TrajectoryPoint(890, 227.95388929962),
+    TrajectoryPoint(900, 227.279258821564),
+    TrajectoryPoint(910, 226.604215383972),
+    TrajectoryPoint(920, 225.928726336818),
+    TrajectoryPoint(930, 225.25282291406),
+    TrajectoryPoint(940, 224.576494809445),
+    TrajectoryPoint(950, 223.899731614758),
+    TrajectoryPoint(960, 223.22252281927),
+    TrajectoryPoint(970, 222.544857809092),
+    TrajectoryPoint(980, 221.866725866438),
+    TrajectoryPoint(990, 221.188116168805),
+    TrajectoryPoint(1000, 220.509017788083),
+    TrajectoryPoint(1010, 219.829370965822),
+    TrajectoryPoint(1020, 219.149204865238),
+    TrajectoryPoint(1030, 218.468516679728),
+    TrajectoryPoint(1040, 217.787295170526),
+    TrajectoryPoint(1050, 217.10552898627),
+    TrajectoryPoint(1060, 216.423206661892),
+    TrajectoryPoint(1070, 215.740316617464),
+    TrajectoryPoint(1080, 215.056847156983),
+    TrajectoryPoint(1090, 214.372786467116),
+    TrajectoryPoint(1100, 213.688122615898),
+    TrajectoryPoint(1110, 213.002843551388),
+    TrajectoryPoint(1120, 212.316937100288),
+    TrajectoryPoint(1130, 211.630390966522),
+    TrajectoryPoint(1140, 210.943188669665),
+    TrajectoryPoint(1150, 210.255287974639),
+    TrajectoryPoint(1160, 209.566711388752),
+    TrajectoryPoint(1170, 208.877446223105),
+    TrajectoryPoint(1180, 208.187479658105),
+    TrajectoryPoint(1190, 207.496798741929),
+    TrajectoryPoint(1200, 206.805390388963),
+    TrajectoryPoint(1210, 206.113241378201),
+    TrajectoryPoint(1220, 205.42033835162),
+    TrajectoryPoint(1230, 204.726667812527),
+    TrajectoryPoint(1240, 204.032216123872),
+    TrajectoryPoint(1250, 203.336969506533),
+    TrajectoryPoint(1260, 202.640914037577),
+    TrajectoryPoint(1270, 201.944035648488),
+    TrajectoryPoint(1280, 201.246320123365),
+    TrajectoryPoint(1290, 200.5477530971),
+    TrajectoryPoint(1300, 199.848320053519),
+    TrajectoryPoint(1310, 199.148006323497),
+    TrajectoryPoint(1320, 198.446797083045),
+    TrajectoryPoint(1330, 197.744677351369),
+    TrajectoryPoint(1340, 197.041631988893),
+    TrajectoryPoint(1350, 196.337645695257),
+    TrajectoryPoint(1360, 195.632703007283),
+    TrajectoryPoint(1370, 194.92678829691),
+    TrajectoryPoint(1380, 194.219885769091),
+    TrajectoryPoint(1390, 193.511979459665),
+    TrajectoryPoint(1400, 192.80305323319),
+    TrajectoryPoint(1410, 192.093090780743),
+    TrajectoryPoint(1420, 191.382075617684),
+    TrajectoryPoint(1430, 190.669991081381),
+    TrajectoryPoint(1440, 189.956820328903),
+    TrajectoryPoint(1450, 189.242546334669),
+    TrajectoryPoint(1460, 188.527092475612),
+    TrajectoryPoint(1470, 187.810495305715),
+    TrajectoryPoint(1480, 187.092737497607),
+    TrajectoryPoint(1490, 186.373801139469),
+    TrajectoryPoint(1500, 185.653668123152),
+    TrajectoryPoint(1510, 184.932320141534),
+    TrajectoryPoint(1520, 184.209738685825),
+    TrajectoryPoint(1530, 183.485905042824),
+    TrajectoryPoint(1540, 182.760800292131),
+    TrajectoryPoint(1550, 182.034405303298),
+    TrajectoryPoint(1560, 181.306700732938),
+    TrajectoryPoint(1570, 180.577667021772),
+    TrajectoryPoint(1580, 179.847183515782),
+    TrajectoryPoint(1590, 179.115302276004),
+    TrajectoryPoint(1600, 178.382024949056),
+    TrajectoryPoint(1610, 177.647330930922),
+    TrajectoryPoint(1620, 176.911199384181),
+    TrajectoryPoint(1630, 176.173609234648),
+    TrajectoryPoint(1640, 175.434539167953),
+    TrajectoryPoint(1650, 174.693967626053),
+    TrajectoryPoint(1660, 173.951711763561),
+    TrajectoryPoint(1670, 173.207888040727),
+    TrajectoryPoint(1680, 172.46248839248),
+    TrajectoryPoint(1690, 171.715490081693),
+    TrajectoryPoint(1700, 170.966870106656),
+    TrajectoryPoint(1710, 170.216605197079),
+    TrajectoryPoint(1720, 169.46451729046),
+    TrajectoryPoint(1730, 168.710661360815),
+    TrajectoryPoint(1740, 167.95507963025),
+    TrajectoryPoint(1750, 167.197747528185),
+    TrajectoryPoint(1760, 166.438640191411),
+    TrajectoryPoint(1770, 165.677613836988),
+    TrajectoryPoint(1780, 164.914606290587),
+    TrajectoryPoint(1790, 164.149736679401),
+    TrajectoryPoint(1800, 163.382978722402),
+    TrajectoryPoint(1810, 162.614305818787),
+    TrajectoryPoint(1820, 161.843425105075),
+    TrajectoryPoint(1830, 161.070517782534),
+    TrajectoryPoint(1840, 160.29560217459),
+    TrajectoryPoint(1850, 159.518650129482),
+    TrajectoryPoint(1860, 158.73937179666),
+    TrajectoryPoint(1870, 157.957894430793),
+    TrajectoryPoint(1880, 157.174281483588),
+    TrajectoryPoint(1890, 156.388503129619),
+    TrajectoryPoint(1900, 155.600132266168),
+    TrajectoryPoint(1910, 154.80951789124),
+    TrajectoryPoint(1920, 154.016632695386),
+    TrajectoryPoint(1930, 153.22120508215),
+    TrajectoryPoint(1940, 152.423230802707),
+    TrajectoryPoint(1950, 151.622875024949),
+    TrajectoryPoint(1960, 150.819938204493),
+    TrajectoryPoint(1970, 150.01422643591),
+    TrajectoryPoint(1980, 149.206016883473),
+    TrajectoryPoint(1990, 148.39508871791),
+    TrajectoryPoint(2000, 147.581241503595),
+    TrajectoryPoint(2010, 146.764774235666),
+    TrajectoryPoint(2020, 145.94534089845),
+    TrajectoryPoint(2030, 145.122938527948),
+    TrajectoryPoint(2040, 144.297787439618),
+    TrajectoryPoint(2050, 143.46930120438),
+    TrajectoryPoint(2060, 142.637900702192),
+    TrajectoryPoint(2070, 141.803374139476),
+    TrajectoryPoint(2080, 140.965492781696),
+    TrajectoryPoint(2090, 140.124626254003),
+    TrajectoryPoint(2100, 139.280042978536),
+    TrajectoryPoint(2110, 138.432349435245),
+    TrajectoryPoint(2120, 137.581006048985),
+    TrajectoryPoint(2130, 136.726229787813),
+    TrajectoryPoint(2140, 135.867810868594),
+    TrajectoryPoint(2150, 135.005685130171),
+    TrajectoryPoint(2160, 134.139858995665),
+    TrajectoryPoint(2170, 133.270105353598),
+    TrajectoryPoint(2180, 132.396523126834),
+    TrajectoryPoint(2190, 131.518850833749),
+    TrajectoryPoint(2200, 130.63714543608),
+    TrajectoryPoint(2210, 129.751250722126),
+    TrajectoryPoint(2220, 128.861035787662),
+    TrajectoryPoint(2230, 127.96660110763),
+    TrajectoryPoint(2240, 127.067469812509),
+    TrajectoryPoint(2250, 126.164109917979),
+    TrajectoryPoint(2260, 125.255686836633),
+    TrajectoryPoint(2270, 124.342741643179),
+    TrajectoryPoint(2280, 123.424887648915),
+    TrajectoryPoint(2290, 122.501891389149),
+    TrajectoryPoint(2300, 121.574034873178),
+    TrajectoryPoint(2310, 120.640693507332),
+    TrajectoryPoint(2320, 119.702015964978),
+    TrajectoryPoint(2330, 118.758048281497),
+    TrajectoryPoint(2340, 117.808203416895),
+    TrajectoryPoint(2350, 116.852573991573),
+    TrajectoryPoint(2360, 115.891181538506),
+    TrajectoryPoint(2370, 114.92373303021),
+    TrajectoryPoint(2380, 113.949759432374),
+    TrajectoryPoint(2390, 112.969501901223),
+    TrajectoryPoint(2400, 111.9827679883),
+    TrajectoryPoint(2410, 110.989357878944),
+    TrajectoryPoint(2420, 109.988706183813),
+    TrajectoryPoint(2430, 108.980929459917),
+    TrajectoryPoint(2440, 107.965858474578),
+    TrajectoryPoint(2450, 106.943262528051),
+    TrajectoryPoint(2460, 105.912901792707),
+    TrajectoryPoint(2470, 104.874526875667),
+    TrajectoryPoint(2480, 103.827878355339),
+    TrajectoryPoint(2490, 102.772677167077),
+    TrajectoryPoint(2500, 101.708557360755),
+    TrajectoryPoint(2510, 100.635367250582),
+    TrajectoryPoint(2520, 99.552805230541),
+    TrajectoryPoint(2530, 98.4605570804311),
+    TrajectoryPoint(2540, 97.3582953162009),
+    TrajectoryPoint(2550, 96.2455388771763),
+    TrajectoryPoint(2560, 95.1219819583308),
+    TrajectoryPoint(2570, 93.987273383584),
+    TrajectoryPoint(2580, 92.8410207208554),
+    TrajectoryPoint(2590, 91.6828140537279),
+    TrajectoryPoint(2600, 90.512225012325),
+    TrajectoryPoint(2610, 89.3288057385688),
+    TrajectoryPoint(2620, 88.1314234939478),
+    TrajectoryPoint(2630, 86.9201233757825),
+    TrajectoryPoint(2640, 85.6944127842922),
+    TrajectoryPoint(2650, 84.4531857280538),
+    TrajectoryPoint(2660, 83.19587506461),
+    TrajectoryPoint(2670, 81.922289877814),
+    TrajectoryPoint(2680, 80.6304531093402),
+    TrajectoryPoint(2690, 79.320897779959),
+    TrajectoryPoint(2700, 77.9913404068083),
+    TrajectoryPoint(2710, 76.6420179970206),
+    TrajectoryPoint(2720, 75.2708156965392),
+    TrajectoryPoint(2730, 73.8770583983956),
+    TrajectoryPoint(2740, 72.4596041725589),
+    TrajectoryPoint(2750, 71.0166546604778),
+    TrajectoryPoint(2760, 69.546417318339),
+    TrajectoryPoint(2770, 68.0475398784428),
+    TrajectoryPoint(2780, 66.5180214027292),
+    TrajectoryPoint(2790, 64.9556754772321),
+    TrajectoryPoint(2800, 63.3581084445769),
+    TrajectoryPoint(2810, 61.7226323658535),
+    TrajectoryPoint(2820, 60.0453402080718),
+    TrajectoryPoint(2830, 58.3236907658563),
+    TrajectoryPoint(2840, 56.5534143388102),
+    TrajectoryPoint(2850, 54.7293121670692),
+    TrajectoryPoint(2860, 52.846062426764),
+    TrajectoryPoint(2870, 50.8973647052268),
+    TrajectoryPoint(2880, 48.8750854019792),
+    TrajectoryPoint(2890, 46.7697077272905),
+    TrajectoryPoint(2900, 44.5700262445342),
+    TrajectoryPoint(2910, 42.2598785685748),
+    TrajectoryPoint(2920, 39.8215676355347),
+    TrajectoryPoint(2930, 37.2293062194413),
+    TrajectoryPoint(2940, 34.4489054426478),
+    TrajectoryPoint(2950, 31.4294491888299),
+    TrajectoryPoint(2960, 28.0954663394126),
+    TrajectoryPoint(2970, 24.3157153411942),
+    TrajectoryPoint(2980, 19.8405094431073),
+    TrajectoryPoint(2990, 14.0179386944373),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t6_closed[] = {
+    TrajectoryPoint(0, 286.914805317672),
+    TrajectoryPoint(10, 286.236902974706),
+    TrajectoryPoint(20, 285.560162939834),
+    TrajectoryPoint(30, 284.884210042744),
+    TrajectoryPoint(40, 284.208788843333),
+    TrajectoryPoint(50, 283.533915417412),
+    TrajectoryPoint(60, 282.859888206836),
+    TrajectoryPoint(70, 282.186342646755),
+    TrajectoryPoint(80, 281.513275361756),
+    TrajectoryPoint(90, 280.840869547869),
+    TrajectoryPoint(100, 280.169016519694),
+    TrajectoryPoint(110, 279.49759356929),
+    TrajectoryPoint(120, 278.826629706472),
+    TrajectoryPoint(130, 278.156296544326),
+    TrajectoryPoint(140, 277.486347445279),
+    TrajectoryPoint(150, 276.8167775692),
+    TrajectoryPoint(160, 276.147699848122),
+    TrajectoryPoint(170, 275.479063571649),
+    TrajectoryPoint(180, 274.810762358349),
+    TrajectoryPoint(190, 274.14279057589),
+    TrajectoryPoint(200, 273.47529612968),
+    TrajectoryPoint(210, 272.808113150259),
+    TrajectoryPoint(220, 272.141217284644),
+    TrajectoryPoint(230, 271.474624506282),
+    TrajectoryPoint(240, 270.808417127517),
+    TrajectoryPoint(250, 270.14245634132),
+    TrajectoryPoint(260, 269.476735915803),
+    TrajectoryPoint(270, 268.811283804856),
+    TrajectoryPoint(280, 268.146124234358),
+    TrajectoryPoint(290, 267.481166136238),
+    TrajectoryPoint(300, 266.816402896338),
+    TrajectoryPoint(310, 266.15185718636),
+    TrajectoryPoint(320, 265.487535410947),
+    TrajectoryPoint(330, 264.823371130067),
+    TrajectoryPoint(340, 264.159357443263),
+    TrajectoryPoint(350, 263.495503556897),
+    TrajectoryPoint(360, 262.831819227989),
+    TrajectoryPoint(370, 262.168249526081),
+    TrajectoryPoint(380, 261.504787331837),
+    TrajectoryPoint(390, 260.841427770469),
+    TrajectoryPoint(400, 260.178189234804),
+    TrajectoryPoint(410, 259.515023496369),
+    TrajectoryPoint(420, 258.851923262196),
+    TrajectoryPoint(430, 258.188881037529),
+    TrajectoryPoint(440, 257.525898672682),
+    TrajectoryPoint(450, 256.862953907957),
+    TrajectoryPoint(460, 256.20003360898),
+    TrajectoryPoint(470, 255.537130161908),
+    TrajectoryPoint(480, 254.874235538139),
+    TrajectoryPoint(490, 254.21133541338),
+    TrajectoryPoint(500, 253.548419547377),
+    TrajectoryPoint(510, 252.885480215848),
+    TrajectoryPoint(520, 252.222509550343),
+    TrajectoryPoint(530, 251.559491897477),
+    TrajectoryPoint(540, 250.896410543287),
+    TrajectoryPoint(550, 250.233266095005),
+    TrajectoryPoint(560, 249.570050586632),
+    TrajectoryPoint(570, 248.906755929144),
+    TrajectoryPoint(580, 248.243360191519),
+    TrajectoryPoint(590, 247.579845928393),
+    TrajectoryPoint(600, 246.916221403899),
+    TrajectoryPoint(610, 246.252478428827),
+    TrajectoryPoint(620, 245.588608704626),
+    TrajectoryPoint(630, 244.924597299995),
+    TrajectoryPoint(640, 244.260403121697),
+    TrajectoryPoint(650, 243.596051541959),
+    TrajectoryPoint(660, 242.931534148769),
+    TrajectoryPoint(670, 242.266842428939),
+    TrajectoryPoint(680, 241.60196777175),
+    TrajectoryPoint(690, 240.936874187598),
+    TrajectoryPoint(700, 240.271551608894),
+    TrajectoryPoint(710, 239.606015679217),
+    TrajectoryPoint(720, 238.940257654473),
+    TrajectoryPoint(730, 238.274268695939),
+    TrajectoryPoint(740, 237.608039872387),
+    TrajectoryPoint(750, 236.941537147562),
+    TrajectoryPoint(760, 236.274739935903),
+    TrajectoryPoint(770, 235.607672446967),
+    TrajectoryPoint(780, 234.940325587566),
+    TrajectoryPoint(790, 234.272690171371),
+    TrajectoryPoint(800, 233.604756919973),
+    TrajectoryPoint(810, 232.93651646371),
+    TrajectoryPoint(820, 232.267914564727),
+    TrajectoryPoint(830, 231.598965730603),
+    TrajectoryPoint(840, 230.929678946613),
+    TrajectoryPoint(850, 230.260044643951),
+    TrajectoryPoint(860, 229.590053159058),
+    TrajectoryPoint(870, 228.919694733762),
+    TrajectoryPoint(880, 228.248959515272),
+    TrajectoryPoint(890, 227.577832685076),
+    TrajectoryPoint(900, 226.906249585546),
+    TrajectoryPoint(910, 226.234258327656),
+    TrajectoryPoint(920, 225.561848818101),
+    TrajectoryPoint(930, 224.889010863751),
+    TrajectoryPoint(940, 224.215734171201),
+    TrajectoryPoint(950, 223.542008346217),
+    TrajectoryPoint(960, 222.867822893085),
+    TrajectoryPoint(970, 222.193167213885),
+    TrajectoryPoint(980, 221.518030607672),
+    TrajectoryPoint(990, 220.842347295988),
+    TrajectoryPoint(1000, 220.166156741913),
+    TrajectoryPoint(1010, 219.489452444678),
+    TrajectoryPoint(1020, 218.812223403018),
+    TrajectoryPoint(1030, 218.134458505901),
+    TrajectoryPoint(1040, 217.456146531482),
+    TrajectoryPoint(1050, 216.777276146008),
+    TrajectoryPoint(1060, 216.097835902671),
+    TrajectoryPoint(1070, 215.417814240403),
+    TrajectoryPoint(1080, 214.737199482634),
+    TrajectoryPoint(1090, 214.055979836004),
+    TrajectoryPoint(1100, 213.37414338903),
+    TrajectoryPoint(1110, 212.691666599875),
+    TrajectoryPoint(1120, 212.008517344608),
+    TrajectoryPoint(1130, 211.324716022633),
+    TrajectoryPoint(1140, 210.640250347823),
+    TrajectoryPoint(1150, 209.955107908266),
+    TrajectoryPoint(1160, 209.269276164814),
+    TrajectoryPoint(1170, 208.582742449591),
+    TrajectoryPoint(1180, 207.895493964482),
+    TrajectoryPoint(1190, 207.207517779582),
+    TrajectoryPoint(1200, 206.518800831614),
+    TrajectoryPoint(1210, 205.829329922323),
+    TrajectoryPoint(1220, 205.139091716833),
+    TrajectoryPoint(1230, 204.448072741985),
+    TrajectoryPoint(1240, 203.75625938464),
+    TrajectoryPoint(1250, 203.063637889953),
+    TrajectoryPoint(1260, 202.370194359624),
+    TrajectoryPoint(1270, 201.675914750119),
+    TrajectoryPoint(1280, 200.980784870864),
+    TrajectoryPoint(1290, 200.284790382407),
+    TrajectoryPoint(1300, 199.587916794558),
+    TrajectoryPoint(1310, 198.890149464494),
+    TrajectoryPoint(1320, 198.191473594843),
+    TrajectoryPoint(1330, 197.491874231731),
+    TrajectoryPoint(1340, 196.791336262803),
+    TrajectoryPoint(1350, 196.089844415215),
+    TrajectoryPoint(1360, 195.38738325359),
+    TrajectoryPoint(1370, 194.683937177948),
+    TrajectoryPoint(1380, 193.9794904216),
+    TrajectoryPoint(1390, 193.274027049011),
+    TrajectoryPoint(1400, 192.567530953627),
+    TrajectoryPoint(1410, 191.859985855669),
+    TrajectoryPoint(1420, 191.151375299892),
+    TrajectoryPoint(1430, 190.4416826533),
+    TrajectoryPoint(1440, 189.730891102839),
+    TrajectoryPoint(1450, 189.018983653031),
+    TrajectoryPoint(1460, 188.305943123588),
+    TrajectoryPoint(1470, 187.59175214697),
+    TrajectoryPoint(1480, 186.876333937809),
+    TrajectoryPoint(1490, 186.159712888558),
+    TrajectoryPoint(1500, 185.441882635579),
+    TrajectoryPoint(1510, 184.722824904041),
+    TrajectoryPoint(1520, 184.002521217607),
+    TrajectoryPoint(1530, 183.280952895687),
+    TrajectoryPoint(1540, 182.558101050634),
+    TrajectoryPoint(1550, 181.833946584902),
+    TrajectoryPoint(1560, 181.108470188136),
+    TrajectoryPoint(1570, 180.381652334217),
+    TrajectoryPoint(1580, 179.653473278254),
+    TrajectoryPoint(1590, 178.923814964305),
+    TrajectoryPoint(1600, 178.192715327339),
+    TrajectoryPoint(1610, 177.460186785632),
+    TrajectoryPoint(1620, 176.72620853617),
+    TrajectoryPoint(1630, 175.990759539246),
+    TrajectoryPoint(1640, 175.253818515026),
+    TrajectoryPoint(1650, 174.515363940055),
+    TrajectoryPoint(1660, 173.775343630487),
+    TrajectoryPoint(1670, 173.033611120216),
+    TrajectoryPoint(1680, 172.290290687958),
+    TrajectoryPoint(1690, 171.545359631917),
+    TrajectoryPoint(1700, 170.798794985717),
+    TrajectoryPoint(1710, 170.050573514399),
+    TrajectoryPoint(1720, 169.300645275722),
+    TrajectoryPoint(1730, 168.548807182271),
+    TrajectoryPoint(1740, 167.795231482643),
+    TrajectoryPoint(1750, 167.039893642019),
+    TrajectoryPoint(1760, 166.282768832897),
+    TrajectoryPoint(1770, 165.52383193051),
+    TrajectoryPoint(1780, 164.762788641066),
+    TrajectoryPoint(1790, 163.999864456367),
+    TrajectoryPoint(1800, 163.235040317509),
+    TrajectoryPoint(1810, 162.468289659485),
+    TrajectoryPoint(1820, 161.699441908338),
+    TrajectoryPoint(1830, 160.928431549823),
+    TrajectoryPoint(1840, 160.155401425857),
+    TrajectoryPoint(1850, 159.380323420431),
+    TrajectoryPoint(1860, 158.603027642284),
+    TrajectoryPoint(1870, 157.823399175132),
+    TrajectoryPoint(1880, 157.041623776734),
+    TrajectoryPoint(1890, 156.257671657196),
+    TrajectoryPoint(1900, 155.471232551976),
+    TrajectoryPoint(1910, 154.682419426835),
+    TrajectoryPoint(1920, 153.891324261923),
+    TrajectoryPoint(1930, 153.097791004735),
+    TrajectoryPoint(1940, 152.301581879404),
+    TrajectoryPoint(1950, 151.502980133226),
+    TrajectoryPoint(1960, 150.70189997761),
+    TrajectoryPoint(1970, 149.897917480305),
+    TrajectoryPoint(1980, 149.091426173304),
+    TrajectoryPoint(1990, 148.282316736548),
+    TrajectoryPoint(2000, 147.4701631312),
+    TrajectoryPoint(2010, 146.655378543097),
+    TrajectoryPoint(2020, 145.837725793591),
+    TrajectoryPoint(2030, 145.016981596303),
+    TrajectoryPoint(2040, 144.193477848436),
+    TrajectoryPoint(2050, 143.366733890421),
+    TrajectoryPoint(2060, 142.536956356811),
+    TrajectoryPoint(2070, 141.704147182096),
+    TrajectoryPoint(2080, 140.867864497212),
+    TrajectoryPoint(2090, 140.028585967836),
+    TrajectoryPoint(2100, 139.18568147652),
+    TrajectoryPoint(2110, 138.339551777773),
+    TrajectoryPoint(2120, 137.489861976331),
+    TrajectoryPoint(2130, 136.636625488319),
+    TrajectoryPoint(2140, 135.779834814848),
+    TrajectoryPoint(2150, 134.919224863046),
+    TrajectoryPoint(2160, 134.055001508926),
+    TrajectoryPoint(2170, 133.186739753902),
+    TrajectoryPoint(2180, 132.314734728343),
+    TrajectoryPoint(2190, 131.438530511481),
+    TrajectoryPoint(2200, 130.558376633597),
+    TrajectoryPoint(2210, 129.673926275328),
+    TrajectoryPoint(2220, 128.785237087734),
+    TrajectoryPoint(2230, 127.892223134406),
+    TrajectoryPoint(2240, 126.994591731729),
+    TrajectoryPoint(2250, 126.092682146911),
+    TrajectoryPoint(2260, 125.185679911972),
+    TrajectoryPoint(2270, 124.274195977326),
+    TrajectoryPoint(2280, 123.35770244723),
+    TrajectoryPoint(2290, 122.436141364042),
+    TrajectoryPoint(2300, 121.50970713276),
+    TrajectoryPoint(2310, 120.577689679439),
+    TrajectoryPoint(2320, 119.640408210082),
+    TrajectoryPoint(2330, 118.697823543189),
+    TrajectoryPoint(2340, 117.749266221815),
+    TrajectoryPoint(2350, 116.794993495322),
+    TrajectoryPoint(2360, 115.834944538596),
+    TrajectoryPoint(2370, 114.868747393219),
+    TrajectoryPoint(2380, 113.896090888978),
+    TrajectoryPoint(2390, 112.917137119608),
+    TrajectoryPoint(2400, 111.931693570957),
+    TrajectoryPoint(2410, 110.939538519951),
+    TrajectoryPoint(2420, 109.940097920041),
+    TrajectoryPoint(2430, 108.933571538425),
+    TrajectoryPoint(2440, 107.919737333781),
+    TrajectoryPoint(2450, 106.898364552455),
+    TrajectoryPoint(2460, 105.869213315446),
+    TrajectoryPoint(2470, 104.832034180949),
+    TrajectoryPoint(2480, 103.786567680823),
+    TrajectoryPoint(2490, 102.732468262517),
+    TrajectoryPoint(2500, 101.669503762144),
+    TrajectoryPoint(2510, 100.597455128765),
+    TrajectoryPoint(2520, 99.5160207170817),
+    TrajectoryPoint(2530, 98.4248862697143),
+    TrajectoryPoint(2540, 97.3237242674834),
+    TrajectoryPoint(2550, 96.2121135562458),
+    TrajectoryPoint(2560, 95.0896271465131),
+    TrajectoryPoint(2570, 93.9559749960346),
+    TrajectoryPoint(2580, 92.8107646466441),
+    TrajectoryPoint(2590, 91.6535861576271),
+    TrajectoryPoint(2600, 90.4840111365609),
+    TrajectoryPoint(2610, 89.3015917045376),
+    TrajectoryPoint(2620, 88.1052470654749),
+    TrajectoryPoint(2630, 86.8949167371822),
+    TrajectoryPoint(2640, 85.670161663317),
+    TrajectoryPoint(2650, 84.4299245787049),
+    TrajectoryPoint(2660, 83.1735390559704),
+    TrajectoryPoint(2670, 81.9008809296054),
+    TrajectoryPoint(2680, 80.6099692743149),
+    TrajectoryPoint(2690, 79.301294095063),
+    TrajectoryPoint(2700, 77.972645100712),
+    TrajectoryPoint(2710, 76.6242141465072),
+    TrajectoryPoint(2720, 75.2538446408375),
+    TrajectoryPoint(2730, 73.8609450525468),
+    TrajectoryPoint(2740, 72.4443311244359),
+    TrajectoryPoint(2750, 71.0021665921202),
+    TrajectoryPoint(2760, 69.5327351629805),
+    TrajectoryPoint(2770, 68.0346457998035),
+    TrajectoryPoint(2780, 66.5058974048844),
+    TrajectoryPoint(2790, 64.9443034131675),
+    TrajectoryPoint(2800, 63.3474700245106),
+    TrajectoryPoint(2810, 61.7127396070419),
+    TrajectoryPoint(2820, 60.0361425993504),
+    TrajectoryPoint(2830, 58.3151695581118),
+    TrajectoryPoint(2840, 56.5455772812289),
+    TrajectoryPoint(2850, 54.7221119107376),
+    TrajectoryPoint(2860, 52.8395036848696),
+    TrajectoryPoint(2870, 50.8914251783219),
+    TrajectoryPoint(2880, 48.8697424107491),
+    TrajectoryPoint(2890, 46.7649382387952),
+    TrajectoryPoint(2900, 44.5658068992822),
+    TrajectoryPoint(2910, 42.2562030701249),
+    TrajectoryPoint(2920, 39.8184089345789),
+    TrajectoryPoint(2930, 37.2266365739458),
+    TrajectoryPoint(2940, 34.4467098555064),
+    TrajectoryPoint(2950, 31.42769538782),
+    TrajectoryPoint(2960, 28.0941210827197),
+    TrajectoryPoint(2970, 24.3147615217758),
+    TrajectoryPoint(2980, 19.8399113164253),
+    TrajectoryPoint(2990, 14.0176622555655),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t7_closed[] = {
+    TrajectoryPoint(0, 286.207536847051),
+    TrajectoryPoint(10, 285.535077414886),
+    TrajectoryPoint(20, 284.863437411843),
+    TrajectoryPoint(30, 284.192348384917),
+    TrajectoryPoint(40, 283.521838698171),
+    TrajectoryPoint(50, 282.852094250836),
+    TrajectoryPoint(60, 282.182815728898),
+    TrajectoryPoint(70, 281.513999670143),
+    TrajectoryPoint(80, 280.845863306509),
+    TrajectoryPoint(90, 280.178216402721),
+    TrajectoryPoint(100, 279.510984706648),
+    TrajectoryPoint(110, 278.844232814604),
+    TrajectoryPoint(120, 278.178048720745),
+    TrajectoryPoint(130, 277.512234691857),
+    TrajectoryPoint(140, 276.846785866913),
+    TrajectoryPoint(150, 276.181840948142),
+    TrajectoryPoint(160, 275.517287020983),
+    TrajectoryPoint(170, 274.853054954324),
+    TrajectoryPoint(180, 274.189148746781),
+    TrajectoryPoint(190, 273.525705734919),
+    TrajectoryPoint(200, 272.862543105237),
+    TrajectoryPoint(210, 272.199655156462),
+    TrajectoryPoint(220, 271.537079223044),
+    TrajectoryPoint(230, 270.874846244708),
+    TrajectoryPoint(240, 270.212848126684),
+    TrajectoryPoint(250, 269.551078671541),
+    TrajectoryPoint(260, 268.889581885578),
+    TrajectoryPoint(270, 268.228342295024),
+    TrajectoryPoint(280, 267.567293127746),
+    TrajectoryPoint(290, 266.906427816928),
+    TrajectoryPoint(300, 266.245781008459),
+    TrajectoryPoint(310, 265.585328430802),
+    TrajectoryPoint(320, 264.925022945688),
+    TrajectoryPoint(330, 264.2648577087),
+    TrajectoryPoint(340, 263.604850764564),
+    TrajectoryPoint(350, 262.94498818147),
+    TrajectoryPoint(360, 262.2852304342),
+    TrajectoryPoint(370, 261.625570465259),
+    TrajectoryPoint(380, 260.966009817216),
+    TrajectoryPoint(390, 260.30654862979),
+    TrajectoryPoint(400, 259.647151024477),
+    TrajectoryPoint(410, 258.987809774023),
+    TrajectoryPoint(420, 258.328517454817),
+    TrajectoryPoint(430, 257.66927530953),
+    TrajectoryPoint(440, 257.010057634902),
+    TrajectoryPoint(450, 256.35085582331),
+    TrajectoryPoint(460, 255.691662333739),
+    TrajectoryPoint(470, 255.032467437014),
+    TrajectoryPoint(480, 254.373255928457),
+    TrajectoryPoint(490, 253.71402059337),
+    TrajectoryPoint(500, 253.054753781532),
+    TrajectoryPoint(510, 252.395447701914),
+    TrajectoryPoint(520, 251.736079910209),
+    TrajectoryPoint(530, 251.076643495073),
+    TrajectoryPoint(540, 250.417136468119),
+    TrajectoryPoint(550, 249.757550941413),
+    TrajectoryPoint(560, 249.097878906633),
+    TrajectoryPoint(570, 248.438087341157),
+    TrajectoryPoint(580, 247.778177597475),
+    TrajectoryPoint(590, 247.118150626477),
+    TrajectoryPoint(600, 246.457998320241),
+    TrajectoryPoint(610, 245.797712463687),
+    TrajectoryPoint(620, 245.137263245373),
+    TrajectoryPoint(630, 244.476636255167),
+    TrajectoryPoint(640, 243.815845437621),
+    TrajectoryPoint(650, 243.154882465053),
+    TrajectoryPoint(660, 242.493738910504),
+    TrajectoryPoint(670, 241.832406251286),
+    TrajectoryPoint(680, 241.170827012),
+    TrajectoryPoint(690, 240.509031356764),
+    TrajectoryPoint(700, 239.847016545368),
+    TrajectoryPoint(710, 239.184773923019),
+    TrajectoryPoint(720, 238.522294741972),
+    TrajectoryPoint(730, 237.859570163593),
+    TrajectoryPoint(740, 237.196538574956),
+    TrajectoryPoint(750, 236.53323204497),
+    TrajectoryPoint(760, 235.86965006035),
+    TrajectoryPoint(770, 235.205783622386),
+    TrajectoryPoint(780, 234.541623640825),
+    TrajectoryPoint(790, 233.877160934885),
+    TrajectoryPoint(800, 233.212371072885),
+    TrajectoryPoint(810, 232.547209145732),
+    TrajectoryPoint(820, 231.881714206485),
+    TrajectoryPoint(830, 231.215876881588),
+    TrajectoryPoint(840, 230.549687704021),
+    TrajectoryPoint(850, 229.883137113579),
+    TrajectoryPoint(860, 229.216215457004),
+    TrajectoryPoint(870, 228.548912987966),
+    TrajectoryPoint(880, 227.881170177789),
+    TrajectoryPoint(890, 227.213009628583),
+    TrajectoryPoint(900, 226.544437261333),
+    TrajectoryPoint(910, 225.875443092577),
+    TrajectoryPoint(920, 225.206017040653),
+    TrajectoryPoint(930, 224.53614892524),
+    TrajectoryPoint(940, 223.865828466811),
+    TrajectoryPoint(950, 223.195045285985),
+    TrajectoryPoint(960, 222.523788902802),
+    TrajectoryPoint(970, 221.851994318651),
+    TrajectoryPoint(980, 221.179697872664),
+    TrajectoryPoint(990, 220.506895974739),
+    TrajectoryPoint(1000, 219.833577854602),
+    TrajectoryPoint(1010, 219.15973263491),
+    TrajectoryPoint(1020, 218.485349330272),
+    TrajectoryPoint(1030, 217.810416846222),
+    TrajectoryPoint(1040, 217.134923978131),
+    TrajectoryPoint(1050, 216.458859410067),
+    TrajectoryPoint(1060, 215.782211713609),
+    TrajectoryPoint(1070, 215.104969346617),
+    TrajectoryPoint(1080, 214.427119075252),
+    TrajectoryPoint(1090, 213.748604677677),
+    TrajectoryPoint(1100, 213.069461242472),
+    TrajectoryPoint(1110, 212.389676870454),
+    TrajectoryPoint(1120, 211.709239541317),
+    TrajectoryPoint(1130, 211.02813711227),
+    TrajectoryPoint(1140, 210.346357316634),
+    TrajectoryPoint(1150, 209.663887762403),
+    TrajectoryPoint(1160, 208.980715930775),
+    TrajectoryPoint(1170, 208.29682917465),
+    TrajectoryPoint(1180, 207.612214717099),
+    TrajectoryPoint(1190, 206.926859649795),
+    TrajectoryPoint(1200, 206.24075093143),
+    TrajectoryPoint(1210, 205.553875386086),
+    TrajectoryPoint(1220, 204.86621970159),
+    TrajectoryPoint(1230, 204.177770427837),
+    TrajectoryPoint(1240, 203.488513975084),
+    TrajectoryPoint(1250, 202.798436612221),
+    TrajectoryPoint(1260, 202.107524465007),
+    TrajectoryPoint(1270, 201.415763514292),
+    TrajectoryPoint(1280, 200.723139594193),
+    TrajectoryPoint(1290, 200.02963839026),
+    TrajectoryPoint(1300, 199.335245437603),
+    TrajectoryPoint(1310, 198.639946118996),
+    TrajectoryPoint(1320, 197.94372566295),
+    TrajectoryPoint(1330, 197.246569141756),
+    TrajectoryPoint(1340, 196.548461469503),
+    TrajectoryPoint(1350, 195.849387400059),
+    TrajectoryPoint(1360, 195.149331525026),
+    TrajectoryPoint(1370, 194.448278271663),
+    TrajectoryPoint(1380, 193.746211900774),
+    TrajectoryPoint(1390, 193.043116504565),
+    TrajectoryPoint(1400, 192.338976004467),
+    TrajectoryPoint(1410, 191.633774148922),
+    TrajectoryPoint(1420, 190.927494511136),
+    TrajectoryPoint(1430, 190.220120486794),
+    TrajectoryPoint(1440, 189.511635291736),
+    TrajectoryPoint(1450, 188.802021959599),
+    TrajectoryPoint(1460, 188.09126333941),
+    TrajectoryPoint(1470, 187.379342093148),
+    TrajectoryPoint(1480, 186.666240693258),
+    TrajectoryPoint(1490, 185.951938744363),
+    TrajectoryPoint(1500, 185.236340898261),
+    TrajectoryPoint(1510, 184.519503476129),
+    TrajectoryPoint(1520, 183.801408032926),
+    TrajectoryPoint(1530, 183.0820359195),
+    TrajectoryPoint(1540, 182.361368279781),
+    TrajectoryPoint(1550, 181.639386047927),
+    TrajectoryPoint(1560, 180.916069945412),
+    TrajectoryPoint(1570, 180.191400478062),
+    TrajectoryPoint(1580, 179.46535793304),
+    TrajectoryPoint(1590, 178.737922375765),
+    TrajectoryPoint(1600, 178.008966793815),
+    TrajectoryPoint(1610, 177.278537893074),
+    TrajectoryPoint(1620, 176.546647509496),
+    TrajectoryPoint(1630, 175.813274636538),
+    TrajectoryPoint(1640, 175.078398027584),
+    TrajectoryPoint(1650, 174.341996192443),
+    TrajectoryPoint(1660, 173.604047393776),
+    TrajectoryPoint(1670, 172.864440884697),
+    TrajectoryPoint(1680, 172.123136661147),
+    TrajectoryPoint(1690, 171.380210248617),
+    TrajectoryPoint(1700, 170.635638714677),
+    TrajectoryPoint(1710, 169.889398858312),
+    TrajectoryPoint(1720, 169.141467205827),
+    TrajectoryPoint(1730, 168.391685430626),
+    TrajectoryPoint(1740, 167.640055148469),
+    TrajectoryPoint(1750, 166.886651344555),
+    TrajectoryPoint(1760, 166.131449225666),
+    TrajectoryPoint(1770, 165.374423701256),
+    TrajectoryPoint(1780, 164.615402005244),
+    TrajectoryPoint(1790, 163.854364609601),
+    TrajectoryPoint(1800, 163.091416033914),
+    TrajectoryPoint(1810, 162.326529747521),
+    TrajectoryPoint(1820, 161.559655161383),
+    TrajectoryPoint(1830, 160.790484703573),
+    TrajectoryPoint(1840, 160.019283377664),
+    TrajectoryPoint(1850, 159.246023101928),
+    TrajectoryPoint(1860, 158.470651596697),
+    TrajectoryPoint(1870, 157.692816524291),
+    TrajectoryPoint(1880, 156.912823542905),
+    TrajectoryPoint(1890, 156.130642896707),
+    TrajectoryPoint(1900, 155.346078805411),
+    TrajectoryPoint(1910, 154.559012969409),
+    TrajectoryPoint(1920, 153.769654241633),
+    TrajectoryPoint(1930, 152.977959719172),
+    TrajectoryPoint(1940, 152.183462950703),
+    TrajectoryPoint(1950, 151.386562801754),
+    TrajectoryPoint(1960, 150.587226180988),
+    TrajectoryPoint(1970, 149.784979958864),
+    TrajectoryPoint(1980, 148.980155614003),
+    TrajectoryPoint(1990, 148.172777074918),
+    TrajectoryPoint(2000, 147.362301079301),
+    TrajectoryPoint(2010, 146.549149029904),
+    TrajectoryPoint(2020, 145.733224693201),
+    TrajectoryPoint(2030, 144.914089310072),
+    TrajectoryPoint(2040, 144.092183894461),
+    TrajectoryPoint(2050, 143.267131206262),
+    TrajectoryPoint(2060, 142.438928409549),
+    TrajectoryPoint(2070, 141.607786362709),
+    TrajectoryPoint(2080, 140.773054892413),
+    TrajectoryPoint(2090, 139.935317247214),
+    TrajectoryPoint(2100, 139.094042460563),
+    TrajectoryPoint(2110, 138.249430259597),
+    TrajectoryPoint(2120, 137.401345724098),
+    TrajectoryPoint(2130, 136.549603426327),
+    TrajectoryPoint(2140, 135.694393446138),
+    TrajectoryPoint(2150, 134.835254458212),
+    TrajectoryPoint(2160, 133.972587103533),
+    TrajectoryPoint(2170, 133.105773169177),
+    TrajectoryPoint(2180, 132.235299339883),
+    TrajectoryPoint(2190, 131.360519885334),
+    TrajectoryPoint(2200, 130.481872302199),
+    TrajectoryPoint(2210, 129.598823734166),
+    TrajectoryPoint(2220, 128.711615851671),
+    TrajectoryPoint(2230, 127.819980803974),
+    TrajectoryPoint(2240, 126.923805638098),
+    TrajectoryPoint(2250, 126.023252162767),
+    TrajectoryPoint(2260, 125.117681026501),
+    TrajectoryPoint(2270, 124.207615860236),
+    TrajectoryPoint(2280, 123.292442863301),
+    TrajectoryPoint(2290, 122.372275260105),
+    TrajectoryPoint(2300, 121.447222000453),
+    TrajectoryPoint(2310, 120.516489670244),
+    TrajectoryPoint(2320, 119.580563758719),
+    TrajectoryPoint(2330, 118.639321982649),
+    TrajectoryPoint(2340, 117.692014548037),
+    TrajectoryPoint(2350, 116.739059195442),
+    TrajectoryPoint(2360, 115.780314804533),
+    TrajectoryPoint(2370, 114.815332489566),
+    TrajectoryPoint(2380, 113.843954951181),
+    TrajectoryPoint(2390, 112.866267214492),
+    TrajectoryPoint(2400, 111.882076701886),
+    TrajectoryPoint(2410, 110.891088942265),
+    TrajectoryPoint(2420, 109.892875666616),
+    TrajectoryPoint(2430, 108.887563508315),
+    TrajectoryPoint(2440, 107.874930371337),
+    TrajectoryPoint(2450, 106.854745449833),
+    TrajectoryPoint(2460, 105.826768815018),
+    TrajectoryPoint(2470, 104.790750977653),
+    TrajectoryPoint(2480, 103.746432424429),
+    TrajectoryPoint(2490, 102.693402849876),
+    TrajectoryPoint(2500, 101.631560389923),
+    TrajectoryPoint(2510, 100.560620381365),
+    TrajectoryPoint(2520, 99.4802811406893),
+    TrajectoryPoint(2530, 98.3902283743204),
+    TrajectoryPoint(2540, 97.2901345288442),
+    TrajectoryPoint(2550, 96.1796367753489),
+    TrajectoryPoint(2560, 95.058190136743),
+    TrajectoryPoint(2570, 93.9255640929727),
+    TrajectoryPoint(2580, 92.7813661603038),
+    TrajectoryPoint(2590, 91.6251863741699),
+    TrajectoryPoint(2600, 90.4565963199775),
+    TrajectoryPoint(2610, 89.275148098296),
+    TrajectoryPoint(2620, 88.0798114688228),
+    TrajectoryPoint(2630, 86.8704231881022),
+    TrajectoryPoint(2640, 85.6465963135072),
+    TrajectoryPoint(2650, 84.407320998294),
+    TrajectoryPoint(2660, 83.1518341951938),
+    TrajectoryPoint(2670, 81.8800608690652),
+    TrajectoryPoint(2680, 80.5900638104315),
+    TrajectoryPoint(2690, 79.282243688495),
+    TrajectoryPoint(2700, 77.9544772549455),
+    TrajectoryPoint(2710, 76.6069124291296),
+    TrajectoryPoint(2720, 75.2373520170843),
+    TrajectoryPoint(2730, 73.8452857951918),
+    TrajectoryPoint(2740, 72.4294883263256),
+    TrajectoryPoint(2750, 70.9880864739511),
+    TrajectoryPoint(2760, 69.5194381200289),
+    TrajectoryPoint(2770, 68.0221145124561),
+    TrajectoryPoint(2780, 66.4941143982843),
+    TrajectoryPoint(2790, 64.9332510654512),
+    TrajectoryPoint(2800, 63.3371305748235),
+    TrajectoryPoint(2810, 61.7031247695055),
+    TrajectoryPoint(2820, 60.0272032755617),
+    TrajectoryPoint(2830, 58.3068875398862),
+    TrajectoryPoint(2840, 56.5379601289491),
+    TrajectoryPoint(2850, 54.7151136032121),
+    TrajectoryPoint(2860, 52.8331288284302),
+    TrajectoryPoint(2870, 50.8856521103676),
+    TrajectoryPoint(2880, 48.864549099322),
+    TrajectoryPoint(2890, 46.7603023079308),
+    TrajectoryPoint(2900, 44.5617056551878),
+    TrajectoryPoint(2910, 42.2526304092233),
+    TrajectoryPoint(2920, 39.8153385742936),
+    TrajectoryPoint(2930, 37.2240415581766),
+    TrajectoryPoint(2940, 34.4445756188724),
+    TrajectoryPoint(2950, 31.4259905690461),
+    TrajectoryPoint(2960, 28.0928133777348),
+    TrajectoryPoint(2970, 24.3138343123499),
+    TrajectoryPoint(2980, 19.8393298648743),
+    TrajectoryPoint(2990, 14.0173935160974),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t8_closed[] = {
+    TrajectoryPoint(0, 285.523113265711),
+    TrajectoryPoint(10, 284.855479592315),
+    TrajectoryPoint(20, 284.188599955009),
+    TrajectoryPoint(30, 283.522319891926),
+    TrajectoryPoint(40, 282.856738052227),
+    TrajectoryPoint(50, 282.191606926307),
+    TrajectoryPoint(60, 281.526922993916),
+    TrajectoryPoint(70, 280.862927897498),
+    TrajectoryPoint(80, 280.199370408337),
+    TrajectoryPoint(90, 279.53621377455),
+    TrajectoryPoint(100, 278.873549246532),
+    TrajectoryPoint(110, 278.211400254819),
+    TrajectoryPoint(120, 277.54960782467),
+    TrajectoryPoint(130, 276.888167092974),
+    TrajectoryPoint(140, 276.22723524485),
+    TrajectoryPoint(150, 275.566652746908),
+    TrajectoryPoint(160, 274.906379396659),
+    TrajectoryPoint(170, 274.246440631504),
+    TrajectoryPoint(180, 273.586921896077),
+    TrajectoryPoint(190, 272.927671562415),
+    TrajectoryPoint(200, 272.268683957444),
+    TrajectoryPoint(210, 271.610012172191),
+    TrajectoryPoint(220, 270.951647780515),
+    TrajectoryPoint(230, 270.29350697632),
+    TrajectoryPoint(240, 269.63558360616),
+    TrajectoryPoint(250, 268.977933131465),
+    TrajectoryPoint(260, 268.320510263718),
+    TrajectoryPoint(270, 267.663267218803),
+    TrajectoryPoint(280, 267.006197484494),
+    TrajectoryPoint(290, 266.349343914107),
+    TrajectoryPoint(300, 265.692659694764),
+    TrajectoryPoint(310, 265.036112602816),
+    TrajectoryPoint(320, 264.37969585541),
+    TrajectoryPoint(330, 263.723433254483),
+    TrajectoryPoint(340, 263.06729386886),
+    TrajectoryPoint(350, 262.411249952544),
+    TrajectoryPoint(360, 261.755294514099),
+    TrajectoryPoint(370, 261.099432998246),
+    TrajectoryPoint(380, 260.443652786982),
+    TrajectoryPoint(390, 259.787927355261),
+    TrajectoryPoint(400, 259.13224954476),
+    TrajectoryPoint(410, 258.476613175241),
+    TrajectoryPoint(420, 257.821013728907),
+    TrajectoryPoint(430, 257.165429245428),
+    TrajectoryPoint(440, 256.50985242548),
+    TrajectoryPoint(450, 255.854275802825),
+    TrajectoryPoint(460, 255.198686644694),
+    TrajectoryPoint(470, 254.543071820487),
+    TrajectoryPoint(480, 253.887425475764),
+    TrajectoryPoint(490, 253.2317400358),
+    TrajectoryPoint(500, 252.576007788054),
+    TrajectoryPoint(510, 251.920198781337),
+    TrajectoryPoint(520, 251.264317636031),
+    TrajectoryPoint(530, 250.60835874226),
+    TrajectoryPoint(540, 249.952314290874),
+    TrajectoryPoint(550, 249.296176354702),
+    TrajectoryPoint(560, 248.639900564981),
+    TrajectoryPoint(570, 247.983507836944),
+    TrajectoryPoint(580, 247.326991286202),
+    TrajectoryPoint(590, 246.67034288633),
+    TrajectoryPoint(600, 246.013554505713),
+    TrajectoryPoint(610, 245.356581559388),
+    TrajectoryPoint(620, 244.699436329154),
+    TrajectoryPoint(630, 244.042121205665),
+    TrajectoryPoint(640, 243.384627945387),
+    TrajectoryPoint(650, 242.726948207252),
+    TrajectoryPoint(660, 242.069061291831),
+    TrajectoryPoint(670, 241.410925613854),
+    TrajectoryPoint(680, 240.752573795882),
+    TrajectoryPoint(690, 240.093997365522),
+    TrajectoryPoint(700, 239.435187756668),
+    TrajectoryPoint(710, 238.776136311819),
+    TrajectoryPoint(720, 238.116818638694),
+    TrajectoryPoint(730, 237.457193427333),
+    TrajectoryPoint(740, 236.797296735251),
+    TrajectoryPoint(750, 236.137119748541),
+    TrajectoryPoint(760, 235.476653562034),
+    TrajectoryPoint(770, 234.815889180508),
+    TrajectoryPoint(780, 234.154817519677),
+    TrajectoryPoint(790, 233.493381841834),
+    TrajectoryPoint(800, 232.831599648341),
+    TrajectoryPoint(810, 232.169480232087),
+    TrajectoryPoint(820, 231.5070143185),
+    TrajectoryPoint(830, 230.844192541051),
+    TrajectoryPoint(840, 230.181005441523),
+    TrajectoryPoint(850, 229.517443470133),
+    TrajectoryPoint(860, 228.853472035346),
+    TrajectoryPoint(870, 228.189063405612),
+    TrajectoryPoint(880, 227.524249386891),
+    TrajectoryPoint(890, 226.859020200281),
+    TrajectoryPoint(900, 226.193365970585),
+    TrajectoryPoint(910, 225.527276725961),
+    TrajectoryPoint(920, 224.860742397472),
+    TrajectoryPoint(930, 224.193752818536),
+    TrajectoryPoint(940, 223.526297724289),
+    TrajectoryPoint(950, 222.858319459937),
+    TrajectoryPoint(960, 222.189838287004),
+    TrajectoryPoint(970, 221.520859897277),
+    TrajectoryPoint(980, 220.851373745248),
+    TrajectoryPoint(990, 220.181369180901),
+    TrajectoryPoint(1000, 219.510835448812),
+    TrajectoryPoint(1010, 218.839761687189),
+    TrajectoryPoint(1020, 218.168136926844),
+    TrajectoryPoint(1030, 217.495950090128),
+    TrajectoryPoint(1040, 216.823189989797),
+    TrajectoryPoint(1050, 216.149845327839),
+    TrajectoryPoint(1060, 215.475877416546),
+    TrajectoryPoint(1070, 214.80127836353),
+    TrajectoryPoint(1080, 214.126061010631),
+    TrajectoryPoint(1090, 213.450213713862),
+    TrajectoryPoint(1100, 212.773724711259),
+    TrajectoryPoint(1110, 212.09658212156),
+    TrajectoryPoint(1120, 211.418773942857),
+    TrajectoryPoint(1130, 210.740288051206),
+    TrajectoryPoint(1140, 210.061112199208),
+    TrajectoryPoint(1150, 209.381234014553),
+    TrajectoryPoint(1160, 208.700640998534),
+    TrajectoryPoint(1170, 208.019320524532),
+    TrajectoryPoint(1180, 207.33725983647),
+    TrajectoryPoint(1190, 206.654446047238),
+    TrajectoryPoint(1200, 205.970866137089),
+    TrajectoryPoint(1210, 205.286506952009),
+    TrajectoryPoint(1220, 204.601355202063),
+    TrajectoryPoint(1230, 203.915397459701),
+    TrajectoryPoint(1240, 203.228620158054),
+    TrajectoryPoint(1250, 202.541009589193),
+    TrajectoryPoint(1260, 201.852551902359),
+    TrajectoryPoint(1270, 201.163233102175),
+    TrajectoryPoint(1280, 200.473039046825),
+    TrajectoryPoint(1290, 199.781955446206),
+    TrajectoryPoint(1300, 199.089967860053),
+    TrajectoryPoint(1310, 198.397061696035),
+    TrajectoryPoint(1320, 197.703222207824),
+    TrajectoryPoint(1330, 197.008434493137),
+    TrajectoryPoint(1340, 196.31268349174),
+    TrajectoryPoint(1350, 195.615953983432),
+    TrajectoryPoint(1360, 194.918230585992),
+    TrajectoryPoint(1370, 194.219497753096),
+    TrajectoryPoint(1380, 193.5197397722),
+    TrajectoryPoint(1390, 192.818940762392),
+    TrajectoryPoint(1400, 192.117084672212),
+    TrajectoryPoint(1410, 191.41415527743),
+    TrajectoryPoint(1420, 190.710136178793),
+    TrajectoryPoint(1430, 190.005010799738),
+    TrajectoryPoint(1440, 189.298762384061),
+    TrajectoryPoint(1450, 188.591373993548),
+    TrajectoryPoint(1460, 187.882828505574),
+    TrajectoryPoint(1470, 187.173108610646),
+    TrajectoryPoint(1480, 186.462196809922),
+    TrajectoryPoint(1490, 185.75007541267),
+    TrajectoryPoint(1500, 185.036726533696),
+    TrajectoryPoint(1510, 184.322087607605),
+    TrajectoryPoint(1520, 183.606133997179),
+    TrajectoryPoint(1530, 182.888892075563),
+    TrajectoryPoint(1540, 182.170343017133),
+    TrajectoryPoint(1550, 181.450467786611),
+    TrajectoryPoint(1560, 180.729247136151),
+    TrajectoryPoint(1570, 180.006661602364),
+    TrajectoryPoint(1580, 179.282691503298),
+    TrajectoryPoint(1590, 178.557316935352),
+    TrajectoryPoint(1600, 177.830517770135),
+    TrajectoryPoint(1610, 177.102146245149),
+    TrajectoryPoint(1620, 176.372281218417),
+    TrajectoryPoint(1630, 175.640922343904),
+    TrajectoryPoint(1640, 174.908048406959),
+    TrajectoryPoint(1650, 174.173637949395),
+    TrajectoryPoint(1660, 173.437669265913),
+    TrajectoryPoint(1670, 172.700120400445),
+    TrajectoryPoint(1680, 171.960808350156),
+    TrajectoryPoint(1690, 171.219826759187),
+    TrajectoryPoint(1700, 170.477188891358),
+    TrajectoryPoint(1710, 169.73287157828),
+    TrajectoryPoint(1720, 168.986851378867),
+    TrajectoryPoint(1730, 168.23909191192),
+    TrajectoryPoint(1740, 167.48934912901),
+    TrajectoryPoint(1750, 166.737821813749),
+    TrajectoryPoint(1760, 165.984485205846),
+    TrajectoryPoint(1770, 165.229314247626),
+    TrajectoryPoint(1780, 164.472255503174),
+    TrajectoryPoint(1790, 163.713048861259),
+    TrajectoryPoint(1800, 162.951920177622),
+    TrajectoryPoint(1810, 162.18884295457),
+    TrajectoryPoint(1820, 161.423790369185),
+    TrajectoryPoint(1830, 160.656499224743),
+    TrajectoryPoint(1840, 159.88707252106),
+    TrajectoryPoint(1850, 159.115576157201),
+    TrajectoryPoint(1860, 158.341981733516),
+    TrajectoryPoint(1870, 157.565978432388),
+    TrajectoryPoint(1880, 156.787715173247),
+    TrajectoryPoint(1890, 156.007253658688),
+    TrajectoryPoint(1900, 155.224510286424),
+    TrajectoryPoint(1910, 154.439140161109),
+    TrajectoryPoint(1920, 153.651466641418),
+    TrajectoryPoint(1930, 152.861458193193),
+    TrajectoryPoint(1940, 152.068722752288),
+    TrajectoryPoint(1950, 151.273474076715),
+    TrajectoryPoint(1960, 150.475778547396),
+    TrajectoryPoint(1970, 149.675269543101),
+    TrajectoryPoint(1980, 148.872063133736),
+    TrajectoryPoint(1990, 148.066292236779),
+    TrajectoryPoint(2000, 147.25751779753),
+    TrajectoryPoint(2010, 146.445950348983),
+    TrajectoryPoint(2020, 145.631694684321),
+    TrajectoryPoint(2030, 144.81413073952),
+    TrajectoryPoint(2040, 143.993776798312),
+    TrajectoryPoint(2050, 143.170366571422),
+    TrajectoryPoint(2060, 142.343692394227),
+    TrajectoryPoint(2070, 141.514102806064),
+    TrajectoryPoint(2080, 140.680943745961),
+    TrajectoryPoint(2090, 139.844701933015),
+    TrajectoryPoint(2100, 139.005009885509),
+    TrajectoryPoint(2110, 138.161870862199),
+    TrajectoryPoint(2120, 137.315345354401),
+    TrajectoryPoint(2130, 136.46505365521),
+    TrajectoryPoint(2140, 135.61137886277),
+    TrajectoryPoint(2150, 134.753667972044),
+    TrajectoryPoint(2160, 133.892511848776),
+    TrajectoryPoint(2170, 133.027103589809),
+    TrajectoryPoint(2180, 132.158116930458),
+    TrajectoryPoint(2190, 131.284720810643),
+    TrajectoryPoint(2200, 130.407536241305),
+    TrajectoryPoint(2210, 129.52584874985),
+    TrajectoryPoint(2220, 128.640079640029),
+    TrajectoryPoint(2230, 127.749783494374),
+    TrajectoryPoint(2240, 126.855022784092),
+    TrajectoryPoint(2250, 125.955786120814),
+    TrajectoryPoint(2260, 125.051605055493),
+    TrajectoryPoint(2270, 124.142917990285),
+    TrajectoryPoint(2280, 123.229027326204),
+    TrajectoryPoint(2290, 122.31021329417),
+    TrajectoryPoint(2300, 121.38644954933),
+    TrajectoryPoint(2310, 120.457017146129),
+    TrajectoryPoint(2320, 119.522408012795),
+    TrajectoryPoint(2330, 118.582418839063),
+    TrajectoryPoint(2340, 117.636377142724),
+    TrajectoryPoint(2350, 116.68470152192),
+    TrajectoryPoint(2360, 115.727224431874),
+    TrajectoryPoint(2370, 114.763421990318),
+    TrajectoryPoint(2380, 113.79328691982),
+    TrajectoryPoint(2390, 112.816829099011),
+    TrajectoryPoint(2400, 111.833855888938),
+    TrajectoryPoint(2410, 110.84400191246),
+    TrajectoryPoint(2420, 109.846980996819),
+    TrajectoryPoint(2430, 108.842848483946),
+    TrajectoryPoint(2440, 107.831382224854),
+    TrajectoryPoint(2450, 106.812351363113),
+    TrajectoryPoint(2460, 105.78551592168),
+    TrajectoryPoint(2470, 104.750626365291),
+    TrajectoryPoint(2480, 103.707364272066),
+    TrajectoryPoint(2490, 102.655432846983),
+    TrajectoryPoint(2500, 101.594680577135),
+    TrajectoryPoint(2510, 100.524817738453),
+    TrajectoryPoint(2520, 99.4455426102373),
+    TrajectoryPoint(2530, 98.3565408636541),
+    TrajectoryPoint(2540, 97.257484911913),
+    TrajectoryPoint(2550, 96.1480332193403),
+    TrajectoryPoint(2560, 95.0276324299234),
+    TrajectoryPoint(2570, 93.8960034612218),
+    TrajectoryPoint(2580, 92.7527893160912),
+    TrajectoryPoint(2590, 91.5975800065485),
+    TrajectoryPoint(2600, 90.4299470961985),
+    TrajectoryPoint(2610, 89.2494426653926),
+    TrajectoryPoint(2620, 88.0550856972589),
+    TrajectoryPoint(2630, 86.8466128949824),
+    TrajectoryPoint(2640, 85.6236880559177),
+    TrajectoryPoint(2650, 84.3853474955093),
+    TrajectoryPoint(2660, 83.1307341065176),
+    TrajectoryPoint(2670, 81.8598206815153),
+    TrajectoryPoint(2680, 80.5707125652386),
+    TrajectoryPoint(2690, 79.2637234655312),
+    TrajectoryPoint(2700, 77.9368148596952),
+    TrajectoryPoint(2710, 76.5900918989892),
+    TrajectoryPoint(2720, 75.2213178767821),
+    TrajectoryPoint(2730, 73.8300616994356),
+    TrajectoryPoint(2740, 72.4150578513234),
+    TrajectoryPoint(2750, 70.9743973158589),
+    TrajectoryPoint(2760, 69.5065101563758),
+    TrajectoryPoint(2770, 68.0099309182002),
+    TrajectoryPoint(2780, 66.4826581973602),
+    TrajectoryPoint(2790, 64.9225051387046),
+    TrajectoryPoint(2800, 63.327077667737),
+    TrajectoryPoint(2810, 61.6937495738048),
+    TrajectoryPoint(2820, 60.0185115080315),
+    TrajectoryPoint(2830, 58.2988347798023),
+    TrajectoryPoint(2840, 56.5305537545326),
+    TrajectoryPoint(2850, 54.7083088659519),
+    TrajectoryPoint(2860, 52.8269302311832),
+    TrajectoryPoint(2870, 50.880038600498),
+    TrajectoryPoint(2880, 48.8594992649163),
+    TrajectoryPoint(2890, 46.7557944022989),
+    TrajectoryPoint(2900, 44.5577176221904),
+    TrajectoryPoint(2910, 42.2491563294788),
+    TrajectoryPoint(2920, 39.8123528998214),
+    TrajectoryPoint(2930, 37.2215180858861),
+    TrajectoryPoint(2940, 34.4425001967444),
+    TrajectoryPoint(2950, 31.4243327087247),
+    TrajectoryPoint(2960, 28.0915416737693),
+    TrajectoryPoint(2970, 24.3129326146767),
+    TrajectoryPoint(2980, 19.8387644007151),
+    TrajectoryPoint(2990, 14.0171321587863),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t9_closed[] = {
+    TrajectoryPoint(0, 284.860132271709),
+    TrajectoryPoint(10, 284.196954575389),
+    TrajectoryPoint(20, 283.534777036889),
+    TrajectoryPoint(30, 282.873243011805),
+    TrajectoryPoint(40, 282.212144989553),
+    TrajectoryPoint(50, 281.551479416948),
+    TrajectoryPoint(60, 280.891503985271),
+    TrajectoryPoint(70, 280.231924382733),
+    TrajectoryPoint(80, 279.572731784548),
+    TrajectoryPoint(90, 278.914036336609),
+    TrajectoryPoint(100, 278.255813506923),
+    TrajectoryPoint(110, 277.597934213897),
+    TrajectoryPoint(120, 276.940393608758),
+    TrajectoryPoint(130, 276.28336107756),
+    TrajectoryPoint(140, 275.626643954136),
+    TrajectoryPoint(150, 274.970223737409),
+    TrajectoryPoint(160, 274.314141418251),
+    TrajectoryPoint(170, 273.658443168417),
+    TrajectoryPoint(180, 273.003001790553),
+    TrajectoryPoint(190, 272.347811650729),
+    TrajectoryPoint(200, 271.69293681138),
+    TrajectoryPoint(210, 271.038339781219),
+    TrajectoryPoint(220, 270.383955506719),
+    TrajectoryPoint(230, 269.729777886714),
+    TrajectoryPoint(240, 269.075869958168),
+    TrajectoryPoint(250, 268.422165010115),
+    TrajectoryPoint(260, 267.768629714238),
+    TrajectoryPoint(270, 267.115257619198),
+    TrajectoryPoint(280, 266.462096652855),
+    TrajectoryPoint(290, 265.809084279181),
+    TrajectoryPoint(300, 265.156199485578),
+    TrajectoryPoint(310, 264.503435555533),
+    TrajectoryPoint(320, 263.850819531513),
+    TrajectoryPoint(330, 263.198309001446),
+    TrajectoryPoint(340, 262.545884979851),
+    TrajectoryPoint(350, 261.89354054497),
+    TrajectoryPoint(360, 261.241283035297),
+    TrajectoryPoint(370, 260.589091520446),
+    TrajectoryPoint(380, 259.936946376295),
+    TrajectoryPoint(390, 259.28484051619),
+    TrajectoryPoint(400, 258.632768650923),
+    TrajectoryPoint(410, 257.980720350232),
+    TrajectoryPoint(420, 257.328679124255),
+    TrajectoryPoint(430, 256.676637746542),
+    TrajectoryPoint(440, 256.024588827252),
+    TrajectoryPoint(450, 255.372515718959),
+    TrajectoryPoint(460, 254.720409509474),
+    TrajectoryPoint(470, 254.068264458153),
+    TrajectoryPoint(480, 253.416073066936),
+    TrajectoryPoint(490, 252.763825413684),
+    TrajectoryPoint(500, 252.111490530356),
+    TrajectoryPoint(510, 251.45907873107),
+    TrajectoryPoint(520, 250.80658240923),
+    TrajectoryPoint(530, 250.15399383501),
+    TrajectoryPoint(540, 249.501298073655),
+    TrajectoryPoint(550, 248.8484607203),
+    TrajectoryPoint(560, 248.195501137233),
+    TrajectoryPoint(570, 247.542411488323),
+    TrajectoryPoint(580, 246.889183828715),
+    TrajectoryPoint(590, 246.235809161444),
+    TrajectoryPoint(600, 245.582231345332),
+    TrajectoryPoint(610, 244.928485971925),
+    TrajectoryPoint(620, 244.274564981276),
+    TrajectoryPoint(630, 243.620460213729),
+    TrajectoryPoint(640, 242.966163413684),
+    TrajectoryPoint(650, 242.31163651172),
+    TrajectoryPoint(660, 241.656870199237),
+    TrajectoryPoint(670, 241.001882535127),
+    TrajectoryPoint(680, 240.34666513352),
+    TrajectoryPoint(690, 239.69120951633),
+    TrajectoryPoint(700, 239.035507115515),
+    TrajectoryPoint(710, 238.379510576256),
+    TrajectoryPoint(720, 237.723222254929),
+    TrajectoryPoint(730, 237.066657841556),
+    TrajectoryPoint(740, 236.409808613365),
+    TrajectoryPoint(750, 235.752665757752),
+    TrajectoryPoint(760, 235.095220373467),
+    TrajectoryPoint(770, 234.437453344742),
+    TrajectoryPoint(780, 233.779307397293),
+    TrajectoryPoint(790, 233.120829410333),
+    TrajectoryPoint(800, 232.462010298004),
+    TrajectoryPoint(810, 231.802840883498),
+    TrajectoryPoint(820, 231.143311899487),
+    TrajectoryPoint(830, 230.483413988376),
+    TrajectoryPoint(840, 229.823137702427),
+    TrajectoryPoint(850, 229.162409488717),
+    TrajectoryPoint(860, 228.501277556995),
+    TrajectoryPoint(870, 227.839737074187),
+    TrajectoryPoint(880, 227.177778366591),
+    TrajectoryPoint(890, 226.515391665711),
+    TrajectoryPoint(900, 225.852567107906),
+    TrajectoryPoint(910, 225.189294733942),
+    TrajectoryPoint(920, 224.52556448845),
+    TrajectoryPoint(930, 223.861332381098),
+    TrajectoryPoint(940, 223.196590127606),
+    TrajectoryPoint(950, 222.531358831378),
+    TrajectoryPoint(960, 221.865628165727),
+    TrajectoryPoint(970, 221.199387701887),
+    TrajectoryPoint(980, 220.532626908188),
+    TrajectoryPoint(990, 219.86533514917),
+    TrajectoryPoint(1000, 219.197501684629),
+    TrajectoryPoint(1010, 218.529115668609),
+    TrajectoryPoint(1020, 217.86016614834),
+    TrajectoryPoint(1030, 217.190642063122),
+    TrajectoryPoint(1040, 216.520487434659),
+    TrajectoryPoint(1050, 215.849726555463),
+    TrajectoryPoint(1060, 215.178357982363),
+    TrajectoryPoint(1070, 214.506370319467),
+    TrajectoryPoint(1080, 213.833752055933),
+    TrajectoryPoint(1090, 213.160491564705),
+    TrajectoryPoint(1100, 212.486577101214),
+    TrajectoryPoint(1110, 211.811996802043),
+    TrajectoryPoint(1120, 211.13673868355),
+    TrajectoryPoint(1130, 210.460790640468),
+    TrajectoryPoint(1140, 209.784140444462),
+    TrajectoryPoint(1150, 209.106775742663),
+    TrajectoryPoint(1160, 208.428684056169),
+    TrajectoryPoint(1170, 207.749852778514),
+    TrajectoryPoint(1180, 207.070269174113),
+    TrajectoryPoint(1190, 206.389920376677),
+    TrajectoryPoint(1200, 205.7087933876),
+    TrajectoryPoint(1210, 205.026875074322),
+    TrajectoryPoint(1220, 204.34415216866),
+    TrajectoryPoint(1230, 203.660611265117),
+    TrajectoryPoint(1240, 202.976238819165),
+    TrajectoryPoint(1250, 202.291019684537),
+    TrajectoryPoint(1260, 201.604934397644),
+    TrajectoryPoint(1270, 200.917978945247),
+    TrajectoryPoint(1280, 200.230139317258),
+    TrajectoryPoint(1290, 199.541401356063),
+    TrajectoryPoint(1300, 198.851750754696),
+    TrajectoryPoint(1310, 198.161173054968),
+    TrajectoryPoint(1320, 197.469651093697),
+    TrajectoryPoint(1330, 196.777161436794),
+    TrajectoryPoint(1340, 196.083696748141),
+    TrajectoryPoint(1350, 195.389241832702),
+    TrajectoryPoint(1360, 194.693781333652),
+    TrajectoryPoint(1370, 193.997299730282),
+    TrajectoryPoint(1380, 193.299781335887),
+    TrajectoryPoint(1390, 192.601210295605),
+    TrajectoryPoint(1400, 191.901570584236),
+    TrajectoryPoint(1410, 191.200846004012),
+    TrajectoryPoint(1420, 190.499020182346),
+    TrajectoryPoint(1430, 189.79607656953),
+    TrajectoryPoint(1440, 189.091998436406),
+    TrajectoryPoint(1450, 188.38676887199),
+    TrajectoryPoint(1460, 187.680370781063),
+    TrajectoryPoint(1470, 186.972786881714),
+    TrajectoryPoint(1480, 186.263999702848),
+    TrajectoryPoint(1490, 185.553991581642),
+    TrajectoryPoint(1500, 184.842744660964),
+    TrajectoryPoint(1510, 184.130240886744),
+    TrajectoryPoint(1520, 183.416449069571),
+    TrajectoryPoint(1530, 182.701274237962),
+    TrajectoryPoint(1540, 181.984781033213),
+    TrajectoryPoint(1550, 181.266950449524),
+    TrajectoryPoint(1560, 180.54776326863),
+    TrajectoryPoint(1570, 179.82720005682),
+    TrajectoryPoint(1580, 179.105241161914),
+    TrajectoryPoint(1590, 178.381866710166),
+    TrajectoryPoint(1600, 177.657056603121),
+    TrajectoryPoint(1610, 176.930787350821),
+    TrajectoryPoint(1620, 176.20288792369),
+    TrajectoryPoint(1630, 175.47348365584),
+    TrajectoryPoint(1640, 174.742553363391),
+    TrajectoryPoint(1650, 174.010075618963),
+    TrajectoryPoint(1660, 173.27602874809),
+    TrajectoryPoint(1670, 172.540390825568),
+    TrajectoryPoint(1680, 171.803100147764),
+    TrajectoryPoint(1690, 171.064006183184),
+    TrajectoryPoint(1700, 170.323245144399),
+    TrajectoryPoint(1710, 169.580793894391),
+    TrajectoryPoint(1720, 168.836629023431),
+    TrajectoryPoint(1730, 168.090726844893),
+    TrajectoryPoint(1740, 167.3429233275),
+    TrajectoryPoint(1750, 166.593217473833),
+    TrajectoryPoint(1760, 165.84169170131),
+    TrajectoryPoint(1770, 165.088320983845),
+    TrajectoryPoint(1780, 164.333079993209),
+    TrajectoryPoint(1790, 163.575739572046),
+    TrajectoryPoint(1800, 162.816377543151),
+    TrajectoryPoint(1810, 162.055056491904),
+    TrajectoryPoint(1820, 161.291749626964),
+    TrajectoryPoint(1830, 160.526307141909),
+    TrajectoryPoint(1840, 159.758603249157),
+    TrajectoryPoint(1850, 158.988819327081),
+    TrajectoryPoint(1860, 158.216927007504),
+    TrajectoryPoint(1870, 157.442726327146),
+    TrajectoryPoint(1880, 156.666142391393),
+    TrajectoryPoint(1890, 155.887349946125),
+    TrajectoryPoint(1900, 155.106318920254),
+    TrajectoryPoint(1910, 154.322651560624),
+    TrajectoryPoint(1920, 153.536614247997),
+    TrajectoryPoint(1930, 152.74823186829),
+    TrajectoryPoint(1940, 151.957218529703),
+    TrajectoryPoint(1950, 151.163573380709),
+    TrajectoryPoint(1960, 150.367471324249),
+    TrajectoryPoint(1970, 149.568650017007),
+    TrajectoryPoint(1980, 148.767014642972),
+    TrajectoryPoint(1990, 147.962804812621),
+    TrajectoryPoint(2000, 147.15568345995),
+    TrajectoryPoint(2010, 146.345654750718),
+    TrajectoryPoint(2020, 145.532927941512),
+    TrajectoryPoint(2030, 144.716982300626),
+    TrajectoryPoint(2040, 143.898135002593),
+    TrajectoryPoint(2050, 143.076320503308),
+    TrajectoryPoint(2060, 142.251130820992),
+    TrajectoryPoint(2070, 141.423015983168),
+    TrajectoryPoint(2080, 140.59141757117),
+    TrajectoryPoint(2090, 139.75662848236),
+    TrajectoryPoint(2100, 138.918474203177),
+    TrajectoryPoint(2110, 138.076765947777),
+    TrajectoryPoint(2120, 137.231755192692),
+    TrajectoryPoint(2130, 136.382872377543),
+    TrajectoryPoint(2140, 135.530689198789),
+    TrajectoryPoint(2150, 134.674365382645),
+    TrajectoryPoint(2160, 133.814641738985),
+    TrajectoryPoint(2170, 132.950634704476),
+    TrajectoryPoint(2180, 132.08307195848),
+    TrajectoryPoint(2190, 131.211040621662),
+    TrajectoryPoint(2200, 130.335277619677),
+    TrajectoryPoint(2210, 129.454912237195),
+    TrajectoryPoint(2220, 128.570541169391),
+    TrajectoryPoint(2230, 127.681545635994),
+    TrajectoryPoint(2240, 126.788159368973),
+    TrajectoryPoint(2250, 125.890201902086),
+    TrajectoryPoint(2260, 124.987371615836),
+    TrajectoryPoint(2270, 124.080023704841),
+    TrajectoryPoint(2280, 123.167378805519),
+    TrajectoryPoint(2290, 122.249880122997),
+    TrajectoryPoint(2300, 121.327340922214),
+    TrajectoryPoint(2310, 120.399200018403),
+    TrajectoryPoint(2320, 119.465870521575),
+    TrajectoryPoint(2330, 118.527072728175),
+    TrajectoryPoint(2340, 117.582286711512),
+    TrajectoryPoint(2350, 116.631854768689),
+    TrajectoryPoint(2360, 115.675609286581),
+    TrajectoryPoint(2370, 114.712953247704),
+    TrajectoryPoint(2380, 113.744025685441),
+    TrajectoryPoint(2390, 112.76876318555),
+    TrajectoryPoint(2400, 111.786973049757),
+    TrajectoryPoint(2410, 110.798220769624),
+    TrajectoryPoint(2420, 109.802358721198),
+    TrajectoryPoint(2430, 108.799372730605),
+    TrajectoryPoint(2440, 107.789040597536),
+    TrajectoryPoint(2450, 106.771131416532),
+    TrajectoryPoint(2460, 105.745405163731),
+    TrajectoryPoint(2470, 104.711612259198),
+    TrajectoryPoint(2480, 103.669371974665),
+    TrajectoryPoint(2490, 102.618512829381),
+    TrajectoryPoint(2500, 101.558820235446),
+    TrajectoryPoint(2510, 100.490004430682),
+    TrajectoryPoint(2520, 99.4117636581828),
+    TrajectoryPoint(2530, 98.3237835547576),
+    TrajectoryPoint(2540, 97.2257365010637),
+    TrajectoryPoint(2550, 96.1172809306365),
+    TrajectoryPoint(2560, 94.9979176500855),
+    TrajectoryPoint(2570, 93.8672579390628),
+    TrajectoryPoint(2580, 92.7250001491128),
+    TrajectoryPoint(2590, 91.570734269261),
+    TrajectoryPoint(2600, 90.4040318416731),
+    TrajectoryPoint(2610, 89.2244449267843),
+    TrajectoryPoint(2620, 88.0310404503353),
+    TrajectoryPoint(2630, 86.8234576653431),
+    TrajectoryPoint(2640, 85.6014097885444),
+    TrajectoryPoint(2650, 84.363978090251),
+    TrajectoryPoint(2660, 83.1102138634812),
+    TrajectoryPoint(2670, 81.8401364766352),
+    TrajectoryPoint(2680, 80.5518927124763),
+    TrajectoryPoint(2690, 79.2457115990299),
+    TrajectoryPoint(2700, 77.9196371128033),
+    TrajectoryPoint(2710, 76.573732759094),
+    TrajectoryPoint(2720, 75.2057233651619),
+    TrajectoryPoint(2730, 73.8152548757506),
+    TrajectoryPoint(2740, 72.4010227547454),
+    TrajectoryPoint(2750, 70.9610830582135),
+    TrajectoryPoint(2760, 69.4939361166712),
+    TrajectoryPoint(2770, 67.9980807451113),
+    TrajectoryPoint(2780, 66.4715153925865),
+    TrajectoryPoint(2790, 64.912053064619),
+    TrajectoryPoint(2800, 63.317299554836),
+    TrajectoryPoint(2810, 61.6846285279769),
+    TrajectoryPoint(2820, 60.0100571541484),
+    TrajectoryPoint(2830, 58.2910018887725),
+    TrajectoryPoint(2840, 56.5233495287609),
+    TrajectoryPoint(2850, 54.7016897775644),
+    TrajectoryPoint(2860, 52.820900682815),
+    TrajectoryPoint(2870, 50.8745781240896),
+    TrajectoryPoint(2880, 48.8545870427998),
+    TrajectoryPoint(2890, 46.7514092908934),
+    TrajectoryPoint(2900, 44.5538381765167),
+    TrajectoryPoint(2910, 42.2457768061917),
+    TrajectoryPoint(2920, 39.8094484551715),
+    TrajectoryPoint(2930, 37.2190632386811),
+    TrajectoryPoint(2940, 34.4404811909898),
+    TrajectoryPoint(2950, 31.4227198930438),
+    TrajectoryPoint(2960, 28.0903045043538),
+    TrajectoryPoint(2970, 24.3120553901285),
+    TrajectoryPoint(2980, 19.8382142735135),
+    TrajectoryPoint(2990, 14.0168778835745),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t10_closed[] = {
+    TrajectoryPoint(0, 284.217060865029),
+    TrajectoryPoint(10, 283.558695560262),
+    TrajectoryPoint(20, 282.901066213715),
+    TrajectoryPoint(30, 282.2438920452),
+    TrajectoryPoint(40, 281.5871507165),
+    TrajectoryPoint(50, 280.931064826739),
+    TrajectoryPoint(60, 280.275356468001),
+    TrajectoryPoint(70, 279.62002174664),
+    TrajectoryPoint(80, 278.965182967075),
+    TrajectoryPoint(90, 278.310782098687),
+    TrajectoryPoint(100, 277.656712203669),
+    TrajectoryPoint(110, 277.00297036531),
+    TrajectoryPoint(120, 276.349727053556),
+    TrajectoryPoint(130, 275.696773837399),
+    TrajectoryPoint(140, 275.044105740489),
+    TrajectoryPoint(150, 274.391774243689),
+    TrajectoryPoint(160, 273.739797150309),
+    TrajectoryPoint(170, 273.088065832102),
+    TrajectoryPoint(180, 272.436574703862),
+    TrajectoryPoint(190, 271.785394728316),
+    TrajectoryPoint(200, 271.134468161814),
+    TrajectoryPoint(210, 270.483743941939),
+    TrajectoryPoint(220, 269.83321602705),
+    TrajectoryPoint(230, 269.182951775553),
+    TrajectoryPoint(240, 268.532870144488),
+    TrajectoryPoint(250, 267.88294840627),
+    TrajectoryPoint(260, 267.233180175921),
+    TrajectoryPoint(270, 266.583615875424),
+    TrajectoryPoint(280, 265.934182915387),
+    TrajectoryPoint(290, 265.284868387449),
+    TrajectoryPoint(300, 264.635665645574),
+    TrajectoryPoint(310, 263.986602948067),
+    TrajectoryPoint(320, 263.337630898988),
+    TrajectoryPoint(330, 262.688736784896),
+    TrajectoryPoint(340, 262.039913756836),
+    TrajectoryPoint(350, 261.391169480478),
+    TrajectoryPoint(360, 260.74247824232),
+    TrajectoryPoint(370, 260.093825341646),
+    TrajectoryPoint(380, 259.445203765819),
+    TrajectoryPoint(390, 258.79660792686),
+    TrajectoryPoint(400, 258.14802421407),
+    TrajectoryPoint(410, 257.499440052208),
+    TrajectoryPoint(420, 256.850848289447),
+    TrajectoryPoint(430, 256.202241613688),
+    TrajectoryPoint(440, 255.553598892973),
+    TrajectoryPoint(450, 254.904916872003),
+    TrajectoryPoint(460, 254.256189042771),
+    TrajectoryPoint(470, 253.60740798483),
+    TrajectoryPoint(480, 252.958559143628),
+    TrajectoryPoint(490, 252.309617722723),
+    TrajectoryPoint(500, 251.660592879102),
+    TrajectoryPoint(510, 251.011477083801),
+    TrajectoryPoint(520, 250.362262686695),
+    TrajectoryPoint(530, 249.7129267839),
+    TrajectoryPoint(540, 249.063448120732),
+    TrajectoryPoint(550, 248.413841239794),
+    TrajectoryPoint(560, 247.764098384764),
+    TrajectoryPoint(570, 247.114211692327),
+    TrajectoryPoint(580, 246.464161165948),
+    TrajectoryPoint(590, 245.813910110824),
+    TrajectoryPoint(600, 245.16348601726),
+    TrajectoryPoint(610, 244.51288090731),
+    TrajectoryPoint(620, 243.86208670485),
+    TrajectoryPoint(630, 243.211095239261),
+    TrajectoryPoint(640, 242.559851903875),
+    TrajectoryPoint(650, 241.908378169887),
+    TrajectoryPoint(660, 241.256678187504),
+    TrajectoryPoint(670, 240.604743656787),
+    TrajectoryPoint(680, 239.95256618696),
+    TrajectoryPoint(690, 239.300137298627),
+    TrajectoryPoint(700, 238.647387836907),
+    TrajectoryPoint(710, 237.994361642452),
+    TrajectoryPoint(720, 237.341055048766),
+    TrajectoryPoint(730, 236.687459423309),
+    TrajectoryPoint(740, 236.033566045058),
+    TrajectoryPoint(750, 235.379366105661),
+    TrajectoryPoint(760, 234.724813395315),
+    TrajectoryPoint(770, 234.069902825872),
+    TrajectoryPoint(780, 233.414656510954),
+    TrajectoryPoint(790, 232.759065459875),
+    TrajectoryPoint(800, 232.10312059237),
+    TrajectoryPoint(810, 231.44681273902),
+    TrajectoryPoint(820, 230.790132641501),
+    TrajectoryPoint(830, 230.13304067002),
+    TrajectoryPoint(840, 229.475516977617),
+    TrajectoryPoint(850, 228.817591327444),
+    TrajectoryPoint(860, 228.159254242639),
+    TrajectoryPoint(870, 227.500496153216),
+    TrajectoryPoint(880, 226.841307395835),
+    TrajectoryPoint(890, 226.181678213455),
+    TrajectoryPoint(900, 225.521598754892),
+    TrajectoryPoint(910, 224.861044764806),
+    TrajectoryPoint(920, 224.199967444365),
+    TrajectoryPoint(930, 223.538409189616),
+    TrajectoryPoint(940, 222.876359887027),
+    TrajectoryPoint(950, 222.21380932328),
+    TrajectoryPoint(960, 221.550747184522),
+    TrajectoryPoint(970, 220.887163055561),
+    TrajectoryPoint(980, 220.223046418979),
+    TrajectoryPoint(990, 219.5583866542),
+    TrajectoryPoint(1000, 218.893173036488),
+    TrajectoryPoint(1010, 218.227394735901),
+    TrajectoryPoint(1020, 217.560986376641),
+    TrajectoryPoint(1030, 216.893988829051),
+    TrajectoryPoint(1040, 216.226394059999),
+    TrajectoryPoint(1050, 215.558190914844),
+    TrajectoryPoint(1060, 214.889368126915),
+    TrajectoryPoint(1070, 214.219914316298),
+    TrajectoryPoint(1080, 213.549817988594),
+    TrajectoryPoint(1090, 212.879067533634),
+    TrajectoryPoint(1100, 212.207651224154),
+    TrajectoryPoint(1110, 211.535557214442),
+    TrajectoryPoint(1120, 210.862773538947),
+    TrajectoryPoint(1130, 210.189288110859),
+    TrajectoryPoint(1140, 209.515088720655),
+    TrajectoryPoint(1150, 208.840163034618),
+    TrajectoryPoint(1160, 208.164498593327),
+    TrajectoryPoint(1170, 207.488082810117),
+    TrajectoryPoint(1180, 206.810902969514),
+    TrajectoryPoint(1190, 206.13292457024),
+    TrajectoryPoint(1200, 205.454153880327),
+    TrajectoryPoint(1210, 204.774582485683),
+    TrajectoryPoint(1220, 204.094197244072),
+    TrajectoryPoint(1230, 203.412984876468),
+    TrajectoryPoint(1240, 202.730931965383),
+    TrajectoryPoint(1250, 202.048024953167),
+    TrajectoryPoint(1260, 201.364250140279),
+    TrajectoryPoint(1270, 200.679593683532),
+    TrajectoryPoint(1280, 199.994041594307),
+    TrajectoryPoint(1290, 199.307579736745),
+    TrajectoryPoint(1300, 198.620193825903),
+    TrajectoryPoint(1310, 197.931869425885),
+    TrajectoryPoint(1320, 197.242591947943),
+    TrajectoryPoint(1330, 196.552346648553),
+    TrajectoryPoint(1340, 195.861118627451),
+    TrajectoryPoint(1350, 195.168892825646),
+    TrajectoryPoint(1360, 194.475654023398),
+    TrajectoryPoint(1370, 193.781386838169),
+    TrajectoryPoint(1380, 193.086060382431),
+    TrajectoryPoint(1390, 192.389651884636),
+    TrajectoryPoint(1400, 191.692163493074),
+    TrajectoryPoint(1410, 190.993579035609),
+    TrajectoryPoint(1420, 190.293882165467),
+    TrajectoryPoint(1430, 189.593056358935),
+    TrajectoryPoint(1440, 188.891084913025),
+    TrajectoryPoint(1450, 188.187950943096),
+    TrajectoryPoint(1460, 187.483637380433),
+    TrajectoryPoint(1470, 186.778126969793),
+    TrajectoryPoint(1480, 186.071402266903),
+    TrajectoryPoint(1490, 185.363445635912),
+    TrajectoryPoint(1500, 184.654239246804),
+    TrajectoryPoint(1510, 183.943765072763),
+    TrajectoryPoint(1520, 183.232004887492),
+    TrajectoryPoint(1530, 182.518940262478),
+    TrajectoryPoint(1540, 181.804451801445),
+    TrajectoryPoint(1550, 181.088606222286),
+    TrajectoryPoint(1560, 180.371393223427),
+    TrajectoryPoint(1570, 179.652793399783),
+    TrajectoryPoint(1580, 178.932787127878),
+    TrajectoryPoint(1590, 178.211354562753),
+    TrajectoryPoint(1600, 177.48847563481),
+    TrajectoryPoint(1610, 176.764130046598),
+    TrajectoryPoint(1620, 176.038258301008),
+    TrajectoryPoint(1630, 175.310751824504),
+    TrajectoryPoint(1640, 174.581708708596),
+    TrajectoryPoint(1650, 173.851107555573),
+    TrajectoryPoint(1660, 173.118926720661),
+    TrajectoryPoint(1670, 172.385144308363),
+    TrajectoryPoint(1680, 171.649738168726),
+    TrajectoryPoint(1690, 170.912556882719),
+    TrajectoryPoint(1700, 170.173618295166),
+    TrajectoryPoint(1710, 169.432979070706),
+    TrajectoryPoint(1720, 168.690615829777),
+    TrajectoryPoint(1730, 167.946504915895),
+    TrajectoryPoint(1740, 167.200598255468),
+    TrajectoryPoint(1750, 166.452661212771),
+    TrajectoryPoint(1760, 165.702893960156),
+    TrajectoryPoint(1770, 164.951271501907),
+    TrajectoryPoint(1780, 164.197768540106),
+    TrajectoryPoint(1790, 163.442269001612),
+    TrajectoryPoint(1800, 162.684622684623),
+    TrajectoryPoint(1810, 161.925007192098),
+    TrajectoryPoint(1820, 161.163395763042),
+    TrajectoryPoint(1830, 160.399749833423),
+    TrajectoryPoint(1840, 159.63371916964),
+    TrajectoryPoint(1850, 158.865598432802),
+    TrajectoryPoint(1860, 158.095359284961),
+    TrajectoryPoint(1870, 157.322910452589),
+    TrajectoryPoint(1880, 156.547957606193),
+    TrajectoryPoint(1890, 155.770786317144),
+    TrajectoryPoint(1900, 154.991366544342),
+    TrajectoryPoint(1910, 154.209406025209),
+    TrajectoryPoint(1920, 153.424958019643),
+    TrajectoryPoint(1930, 152.638155124884),
+    TrajectoryPoint(1940, 151.848815449002),
+    TrajectoryPoint(1950, 151.056727932878),
+    TrajectoryPoint(1960, 150.262173768664),
+    TrajectoryPoint(1970, 149.464992715667),
+    TrajectoryPoint(1980, 148.664883482326),
+    TrajectoryPoint(1990, 147.862190133666),
+    TrajectoryPoint(2000, 147.056675430956),
+    TrajectoryPoint(2010, 146.248141557878),
+    TrajectoryPoint(2020, 145.436900007296),
+    TrajectoryPoint(2030, 144.622527247612),
+    TrajectoryPoint(2040, 143.80514367317),
+    TrajectoryPoint(2050, 142.984880127093),
+    TrajectoryPoint(2060, 142.161132694795),
+    TrajectoryPoint(2070, 141.334450663163),
+    TrajectoryPoint(2080, 140.50436915139),
+    TrajectoryPoint(2090, 139.670991512361),
+    TrajectoryPoint(2100, 138.834331914379),
+    TrajectoryPoint(2110, 137.994013819464),
+    TrajectoryPoint(2120, 137.150475396111),
+    TrajectoryPoint(2130, 136.302961521506),
+    TrajectoryPoint(2140, 135.452153761484),
+    TrajectoryPoint(2150, 134.597252182141),
+    TrajectoryPoint(2160, 133.738867122969),
+    TrajectoryPoint(2170, 132.876275508058),
+    TrajectoryPoint(2180, 132.010030322447),
+    TrajectoryPoint(2190, 131.139391754783),
+    TrajectoryPoint(2200, 130.26499103446),
+    TrajectoryPoint(2210, 129.38593001286),
+    TrajectoryPoint(2220, 128.502917958065),
+    TrajectoryPoint(2230, 127.615186364543),
+    TrajectoryPoint(2240, 126.723136199075),
+    TrajectoryPoint(2250, 125.826421900187),
+    TrajectoryPoint(2260, 124.924904740617),
+    TrajectoryPoint(2270, 124.01885866196),
+    TrajectoryPoint(2280, 123.107424499922),
+    TrajectoryPoint(2290, 122.191204538836),
+    TrajectoryPoint(2300, 121.269855490042),
+    TrajectoryPoint(2310, 120.342970152429),
+    TrajectoryPoint(2320, 119.410884697565),
+    TrajectoryPoint(2330, 118.473244881224),
+    TrajectoryPoint(2340, 117.529679647516),
+    TrajectoryPoint(2350, 116.580456829175),
+    TrajectoryPoint(2360, 115.625408747032),
+    TrajectoryPoint(2370, 114.663867043354),
+    TrajectoryPoint(2380, 113.696113482846),
+    TrajectoryPoint(2390, 112.722013146543),
+    TrajectoryPoint(2400, 111.741373278759),
+    TrajectoryPoint(2410, 110.753691950393),
+    TrajectoryPoint(2420, 109.758956666518),
+    TrajectoryPoint(2430, 108.757085449398),
+    TrajectoryPoint(2440, 107.747856048974),
+    TrajectoryPoint(2450, 106.731037512227),
+    TrajectoryPoint(2460, 105.706389769855),
+    TrajectoryPoint(2470, 104.673663198538),
+    TrajectoryPoint(2480, 103.632416327513),
+    TrajectoryPoint(2490, 102.582599849262),
+    TrajectoryPoint(2500, 101.523937679523),
+    TrajectoryPoint(2510, 100.45614001903),
+    TrajectoryPoint(2520, 99.3789050756092),
+    TrajectoryPoint(2530, 98.291918452576),
+    TrajectoryPoint(2540, 97.1948524988287),
+    TrajectoryPoint(2550, 96.0873656178334),
+    TrajectoryPoint(2560, 94.9690114000573),
+    TrajectoryPoint(2570, 93.839294276825),
+    TrajectoryPoint(2580, 92.6979665407632),
+    TrajectoryPoint(2590, 91.5446181583213),
+    TrajectoryPoint(2600, 90.3788206505824),
+    TrajectoryPoint(2610, 89.200126058364),
+    TrajectoryPoint(2620, 88.0076480181356),
+    TrajectoryPoint(2630, 86.8009308364979),
+    TrajectoryPoint(2640, 85.5797358794279),
+    TrajectoryPoint(2650, 84.3431882112177),
+    TrajectoryPoint(2660, 83.0902498907466),
+    TrajectoryPoint(2670, 81.8209856585395),
+    TrajectoryPoint(2680, 80.5335826622994),
+    TrajectoryPoint(2690, 79.2281874436575),
+    TrajectoryPoint(2700, 77.9029243380736),
+    TrajectoryPoint(2710, 76.5578162836645),
+    TrajectoryPoint(2720, 75.1905506472505),
+    TrajectoryPoint(2730, 73.8008484018779),
+    TrajectoryPoint(2740, 72.3873670077783),
+    TrajectoryPoint(2750, 70.9481285090389),
+    TrajectoryPoint(2760, 69.4817016640765),
+    TrajectoryPoint(2770, 67.9865504917883),
+    TrajectoryPoint(2780, 66.4606732981375),
+    TrajectoryPoint(2790, 64.9018829529339),
+    TrajectoryPoint(2800, 63.3077851212815),
+    TrajectoryPoint(2810, 61.6757533464129),
+    TrajectoryPoint(2820, 60.0018306178938),
+    TrajectoryPoint(2830, 58.2833799834912),
+    TrajectoryPoint(2840, 56.5163392871054),
+    TrajectoryPoint(2850, 54.6952488430528),
+    TrajectoryPoint(2860, 52.8150333609928),
+    TrajectoryPoint(2870, 50.8692645074718),
+    TrajectoryPoint(2880, 48.8498068835772),
+    TrajectoryPoint(2890, 46.7471420238584),
+    TrajectoryPoint(2900, 44.5500629428049),
+    TrajectoryPoint(2910, 42.2424880308071),
+    TrajectoryPoint(2920, 39.8066219698814),
+    TrajectoryPoint(2930, 37.2166742547711),
+    TrajectoryPoint(2940, 34.4385163321078),
+    TrajectoryPoint(2950, 31.421150310798),
+    TrajectoryPoint(2960, 28.0891004816011),
+    TrajectoryPoint(2970, 24.3112016557051),
+    TrajectoryPoint(2980, 19.83767886765),
+    TrajectoryPoint(2990, 14.016630406453),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t0_open[] = {
+    TrajectoryPoint(0, 521.120565192786),
+    TrajectoryPoint(10, 518.991801421389),
+    TrajectoryPoint(20, 516.856699928473),
+    TrajectoryPoint(30, 514.721598435556),
+    TrajectoryPoint(40, 512.572518503631),
+    TrajectoryPoint(50, 510.418971229153),
+    TrajectoryPoint(60, 508.26164242241),
+    TrajectoryPoint(70, 506.089240058818),
+    TrajectoryPoint(80, 503.916837695226),
+    TrajectoryPoint(90, 501.731504222196),
+    TrajectoryPoint(100, 499.539825001482),
+    TrajectoryPoint(110, 497.344824136831),
+    TrajectoryPoint(120, 495.133433312379),
+    TrajectoryPoint(130, 492.922042487927),
+    TrajectoryPoint(140, 490.696668629275),
+    TrajectoryPoint(150, 488.46511793058),
+    TrajectoryPoint(160, 486.228493346599),
+    TrajectoryPoint(170, 483.976320405152),
+    TrajectoryPoint(180, 481.724147463705),
+    TrajectoryPoint(190, 479.454551687215),
+    TrajectoryPoint(200, 477.181279431688),
+    TrajectoryPoint(210, 474.898664539356),
+    TrajectoryPoint(220, 472.603800558107),
+    TrajectoryPoint(230, 470.307460055081),
+    TrajectoryPoint(240, 467.990495923824),
+    TrajectoryPoint(250, 465.673531792567),
+    TrajectoryPoint(260, 463.340095398418),
+    TrajectoryPoint(270, 461.000505970764),
+    TrajectoryPoint(280, 458.65127057735),
+    TrajectoryPoint(290, 456.288513235716),
+    TrajectoryPoint(300, 453.922631510944),
+    TrajectoryPoint(310, 451.536145375146),
+    TrajectoryPoint(320, 449.149659239347),
+    TrajectoryPoint(330, 446.741928299143),
+    TrajectoryPoint(340, 444.331133389775),
+    TrajectoryPoint(350, 441.904318252896),
+    TrajectoryPoint(360, 439.468614606361),
+    TrajectoryPoint(370, 437.021697763097),
+    TrajectoryPoint(380, 434.560464494884),
+    TrajectoryPoint(390, 432.092371295971),
+    TrajectoryPoint(400, 429.604965608517),
+    TrajectoryPoint(410, 427.114560602746),
+    TrajectoryPoint(420, 424.600316733894),
+    TrajectoryPoint(430, 422.086072865043),
+    TrajectoryPoint(440, 419.544627833795),
+    TrajectoryPoint(450, 417.002855941526),
+    TrajectoryPoint(460, 414.435914616953),
+    TrajectoryPoint(470, 411.865899595707),
+    TrajectoryPoint(480, 409.27209270257),
+    TrajectoryPoint(490, 406.673092926047),
+    TrajectoryPoint(500, 404.050971343853),
+    TrajectoryPoint(510, 401.422217328759),
+    TrajectoryPoint(520, 398.770246671263),
+    TrajectoryPoint(530, 396.110939655939),
+    TrajectoryPoint(540, 393.427494412086),
+    TrajectoryPoint(550, 390.736804843449),
+    TrajectoryPoint(560, 388.020162038425),
+    TrajectoryPoint(570, 385.297227960018),
+    TrajectoryPoint(580, 382.545560290619),
+    TrajectoryPoint(590, 379.789485623912),
+    TrajectoryPoint(600, 377.000854017401),
+    TrajectoryPoint(610, 374.208242129888),
+    TrajectoryPoint(620, 371.383052267733),
+    TrajectoryPoint(630, 368.5502399551),
+    TrajectoryPoint(640, 365.688997562073),
+    TrajectoryPoint(650, 362.813701394117),
+    TrajectoryPoint(660, 359.915354262726),
+    TrajectoryPoint(670, 357.32260718315),
+    TrajectoryPoint(680, 354.958253640362),
+    TrajectoryPoint(690, 352.623468030845),
+    TrajectoryPoint(700, 350.297592787733),
+    TrajectoryPoint(710, 348.008085164846),
+    TrajectoryPoint(720, 345.729189579957),
+    TrajectoryPoint(730, 343.476843175116),
+    TrajectoryPoint(740, 341.245222151474),
+    TrajectoryPoint(750, 339.029661821691),
+    TrajectoryPoint(760, 336.845324052314),
+    TrajectoryPoint(770, 334.672333471892),
+    TrajectoryPoint(780, 332.52875604073),
+    TrajectoryPoint(790, 330.403023144118),
+    TrajectoryPoint(800, 328.29446065421),
+    TrajectoryPoint(810, 326.215403681309),
+    TrajectoryPoint(820, 324.148792210556),
+    TrajectoryPoint(830, 322.107979412238),
+    TrajectoryPoint(840, 320.087229071478),
+    TrajectoryPoint(850, 318.079569910648),
+    TrajectoryPoint(860, 316.103191352049),
+    TrajectoryPoint(870, 314.140204405162),
+    TrajectoryPoint(880, 312.194737518311),
+    TrajectoryPoint(890, 310.275270850366),
+    TrajectoryPoint(900, 308.368969789847),
+    TrajectoryPoint(910, 306.482665571424),
+    TrajectoryPoint(920, 304.61828770851),
+    TrajectoryPoint(930, 302.767156573424),
+    TrajectoryPoint(940, 300.936474144206),
+    TrajectoryPoint(950, 299.125501207428),
+    TrajectoryPoint(960, 297.327684699286),
+    TrajectoryPoint(970, 295.549153942853),
+    TrajectoryPoint(980, 293.78962393444),
+    TrajectoryPoint(990, 292.043019854867),
+    TrajectoryPoint(1000, 290.313291077487),
+    TrajectoryPoint(1010, 288.603045890991),
+    TrajectoryPoint(1020, 286.905386012368),
+    TrajectoryPoint(1030, 285.221260980693),
+    TrajectoryPoint(1040, 283.558017060944),
+    TrajectoryPoint(1050, 281.906934764266),
+    TrajectoryPoint(1060, 280.268135081471),
+    TrajectoryPoint(1070, 278.646790967731),
+    TrajectoryPoint(1080, 277.039875858583),
+    TrajectoryPoint(1090, 275.444715192965),
+    TrajectoryPoint(1100, 273.861733860144),
+    TrajectoryPoint(1110, 272.296574550798),
+    TrajectoryPoint(1120, 270.742609805965),
+    TrajectoryPoint(1130, 269.19985418361),
+    TrajectoryPoint(1140, 267.66962154525),
+    TrajectoryPoint(1150, 266.154455581122),
+    TrajectoryPoint(1160, 264.64989672029),
+    TrajectoryPoint(1170, 263.155914598756),
+    TrajectoryPoint(1180, 261.673183373565),
+    TrajectoryPoint(1190, 260.204490577437),
+    TrajectoryPoint(1200, 258.745756034462),
+    TrajectoryPoint(1210, 257.296917860176),
+    TrajectoryPoint(1220, 255.857900297539),
+    TrajectoryPoint(1230, 254.43125615693),
+    TrajectoryPoint(1240, 253.014818390154),
+    TrajectoryPoint(1250, 251.607577269978),
+    TrajectoryPoint(1260, 250.209439259995),
+    TrajectoryPoint(1270, 248.820301546194),
+    TrajectoryPoint(1280, 247.44248963384),
+    TrajectoryPoint(1290, 246.073433747702),
+    TrajectoryPoint(1300, 244.712771291403),
+    TrajectoryPoint(1310, 243.360391050712),
+    TrajectoryPoint(1320, 242.016175807355),
+    TrajectoryPoint(1330, 240.680921280826),
+    TrajectoryPoint(1340, 239.354508653423),
+    TrajectoryPoint(1350, 238.03568428165),
+    TrajectoryPoint(1360, 236.724328683521),
+    TrajectoryPoint(1370, 235.420318649447),
+    TrajectoryPoint(1380, 234.123527798845),
+    TrajectoryPoint(1390, 232.833911366531),
+    TrajectoryPoint(1400, 231.552442971861),
+    TrajectoryPoint(1410, 230.277658448206),
+    TrajectoryPoint(1420, 229.009433992513),
+    TrajectoryPoint(1430, 227.747644022401),
+    TrajectoryPoint(1440, 226.492161534326),
+    TrajectoryPoint(1450, 225.242858427892),
+    TrajectoryPoint(1460, 223.999605798976),
+    TrajectoryPoint(1470, 222.762274204143),
+    TrajectoryPoint(1480, 221.531307239179),
+    TrajectoryPoint(1490, 220.30603760666),
+    TrajectoryPoint(1500, 219.086218595482),
+    TrajectoryPoint(1510, 217.871727115404),
+    TrajectoryPoint(1520, 216.662440085799),
+    TrajectoryPoint(1530, 215.458234599419),
+    TrajectoryPoint(1540, 214.25898806858),
+    TrajectoryPoint(1550, 213.064578355244),
+    TrajectoryPoint(1560, 211.874883886333),
+    TrajectoryPoint(1570, 210.689783755549),
+    TrajectoryPoint(1580, 209.509157812835),
+    TrajectoryPoint(1590, 208.332886742547),
+    TrajectoryPoint(1600, 207.160852131313),
+    TrajectoryPoint(1610, 205.992936526466),
+    TrajectoryPoint(1620, 204.82902348589),
+    TrajectoryPoint(1630, 203.66899762003),
+    TrajectoryPoint(1640, 202.512744626749),
+    TrajectoryPoint(1650, 201.360151319693),
+    TrajectoryPoint(1660, 200.211105650727),
+    TrajectoryPoint(1670, 199.065496726992),
+    TrajectoryPoint(1680, 197.923214823063),
+    TrajectoryPoint(1690, 196.784151388666),
+    TrajectoryPoint(1700, 195.648199052364),
+    TrajectoryPoint(1710, 194.515251621588),
+    TrajectoryPoint(1720, 193.385204079349),
+    TrajectoryPoint(1730, 192.257952577966),
+    TrajectoryPoint(1740, 191.133394430078),
+    TrajectoryPoint(1750, 190.011428097218),
+    TrajectoryPoint(1760, 188.891953176176),
+    TrajectoryPoint(1770, 187.774870383385),
+    TrajectoryPoint(1780, 186.660081537517),
+    TrajectoryPoint(1790, 185.547489540483),
+    TrajectoryPoint(1800, 184.436998356994),
+    TrajectoryPoint(1810, 183.328512992838),
+    TrajectoryPoint(1820, 182.221939472019),
+    TrajectoryPoint(1830, 181.117184812867),
+    TrajectoryPoint(1840, 180.014157003249),
+    TrajectoryPoint(1850, 178.912876309929),
+    TrajectoryPoint(1860, 177.813165516071),
+    TrajectoryPoint(1870, 176.714900564586),
+    TrajectoryPoint(1880, 175.617992382794),
+    TrajectoryPoint(1890, 174.522352762002),
+    TrajectoryPoint(1900, 173.427894326819),
+    TrajectoryPoint(1910, 172.334530504245),
+    TrajectoryPoint(1920, 171.242235376914),
+    TrajectoryPoint(1930, 170.15090643089),
+    TrajectoryPoint(1940, 169.060400475654),
+    TrajectoryPoint(1950, 167.9706333759),
+    TrajectoryPoint(1960, 166.881521654137),
+    TrajectoryPoint(1970, 165.79298977618),
+    TrajectoryPoint(1980, 164.705000214645),
+    TrajectoryPoint(1990, 163.617399304431),
+    TrajectoryPoint(2000, 162.530105500651),
+    TrajectoryPoint(2010, 161.4430377559),
+    TrajectoryPoint(2020, 160.356121815525),
+    TrajectoryPoint(2030, 159.2692565601),
+    TrajectoryPoint(2040, 158.182354078541),
+    TrajectoryPoint(2050, 157.095334648252),
+    TrajectoryPoint(2060, 156.008081048174),
+    TrajectoryPoint(2070, 154.920518336546),
+    TrajectoryPoint(2080, 153.832576317611),
+    TrajectoryPoint(2090, 152.744142735198),
+    TrajectoryPoint(2100, 151.655084007351),
+    TrajectoryPoint(2110, 150.565382905551),
+    TrajectoryPoint(2120, 149.47492700139),
+    TrajectoryPoint(2130, 148.383524606988),
+    TrajectoryPoint(2140, 147.291215147378),
+    TrajectoryPoint(2150, 146.197840193004),
+    TrajectoryPoint(2160, 145.103232347324),
+    TrajectoryPoint(2170, 144.007450084582),
+    TrajectoryPoint(2180, 142.910205735737),
+    TrajectoryPoint(2190, 141.811513658577),
+    TrajectoryPoint(2200, 140.711292709606),
+    TrajectoryPoint(2210, 139.60925748977),
+    TrajectoryPoint(2220, 138.505582028893),
+    TrajectoryPoint(2230, 137.39979176046),
+    TrajectoryPoint(2240, 136.292130696626),
+    TrajectoryPoint(2250, 135.182188878635),
+    TrajectoryPoint(2260, 134.070082184691),
+    TrajectoryPoint(2270, 132.955482203964),
+    TrajectoryPoint(2280, 131.838456624828),
+    TrajectoryPoint(2290, 130.718664344809),
+    TrajectoryPoint(2300, 129.596232286281),
+    TrajectoryPoint(2310, 128.47068504852),
+    TrajectoryPoint(2320, 127.342320573594),
+    TrajectoryPoint(2330, 126.210448699626),
+    TrajectoryPoint(2340, 125.07542124522),
+    TrajectoryPoint(2350, 123.936811433677),
+    TrajectoryPoint(2360, 122.794476554548),
+    TrajectoryPoint(2370, 121.648502556774),
+    TrajectoryPoint(2380, 120.498256924178),
+    TrajectoryPoint(2390, 119.34392487721),
+    TrajectoryPoint(2400, 118.185388743453),
+    TrajectoryPoint(2410, 117.02204647557),
+    TrajectoryPoint(2420, 115.854002602854),
+    TrajectoryPoint(2430, 114.681125989036),
+    TrajectoryPoint(2440, 113.503121022244),
+    TrajectoryPoint(2450, 112.319477354966),
+    TrajectoryPoint(2460, 111.130302169627),
+    TrajectoryPoint(2470, 109.935339654805),
+    TrajectoryPoint(2480, 108.734322728103),
+    TrajectoryPoint(2490, 107.526972585311),
+    TrajectoryPoint(2500, 106.312764906374),
+    TrajectoryPoint(2510, 105.091641408405),
+    TrajectoryPoint(2520, 103.863309280202),
+    TrajectoryPoint(2530, 102.627441654131),
+    TrajectoryPoint(2540, 101.383697233385),
+    TrajectoryPoint(2550, 100.13171959447),
+    TrajectoryPoint(2560, 98.8711364376235),
+    TrajectoryPoint(2570, 97.601558781944),
+    TrajectoryPoint(2580, 96.3225801016818),
+    TrajectoryPoint(2590, 95.0337753997379),
+    TrajectoryPoint(2600, 93.7347002140031),
+    TrajectoryPoint(2610, 92.4248001314896),
+    TrajectoryPoint(2620, 91.1033239911738),
+    TrajectoryPoint(2630, 89.77002096111),
+    TrajectoryPoint(2640, 88.4243499314687),
+    TrajectoryPoint(2650, 87.0657436983054),
+    TrajectoryPoint(2660, 85.6928954416259),
+    TrajectoryPoint(2670, 84.3056384957582),
+    TrajectoryPoint(2680, 82.9033983924275),
+    TrajectoryPoint(2690, 81.4843217486486),
+    TrajectoryPoint(2700, 80.0487023349478),
+    TrajectoryPoint(2710, 78.5944468068267),
+    TrajectoryPoint(2720, 77.1215852209347),
+    TrajectoryPoint(2730, 75.6276292144849),
+    TrajectoryPoint(2740, 74.1123357025503),
+    TrajectoryPoint(2750, 72.5741737086814),
+    TrajectoryPoint(2760, 71.0108143169275),
+    TrajectoryPoint(2770, 69.4210851134829),
+    TrajectoryPoint(2780, 67.8030655923401),
+    TrajectoryPoint(2790, 66.1545480056578),
+    TrajectoryPoint(2800, 64.4731102141604),
+    TrajectoryPoint(2810, 62.7560900611626),
+    TrajectoryPoint(2820, 61.0005451401103),
+    TrajectoryPoint(2830, 59.201938261766),
+    TrajectoryPoint(2840, 57.357500451166),
+    TrajectoryPoint(2850, 55.4618551497509),
+    TrajectoryPoint(2860, 53.5101472407736),
+    TrajectoryPoint(2870, 51.4945963227155),
+    TrajectoryPoint(2880, 49.4084336376015),
+    TrajectoryPoint(2890, 47.2421692640004),
+    TrajectoryPoint(2900, 44.9833942277677),
+    TrajectoryPoint(2910, 42.6180522003692),
+    TrajectoryPoint(2920, 40.1266741856633),
+    TrajectoryPoint(2930, 37.4847526201682),
+    TrajectoryPoint(2940, 34.6569277185914),
+    TrajectoryPoint(2950, 31.5938499317644),
+    TrajectoryPoint(2960, 28.2196614984515),
+    TrajectoryPoint(2970, 24.4030107389703),
+    TrajectoryPoint(2980, 19.8945111716972),
+    TrajectoryPoint(2990, 14.0425210341658),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t1_open[] = {
+    TrajectoryPoint(0, 516.075462318736),
+    TrajectoryPoint(10, 513.951767963176),
+    TrajectoryPoint(20, 511.816892070643),
+    TrajectoryPoint(30, 509.681943626028),
+    TrajectoryPoint(40, 507.538901983707),
+    TrajectoryPoint(50, 505.385455032326),
+    TrajectoryPoint(60, 503.232008080945),
+    TrajectoryPoint(70, 501.061378463031),
+    TrajectoryPoint(80, 498.889022744504),
+    TrajectoryPoint(90, 496.708796715245),
+    TrajectoryPoint(100, 494.517109465635),
+    TrajectoryPoint(110, 492.325422216025),
+    TrajectoryPoint(120, 490.115298470141),
+    TrajectoryPoint(130, 487.903843901604),
+    TrajectoryPoint(140, 485.682577838891),
+    TrajectoryPoint(150, 483.450906592059),
+    TrajectoryPoint(160, 481.217891298104),
+    TrajectoryPoint(170, 478.965539865484),
+    TrajectoryPoint(180, 476.713188432863),
+    TrajectoryPoint(190, 474.446625985688),
+    TrajectoryPoint(200, 472.173116104199),
+    TrajectoryPoint(210, 469.892997363922),
+    TrajectoryPoint(220, 467.597835374581),
+    TrajectoryPoint(230, 465.30267338524),
+    TrajectoryPoint(240, 462.986110026064),
+    TrajectoryPoint(250, 460.668786198653),
+    TrajectoryPoint(260, 458.336647684613),
+    TrajectoryPoint(270, 455.996635505007),
+    TrajectoryPoint(280, 453.648096700647),
+    TrajectoryPoint(290, 451.284852118303),
+    TrajectoryPoint(300, 448.919042817371),
+    TrajectoryPoint(310, 446.532003450262),
+    TrajectoryPoint(320, 444.144964083153),
+    TrajectoryPoint(330, 441.736589903981),
+    TrajectoryPoint(340, 439.32517419807),
+    TrajectoryPoint(350, 436.897041016659),
+    TrajectoryPoint(360, 434.460647356738),
+    TrajectoryPoint(370, 432.011711330841),
+    TrajectoryPoint(380, 429.549717099335),
+    TrajectoryPoint(390, 427.078875971681),
+    TrajectoryPoint(400, 424.590636551708),
+    TrajectoryPoint(410, 422.096725905539),
+    TrajectoryPoint(420, 419.58157362422),
+    TrajectoryPoint(430, 417.06336285287),
+    TrajectoryPoint(440, 414.520605860541),
+    TrajectoryPoint(450, 411.976793825682),
+    TrajectoryPoint(460, 409.405714906275),
+    TrajectoryPoint(470, 406.834635986868),
+    TrajectoryPoint(480, 404.234780564351),
+    TrajectoryPoint(490, 401.634635871822),
+    TrajectoryPoint(500, 399.005574400743),
+    TrajectoryPoint(510, 396.375592115945),
+    TrajectoryPoint(520, 393.715752860396),
+    TrajectoryPoint(530, 391.054941904306),
+    TrajectoryPoint(540, 388.36284984906),
+    TrajectoryPoint(550, 385.668696431895),
+    TrajectoryPoint(560, 382.944268732136),
+    TrajectoryPoint(570, 380.214935999433),
+    TrajectoryPoint(580, 377.457273696392),
+    TrajectoryPoint(590, 374.690812395256),
+    TrajectoryPoint(600, 371.898980414652),
+    TrajectoryPoint(610, 369.093320764613),
+    TrajectoryPoint(620, 366.266345946983),
+    TrajectoryPoint(630, 363.419288809556),
+    TrajectoryPoint(640, 360.556157804582),
+    TrajectoryPoint(650, 358.07750540975),
+    TrajectoryPoint(660, 355.73159501216),
+    TrajectoryPoint(670, 353.420537615106),
+    TrajectoryPoint(680, 351.117950070915),
+    TrajectoryPoint(690, 348.845037965951),
+    TrajectoryPoint(700, 346.588068491621),
+    TrajectoryPoint(710, 344.351469128974),
+    TrajectoryPoint(720, 342.14045224522),
+    TrajectoryPoint(730, 339.939902913167),
+    TrajectoryPoint(740, 337.774834895347),
+    TrajectoryPoint(750, 335.620656133682),
+    TrajectoryPoint(760, 333.490583670304),
+    TrajectoryPoint(770, 331.382458545804),
+    TrajectoryPoint(780, 329.286751272891),
+    TrajectoryPoint(790, 327.224163668299),
+    TrajectoryPoint(800, 325.173510509683),
+    TrajectoryPoint(810, 323.144389118234),
+    TrajectoryPoint(820, 321.138552238337),
+    TrajectoryPoint(830, 319.145310388317),
+    TrajectoryPoint(840, 317.179625528437),
+    TrajectoryPoint(850, 315.23011166703),
+    TrajectoryPoint(860, 313.294896069763),
+    TrajectoryPoint(870, 311.388026542861),
+    TrajectoryPoint(880, 309.49388803068),
+    TrajectoryPoint(890, 307.617051528777),
+    TrajectoryPoint(900, 305.76405865343),
+    TrajectoryPoint(910, 303.923914343046),
+    TrajectoryPoint(920, 302.102036253489),
+    TrajectoryPoint(930, 300.301366608351),
+    TrajectoryPoint(940, 298.513494384318),
+    TrajectoryPoint(950, 296.743208344859),
+    TrajectoryPoint(960, 294.993026758467),
+    TrajectoryPoint(970, 293.255451626422),
+    TrajectoryPoint(980, 291.533496983133),
+    TrajectoryPoint(990, 289.831765152282),
+    TrajectoryPoint(1000, 288.142337500014),
+    TrajectoryPoint(1010, 286.465592126747),
+    TrajectoryPoint(1020, 284.810137342228),
+    TrajectoryPoint(1030, 283.166599236242),
+    TrajectoryPoint(1040, 281.535109007165),
+    TrajectoryPoint(1050, 279.92067141799),
+    TrajectoryPoint(1060, 278.320710759617),
+    TrajectoryPoint(1070, 276.732302864371),
+    TrajectoryPoint(1080, 275.155978122154),
+    TrajectoryPoint(1090, 273.597271552795),
+    TrajectoryPoint(1100, 272.04958778684),
+    TrajectoryPoint(1110, 270.512950582499),
+    TrajectoryPoint(1120, 268.989078767115),
+    TrajectoryPoint(1130, 267.479797155222),
+    TrajectoryPoint(1140, 265.980986119023),
+    TrajectoryPoint(1150, 264.49262359021),
+    TrajectoryPoint(1160, 263.01603403852),
+    TrajectoryPoint(1170, 261.552781767992),
+    TrajectoryPoint(1180, 260.099381772819),
+    TrajectoryPoint(1190, 258.655779451436),
+    TrajectoryPoint(1200, 257.221906135797),
+    TrajectoryPoint(1210, 255.801202718471),
+    TrajectoryPoint(1220, 254.389787356041),
+    TrajectoryPoint(1230, 252.987495024856),
+    TrajectoryPoint(1240, 251.594238264859),
+    TrajectoryPoint(1250, 250.210684749988),
+    TrajectoryPoint(1260, 248.837925929596),
+    TrajectoryPoint(1270, 247.473612391355),
+    TrajectoryPoint(1280, 246.117644929749),
+    TrajectoryPoint(1290, 244.769917286544),
+    TrajectoryPoint(1300, 243.430327214359),
+    TrajectoryPoint(1310, 242.100814009726),
+    TrajectoryPoint(1320, 240.778973698845),
+    TrajectoryPoint(1330, 239.464695304326),
+    TrajectoryPoint(1340, 238.157863332843),
+    TrajectoryPoint(1350, 236.858358388465),
+    TrajectoryPoint(1360, 235.566057733331),
+    TrajectoryPoint(1370, 234.282167267295),
+    TrajectoryPoint(1380, 233.005178406709),
+    TrajectoryPoint(1390, 231.734866945997),
+    TrajectoryPoint(1400, 230.471112123031),
+    TrajectoryPoint(1410, 229.213791255182),
+    TrajectoryPoint(1420, 227.962780102539),
+    TrajectoryPoint(1430, 226.717953197416),
+    TrajectoryPoint(1440, 225.47953716872),
+    TrajectoryPoint(1450, 224.247490434176),
+    TrajectoryPoint(1460, 223.021150580813),
+    TrajectoryPoint(1470, 221.800397266915),
+    TrajectoryPoint(1480, 220.585109669361),
+    TrajectoryPoint(1490, 219.375166692189),
+    TrajectoryPoint(1500, 218.170447154204),
+    TrajectoryPoint(1510, 216.970829957341),
+    TrajectoryPoint(1520, 215.776194237339),
+    TrajectoryPoint(1530, 214.5864194982),
+    TrajectoryPoint(1540, 213.401385731773),
+    TrajectoryPoint(1550, 212.220973523707),
+    TrajectoryPoint(1560, 211.045276051436),
+    TrajectoryPoint(1570, 209.873975026309),
+    TrajectoryPoint(1580, 208.706899596091),
+    TrajectoryPoint(1590, 207.543937230756),
+    TrajectoryPoint(1600, 206.384976126029),
+    TrajectoryPoint(1610, 205.22990526409),
+    TrajectoryPoint(1620, 204.078614465974),
+    TrajectoryPoint(1630, 202.930994436394),
+    TrajectoryPoint(1640, 201.78693680162),
+    TrajectoryPoint(1650, 200.646334141034),
+    TrajectoryPoint(1660, 199.509080012902),
+    TrajectoryPoint(1670, 198.375068974869),
+    TrajectoryPoint(1680, 197.244196599655),
+    TrajectoryPoint(1690, 196.116359486365),
+    TrajectoryPoint(1700, 194.991455267815),
+    TrajectoryPoint(1710, 193.869382614221),
+    TrajectoryPoint(1720, 192.750041233603),
+    TrajectoryPoint(1730, 191.633331869182),
+    TrajectoryPoint(1740, 190.51915629406),
+    TrajectoryPoint(1750, 189.407417303433),
+    TrajectoryPoint(1760, 188.298062371199),
+    TrajectoryPoint(1770, 187.191030802736),
+    TrajectoryPoint(1780, 186.086149070392),
+    TrajectoryPoint(1790, 184.983322842924),
+    TrajectoryPoint(1800, 183.882458800182),
+    TrajectoryPoint(1810, 182.783464610757),
+    TrajectoryPoint(1820, 181.686248908668),
+    TrajectoryPoint(1830, 180.590721269201),
+    TrajectoryPoint(1840, 179.496792183993),
+    TrajectoryPoint(1850, 178.404373035445),
+    TrajectoryPoint(1860, 177.313376070553),
+    TrajectoryPoint(1870, 176.223810878003),
+    TrajectoryPoint(1880, 175.135518140618),
+    TrajectoryPoint(1890, 174.048376618935),
+    TrajectoryPoint(1900, 172.962301175474),
+    TrajectoryPoint(1910, 171.877207420869),
+    TrajectoryPoint(1920, 170.793011683607),
+    TrajectoryPoint(1930, 169.709650613285),
+    TrajectoryPoint(1940, 168.627087534098),
+    TrajectoryPoint(1950, 167.545158183061),
+    TrajectoryPoint(1960, 166.463781035553),
+    TrajectoryPoint(1970, 165.382875141106),
+    TrajectoryPoint(1980, 164.30236536343),
+    TrajectoryPoint(1990, 163.222195645432),
+    TrajectoryPoint(2000, 162.142236964217),
+    TrajectoryPoint(2010, 161.062409998055),
+    TrajectoryPoint(2020, 159.982635842776),
+    TrajectoryPoint(2030, 158.902821053688),
+    TrajectoryPoint(2040, 157.822878454364),
+    TrajectoryPoint(2050, 156.74273093052),
+    TrajectoryPoint(2060, 155.662293848312),
+    TrajectoryPoint(2070, 154.581422101799),
+    TrajectoryPoint(2080, 153.500087477817),
+    TrajectoryPoint(2090, 152.418212441148),
+    TrajectoryPoint(2100, 151.335617084348),
+    TrajectoryPoint(2110, 150.252270147482),
+    TrajectoryPoint(2120, 149.168123874255),
+    TrajectoryPoint(2130, 148.082960464206),
+    TrajectoryPoint(2140, 146.996762701771),
+    TrajectoryPoint(2150, 145.909504427634),
+    TrajectoryPoint(2160, 144.820868170309),
+    TrajectoryPoint(2170, 143.730965319885),
+    TrajectoryPoint(2180, 142.639636591109),
+    TrajectoryPoint(2190, 141.546670023277),
+    TrajectoryPoint(2200, 140.452189079909),
+    TrajectoryPoint(2210, 139.355768958293),
+    TrajectoryPoint(2220, 138.257602236553),
+    TrajectoryPoint(2230, 137.157375967441),
+    TrajectoryPoint(2240, 136.055079320287),
+    TrajectoryPoint(2250, 134.950567388492),
+    TrajectoryPoint(2260, 133.843684316085),
+    TrajectoryPoint(2270, 132.734380690456),
+    TrajectoryPoint(2280, 131.622441342454),
+    TrajectoryPoint(2290, 130.507812699109),
+    TrajectoryPoint(2300, 129.390332758933),
+    TrajectoryPoint(2310, 128.269817431044),
+    TrajectoryPoint(2320, 127.146296883748),
+    TrajectoryPoint(2330, 126.019303548196),
+    TrajectoryPoint(2340, 124.889118314658),
+    TrajectoryPoint(2350, 123.755131438307),
+    TrajectoryPoint(2360, 122.617509321186),
+    TrajectoryPoint(2370, 121.476109920764),
+    TrajectoryPoint(2380, 120.330373689998),
+    TrajectoryPoint(2390, 119.180566676227),
+    TrajectoryPoint(2400, 118.026428598958),
+    TrajectoryPoint(2410, 116.867398322719),
+    TrajectoryPoint(2420, 115.703693208571),
+    TrajectoryPoint(2430, 114.535095215592),
+    TrajectoryPoint(2440, 113.361155158109),
+    TrajectoryPoint(2450, 112.181665877777),
+    TrajectoryPoint(2460, 110.996585122804),
+    TrajectoryPoint(2470, 109.805656950286),
+    TrajectoryPoint(2480, 108.608614188462),
+    TrajectoryPoint(2490, 107.405050761812),
+    TrajectoryPoint(2500, 106.194675760476),
+    TrajectoryPoint(2510, 104.977345526093),
+    TrajectoryPoint(2520, 103.752746982078),
+    TrajectoryPoint(2530, 102.520553299366),
+    TrajectoryPoint(2540, 101.280423245652),
+    TrajectoryPoint(2550, 100.032000485686),
+    TrajectoryPoint(2560, 98.774912829721),
+    TrajectoryPoint(2570, 97.5087714268899),
+    TrajectoryPoint(2580, 96.2331698999251),
+    TrajectoryPoint(2590, 94.9476834172508),
+    TrajectoryPoint(2600, 93.6518676980616),
+    TrajectoryPoint(2610, 92.3452579455445),
+    TrajectoryPoint(2620, 91.0269579210489),
+    TrajectoryPoint(2630, 89.6967350865243),
+    TrajectoryPoint(2640, 88.3540861183212),
+    TrajectoryPoint(2650, 86.9984440723996),
+    TrajectoryPoint(2660, 85.6286161640558),
+    TrajectoryPoint(2670, 84.2442030808829),
+    TrajectoryPoint(2680, 82.8447847615517),
+    TrajectoryPoint(2690, 81.4285079764025),
+    TrajectoryPoint(2700, 79.9955555712281),
+    TrajectoryPoint(2710, 78.5440110858705),
+    TrajectoryPoint(2720, 77.0737349533772),
+    TrajectoryPoint(2730, 75.5823276082931),
+    TrajectoryPoint(2740, 74.069557449954),
+    TrajectoryPoint(2750, 72.5338553726178),
+    TrajectoryPoint(2760, 70.972800620144),
+    TrajectoryPoint(2770, 69.3854050643102),
+    TrajectoryPoint(2780, 67.7696549887913),
+    TrajectoryPoint(2790, 66.1233423531312),
+    TrajectoryPoint(2800, 64.4440447975735),
+    TrajectoryPoint(2810, 62.7291000128289),
+    TrajectoryPoint(2820, 60.9755762587353),
+    TrajectoryPoint(2830, 59.1789723575138),
+    TrajectoryPoint(2840, 57.3364103021364),
+    TrajectoryPoint(2850, 55.4426379416606),
+    TrajectoryPoint(2860, 53.4926702226482),
+    TrajectoryPoint(2870, 51.4788490429852),
+    TrajectoryPoint(2880, 49.3943424001609),
+    TrajectoryPoint(2890, 47.2296596537324),
+    TrajectoryPoint(2900, 44.9724378947071),
+    TrajectoryPoint(2910, 42.6085225877237),
+    TrajectoryPoint(2920, 40.1185344210058),
+    TrajectoryPoint(2930, 37.4779176587061),
+    TrajectoryPoint(2940, 34.6513439483134),
+    TrajectoryPoint(2950, 31.5894217580687),
+    TrajectoryPoint(2960, 28.2163166308658),
+    TrajectoryPoint(2970, 24.4006408180068),
+    TrajectoryPoint(2980, 19.8930385895336),
+    TrajectoryPoint(2990, 14.0418475561034),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t2_open[] = {
+    TrajectoryPoint(0, 510.438944020476),
+    TrajectoryPoint(10, 508.336075559748),
+    TrajectoryPoint(20, 506.224157422375),
+    TrajectoryPoint(30, 504.109073957462),
+    TrajectoryPoint(40, 501.990078128675),
+    TrajectoryPoint(50, 499.856819982617),
+    TrajectoryPoint(60, 497.723561836559),
+    TrajectoryPoint(70, 495.576998381722),
+    TrajectoryPoint(80, 493.425166355719),
+    TrajectoryPoint(90, 491.268700955086),
+    TrajectoryPoint(100, 489.0978837954),
+    TrajectoryPoint(110, 486.927066635715),
+    TrajectoryPoint(120, 484.740754672874),
+    TrajectoryPoint(130, 482.550528573838),
+    TrajectoryPoint(140, 480.352778261895),
+    TrajectoryPoint(150, 478.142706343131),
+    TrajectoryPoint(160, 475.932634424368),
+    TrajectoryPoint(170, 473.702542206166),
+    TrajectoryPoint(180, 471.472173962392),
+    TrajectoryPoint(190, 469.228932180325),
+    TrajectoryPoint(200, 466.977802902002),
+    TrajectoryPoint(210, 464.72072358017),
+    TrajectoryPoint(220, 462.448353743114),
+    TrajectoryPoint(230, 460.175983906057),
+    TrajectoryPoint(240, 457.882607021545),
+    TrajectoryPoint(250, 455.588501643493),
+    TrajectoryPoint(260, 453.279288483466),
+    TrajectoryPoint(270, 450.962936445422),
+    TrajectoryPoint(280, 448.63706607167),
+    TrajectoryPoint(290, 446.297939401685),
+    TrajectoryPoint(300, 443.954546708919),
+    TrajectoryPoint(310, 441.592099825793),
+    TrajectoryPoint(320, 439.229652942667),
+    TrajectoryPoint(330, 436.843941776459),
+    TrajectoryPoint(340, 434.457610690628),
+    TrajectoryPoint(350, 432.051920339639),
+    TrajectoryPoint(360, 429.641121808321),
+    TrajectoryPoint(370, 427.214417651668),
+    TrajectoryPoint(380, 424.778548285076),
+    TrajectoryPoint(390, 422.329738642242),
+    TrajectoryPoint(400, 419.868173957427),
+    TrajectoryPoint(410, 417.396106474007),
+    TrajectoryPoint(420, 414.90819989261),
+    TrajectoryPoint(430, 412.411657653271),
+    TrajectoryPoint(440, 409.89673943913),
+    TrajectoryPoint(450, 407.374436783869),
+    TrajectoryPoint(460, 404.831812916119),
+    TrajectoryPoint(470, 402.282390933487),
+    TrajectoryPoint(480, 399.711341910368),
+    TrajectoryPoint(490, 397.133363578656),
+    TrajectoryPoint(500, 394.533143146876),
+    TrajectoryPoint(510, 391.925088091255),
+    TrajectoryPoint(520, 389.294921895265),
+    TrajectoryPoint(530, 386.655180725547),
+    TrajectoryPoint(540, 383.99426487059),
+    TrajectoryPoint(550, 381.321133060532),
+    TrajectoryPoint(560, 378.628632582783),
+    TrajectoryPoint(570, 375.920303847669),
+    TrajectoryPoint(580, 373.195351084157),
+    TrajectoryPoint(590, 370.449910208707),
+    TrajectoryPoint(600, 367.691603059037),
+    TrajectoryPoint(610, 364.907018122424),
+    TrajectoryPoint(620, 362.114418193569),
+    TrajectoryPoint(630, 359.288532132394),
+    TrajectoryPoint(640, 356.539105670124),
+    TrajectoryPoint(650, 354.246008711818),
+    TrajectoryPoint(660, 351.966178869211),
+    TrajectoryPoint(670, 349.708700394863),
+    TrajectoryPoint(680, 347.473166984683),
+    TrajectoryPoint(690, 345.251178625487),
+    TrajectoryPoint(700, 343.060313750778),
+    TrajectoryPoint(710, 340.879398952424),
+    TrajectoryPoint(720, 338.727451423805),
+    TrajectoryPoint(730, 336.591674009833),
+    TrajectoryPoint(740, 334.474051997262),
+    TrajectoryPoint(750, 332.383155307184),
+    TrajectoryPoint(760, 330.303595206886),
+    TrajectoryPoint(770, 328.252807850172),
+    TrajectoryPoint(780, 326.217762523003),
+    TrajectoryPoint(790, 324.199360394516),
+    TrajectoryPoint(800, 322.208111931427),
+    TrajectoryPoint(810, 320.22895960087),
+    TrajectoryPoint(820, 318.273049531377),
+    TrajectoryPoint(830, 316.33670341381),
+    TrajectoryPoint(840, 314.412911349317),
+    TrajectoryPoint(850, 312.516289135939),
+    TrajectoryPoint(860, 310.63402346781),
+    TrajectoryPoint(870, 308.765811320178),
+    TrajectoryPoint(880, 306.92393229391),
+    TrajectoryPoint(890, 305.094497766026),
+    TrajectoryPoint(900, 303.280627612389),
+    TrajectoryPoint(910, 301.490000887359),
+    TrajectoryPoint(920, 299.711806392195),
+    TrajectoryPoint(930, 297.949012715548),
+    TrajectoryPoint(940, 296.207928073765),
+    TrajectoryPoint(950, 294.479124224312),
+    TrajectoryPoint(960, 292.76423248221),
+    TrajectoryPoint(970, 291.070770062134),
+    TrajectoryPoint(980, 289.389324677751),
+    TrajectoryPoint(990, 287.720093128336),
+    TrajectoryPoint(1000, 286.071382921106),
+    TrajectoryPoint(1010, 284.435145861461),
+    TrajectoryPoint(1020, 282.810716702151),
+    TrajectoryPoint(1030, 281.202564909554),
+    TrajectoryPoint(1040, 279.609321683532),
+    TrajectoryPoint(1050, 278.027424637499),
+    TrajectoryPoint(1060, 276.457167388104),
+    TrajectoryPoint(1070, 274.904682120259),
+    TrajectoryPoint(1080, 273.363043341617),
+    TrajectoryPoint(1090, 271.832284460829),
+    TrajectoryPoint(1100, 270.314227414656),
+    TrajectoryPoint(1110, 268.810599641995),
+    TrajectoryPoint(1120, 267.317302133533),
+    TrajectoryPoint(1130, 265.834321515683),
+    TrajectoryPoint(1140, 264.363365842169),
+    TrajectoryPoint(1150, 262.905325188571),
+    TrajectoryPoint(1160, 261.457027720216),
+    TrajectoryPoint(1170, 260.018426463953),
+    TrajectoryPoint(1180, 258.589973825141),
+    TrajectoryPoint(1190, 257.174234164876),
+    TrajectoryPoint(1200, 255.767611911171),
+    TrajectoryPoint(1210, 254.370036824462),
+    TrajectoryPoint(1220, 252.981427794748),
+    TrajectoryPoint(1230, 251.603282523696),
+    TrajectoryPoint(1240, 250.235092302875),
+    TrajectoryPoint(1250, 248.875293031428),
+    TrajectoryPoint(1260, 247.523790891387),
+    TrajectoryPoint(1270, 246.180484793705),
+    TrajectoryPoint(1280, 244.846258176969),
+    TrajectoryPoint(1290, 243.521123284475),
+    TrajectoryPoint(1300, 242.203629496326),
+    TrajectoryPoint(1310, 240.893670180688),
+    TrajectoryPoint(1320, 239.591133997306),
+    TrajectoryPoint(1330, 238.295905515086),
+    TrajectoryPoint(1340, 237.008861764547),
+    TrajectoryPoint(1350, 235.729343404159),
+    TrajectoryPoint(1360, 234.456610477226),
+    TrajectoryPoint(1370, 233.190547854754),
+    TrajectoryPoint(1380, 231.931037931043),
+    TrajectoryPoint(1390, 230.677961028943),
+    TrajectoryPoint(1400, 229.431195768794),
+    TrajectoryPoint(1410, 228.191242042023),
+    TrajectoryPoint(1420, 226.957632352407),
+    TrajectoryPoint(1430, 225.72985735465),
+    TrajectoryPoint(1440, 224.507799806885),
+    TrajectoryPoint(1450, 223.291341638293),
+    TrajectoryPoint(1460, 222.080364185713),
+    TrajectoryPoint(1470, 220.874748407395),
+    TrajectoryPoint(1480, 219.67437507571),
+    TrajectoryPoint(1490, 218.479124950493),
+    TrajectoryPoint(1500, 217.28887893458),
+    TrajectoryPoint(1510, 216.103913811166),
+    TrajectoryPoint(1520, 214.923688046284),
+    TrajectoryPoint(1530, 213.74805545381),
+    TrajectoryPoint(1540, 212.576903274009),
+    TrajectoryPoint(1550, 211.410119162983),
+    TrajectoryPoint(1560, 210.247591287103),
+    TrajectoryPoint(1570, 209.089208406473),
+    TrajectoryPoint(1580, 207.934859948354),
+    TrajectoryPoint(1590, 206.784436071385),
+    TrajectoryPoint(1600, 205.637827721367),
+    TrajectoryPoint(1610, 204.494926679339),
+    TrajectoryPoint(1620, 203.355625602584),
+    TrajectoryPoint(1630, 202.219818059186),
+    TrajectoryPoint(1640, 201.087398556683),
+    TrajectoryPoint(1650, 199.958262565336),
+    TrajectoryPoint(1660, 198.832306536475),
+    TrajectoryPoint(1670, 197.70942791636),
+    TrajectoryPoint(1680, 196.58952515595),
+    TrajectoryPoint(1690, 195.472497716944),
+    TrajectoryPoint(1700, 194.358246074434),
+    TrajectoryPoint(1710, 193.246671716465),
+    TrajectoryPoint(1720, 192.137677140792),
+    TrajectoryPoint(1730, 191.031165849091),
+    TrajectoryPoint(1740, 189.927042338851),
+    TrajectoryPoint(1750, 188.825212093178),
+    TrajectoryPoint(1760, 187.725581568693),
+    TrajectoryPoint(1770, 186.628058181715),
+    TrajectoryPoint(1780, 185.532550292897),
+    TrajectoryPoint(1790, 184.438967190454),
+    TrajectoryPoint(1800, 183.347316657309),
+    TrajectoryPoint(1810, 182.257440514159),
+    TrajectoryPoint(1820, 181.169215924193),
+    TrajectoryPoint(1830, 180.082554885517),
+    TrajectoryPoint(1840, 178.997370261122),
+    TrajectoryPoint(1850, 177.913575753458),
+    TrajectoryPoint(1860, 176.831085878528),
+    TrajectoryPoint(1870, 175.749815939547),
+    TrajectoryPoint(1880, 174.669686983332),
+    TrajectoryPoint(1890, 173.590716357941),
+    TrajectoryPoint(1900, 172.512702209773),
+    TrajectoryPoint(1910, 171.435562209799),
+    TrajectoryPoint(1920, 170.35921469624),
+    TrajectoryPoint(1930, 169.283578645068),
+    TrajectoryPoint(1940, 168.208576248062),
+    TrajectoryPoint(1950, 167.134187663271),
+    TrajectoryPoint(1960, 166.060252977035),
+    TrajectoryPoint(1970, 164.98669303105),
+    TrajectoryPoint(1980, 163.91342916273),
+    TrajectoryPoint(1990, 162.840387580692),
+    TrajectoryPoint(2000, 161.767489743081),
+    TrajectoryPoint(2010, 160.69463366266),
+    TrajectoryPoint(2020, 159.62174201671),
+    TrajectoryPoint(2030, 158.5487342576),
+    TrajectoryPoint(2040, 157.475493937166),
+    TrajectoryPoint(2050, 156.401964751756),
+    TrajectoryPoint(2060, 155.328070245315),
+    TrajectoryPoint(2070, 154.253687199598),
+    TrajectoryPoint(2080, 153.178717897483),
+    TrajectoryPoint(2090, 152.103129720852),
+    TrajectoryPoint(2100, 151.026811696914),
+    TrajectoryPoint(2110, 149.949587798145),
+    TrajectoryPoint(2120, 148.871489883762),
+    TrajectoryPoint(2130, 147.792387256151),
+    TrajectoryPoint(2140, 146.712080470218),
+    TrajectoryPoint(2150, 145.630642008614),
+    TrajectoryPoint(2160, 144.547852610447),
+    TrajectoryPoint(2170, 143.46361833659),
+    TrajectoryPoint(2180, 142.377991171378),
+    TrajectoryPoint(2190, 141.290559988109),
+    TrajectoryPoint(2200, 140.20153430118),
+    TrajectoryPoint(2210, 139.110620635151),
+    TrajectoryPoint(2220, 138.017767318833),
+    TrajectoryPoint(2230, 136.922917706154),
+    TrajectoryPoint(2240, 135.825796075724),
+    TrajectoryPoint(2250, 134.726531358393),
+    TrajectoryPoint(2260, 133.624688265252),
+    TrajectoryPoint(2270, 132.520503033195),
+    TrajectoryPoint(2280, 131.413471860235),
+    TrajectoryPoint(2290, 130.303833617324),
+    TrajectoryPoint(2300, 129.19113315951),
+    TrajectoryPoint(2310, 128.075481226642),
+    TrajectoryPoint(2320, 126.956614457742),
+    TrajectoryPoint(2330, 125.834358621532),
+    TrajectoryPoint(2340, 124.708811346036),
+    TrajectoryPoint(2350, 123.579330257577),
+    TrajectoryPoint(2360, 122.446263721663),
+    TrajectoryPoint(2370, 121.309208969182),
+    TrajectoryPoint(2380, 120.167904923082),
+    TrajectoryPoint(2390, 119.022472433814),
+    TrajectoryPoint(2400, 117.872498486347),
+    TrajectoryPoint(2410, 116.717720915557),
+    TrajectoryPoint(2420, 115.558210709353),
+    TrajectoryPoint(2430, 114.393749564257),
+    TrajectoryPoint(2440, 113.223736608425),
+    TrajectoryPoint(2450, 112.048264469815),
+    TrajectoryPoint(2460, 110.867142984631),
+    TrajectoryPoint(2470, 109.680116090926),
+    TrajectoryPoint(2480, 108.48691653709),
+    TrajectoryPoint(2490, 107.28699308468),
+    TrajectoryPoint(2500, 106.080344482169),
+    TrajectoryPoint(2510, 104.866683047908),
+    TrajectoryPoint(2520, 103.645695718079),
+    TrajectoryPoint(2530, 102.417055702894),
+    TrajectoryPoint(2540, 101.180421833564),
+    TrajectoryPoint(2550, 99.9354378605575),
+    TrajectoryPoint(2560, 98.6817317002351),
+    TrajectoryPoint(2570, 97.4189146265985),
+    TrajectoryPoint(2580, 96.1465804045545),
+    TrajectoryPoint(2590, 94.8643043607048),
+    TrajectoryPoint(2600, 93.5716423872569),
+    TrajectoryPoint(2610, 92.2681298741985),
+    TrajectoryPoint(2620, 90.9529909579097),
+    TrajectoryPoint(2630, 89.6257488059519),
+    TrajectoryPoint(2640, 88.2860244163942),
+    TrajectoryPoint(2650, 86.9332510923595),
+    TrajectoryPoint(2660, 85.5663473201793),
+    TrajectoryPoint(2670, 84.1846867699902),
+    TrajectoryPoint(2680, 82.7879657500223),
+    TrajectoryPoint(2690, 81.3744339597015),
+    TrajectoryPoint(2700, 79.9440633148982),
+    TrajectoryPoint(2710, 78.4951440004728),
+    TrajectoryPoint(2720, 77.0273345993343),
+    TrajectoryPoint(2730, 75.5384317464843),
+    TrajectoryPoint(2740, 74.0281053005299),
+    TrajectoryPoint(2750, 72.4946976021054),
+    TrajectoryPoint(2760, 70.9359625270873),
+    TrajectoryPoint(2770, 69.3508272707421),
+    TrajectoryPoint(2780, 67.7372754058456),
+    TrajectoryPoint(2790, 66.0930986077318),
+    TrajectoryPoint(2800, 64.415874301262),
+    TrajectoryPoint(2810, 62.7029400265993),
+    TrajectoryPoint(2820, 60.9513639542653),
+    TrajectoryPoint(2830, 59.1567112456614),
+    TrajectoryPoint(2840, 57.3159665939673),
+    TrajectoryPoint(2850, 55.424009158904),
+    TrajectoryPoint(2860, 53.4757276711571),
+    TrajectoryPoint(2870, 51.4635828074135),
+    TrajectoryPoint(2880, 49.3806811333399),
+    TrajectoryPoint(2890, 47.2175313092844),
+    TrajectoryPoint(2900, 44.9618151377485),
+    TrajectoryPoint(2910, 42.5992827520479),
+    TrajectoryPoint(2920, 40.1106418853167),
+    TrajectoryPoint(2930, 37.4712900421995),
+    TrajectoryPoint(2940, 34.6459293664533),
+    TrajectoryPoint(2950, 31.5851275844203),
+    TrajectoryPoint(2960, 28.2130728448859),
+    TrajectoryPoint(2970, 24.3983424037428),
+    TrajectoryPoint(2980, 19.8916103594115),
+    TrajectoryPoint(2990, 14.0411943132275),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t3_open[] = {
+    TrajectoryPoint(0, 505.673314279408),
+    TrajectoryPoint(10, 503.571309337535),
+    TrajectoryPoint(20, 501.462198249855),
+    TrajectoryPoint(30, 499.346984013761),
+    TrajectoryPoint(40, 497.231073804537),
+    TrajectoryPoint(50, 495.097632729956),
+    TrajectoryPoint(60, 492.964191655374),
+    TrajectoryPoint(70, 490.820229779375),
+    TrajectoryPoint(80, 488.668161661023),
+    TrajectoryPoint(90, 486.513850709671),
+    TrajectoryPoint(100, 484.342743242901),
+    TrajectoryPoint(110, 482.171635776131),
+    TrajectoryPoint(120, 479.986959956721),
+    TrajectoryPoint(130, 477.796388238276),
+    TrajectoryPoint(140, 475.599793412978),
+    TrajectoryPoint(150, 473.389319415815),
+    TrajectoryPoint(160, 471.178845418652),
+    TrajectoryPoint(170, 468.949353115059),
+    TrajectoryPoint(180, 466.718525135607),
+    TrajectoryPoint(190, 464.475366110723),
+    TrajectoryPoint(200, 462.223718186821),
+    TrajectoryPoint(210, 459.966185642958),
+    TrajectoryPoint(220, 457.693236940578),
+    TrajectoryPoint(230, 455.420288238199),
+    TrajectoryPoint(240, 453.125840917815),
+    TrajectoryPoint(250, 450.831095084557),
+    TrajectoryPoint(260, 448.5202339146),
+    TrajectoryPoint(270, 446.203178397754),
+    TrajectoryPoint(280, 443.875060932814),
+    TrajectoryPoint(290, 441.535166259644),
+    TrajectoryPoint(300, 439.188904903967),
+    TrajectoryPoint(310, 436.825623921675),
+    TrajectoryPoint(320, 434.460283189767),
+    TrajectoryPoint(330, 432.073050262396),
+    TrajectoryPoint(340, 429.685817335024),
+    TrajectoryPoint(350, 427.275874000826),
+    TrajectoryPoint(360, 424.864104160132),
+    TrajectoryPoint(370, 422.432449645892),
+    TrajectoryPoint(380, 419.995537692997),
+    TrajectoryPoint(390, 417.541053160247),
+    TrajectoryPoint(400, 415.07837271459),
+    TrajectoryPoint(410, 412.599877314747),
+    TrajectoryPoint(420, 410.110779806595),
+    TrajectoryPoint(430, 407.607026707573),
+    TrajectoryPoint(440, 405.090840310015),
+    TrajectoryPoint(450, 402.560512419461),
+    TrajectoryPoint(460, 400.016540915465),
+    TrajectoryPoint(470, 397.458246273671),
+    TrajectoryPoint(480, 394.885767853424),
+    TrajectoryPoint(490, 392.29803466624),
+    TrajectoryPoint(500, 389.696300649536),
+    TrajectoryPoint(510, 387.077571928537),
+    TrajectoryPoint(520, 384.445805406555),
+    TrajectoryPoint(530, 381.794433180289),
+    TrajectoryPoint(540, 379.131827570564),
+    TrajectoryPoint(550, 376.446066626894),
+    TrajectoryPoint(560, 373.751784134747),
+    TrajectoryPoint(570, 371.029785250003),
+    TrajectoryPoint(580, 368.302955229069),
+    TrajectoryPoint(590, 365.54275783492),
+    TrajectoryPoint(600, 362.776676556562),
+    TrajectoryPoint(610, 359.981999272286),
+    TrajectoryPoint(620, 357.375927861028),
+    TrajectoryPoint(630, 355.098049957626),
+    TrajectoryPoint(640, 352.840476297135),
+    TrajectoryPoint(650, 350.597362638867),
+    TrajectoryPoint(660, 348.382804137875),
+    TrajectoryPoint(670, 346.1771986137),
+    TrajectoryPoint(680, 344.003243299432),
+    TrajectoryPoint(690, 341.841552086956),
+    TrajectoryPoint(700, 339.701723077021),
+    TrajectoryPoint(710, 337.583968436858),
+    TrajectoryPoint(720, 335.4778183136),
+    TrajectoryPoint(730, 333.403801552188),
+    TrajectoryPoint(740, 331.340592496704),
+    TrajectoryPoint(750, 329.300125888697),
+    TrajectoryPoint(760, 327.280369776211),
+    TrajectoryPoint(770, 325.272246784855),
+    TrajectoryPoint(780, 323.294824353252),
+    TrajectoryPoint(790, 321.329465581858),
+    TrajectoryPoint(800, 319.382469066472),
+    TrajectoryPoint(810, 317.459015297307),
+    TrajectoryPoint(820, 315.54763991517),
+    TrajectoryPoint(830, 313.659176913637),
+    TrajectoryPoint(840, 311.788523402819),
+    TrajectoryPoint(850, 309.930231687277),
+    TrajectoryPoint(860, 308.097131859418),
+    TrajectoryPoint(870, 306.278157727583),
+    TrajectoryPoint(880, 304.471646851342),
+    TrajectoryPoint(890, 302.690724470728),
+    TrajectoryPoint(900, 300.921967185769),
+    TrajectoryPoint(910, 299.16595290998),
+    TrajectoryPoint(920, 297.433737908412),
+    TrajectoryPoint(930, 295.71347196902),
+    TrajectoryPoint(940, 294.005427518377),
+    TrajectoryPoint(950, 292.319552990522),
+    TrajectoryPoint(960, 290.645862433995),
+    TrajectoryPoint(970, 288.984103702291),
+    TrajectoryPoint(980, 287.341321696607),
+    TrajectoryPoint(990, 285.712163318988),
+    TrajectoryPoint(1000, 284.094567452432),
+    TrajectoryPoint(1010, 282.492108564521),
+    TrajectoryPoint(1020, 280.905364872013),
+    TrajectoryPoint(1030, 279.329755666396),
+    TrajectoryPoint(1040, 277.765358455558),
+    TrajectoryPoint(1050, 276.218524384088),
+    TrajectoryPoint(1060, 274.682711941348),
+    TrajectoryPoint(1070, 273.157608372656),
+    TrajectoryPoint(1080, 271.64484237367),
+    TrajectoryPoint(1090, 270.146653824708),
+    TrajectoryPoint(1100, 268.658651194353),
+    TrajectoryPoint(1110, 267.180830182683),
+    TrajectoryPoint(1120, 265.71502038601),
+    TrajectoryPoint(1130, 264.261976788164),
+    TrajectoryPoint(1140, 262.818563921565),
+    TrajectoryPoint(1150, 261.38474277624),
+    TrajectoryPoint(1160, 259.961342931237),
+    TrajectoryPoint(1170, 258.550265015189),
+    TrajectoryPoint(1180, 257.148219282345),
+    TrajectoryPoint(1190, 255.755142360112),
+    TrajectoryPoint(1200, 254.370959759411),
+    TrajectoryPoint(1210, 252.997803975035),
+    TrajectoryPoint(1220, 251.633967580259),
+    TrajectoryPoint(1230, 250.278465760067),
+    TrajectoryPoint(1240, 248.931210314696),
+    TrajectoryPoint(1250, 247.592105538553),
+    TrajectoryPoint(1260, 246.262855805616),
+    TrajectoryPoint(1270, 244.941884938995),
+    TrajectoryPoint(1280, 243.628521911628),
+    TrajectoryPoint(1290, 242.322664617964),
+    TrajectoryPoint(1300, 241.024206038033),
+    TrajectoryPoint(1310, 239.733349959227),
+    TrajectoryPoint(1320, 238.451001377562),
+    TrajectoryPoint(1330, 237.175535502023),
+    TrajectoryPoint(1340, 235.906843739737),
+    TrajectoryPoint(1350, 234.64481440398),
+    TrajectoryPoint(1360, 233.389333164586),
+    TrajectoryPoint(1370, 232.140283459408),
+    TrajectoryPoint(1380, 230.898205196113),
+    TrajectoryPoint(1390, 229.662690474805),
+    TrajectoryPoint(1400, 228.43313173581),
+    TrajectoryPoint(1410, 227.20941542742),
+    TrajectoryPoint(1420, 225.991426778439),
+    TrajectoryPoint(1430, 224.779050065385),
+    TrajectoryPoint(1440, 223.572168854832),
+    TrajectoryPoint(1450, 222.370666222793),
+    TrajectoryPoint(1460, 221.174424952934),
+    TrajectoryPoint(1470, 219.983884761016),
+    TrajectoryPoint(1480, 218.798308392023),
+    TrajectoryPoint(1490, 217.617574583726),
+    TrajectoryPoint(1500, 216.441571764602),
+    TrajectoryPoint(1510, 215.270188470366),
+    TrajectoryPoint(1520, 214.103313467832),
+    TrajectoryPoint(1530, 212.940835865621),
+    TrajectoryPoint(1540, 211.782645212761),
+    TrajectoryPoint(1550, 210.628631586183),
+    TrajectoryPoint(1560, 209.478685668018),
+    TrajectoryPoint(1570, 208.332698813533),
+    TrajectoryPoint(1580, 207.190563110497),
+    TrajectoryPoint(1590, 206.052171430675),
+    TrajectoryPoint(1600, 204.917417474135),
+    TrajectoryPoint(1610, 203.786195806947),
+    TrajectoryPoint(1620, 202.658401892867),
+    TrajectoryPoint(1630, 201.533932119493),
+    TrajectoryPoint(1640, 200.412683819386),
+    TrajectoryPoint(1650, 199.29455528659),
+    TrajectoryPoint(1660, 198.179445788942),
+    TrajectoryPoint(1670, 197.067255576555),
+    TrajectoryPoint(1680, 195.957885886803),
+    TrajectoryPoint(1690, 194.851238946121),
+    TrajectoryPoint(1700, 193.747217968909),
+    TrajectoryPoint(1710, 192.645727153797),
+    TrajectoryPoint(1720, 191.546671677518),
+    TrajectoryPoint(1730, 190.449957686602),
+    TrajectoryPoint(1740, 189.355492287093),
+    TrajectoryPoint(1750, 188.263183532489),
+    TrajectoryPoint(1760, 187.172940410045),
+    TrajectoryPoint(1770, 186.08467282563),
+    TrajectoryPoint(1780, 184.998291587248),
+    TrajectoryPoint(1790, 183.913708387371),
+    TrajectoryPoint(1800, 182.830835784199),
+    TrajectoryPoint(1810, 181.749587181951),
+    TrajectoryPoint(1820, 180.669899537425),
+    TrajectoryPoint(1830, 179.591764558373),
+    TrajectoryPoint(1840, 178.514989633085),
+    TrajectoryPoint(1850, 177.439490660505),
+    TrajectoryPoint(1860, 176.365184304181),
+    TrajectoryPoint(1870, 175.291987966354),
+    TrajectoryPoint(1880, 174.219819761737),
+    TrajectoryPoint(1890, 173.148598491027),
+    TrajectoryPoint(1900, 172.078298555941),
+    TrajectoryPoint(1910, 171.008813308556),
+    TrajectoryPoint(1920, 169.940019947379),
+    TrajectoryPoint(1930, 168.871839298533),
+    TrajectoryPoint(1940, 167.804192750189),
+    TrajectoryPoint(1950, 166.737002223853),
+    TrajectoryPoint(1960, 165.67023275995),
+    TrajectoryPoint(1970, 164.603746993282),
+    TrajectoryPoint(1980, 163.537466894326),
+    TrajectoryPoint(1990, 162.471315868705),
+    TrajectoryPoint(2000, 161.405215889623),
+    TrajectoryPoint(2010, 160.339075352706),
+    TrajectoryPoint(2020, 159.272814889976),
+    TrajectoryPoint(2030, 158.206358972611),
+    TrajectoryPoint(2040, 157.139606146026),
+    TrajectoryPoint(2050, 156.07245530354),
+    TrajectoryPoint(2060, 155.004860322057),
+    TrajectoryPoint(2070, 153.936746267285),
+    TrajectoryPoint(2080, 152.867923580772),
+    TrajectoryPoint(2090, 151.798396561662),
+    TrajectoryPoint(2100, 150.728100784551),
+    TrajectoryPoint(2110, 149.656827143468),
+    TrajectoryPoint(2120, 148.584561974873),
+    TrajectoryPoint(2130, 147.51127620845),
+    TrajectoryPoint(2140, 146.436693490123),
+    TrajectoryPoint(2150, 145.360868823331),
+    TrajectoryPoint(2160, 144.283731915086),
+    TrajectoryPoint(2170, 143.204966416396),
+    TrajectoryPoint(2180, 142.124743024093),
+    TrajectoryPoint(2190, 141.042761130079),
+    TrajectoryPoint(2200, 139.95899973215),
+    TrajectoryPoint(2210, 138.873409848003),
+    TrajectoryPoint(2220, 137.785684728609),
+    TrajectoryPoint(2230, 136.696033503369),
+    TrajectoryPoint(2240, 135.603907271519),
+    TrajectoryPoint(2250, 134.509676297611),
+    TrajectoryPoint(2260, 133.412738653818),
+    TrajectoryPoint(2270, 132.313458237307),
+    TrajectoryPoint(2280, 131.211210571734),
+    TrajectoryPoint(2290, 130.106397911041),
+    TrajectoryPoint(2300, 128.998313116614),
+    TrajectoryPoint(2310, 127.887364251613),
+    TrajectoryPoint(2320, 126.772992401749),
+    TrajectoryPoint(2330, 125.65531820751),
+    TrajectoryPoint(2340, 124.534147829708),
+    TrajectoryPoint(2350, 123.409128126869),
+    TrajectoryPoint(2360, 122.280467626596),
+    TrajectoryPoint(2370, 121.147610681928),
+    TrajectoryPoint(2380, 120.010593690396),
+    TrajectoryPoint(2390, 118.869392522116),
+    TrajectoryPoint(2400, 117.723442785128),
+    TrajectoryPoint(2410, 116.572779083497),
+    TrajectoryPoint(2420, 115.417326905112),
+    TrajectoryPoint(2430, 114.256776720111),
+    TrajectoryPoint(2440, 113.090650907429),
+    TrajectoryPoint(2450, 111.919065300544),
+    TrajectoryPoint(2460, 110.741774457595),
+    TrajectoryPoint(2470, 109.558522208659),
+    TrajectoryPoint(2480, 108.368911705953),
+    TrajectoryPoint(2490, 107.172637530315),
+    TrajectoryPoint(2500, 105.969594867631),
+    TrajectoryPoint(2510, 104.759483760812),
+    TrajectoryPoint(2520, 103.541991160897),
+    TrajectoryPoint(2530, 102.316790317746),
+    TrajectoryPoint(2540, 101.083540124905),
+    TrajectoryPoint(2550, 99.8418844159803),
+    TrajectoryPoint(2560, 98.5914512095855),
+    TrajectoryPoint(2570, 97.3318518995843),
+    TrajectoryPoint(2580, 96.0626803870046),
+    TrajectoryPoint(2590, 94.7835121496189),
+    TrajectoryPoint(2600, 93.4939032447719),
+    TrajectoryPoint(2610, 92.1933892405828),
+    TrajectoryPoint(2620, 90.8813119121372),
+    TrajectoryPoint(2630, 89.5569556622576),
+    TrajectoryPoint(2640, 88.2200629981109),
+    TrajectoryPoint(2650, 86.8700674580021),
+    TrajectoryPoint(2660, 85.5059961193338),
+    TrajectoryPoint(2670, 84.1270010932271),
+    TrajectoryPoint(2680, 82.7328922479654),
+    TrajectoryPoint(2690, 81.3220196568161),
+    TrajectoryPoint(2700, 79.894149540421),
+    TrajectoryPoint(2710, 78.4477735322434),
+    TrajectoryPoint(2720, 76.9823534941141),
+    TrajectoryPoint(2730, 75.4958772290697),
+    TrajectoryPoint(2740, 73.9879185597794),
+    TrajectoryPoint(2750, 72.4567313464441),
+    TrajectoryPoint(2760, 70.9002463544824),
+    TrajectoryPoint(2770, 69.3173014497324),
+    TrajectoryPoint(2780, 67.7058798588637),
+    TrajectoryPoint(2790, 66.0637729809836),
+    TrajectoryPoint(2800, 64.38855803046),
+    TrajectoryPoint(2810, 62.6775723989456),
+    TrajectoryPoint(2820, 60.9278841670521),
+    TrajectoryPoint(2830, 59.1351229781754),
+    TrajectoryPoint(2840, 57.2961400583996),
+    TrajectoryPoint(2850, 55.4059421861985),
+    TrajectoryPoint(2860, 53.459295441486),
+    TrajectoryPoint(2870, 51.4487759074568),
+    TrajectoryPoint(2880, 49.3674304546589),
+    TrajectoryPoint(2890, 47.2057670631994),
+    TrajectoryPoint(2900, 44.951510951961),
+    TrajectoryPoint(2910, 42.5903196745025),
+    TrajectoryPoint(2920, 40.1029854838136),
+    TrajectoryPoint(2930, 37.4648604768426),
+    TrajectoryPoint(2940, 34.6406763982697),
+    TrajectoryPoint(2950, 31.5809614191273),
+    TrajectoryPoint(2960, 28.2099256267369),
+    TrajectoryPoint(2970, 24.3961123079863),
+    TrajectoryPoint(2980, 19.8902245073417),
+    TrajectoryPoint(2990, 14.040560407066),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t4_open[] = {
+    TrajectoryPoint(0, 501.011831601148),
+    TrajectoryPoint(10, 498.910275275413),
+    TrajectoryPoint(20, 496.80313301355),
+    TrajectoryPoint(30, 494.687649597284),
+    TrajectoryPoint(40, 492.572166181019),
+    TrajectoryPoint(50, 490.439757552511),
+    TrajectoryPoint(60, 488.305994721969),
+    TrajectoryPoint(70, 486.163323016975),
+    TrajectoryPoint(80, 484.010879516332),
+    TrajectoryPoint(90, 481.857405085496),
+    TrajectoryPoint(100, 479.685867513483),
+    TrajectoryPoint(110, 477.51432994147),
+    TrajectoryPoint(120, 475.329965091921),
+    TrajectoryPoint(130, 473.138907400239),
+    TrajectoryPoint(140, 470.942135968601),
+    TrajectoryPoint(150, 468.731118934247),
+    TrajectoryPoint(160, 466.520101899893),
+    TrajectoryPoint(170, 464.289869645841),
+    TrajectoryPoint(180, 462.05844031572),
+    TrajectoryPoint(190, 459.814016802862),
+    TrajectoryPoint(200, 457.561707908902),
+    TrajectoryPoint(210, 455.302367289329),
+    TrajectoryPoint(220, 453.028696632207),
+    TrajectoryPoint(230, 450.753674889665),
+    TrajectoryPoint(240, 448.458144689095),
+    TrajectoryPoint(250, 446.162614488526),
+    TrajectoryPoint(260, 443.848733603067),
+    TrajectoryPoint(270, 441.530829812458),
+    TrajectoryPoint(280, 439.199085091469),
+    TrajectoryPoint(290, 436.858276674566),
+    TrajectoryPoint(300, 434.507757728438),
+    TrajectoryPoint(310, 432.143495895401),
+    TrajectoryPoint(320, 429.773243380208),
+    TrajectoryPoint(330, 427.38496078036),
+    TrajectoryPoint(340, 424.993963394525),
+    TrajectoryPoint(350, 422.581073262788),
+    TrajectoryPoint(360, 420.16818313105),
+    TrajectoryPoint(370, 417.73015977797),
+    TrajectoryPoint(380, 415.292055031762),
+    TrajectoryPoint(390, 412.830466845898),
+    TrajectoryPoint(400, 410.366519129002),
+    TrajectoryPoint(410, 407.880156338589),
+    TrajectoryPoint(420, 405.389715008208),
+    TrajectoryPoint(430, 402.877300405396),
+    TrajectoryPoint(440, 400.359691458295),
+    TrajectoryPoint(450, 397.819876027173),
+    TrajectoryPoint(460, 395.274400960464),
+    TrajectoryPoint(470, 392.705759167282),
+    TrajectoryPoint(480, 390.131693769013),
+    TrajectoryPoint(490, 387.532718484226),
+    TrajectoryPoint(500, 384.929311548516),
+    TrajectoryPoint(510, 382.298408567138),
+    TrajectoryPoint(520, 379.664821172904),
+    TrajectoryPoint(530, 377.000362651398),
+    TrajectoryPoint(540, 374.332214511475),
+    TrajectoryPoint(550, 371.635984767183),
+    TrajectoryPoint(560, 368.931415986492),
+    TrajectoryPoint(570, 366.202541268844),
+    TrajectoryPoint(580, 363.4595798983),
+    TrajectoryPoint(590, 360.697151687422),
+    TrajectoryPoint(600, 358.238591938618),
+    TrajectoryPoint(610, 355.9749349171),
+    TrajectoryPoint(620, 353.739140244251),
+    TrajectoryPoint(630, 351.511215449331),
+    TrajectoryPoint(640, 349.315389753838),
+    TrajectoryPoint(650, 347.129845272164),
+    TrajectoryPoint(660, 344.967758823777),
+    TrajectoryPoint(670, 342.824909685462),
+    TrajectoryPoint(680, 340.696271806021),
+    TrajectoryPoint(690, 338.596190366938),
+    TrajectoryPoint(700, 336.506167422886),
+    TrajectoryPoint(710, 334.443147221629),
+    TrajectoryPoint(720, 332.395975857659),
+    TrajectoryPoint(730, 330.364962052424),
+    TrajectoryPoint(740, 328.360206325315),
+    TrajectoryPoint(750, 326.366558674982),
+    TrajectoryPoint(760, 324.397651900161),
+    TrajectoryPoint(770, 322.445820880983),
+    TrajectoryPoint(780, 320.506930200583),
+    TrajectoryPoint(790, 318.5961219278),
+    TrajectoryPoint(800, 316.696914239036),
+    TrajectoryPoint(810, 314.815842006258),
+    TrajectoryPoint(820, 312.95656788272),
+    TrajectoryPoint(830, 311.109209852234),
+    TrajectoryPoint(840, 309.282908838304),
+    TrajectoryPoint(850, 307.474172518963),
+    TrajectoryPoint(860, 305.67749167396),
+    TrajectoryPoint(870, 303.902881242454),
+    TrajectoryPoint(880, 302.143346032911),
+    TrajectoryPoint(890, 300.395850866721),
+    TrajectoryPoint(900, 298.669885607527),
+    TrajectoryPoint(910, 296.957948004568),
+    TrajectoryPoint(920, 295.257905001225),
+    TrajectoryPoint(930, 293.577622035441),
+    TrajectoryPoint(940, 291.911481016706),
+    TrajectoryPoint(950, 290.256984049878),
+    TrajectoryPoint(960, 288.61953416604),
+    TrajectoryPoint(970, 286.997252614701),
+    TrajectoryPoint(980, 285.38628259194),
+    TrajectoryPoint(990, 283.788949355392),
+    TrajectoryPoint(1000, 282.208506220077),
+    TrajectoryPoint(1010, 280.638980549451),
+    TrajectoryPoint(1020, 279.080461072082),
+    TrajectoryPoint(1030, 277.538523754555),
+    TrajectoryPoint(1040, 276.008336180711),
+    TrajectoryPoint(1050, 274.488681825754),
+    TrajectoryPoint(1060, 272.980703685605),
+    TrajectoryPoint(1070, 271.487755526576),
+    TrajectoryPoint(1080, 270.004844640325),
+    TrajectoryPoint(1090, 268.531976160512),
+    TrajectoryPoint(1100, 267.070842427118),
+    TrajectoryPoint(1110, 265.62259556837),
+    TrajectoryPoint(1120, 264.18386335563),
+    TrajectoryPoint(1130, 262.754615067255),
+    TrajectoryPoint(1140, 261.335828177703),
+    TrajectoryPoint(1150, 259.929211048086),
+    TrajectoryPoint(1160, 258.531537843023),
+    TrajectoryPoint(1170, 257.142752342932),
+    TrajectoryPoint(1180, 255.762786948742),
+    TrajectoryPoint(1190, 254.39421606484),
+    TrajectoryPoint(1200, 253.034530095862),
+    TrajectoryPoint(1210, 251.683120052634),
+    TrajectoryPoint(1220, 250.339903585138),
+    TrajectoryPoint(1230, 249.004819199555),
+    TrajectoryPoint(1240, 247.680143697496),
+    TrajectoryPoint(1250, 246.363132670705),
+    TrajectoryPoint(1260, 245.053694539157),
+    TrajectoryPoint(1270, 243.751731907328),
+    TrajectoryPoint(1280, 242.457142246331),
+    TrajectoryPoint(1290, 241.170938789962),
+    TrajectoryPoint(1300, 239.892453846147),
+    TrajectoryPoint(1310, 238.62083544771),
+    TrajectoryPoint(1320, 237.355978760764),
+    TrajectoryPoint(1330, 236.097775674215),
+    TrajectoryPoint(1340, 234.846115256769),
+    TrajectoryPoint(1350, 233.601314833465),
+    TrajectoryPoint(1360, 232.36357203808),
+    TrajectoryPoint(1370, 231.131898891793),
+    TrajectoryPoint(1380, 229.906186194541),
+    TrajectoryPoint(1390, 228.686323089591),
+    TrajectoryPoint(1400, 227.472197364003),
+    TrajectoryPoint(1410, 226.263695722108),
+    TrajectoryPoint(1420, 225.060704034019),
+    TrajectoryPoint(1430, 223.86345408056),
+    TrajectoryPoint(1440, 222.671789655937),
+    TrajectoryPoint(1450, 221.485209770253),
+    TrajectoryPoint(1460, 220.303604996177),
+    TrajectoryPoint(1470, 219.126865624062),
+    TrajectoryPoint(1480, 217.954881820805),
+    TrajectoryPoint(1490, 216.787543772977),
+    TrajectoryPoint(1500, 215.624741815463),
+    TrajectoryPoint(1510, 214.466366546774),
+    TrajectoryPoint(1520, 213.312308932085),
+    TrajectoryPoint(1530, 212.162460394984),
+    TrajectoryPoint(1540, 211.016712898867),
+    TrajectoryPoint(1550, 209.874959018799),
+    TrajectoryPoint(1560, 208.737188389876),
+    TrajectoryPoint(1570, 207.603252874027),
+    TrajectoryPoint(1580, 206.472960694832),
+    TrajectoryPoint(1590, 205.346210340825),
+    TrajectoryPoint(1600, 204.222900980061),
+    TrajectoryPoint(1610, 203.102932500515),
+    TrajectoryPoint(1620, 201.986205544577),
+    TrajectoryPoint(1630, 200.872621538143),
+    TrajectoryPoint(1640, 199.762082714757),
+    TrajectoryPoint(1650, 198.654492135217),
+    TrajectoryPoint(1660, 197.549753703022),
+    TrajectoryPoint(1670, 196.447772176024),
+    TrajectoryPoint(1680, 195.348453174605),
+    TrajectoryPoint(1690, 194.251703186674),
+    TrajectoryPoint(1700, 193.157429569767),
+    TrajectoryPoint(1710, 192.065540550495),
+    TrajectoryPoint(1720, 190.975952359583),
+    TrajectoryPoint(1730, 189.888656627771),
+    TrajectoryPoint(1740, 188.803476744573),
+    TrajectoryPoint(1750, 187.720323218041),
+    TrajectoryPoint(1760, 186.639107449743),
+    TrajectoryPoint(1770, 185.559741718621),
+    TrajectoryPoint(1780, 184.482139163723),
+    TrajectoryPoint(1790, 183.406213765911),
+    TrajectoryPoint(1800, 182.331880328657),
+    TrajectoryPoint(1810, 181.259054458001),
+    TrajectoryPoint(1820, 180.187652541783),
+    TrajectoryPoint(1830, 179.1175917282),
+    TrajectoryPoint(1840, 178.04880639304),
+    TrajectoryPoint(1850, 176.981291691348),
+    TrajectoryPoint(1860, 175.91486278596),
+    TrajectoryPoint(1870, 174.849439065793),
+    TrajectoryPoint(1880, 173.784940586438),
+    TrajectoryPoint(1890, 172.721288044253),
+    TrajectoryPoint(1900, 171.658402750259),
+    TrajectoryPoint(1910, 170.596229150332),
+    TrajectoryPoint(1920, 169.534711685655),
+    TrajectoryPoint(1930, 168.473712703709),
+    TrajectoryPoint(1940, 167.413155296663),
+    TrajectoryPoint(1950, 166.352963047292),
+    TrajectoryPoint(1960, 165.293060696756),
+    TrajectoryPoint(1970, 164.233391851482),
+    TrajectoryPoint(1980, 163.173842348616),
+    TrajectoryPoint(1990, 162.114337106978),
+    TrajectoryPoint(2000, 161.054801398575),
+    TrajectoryPoint(2010, 159.995142022085),
+    TrajectoryPoint(2020, 158.935274713262),
+    TrajectoryPoint(2030, 157.87513272378),
+    TrajectoryPoint(2040, 156.814642130798),
+    TrajectoryPoint(2050, 155.753658689766),
+    TrajectoryPoint(2060, 154.692139345057),
+    TrajectoryPoint(2070, 153.630026810156),
+    TrajectoryPoint(2080, 152.567195060339),
+    TrajectoryPoint(2090, 151.503515288),
+    TrajectoryPoint(2100, 150.438996176293),
+    TrajectoryPoint(2110, 149.373511699917),
+    TrajectoryPoint(2120, 148.306874865985),
+    TrajectoryPoint(2130, 147.239150148223),
+    TrajectoryPoint(2140, 146.170156824464),
+    TrajectoryPoint(2150, 145.099750576168),
+    TrajectoryPoint(2160, 144.028004564788),
+    TrajectoryPoint(2170, 142.954594757833),
+    TrajectoryPoint(2180, 141.879588351799),
+    TrajectoryPoint(2190, 140.802877638679),
+    TrajectoryPoint(2200, 139.724199334209),
+    TrajectoryPoint(2210, 138.643740504799),
+    TrajectoryPoint(2220, 137.560986576288),
+    TrajectoryPoint(2230, 136.476245193123),
+    TrajectoryPoint(2240, 135.389062658967),
+    TrajectoryPoint(2250, 134.299600378242),
+    TrajectoryPoint(2260, 133.207502365147),
+    TrajectoryPoint(2270, 132.112867704636),
+    TrajectoryPoint(2280, 131.015340985864),
+    TrajectoryPoint(2290, 129.915068276456),
+    TrajectoryPoint(2300, 128.811572262761),
+    TrajectoryPoint(2310, 127.70517381454),
+    TrajectoryPoint(2320, 126.595145976192),
+    TrajectoryPoint(2330, 125.481905023643),
+    TrajectoryPoint(2340, 124.364965182652),
+    TrajectoryPoint(2350, 123.24426268382),
+    TrajectoryPoint(2360, 122.119865829321),
+    TrajectoryPoint(2370, 120.991067137268),
+    TrajectoryPoint(2380, 119.858199003943),
+    TrajectoryPoint(2390, 118.721083276317),
+    TrajectoryPoint(2400, 117.57903425801),
+    TrajectoryPoint(2410, 116.432352213256),
+    TrajectoryPoint(2420, 115.280827714441),
+    TrajectoryPoint(2430, 114.124006634284),
+    TrajectoryPoint(2440, 112.96169682862),
+    TrajectoryPoint(2450, 111.79387336148),
+    TrajectoryPoint(2460, 110.62029065528),
+    TrajectoryPoint(2470, 109.440692441966),
+    TrajectoryPoint(2480, 108.254542272019),
+    TrajectoryPoint(2490, 107.061813004956),
+    TrajectoryPoint(2500, 105.862261535746),
+    TrajectoryPoint(2510, 104.655587898418),
+    TrajectoryPoint(2520, 103.441479060529),
+    TrajectoryPoint(2530, 102.219608311681),
+    TrajectoryPoint(2540, 100.989634606426),
+    TrajectoryPoint(2550, 99.7512018588889),
+    TrajectoryPoint(2560, 98.5039381861555),
+    TrajectoryPoint(2570, 97.247455097111),
+    TrajectoryPoint(2580, 95.981346623101),
+    TrajectoryPoint(2590, 94.7051883863886),
+    TrajectoryPoint(2600, 93.4185366019755),
+    TrajectoryPoint(2610, 92.1209270079005),
+    TrajectoryPoint(2620, 90.8118163531082),
+    TrajectoryPoint(2630, 89.490255662728),
+    TrajectoryPoint(2640, 88.1561062124945),
+    TrajectoryPoint(2650, 86.8088017646198),
+    TrajectoryPoint(2660, 85.4474753898248),
+    TrajectoryPoint(2670, 84.0710629319449),
+    TrajectoryPoint(2680, 82.6794850961345),
+    TrajectoryPoint(2690, 81.2711898584975),
+    TrajectoryPoint(2700, 79.8457428067736),
+    TrajectoryPoint(2710, 78.4018320023688),
+    TrajectoryPoint(2720, 76.9387275376952),
+    TrajectoryPoint(2730, 75.4546035286158),
+    TrajectoryPoint(2740, 73.9489401797798),
+    TrajectoryPoint(2750, 72.419905205717),
+    TrajectoryPoint(2760, 70.865601637311),
+    TrajectoryPoint(2770, 69.2847803297828),
+    TrajectoryPoint(2780, 67.6754241744377),
+    TrajectoryPoint(2790, 66.0353243017501),
+    TrajectoryPoint(2800, 64.3620577202878),
+    TrajectoryPoint(2810, 62.6529616752113),
+    TrajectoryPoint(2820, 60.9051041567696),
+    TrajectoryPoint(2830, 59.1141775088849),
+    TrajectoryPoint(2840, 57.2769031675002),
+    TrajectoryPoint(2850, 55.38841198935),
+    TrajectoryPoint(2860, 53.4433508214166),
+    TrajectoryPoint(2870, 51.4344079213076),
+    TrajectoryPoint(2880, 49.3545721292828),
+    TrajectoryPoint(2890, 47.1943507633915),
+    TrajectoryPoint(2900, 44.9415112190163),
+    TrajectoryPoint(2910, 42.5816211045782),
+    TrajectoryPoint(2920, 40.0955547757743),
+    TrajectoryPoint(2930, 37.4586202160777),
+    TrajectoryPoint(2940, 34.6355779145418),
+    TrajectoryPoint(2950, 31.5769176224689),
+    TrajectoryPoint(2960, 28.2068707274524),
+    TrajectoryPoint(2970, 24.3939475293035),
+    TrajectoryPoint(2980, 19.8888791747687),
+    TrajectoryPoint(2990, 14.0399449915658),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t5_open[] = {
+    TrajectoryPoint(0, 495.893395461229),
+    TrajectoryPoint(10, 493.810993067849),
+    TrajectoryPoint(20, 491.723623806074),
+    TrajectoryPoint(30, 489.627258378458),
+    TrajectoryPoint(40, 487.530892950843),
+    TrajectoryPoint(50, 485.418249444041),
+    TrajectoryPoint(60, 483.303921136716),
+    TrajectoryPoint(70, 481.180740058117),
+    TrajectoryPoint(80, 479.04805822962),
+    TrajectoryPoint(90, 476.913799276504),
+    TrajectoryPoint(100, 474.762361567924),
+    TrajectoryPoint(110, 472.610923859345),
+    TrajectoryPoint(120, 470.445848776917),
+    TrajectoryPoint(130, 468.275240632425),
+    TrajectoryPoint(140, 466.097495740579),
+    TrajectoryPoint(150, 463.907289903251),
+    TrajectoryPoint(160, 461.716234446234),
+    TrajectoryPoint(170, 459.505990427636),
+    TrajectoryPoint(180, 457.295746409038),
+    TrajectoryPoint(190, 455.070214214563),
+    TrajectoryPoint(200, 452.839477736434),
+    TrajectoryPoint(210, 450.598784057996),
+    TrajectoryPoint(220, 448.347086464256),
+    TrajectoryPoint(230, 446.090470909099),
+    TrajectoryPoint(240, 443.81732854626),
+    TrajectoryPoint(250, 441.543991076714),
+    TrajectoryPoint(260, 439.248904640641),
+    TrajectoryPoint(270, 436.953818204568),
+    TrajectoryPoint(280, 434.640457089716),
+    TrajectoryPoint(290, 432.322910936517),
+    TrajectoryPoint(300, 429.990566697908),
+    TrajectoryPoint(310, 427.650028116558),
+    TrajectoryPoint(320, 425.297749292189),
+    TrajectoryPoint(330, 422.933667736322),
+    TrajectoryPoint(340, 420.560452047679),
+    TrajectoryPoint(350, 418.172258323749),
+    TrajectoryPoint(360, 415.777049559525),
+    TrajectoryPoint(370, 413.36415496834),
+    TrajectoryPoint(380, 410.945839640421),
+    TrajectoryPoint(390, 408.507635068793),
+    TrajectoryPoint(400, 406.065038821181),
+    TrajectoryPoint(410, 403.600893780176),
+    TrajectoryPoint(420, 401.132777529652),
+    TrajectoryPoint(430, 398.64203913562),
+    TrajectoryPoint(440, 396.147094920836),
+    TrajectoryPoint(450, 393.629086815097),
+    TrajectoryPoint(460, 391.105933328478),
+    TrajectoryPoint(470, 388.559954531165),
+    TrajectoryPoint(480, 386.00713230542),
+    TrajectoryPoint(490, 383.432455998614),
+    TrajectoryPoint(500, 380.84842221676),
+    TrajectoryPoint(510, 378.244294451611),
+    TrajectoryPoint(520, 375.627417346211),
+    TrajectoryPoint(530, 372.99305566828),
+    TrajectoryPoint(540, 370.341608472009),
+    TrajectoryPoint(550, 367.676200458531),
+    TrajectoryPoint(560, 364.988354864159),
+    TrajectoryPoint(570, 362.29105656638),
+    TrajectoryPoint(580, 359.564875649757),
+    TrajectoryPoint(590, 356.877812546097),
+    TrajectoryPoint(600, 354.660563862069),
+    TrajectoryPoint(610, 352.453533239782),
+    TrajectoryPoint(620, 350.269419346282),
+    TrajectoryPoint(630, 348.103545396908),
+    TrajectoryPoint(640, 345.952455029112),
+    TrajectoryPoint(650, 343.828092339714),
+    TrajectoryPoint(660, 341.712919882817),
+    TrajectoryPoint(670, 339.62705603907),
+    TrajectoryPoint(680, 337.553860465795),
+    TrajectoryPoint(690, 335.50000019761),
+    TrajectoryPoint(700, 333.468581549406),
+    TrajectoryPoint(710, 331.447650000944),
+    TrajectoryPoint(720, 329.456195105124),
+    TrajectoryPoint(730, 327.476765906696),
+    TrajectoryPoint(740, 325.515599925019),
+    TrajectoryPoint(750, 323.577059166331),
+    TrajectoryPoint(760, 321.649748978644),
+    TrajectoryPoint(770, 319.747133871286),
+    TrajectoryPoint(780, 317.859873109628),
+    TrajectoryPoint(790, 315.985467757623),
+    TrajectoryPoint(800, 314.137366949025),
+    TrajectoryPoint(810, 312.300733409882),
+    TrajectoryPoint(820, 310.480540575317),
+    TrajectoryPoint(830, 308.681845346624),
+    TrajectoryPoint(840, 306.894793272802),
+    TrajectoryPoint(850, 305.125836379044),
+    TrajectoryPoint(860, 303.375332776532),
+    TrajectoryPoint(870, 301.636496455236),
+    TrajectoryPoint(880, 299.915817905577),
+    TrajectoryPoint(890, 298.212022324272),
+    TrajectoryPoint(900, 296.519788693651),
+    TrajectoryPoint(910, 294.844499327861),
+    TrajectoryPoint(920, 293.18572430559),
+    TrajectoryPoint(930, 291.538299698869),
+    TrajectoryPoint(940, 289.905611954089),
+    TrajectoryPoint(950, 288.290025587958),
+    TrajectoryPoint(960, 286.685493997892),
+    TrajectoryPoint(970, 285.092742847463),
+    TrajectoryPoint(980, 283.518420003648),
+    TrajectoryPoint(990, 281.954792051268),
+    TrajectoryPoint(1000, 280.401959270446),
+    TrajectoryPoint(1010, 278.864411855548),
+    TrajectoryPoint(1020, 277.339664710456),
+    TrajectoryPoint(1030, 275.82527021877),
+    TrajectoryPoint(1040, 274.321595674167),
+    TrajectoryPoint(1050, 272.833704738262),
+    TrajectoryPoint(1060, 271.355697852343),
+    TrajectoryPoint(1070, 269.887589924874),
+    TrajectoryPoint(1080, 268.430679185858),
+    TrajectoryPoint(1090, 266.987042898227),
+    TrajectoryPoint(1100, 265.552801260825),
+    TrajectoryPoint(1110, 264.127932156465),
+    TrajectoryPoint(1120, 262.713333334318),
+    TrajectoryPoint(1130, 261.310988794171),
+    TrajectoryPoint(1140, 259.917496619146),
+    TrajectoryPoint(1150, 258.532808025578),
+    TrajectoryPoint(1160, 257.156862572419),
+    TrajectoryPoint(1170, 255.792485031092),
+    TrajectoryPoint(1180, 254.436757364152),
+    TrajectoryPoint(1190, 253.08924445696),
+    TrajectoryPoint(1200, 251.749870042421),
+    TrajectoryPoint(1210, 250.419011150129),
+    TrajectoryPoint(1220, 249.098143264294),
+    TrajectoryPoint(1230, 247.784897883706),
+    TrajectoryPoint(1240, 246.479188562563),
+    TrajectoryPoint(1250, 245.180922802817),
+    TrajectoryPoint(1260, 243.890002741704),
+    TrajectoryPoint(1270, 242.608114697835),
+    TrajectoryPoint(1280, 241.333298514383),
+    TrajectoryPoint(1290, 240.065331308404),
+    TrajectoryPoint(1300, 238.804112153356),
+    TrajectoryPoint(1310, 237.54953665173),
+    TrajectoryPoint(1320, 236.301497399213),
+    TrajectoryPoint(1330, 235.061131748147),
+    TrajectoryPoint(1340, 233.827033279834),
+    TrajectoryPoint(1350, 232.599005165637),
+    TrajectoryPoint(1360, 231.376941151161),
+    TrajectoryPoint(1370, 230.160733174253),
+    TrajectoryPoint(1380, 228.950271672266),
+    TrajectoryPoint(1390, 227.745445862251),
+    TrajectoryPoint(1400, 226.546662123896),
+    TrajectoryPoint(1410, 225.35352298062),
+    TrajectoryPoint(1420, 224.165593878836),
+    TrajectoryPoint(1430, 222.982767951493),
+    TrajectoryPoint(1440, 221.804937764672),
+    TrajectoryPoint(1450, 220.631995499108),
+    TrajectoryPoint(1460, 219.463833114491),
+    TrajectoryPoint(1470, 218.300342497839),
+    TrajectoryPoint(1480, 217.141415597213),
+    TrajectoryPoint(1490, 215.98694454189),
+    TrajectoryPoint(1500, 214.83686129325),
+    TrajectoryPoint(1510, 213.691290814749),
+    TrajectoryPoint(1520, 212.549807517293),
+    TrajectoryPoint(1530, 211.41230900981),
+    TrajectoryPoint(1540, 210.278693285792),
+    TrajectoryPoint(1550, 209.148858796874),
+    TrajectoryPoint(1560, 208.022704517951),
+    TrajectoryPoint(1570, 206.900130004505),
+    TrajectoryPoint(1580, 205.781035442789),
+    TrajectoryPoint(1590, 204.66532169343),
+    TrajectoryPoint(1600, 203.552890329003),
+    TrajectoryPoint(1610, 202.443643666062),
+    TrajectoryPoint(1620, 201.337484792092),
+    TrajectoryPoint(1630, 200.234317587797),
+    TrajectoryPoint(1640, 199.134046745126),
+    TrajectoryPoint(1650, 198.036577781376),
+    TrajectoryPoint(1660, 196.941817049718),
+    TrajectoryPoint(1670, 195.849671746449),
+    TrajectoryPoint(1680, 194.760049915236),
+    TrajectoryPoint(1690, 193.672860448629),
+    TrajectoryPoint(1700, 192.588013087064),
+    TrajectoryPoint(1710, 191.505418415587),
+    TrajectoryPoint(1720, 190.424987858486),
+    TrajectoryPoint(1730, 189.346633672029),
+    TrajectoryPoint(1740, 188.270268935464),
+    TrajectoryPoint(1750, 187.195807540446),
+    TrajectoryPoint(1760, 186.123164179032),
+    TrajectoryPoint(1770, 185.052358205946),
+    TrajectoryPoint(1780, 183.983204984588),
+    TrajectoryPoint(1790, 182.915613568121),
+    TrajectoryPoint(1800, 181.849500894911),
+    TrajectoryPoint(1810, 180.784784663588),
+    TrajectoryPoint(1820, 179.721383312216),
+    TrajectoryPoint(1830, 178.659215996897),
+    TrajectoryPoint(1840, 177.598202569869),
+    TrajectoryPoint(1850, 176.538263557143),
+    TrajectoryPoint(1860, 175.479363769597),
+    TrajectoryPoint(1870, 174.421427705209),
+    TrajectoryPoint(1880, 173.364318661386),
+    TrajectoryPoint(1890, 172.307959128872),
+    TrajectoryPoint(1900, 171.252272170697),
+    TrajectoryPoint(1910, 170.197181396571),
+    TrajectoryPoint(1920, 169.142619283827),
+    TrajectoryPoint(1930, 168.088542697927),
+    TrajectoryPoint(1940, 167.034819310001),
+    TrajectoryPoint(1950, 165.981374273152),
+    TrajectoryPoint(1960, 164.928133163716),
+    TrajectoryPoint(1970, 163.875023027652),
+    TrajectoryPoint(1980, 162.82196422019),
+    TrajectoryPoint(1990, 161.768868610692),
+    TrajectoryPoint(2000, 160.715662863601),
+    TrajectoryPoint(2010, 159.66227393177),
+    TrajectoryPoint(2020, 158.608578090986),
+    TrajectoryPoint(2030, 157.554527852596),
+    TrajectoryPoint(2040, 156.500054501047),
+    TrajectoryPoint(2050, 155.445065091192),
+    TrajectoryPoint(2060, 154.389409065964),
+    TrajectoryPoint(2070, 153.333088921158),
+    TrajectoryPoint(2080, 152.276032204878),
+    TrajectoryPoint(2090, 151.218019301767),
+    TrajectoryPoint(2100, 150.159076943771),
+    TrajectoryPoint(2110, 149.099154970456),
+    TrajectoryPoint(2120, 148.037992273448),
+    TrajectoryPoint(2130, 146.975637471456),
+    TrajectoryPoint(2140, 145.912053252946),
+    TrajectoryPoint(2150, 144.846879976045),
+    TrajectoryPoint(2160, 143.780305379313),
+    TrajectoryPoint(2170, 142.712114332152),
+    TrajectoryPoint(2180, 141.642147562469),
+    TrajectoryPoint(2190, 140.570525911569),
+    TrajectoryPoint(2200, 139.496770987418),
+    TrajectoryPoint(2210, 138.421166027237),
+    TrajectoryPoint(2220, 137.343327739557),
+    TrajectoryPoint(2230, 136.26331632478),
+    TrajectoryPoint(2240, 135.18093363586),
+    TrajectoryPoint(2250, 134.096080328852),
+    TrajectoryPoint(2260, 133.008666839912),
+    TrajectoryPoint(2270, 131.918522966773),
+    TrajectoryPoint(2280, 130.825566111821),
+    TrajectoryPoint(2290, 129.729668710133),
+    TrajectoryPoint(2300, 128.630628706097),
+    TrajectoryPoint(2310, 127.528499364839),
+    TrajectoryPoint(2320, 126.422807924827),
+    TrajectoryPoint(2330, 125.31385881044),
+    TrajectoryPoint(2340, 124.201010328155),
+    TrajectoryPoint(2350, 123.084487642166),
+    TrajectoryPoint(2360, 121.964092598988),
+    TrajectoryPoint(2370, 120.839345574661),
+    TrajectoryPoint(2380, 119.710494607687),
+    TrajectoryPoint(2390, 118.577200943165),
+    TrajectoryPoint(2400, 117.43905953008),
+    TrajectoryPoint(2410, 116.29623314359),
+    TrajectoryPoint(2420, 115.148512102922),
+    TrajectoryPoint(2430, 113.995299524828),
+    TrajectoryPoint(2440, 112.836685381886),
+    TrajectoryPoint(2450, 111.672505495286),
+    TrajectoryPoint(2460, 110.502514162983),
+    TrajectoryPoint(2470, 109.326363229242),
+    TrajectoryPoint(2480, 108.143654313685),
+    TrajectoryPoint(2490, 106.954358774437),
+    TrajectoryPoint(2500, 105.758189111665),
+    TrajectoryPoint(2510, 104.55484535341),
+    TrajectoryPoint(2520, 103.344014485055),
+    TrajectoryPoint(2530, 102.125369835799),
+    TrajectoryPoint(2540, 100.898570419754),
+    TrajectoryPoint(2550, 99.6632602289389),
+    TrajectoryPoint(2560, 98.4190674752137),
+    TrajectoryPoint(2570, 97.1656037778128),
+    TrajectoryPoint(2580, 95.9024632928412),
+    TrajectoryPoint(2590, 94.6292217806866),
+    TrajectoryPoint(2600, 93.345435606903),
+    TrajectoryPoint(2610, 92.0506406716688),
+    TrajectoryPoint(2620, 90.7443512624303),
+    TrajectoryPoint(2630, 89.4255547962579),
+    TrajectoryPoint(2640, 88.0940641243211),
+    TrajectoryPoint(2650, 86.7493680635676),
+    TrajectoryPoint(2660, 85.3907031603099),
+    TrajectoryPoint(2670, 84.0167941204665),
+    TrajectoryPoint(2680, 82.6276698469137),
+    TrajectoryPoint(2690, 81.221873828954),
+    TrajectoryPoint(2700, 79.7987759172389),
+    TrajectoryPoint(2710, 78.3572557497955),
+    TrajectoryPoint(2720, 76.8963964307387),
+    TrajectoryPoint(2730, 75.4145537036169),
+    TrajectoryPoint(2740, 73.9111164894967),
+    TrajectoryPoint(2750, 72.3841686044142),
+    TrajectoryPoint(2760, 70.8319808913),
+    TrajectoryPoint(2770, 69.2532194288865),
+    TrajectoryPoint(2780, 67.6458667832983),
+    TrajectoryPoint(2790, 66.0077138236099),
+    TrajectoryPoint(2800, 64.3363373571012),
+    TrajectoryPoint(2810, 62.6290744844389),
+    TrajectoryPoint(2820, 60.8829931051843),
+    TrajectoryPoint(2830, 59.0938465540543),
+    TrajectoryPoint(2840, 57.2582300062206),
+    TrajectoryPoint(2850, 55.3713949995749),
+    TrajectoryPoint(2860, 53.4278724266371),
+    TrajectoryPoint(2870, 51.4204596199541),
+    TrajectoryPoint(2880, 49.3420889863206),
+    TrajectoryPoint(2890, 47.1832671991707),
+    TrajectoryPoint(2900, 44.9318026426547),
+    TrajectoryPoint(2910, 42.5731755042324),
+    TrajectoryPoint(2920, 40.0883399270314),
+    TrajectoryPoint(2930, 37.4525610208921),
+    TrajectoryPoint(2940, 34.6306271992805),
+    TrajectoryPoint(2950, 31.5729908812172),
+    TrajectoryPoint(2960, 28.2039041437284),
+    TrajectoryPoint(2970, 24.3918452395342),
+    TrajectoryPoint(2980, 19.8875726102464),
+    TrajectoryPoint(2990, 14.0393472693167),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t6_open[] = {
+    TrajectoryPoint(0, 491.462437549768),
+    TrajectoryPoint(10, 489.379712617304),
+    TrajectoryPoint(20, 487.292182881464),
+    TrajectoryPoint(30, 485.195308275166),
+    TrajectoryPoint(40, 483.098433668869),
+    TrajectoryPoint(50, 480.985124362365),
+    TrajectoryPoint(60, 478.870234647171),
+    TrajectoryPoint(70, 476.745950078586),
+    TrajectoryPoint(80, 474.612653518557),
+    TrajectoryPoint(90, 472.476838243683),
+    TrajectoryPoint(100, 470.324731338337),
+    TrajectoryPoint(110, 468.172624432992),
+    TrajectoryPoint(120, 466.005468776384),
+    TrajectoryPoint(130, 463.834135778838),
+    TrajectoryPoint(140, 461.65382405153),
+    TrajectoryPoint(150, 459.462836461792),
+    TrajectoryPoint(160, 457.268710736369),
+    TrajectoryPoint(170, 455.057626768234),
+    TrajectoryPoint(180, 452.846542800098),
+    TrajectoryPoint(190, 450.617359442783),
+    TrajectoryPoint(200, 448.385723462656),
+    TrajectoryPoint(210, 446.140837174581),
+    TrajectoryPoint(220, 443.888179110438),
+    TrajectoryPoint(230, 441.626809920875),
+    TrajectoryPoint(240, 439.352644639431),
+    TrajectoryPoint(250, 437.073972055534),
+    TrajectoryPoint(260, 434.777798705549),
+    TrajectoryPoint(270, 432.480959329006),
+    TrajectoryPoint(280, 430.162260648487),
+    TrajectoryPoint(290, 427.843561967967),
+    TrajectoryPoint(300, 425.504587209956),
+    TrajectoryPoint(310, 423.162828794852),
+    TrajectoryPoint(320, 420.803269030112),
+    TrajectoryPoint(330, 418.437898561902),
+    TrajectoryPoint(340, 416.056726904515),
+    TrajectoryPoint(350, 413.667173333887),
+    TrajectoryPoint(360, 411.263307782365),
+    TrajectoryPoint(370, 408.848980465945),
+    TrajectoryPoint(380, 406.421280484921),
+    TrajectoryPoint(390, 403.981568271791),
+    TrajectoryPoint(400, 401.528831121062),
+    TrajectoryPoint(410, 399.063101385507),
+    TrajectoryPoint(420, 396.584058174739),
+    TrajectoryPoint(430, 394.091655791379),
+    TrajectoryPoint(440, 391.584967236608),
+    TrajectoryPoint(450, 389.06521349376),
+    TrajectoryPoint(460, 386.529465349485),
+    TrajectoryPoint(470, 383.981656796214),
+    TrajectoryPoint(480, 381.415354934194),
+    TrajectoryPoint(490, 378.838762156147),
+    TrajectoryPoint(500, 376.240327259089),
+    TrajectoryPoint(510, 373.634193577772),
+    TrajectoryPoint(520, 371.001955412785),
+    TrajectoryPoint(530, 368.365288319669),
+    TrajectoryPoint(540, 365.697686735469),
+    TrajectoryPoint(550, 363.024425049035),
+    TrajectoryPoint(560, 360.324834659557),
+    TrajectoryPoint(570, 357.808821406912),
+    TrajectoryPoint(580, 355.603230874743),
+    TrajectoryPoint(590, 353.416686222753),
+    TrajectoryPoint(600, 351.24346987129),
+    TrajectoryPoint(610, 349.096897323424),
+    TrajectoryPoint(620, 346.958552408028),
+    TrajectoryPoint(630, 344.849789732894),
+    TrajectoryPoint(640, 342.752264375336),
+    TrajectoryPoint(650, 340.675343241069),
+    TrajectoryPoint(660, 338.618689890455),
+    TrajectoryPoint(670, 336.573222940984),
+    TrajectoryPoint(680, 334.557297568576),
+    TrajectoryPoint(690, 332.551327106871),
+    TrajectoryPoint(700, 330.567304717794),
+    TrajectoryPoint(710, 328.601864352275),
+    TrajectoryPoint(720, 326.647713871543),
+    TrajectoryPoint(730, 324.72225219659),
+    TrajectoryPoint(740, 322.807515758115),
+    TrajectoryPoint(750, 320.911194954742),
+    TrajectoryPoint(760, 319.035686994102),
+    TrajectoryPoint(770, 317.171380787399),
+    TrajectoryPoint(780, 315.330158137077),
+    TrajectoryPoint(790, 313.504066141523),
+    TrajectoryPoint(800, 311.689474913661),
+    TrajectoryPoint(810, 309.900502040529),
+    TrajectoryPoint(820, 308.122902829243),
+    TrajectoryPoint(830, 306.358974339333),
+    TrajectoryPoint(840, 304.617335759212),
+    TrajectoryPoint(850, 302.886986586766),
+    TrajectoryPoint(860, 301.170997114872),
+    TrajectoryPoint(870, 299.475179912819),
+    TrajectoryPoint(880, 297.790586310029),
+    TrajectoryPoint(890, 296.119719419639),
+    TrajectoryPoint(900, 294.468148168004),
+    TrajectoryPoint(910, 292.827627756767),
+    TrajectoryPoint(920, 291.199156396652),
+    TrajectoryPoint(930, 289.590103474277),
+    TrajectoryPoint(940, 287.991842642884),
+    TrajectoryPoint(950, 286.404529551622),
+    TrajectoryPoint(960, 284.834787639717),
+    TrajectoryPoint(970, 283.276889858344),
+    TrajectoryPoint(980, 281.729570741622),
+    TrajectoryPoint(990, 280.195925471571),
+    TrajectoryPoint(1000, 278.676451184232),
+    TrajectoryPoint(1010, 277.167143793967),
+    TrajectoryPoint(1020, 275.668055063775),
+    TrajectoryPoint(1030, 274.184304743214),
+    TrajectoryPoint(1040, 272.71102938647),
+    TrajectoryPoint(1050, 271.247505003057),
+    TrajectoryPoint(1060, 269.794379637349),
+    TrajectoryPoint(1070, 268.355181814537),
+    TrajectoryPoint(1080, 266.925254447926),
+    TrajectoryPoint(1090, 265.504584331959),
+    TrajectoryPoint(1100, 264.093762465101),
+    TrajectoryPoint(1110, 262.695515003384),
+    TrajectoryPoint(1120, 261.306024771372),
+    TrajectoryPoint(1130, 259.925250701435),
+    TrajectoryPoint(1140, 258.553139777871),
+    TrajectoryPoint(1150, 257.192576013266),
+    TrajectoryPoint(1160, 255.840625720184),
+    TrajectoryPoint(1170, 254.496826251001),
+    TrajectoryPoint(1180, 253.161107656844),
+    TrajectoryPoint(1190, 251.834115762726),
+    TrajectoryPoint(1200, 250.516873518626),
+    TrajectoryPoint(1210, 249.207209492411),
+    TrajectoryPoint(1220, 247.90504257648),
+    TrajectoryPoint(1230, 246.610285361939),
+    TrajectoryPoint(1240, 245.323200473145),
+    TrajectoryPoint(1250, 244.044944484838),
+    TrajectoryPoint(1260, 242.773610988068),
+    TrajectoryPoint(1270, 241.509107304524),
+    TrajectoryPoint(1280, 240.251336568219),
+    TrajectoryPoint(1290, 239.00019823826),
+    TrajectoryPoint(1300, 237.756168981327),
+    TrajectoryPoint(1310, 236.519356079147),
+    TrajectoryPoint(1320, 235.28871404392),
+    TrajectoryPoint(1330, 234.064141989958),
+    TrajectoryPoint(1340, 232.845536720993),
+    TrajectoryPoint(1350, 231.632793073893),
+    TrajectoryPoint(1360, 230.425804233165),
+    TrajectoryPoint(1370, 229.224941876566),
+    TrajectoryPoint(1380, 228.030002854653),
+    TrajectoryPoint(1390, 226.840393574009),
+    TrajectoryPoint(1400, 225.656010232137),
+    TrajectoryPoint(1410, 224.476748138883),
+    TrajectoryPoint(1420, 223.302501922764),
+    TrajectoryPoint(1430, 222.133165718442),
+    TrajectoryPoint(1440, 220.968633336768),
+    TrajectoryPoint(1450, 219.808798418717),
+    TrajectoryPoint(1460, 218.653687783351),
+    TrajectoryPoint(1470, 217.503351156827),
+    TrajectoryPoint(1480, 216.357336236767),
+    TrajectoryPoint(1490, 215.215541600524),
+    TrajectoryPoint(1500, 214.077865959229),
+    TrajectoryPoint(1510, 212.944208254951),
+    TrajectoryPoint(1520, 211.814467747675),
+    TrajectoryPoint(1530, 210.688544092908),
+    TrajectoryPoint(1540, 209.566337410641),
+    TrajectoryPoint(1550, 208.447748346367),
+    TrajectoryPoint(1560, 207.332678124779),
+    TrajectoryPoint(1570, 206.221028596742),
+    TrajectoryPoint(1580, 205.112702280078),
+    TrajectoryPoint(1590, 204.007602394669),
+    TrajectoryPoint(1600, 202.90563289234),
+    TrajectoryPoint(1610, 201.806698481948),
+    TrajectoryPoint(1620, 200.710704650078),
+    TrajectoryPoint(1630, 199.617557677701),
+    TrajectoryPoint(1640, 198.527164653146),
+    TrajectoryPoint(1650, 197.439433481671),
+    TrajectoryPoint(1660, 196.354272891944),
+    TrajectoryPoint(1670, 195.271592439683),
+    TrajectoryPoint(1680, 194.191302508698),
+    TrajectoryPoint(1690, 193.113314309558),
+    TrajectoryPoint(1700, 192.0375398761),
+    TrajectoryPoint(1710, 190.963892059942),
+    TrajectoryPoint(1720, 189.892284523207),
+    TrajectoryPoint(1730, 188.82263172959),
+    TrajectoryPoint(1740, 187.754848933928),
+    TrajectoryPoint(1750, 186.688852170404),
+    TrajectoryPoint(1760, 185.62455823951),
+    TrajectoryPoint(1770, 184.561884693882),
+    TrajectoryPoint(1780, 183.500749823105),
+    TrajectoryPoint(1790, 182.441092124742),
+    TrajectoryPoint(1800, 181.382898598308),
+    TrajectoryPoint(1810, 180.325995390523),
+    TrajectoryPoint(1820, 179.270302887053),
+    TrajectoryPoint(1830, 178.21574215079),
+    TrajectoryPoint(1840, 177.162234900164),
+    TrajectoryPoint(1850, 176.109703487055),
+    TrajectoryPoint(1860, 175.058070874361),
+    TrajectoryPoint(1870, 174.007260613263),
+    TrajectoryPoint(1880, 172.957273278608),
+    TrajectoryPoint(1890, 171.907945437882),
+    TrajectoryPoint(1900, 170.85919970078),
+    TrajectoryPoint(1910, 169.810961296547),
+    TrajectoryPoint(1920, 168.763155936466),
+    TrajectoryPoint(1930, 167.715713881046),
+    TrajectoryPoint(1940, 166.668582634656),
+    TrajectoryPoint(1950, 165.621646744611),
+    TrajectoryPoint(1960, 164.57483323541),
+    TrajectoryPoint(1970, 163.528069491258),
+    TrajectoryPoint(1980, 162.48127784464),
+    TrajectoryPoint(1990, 161.434367871891),
+    TrajectoryPoint(2000, 160.387271536359),
+    TrajectoryPoint(2010, 159.339917073519),
+    TrajectoryPoint(2020, 158.292215230168),
+    TrajectoryPoint(2030, 157.244045923679),
+    TrajectoryPoint(2040, 156.195382174117),
+    TrajectoryPoint(2050, 155.146152651484),
+    TrajectoryPoint(2060, 154.096201957997),
+    TrajectoryPoint(2070, 153.045475682509),
+    TrajectoryPoint(2080, 151.993945974813),
+    TrajectoryPoint(2090, 150.941470727309),
+    TrajectoryPoint(2100, 149.887915298549),
+    TrajectoryPoint(2110, 148.833316488452),
+    TrajectoryPoint(2120, 147.777504714374),
+    TrajectoryPoint(2130, 146.720338285409),
+    TrajectoryPoint(2140, 145.661885388165),
+    TrajectoryPoint(2150, 144.601874691968),
+    TrajectoryPoint(2160, 143.540297849069),
+    TrajectoryPoint(2170, 142.477159931246),
+    TrajectoryPoint(2180, 141.41206426564),
+    TrajectoryPoint(2190, 140.345257222658),
+    TrajectoryPoint(2200, 139.276374682147),
+    TrajectoryPoint(2210, 138.205462328844),
+    TrajectoryPoint(2220, 137.132384142624),
+    TrajectoryPoint(2230, 136.056946192636),
+    TrajectoryPoint(2240, 134.979211611432),
+    TrajectoryPoint(2250, 133.898815397383),
+    TrajectoryPoint(2260, 132.815938524625),
+    TrajectoryPoint(2270, 131.730138048489),
+    TrajectoryPoint(2280, 130.641606988911),
+    TrajectoryPoint(2290, 129.549941866577),
+    TrajectoryPoint(2300, 128.455217639162),
+    TrajectoryPoint(2310, 127.357211939182),
+    TrajectoryPoint(2320, 126.255727160004),
+    TrajectoryPoint(2330, 125.15088813489),
+    TrajectoryPoint(2340, 124.042045471977),
+    TrajectoryPoint(2350, 122.929571584419),
+    TrajectoryPoint(2360, 121.813032577904),
+    TrajectoryPoint(2370, 120.692227258067),
+    TrajectoryPoint(2380, 119.567267873082),
+    TrajectoryPoint(2390, 118.437673700185),
+    TrajectoryPoint(2400, 117.30331805144),
+    TrajectoryPoint(2410, 116.164227158845),
+    TrajectoryPoint(2420, 115.02012489874),
+    TrajectoryPoint(2430, 113.870472164399),
+    TrajectoryPoint(2440, 112.715438900117),
+    TrajectoryPoint(2450, 111.554789511499),
+    TrajectoryPoint(2460, 110.388278182147),
+    TrajectoryPoint(2470, 109.215422632291),
+    TrajectoryPoint(2480, 108.036091567496),
+    TrajectoryPoint(2490, 106.850123693671),
+    TrajectoryPoint(2500, 105.657231483005),
+    TrajectoryPoint(2510, 104.457114960015),
+    TrajectoryPoint(2520, 103.249461128895),
+    TrajectoryPoint(2530, 102.033943358115),
+    TrajectoryPoint(2540, 100.810220719813),
+    TrajectoryPoint(2550, 99.5779372812867),
+    TrajectoryPoint(2560, 98.336721345563),
+    TrajectoryPoint(2570, 97.0861846377244),
+    TrajectoryPoint(2580, 95.8259214333161),
+    TrajectoryPoint(2590, 94.5555076247842),
+    TrajectoryPoint(2600, 93.2744997214876),
+    TrajectoryPoint(2610, 91.9824337783719),
+    TrajectoryPoint(2620, 90.6788242479101),
+    TrajectoryPoint(2630, 89.3627645931361),
+    TrajectoryPoint(2640, 88.0338520938974),
+    TrajectoryPoint(2650, 86.6916854615471),
+    TrajectoryPoint(2660, 85.3356022780388),
+    TrajectoryPoint(2670, 83.9641210828783),
+    TrajectoryPoint(2680, 82.5773764191885),
+    TrajectoryPoint(2690, 81.1740049783589),
+    TrajectoryPoint(2700, 79.7531856090451),
+    TrajectoryPoint(2710, 78.3139848376293),
+    TrajectoryPoint(2720, 76.8553033971801),
+    TrajectoryPoint(2730, 75.3756741369541),
+    TrajectoryPoint(2740, 73.8743969486829),
+    TrajectoryPoint(2750, 72.3494739135721),
+    TrajectoryPoint(2760, 70.7993393961434),
+    TrajectoryPoint(2770, 69.2225768518375),
+    TrajectoryPoint(2780, 67.6171685312658),
+    TrajectoryPoint(2790, 65.9809050490019),
+    TrajectoryPoint(2800, 64.3113630153795),
+    TrajectoryPoint(2810, 62.60587938855),
+    TrajectoryPoint(2820, 60.8615219771788),
+    TrajectoryPoint(2830, 59.074103465051),
+    TrajectoryPoint(2840, 57.2400961559979),
+    TrajectoryPoint(2850, 55.3548690078386),
+    TrajectoryPoint(2860, 53.4128401051064),
+    TrajectoryPoint(2870, 51.4069128813601),
+    TrajectoryPoint(2880, 49.329964842355),
+    TrajectoryPoint(2890, 47.1725020336528),
+    TrajectoryPoint(2900, 44.92237268972),
+    TrajectoryPoint(2910, 42.5649719968482),
+    TrajectoryPoint(2920, 40.0813316665653),
+    TrajectoryPoint(2930, 37.4466751235382),
+    TrajectoryPoint(2940, 34.6258179202231),
+    TrajectoryPoint(2950, 31.5691761853542),
+    TrajectoryPoint(2960, 28.2010221004294),
+    TrajectoryPoint(2970, 24.3898027714716),
+    TrajectoryPoint(2980, 19.8863031618382),
+    TrajectoryPoint(2990, 14.0387664881145),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t7_open[] = {
+    TrajectoryPoint(0, 486.660814948149),
+    TrajectoryPoint(10, 484.596148511444),
+    TrajectoryPoint(20, 482.52584171389),
+    TrajectoryPoint(30, 480.447515471832),
+    TrajectoryPoint(40, 478.369038909708),
+    TrajectoryPoint(50, 476.273006098312),
+    TrajectoryPoint(60, 474.176973286915),
+    TrajectoryPoint(70, 472.06956262566),
+    TrajectoryPoint(80, 469.95544171111),
+    TrajectoryPoint(90, 467.836248290991),
+    TrajectoryPoint(100, 465.703646383332),
+    TrajectoryPoint(110, 463.571044475673),
+    TrajectoryPoint(120, 461.420599655275),
+    TrajectoryPoint(130, 459.269112047477),
+    TrajectoryPoint(140, 457.105272345394),
+    TrajectoryPoint(150, 454.93448202887),
+    TrajectoryPoint(160, 452.756591610395),
+    TrajectoryPoint(170, 450.566068765502),
+    TrajectoryPoint(180, 448.373438683061),
+    TrajectoryPoint(190, 446.162740143029),
+    TrajectoryPoint(200, 443.952041602997),
+    TrajectoryPoint(210, 441.723315153173),
+    TrajectoryPoint(220, 439.491983839771),
+    TrajectoryPoint(230, 437.246561303749),
+    TrajectoryPoint(240, 434.994125632891),
+    TrajectoryPoint(250, 432.731191860915),
+    TrajectoryPoint(260, 430.457165116247),
+    TrajectoryPoint(270, 428.175862910846),
+    TrajectoryPoint(280, 425.879742583239),
+    TrajectoryPoint(290, 423.579170226921),
+    TrajectoryPoint(300, 421.26043731761),
+    TrajectoryPoint(310, 418.93964592728),
+    TrajectoryPoint(320, 416.597764212217),
+    TrajectoryPoint(330, 414.25575490623),
+    TrajectoryPoint(340, 411.890170159039),
+    TrajectoryPoint(350, 409.524585411847),
+    TrajectoryPoint(360, 407.136030192172),
+    TrajectoryPoint(370, 404.746169362869),
+    TrajectoryPoint(380, 402.333643363933),
+    TrajectoryPoint(390, 399.918913710364),
+    TrajectoryPoint(400, 397.481228332273),
+    TrajectoryPoint(410, 395.041016500959),
+    TrajectoryPoint(420, 392.576918635716),
+    TrajectoryPoint(430, 390.110589688523),
+    TrajectoryPoint(440, 387.618757629711),
+    TrajectoryPoint(450, 385.125252606899),
+    TrajectoryPoint(460, 382.604693055793),
+    TrajectoryPoint(470, 380.081292831057),
+    TrajectoryPoint(480, 377.53257121215),
+    TrajectoryPoint(490, 374.977746614056),
+    TrajectoryPoint(500, 372.400130691078),
+    TrajectoryPoint(510, 369.812265520399),
+    TrajectoryPoint(520, 367.204995645349),
+    TrajectoryPoint(530, 364.582380820962),
+    TrajectoryPoint(540, 361.944668541655),
+    TrajectoryPoint(550, 359.285495776845),
+    TrajectoryPoint(560, 356.616522355015),
+    TrajectoryPoint(570, 354.399260232196),
+    TrajectoryPoint(580, 352.240015989844),
+    TrajectoryPoint(590, 350.108572817777),
+    TrajectoryPoint(600, 347.988707954534),
+    TrajectoryPoint(610, 345.888757179014),
+    TrajectoryPoint(620, 343.808587335196),
+    TrajectoryPoint(630, 341.739888168349),
+    TrajectoryPoint(640, 339.699514299151),
+    TrajectoryPoint(650, 337.668349362137),
+    TrajectoryPoint(660, 335.661060592562),
+    TrajectoryPoint(670, 333.669826368116),
+    TrajectoryPoint(680, 331.692546673794),
+    TrajectoryPoint(690, 329.740890301969),
+    TrajectoryPoint(700, 327.799442690578),
+    TrajectoryPoint(710, 325.880507175304),
+    TrajectoryPoint(720, 323.978161400915),
+    TrajectoryPoint(730, 322.087479895422),
+    TrajectoryPoint(740, 320.223555536362),
+    TrajectoryPoint(750, 318.370351952941),
+    TrajectoryPoint(760, 316.53420424058),
+    TrajectoryPoint(770, 314.718495753322),
+    TrajectoryPoint(780, 312.913838302188),
+    TrajectoryPoint(790, 311.129488975498),
+    TrajectoryPoint(800, 309.361191045715),
+    TrajectoryPoint(810, 307.604115421654),
+    TrajectoryPoint(820, 305.868779915492),
+    TrajectoryPoint(830, 304.146769553572),
+    TrajectoryPoint(840, 302.436010374018),
+    TrajectoryPoint(850, 300.74691901707),
+    TrajectoryPoint(860, 299.069818245982),
+    TrajectoryPoint(870, 297.40387571384),
+    TrajectoryPoint(880, 295.758318910417),
+    TrajectoryPoint(890, 294.124555340981),
+    TrajectoryPoint(900, 292.501756649291),
+    TrajectoryPoint(910, 290.897115535511),
+    TrajectoryPoint(920, 289.304977213173),
+    TrajectoryPoint(930, 287.723530368441),
+    TrajectoryPoint(940, 286.157296490286),
+    TrajectoryPoint(950, 284.604979378008),
+    TrajectoryPoint(960, 283.063018684483),
+    TrajectoryPoint(970, 281.532805518535),
+    TrajectoryPoint(980, 280.018453229286),
+    TrajectoryPoint(990, 278.514076613715),
+    TrajectoryPoint(1000, 277.019738746315),
+    TrajectoryPoint(1010, 275.539361250464),
+    TrajectoryPoint(1020, 274.070660114859),
+    TrajectoryPoint(1030, 272.611557127073),
+    TrajectoryPoint(1040, 271.162068089096),
+    TrajectoryPoint(1050, 269.726876316377),
+    TrajectoryPoint(1060, 268.301100607484),
+    TrajectoryPoint(1070, 266.884462673618),
+    TrajectoryPoint(1080, 265.477019365918),
+    TrajectoryPoint(1090, 264.082706095692),
+    TrajectoryPoint(1100, 262.697051061193),
+    TrajectoryPoint(1110, 261.320021188148),
+    TrajectoryPoint(1120, 259.951571152876),
+    TrajectoryPoint(1130, 258.594452650838),
+    TrajectoryPoint(1140, 257.246109934625),
+    TrajectoryPoint(1150, 255.905851075749),
+    TrajectoryPoint(1160, 254.573612681246),
+    TrajectoryPoint(1170, 253.250139342003),
+    TrajectoryPoint(1180, 251.93635082744),
+    TrajectoryPoint(1190, 250.630093692621),
+    TrajectoryPoint(1200, 249.331292376066),
+    TrajectoryPoint(1210, 248.039864754323),
+    TrajectoryPoint(1220, 246.756416471113),
+    TrajectoryPoint(1230, 245.481491213966),
+    TrajectoryPoint(1240, 244.213463050712),
+    TrajectoryPoint(1250, 242.952243743747),
+    TrajectoryPoint(1260, 241.697740646122),
+    TrajectoryPoint(1270, 240.44985722207),
+    TrajectoryPoint(1280, 239.209632109046),
+    TrajectoryPoint(1290, 237.976100333045),
+    TrajectoryPoint(1300, 236.748734462669),
+    TrajectoryPoint(1310, 235.52743696283),
+    TrajectoryPoint(1320, 234.312107813031),
+    TrajectoryPoint(1330, 233.102644858798),
+    TrajectoryPoint(1340, 231.899148143101),
+    TrajectoryPoint(1350, 230.70210125475),
+    TrajectoryPoint(1360, 229.510497033724),
+    TrajectoryPoint(1370, 228.32423530846),
+    TrajectoryPoint(1380, 227.143214659562),
+    TrajectoryPoint(1390, 225.967332653146),
+    TrajectoryPoint(1400, 224.796486053632),
+    TrajectoryPoint(1410, 223.6305710175),
+    TrajectoryPoint(1420, 222.469483269394),
+    TrajectoryPoint(1430, 221.313573631851),
+    TrajectoryPoint(1440, 220.162320333145),
+    TrajectoryPoint(1450, 219.015517101023),
+    TrajectoryPoint(1460, 217.873064097935),
+    TrajectoryPoint(1470, 216.734861427814),
+    TrajectoryPoint(1480, 215.600809249083),
+    TrajectoryPoint(1490, 214.470807876416),
+    TrajectoryPoint(1500, 213.344757872134),
+    TrajectoryPoint(1510, 212.222560128032),
+    TrajectoryPoint(1520, 211.104115938381),
+    TrajectoryPoint(1530, 209.989327064803),
+    TrajectoryPoint(1540, 208.878095793658),
+    TrajectoryPoint(1550, 207.770324986526),
+    TrajectoryPoint(1560, 206.665918124355),
+    TrajectoryPoint(1570, 205.564779345768),
+    TrajectoryPoint(1580, 204.466813479996),
+    TrajectoryPoint(1590, 203.371926074892),
+    TrajectoryPoint(1600, 202.280052476617),
+    TrajectoryPoint(1610, 201.191064672811),
+    TrajectoryPoint(1620, 200.104859932958),
+    TrajectoryPoint(1630, 199.021348750639),
+    TrajectoryPoint(1640, 197.940442312883),
+    TrajectoryPoint(1650, 196.86205562593),
+    TrajectoryPoint(1660, 195.786137099552),
+    TrajectoryPoint(1670, 194.712569311271),
+    TrajectoryPoint(1680, 193.641264899292),
+    TrajectoryPoint(1690, 192.572137303969),
+    TrajectoryPoint(1700, 191.505100762284),
+    TrajectoryPoint(1710, 190.440070300606),
+    TrajectoryPoint(1720, 189.376961725873),
+    TrajectoryPoint(1730, 188.315691615355),
+    TrajectoryPoint(1740, 187.256177305101),
+    TrajectoryPoint(1750, 186.198336877204),
+    TrajectoryPoint(1760, 185.142089145986),
+    TrajectoryPoint(1770, 184.0873536432),
+    TrajectoryPoint(1780, 183.034050602341),
+    TrajectoryPoint(1790, 181.982100942149),
+    TrajectoryPoint(1800, 180.931426249375),
+    TrajectoryPoint(1810, 179.881952264116),
+    TrajectoryPoint(1820, 178.833692019705),
+    TrajectoryPoint(1830, 177.786465792625),
+    TrajectoryPoint(1840, 176.740197073365),
+    TrajectoryPoint(1850, 175.69480994722),
+    TrajectoryPoint(1860, 174.650229072231),
+    TrajectoryPoint(1870, 173.606379656859),
+    TrajectoryPoint(1880, 172.563187437423),
+    TrajectoryPoint(1890, 171.520621497372),
+    TrajectoryPoint(1900, 170.478573071639),
+    TrajectoryPoint(1910, 169.43694699576),
+    TrajectoryPoint(1920, 168.39567047863),
+    TrajectoryPoint(1930, 167.354671149829),
+    TrajectoryPoint(1940, 166.313879971939),
+    TrajectoryPoint(1950, 165.273227305364),
+    TrajectoryPoint(1960, 164.232618979775),
+    TrajectoryPoint(1970, 163.191983715932),
+    TrajectoryPoint(1980, 162.151250534376),
+    TrajectoryPoint(1990, 161.110325488039),
+    TrajectoryPoint(2000, 160.069129163946),
+    TrajectoryPoint(2010, 159.027602941595),
+    TrajectoryPoint(2020, 157.985676466675),
+    TrajectoryPoint(2030, 156.943218845248),
+    TrajectoryPoint(2040, 155.900167480302),
+    TrajectoryPoint(2050, 154.856483100845),
+    TrajectoryPoint(2060, 153.812078919316),
+    TrajectoryPoint(2070, 152.76675790669),
+    TrajectoryPoint(2080, 151.72056936332),
+    TrajectoryPoint(2090, 150.673442925454),
+    TrajectoryPoint(2100, 149.625109367937),
+    TrajectoryPoint(2110, 148.575655930408),
+    TrajectoryPoint(2120, 147.525027091347),
+    TrajectoryPoint(2130, 146.472876870746),
+    TrajectoryPoint(2140, 145.419381345343),
+    TrajectoryPoint(2150, 144.364375488945),
+    TrajectoryPoint(2160, 143.307631266869),
+    TrajectoryPoint(2170, 142.249297524064),
+    TrajectoryPoint(2180, 141.189003542312),
+    TrajectoryPoint(2190, 140.126853059969),
+    TrajectoryPoint(2200, 139.062690870546),
+    TrajectoryPoint(2210, 137.996317707886),
+    TrajectoryPoint(2220, 136.927851187692),
+    TrajectoryPoint(2230, 135.856837786742),
+    TrajectoryPoint(2240, 134.783606516015),
+    TrajectoryPoint(2250, 133.707522851733),
+    TrajectoryPoint(2260, 132.629041457479),
+    TrajectoryPoint(2270, 131.547444083197),
+    TrajectoryPoint(2280, 130.46320134647),
+    TrajectoryPoint(2290, 129.375632335805),
+    TrajectoryPoint(2300, 128.285090070687),
+    TrajectoryPoint(2310, 127.191075855452),
+    TrajectoryPoint(2320, 126.093667564109),
+    TrajectoryPoint(2330, 124.992717666221),
+    TrajectoryPoint(2340, 123.887846971164),
+    TrajectoryPoint(2350, 122.779296861176),
+    TrajectoryPoint(2360, 121.666491476579),
+    TrajectoryPoint(2370, 120.549506439508),
+    TrajectoryPoint(2380, 119.428318792048),
+    TrajectoryPoint(2390, 118.30230731804),
+    TrajectoryPoint(2400, 117.171621151242),
+    TrajectoryPoint(2410, 116.03615107118),
+    TrajectoryPoint(2420, 114.895484945392),
+    TrajectoryPoint(2430, 113.749352150098),
+    TrajectoryPoint(2440, 112.597790206159),
+    TrajectoryPoint(2450, 111.440563380015),
+    TrajectoryPoint(2460, 110.277409434154),
+    TrajectoryPoint(2470, 109.107763053155),
+    TrajectoryPoint(2480, 107.931706963597),
+    TrajectoryPoint(2490, 106.748965503704),
+    TrajectoryPoint(2500, 105.559251121256),
+    TrajectoryPoint(2510, 104.362263839322),
+    TrajectoryPoint(2520, 103.157690681642),
+    TrajectoryPoint(2530, 101.945205055464),
+    TrajectoryPoint(2540, 100.724466089362),
+    TrajectoryPoint(2550, 99.4951179233155),
+    TrajectoryPoint(2560, 98.2567889480153),
+    TrajectoryPoint(2570, 97.0090909900587),
+    TrajectoryPoint(2580, 95.7516184393428),
+    TrajectoryPoint(2590, 94.4839473145945),
+    TrajectoryPoint(2600, 93.2056342625679),
+    TrajectoryPoint(2610, 91.9162154859886),
+    TrajectoryPoint(2620, 90.6152055948366),
+    TrajectoryPoint(2630, 89.3018017230889),
+    TrajectoryPoint(2640, 87.9753903933219),
+    TrajectoryPoint(2650, 86.6356777546464),
+    TrajectoryPoint(2660, 85.2820705869692),
+    TrajectoryPoint(2670, 83.9129745012814),
+    TrajectoryPoint(2680, 82.5285387830767),
+    TrajectoryPoint(2690, 81.127520563678),
+    TrajectoryPoint(2700, 79.7089122698112),
+    TrajectoryPoint(2710, 78.2719627848807),
+    TrajectoryPoint(2720, 76.8153949307389),
+    TrajectoryPoint(2730, 75.3379142968893),
+    TrajectoryPoint(2740, 73.8387339229663),
+    TrajectoryPoint(2750, 72.3157762393546),
+    TrajectoryPoint(2760, 70.7676349973495),
+    TrajectoryPoint(2770, 69.1928131049419),
+    TrajectoryPoint(2780, 67.5892925064193),
+    TrajectoryPoint(2790, 65.9548635684414),
+    TrajectoryPoint(2800, 64.2871027085788),
+    TrajectoryPoint(2810, 62.5833467444262),
+    TrajectoryPoint(2820, 60.8406633936496),
+    TrajectoryPoint(2830, 59.0549231118858),
+    TrajectoryPoint(2840, 57.2224785882852),
+    TrajectoryPoint(2850, 55.3388130681981),
+    TrajectoryPoint(2860, 53.3982348495599),
+    TrajectoryPoint(2870, 51.3937506119402),
+    TrajectoryPoint(2880, 49.3181844314639),
+    TrajectoryPoint(2890, 47.1620417419014),
+    TrajectoryPoint(2900, 44.9132095361844),
+    TrajectoryPoint(2910, 42.5570003205028),
+    TrajectoryPoint(2920, 40.0745212467583),
+    TrajectoryPoint(2930, 37.4409551943101),
+    TrajectoryPoint(2940, 34.6211441018107),
+    TrajectoryPoint(2950, 31.5654688067431),
+    TrajectoryPoint(2960, 28.1982210345552),
+    TrajectoryPoint(2970, 24.3878176075679),
+    TrajectoryPoint(2980, 19.8850692701429),
+    TrajectoryPoint(2990, 14.0382019377923),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t8_open[] = {
+    TrajectoryPoint(0, 482.432419304485),
+    TrajectoryPoint(10, 480.366734302352),
+    TrajectoryPoint(20, 478.294316452994),
+    TrajectoryPoint(30, 476.215266067988),
+    TrajectoryPoint(40, 474.134094650682),
+    TrajectoryPoint(50, 472.037285712667),
+    TrajectoryPoint(60, 469.940476774652),
+    TrajectoryPoint(70, 467.829882625219),
+    TrajectoryPoint(80, 465.714932467905),
+    TrajectoryPoint(90, 463.592104004629),
+    TrajectoryPoint(100, 461.458618557657),
+    TrajectoryPoint(110, 459.322957317805),
+    TrajectoryPoint(120, 457.170530643401),
+    TrajectoryPoint(130, 455.018103968997),
+    TrajectoryPoint(140, 452.849622088485),
+    TrajectoryPoint(150, 450.677835894419),
+    TrajectoryPoint(160, 448.494801852423),
+    TrajectoryPoint(170, 446.303224979792),
+    TrajectoryPoint(180, 444.104932186964),
+    TrajectoryPoint(190, 441.893120071231),
+    TrajectoryPoint(200, 439.678826185846),
+    TrajectoryPoint(210, 437.446320289432),
+    TrajectoryPoint(220, 435.213814393017),
+    TrajectoryPoint(230, 432.961572391933),
+    TrajectoryPoint(240, 430.707899606545),
+    TrajectoryPoint(250, 428.437567964323),
+    TrajectoryPoint(260, 426.162239981063),
+    TrajectoryPoint(270, 423.872940427329),
+    TrajectoryPoint(280, 421.575453072472),
+    TrajectoryPoint(290, 419.26626184561),
+    TrajectoryPoint(300, 416.946094379777),
+    TrajectoryPoint(310, 414.616039522768),
+    TrajectoryPoint(320, 412.272653901052),
+    TrajectoryPoint(330, 409.920712365718),
+    TrajectoryPoint(340, 407.553552456125),
+    TrajectoryPoint(350, 405.178647000026),
+    TrajectoryPoint(360, 402.787137757371),
+    TrajectoryPoint(370, 400.388133616109),
+    TrajectoryPoint(380, 397.971680208288),
+    TrajectoryPoint(390, 395.547381524325),
+    TrajectoryPoint(400, 393.105368407635),
+    TrajectoryPoint(410, 390.654514394909),
+    TrajectoryPoint(420, 388.186304334802),
+    TrajectoryPoint(430, 385.707565156403),
+    TrajectoryPoint(440, 383.212498189762),
+    TrajectoryPoint(450, 380.704470523691),
+    TrajectoryPoint(460, 378.181862858394),
+    TrajectoryPoint(470, 375.643065123916),
+    TrajectoryPoint(480, 373.092207971077),
+    TrajectoryPoint(490, 370.521075185409),
+    TrajectoryPoint(500, 367.941233519292),
+    TrajectoryPoint(510, 365.336111751268),
+    TrajectoryPoint(520, 362.725790765554),
+    TrajectoryPoint(530, 360.085663375322),
+    TrajectoryPoint(540, 357.553510846317),
+    TrajectoryPoint(550, 355.399919575575),
+    TrajectoryPoint(560, 353.259978150606),
+    TrajectoryPoint(570, 351.137314015269),
+    TrajectoryPoint(580, 349.035622353165),
+    TrajectoryPoint(590, 346.943812828319),
+    TrajectoryPoint(600, 344.880724895773),
+    TrajectoryPoint(610, 342.826004985817),
+    TrajectoryPoint(620, 340.795244480765),
+    TrajectoryPoint(630, 338.779602829698),
+    TrajectoryPoint(640, 336.778853448289),
+    TrajectoryPoint(650, 334.802152841558),
+    TrajectoryPoint(660, 332.835028657664),
+    TrajectoryPoint(670, 330.892917978247),
+    TrajectoryPoint(680, 328.964554963966),
+    TrajectoryPoint(690, 327.050964496887),
+    TrajectoryPoint(700, 325.160850064674),
+    TrajectoryPoint(710, 323.281048259448),
+    TrajectoryPoint(720, 321.42270538191),
+    TrajectoryPoint(730, 319.580459832752),
+    TrajectoryPoint(740, 317.748982703256),
+    TrajectoryPoint(750, 315.943331810125),
+    TrajectoryPoint(760, 314.148472022709),
+    TrajectoryPoint(770, 312.368171217432),
+    TrajectoryPoint(780, 310.60904621147),
+    TrajectoryPoint(790, 308.860727503621),
+    TrajectoryPoint(800, 307.129105042963),
+    TrajectoryPoint(810, 305.415307677264),
+    TrajectoryPoint(820, 303.712384189747),
+    TrajectoryPoint(830, 302.026749556044),
+    TrajectoryPoint(840, 300.357015948813),
+    TrajectoryPoint(850, 298.698102828426),
+    TrajectoryPoint(860, 297.055811835381),
+    TrajectoryPoint(870, 295.428678110227),
+    TrajectoryPoint(880, 293.812210186811),
+    TrajectoryPoint(890, 292.210697767046),
+    TrajectoryPoint(900, 290.624552800927),
+    TrajectoryPoint(910, 289.048836953628),
+    TrajectoryPoint(920, 287.485638719373),
+    TrajectoryPoint(930, 285.938770588338),
+    TrajectoryPoint(940, 284.402030655887),
+    TrajectoryPoint(950, 282.875528100405),
+    TrajectoryPoint(960, 281.365431448771),
+    TrajectoryPoint(970, 279.865845567304),
+    TrajectoryPoint(980, 278.376113045761),
+    TrajectoryPoint(990, 276.898681542691),
+    TrajectoryPoint(1000, 275.43441238126),
+    TrajectoryPoint(1010, 273.979583400678),
+    TrajectoryPoint(1020, 272.534220866898),
+    TrajectoryPoint(1030, 271.101990660837),
+    TrajectoryPoint(1040, 269.680217618205),
+    TrajectoryPoint(1050, 268.267458376922),
+    TrajectoryPoint(1060, 266.863702540813),
+    TrajectoryPoint(1070, 265.472477601669),
+    TrajectoryPoint(1080, 264.09050330695),
+    TrajectoryPoint(1090, 262.717059300963),
+    TrajectoryPoint(1100, 261.352108217842),
+    TrajectoryPoint(1110, 259.998076662371),
+    TrajectoryPoint(1120, 258.653182809509),
+    TrajectoryPoint(1130, 257.316302548955),
+    TrajectoryPoint(1140, 255.987379283775),
+    TrajectoryPoint(1150, 254.667085321076),
+    TrajectoryPoint(1160, 253.356588638433),
+    TrajectoryPoint(1170, 252.053573705757),
+    TrajectoryPoint(1180, 250.757970719773),
+    TrajectoryPoint(1190, 249.469703043619),
+    TrajectoryPoint(1200, 248.189575128404),
+    TrajectoryPoint(1210, 246.917814074136),
+    TrajectoryPoint(1220, 245.65292254615),
+    TrajectoryPoint(1230, 244.394816921711),
+    TrajectoryPoint(1240, 243.14340893698),
+    TrajectoryPoint(1250, 241.898606215616),
+    TrajectoryPoint(1260, 240.661893975167),
+    TrajectoryPoint(1270, 239.431472135603),
+    TrajectoryPoint(1280, 238.207209705201),
+    TrajectoryPoint(1290, 236.989012631021),
+    TrajectoryPoint(1300, 235.776784191496),
+    TrajectoryPoint(1310, 234.57042535596),
+    TrajectoryPoint(1320, 233.370641788231),
+    TrajectoryPoint(1330, 232.176745727493),
+    TrajectoryPoint(1340, 230.988301496816),
+    TrajectoryPoint(1350, 229.8052115384),
+    TrajectoryPoint(1360, 228.627376906451),
+    TrajectoryPoint(1370, 227.454697507523),
+    TrajectoryPoint(1380, 226.287072320119),
+    TrajectoryPoint(1390, 225.12439959503),
+    TrajectoryPoint(1400, 223.967199778985),
+    TrajectoryPoint(1410, 222.814701736747),
+    TrajectoryPoint(1420, 221.666778010186),
+    TrajectoryPoint(1430, 220.52333070547),
+    TrajectoryPoint(1440, 219.384261651317),
+    TrajectoryPoint(1450, 218.249472529422),
+    TrajectoryPoint(1460, 217.118864992508),
+    TrajectoryPoint(1470, 215.992340770928),
+    TrajectoryPoint(1480, 214.869801768683),
+    TrajectoryPoint(1490, 213.751150149674),
+    TrajectoryPoint(1500, 212.636288414936),
+    TrajectoryPoint(1510, 211.525119471543),
+    TrajectoryPoint(1520, 210.417733039504),
+    TrajectoryPoint(1530, 209.3138269912),
+    TrajectoryPoint(1540, 208.213293837029),
+    TrajectoryPoint(1550, 207.116041366406),
+    TrajectoryPoint(1560, 206.021977859575),
+    TrajectoryPoint(1570, 204.931012128332),
+    TrajectoryPoint(1580, 203.84305355147),
+    TrajectoryPoint(1590, 202.758012105371),
+    TrajectoryPoint(1600, 201.675798390122),
+    TrajectoryPoint(1610, 200.59632365152),
+    TrajectoryPoint(1620, 199.519499799284),
+    TrajectoryPoint(1630, 198.445239421789),
+    TrajectoryPoint(1640, 197.373455797593),
+    TrajectoryPoint(1650, 196.304062904022),
+    TrajectoryPoint(1660, 195.23697542306),
+    TrajectoryPoint(1670, 194.172108744745),
+    TrajectoryPoint(1680, 193.109378968298),
+    TrajectoryPoint(1690, 192.048702901159),
+    TrajectoryPoint(1700, 190.989998056105),
+    TrajectoryPoint(1710, 189.933182646619),
+    TrajectoryPoint(1720, 188.878198737529),
+    TrajectoryPoint(1730, 187.825008931333),
+    TrajectoryPoint(1740, 186.773465699824),
+    TrajectoryPoint(1750, 185.723489081294),
+    TrajectoryPoint(1760, 184.674999812504),
+    TrajectoryPoint(1770, 183.627919313434),
+    TrajectoryPoint(1780, 182.582169671262),
+    TrajectoryPoint(1790, 181.537673623624),
+    TrajectoryPoint(1800, 180.494354541248),
+    TrajectoryPoint(1810, 179.452136409997),
+    TrajectoryPoint(1820, 178.410943812389),
+    TrajectoryPoint(1830, 177.370725174022),
+    TrajectoryPoint(1840, 176.331440980936),
+    TrajectoryPoint(1850, 175.29294821838),
+    TrajectoryPoint(1860, 174.255173153992),
+    TrajectoryPoint(1870, 173.218042569694),
+    TrajectoryPoint(1880, 172.181483739586),
+    TrajectoryPoint(1890, 171.145424407669),
+    TrajectoryPoint(1900, 170.109817008199),
+    TrajectoryPoint(1910, 169.074575339921),
+    TrajectoryPoint(1920, 168.03960330826),
+    TrajectoryPoint(1930, 167.004829928339),
+    TrajectoryPoint(1940, 165.970184577777),
+    TrajectoryPoint(1950, 164.935596157115),
+    TrajectoryPoint(1960, 163.900981744439),
+    TrajectoryPoint(1970, 162.866266920333),
+    TrajectoryPoint(1980, 161.831381939927),
+    TrajectoryPoint(1990, 160.796257301571),
+    TrajectoryPoint(2000, 159.760767437266),
+    TrajectoryPoint(2010, 158.724873467251),
+    TrajectoryPoint(2020, 157.688511580146),
+    TrajectoryPoint(2030, 156.651606632146),
+    TrajectoryPoint(2040, 155.61398018234),
+    TrajectoryPoint(2050, 154.575656235319),
+    TrajectoryPoint(2060, 153.536565658177),
+    TrajectoryPoint(2070, 152.49653209329),
+    TrajectoryPoint(2080, 151.455507984514),
+    TrajectoryPoint(2090, 150.413485421677),
+    TrajectoryPoint(2100, 149.37028128537),
+    TrajectoryPoint(2110, 148.325804102124),
+    TrajectoryPoint(2120, 147.280093676593),
+    TrajectoryPoint(2130, 146.232899901482),
+    TrajectoryPoint(2140, 145.184199881882),
+    TrajectoryPoint(2150, 144.134028009305),
+    TrajectoryPoint(2160, 143.08197577587),
+    TrajectoryPoint(2170, 142.028263812445),
+    TrajectoryPoint(2180, 140.97265036563),
+    TrajectoryPoint(2190, 139.915005993894),
+    TrajectoryPoint(2200, 138.855418961864),
+    TrajectoryPoint(2210, 137.793438922855),
+    TrajectoryPoint(2220, 136.72938857102),
+    TrajectoryPoint(2230, 135.662711664391),
+    TrajectoryPoint(2240, 134.593727140872),
+    TrajectoryPoint(2250, 133.521936658692),
+    TrajectoryPoint(2260, 132.447585887956),
+    TrajectoryPoint(2270, 131.370188059917),
+    TrajectoryPoint(2280, 130.290024994876),
+    TrajectoryPoint(2290, 129.206499745392),
+    TrajectoryPoint(2300, 128.120011668018),
+    TrajectoryPoint(2310, 127.029863000871),
+    TrajectoryPoint(2320, 125.936406895458),
+    TrajectoryPoint(2330, 124.839223882823),
+    TrajectoryPoint(2340, 123.738204301365),
+    TrajectoryPoint(2350, 122.633458586322),
+    TrajectoryPoint(2360, 121.524270121248),
+    TrajectoryPoint(2370, 120.410989412811),
+    TrajectoryPoint(2380, 119.293417062541),
+    TrajectoryPoint(2390, 118.170918912305),
+    TrajectoryPoint(2400, 117.043791173909),
+    TrajectoryPoint(2410, 115.911832382551),
+    TrajectoryPoint(2420, 114.774496155249),
+    TrajectoryPoint(2430, 113.631777118127),
+    TrajectoryPoint(2440, 112.483581852022),
+    TrajectoryPoint(2450, 111.329674494512),
+    TrajectoryPoint(2460, 110.169664062161),
+    TrajectoryPoint(2470, 109.003241349627),
+    TrajectoryPoint(2480, 107.830361960994),
+    TrajectoryPoint(2490, 106.65075018957),
+    TrajectoryPoint(2500, 105.464118461849),
+    TrajectoryPoint(2510, 104.270166801199),
+    TrajectoryPoint(2520, 103.068582251414),
+    TrajectoryPoint(2530, 101.859038257902),
+    TrajectoryPoint(2540, 100.64119400404),
+    TrajectoryPoint(2550, 99.4146936999291),
+    TrajectoryPoint(2560, 98.1791658205251),
+    TrajectoryPoint(2570, 96.9342222897745),
+    TrajectoryPoint(2580, 95.6794576070614),
+    TrajectoryPoint(2590, 94.4144479118905),
+    TrajectoryPoint(2600, 93.1387499823229),
+    TrajectoryPoint(2610, 91.8519001622385),
+    TrajectoryPoint(2620, 90.5534132120059),
+    TrajectoryPoint(2630, 89.2425876277869),
+    TrajectoryPoint(2640, 87.918603855618),
+    TrajectoryPoint(2650, 86.5812730936994),
+    TrajectoryPoint(2660, 85.2300023137453),
+    TrajectoryPoint(2670, 83.8632890123968),
+    TrajectoryPoint(2680, 82.4810946715773),
+    TrajectoryPoint(2690, 81.0823614150301),
+    TrajectoryPoint(2700, 79.6658996781679),
+    TrajectoryPoint(2710, 78.2311363210671),
+    TrajectoryPoint(2720, 76.7766205630051),
+    TrajectoryPoint(2730, 75.3012265183905),
+    TrajectoryPoint(2740, 73.8040824780579),
+    TrajectoryPoint(2750, 72.2830332295862),
+    TrajectoryPoint(2760, 70.7368279249012),
+    TrajectoryPoint(2770, 69.1638909264375),
+    TrajectoryPoint(2780, 67.5622038809035),
+    TrajectoryPoint(2790, 65.9295569133427),
+    TrajectoryPoint(2800, 64.2635262525964),
+    TrajectoryPoint(2810, 62.5614485776395),
+    TrajectoryPoint(2820, 60.8203915151314),
+    TrajectoryPoint(2830, 59.0362817765735),
+    TrajectoryPoint(2840, 57.2053555670495),
+    TrajectoryPoint(2850, 55.3232074092806),
+    TrajectoryPoint(2860, 53.3840387173703),
+    TrajectoryPoint(2870, 51.3809566746338),
+    TrajectoryPoint(2880, 49.3067333411177),
+    TrajectoryPoint(2890, 47.1518735542573),
+    TrajectoryPoint(2900, 44.9043020177021),
+    TrajectoryPoint(2910, 42.5492507851539),
+    TrajectoryPoint(2920, 40.0679004069758),
+    TrajectoryPoint(2930, 37.4353943110974),
+    TrajectoryPoint(2940, 34.6166001004217),
+    TrajectoryPoint(2950, 31.5618642795822),
+    TrajectoryPoint(2960, 28.195497580552),
+    TrajectoryPoint(2970, 24.3858873695873),
+    TrajectoryPoint(2980, 19.8838694619109),
+    TrajectoryPoint(2990, 14.0376529473327),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t9_open[] = {
+    TrajectoryPoint(0, 478.278547728422),
+    TrajectoryPoint(10, 476.211500029465),
+    TrajectoryPoint(20, 474.136178146084),
+    TrajectoryPoint(30, 472.056290888838),
+    TrajectoryPoint(40, 469.971428207939),
+    TrajectoryPoint(50, 467.873729866974),
+    TrajectoryPoint(60, 465.776031526009),
+    TrajectoryPoint(70, 463.661251221006),
+    TrajectoryPoint(80, 461.545357958572),
+    TrajectoryPoint(90, 459.417885897606),
+    TrajectoryPoint(100, 457.283402422459),
+    TrajectoryPoint(110, 455.142624434551),
+    TrajectoryPoint(120, 452.989143536112),
+    TrajectoryPoint(130, 450.834414906302),
+    TrajectoryPoint(140, 448.661516964976),
+    TrajectoryPoint(150, 446.48861902365),
+    TrajectoryPoint(160, 444.299413213795),
+    TrajectoryPoint(170, 442.106665685941),
+    TrajectoryPoint(180, 439.901675280017),
+    TrajectoryPoint(190, 437.688632156),
+    TrajectoryPoint(200, 435.467096158021),
+    TrajectoryPoint(210, 433.233297391626),
+    TrajectoryPoint(220, 430.994416183029),
+    TrajectoryPoint(230, 428.739387090409),
+    TrajectoryPoint(240, 426.482320202574),
+    TrajectoryPoint(250, 424.205570828753),
+    TrajectoryPoint(260, 421.928821454933),
+    TrajectoryPoint(270, 419.63045901318),
+    TrajectoryPoint(280, 417.331483463991),
+    TrajectoryPoint(290, 415.012599629394),
+    TrajectoryPoint(300, 412.690875366555),
+    TrajectoryPoint(310, 410.350474773329),
+    TrajectoryPoint(320, 408.005461870203),
+    TrajectoryPoint(330, 405.64249694696),
+    TrajectoryPoint(340, 403.273637302319),
+    TrajectoryPoint(350, 400.887005100071),
+    TrajectoryPoint(360, 398.493721607004),
+    TrajectoryPoint(370, 396.082260397478),
+    TrajectoryPoint(380, 393.663956064328),
+    TrajectoryPoint(390, 391.226441689245),
+    TrajectoryPoint(400, 388.782498709209),
+    TrajectoryPoint(410, 386.317640659335),
+    TrajectoryPoint(420, 383.847419425095),
+    TrajectoryPoint(430, 381.353856625769),
+    TrajectoryPoint(440, 378.856694685211),
+    TrajectoryPoint(450, 376.332990962789),
+    TrajectoryPoint(460, 373.805968806575),
+    TrajectoryPoint(470, 371.252841112584),
+    TrajectoryPoint(480, 368.693298395491),
+    TrajectoryPoint(490, 366.111094150961),
+    TrajectoryPoint(500, 363.517366273052),
+    TrajectoryPoint(510, 360.905319867744),
+    TrajectoryPoint(520, 358.562139740762),
+    TrajectoryPoint(530, 356.417404465994),
+    TrajectoryPoint(540, 354.296432124676),
+    TrajectoryPoint(550, 352.182400328728),
+    TrajectoryPoint(560, 350.098117929582),
+    TrajectoryPoint(570, 348.021765758857),
+    TrajectoryPoint(580, 345.967569559375),
+    TrajectoryPoint(590, 343.929185229801),
+    TrajectoryPoint(600, 341.904841222673),
+    TrajectoryPoint(610, 339.904516207286),
+    TrajectoryPoint(620, 337.913030082638),
+    TrajectoryPoint(630, 335.947352483533),
+    TrajectoryPoint(640, 333.994057160077),
+    TrajectoryPoint(650, 332.057057505269),
+    TrajectoryPoint(660, 330.141626498005),
+    TrajectoryPoint(670, 328.235987061237),
+    TrajectoryPoint(680, 326.354774939281),
+    TrajectoryPoint(690, 324.486565633175),
+    TrajectoryPoint(700, 322.632388337983),
+    TrajectoryPoint(710, 320.800978853921),
+    TrajectoryPoint(720, 318.979858035),
+    TrajectoryPoint(730, 317.177903945648),
+    TrajectoryPoint(740, 315.39272865858),
+    TrajectoryPoint(750, 313.618163296168),
+    TrajectoryPoint(760, 311.865872492707),
+    TrajectoryPoint(770, 310.126201386254),
+    TrajectoryPoint(780, 308.397764262136),
+    TrajectoryPoint(790, 306.692075701567),
+    TrajectoryPoint(800, 304.996879116948),
+    TrajectoryPoint(810, 303.314191679415),
+    TrajectoryPoint(820, 301.651720428767),
+    TrajectoryPoint(830, 299.999726346608),
+    TrajectoryPoint(840, 298.360209912748),
+    TrajectoryPoint(850, 296.739598904127),
+    TrajectoryPoint(860, 295.12934855463),
+    TrajectoryPoint(870, 293.530491690323),
+    TrajectoryPoint(880, 291.950229677145),
+    TrajectoryPoint(890, 290.380128186566),
+    TrajectoryPoint(900, 288.820350627951),
+    TrajectoryPoint(910, 287.277976945634),
+    TrajectoryPoint(920, 285.746337475045),
+    TrajectoryPoint(930, 284.224713492855),
+    TrajectoryPoint(940, 282.717148462183),
+    TrajectoryPoint(950, 281.222229413559),
+    TrajectoryPoint(960, 279.736972575034),
+    TrajectoryPoint(970, 278.262073646057),
+    TrajectoryPoint(980, 276.802109176751),
+    TrajectoryPoint(990, 275.351421485093),
+    TrajectoryPoint(1000, 273.910047568257),
+    TrajectoryPoint(1010, 272.480388665787),
+    TrajectoryPoint(1020, 271.062482861403),
+    TrajectoryPoint(1030, 269.653462081901),
+    TrajectoryPoint(1040, 268.253325414814),
+    TrajectoryPoint(1050, 266.864743598368),
+    TrajectoryPoint(1060, 265.486307834605),
+    TrajectoryPoint(1070, 264.116303320306),
+    TrajectoryPoint(1080, 262.754700911756),
+    TrajectoryPoint(1090, 261.403407410393),
+    TrajectoryPoint(1100, 260.061814759537),
+    TrajectoryPoint(1110, 258.728161864122),
+    TrajectoryPoint(1120, 257.402399165612),
+    TrajectoryPoint(1130, 256.084953948957),
+    TrajectoryPoint(1140, 254.777597184355),
+    TrajectoryPoint(1150, 253.477669500875),
+    TrajectoryPoint(1160, 252.185107069754),
+    TrajectoryPoint(1170, 250.899838946819),
+    TrajectoryPoint(1180, 249.622722774112),
+    TrajectoryPoint(1190, 248.353968216479),
+    TrajectoryPoint(1200, 247.092053232479),
+    TrajectoryPoint(1210, 245.836898993923),
+    TrajectoryPoint(1220, 244.588421789969),
+    TrajectoryPoint(1230, 243.346763457361),
+    TrajectoryPoint(1240, 242.113049645146),
+    TrajectoryPoint(1250, 240.885574207344),
+    TrajectoryPoint(1260, 239.664249970017),
+    TrajectoryPoint(1270, 238.44898649968),
+    TrajectoryPoint(1280, 237.23969050265),
+    TrajectoryPoint(1290, 236.036397006985),
+    TrajectoryPoint(1300, 234.839931940379),
+    TrajectoryPoint(1310, 233.649019685451),
+    TrajectoryPoint(1320, 232.463567205621),
+    TrajectoryPoint(1330, 231.283479659242),
+    TrajectoryPoint(1340, 230.108660669765),
+    TrajectoryPoint(1350, 228.939012573411),
+    TrajectoryPoint(1360, 227.774436645889),
+    TrajectoryPoint(1370, 226.615445809232),
+    TrajectoryPoint(1380, 225.461388458994),
+    TrajectoryPoint(1390, 224.31202484224),
+    TrajectoryPoint(1400, 223.167259415197),
+    TrajectoryPoint(1410, 222.026996108553),
+    TrajectoryPoint(1420, 220.891138477002),
+    TrajectoryPoint(1430, 219.759589835196),
+    TrajectoryPoint(1440, 218.632253381067),
+    TrajectoryPoint(1450, 217.509032307502),
+    TrajectoryPoint(1460, 216.389829903194),
+    TrajectoryPoint(1470, 215.274735584944),
+    TrajectoryPoint(1480, 214.163565474396),
+    TrajectoryPoint(1490, 213.056083062091),
+    TrajectoryPoint(1500, 211.952196148293),
+    TrajectoryPoint(1510, 210.851812805912),
+    TrajectoryPoint(1520, 209.754841443641),
+    TrajectoryPoint(1530, 208.661190862187),
+    TrajectoryPoint(1540, 207.570770304126),
+    TrajectoryPoint(1550, 206.483489497888),
+    TrajectoryPoint(1560, 205.399258696307),
+    TrajectoryPoint(1570, 204.317988710172),
+    TrajectoryPoint(1580, 203.239590937173),
+    TrajectoryPoint(1590, 202.16397738659),
+    TrajectoryPoint(1600, 201.091060700075),
+    TrajectoryPoint(1610, 200.020754168828),
+    TrajectoryPoint(1620, 198.952971747463),
+    TrajectoryPoint(1630, 197.887628064821),
+    TrajectoryPoint(1640, 196.824638431975),
+    TrajectoryPoint(1650, 195.763918847664),
+    TrajectoryPoint(1660, 194.705386001358),
+    TrajectoryPoint(1670, 193.648957274144),
+    TrajectoryPoint(1680, 192.594550737615),
+    TrajectoryPoint(1690, 191.542085150937),
+    TrajectoryPoint(1700, 190.491479956223),
+    TrajectoryPoint(1710, 189.442655272378),
+    TrajectoryPoint(1720, 188.395531887526),
+    TrajectoryPoint(1730, 187.350031250149),
+    TrajectoryPoint(1740, 186.306075459043),
+    TrajectoryPoint(1750, 185.263587252192),
+    TrajectoryPoint(1760, 184.22257834641),
+    TrajectoryPoint(1770, 183.182884088986),
+    TrajectoryPoint(1780, 182.144423437366),
+    TrajectoryPoint(1790, 181.107120862674),
+    TrajectoryPoint(1800, 180.070901435236),
+    TrajectoryPoint(1810, 179.035690806653),
+    TrajectoryPoint(1820, 178.001415191414),
+    TrajectoryPoint(1830, 176.968001348094),
+    TrajectoryPoint(1840, 175.935376560164),
+    TrajectoryPoint(1850, 174.903521457037),
+    TrajectoryPoint(1860, 173.872318583998),
+    TrajectoryPoint(1870, 172.841676899671),
+    TrajectoryPoint(1880, 171.8115251387),
+    TrajectoryPoint(1890, 170.781792472125),
+    TrajectoryPoint(1900, 169.75240848545),
+    TrajectoryPoint(1910, 168.723316718141),
+    TrajectoryPoint(1920, 167.694435952139),
+    TrajectoryPoint(1930, 166.665678587122),
+    TrajectoryPoint(1940, 165.636975283328),
+    TrajectoryPoint(1950, 164.608257008322),
+    TrajectoryPoint(1960, 163.579443098681),
+    TrajectoryPoint(1970, 162.550450918036),
+    TrajectoryPoint(1980, 161.52121932179),
+    TrajectoryPoint(1990, 160.491679949716),
+    TrajectoryPoint(2000, 159.461745815048),
+    TrajectoryPoint(2010, 158.431297695513),
+    TrajectoryPoint(2020, 157.400316749897),
+    TrajectoryPoint(2030, 156.368734921188),
+    TrajectoryPoint(2040, 155.336415481238),
+    TrajectoryPoint(2050, 154.303276223903),
+    TrajectoryPoint(2060, 153.26930941469),
+    TrajectoryPoint(2070, 152.234418560403),
+    TrajectoryPoint(2080, 151.198390692574),
+    TrajectoryPoint(2090, 150.161306216899),
+    TrajectoryPoint(2100, 149.12307544443),
+    TrajectoryPoint(2110, 148.083413521095),
+    TrajectoryPoint(2120, 147.042462786841),
+    TrajectoryPoint(2130, 146.000074817725),
+    TrajectoryPoint(2140, 144.956016169875),
+    TrajectoryPoint(2150, 143.910432507446),
+    TrajectoryPoint(2160, 142.86302085654),
+    TrajectoryPoint(2170, 141.813783074681),
+    TrajectoryPoint(2180, 140.762708157439),
+    TrajectoryPoint(2190, 139.709426568294),
+    TrajectoryPoint(2200, 138.654204582747),
+    TrajectoryPoint(2210, 137.596549855736),
+    TrajectoryPoint(2220, 136.53670532252),
+    TrajectoryPoint(2230, 135.474304678838),
+    TrajectoryPoint(2240, 134.409420927981),
+    TrajectoryPoint(2250, 133.341806276512),
+    TrajectoryPoint(2260, 132.271453577915),
+    TrajectoryPoint(2270, 131.198131677988),
+    TrajectoryPoint(2280, 130.121866247956),
+    TrajectoryPoint(2290, 129.04231767556),
+    TrajectoryPoint(2300, 127.959680582777),
+    TrajectoryPoint(2310, 126.873358481043),
+    TrajectoryPoint(2320, 125.783735788258),
+    TrajectoryPoint(2330, 124.690203065621),
+    TrajectoryPoint(2340, 123.592919112812),
+    TrajectoryPoint(2350, 122.491752178433),
+    TrajectoryPoint(2360, 121.386180834529),
+    TrajectoryPoint(2370, 120.276493648523),
+    TrajectoryPoint(2380, 119.162336533532),
+    TrajectoryPoint(2390, 118.043336129891),
+    TrajectoryPoint(2400, 116.919660689373),
+    TrajectoryPoint(2410, 115.791108518486),
+    TrajectoryPoint(2420, 114.657000788222),
+    TrajectoryPoint(2430, 113.517594025613),
+    TrajectoryPoint(2440, 112.37266542314),
+    TrajectoryPoint(2450, 111.221978998853),
+    TrajectoryPoint(2460, 110.065017028763),
+    TrajectoryPoint(2470, 108.901722568979),
+    TrajectoryPoint(2480, 107.731925939518),
+    TrajectoryPoint(2490, 106.5553513929),
+    TrajectoryPoint(2500, 105.371711337064),
+    TrajectoryPoint(2510, 104.18070579714),
+    TrajectoryPoint(2520, 102.982021837292),
+    TrajectoryPoint(2530, 101.775332940371),
+    TrajectoryPoint(2540, 100.560298342896),
+    TrajectoryPoint(2550, 99.3365623225769),
+    TrajectoryPoint(2560, 98.1037534353411),
+    TrajectoryPoint(2570, 96.8614836984831),
+    TrajectoryPoint(2580, 95.6093477162258),
+    TrajectoryPoint(2590, 94.3469217436098),
+    TrajectoryPoint(2600, 93.0737626842191),
+    TrajectoryPoint(2610, 91.7894070168044),
+    TrajectoryPoint(2620, 90.4933696453812),
+    TrajectoryPoint(2630, 89.185048184399),
+    TrajectoryPoint(2640, 87.8634215534808),
+    TrajectoryPoint(2650, 86.5284036778613),
+    TrajectoryPoint(2660, 85.1794017123534),
+    TrajectoryPoint(2670, 83.8150029297168),
+    TrajectoryPoint(2680, 82.4349853164742),
+    TrajectoryPoint(2690, 81.0384716850518),
+    TrajectoryPoint(2700, 79.6240947661602),
+    TrajectoryPoint(2710, 78.1914551614109),
+    TrajectoryPoint(2720, 76.7389326509665),
+    TrajectoryPoint(2730, 75.2655658027758),
+    TrajectoryPoint(2740, 73.7704001911862),
+    TrajectoryPoint(2750, 72.2512048964613),
+    TrajectoryPoint(2760, 70.7068806270656),
+    TrajectoryPoint(2770, 69.1357751310688),
+    TrajectoryPoint(2780, 67.5358697659312),
+    TrajectoryPoint(2790, 65.9049544211068),
+    TrajectoryPoint(2800, 64.2406051406011),
+    TrajectoryPoint(2810, 62.5401584666845),
+    TrajectoryPoint(2820, 60.8006819350896),
+    TrajectoryPoint(2830, 59.0181570553473),
+    TrajectoryPoint(2840, 57.1887065593569),
+    TrajectoryPoint(2850, 55.308033353097),
+    TrajectoryPoint(2860, 53.370234757043),
+    TrajectoryPoint(2870, 51.3685158229248),
+    TrajectoryPoint(2880, 49.2955979533709),
+    TrajectoryPoint(2890, 47.1419854043448),
+    TrajectoryPoint(2900, 44.8956395842352),
+    TrajectoryPoint(2910, 42.5417142333501),
+    TrajectoryPoint(2920, 40.0614613401445),
+    TrajectoryPoint(2930, 37.4299859314421),
+    TrajectoryPoint(2940, 34.612180581639),
+    TrajectoryPoint(2950, 31.5583583824579),
+    TrajectoryPoint(2960, 28.1928485568192),
+    TrajectoryPoint(2970, 24.384009809099),
+    TrajectoryPoint(2980, 19.8827023441736),
+    TrajectoryPoint(2990, 14.0371188822043),
+    TrajectoryPoint(3000, 0),
+};
+TrajectoryPoint t10_open[] = {
+    TrajectoryPoint(0, 473.862370607181),
+    TrajectoryPoint(10, 471.812107673286),
+    TrajectoryPoint(20, 469.75170401644),
+    TrajectoryPoint(30, 467.689754885253),
+    TrajectoryPoint(40, 465.618663319797),
+    TrajectoryPoint(50, 463.539204598359),
+    TrajectoryPoint(60, 461.456156906346),
+    TrajectoryPoint(70, 459.358814578742),
+    TrajectoryPoint(80, 457.261472251139),
+    TrajectoryPoint(90, 455.147626991193),
+    TrajectoryPoint(100, 453.032015978972),
+    TrajectoryPoint(110, 450.904644445322),
+    TrajectoryPoint(120, 448.770368161546),
+    TrajectoryPoint(130, 446.628828002124),
+    TrajectoryPoint(140, 444.475477882792),
+    TrajectoryPoint(150, 442.319095057522),
+    TrajectoryPoint(160, 440.146250068972),
+    TrajectoryPoint(170, 437.97340508042),
+    TrajectoryPoint(180, 435.781543214765),
+    TrajectoryPoint(190, 433.588769335547),
+    TrajectoryPoint(200, 431.380166966152),
+    TrajectoryPoint(210, 429.167016641793),
+    TrajectoryPoint(220, 426.940879549478),
+    TrajectoryPoint(230, 424.706891118391),
+    TrajectoryPoint(240, 422.4623850352),
+    TrajectoryPoint(250, 420.207082123903),
+    TrajectoryPoint(260, 417.943330423789),
+    TrajectoryPoint(270, 415.666221309441),
+    TrajectoryPoint(280, 413.382302540208),
+    TrajectoryPoint(290, 411.08287947831),
+    TrajectoryPoint(300, 408.777824722146),
+    TrajectoryPoint(310, 406.455563237102),
+    TrajectoryPoint(320, 404.128353285884),
+    TrajectoryPoint(330, 401.782711421941),
+    TrajectoryPoint(340, 399.432273752213),
+    TrajectoryPoint(350, 397.062691282078),
+    TrajectoryPoint(360, 394.68789681321),
+    TrajectoryPoint(370, 392.293794401449),
+    TrajectoryPoint(380, 389.893454018892),
+    TrajectoryPoint(390, 387.474232336979),
+    TrajectoryPoint(400, 385.047093160835),
+    TrajectoryPoint(410, 382.602131950451),
+    TrajectoryPoint(420, 380.146873327645),
+    TrajectoryPoint(430, 377.675530408554),
+    TrajectoryPoint(440, 375.190759604773),
+    TrajectoryPoint(450, 372.692369823294),
+    TrajectoryPoint(460, 370.176617388514),
+    TrajectoryPoint(470, 367.650491502265),
+    TrajectoryPoint(480, 365.10220628103),
+    TrajectoryPoint(490, 362.547629775254),
+    TrajectoryPoint(500, 359.96517352999),
+    TrajectoryPoint(510, 357.455093724086),
+    TrajectoryPoint(520, 355.348197134573),
+    TrajectoryPoint(530, 353.252393456111),
+    TrajectoryPoint(540, 351.175078400194),
+    TrajectoryPoint(550, 349.115878760635),
+    TrajectoryPoint(560, 347.068068456201),
+    TrajectoryPoint(570, 345.045800289188),
+    TrajectoryPoint(580, 343.031547422433),
+    TrajectoryPoint(590, 341.042113320263),
+    TrajectoryPoint(600, 339.065240520618),
+    TrajectoryPoint(610, 337.104510448929),
+    TrajectoryPoint(620, 335.16489310986),
+    TrajectoryPoint(630, 333.234438315107),
+    TrajectoryPoint(640, 331.329820650795),
+    TrajectoryPoint(650, 329.436465099355),
+    TrajectoryPoint(660, 327.559156619376),
+    TrajectoryPoint(670, 325.702428142714),
+    TrajectoryPoint(680, 323.85557052489),
+    TrajectoryPoint(690, 322.03120515252),
+    TrajectoryPoint(700, 320.22034174233),
+    TrajectoryPoint(710, 318.42156035764),
+    TrajectoryPoint(720, 316.645977843989),
+    TrajectoryPoint(730, 314.880556091739),
+    TrajectoryPoint(740, 313.131088455255),
+    TrajectoryPoint(750, 311.399977152901),
+    TrajectoryPoint(760, 309.679234135061),
+    TrajectoryPoint(770, 307.976559372075),
+    TrajectoryPoint(780, 306.289002002157),
+    TrajectoryPoint(790, 304.611889946481),
+    TrajectoryPoint(800, 302.953480918199),
+    TrajectoryPoint(810, 301.30831584618),
+    TrajectoryPoint(820, 299.673558817451),
+    TrajectoryPoint(830, 298.056926497617),
+    TrajectoryPoint(840, 296.452799902787),
+    TrajectoryPoint(850, 294.858947677273),
+    TrajectoryPoint(860, 293.281672151523),
+    TrajectoryPoint(870, 291.717086660583),
+    TrajectoryPoint(880, 290.162563165204),
+    TrajectoryPoint(890, 288.622314355422),
+    TrajectoryPoint(900, 287.095672187055),
+    TrajectoryPoint(910, 285.578817365454),
+    TrajectoryPoint(920, 284.073367989725),
+    TrajectoryPoint(930, 282.583007864105),
+    TrajectoryPoint(940, 281.102112770061),
+    TrajectoryPoint(950, 279.630758236028),
+    TrajectoryPoint(960, 278.173573340556),
+    TrajectoryPoint(970, 276.726908807597),
+    TrajectoryPoint(980, 275.289399903134),
+    TrajectoryPoint(990, 273.861933024617),
+    TrajectoryPoint(1000, 272.447772545876),
+    TrajectoryPoint(1010, 271.042363211029),
+    TrajectoryPoint(1020, 269.645713857881),
+    TrajectoryPoint(1030, 268.259416145023),
+    TrajectoryPoint(1040, 266.884388927358),
+    TrajectoryPoint(1050, 265.517689457257),
+    TrajectoryPoint(1060, 264.159297075147),
+    TrajectoryPoint(1070, 262.810401456445),
+    TrajectoryPoint(1080, 261.471973382954),
+    TrajectoryPoint(1090, 260.141407378488),
+    TrajectoryPoint(1100, 258.818661167124),
+    TrajectoryPoint(1110, 257.50374196031),
+    TrajectoryPoint(1120, 256.19938316929),
+    TrajectoryPoint(1130, 254.902397498311),
+    TrajectoryPoint(1140, 253.612727313536),
+    TrajectoryPoint(1150, 252.330307574502),
+    TrajectoryPoint(1160, 251.055901535551),
+    TrajectoryPoint(1170, 249.790004566058),
+    TrajectoryPoint(1180, 248.530914611193),
+    TrajectoryPoint(1190, 247.278557822622),
+    TrajectoryPoint(1200, 246.032855218356),
+    TrajectoryPoint(1210, 244.79409852499),
+    TrajectoryPoint(1220, 243.563189267312),
+    TrajectoryPoint(1230, 242.338504308903),
+    TrajectoryPoint(1240, 241.119960447176),
+    TrajectoryPoint(1250, 239.907471011398),
+    TrajectoryPoint(1260, 238.700946270742),
+    TrajectoryPoint(1270, 237.500795833456),
+    TrajectoryPoint(1280, 236.307150610324),
+    TrajectoryPoint(1290, 235.11906179317),
+    TrajectoryPoint(1300, 233.936439330976),
+    TrajectoryPoint(1310, 232.7591912061),
+    TrajectoryPoint(1320, 231.587223712272),
+    TrajectoryPoint(1330, 230.420441709896),
+    TrajectoryPoint(1340, 229.259148539798),
+    TrajectoryPoint(1350, 228.103232170912),
+    TrajectoryPoint(1360, 226.952123313007),
+    TrajectoryPoint(1370, 225.805729230627),
+    TrajectoryPoint(1380, 224.663956382881),
+    TrajectoryPoint(1390, 223.526710593903),
+    TrajectoryPoint(1400, 222.393897208411),
+    TrajectoryPoint(1410, 221.265421233403),
+    TrajectoryPoint(1420, 220.141187467015),
+    TrajectoryPoint(1430, 219.021233023768),
+    TrajectoryPoint(1440, 217.905588185767),
+    TrajectoryPoint(1450, 216.793848586491),
+    TrajectoryPoint(1460, 215.685923056781),
+    TrajectoryPoint(1470, 214.581720479421),
+    TrajectoryPoint(1480, 213.481149872129),
+    TrajectoryPoint(1490, 212.384120462279),
+    TrajectoryPoint(1500, 211.290541753955),
+    TrajectoryPoint(1510, 210.20032358792),
+    TrajectoryPoint(1520, 209.113376195043),
+    TrajectoryPoint(1530, 208.029610243676),
+    TrajectoryPoint(1540, 206.94893688144),
+    TrajectoryPoint(1550, 205.871267771864),
+    TrajectoryPoint(1560, 204.796515126263),
+    TrajectoryPoint(1570, 203.724591731232),
+    TrajectoryPoint(1580, 202.655410972087),
+    TrajectoryPoint(1590, 201.588886852589),
+    TrajectoryPoint(1600, 200.524934011226),
+    TrajectoryPoint(1610, 199.463467734333),
+    TrajectoryPoint(1620, 198.404403966303),
+    TrajectoryPoint(1630, 197.347659317119),
+    TrajectoryPoint(1640, 196.293151067417),
+    TrajectoryPoint(1650, 195.240797171292),
+    TrajectoryPoint(1660, 194.190516257014),
+    TrajectoryPoint(1670, 193.142227625834),
+    TrajectoryPoint(1680, 192.095851249037),
+    TrajectoryPoint(1690, 191.051307763377),
+    TrajectoryPoint(1700, 190.008518465042),
+    TrajectoryPoint(1710, 188.967405302252),
+    TrajectoryPoint(1720, 187.927890866627),
+    TrajectoryPoint(1730, 186.889898383407),
+    TrajectoryPoint(1740, 185.853351700636),
+    TrajectoryPoint(1750, 184.818175277385),
+    TrajectoryPoint(1760, 183.784294171116),
+    TrajectoryPoint(1770, 182.751634024235),
+    TrajectoryPoint(1780, 181.720168609434),
+    TrajectoryPoint(1790, 180.689812288416),
+    TrajectoryPoint(1800, 179.66044924951),
+    TrajectoryPoint(1810, 178.632006730962),
+    TrajectoryPoint(1820, 177.604412501373),
+    TrajectoryPoint(1830, 176.57759484109),
+    TrajectoryPoint(1840, 175.55148252326),
+    TrajectoryPoint(1850, 174.526004794586),
+    TrajectoryPoint(1860, 173.501115239535),
+    TrajectoryPoint(1870, 172.476743847208),
+    TrajectoryPoint(1880, 171.452783953506),
+    TrajectoryPoint(1890, 170.429166085466),
+    TrajectoryPoint(1900, 169.405821153207),
+    TrajectoryPoint(1910, 168.382680428381),
+    TrajectoryPoint(1920, 167.359680378797),
+    TrajectoryPoint(1930, 166.336739340616),
+    TrajectoryPoint(1940, 165.31378142889),
+    TrajectoryPoint(1950, 164.290738799321),
+    TrajectoryPoint(1960, 163.267543862616),
+    TrajectoryPoint(1970, 162.244094930694),
+    TrajectoryPoint(1980, 161.220331329289),
+    TrajectoryPoint(1990, 160.196194585778),
+    TrajectoryPoint(2000, 159.171617585945),
+    TrajectoryPoint(2010, 158.14646984128),
+    TrajectoryPoint(2020, 157.1206950169),
+    TrajectoryPoint(2030, 156.094257982536),
+    TrajectoryPoint(2040, 155.067091728417),
+    TrajectoryPoint(2050, 154.038970284744),
+    TrajectoryPoint(2060, 153.009962311022),
+    TrajectoryPoint(2070, 151.980000993778),
+    TrajectoryPoint(2080, 150.94886791541),
+    TrajectoryPoint(2090, 149.916563606587),
+    TrajectoryPoint(2100, 148.883079016713),
+    TrajectoryPoint(2110, 147.848156860492),
+    TrajectoryPoint(2120, 146.811814586722),
+    TrajectoryPoint(2130, 145.774061504007),
+    TrajectoryPoint(2140, 144.734524178334),
+    TrajectoryPoint(2150, 143.693383873525),
+    TrajectoryPoint(2160, 142.650473942006),
+    TrajectoryPoint(2170, 141.605569649245),
+    TrajectoryPoint(2180, 140.558850193436),
+    TrajectoryPoint(2190, 139.509842015929),
+    TrajectoryPoint(2200, 138.458798527447),
+    TrajectoryPoint(2210, 137.405390288739),
+    TrajectoryPoint(2220, 136.349620653461),
+    TrajectoryPoint(2230, 135.29136881595),
+    TrajectoryPoint(2240, 134.230458681574),
+    TrajectoryPoint(2250, 133.166895549986),
+    TrajectoryPoint(2260, 132.100417427986),
+    TrajectoryPoint(2270, 131.031050298988),
+    TrajectoryPoint(2280, 129.958562568277),
+    TrajectoryPoint(2290, 128.882872666284),
+    TrajectoryPoint(2300, 127.803918477935),
+    TrajectoryPoint(2310, 126.721359680572),
+    TrajectoryPoint(2320, 125.635456837382),
+    TrajectoryPoint(2330, 124.545463115329),
+    TrajectoryPoint(2340, 123.451804366283),
+    TrajectoryPoint(2350, 122.354086491803),
+    TrajectoryPoint(2360, 121.252046620846),
+    TrajectoryPoint(2370, 120.145847002057),
+    TrajectoryPoint(2380, 119.035001936047),
+    TrajectoryPoint(2390, 117.919396404239),
+    TrajectoryPoint(2400, 116.799071770053),
+    TrajectoryPoint(2410, 115.673701911932),
+    TrajectoryPoint(2420, 114.542850038388),
+    TrajectoryPoint(2430, 113.406658493024),
+    TrajectoryPoint(2440, 112.264900901334),
+    TrajectoryPoint(2450, 111.11731252657),
+    TrajectoryPoint(2460, 109.963336845355),
+    TrajectoryPoint(2470, 108.803079371893),
+    TrajectoryPoint(2480, 107.636275642949),
+    TrajectoryPoint(2490, 106.462649873934),
+    TrajectoryPoint(2500, 105.281914456613),
+    TrajectoryPoint(2510, 104.093769419095),
+    TrajectoryPoint(2520, 102.897901846072),
+    TrajectoryPoint(2530, 101.693985257039),
+    TrajectoryPoint(2540, 100.481678939984),
+    TrajectoryPoint(2550, 99.2606272377635),
+    TrajectoryPoint(2560, 98.030458784094),
+    TrajectoryPoint(2570, 96.7907856857777),
+    TrajectoryPoint(2580, 95.5412026474347),
+    TrajectoryPoint(2590, 94.28128603465),
+    TrajectoryPoint(2600, 93.0105928710332),
+    TrajectoryPoint(2610, 91.7286597642455),
+    TrajectoryPoint(2620, 90.4350017555611),
+    TrajectoryPoint(2630, 89.1291110869938),
+    TrajectoryPoint(2640, 87.8097765047788),
+    TrajectoryPoint(2650, 86.4770054736807),
+    TrajectoryPoint(2660, 85.1302076335847),
+    TrajectoryPoint(2670, 83.7680579887443),
+    TrajectoryPoint(2680, 82.3901552061626),
+    TrajectoryPoint(2690, 80.9957986190593),
+    TrajectoryPoint(2700, 79.5834474013435),
+    TrajectoryPoint(2710, 78.1528718006597),
+    TrajectoryPoint(2720, 76.7022861821182),
+    TrajectoryPoint(2730, 75.2308896339259),
+    TrajectoryPoint(2740, 73.7376469781135),
+    TrajectoryPoint(2750, 72.2202534538853),
+    TrajectoryPoint(2760, 70.6777576179105),
+    TrajectoryPoint(2770, 69.1084324674704),
+    TrajectoryPoint(2780, 67.5102590787228),
+    TrajectoryPoint(2790, 65.8810271113061),
+    TrajectoryPoint(2800, 64.2183124281507),
+    TrajectoryPoint(2810, 62.5194514367167),
+    TrajectoryPoint(2820, 60.7815115819673),
+    TrajectoryPoint(2830, 59.0005277688878),
+    TrajectoryPoint(2840, 57.1725121532777),
+    TrajectoryPoint(2850, 55.2932732404973),
+    TrajectoryPoint(2860, 53.356806940717),
+    TrajectoryPoint(2870, 51.3564136402496),
+    TrajectoryPoint(2880, 49.2847653908511),
+    TrajectoryPoint(2890, 47.1323658813152),
+    TrajectoryPoint(2900, 44.8872122583775),
+    TrajectoryPoint(2910, 42.5343820041368),
+    TrajectoryPoint(2920, 40.0551966620442),
+    TrajectoryPoint(2930, 37.4247238668615),
+    TrajectoryPoint(2940, 34.607880499359),
+    TrajectoryPoint(2950, 31.554947121852),
+    TrajectoryPoint(2960, 28.1902709533103),
+    TrajectoryPoint(2970, 24.3821827987399),
+    TrajectoryPoint(2980, 19.8815665988451),
+    TrajectoryPoint(2990, 14.0365991419119),
+    TrajectoryPoint(3000, 0),
+};
+Trajectory t_closed[] = {
+    Trajectory{0.0, t0_closed, 301},  Trajectory{0.0, t1_closed, 301},
+    Trajectory{0.0, t2_closed, 301},  Trajectory{0.0, t3_closed, 301},
+    Trajectory{0.0, t4_closed, 301},  Trajectory{0.0, t5_closed, 301},
+    Trajectory{0.0, t6_closed, 301},  Trajectory{0.0, t7_closed, 301},
+    Trajectory{0.0, t8_closed, 301},  Trajectory{0.0, t9_closed, 301},
+    Trajectory{0.0, t10_closed, 301},
+};
+Trajectory t_open[] = {
+    Trajectory{0.0, t0_open, 301},  Trajectory{0.0, t1_open, 301},
+    Trajectory{0.0, t2_open, 301},  Trajectory{0.0, t3_open, 301},
+    Trajectory{0.0, t4_open, 301},  Trajectory{0.0, t5_open, 301},
+    Trajectory{0.0, t6_open, 301},  Trajectory{0.0, t7_open, 301},
+    Trajectory{0.0, t8_open, 301},  Trajectory{0.0, t9_open, 301},
+    Trajectory{0.0, t10_open, 301},
+};
+// =============================================
+//    WARNING: GEMINI ROCCARASO TRAJECTORIES
+//             REMOVE THESE!!!
+// =============================================
+
+TrajectorySet Main::Data::ABK::CLOSED_TRAJECTORY_SET{t_closed, 11};
+TrajectorySet Main::Data::ABK::OPEN_TRAJECTORY_SET{t_open, 11};
diff --git a/src/boards/Main/Data/ABKTrajectorySet.h b/src/boards/Main/Data/ABKTrajectorySet.h
new file mode 100644
index 0000000000000000000000000000000000000000..760b7c3732293b242305b6ac46ffc367320852ae
--- /dev/null
+++ b/src/boards/Main/Data/ABKTrajectorySet.h
@@ -0,0 +1,43 @@
+/* Copyright (c) 2024 Skyward Experimental Rocketry
+ * Author: Davide Mor
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#pragma once
+
+#include <algorithms/AirBrakes/TrajectorySet.h>
+
+namespace Main
+{
+
+namespace Data
+{
+
+namespace ABK
+{
+
+extern Boardcore::TrajectorySet CLOSED_TRAJECTORY_SET;
+extern Boardcore::TrajectorySet OPEN_TRAJECTORY_SET;
+
+}  // namespace ABK
+
+}  // namespace Data
+
+}  // namespace Main
\ No newline at end of file
diff --git a/src/boards/Main/Radio/Radio.cpp b/src/boards/Main/Radio/Radio.cpp
index c71ceed70a8c354d844271fe074f86486bb7a594..7379f569c536edf644b0de6feada5cef8f57aeaa 100644
--- a/src/boards/Main/Radio/Radio.cpp
+++ b/src/boards/Main/Radio/Radio.cpp
@@ -611,6 +611,7 @@ bool Radio::enqueueSystemTm(uint8_t tmId)
             ADAController* ada      = getModule<ADAController>();
             NASController* nas      = getModule<NASController>();
             MEAController* mea      = getModule<MEAController>();
+            ABKController* abk      = getModule<ABKController>();
             Actuators* actuators    = getModule<Actuators>();
             StatsRecorder* recorder = getModule<StatsRecorder>();
 
@@ -655,7 +656,7 @@ bool Radio::enqueueSystemTm(uint8_t tmId)
             // FMM states
             tm.ada_state = static_cast<uint8_t>(ada->getState());
             tm.fmm_state = static_cast<uint8_t>(fmm->getState());
-            tm.abk_state = 255;  // TODO
+            tm.abk_state = static_cast<uint8_t>(abk->getState());
             tm.nas_state = static_cast<uint8_t>(nas->getState());
             tm.mea_state = static_cast<uint8_t>(mea->getState());
 
diff --git a/src/boards/Main/Radio/Radio.h b/src/boards/Main/Radio/Radio.h
index 4a77c99b27b796be68d02bcabc572037ea82947b..fff2e20e830532f1aaa9243fa827a4a16d4e1d7d 100644
--- a/src/boards/Main/Radio/Radio.h
+++ b/src/boards/Main/Radio/Radio.h
@@ -30,6 +30,7 @@
 #include <Main/Configs/RadioConfig.h>
 #include <Main/PinHandler/PinHandler.h>
 #include <Main/Sensors/Sensors.h>
+#include <Main/StateMachines/ABKController/ABKController.h>
 #include <Main/StateMachines/ADAController/ADAController.h>
 #include <Main/StateMachines/FlightModeManager/FlightModeManager.h>
 #include <Main/StateMachines/MEAController/MEAController.h>
@@ -49,7 +50,7 @@ using MavDriver = Boardcore::MavlinkDriver<Boardcore::SX1278Fsk::MTU,
 class Radio : public Boardcore::InjectableWithDeps<
                   Buses, BoardScheduler, Actuators, PinHandler, CanHandler,
                   Sensors, FlightModeManager, ADAController, NASController,
-                  MEAController, StatsRecorder, AlgoReference>
+                  MEAController, ABKController, StatsRecorder, AlgoReference>
 {
 public:
     Radio() {}
diff --git a/src/boards/Main/StateMachines/ABKController/ABKController.cpp b/src/boards/Main/StateMachines/ABKController/ABKController.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..585448bfdd26306e56c06080a3920e63595cdf5a
--- /dev/null
+++ b/src/boards/Main/StateMachines/ABKController/ABKController.cpp
@@ -0,0 +1,232 @@
+/* Copyright (c) 2024 Skyward Experimental Rocketry
+ * Author: Davide Mor
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "ABKController.h"
+
+#include <Main/Configs/ABKConfig.h>
+#include <Main/Configs/SchedulerConfig.h>
+#include <Main/Data/ABKTrajectorySet.h>
+#include <common/Events.h>
+#include <common/Topics.h>
+#include <events/EventBroker.h>
+
+using namespace Boardcore;
+using namespace Main;
+using namespace miosix;
+using namespace Common;
+
+ABKController::ABKController()
+    : FSM(&ABKController::state_init, STACK_DEFAULT_FOR_PTHREAD,
+          Config::Scheduler::ABK_PRIORITY),
+      abk{[this]() {
+              return TimedTrajectoryPoint{
+                  getModule<NASController>()->getNASState()};
+          },
+          Data::ABK::OPEN_TRAJECTORY_SET,
+          Data::ABK::CLOSED_TRAJECTORY_SET,
+          Config::ABK::BULLSHIT_RANDOM_CONFIG_REMOVE_ME_PLEASE,
+          Config::ABK::CONFIG,
+          [this](float position)
+          { getModule<Actuators>()->setAbkPosition(position); }}
+
+{
+    EventBroker::getInstance().subscribe(this, TOPIC_ABK);
+    EventBroker::getInstance().subscribe(this, TOPIC_FLIGHT);
+}
+
+bool ABKController::start()
+{
+    TaskScheduler& scheduler = getModule<BoardScheduler>()->getAbkScheduler();
+
+    uint8_t result =
+        scheduler.addTask([this]() { update(); }, Config::ABK::UPDATE_RATE);
+
+    if (result == 0)
+    {
+        LOG_ERR(logger, "Failed to add ABK update task");
+        return false;
+    }
+
+    if (!FSM::start())
+    {
+        LOG_ERR(logger, "Failed to start ABK FSM");
+        return false;
+    }
+
+    return true;
+}
+
+ABKControllerState ABKController::getState() { return state; }
+
+void ABKController::update()
+{
+    ABKControllerState curState = state;
+
+    if (!abk.isRunning() && curState == ABKControllerState::ACTIVE)
+    {
+        // We transitioned into ACTIVE, start up the algorithm
+        abk.begin(getModule<MEAController>()->getMEAState().estimatedMass);
+    }
+
+    if (abk.isRunning() && curState == ABKControllerState::END)
+    {
+        // We transitioned into END, shut down the algorithm
+        abk.end();
+    }
+
+    if (curState == ABKControllerState::ACTIVE)
+    {
+        // Normal update
+        abk.update();
+    }
+}
+
+void ABKController::state_init(const Event& event)
+{
+    switch (event)
+    {
+        case EV_ENTRY:
+        {
+            updateAndLogStatus(ABKControllerState::INIT);
+
+            // Immediately transition to ready
+            transition(&ABKController::state_ready);
+            break;
+        }
+    }
+}
+
+void ABKController::state_ready(const Event& event)
+{
+    switch (event)
+    {
+        case EV_ENTRY:
+        {
+            updateAndLogStatus(ABKControllerState::READY);
+            break;
+        }
+
+        case FLIGHT_ARMED:
+        {
+            transition(&ABKController::state_armed);
+            break;
+        }
+    }
+}
+
+void ABKController::state_armed(const Event& event)
+{
+    switch (event)
+    {
+        case EV_ENTRY:
+        {
+            updateAndLogStatus(ABKControllerState::ARMED);
+            break;
+        }
+
+        case FLIGHT_DISARMED:
+        {
+            transition(&ABKController::state_ready);
+            break;
+        }
+
+        case FLIGHT_MOTOR_SHUTDOWN:
+        {
+            // Enable only after motor shutdown
+            transition(&ABKController::state_shadow_mode);
+            break;
+        }
+    }
+}
+
+void ABKController::state_shadow_mode(const Event& event)
+{
+    switch (event)
+    {
+        case EV_ENTRY:
+        {
+            updateAndLogStatus(ABKControllerState::SHADOW_MODE);
+
+            shadowModeTimeoutEvent = EventBroker::getInstance().postDelayed(
+                ABK_SHADOW_MODE_TIMEOUT, TOPIC_ABK,
+                Config::ABK::SHADOW_MODE_TIMEOUT);
+            break;
+        }
+
+        case EV_EXIT:
+        {
+            EventBroker::getInstance().removeDelayed(shadowModeTimeoutEvent);
+            break;
+        }
+
+        case ABK_SHADOW_MODE_TIMEOUT:
+        {
+            transition(&ABKController::state_active);
+            break;
+        }
+
+        case FLIGHT_APOGEE_DETECTED:
+        case FLIGHT_LANDING_DETECTED:
+        {
+            transition(&ABKController::state_end);
+            break;
+        }
+    }
+}
+
+void ABKController::state_active(const Event& event)
+{
+    switch (event)
+    {
+        case EV_ENTRY:
+        {
+            updateAndLogStatus(ABKControllerState::ACTIVE);
+            break;
+        }
+
+        case FLIGHT_APOGEE_DETECTED:
+        case FLIGHT_LANDING_DETECTED:
+        {
+            transition(&ABKController::state_end);
+            break;
+        }
+    }
+}
+
+void ABKController::state_end(const Event& event)
+{
+    switch (event)
+    {
+        case EV_ENTRY:
+        {
+            updateAndLogStatus(ABKControllerState::END);
+            break;
+        }
+    }
+}
+
+void ABKController::updateAndLogStatus(ABKControllerState state)
+{
+    this->state              = state;
+    ABKControllerStatus data = {TimestampTimer::getTimestamp(), state};
+    sdLogger.log(data);
+}
\ No newline at end of file
diff --git a/src/boards/Main/StateMachines/ABKController/ABKController.h b/src/boards/Main/StateMachines/ABKController/ABKController.h
new file mode 100644
index 0000000000000000000000000000000000000000..949244d0f42d91b3eb004d0026b8653e9798166c
--- /dev/null
+++ b/src/boards/Main/StateMachines/ABKController/ABKController.h
@@ -0,0 +1,72 @@
+/* Copyright (c) 2024 Skyward Experimental Rocketry
+ * Author: Davide Mor
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#pragma once
+
+#include <Main/Actuators/Actuators.h>
+#include <Main/BoardScheduler.h>
+#include <Main/StateMachines/ABKController/ABKControllerData.h>
+#include <Main/StateMachines/MEAController/MEAController.h>
+#include <Main/StateMachines/NASController/NASController.h>
+#include <algorithms/AirBrakes/AirBrakesInterp.h>
+#include <events/FSM.h>
+#include <utils/DependencyManager/DependencyManager.h>
+
+namespace Main
+{
+
+class ABKController
+    : public Boardcore::FSM<ABKController>,
+      public Boardcore::InjectableWithDeps<BoardScheduler, Actuators,
+                                           NASController, MEAController>
+{
+public:
+    ABKController();
+
+    [[nodiscard]] bool start() override;
+
+    ABKControllerState getState();
+
+private:
+    void update();
+
+    // FSM states
+    void state_init(const Boardcore::Event& event);
+    void state_ready(const Boardcore::Event& event);
+    void state_armed(const Boardcore::Event& event);
+    void state_shadow_mode(const Boardcore::Event& event);
+    void state_active(const Boardcore::Event& event);
+    void state_end(const Boardcore::Event& event);
+
+    void updateAndLogStatus(ABKControllerState state);
+
+    std::atomic<ABKControllerState> state{ABKControllerState::INIT};
+
+    Boardcore::Logger& sdLogger   = Boardcore::Logger::getInstance();
+    Boardcore::PrintLogger logger = Boardcore::Logging::getLogger("abk");
+
+    uint16_t shadowModeTimeoutEvent = 0;
+
+    Boardcore::AirBrakesInterp abk;
+};
+
+}  // namespace Main
\ No newline at end of file
diff --git a/src/boards/Main/StateMachines/ABKController/ABKControllerData.h b/src/boards/Main/StateMachines/ABKController/ABKControllerData.h
new file mode 100644
index 0000000000000000000000000000000000000000..c4d17d0b21ddc16589f6e72085a5c107476f6c7b
--- /dev/null
+++ b/src/boards/Main/StateMachines/ABKController/ABKControllerData.h
@@ -0,0 +1,55 @@
+/* Copyright (c) 2024 Skyward Experimental Rocketry
+ * Author: Davide Mor
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#pragma once
+
+#include <cstdint>
+#include <ostream>
+#include <string>
+
+namespace Main
+{
+
+enum class ABKControllerState : uint8_t
+{
+    INIT = 0,
+    READY,
+    ARMED,
+    SHADOW_MODE,
+    ACTIVE,
+    END
+};
+
+struct ABKControllerStatus
+{
+    uint64_t timestamp       = 0;
+    ABKControllerState state = ABKControllerState::INIT;
+
+    static std::string header() { return "timestamp,state\n"; }
+
+    void print(std::ostream& os) const
+    {
+        os << timestamp << "," << static_cast<int>(state) << "\n";
+    }
+};
+
+}  // namespace Main
\ No newline at end of file
diff --git a/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp b/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp
index c9a5ccfea876690e9cf7795e455121bb77d48317..cd0b24a7f7e642b5cf60920671b05e91cf746cde 100644
--- a/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp
+++ b/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp
@@ -143,7 +143,8 @@ State FlightModeManager::state_init_error(const Event& event)
         }
         case TMTC_FORCE_INIT:
         {
-            getModule<CanHandler>()->sendEvent(CanConfig::EventId::FORCE_INIT);
+            // This doesn't make much sense
+            // getModule<CanHandler>()->sendEvent(CanConfig::EventId::FORCE_INIT);
             return transition(&FlightModeManager::state_init_done);
         }
         default:
diff --git a/src/entrypoints/Main/main-entry.cpp b/src/entrypoints/Main/main-entry.cpp
index 63e2ceadef0d8005723330409eaafce400a63a90..b12d5c46198826e399136a8d7a66df5850f95f7c 100644
--- a/src/entrypoints/Main/main-entry.cpp
+++ b/src/entrypoints/Main/main-entry.cpp
@@ -28,6 +28,7 @@
 #include <Main/PinHandler/PinHandler.h>
 #include <Main/Radio/Radio.h>
 #include <Main/Sensors/Sensors.h>
+#include <Main/StateMachines/ABKController/ABKController.h>
 #include <Main/StateMachines/ADAController/ADAController.h>
 #include <Main/StateMachines/FlightModeManager/FlightModeManager.h>
 #include <Main/StateMachines/MEAController/MEAController.h>
@@ -68,6 +69,7 @@ int main()
     ADAController *ada      = new ADAController();
     NASController *nas      = new NASController();
     MEAController *mea      = new MEAController();
+    ABKController *abk      = new ABKController();
     StatsRecorder *recorder = new StatsRecorder();
 
     Logger &sdLogger    = Logger::getInstance();
@@ -95,6 +97,7 @@ int main()
         manager.insert<ADAController>(ada) &&
         manager.insert<NASController>(nas) &&
         manager.insert<MEAController>(mea) &&
+        manager.insert<ABKController>(abk) &&
         manager.insert<StatsRecorder>(recorder) && manager.inject();
 
     manager.graphviz(std::cout);
@@ -183,6 +186,12 @@ int main()
         std::cout << "Error failed to start MEAController" << std::endl;
     }
 
+    if (!abk->start())
+    {
+        initResult = false;
+        std::cout << "Error failed to start ABKController" << std::endl;
+    }
+
     if (!fmm->start())
     {
         initResult = false;