From 39831ae9872345f1d83c2fd02d0c754377343051 Mon Sep 17 00:00:00 2001
From: Jake Read <jake.read@cba.mit.edu>
Date: Mon, 28 Oct 2019 10:40:30 -0400
Subject: [PATCH] prototype planner skeleton

---
 LOG.md                              |    2 +-
 hunks/adhoc/consumer.js             |   30 +
 hunks/adhoc/saturn.js               |   45 +
 hunks/adhoc/tpath.js                |   42 +
 save/contexts/cuttlefish/stest.json |  173 ++
 test_files/example-path.js          | 3654 +++++++++++++++++++++++++++
 test_files/example-path.json        | 3652 ++++++++++++++++++++++++++
 typeset.js                          |    2 +-
 8 files changed, 7598 insertions(+), 2 deletions(-)
 create mode 100644 hunks/adhoc/consumer.js
 create mode 100644 hunks/adhoc/saturn.js
 create mode 100644 hunks/adhoc/tpath.js
 create mode 100644 save/contexts/cuttlefish/stest.json
 create mode 100644 test_files/example-path.js
 create mode 100644 test_files/example-path.json

diff --git a/LOG.md b/LOG.md
index f1bc187..2a6ad70 100644
--- a/LOG.md
+++ b/LOG.md
@@ -8,7 +8,7 @@ things that *should work* before MW
  - don't have to push new outputs / inputs to the hunk manually (but cross compatible) - confusing if we make it, and it doesn't appear, wtf?
 - err path cleanup ... i.e. cover cases of new hunk writing:
  - syntax errors (in code, on load)
- - file naming errors 
+ - file naming errors
 
 ## Dev Golf
 
diff --git a/hunks/adhoc/consumer.js b/hunks/adhoc/consumer.js
new file mode 100644
index 0000000..c9030ec
--- /dev/null
+++ b/hunks/adhoc/consumer.js
@@ -0,0 +1,30 @@
+/*
+
+mimic / prototype steppers downstream, consuming on known timestep
+
+*/
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+export default function Consumer(){
+  Hunkify(this)
+
+  let takeup = this.input('number', 'takes')
+  let taken = false
+  let period = this.state('number', 'period', 50)
+
+  this.loop = () => {
+    if(takeup.io() && !taken){
+      takeup.get()
+      taken = true
+      setTimeout(() => {
+        taken = false
+      }, period.value)
+    }
+  }
+}
diff --git a/hunks/adhoc/saturn.js b/hunks/adhoc/saturn.js
new file mode 100644
index 0000000..a5d1746
--- /dev/null
+++ b/hunks/adhoc/saturn.js
@@ -0,0 +1,45 @@
+/*
+
+accel planning for networked controllers
+
+*/
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+export default function Saturn(){
+  Hunkify(this)
+
+  let inpts = this.input('array', 'posn')
+  let outx = this.output('number', 'outx')
+  let outy = this.output('number', 'outy')
+  let outz = this.output('number', 'outz')
+  let outp = this.output('array', 'posn')
+  let period = this.state('number', 'period', 50) // in ms,
+
+  let allclear = () => {
+    return (!outx.io() && !outy.io() && !outz.io())
+  }
+
+  // our path (and num segs to plan over)
+  let opl = 64
+  let op = []
+
+  this.loop = () => {
+    if(op.length < opl && inpts.io()){
+      op.push(inpts.get())
+    }
+    if(allclear()){
+      if(op.length){
+        let np = op.shift()
+        outx.put(np[0])
+        outy.put(np[1])
+        outz.put(np[2])
+      }
+    }
+  }
+}
diff --git a/hunks/adhoc/tpath.js b/hunks/adhoc/tpath.js
new file mode 100644
index 0000000..81ff430
--- /dev/null
+++ b/hunks/adhoc/tpath.js
@@ -0,0 +1,42 @@
+/*
+
+testing path output -> saturn
+
+*/
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+import * as expath from '../../test_files/example-path.js'
+
+export default function TPFCOUT(){
+  Hunkify(this)
+
+  // copy this in au manuel
+  let ogpath = expath.default.arr 
+  let path = []
+
+  let outPosn = this.output('array', 'position')
+  let outReset = this.state('boolean', 'reset', false)
+  outReset.onChange = (value) => {
+    path = JSON.parse(JSON.stringify(ogpath))
+  }
+
+  this.init = () => {
+    path = JSON.parse(JSON.stringify(ogpath))
+    console.log(path)
+  }
+
+  // copies out, one at a time, fc pressure
+  this.loop = () => {
+    if(path.length){
+      if(!outPosn.io()){
+        outPosn.put(path.shift())
+      }
+    }
+  }
+}
diff --git a/save/contexts/cuttlefish/stest.json b/save/contexts/cuttlefish/stest.json
new file mode 100644
index 0000000..7f9daee
--- /dev/null
+++ b/save/contexts/cuttlefish/stest.json
@@ -0,0 +1,173 @@
+{
+  "interpreterName": "cuttlefish",
+  "interpreterVersion": "v0.1",
+  "hunks": [
+    {
+      "type": "manager",
+      "name": "nrol",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "1",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "view",
+      "name": "tlview",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "0",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "adhoc/saturn",
+      "name": "adhoc/saturn_2",
+      "inputs": [
+        {
+          "name": "posn",
+          "type": "array"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "outx",
+          "type": "number",
+          "connections": [
+            {
+              "inHunkIndex": "4",
+              "inHunkInput": "0"
+            }
+          ]
+        },
+        {
+          "name": "outy",
+          "type": "number",
+          "connections": [
+            {
+              "inHunkIndex": "5",
+              "inHunkInput": "0"
+            }
+          ]
+        },
+        {
+          "name": "outz",
+          "type": "number",
+          "connections": [
+            {
+              "inHunkIndex": "6",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "period",
+          "type": "number",
+          "value": "50"
+        }
+      ]
+    },
+    {
+      "type": "adhoc/tpath",
+      "name": "adhoc/tpath_3",
+      "outputs": [
+        {
+          "name": "position",
+          "type": "array",
+          "connections": [
+            {
+              "inHunkIndex": "2",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "reset",
+          "type": "boolean",
+          "value": "false"
+        }
+      ]
+    },
+    {
+      "type": "adhoc/consumer",
+      "name": "adhoc/consumer_4",
+      "inputs": [
+        {
+          "name": "takes",
+          "type": "number"
+        }
+      ],
+      "states": [
+        {
+          "name": "period",
+          "type": "number",
+          "value": "50"
+        }
+      ]
+    },
+    {
+      "type": "adhoc/consumer",
+      "name": "adhoc/consumer_5",
+      "inputs": [
+        {
+          "name": "takes",
+          "type": "number"
+        }
+      ],
+      "states": [
+        {
+          "name": "period",
+          "type": "number",
+          "value": "50"
+        }
+      ]
+    },
+    {
+      "type": "adhoc/consumer",
+      "name": "adhoc/consumer_6",
+      "inputs": [
+        {
+          "name": "takes",
+          "type": "number"
+        }
+      ],
+      "states": [
+        {
+          "name": "period",
+          "type": "number",
+          "value": "50"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/test_files/example-path.js b/test_files/example-path.js
new file mode 100644
index 0000000..c13a41d
--- /dev/null
+++ b/test_files/example-path.js
@@ -0,0 +1,3654 @@
+export default {
+  arr: [
+    [
+      63,
+      63,
+      50
+    ],
+    [
+      63,
+      63,
+      -5
+    ],
+    [
+      1791,
+      63,
+      -5
+    ],
+    [
+      1791,
+      1854,
+      -5
+    ],
+    [
+      63,
+      1854,
+      -5
+    ],
+    [
+      63,
+      63,
+      -5
+    ],
+    [
+      63,
+      63,
+      50
+    ],
+    [
+      172,
+      135,
+      50
+    ],
+    [
+      172,
+      135,
+      -5
+    ],
+    [
+      172,
+      195,
+      -5
+    ],
+    [
+      201,
+      195,
+      -5
+    ],
+    [
+      201,
+      249,
+      -5
+    ],
+    [
+      169,
+      249,
+      -5
+    ],
+    [
+      169,
+      335,
+      -5
+    ],
+    [
+      201,
+      335,
+      -5
+    ],
+    [
+      201,
+      405,
+      -5
+    ],
+    [
+      204,
+      405,
+      -5
+    ],
+    [
+      204,
+      411,
+      -5
+    ],
+    [
+      253,
+      411,
+      -5
+    ],
+    [
+      253,
+      382,
+      -5
+    ],
+    [
+      218,
+      382,
+      -5
+    ],
+    [
+      218,
+      335,
+      -5
+    ],
+    [
+      250,
+      335,
+      -5
+    ],
+    [
+      250,
+      249,
+      -5
+    ],
+    [
+      218,
+      249,
+      -5
+    ],
+    [
+      218,
+      195,
+      -5
+    ],
+    [
+      222,
+      195,
+      -5
+    ],
+    [
+      222,
+      135,
+      -5
+    ],
+    [
+      172,
+      135,
+      -5
+    ],
+    [
+      172,
+      135,
+      50
+    ],
+    [
+      366,
+      97,
+      50
+    ],
+    [
+      366,
+      97,
+      -5
+    ],
+    [
+      366,
+      135,
+      -5
+    ],
+    [
+      350,
+      135,
+      -5
+    ],
+    [
+      350,
+      195,
+      -5
+    ],
+    [
+      400,
+      195,
+      -5
+    ],
+    [
+      400,
+      135,
+      -5
+    ],
+    [
+      383,
+      135,
+      -5
+    ],
+    [
+      383,
+      114,
+      -5
+    ],
+    [
+      683,
+      114,
+      -5
+    ],
+    [
+      683,
+      182,
+      -5
+    ],
+    [
+      661,
+      182,
+      -5
+    ],
+    [
+      661,
+      308,
+      -5
+    ],
+    [
+      723,
+      308,
+      -5
+    ],
+    [
+      723,
+      182,
+      -5
+    ],
+    [
+      700,
+      182,
+      -5
+    ],
+    [
+      700,
+      114,
+      -5
+    ],
+    [
+      1329,
+      114,
+      -5
+    ],
+    [
+      1329,
+      182,
+      -5
+    ],
+    [
+      1306,
+      182,
+      -5
+    ],
+    [
+      1306,
+      308,
+      -5
+    ],
+    [
+      1368,
+      308,
+      -5
+    ],
+    [
+      1368,
+      182,
+      -5
+    ],
+    [
+      1346,
+      182,
+      -5
+    ],
+    [
+      1346,
+      114,
+      -5
+    ],
+    [
+      1740,
+      114,
+      -5
+    ],
+    [
+      1740,
+      1024,
+      -5
+    ],
+    [
+      1672,
+      1024,
+      -5
+    ],
+    [
+      1672,
+      1001,
+      -5
+    ],
+    [
+      1546,
+      1001,
+      -5
+    ],
+    [
+      1546,
+      1063,
+      -5
+    ],
+    [
+      1672,
+      1063,
+      -5
+    ],
+    [
+      1672,
+      1041,
+      -5
+    ],
+    [
+      1740,
+      1041,
+      -5
+    ],
+    [
+      1740,
+      1791,
+      -5
+    ],
+    [
+      1033,
+      1791,
+      -5
+    ],
+    [
+      1033,
+      1722,
+      -5
+    ],
+    [
+      1056,
+      1722,
+      -5
+    ],
+    [
+      1056,
+      1596,
+      -5
+    ],
+    [
+      994,
+      1596,
+      -5
+    ],
+    [
+      994,
+      1722,
+      -5
+    ],
+    [
+      1017,
+      1722,
+      -5
+    ],
+    [
+      1017,
+      1807,
+      -5
+    ],
+    [
+      1757,
+      1807,
+      -5
+    ],
+    [
+      1757,
+      97,
+      -5
+    ],
+    [
+      366,
+      97,
+      -5
+    ],
+    [
+      366,
+      97,
+      50
+    ],
+    [
+      436,
+      135,
+      50
+    ],
+    [
+      436,
+      135,
+      -5
+    ],
+    [
+      436,
+      284,
+      -5
+    ],
+    [
+      402,
+      284,
+      -5
+    ],
+    [
+      402,
+      249,
+      -5
+    ],
+    [
+      322,
+      249,
+      -5
+    ],
+    [
+      322,
+      335,
+      -5
+    ],
+    [
+      402,
+      335,
+      -5
+    ],
+    [
+      402,
+      300,
+      -5
+    ],
+    [
+      436,
+      300,
+      -5
+    ],
+    [
+      436,
+      436,
+      -5
+    ],
+    [
+      368,
+      436,
+      -5
+    ],
+    [
+      368,
+      430,
+      -5
+    ],
+    [
+      318,
+      430,
+      -5
+    ],
+    [
+      318,
+      459,
+      -5
+    ],
+    [
+      368,
+      459,
+      -5
+    ],
+    [
+      368,
+      453,
+      -5
+    ],
+    [
+      436,
+      453,
+      -5
+    ],
+    [
+      436,
+      588,
+      -5
+    ],
+    [
+      402,
+      588,
+      -5
+    ],
+    [
+      402,
+      554,
+      -5
+    ],
+    [
+      322,
+      554,
+      -5
+    ],
+    [
+      322,
+      588,
+      -5
+    ],
+    [
+      309,
+      588,
+      -5
+    ],
+    [
+      309,
+      1096,
+      -5
+    ],
+    [
+      270,
+      1096,
+      -5
+    ],
+    [
+      270,
+      1073,
+      -5
+    ],
+    [
+      144,
+      1073,
+      -5
+    ],
+    [
+      144,
+      1136,
+      -5
+    ],
+    [
+      270,
+      1136,
+      -5
+    ],
+    [
+      270,
+      1113,
+      -5
+    ],
+    [
+      309,
+      1113,
+      -5
+    ],
+    [
+      309,
+      1176,
+      -5
+    ],
+    [
+      618,
+      1176,
+      -5
+    ],
+    [
+      618,
+      1100,
+      -5
+    ],
+    [
+      704,
+      1100,
+      -5
+    ],
+    [
+      704,
+      1084,
+      -5
+    ],
+    [
+      601,
+      1084,
+      -5
+    ],
+    [
+      601,
+      1160,
+      -5
+    ],
+    [
+      326,
+      1160,
+      -5
+    ],
+    [
+      326,
+      639,
+      -5
+    ],
+    [
+      402,
+      639,
+      -5
+    ],
+    [
+      402,
+      605,
+      -5
+    ],
+    [
+      453,
+      605,
+      -5
+    ],
+    [
+      453,
+      152,
+      -5
+    ],
+    [
+      620,
+      152,
+      -5
+    ],
+    [
+      620,
+      364,
+      -5
+    ],
+    [
+      683,
+      364,
+      -5
+    ],
+    [
+      683,
+      454,
+      -5
+    ],
+    [
+      661,
+      454,
+      -5
+    ],
+    [
+      661,
+      580,
+      -5
+    ],
+    [
+      723,
+      580,
+      -5
+    ],
+    [
+      723,
+      454,
+      -5
+    ],
+    [
+      700,
+      454,
+      -5
+    ],
+    [
+      700,
+      364,
+      -5
+    ],
+    [
+      764,
+      364,
+      -5
+    ],
+    [
+      764,
+      152,
+      -5
+    ],
+    [
+      1265,
+      152,
+      -5
+    ],
+    [
+      1265,
+      389,
+      -5
+    ],
+    [
+      1329,
+      389,
+      -5
+    ],
+    [
+      1329,
+      454,
+      -5
+    ],
+    [
+      1306,
+      454,
+      -5
+    ],
+    [
+      1306,
+      580,
+      -5
+    ],
+    [
+      1368,
+      580,
+      -5
+    ],
+    [
+      1368,
+      454,
+      -5
+    ],
+    [
+      1346,
+      454,
+      -5
+    ],
+    [
+      1346,
+      389,
+      -5
+    ],
+    [
+      1409,
+      389,
+      -5
+    ],
+    [
+      1409,
+      152,
+      -5
+    ],
+    [
+      1702,
+      152,
+      -5
+    ],
+    [
+      1702,
+      804,
+      -5
+    ],
+    [
+      1227,
+      804,
+      -5
+    ],
+    [
+      1227,
+      844,
+      -5
+    ],
+    [
+      1099,
+      844,
+      -5
+    ],
+    [
+      1099,
+      861,
+      -5
+    ],
+    [
+      1244,
+      861,
+      -5
+    ],
+    [
+      1244,
+      821,
+      -5
+    ],
+    [
+      1702,
+      821,
+      -5
+    ],
+    [
+      1702,
+      960,
+      -5
+    ],
+    [
+      1490,
+      960,
+      -5
+    ],
+    [
+      1490,
+      1024,
+      -5
+    ],
+    [
+      1400,
+      1024,
+      -5
+    ],
+    [
+      1400,
+      1001,
+      -5
+    ],
+    [
+      1274,
+      1001,
+      -5
+    ],
+    [
+      1274,
+      1063,
+      -5
+    ],
+    [
+      1400,
+      1063,
+      -5
+    ],
+    [
+      1400,
+      1041,
+      -5
+    ],
+    [
+      1490,
+      1041,
+      -5
+    ],
+    [
+      1490,
+      1104,
+      -5
+    ],
+    [
+      1702,
+      1104,
+      -5
+    ],
+    [
+      1702,
+      1623,
+      -5
+    ],
+    [
+      1579,
+      1623,
+      -5
+    ],
+    [
+      1579,
+      1559,
+      -5
+    ],
+    [
+      1494,
+      1559,
+      -5
+    ],
+    [
+      1494,
+      1640,
+      -5
+    ],
+    [
+      1702,
+      1640,
+      -5
+    ],
+    [
+      1702,
+      1752,
+      -5
+    ],
+    [
+      1097,
+      1752,
+      -5
+    ],
+    [
+      1097,
+      1540,
+      -5
+    ],
+    [
+      1033,
+      1540,
+      -5
+    ],
+    [
+      1033,
+      1451,
+      -5
+    ],
+    [
+      1056,
+      1451,
+      -5
+    ],
+    [
+      1056,
+      1325,
+      -5
+    ],
+    [
+      994,
+      1325,
+      -5
+    ],
+    [
+      994,
+      1451,
+      -5
+    ],
+    [
+      1017,
+      1451,
+      -5
+    ],
+    [
+      1017,
+      1540,
+      -5
+    ],
+    [
+      953,
+      1540,
+      -5
+    ],
+    [
+      953,
+      1752,
+      -5
+    ],
+    [
+      605,
+      1752,
+      -5
+    ],
+    [
+      605,
+      1640,
+      -5
+    ],
+    [
+      640,
+      1640,
+      -5
+    ],
+    [
+      640,
+      1559,
+      -5
+    ],
+    [
+      554,
+      1559,
+      -5
+    ],
+    [
+      554,
+      1591,
+      -5
+    ],
+    [
+      250,
+      1591,
+      -5
+    ],
+    [
+      250,
+      1479,
+      -5
+    ],
+    [
+      279,
+      1479,
+      -5
+    ],
+    [
+      279,
+      1378,
+      -5
+    ],
+    [
+      250,
+      1378,
+      -5
+    ],
+    [
+      250,
+      1338,
+      -5
+    ],
+    [
+      330,
+      1338,
+      -5
+    ],
+    [
+      330,
+      1252,
+      -5
+    ],
+    [
+      249,
+      1252,
+      -5
+    ],
+    [
+      249,
+      1287,
+      -5
+    ],
+    [
+      233,
+      1287,
+      -5
+    ],
+    [
+      233,
+      1378,
+      -5
+    ],
+    [
+      204,
+      1378,
+      -5
+    ],
+    [
+      204,
+      1479,
+      -5
+    ],
+    [
+      233,
+      1479,
+      -5
+    ],
+    [
+      233,
+      1608,
+      -5
+    ],
+    [
+      554,
+      1608,
+      -5
+    ],
+    [
+      554,
+      1640,
+      -5
+    ],
+    [
+      588,
+      1640,
+      -5
+    ],
+    [
+      588,
+      1769,
+      -5
+    ],
+    [
+      970,
+      1769,
+      -5
+    ],
+    [
+      970,
+      1557,
+      -5
+    ],
+    [
+      1080,
+      1557,
+      -5
+    ],
+    [
+      1080,
+      1769,
+      -5
+    ],
+    [
+      1719,
+      1769,
+      -5
+    ],
+    [
+      1719,
+      1087,
+      -5
+    ],
+    [
+      1507,
+      1087,
+      -5
+    ],
+    [
+      1507,
+      977,
+      -5
+    ],
+    [
+      1719,
+      977,
+      -5
+    ],
+    [
+      1719,
+      135,
+      -5
+    ],
+    [
+      1392,
+      135,
+      -5
+    ],
+    [
+      1392,
+      372,
+      -5
+    ],
+    [
+      1282,
+      372,
+      -5
+    ],
+    [
+      1282,
+      135,
+      -5
+    ],
+    [
+      747,
+      135,
+      -5
+    ],
+    [
+      747,
+      347,
+      -5
+    ],
+    [
+      637,
+      347,
+      -5
+    ],
+    [
+      637,
+      135,
+      -5
+    ],
+    [
+      436,
+      135,
+      -5
+    ],
+    [
+      436,
+      135,
+      50
+    ],
+    [
+      534,
+      182,
+      50
+    ],
+    [
+      534,
+      182,
+      -5
+    ],
+    [
+      534,
+      308,
+      -5
+    ],
+    [
+      556,
+      308,
+      -5
+    ],
+    [
+      556,
+      415,
+      -5
+    ],
+    [
+      620,
+      415,
+      -5
+    ],
+    [
+      620,
+      652,
+      -5
+    ],
+    [
+      793,
+      652,
+      -5
+    ],
+    [
+      793,
+      924,
+      -5
+    ],
+    [
+      642,
+      924,
+      -5
+    ],
+    [
+      642,
+      941,
+      -5
+    ],
+    [
+      810,
+      941,
+      -5
+    ],
+    [
+      810,
+      635,
+      -5
+    ],
+    [
+      637,
+      635,
+      -5
+    ],
+    [
+      637,
+      398,
+      -5
+    ],
+    [
+      573,
+      398,
+      -5
+    ],
+    [
+      573,
+      308,
+      -5
+    ],
+    [
+      596,
+      308,
+      -5
+    ],
+    [
+      596,
+      182,
+      -5
+    ],
+    [
+      534,
+      182,
+      -5
+    ],
+    [
+      534,
+      182,
+      50
+    ],
+    [
+      788,
+      182,
+      50
+    ],
+    [
+      788,
+      182,
+      -5
+    ],
+    [
+      788,
+      308,
+      -5
+    ],
+    [
+      850,
+      308,
+      -5
+    ],
+    [
+      850,
+      253,
+      -5
+    ],
+    [
+      873,
+      253,
+      -5
+    ],
+    [
+      873,
+      1004,
+      -5
+    ],
+    [
+      642,
+      1004,
+      -5
+    ],
+    [
+      642,
+      1021,
+      -5
+    ],
+    [
+      890,
+      1021,
+      -5
+    ],
+    [
+      890,
+      237,
+      -5
+    ],
+    [
+      850,
+      237,
+      -5
+    ],
+    [
+      850,
+      182,
+      -5
+    ],
+    [
+      788,
+      182,
+      -5
+    ],
+    [
+      788,
+      182,
+      50
+    ],
+    [
+      788,
+      454,
+      50
+    ],
+    [
+      788,
+      454,
+      -5
+    ],
+    [
+      788,
+      580,
+      -5
+    ],
+    [
+      792,
+      580,
+      -5
+    ],
+    [
+      792,
+      582,
+      -5
+    ],
+    [
+      796,
+      586,
+      -5
+    ],
+    [
+      798,
+      588,
+      -5
+    ],
+    [
+      807,
+      594,
+      -5
+    ],
+    [
+      809,
+      594,
+      -5
+    ],
+    [
+      817,
+      596,
+      -5
+    ],
+    [
+      825,
+      596,
+      -5
+    ],
+    [
+      833,
+      593,
+      -5
+    ],
+    [
+      833,
+      964,
+      -5
+    ],
+    [
+      642,
+      964,
+      -5
+    ],
+    [
+      642,
+      981,
+      -5
+    ],
+    [
+      850,
+      981,
+      -5
+    ],
+    [
+      850,
+      454,
+      -5
+    ],
+    [
+      788,
+      454,
+      -5
+    ],
+    [
+      788,
+      454,
+      50
+    ],
+    [
+      534,
+      454,
+      50
+    ],
+    [
+      534,
+      454,
+      -5
+    ],
+    [
+      534,
+      580,
+      -5
+    ],
+    [
+      556,
+      580,
+      -5
+    ],
+    [
+      556,
+      690,
+      -5
+    ],
+    [
+      753,
+      690,
+      -5
+    ],
+    [
+      753,
+      884,
+      -5
+    ],
+    [
+      642,
+      884,
+      -5
+    ],
+    [
+      642,
+      901,
+      -5
+    ],
+    [
+      770,
+      901,
+      -5
+    ],
+    [
+      770,
+      673,
+      -5
+    ],
+    [
+      573,
+      673,
+      -5
+    ],
+    [
+      573,
+      580,
+      -5
+    ],
+    [
+      596,
+      580,
+      -5
+    ],
+    [
+      596,
+      454,
+      -5
+    ],
+    [
+      534,
+      454,
+      -5
+    ],
+    [
+      534,
+      454,
+      50
+    ],
+    [
+      354,
+      681,
+      50
+    ],
+    [
+      354,
+      681,
+      -5
+    ],
+    [
+      354,
+      766,
+      -5
+    ],
+    [
+      360,
+      766,
+      -5
+    ],
+    [
+      360,
+      1113,
+      -5
+    ],
+    [
+      416,
+      1113,
+      -5
+    ],
+    [
+      416,
+      1136,
+      -5
+    ],
+    [
+      542,
+      1136,
+      -5
+    ],
+    [
+      542,
+      1073,
+      -5
+    ],
+    [
+      416,
+      1073,
+      -5
+    ],
+    [
+      416,
+      1096,
+      -5
+    ],
+    [
+      377,
+      1096,
+      -5
+    ],
+    [
+      377,
+      766,
+      -5
+    ],
+    [
+      434,
+      766,
+      -5
+    ],
+    [
+      434,
+      732,
+      -5
+    ],
+    [
+      665,
+      732,
+      -5
+    ],
+    [
+      665,
+      804,
+      -5
+    ],
+    [
+      642,
+      804,
+      -5
+    ],
+    [
+      642,
+      821,
+      -5
+    ],
+    [
+      704,
+      821,
+      -5
+    ],
+    [
+      704,
+      804,
+      -5
+    ],
+    [
+      681,
+      804,
+      -5
+    ],
+    [
+      681,
+      715,
+      -5
+    ],
+    [
+      434,
+      715,
+      -5
+    ],
+    [
+      434,
+      681,
+      -5
+    ],
+    [
+      354,
+      681,
+      -5
+    ],
+    [
+      354,
+      681,
+      50
+    ],
+    [
+      416,
+      819,
+      50
+    ],
+    [
+      416,
+      819,
+      -5
+    ],
+    [
+      416,
+      882,
+      -5
+    ],
+    [
+      546,
+      882,
+      -5
+    ],
+    [
+      559,
+      877,
+      -5
+    ],
+    [
+      568,
+      868,
+      -5
+    ],
+    [
+      572,
+      861,
+      -5
+    ],
+    [
+      704,
+      861,
+      -5
+    ],
+    [
+      704,
+      844,
+      -5
+    ],
+    [
+      573,
+      844,
+      -5
+    ],
+    [
+      568,
+      833,
+      -5
+    ],
+    [
+      560,
+      825,
+      -5
+    ],
+    [
+      551,
+      821,
+      -5
+    ],
+    [
+      539,
+      819,
+      -5
+    ],
+    [
+      416,
+      819,
+      -5
+    ],
+    [
+      416,
+      819,
+      50
+    ],
+    [
+      416,
+      946,
+      50
+    ],
+    [
+      416,
+      946,
+      -5
+    ],
+    [
+      416,
+      1009,
+      -5
+    ],
+    [
+      542,
+      1009,
+      -5
+    ],
+    [
+      542,
+      946,
+      -5
+    ],
+    [
+      416,
+      946,
+      -5
+    ],
+    [
+      416,
+      946,
+      50
+    ],
+    [
+      601,
+      1044,
+      50
+    ],
+    [
+      601,
+      1044,
+      -5
+    ],
+    [
+      601,
+      1061,
+      -5
+    ],
+    [
+      704,
+      1061,
+      -5
+    ],
+    [
+      704,
+      1044,
+      -5
+    ],
+    [
+      601,
+      1044,
+      -5
+    ],
+    [
+      601,
+      1044,
+      50
+    ],
+    [
+      793,
+      1149,
+      50
+    ],
+    [
+      793,
+      1149,
+      -5
+    ],
+    [
+      793,
+      1236,
+      -5
+    ],
+    [
+      436,
+      1236,
+      -5
+    ],
+    [
+      436,
+      1378,
+      -5
+    ],
+    [
+      407,
+      1378,
+      -5
+    ],
+    [
+      407,
+      1479,
+      -5
+    ],
+    [
+      482,
+      1479,
+      -5
+    ],
+    [
+      482,
+      1378,
+      -5
+    ],
+    [
+      453,
+      1378,
+      -5
+    ],
+    [
+      453,
+      1253,
+      -5
+    ],
+    [
+      810,
+      1253,
+      -5
+    ],
+    [
+      810,
+      1149,
+      -5
+    ],
+    [
+      793,
+      1149,
+      -5
+    ],
+    [
+      793,
+      1149,
+      50
+    ],
+    [
+      833,
+      1149,
+      50
+    ],
+    [
+      833,
+      1149,
+      -5
+    ],
+    [
+      833,
+      1274,
+      -5
+    ],
+    [
+      715,
+      1274,
+      -5
+    ],
+    [
+      715,
+      1407,
+      -5
+    ],
+    [
+      681,
+      1407,
+      -5
+    ],
+    [
+      681,
+      1487,
+      -5
+    ],
+    [
+      766,
+      1487,
+      -5
+    ],
+    [
+      766,
+      1407,
+      -5
+    ],
+    [
+      732,
+      1407,
+      -5
+    ],
+    [
+      732,
+      1291,
+      -5
+    ],
+    [
+      850,
+      1291,
+      -5
+    ],
+    [
+      850,
+      1149,
+      -5
+    ],
+    [
+      833,
+      1149,
+      -5
+    ],
+    [
+      833,
+      1149,
+      50
+    ],
+    [
+      873,
+      1149,
+      50
+    ],
+    [
+      873,
+      1149,
+      -5
+    ],
+    [
+      873,
+      1253,
+      -5
+    ],
+    [
+      890,
+      1253,
+      -5
+    ],
+    [
+      890,
+      1149,
+      -5
+    ],
+    [
+      873,
+      1149,
+      -5
+    ],
+    [
+      873,
+      1149,
+      50
+    ],
+    [
+      913,
+      1149,
+      50
+    ],
+    [
+      913,
+      1149,
+      -5
+    ],
+    [
+      913,
+      1311,
+      -5
+    ],
+    [
+      910,
+      1311,
+      -5
+    ],
+    [
+      904,
+      1309,
+      -5
+    ],
+    [
+      902,
+      1309,
+      -5
+    ],
+    [
+      894,
+      1308,
+      -5
+    ],
+    [
+      883,
+      1312,
+      -5
+    ],
+    [
+      873,
+      1321,
+      -5
+    ],
+    [
+      870,
+      1325,
+      -5
+    ],
+    [
+      867,
+      1325,
+      -5
+    ],
+    [
+      867,
+      1451,
+      -5
+    ],
+    [
+      929,
+      1451,
+      -5
+    ],
+    [
+      929,
+      1396,
+      -5
+    ],
+    [
+      930,
+      1149,
+      -5
+    ],
+    [
+      913,
+      1149,
+      -5
+    ],
+    [
+      913,
+      1149,
+      50
+    ],
+    [
+      953,
+      1149,
+      50
+    ],
+    [
+      953,
+      1149,
+      -5
+    ],
+    [
+      953,
+      1490,
+      -5
+    ],
+    [
+      890,
+      1490,
+      -5
+    ],
+    [
+      890,
+      1596,
+      -5
+    ],
+    [
+      867,
+      1596,
+      -5
+    ],
+    [
+      867,
+      1722,
+      -5
+    ],
+    [
+      929,
+      1722,
+      -5
+    ],
+    [
+      929,
+      1596,
+      -5
+    ],
+    [
+      906,
+      1596,
+      -5
+    ],
+    [
+      906,
+      1506,
+      -5
+    ],
+    [
+      970,
+      1506,
+      -5
+    ],
+    [
+      970,
+      1149,
+      -5
+    ],
+    [
+      953,
+      1149,
+      -5
+    ],
+    [
+      953,
+      1149,
+      50
+    ],
+    [
+      993,
+      1149,
+      50
+    ],
+    [
+      993,
+      1149,
+      -5
+    ],
+    [
+      993,
+      1256,
+      -5
+    ],
+    [
+      1080,
+      1256,
+      -5
+    ],
+    [
+      1080,
+      1506,
+      -5
+    ],
+    [
+      1144,
+      1506,
+      -5
+    ],
+    [
+      1144,
+      1596,
+      -5
+    ],
+    [
+      1121,
+      1596,
+      -5
+    ],
+    [
+      1121,
+      1722,
+      -5
+    ],
+    [
+      1183,
+      1722,
+      -5
+    ],
+    [
+      1183,
+      1640,
+      -5
+    ],
+    [
+      1452,
+      1640,
+      -5
+    ],
+    [
+      1452,
+      1559,
+      -5
+    ],
+    [
+      1367,
+      1559,
+      -5
+    ],
+    [
+      1367,
+      1623,
+      -5
+    ],
+    [
+      1183,
+      1623,
+      -5
+    ],
+    [
+      1183,
+      1596,
+      -5
+    ],
+    [
+      1160,
+      1596,
+      -5
+    ],
+    [
+      1160,
+      1490,
+      -5
+    ],
+    [
+      1097,
+      1490,
+      -5
+    ],
+    [
+      1097,
+      1240,
+      -5
+    ],
+    [
+      1010,
+      1240,
+      -5
+    ],
+    [
+      1010,
+      1149,
+      -5
+    ],
+    [
+      993,
+      1149,
+      -5
+    ],
+    [
+      993,
+      1149,
+      50
+    ],
+    [
+      1033,
+      1149,
+      50
+    ],
+    [
+      1033,
+      1149,
+      -5
+    ],
+    [
+      1033,
+      1214,
+      -5
+    ],
+    [
+      1144,
+      1214,
+      -5
+    ],
+    [
+      1144,
+      1325,
+      -5
+    ],
+    [
+      1121,
+      1325,
+      -5
+    ],
+    [
+      1121,
+      1451,
+      -5
+    ],
+    [
+      1183,
+      1451,
+      -5
+    ],
+    [
+      1183,
+      1325,
+      -5
+    ],
+    [
+      1160,
+      1325,
+      -5
+    ],
+    [
+      1160,
+      1198,
+      -5
+    ],
+    [
+      1050,
+      1198,
+      -5
+    ],
+    [
+      1050,
+      1149,
+      -5
+    ],
+    [
+      1033,
+      1149,
+      -5
+    ],
+    [
+      1033,
+      1149,
+      50
+    ],
+    [
+      1099,
+      1084,
+      50
+    ],
+    [
+      1099,
+      1084,
+      -5
+    ],
+    [
+      1099,
+      1100,
+      -5
+    ],
+    [
+      1189,
+      1100,
+      -5
+    ],
+    [
+      1189,
+      1167,
+      -5
+    ],
+    [
+      1259,
+      1167,
+      -5
+    ],
+    [
+      1259,
+      1169,
+      -5
+    ],
+    [
+      1265,
+      1179,
+      -5
+    ],
+    [
+      1268,
+      1182,
+      -5
+    ],
+    [
+      1274,
+      1187,
+      -5
+    ],
+    [
+      1274,
+      1190,
+      -5
+    ],
+    [
+      1400,
+      1190,
+      -5
+    ],
+    [
+      1400,
+      1128,
+      -5
+    ],
+    [
+      1274,
+      1128,
+      -5
+    ],
+    [
+      1274,
+      1132,
+      -5
+    ],
+    [
+      1267,
+      1137,
+      -5
+    ],
+    [
+      1260,
+      1147,
+      -5
+    ],
+    [
+      1260,
+      1149,
+      -5
+    ],
+    [
+      1258,
+      1151,
+      -5
+    ],
+    [
+      1206,
+      1151,
+      -5
+    ],
+    [
+      1206,
+      1084,
+      -5
+    ],
+    [
+      1099,
+      1084,
+      -5
+    ],
+    [
+      1099,
+      1084,
+      50
+    ],
+    [
+      1099,
+      1044,
+      50
+    ],
+    [
+      1099,
+      1044,
+      -5
+    ],
+    [
+      1099,
+      1061,
+      -5
+    ],
+    [
+      1227,
+      1061,
+      -5
+    ],
+    [
+      1227,
+      1104,
+      -5
+    ],
+    [
+      1439,
+      1104,
+      -5
+    ],
+    [
+      1439,
+      1167,
+      -5
+    ],
+    [
+      1546,
+      1167,
+      -5
+    ],
+    [
+      1546,
+      1190,
+      -5
+    ],
+    [
+      1672,
+      1190,
+      -5
+    ],
+    [
+      1672,
+      1128,
+      -5
+    ],
+    [
+      1546,
+      1128,
+      -5
+    ],
+    [
+      1546,
+      1151,
+      -5
+    ],
+    [
+      1456,
+      1151,
+      -5
+    ],
+    [
+      1456,
+      1087,
+      -5
+    ],
+    [
+      1244,
+      1087,
+      -5
+    ],
+    [
+      1244,
+      1044,
+      -5
+    ],
+    [
+      1099,
+      1044,
+      -5
+    ],
+    [
+      1099,
+      1044,
+      50
+    ],
+    [
+      1058,
+      924,
+      50
+    ],
+    [
+      1058,
+      924,
+      -5
+    ],
+    [
+      1058,
+      941,
+      -5
+    ],
+    [
+      1161,
+      941,
+      -5
+    ],
+    [
+      1161,
+      924,
+      -5
+    ],
+    [
+      1058,
+      924,
+      -5
+    ],
+    [
+      1058,
+      924,
+      50
+    ],
+    [
+      1058,
+      884,
+      50
+    ],
+    [
+      1058,
+      884,
+      -5
+    ],
+    [
+      1058,
+      901,
+      -5
+    ],
+    [
+      1161,
+      901,
+      -5
+    ],
+    [
+      1161,
+      884,
+      -5
+    ],
+    [
+      1058,
+      884,
+      -5
+    ],
+    [
+      1058,
+      884,
+      50
+    ],
+    [
+      1274,
+      874,
+      50
+    ],
+    [
+      1274,
+      874,
+      -5
+    ],
+    [
+      1274,
+      897,
+      -5
+    ],
+    [
+      1189,
+      897,
+      -5
+    ],
+    [
+      1189,
+      964,
+      -5
+    ],
+    [
+      1099,
+      964,
+      -5
+    ],
+    [
+      1099,
+      981,
+      -5
+    ],
+    [
+      1206,
+      981,
+      -5
+    ],
+    [
+      1206,
+      914,
+      -5
+    ],
+    [
+      1274,
+      914,
+      -5
+    ],
+    [
+      1274,
+      936,
+      -5
+    ],
+    [
+      1400,
+      936,
+      -5
+    ],
+    [
+      1400,
+      874,
+      -5
+    ],
+    [
+      1274,
+      874,
+      -5
+    ],
+    [
+      1274,
+      874,
+      50
+    ],
+    [
+      1546,
+      874,
+      50
+    ],
+    [
+      1546,
+      874,
+      -5
+    ],
+    [
+      1546,
+      897,
+      -5
+    ],
+    [
+      1439,
+      897,
+      -5
+    ],
+    [
+      1439,
+      960,
+      -5
+    ],
+    [
+      1227,
+      960,
+      -5
+    ],
+    [
+      1227,
+      1004,
+      -5
+    ],
+    [
+      1099,
+      1004,
+      -5
+    ],
+    [
+      1099,
+      1021,
+      -5
+    ],
+    [
+      1244,
+      1021,
+      -5
+    ],
+    [
+      1244,
+      977,
+      -5
+    ],
+    [
+      1456,
+      977,
+      -5
+    ],
+    [
+      1456,
+      914,
+      -5
+    ],
+    [
+      1546,
+      914,
+      -5
+    ],
+    [
+      1546,
+      936,
+      -5
+    ],
+    [
+      1672,
+      936,
+      -5
+    ],
+    [
+      1672,
+      874,
+      -5
+    ],
+    [
+      1546,
+      874,
+      -5
+    ],
+    [
+      1546,
+      874,
+      50
+    ],
+    [
+      1433,
+      454,
+      50
+    ],
+    [
+      1433,
+      454,
+      -5
+    ],
+    [
+      1433,
+      580,
+      -5
+    ],
+    [
+      1437,
+      580,
+      -5
+    ],
+    [
+      1445,
+      590,
+      -5
+    ],
+    [
+      1447,
+      590,
+      -5
+    ],
+    [
+      1449,
+      592,
+      -5
+    ],
+    [
+      1456,
+      596,
+      -5
+    ],
+    [
+      1456,
+      639,
+      -5
+    ],
+    [
+      993,
+      639,
+      -5
+    ],
+    [
+      993,
+      755,
+      -5
+    ],
+    [
+      1010,
+      755,
+      -5
+    ],
+    [
+      1010,
+      656,
+      -5
+    ],
+    [
+      1473,
+      656,
+      -5
+    ],
+    [
+      1473,
+      595,
+      -5
+    ],
+    [
+      1484,
+      589,
+      -5
+    ],
+    [
+      1492,
+      580,
+      -5
+    ],
+    [
+      1495,
+      580,
+      -5
+    ],
+    [
+      1495,
+      454,
+      -5
+    ],
+    [
+      1433,
+      454,
+      -5
+    ],
+    [
+      1433,
+      454,
+      50
+    ],
+    [
+      1179,
+      454,
+      50
+    ],
+    [
+      1179,
+      454,
+      -5
+    ],
+    [
+      1179,
+      508,
+      -5
+    ],
+    [
+      953,
+      508,
+      -5
+    ],
+    [
+      953,
+      755,
+      -5
+    ],
+    [
+      970,
+      755,
+      -5
+    ],
+    [
+      970,
+      525,
+      -5
+    ],
+    [
+      1179,
+      525,
+      -5
+    ],
+    [
+      1179,
+      580,
+      -5
+    ],
+    [
+      1241,
+      580,
+      -5
+    ],
+    [
+      1241,
+      454,
+      -5
+    ],
+    [
+      1179,
+      454,
+      -5
+    ],
+    [
+      1179,
+      454,
+      50
+    ],
+    [
+      1179,
+      182,
+      50
+    ],
+    [
+      1179,
+      182,
+      -5
+    ],
+    [
+      1179,
+      237,
+      -5
+    ],
+    [
+      913,
+      237,
+      -5
+    ],
+    [
+      913,
+      755,
+      -5
+    ],
+    [
+      930,
+      755,
+      -5
+    ],
+    [
+      930,
+      253,
+      -5
+    ],
+    [
+      1179,
+      253,
+      -5
+    ],
+    [
+      1179,
+      308,
+      -5
+    ],
+    [
+      1241,
+      308,
+      -5
+    ],
+    [
+      1241,
+      182,
+      -5
+    ],
+    [
+      1179,
+      182,
+      -5
+    ],
+    [
+      1179,
+      182,
+      50
+    ],
+    [
+      1433,
+      182,
+      50
+    ],
+    [
+      1433,
+      182,
+      -5
+    ],
+    [
+      1433,
+      308,
+      -5
+    ],
+    [
+      1495,
+      308,
+      -5
+    ],
+    [
+      1495,
+      253,
+      -5
+    ],
+    [
+      1519,
+      253,
+      -5
+    ],
+    [
+      1519,
+      715,
+      -5
+    ],
+    [
+      1050,
+      715,
+      -5
+    ],
+    [
+      1050,
+      692,
+      -5
+    ],
+    [
+      1033,
+      692,
+      -5
+    ],
+    [
+      1033,
+      755,
+      -5
+    ],
+    [
+      1050,
+      755,
+      -5
+    ],
+    [
+      1050,
+      732,
+      -5
+    ],
+    [
+      1536,
+      732,
+      -5
+    ],
+    [
+      1536,
+      237,
+      -5
+    ],
+    [
+      1495,
+      237,
+      -5
+    ],
+    [
+      1495,
+      182,
+      -5
+    ],
+    [
+      1433,
+      182,
+      -5
+    ],
+    [
+      1433,
+      182,
+      50
+    ],
+    [
+      1367,
+      1407,
+      50
+    ],
+    [
+      1367,
+      1407,
+      -5
+    ],
+    [
+      1367,
+      1487,
+      -5
+    ],
+    [
+      1452,
+      1487,
+      -5
+    ],
+    [
+      1452,
+      1456,
+      -5
+    ],
+    [
+      1494,
+      1456,
+      -5
+    ],
+    [
+      1494,
+      1487,
+      -5
+    ],
+    [
+      1579,
+      1487,
+      -5
+    ],
+    [
+      1579,
+      1407,
+      -5
+    ],
+    [
+      1494,
+      1407,
+      -5
+    ],
+    [
+      1494,
+      1439,
+      -5
+    ],
+    [
+      1452,
+      1439,
+      -5
+    ],
+    [
+      1452,
+      1407,
+      -5
+    ],
+    [
+      1367,
+      1407,
+      -5
+    ],
+    [
+      1367,
+      1407,
+      50
+    ],
+    [
+      554,
+      1407,
+      50
+    ],
+    [
+      554,
+      1407,
+      -5
+    ],
+    [
+      554,
+      1487,
+      -5
+    ],
+    [
+      588,
+      1487,
+      -5
+    ],
+    [
+      588,
+      1532,
+      -5
+    ],
+    [
+      715,
+      1532,
+      -5
+    ],
+    [
+      715,
+      1559,
+      -5
+    ],
+    [
+      681,
+      1559,
+      -5
+    ],
+    [
+      681,
+      1640,
+      -5
+    ],
+    [
+      766,
+      1640,
+      -5
+    ],
+    [
+      766,
+      1559,
+      -5
+    ],
+    [
+      732,
+      1559,
+      -5
+    ],
+    [
+      732,
+      1515,
+      -5
+    ],
+    [
+      605,
+      1515,
+      -5
+    ],
+    [
+      605,
+      1487,
+      -5
+    ],
+    [
+      640,
+      1487,
+      -5
+    ],
+    [
+      640,
+      1407,
+      -5
+    ],
+    [
+      554,
+      1407,
+      -5
+    ],
+    [
+      554,
+      1407,
+      50
+    ],
+    [
+      407,
+      1695,
+      50
+    ],
+    [
+      407,
+      1695,
+      -5
+    ],
+    [
+      407,
+      1796,
+      -5
+    ],
+    [
+      482,
+      1796,
+      -5
+    ],
+    [
+      482,
+      1695,
+      -5
+    ],
+    [
+      407,
+      1695,
+      -5
+    ],
+    [
+      407,
+      1695,
+      50
+    ],
+    [
+      204,
+      1695,
+      50
+    ],
+    [
+      204,
+      1695,
+      -5
+    ],
+    [
+      204,
+      1796,
+      -5
+    ],
+    [
+      279,
+      1796,
+      -5
+    ],
+    [
+      279,
+      1695,
+      -5
+    ],
+    [
+      204,
+      1695,
+      -5
+    ],
+    [
+      204,
+      1695,
+      50
+    ],
+    [
+      144,
+      946,
+      50
+    ],
+    [
+      144,
+      946,
+      -5
+    ],
+    [
+      144,
+      1009,
+      -5
+    ],
+    [
+      270,
+      1009,
+      -5
+    ],
+    [
+      270,
+      946,
+      -5
+    ],
+    [
+      144,
+      946,
+      -5
+    ],
+    [
+      144,
+      946,
+      50
+    ],
+    [
+      204,
+      477,
+      50
+    ],
+    [
+      204,
+      477,
+      -5
+    ],
+    [
+      204,
+      484,
+      -5
+    ],
+    [
+      201,
+      484,
+      -5
+    ],
+    [
+      201,
+      554,
+      -5
+    ],
+    [
+      169,
+      554,
+      -5
+    ],
+    [
+      169,
+      639,
+      -5
+    ],
+    [
+      233,
+      639,
+      -5
+    ],
+    [
+      233,
+      681,
+      -5
+    ],
+    [
+      201,
+      681,
+      -5
+    ],
+    [
+      201,
+      766,
+      -5
+    ],
+    [
+      233,
+      766,
+      -5
+    ],
+    [
+      233,
+      819,
+      -5
+    ],
+    [
+      144,
+      819,
+      -5
+    ],
+    [
+      144,
+      842,
+      -5
+    ],
+    [
+      97,
+      842,
+      -5
+    ],
+    [
+      97,
+      1338,
+      -5
+    ],
+    [
+      177,
+      1338,
+      -5
+    ],
+    [
+      177,
+      1252,
+      -5
+    ],
+    [
+      114,
+      1252,
+      -5
+    ],
+    [
+      114,
+      1214,
+      -5
+    ],
+    [
+      770,
+      1214,
+      -5
+    ],
+    [
+      770,
+      1100,
+      -5
+    ],
+    [
+      970,
+      1100,
+      -5
+    ],
+    [
+      970,
+      821,
+      -5
+    ],
+    [
+      1161,
+      821,
+      -5
+    ],
+    [
+      1161,
+      804,
+      -5
+    ],
+    [
+      953,
+      804,
+      -5
+    ],
+    [
+      953,
+      1084,
+      -5
+    ],
+    [
+      753,
+      1084,
+      -5
+    ],
+    [
+      753,
+      1198,
+      -5
+    ],
+    [
+      114,
+      1198,
+      -5
+    ],
+    [
+      114,
+      859,
+      -5
+    ],
+    [
+      144,
+      859,
+      -5
+    ],
+    [
+      144,
+      882,
+      -5
+    ],
+    [
+      270,
+      882,
+      -5
+    ],
+    [
+      270,
+      819,
+      -5
+    ],
+    [
+      250,
+      819,
+      -5
+    ],
+    [
+      250,
+      766,
+      -5
+    ],
+    [
+      281,
+      766,
+      -5
+    ],
+    [
+      281,
+      681,
+      -5
+    ],
+    [
+      250,
+      681,
+      -5
+    ],
+    [
+      250,
+      554,
+      -5
+    ],
+    [
+      218,
+      554,
+      -5
+    ],
+    [
+      218,
+      507,
+      -5
+    ],
+    [
+      253,
+      507,
+      -5
+    ],
+    [
+      253,
+      477,
+      -5
+    ],
+    [
+      204,
+      477,
+      -5
+    ],
+    [
+      204,
+      477,
+      50
+    ]
+  ]
+}
diff --git a/test_files/example-path.json b/test_files/example-path.json
new file mode 100644
index 0000000..cc8e89a
--- /dev/null
+++ b/test_files/example-path.json
@@ -0,0 +1,3652 @@
+[
+  [
+    63,
+    63,
+    50
+  ],
+  [
+    63,
+    63,
+    -5
+  ],
+  [
+    1791,
+    63,
+    -5
+  ],
+  [
+    1791,
+    1854,
+    -5
+  ],
+  [
+    63,
+    1854,
+    -5
+  ],
+  [
+    63,
+    63,
+    -5
+  ],
+  [
+    63,
+    63,
+    50
+  ],
+  [
+    172,
+    135,
+    50
+  ],
+  [
+    172,
+    135,
+    -5
+  ],
+  [
+    172,
+    195,
+    -5
+  ],
+  [
+    201,
+    195,
+    -5
+  ],
+  [
+    201,
+    249,
+    -5
+  ],
+  [
+    169,
+    249,
+    -5
+  ],
+  [
+    169,
+    335,
+    -5
+  ],
+  [
+    201,
+    335,
+    -5
+  ],
+  [
+    201,
+    405,
+    -5
+  ],
+  [
+    204,
+    405,
+    -5
+  ],
+  [
+    204,
+    411,
+    -5
+  ],
+  [
+    253,
+    411,
+    -5
+  ],
+  [
+    253,
+    382,
+    -5
+  ],
+  [
+    218,
+    382,
+    -5
+  ],
+  [
+    218,
+    335,
+    -5
+  ],
+  [
+    250,
+    335,
+    -5
+  ],
+  [
+    250,
+    249,
+    -5
+  ],
+  [
+    218,
+    249,
+    -5
+  ],
+  [
+    218,
+    195,
+    -5
+  ],
+  [
+    222,
+    195,
+    -5
+  ],
+  [
+    222,
+    135,
+    -5
+  ],
+  [
+    172,
+    135,
+    -5
+  ],
+  [
+    172,
+    135,
+    50
+  ],
+  [
+    366,
+    97,
+    50
+  ],
+  [
+    366,
+    97,
+    -5
+  ],
+  [
+    366,
+    135,
+    -5
+  ],
+  [
+    350,
+    135,
+    -5
+  ],
+  [
+    350,
+    195,
+    -5
+  ],
+  [
+    400,
+    195,
+    -5
+  ],
+  [
+    400,
+    135,
+    -5
+  ],
+  [
+    383,
+    135,
+    -5
+  ],
+  [
+    383,
+    114,
+    -5
+  ],
+  [
+    683,
+    114,
+    -5
+  ],
+  [
+    683,
+    182,
+    -5
+  ],
+  [
+    661,
+    182,
+    -5
+  ],
+  [
+    661,
+    308,
+    -5
+  ],
+  [
+    723,
+    308,
+    -5
+  ],
+  [
+    723,
+    182,
+    -5
+  ],
+  [
+    700,
+    182,
+    -5
+  ],
+  [
+    700,
+    114,
+    -5
+  ],
+  [
+    1329,
+    114,
+    -5
+  ],
+  [
+    1329,
+    182,
+    -5
+  ],
+  [
+    1306,
+    182,
+    -5
+  ],
+  [
+    1306,
+    308,
+    -5
+  ],
+  [
+    1368,
+    308,
+    -5
+  ],
+  [
+    1368,
+    182,
+    -5
+  ],
+  [
+    1346,
+    182,
+    -5
+  ],
+  [
+    1346,
+    114,
+    -5
+  ],
+  [
+    1740,
+    114,
+    -5
+  ],
+  [
+    1740,
+    1024,
+    -5
+  ],
+  [
+    1672,
+    1024,
+    -5
+  ],
+  [
+    1672,
+    1001,
+    -5
+  ],
+  [
+    1546,
+    1001,
+    -5
+  ],
+  [
+    1546,
+    1063,
+    -5
+  ],
+  [
+    1672,
+    1063,
+    -5
+  ],
+  [
+    1672,
+    1041,
+    -5
+  ],
+  [
+    1740,
+    1041,
+    -5
+  ],
+  [
+    1740,
+    1791,
+    -5
+  ],
+  [
+    1033,
+    1791,
+    -5
+  ],
+  [
+    1033,
+    1722,
+    -5
+  ],
+  [
+    1056,
+    1722,
+    -5
+  ],
+  [
+    1056,
+    1596,
+    -5
+  ],
+  [
+    994,
+    1596,
+    -5
+  ],
+  [
+    994,
+    1722,
+    -5
+  ],
+  [
+    1017,
+    1722,
+    -5
+  ],
+  [
+    1017,
+    1807,
+    -5
+  ],
+  [
+    1757,
+    1807,
+    -5
+  ],
+  [
+    1757,
+    97,
+    -5
+  ],
+  [
+    366,
+    97,
+    -5
+  ],
+  [
+    366,
+    97,
+    50
+  ],
+  [
+    436,
+    135,
+    50
+  ],
+  [
+    436,
+    135,
+    -5
+  ],
+  [
+    436,
+    284,
+    -5
+  ],
+  [
+    402,
+    284,
+    -5
+  ],
+  [
+    402,
+    249,
+    -5
+  ],
+  [
+    322,
+    249,
+    -5
+  ],
+  [
+    322,
+    335,
+    -5
+  ],
+  [
+    402,
+    335,
+    -5
+  ],
+  [
+    402,
+    300,
+    -5
+  ],
+  [
+    436,
+    300,
+    -5
+  ],
+  [
+    436,
+    436,
+    -5
+  ],
+  [
+    368,
+    436,
+    -5
+  ],
+  [
+    368,
+    430,
+    -5
+  ],
+  [
+    318,
+    430,
+    -5
+  ],
+  [
+    318,
+    459,
+    -5
+  ],
+  [
+    368,
+    459,
+    -5
+  ],
+  [
+    368,
+    453,
+    -5
+  ],
+  [
+    436,
+    453,
+    -5
+  ],
+  [
+    436,
+    588,
+    -5
+  ],
+  [
+    402,
+    588,
+    -5
+  ],
+  [
+    402,
+    554,
+    -5
+  ],
+  [
+    322,
+    554,
+    -5
+  ],
+  [
+    322,
+    588,
+    -5
+  ],
+  [
+    309,
+    588,
+    -5
+  ],
+  [
+    309,
+    1096,
+    -5
+  ],
+  [
+    270,
+    1096,
+    -5
+  ],
+  [
+    270,
+    1073,
+    -5
+  ],
+  [
+    144,
+    1073,
+    -5
+  ],
+  [
+    144,
+    1136,
+    -5
+  ],
+  [
+    270,
+    1136,
+    -5
+  ],
+  [
+    270,
+    1113,
+    -5
+  ],
+  [
+    309,
+    1113,
+    -5
+  ],
+  [
+    309,
+    1176,
+    -5
+  ],
+  [
+    618,
+    1176,
+    -5
+  ],
+  [
+    618,
+    1100,
+    -5
+  ],
+  [
+    704,
+    1100,
+    -5
+  ],
+  [
+    704,
+    1084,
+    -5
+  ],
+  [
+    601,
+    1084,
+    -5
+  ],
+  [
+    601,
+    1160,
+    -5
+  ],
+  [
+    326,
+    1160,
+    -5
+  ],
+  [
+    326,
+    639,
+    -5
+  ],
+  [
+    402,
+    639,
+    -5
+  ],
+  [
+    402,
+    605,
+    -5
+  ],
+  [
+    453,
+    605,
+    -5
+  ],
+  [
+    453,
+    152,
+    -5
+  ],
+  [
+    620,
+    152,
+    -5
+  ],
+  [
+    620,
+    364,
+    -5
+  ],
+  [
+    683,
+    364,
+    -5
+  ],
+  [
+    683,
+    454,
+    -5
+  ],
+  [
+    661,
+    454,
+    -5
+  ],
+  [
+    661,
+    580,
+    -5
+  ],
+  [
+    723,
+    580,
+    -5
+  ],
+  [
+    723,
+    454,
+    -5
+  ],
+  [
+    700,
+    454,
+    -5
+  ],
+  [
+    700,
+    364,
+    -5
+  ],
+  [
+    764,
+    364,
+    -5
+  ],
+  [
+    764,
+    152,
+    -5
+  ],
+  [
+    1265,
+    152,
+    -5
+  ],
+  [
+    1265,
+    389,
+    -5
+  ],
+  [
+    1329,
+    389,
+    -5
+  ],
+  [
+    1329,
+    454,
+    -5
+  ],
+  [
+    1306,
+    454,
+    -5
+  ],
+  [
+    1306,
+    580,
+    -5
+  ],
+  [
+    1368,
+    580,
+    -5
+  ],
+  [
+    1368,
+    454,
+    -5
+  ],
+  [
+    1346,
+    454,
+    -5
+  ],
+  [
+    1346,
+    389,
+    -5
+  ],
+  [
+    1409,
+    389,
+    -5
+  ],
+  [
+    1409,
+    152,
+    -5
+  ],
+  [
+    1702,
+    152,
+    -5
+  ],
+  [
+    1702,
+    804,
+    -5
+  ],
+  [
+    1227,
+    804,
+    -5
+  ],
+  [
+    1227,
+    844,
+    -5
+  ],
+  [
+    1099,
+    844,
+    -5
+  ],
+  [
+    1099,
+    861,
+    -5
+  ],
+  [
+    1244,
+    861,
+    -5
+  ],
+  [
+    1244,
+    821,
+    -5
+  ],
+  [
+    1702,
+    821,
+    -5
+  ],
+  [
+    1702,
+    960,
+    -5
+  ],
+  [
+    1490,
+    960,
+    -5
+  ],
+  [
+    1490,
+    1024,
+    -5
+  ],
+  [
+    1400,
+    1024,
+    -5
+  ],
+  [
+    1400,
+    1001,
+    -5
+  ],
+  [
+    1274,
+    1001,
+    -5
+  ],
+  [
+    1274,
+    1063,
+    -5
+  ],
+  [
+    1400,
+    1063,
+    -5
+  ],
+  [
+    1400,
+    1041,
+    -5
+  ],
+  [
+    1490,
+    1041,
+    -5
+  ],
+  [
+    1490,
+    1104,
+    -5
+  ],
+  [
+    1702,
+    1104,
+    -5
+  ],
+  [
+    1702,
+    1623,
+    -5
+  ],
+  [
+    1579,
+    1623,
+    -5
+  ],
+  [
+    1579,
+    1559,
+    -5
+  ],
+  [
+    1494,
+    1559,
+    -5
+  ],
+  [
+    1494,
+    1640,
+    -5
+  ],
+  [
+    1702,
+    1640,
+    -5
+  ],
+  [
+    1702,
+    1752,
+    -5
+  ],
+  [
+    1097,
+    1752,
+    -5
+  ],
+  [
+    1097,
+    1540,
+    -5
+  ],
+  [
+    1033,
+    1540,
+    -5
+  ],
+  [
+    1033,
+    1451,
+    -5
+  ],
+  [
+    1056,
+    1451,
+    -5
+  ],
+  [
+    1056,
+    1325,
+    -5
+  ],
+  [
+    994,
+    1325,
+    -5
+  ],
+  [
+    994,
+    1451,
+    -5
+  ],
+  [
+    1017,
+    1451,
+    -5
+  ],
+  [
+    1017,
+    1540,
+    -5
+  ],
+  [
+    953,
+    1540,
+    -5
+  ],
+  [
+    953,
+    1752,
+    -5
+  ],
+  [
+    605,
+    1752,
+    -5
+  ],
+  [
+    605,
+    1640,
+    -5
+  ],
+  [
+    640,
+    1640,
+    -5
+  ],
+  [
+    640,
+    1559,
+    -5
+  ],
+  [
+    554,
+    1559,
+    -5
+  ],
+  [
+    554,
+    1591,
+    -5
+  ],
+  [
+    250,
+    1591,
+    -5
+  ],
+  [
+    250,
+    1479,
+    -5
+  ],
+  [
+    279,
+    1479,
+    -5
+  ],
+  [
+    279,
+    1378,
+    -5
+  ],
+  [
+    250,
+    1378,
+    -5
+  ],
+  [
+    250,
+    1338,
+    -5
+  ],
+  [
+    330,
+    1338,
+    -5
+  ],
+  [
+    330,
+    1252,
+    -5
+  ],
+  [
+    249,
+    1252,
+    -5
+  ],
+  [
+    249,
+    1287,
+    -5
+  ],
+  [
+    233,
+    1287,
+    -5
+  ],
+  [
+    233,
+    1378,
+    -5
+  ],
+  [
+    204,
+    1378,
+    -5
+  ],
+  [
+    204,
+    1479,
+    -5
+  ],
+  [
+    233,
+    1479,
+    -5
+  ],
+  [
+    233,
+    1608,
+    -5
+  ],
+  [
+    554,
+    1608,
+    -5
+  ],
+  [
+    554,
+    1640,
+    -5
+  ],
+  [
+    588,
+    1640,
+    -5
+  ],
+  [
+    588,
+    1769,
+    -5
+  ],
+  [
+    970,
+    1769,
+    -5
+  ],
+  [
+    970,
+    1557,
+    -5
+  ],
+  [
+    1080,
+    1557,
+    -5
+  ],
+  [
+    1080,
+    1769,
+    -5
+  ],
+  [
+    1719,
+    1769,
+    -5
+  ],
+  [
+    1719,
+    1087,
+    -5
+  ],
+  [
+    1507,
+    1087,
+    -5
+  ],
+  [
+    1507,
+    977,
+    -5
+  ],
+  [
+    1719,
+    977,
+    -5
+  ],
+  [
+    1719,
+    135,
+    -5
+  ],
+  [
+    1392,
+    135,
+    -5
+  ],
+  [
+    1392,
+    372,
+    -5
+  ],
+  [
+    1282,
+    372,
+    -5
+  ],
+  [
+    1282,
+    135,
+    -5
+  ],
+  [
+    747,
+    135,
+    -5
+  ],
+  [
+    747,
+    347,
+    -5
+  ],
+  [
+    637,
+    347,
+    -5
+  ],
+  [
+    637,
+    135,
+    -5
+  ],
+  [
+    436,
+    135,
+    -5
+  ],
+  [
+    436,
+    135,
+    50
+  ],
+  [
+    534,
+    182,
+    50
+  ],
+  [
+    534,
+    182,
+    -5
+  ],
+  [
+    534,
+    308,
+    -5
+  ],
+  [
+    556,
+    308,
+    -5
+  ],
+  [
+    556,
+    415,
+    -5
+  ],
+  [
+    620,
+    415,
+    -5
+  ],
+  [
+    620,
+    652,
+    -5
+  ],
+  [
+    793,
+    652,
+    -5
+  ],
+  [
+    793,
+    924,
+    -5
+  ],
+  [
+    642,
+    924,
+    -5
+  ],
+  [
+    642,
+    941,
+    -5
+  ],
+  [
+    810,
+    941,
+    -5
+  ],
+  [
+    810,
+    635,
+    -5
+  ],
+  [
+    637,
+    635,
+    -5
+  ],
+  [
+    637,
+    398,
+    -5
+  ],
+  [
+    573,
+    398,
+    -5
+  ],
+  [
+    573,
+    308,
+    -5
+  ],
+  [
+    596,
+    308,
+    -5
+  ],
+  [
+    596,
+    182,
+    -5
+  ],
+  [
+    534,
+    182,
+    -5
+  ],
+  [
+    534,
+    182,
+    50
+  ],
+  [
+    788,
+    182,
+    50
+  ],
+  [
+    788,
+    182,
+    -5
+  ],
+  [
+    788,
+    308,
+    -5
+  ],
+  [
+    850,
+    308,
+    -5
+  ],
+  [
+    850,
+    253,
+    -5
+  ],
+  [
+    873,
+    253,
+    -5
+  ],
+  [
+    873,
+    1004,
+    -5
+  ],
+  [
+    642,
+    1004,
+    -5
+  ],
+  [
+    642,
+    1021,
+    -5
+  ],
+  [
+    890,
+    1021,
+    -5
+  ],
+  [
+    890,
+    237,
+    -5
+  ],
+  [
+    850,
+    237,
+    -5
+  ],
+  [
+    850,
+    182,
+    -5
+  ],
+  [
+    788,
+    182,
+    -5
+  ],
+  [
+    788,
+    182,
+    50
+  ],
+  [
+    788,
+    454,
+    50
+  ],
+  [
+    788,
+    454,
+    -5
+  ],
+  [
+    788,
+    580,
+    -5
+  ],
+  [
+    792,
+    580,
+    -5
+  ],
+  [
+    792,
+    582,
+    -5
+  ],
+  [
+    796,
+    586,
+    -5
+  ],
+  [
+    798,
+    588,
+    -5
+  ],
+  [
+    807,
+    594,
+    -5
+  ],
+  [
+    809,
+    594,
+    -5
+  ],
+  [
+    817,
+    596,
+    -5
+  ],
+  [
+    825,
+    596,
+    -5
+  ],
+  [
+    833,
+    593,
+    -5
+  ],
+  [
+    833,
+    964,
+    -5
+  ],
+  [
+    642,
+    964,
+    -5
+  ],
+  [
+    642,
+    981,
+    -5
+  ],
+  [
+    850,
+    981,
+    -5
+  ],
+  [
+    850,
+    454,
+    -5
+  ],
+  [
+    788,
+    454,
+    -5
+  ],
+  [
+    788,
+    454,
+    50
+  ],
+  [
+    534,
+    454,
+    50
+  ],
+  [
+    534,
+    454,
+    -5
+  ],
+  [
+    534,
+    580,
+    -5
+  ],
+  [
+    556,
+    580,
+    -5
+  ],
+  [
+    556,
+    690,
+    -5
+  ],
+  [
+    753,
+    690,
+    -5
+  ],
+  [
+    753,
+    884,
+    -5
+  ],
+  [
+    642,
+    884,
+    -5
+  ],
+  [
+    642,
+    901,
+    -5
+  ],
+  [
+    770,
+    901,
+    -5
+  ],
+  [
+    770,
+    673,
+    -5
+  ],
+  [
+    573,
+    673,
+    -5
+  ],
+  [
+    573,
+    580,
+    -5
+  ],
+  [
+    596,
+    580,
+    -5
+  ],
+  [
+    596,
+    454,
+    -5
+  ],
+  [
+    534,
+    454,
+    -5
+  ],
+  [
+    534,
+    454,
+    50
+  ],
+  [
+    354,
+    681,
+    50
+  ],
+  [
+    354,
+    681,
+    -5
+  ],
+  [
+    354,
+    766,
+    -5
+  ],
+  [
+    360,
+    766,
+    -5
+  ],
+  [
+    360,
+    1113,
+    -5
+  ],
+  [
+    416,
+    1113,
+    -5
+  ],
+  [
+    416,
+    1136,
+    -5
+  ],
+  [
+    542,
+    1136,
+    -5
+  ],
+  [
+    542,
+    1073,
+    -5
+  ],
+  [
+    416,
+    1073,
+    -5
+  ],
+  [
+    416,
+    1096,
+    -5
+  ],
+  [
+    377,
+    1096,
+    -5
+  ],
+  [
+    377,
+    766,
+    -5
+  ],
+  [
+    434,
+    766,
+    -5
+  ],
+  [
+    434,
+    732,
+    -5
+  ],
+  [
+    665,
+    732,
+    -5
+  ],
+  [
+    665,
+    804,
+    -5
+  ],
+  [
+    642,
+    804,
+    -5
+  ],
+  [
+    642,
+    821,
+    -5
+  ],
+  [
+    704,
+    821,
+    -5
+  ],
+  [
+    704,
+    804,
+    -5
+  ],
+  [
+    681,
+    804,
+    -5
+  ],
+  [
+    681,
+    715,
+    -5
+  ],
+  [
+    434,
+    715,
+    -5
+  ],
+  [
+    434,
+    681,
+    -5
+  ],
+  [
+    354,
+    681,
+    -5
+  ],
+  [
+    354,
+    681,
+    50
+  ],
+  [
+    416,
+    819,
+    50
+  ],
+  [
+    416,
+    819,
+    -5
+  ],
+  [
+    416,
+    882,
+    -5
+  ],
+  [
+    546,
+    882,
+    -5
+  ],
+  [
+    559,
+    877,
+    -5
+  ],
+  [
+    568,
+    868,
+    -5
+  ],
+  [
+    572,
+    861,
+    -5
+  ],
+  [
+    704,
+    861,
+    -5
+  ],
+  [
+    704,
+    844,
+    -5
+  ],
+  [
+    573,
+    844,
+    -5
+  ],
+  [
+    568,
+    833,
+    -5
+  ],
+  [
+    560,
+    825,
+    -5
+  ],
+  [
+    551,
+    821,
+    -5
+  ],
+  [
+    539,
+    819,
+    -5
+  ],
+  [
+    416,
+    819,
+    -5
+  ],
+  [
+    416,
+    819,
+    50
+  ],
+  [
+    416,
+    946,
+    50
+  ],
+  [
+    416,
+    946,
+    -5
+  ],
+  [
+    416,
+    1009,
+    -5
+  ],
+  [
+    542,
+    1009,
+    -5
+  ],
+  [
+    542,
+    946,
+    -5
+  ],
+  [
+    416,
+    946,
+    -5
+  ],
+  [
+    416,
+    946,
+    50
+  ],
+  [
+    601,
+    1044,
+    50
+  ],
+  [
+    601,
+    1044,
+    -5
+  ],
+  [
+    601,
+    1061,
+    -5
+  ],
+  [
+    704,
+    1061,
+    -5
+  ],
+  [
+    704,
+    1044,
+    -5
+  ],
+  [
+    601,
+    1044,
+    -5
+  ],
+  [
+    601,
+    1044,
+    50
+  ],
+  [
+    793,
+    1149,
+    50
+  ],
+  [
+    793,
+    1149,
+    -5
+  ],
+  [
+    793,
+    1236,
+    -5
+  ],
+  [
+    436,
+    1236,
+    -5
+  ],
+  [
+    436,
+    1378,
+    -5
+  ],
+  [
+    407,
+    1378,
+    -5
+  ],
+  [
+    407,
+    1479,
+    -5
+  ],
+  [
+    482,
+    1479,
+    -5
+  ],
+  [
+    482,
+    1378,
+    -5
+  ],
+  [
+    453,
+    1378,
+    -5
+  ],
+  [
+    453,
+    1253,
+    -5
+  ],
+  [
+    810,
+    1253,
+    -5
+  ],
+  [
+    810,
+    1149,
+    -5
+  ],
+  [
+    793,
+    1149,
+    -5
+  ],
+  [
+    793,
+    1149,
+    50
+  ],
+  [
+    833,
+    1149,
+    50
+  ],
+  [
+    833,
+    1149,
+    -5
+  ],
+  [
+    833,
+    1274,
+    -5
+  ],
+  [
+    715,
+    1274,
+    -5
+  ],
+  [
+    715,
+    1407,
+    -5
+  ],
+  [
+    681,
+    1407,
+    -5
+  ],
+  [
+    681,
+    1487,
+    -5
+  ],
+  [
+    766,
+    1487,
+    -5
+  ],
+  [
+    766,
+    1407,
+    -5
+  ],
+  [
+    732,
+    1407,
+    -5
+  ],
+  [
+    732,
+    1291,
+    -5
+  ],
+  [
+    850,
+    1291,
+    -5
+  ],
+  [
+    850,
+    1149,
+    -5
+  ],
+  [
+    833,
+    1149,
+    -5
+  ],
+  [
+    833,
+    1149,
+    50
+  ],
+  [
+    873,
+    1149,
+    50
+  ],
+  [
+    873,
+    1149,
+    -5
+  ],
+  [
+    873,
+    1253,
+    -5
+  ],
+  [
+    890,
+    1253,
+    -5
+  ],
+  [
+    890,
+    1149,
+    -5
+  ],
+  [
+    873,
+    1149,
+    -5
+  ],
+  [
+    873,
+    1149,
+    50
+  ],
+  [
+    913,
+    1149,
+    50
+  ],
+  [
+    913,
+    1149,
+    -5
+  ],
+  [
+    913,
+    1311,
+    -5
+  ],
+  [
+    910,
+    1311,
+    -5
+  ],
+  [
+    904,
+    1309,
+    -5
+  ],
+  [
+    902,
+    1309,
+    -5
+  ],
+  [
+    894,
+    1308,
+    -5
+  ],
+  [
+    883,
+    1312,
+    -5
+  ],
+  [
+    873,
+    1321,
+    -5
+  ],
+  [
+    870,
+    1325,
+    -5
+  ],
+  [
+    867,
+    1325,
+    -5
+  ],
+  [
+    867,
+    1451,
+    -5
+  ],
+  [
+    929,
+    1451,
+    -5
+  ],
+  [
+    929,
+    1396,
+    -5
+  ],
+  [
+    930,
+    1149,
+    -5
+  ],
+  [
+    913,
+    1149,
+    -5
+  ],
+  [
+    913,
+    1149,
+    50
+  ],
+  [
+    953,
+    1149,
+    50
+  ],
+  [
+    953,
+    1149,
+    -5
+  ],
+  [
+    953,
+    1490,
+    -5
+  ],
+  [
+    890,
+    1490,
+    -5
+  ],
+  [
+    890,
+    1596,
+    -5
+  ],
+  [
+    867,
+    1596,
+    -5
+  ],
+  [
+    867,
+    1722,
+    -5
+  ],
+  [
+    929,
+    1722,
+    -5
+  ],
+  [
+    929,
+    1596,
+    -5
+  ],
+  [
+    906,
+    1596,
+    -5
+  ],
+  [
+    906,
+    1506,
+    -5
+  ],
+  [
+    970,
+    1506,
+    -5
+  ],
+  [
+    970,
+    1149,
+    -5
+  ],
+  [
+    953,
+    1149,
+    -5
+  ],
+  [
+    953,
+    1149,
+    50
+  ],
+  [
+    993,
+    1149,
+    50
+  ],
+  [
+    993,
+    1149,
+    -5
+  ],
+  [
+    993,
+    1256,
+    -5
+  ],
+  [
+    1080,
+    1256,
+    -5
+  ],
+  [
+    1080,
+    1506,
+    -5
+  ],
+  [
+    1144,
+    1506,
+    -5
+  ],
+  [
+    1144,
+    1596,
+    -5
+  ],
+  [
+    1121,
+    1596,
+    -5
+  ],
+  [
+    1121,
+    1722,
+    -5
+  ],
+  [
+    1183,
+    1722,
+    -5
+  ],
+  [
+    1183,
+    1640,
+    -5
+  ],
+  [
+    1452,
+    1640,
+    -5
+  ],
+  [
+    1452,
+    1559,
+    -5
+  ],
+  [
+    1367,
+    1559,
+    -5
+  ],
+  [
+    1367,
+    1623,
+    -5
+  ],
+  [
+    1183,
+    1623,
+    -5
+  ],
+  [
+    1183,
+    1596,
+    -5
+  ],
+  [
+    1160,
+    1596,
+    -5
+  ],
+  [
+    1160,
+    1490,
+    -5
+  ],
+  [
+    1097,
+    1490,
+    -5
+  ],
+  [
+    1097,
+    1240,
+    -5
+  ],
+  [
+    1010,
+    1240,
+    -5
+  ],
+  [
+    1010,
+    1149,
+    -5
+  ],
+  [
+    993,
+    1149,
+    -5
+  ],
+  [
+    993,
+    1149,
+    50
+  ],
+  [
+    1033,
+    1149,
+    50
+  ],
+  [
+    1033,
+    1149,
+    -5
+  ],
+  [
+    1033,
+    1214,
+    -5
+  ],
+  [
+    1144,
+    1214,
+    -5
+  ],
+  [
+    1144,
+    1325,
+    -5
+  ],
+  [
+    1121,
+    1325,
+    -5
+  ],
+  [
+    1121,
+    1451,
+    -5
+  ],
+  [
+    1183,
+    1451,
+    -5
+  ],
+  [
+    1183,
+    1325,
+    -5
+  ],
+  [
+    1160,
+    1325,
+    -5
+  ],
+  [
+    1160,
+    1198,
+    -5
+  ],
+  [
+    1050,
+    1198,
+    -5
+  ],
+  [
+    1050,
+    1149,
+    -5
+  ],
+  [
+    1033,
+    1149,
+    -5
+  ],
+  [
+    1033,
+    1149,
+    50
+  ],
+  [
+    1099,
+    1084,
+    50
+  ],
+  [
+    1099,
+    1084,
+    -5
+  ],
+  [
+    1099,
+    1100,
+    -5
+  ],
+  [
+    1189,
+    1100,
+    -5
+  ],
+  [
+    1189,
+    1167,
+    -5
+  ],
+  [
+    1259,
+    1167,
+    -5
+  ],
+  [
+    1259,
+    1169,
+    -5
+  ],
+  [
+    1265,
+    1179,
+    -5
+  ],
+  [
+    1268,
+    1182,
+    -5
+  ],
+  [
+    1274,
+    1187,
+    -5
+  ],
+  [
+    1274,
+    1190,
+    -5
+  ],
+  [
+    1400,
+    1190,
+    -5
+  ],
+  [
+    1400,
+    1128,
+    -5
+  ],
+  [
+    1274,
+    1128,
+    -5
+  ],
+  [
+    1274,
+    1132,
+    -5
+  ],
+  [
+    1267,
+    1137,
+    -5
+  ],
+  [
+    1260,
+    1147,
+    -5
+  ],
+  [
+    1260,
+    1149,
+    -5
+  ],
+  [
+    1258,
+    1151,
+    -5
+  ],
+  [
+    1206,
+    1151,
+    -5
+  ],
+  [
+    1206,
+    1084,
+    -5
+  ],
+  [
+    1099,
+    1084,
+    -5
+  ],
+  [
+    1099,
+    1084,
+    50
+  ],
+  [
+    1099,
+    1044,
+    50
+  ],
+  [
+    1099,
+    1044,
+    -5
+  ],
+  [
+    1099,
+    1061,
+    -5
+  ],
+  [
+    1227,
+    1061,
+    -5
+  ],
+  [
+    1227,
+    1104,
+    -5
+  ],
+  [
+    1439,
+    1104,
+    -5
+  ],
+  [
+    1439,
+    1167,
+    -5
+  ],
+  [
+    1546,
+    1167,
+    -5
+  ],
+  [
+    1546,
+    1190,
+    -5
+  ],
+  [
+    1672,
+    1190,
+    -5
+  ],
+  [
+    1672,
+    1128,
+    -5
+  ],
+  [
+    1546,
+    1128,
+    -5
+  ],
+  [
+    1546,
+    1151,
+    -5
+  ],
+  [
+    1456,
+    1151,
+    -5
+  ],
+  [
+    1456,
+    1087,
+    -5
+  ],
+  [
+    1244,
+    1087,
+    -5
+  ],
+  [
+    1244,
+    1044,
+    -5
+  ],
+  [
+    1099,
+    1044,
+    -5
+  ],
+  [
+    1099,
+    1044,
+    50
+  ],
+  [
+    1058,
+    924,
+    50
+  ],
+  [
+    1058,
+    924,
+    -5
+  ],
+  [
+    1058,
+    941,
+    -5
+  ],
+  [
+    1161,
+    941,
+    -5
+  ],
+  [
+    1161,
+    924,
+    -5
+  ],
+  [
+    1058,
+    924,
+    -5
+  ],
+  [
+    1058,
+    924,
+    50
+  ],
+  [
+    1058,
+    884,
+    50
+  ],
+  [
+    1058,
+    884,
+    -5
+  ],
+  [
+    1058,
+    901,
+    -5
+  ],
+  [
+    1161,
+    901,
+    -5
+  ],
+  [
+    1161,
+    884,
+    -5
+  ],
+  [
+    1058,
+    884,
+    -5
+  ],
+  [
+    1058,
+    884,
+    50
+  ],
+  [
+    1274,
+    874,
+    50
+  ],
+  [
+    1274,
+    874,
+    -5
+  ],
+  [
+    1274,
+    897,
+    -5
+  ],
+  [
+    1189,
+    897,
+    -5
+  ],
+  [
+    1189,
+    964,
+    -5
+  ],
+  [
+    1099,
+    964,
+    -5
+  ],
+  [
+    1099,
+    981,
+    -5
+  ],
+  [
+    1206,
+    981,
+    -5
+  ],
+  [
+    1206,
+    914,
+    -5
+  ],
+  [
+    1274,
+    914,
+    -5
+  ],
+  [
+    1274,
+    936,
+    -5
+  ],
+  [
+    1400,
+    936,
+    -5
+  ],
+  [
+    1400,
+    874,
+    -5
+  ],
+  [
+    1274,
+    874,
+    -5
+  ],
+  [
+    1274,
+    874,
+    50
+  ],
+  [
+    1546,
+    874,
+    50
+  ],
+  [
+    1546,
+    874,
+    -5
+  ],
+  [
+    1546,
+    897,
+    -5
+  ],
+  [
+    1439,
+    897,
+    -5
+  ],
+  [
+    1439,
+    960,
+    -5
+  ],
+  [
+    1227,
+    960,
+    -5
+  ],
+  [
+    1227,
+    1004,
+    -5
+  ],
+  [
+    1099,
+    1004,
+    -5
+  ],
+  [
+    1099,
+    1021,
+    -5
+  ],
+  [
+    1244,
+    1021,
+    -5
+  ],
+  [
+    1244,
+    977,
+    -5
+  ],
+  [
+    1456,
+    977,
+    -5
+  ],
+  [
+    1456,
+    914,
+    -5
+  ],
+  [
+    1546,
+    914,
+    -5
+  ],
+  [
+    1546,
+    936,
+    -5
+  ],
+  [
+    1672,
+    936,
+    -5
+  ],
+  [
+    1672,
+    874,
+    -5
+  ],
+  [
+    1546,
+    874,
+    -5
+  ],
+  [
+    1546,
+    874,
+    50
+  ],
+  [
+    1433,
+    454,
+    50
+  ],
+  [
+    1433,
+    454,
+    -5
+  ],
+  [
+    1433,
+    580,
+    -5
+  ],
+  [
+    1437,
+    580,
+    -5
+  ],
+  [
+    1445,
+    590,
+    -5
+  ],
+  [
+    1447,
+    590,
+    -5
+  ],
+  [
+    1449,
+    592,
+    -5
+  ],
+  [
+    1456,
+    596,
+    -5
+  ],
+  [
+    1456,
+    639,
+    -5
+  ],
+  [
+    993,
+    639,
+    -5
+  ],
+  [
+    993,
+    755,
+    -5
+  ],
+  [
+    1010,
+    755,
+    -5
+  ],
+  [
+    1010,
+    656,
+    -5
+  ],
+  [
+    1473,
+    656,
+    -5
+  ],
+  [
+    1473,
+    595,
+    -5
+  ],
+  [
+    1484,
+    589,
+    -5
+  ],
+  [
+    1492,
+    580,
+    -5
+  ],
+  [
+    1495,
+    580,
+    -5
+  ],
+  [
+    1495,
+    454,
+    -5
+  ],
+  [
+    1433,
+    454,
+    -5
+  ],
+  [
+    1433,
+    454,
+    50
+  ],
+  [
+    1179,
+    454,
+    50
+  ],
+  [
+    1179,
+    454,
+    -5
+  ],
+  [
+    1179,
+    508,
+    -5
+  ],
+  [
+    953,
+    508,
+    -5
+  ],
+  [
+    953,
+    755,
+    -5
+  ],
+  [
+    970,
+    755,
+    -5
+  ],
+  [
+    970,
+    525,
+    -5
+  ],
+  [
+    1179,
+    525,
+    -5
+  ],
+  [
+    1179,
+    580,
+    -5
+  ],
+  [
+    1241,
+    580,
+    -5
+  ],
+  [
+    1241,
+    454,
+    -5
+  ],
+  [
+    1179,
+    454,
+    -5
+  ],
+  [
+    1179,
+    454,
+    50
+  ],
+  [
+    1179,
+    182,
+    50
+  ],
+  [
+    1179,
+    182,
+    -5
+  ],
+  [
+    1179,
+    237,
+    -5
+  ],
+  [
+    913,
+    237,
+    -5
+  ],
+  [
+    913,
+    755,
+    -5
+  ],
+  [
+    930,
+    755,
+    -5
+  ],
+  [
+    930,
+    253,
+    -5
+  ],
+  [
+    1179,
+    253,
+    -5
+  ],
+  [
+    1179,
+    308,
+    -5
+  ],
+  [
+    1241,
+    308,
+    -5
+  ],
+  [
+    1241,
+    182,
+    -5
+  ],
+  [
+    1179,
+    182,
+    -5
+  ],
+  [
+    1179,
+    182,
+    50
+  ],
+  [
+    1433,
+    182,
+    50
+  ],
+  [
+    1433,
+    182,
+    -5
+  ],
+  [
+    1433,
+    308,
+    -5
+  ],
+  [
+    1495,
+    308,
+    -5
+  ],
+  [
+    1495,
+    253,
+    -5
+  ],
+  [
+    1519,
+    253,
+    -5
+  ],
+  [
+    1519,
+    715,
+    -5
+  ],
+  [
+    1050,
+    715,
+    -5
+  ],
+  [
+    1050,
+    692,
+    -5
+  ],
+  [
+    1033,
+    692,
+    -5
+  ],
+  [
+    1033,
+    755,
+    -5
+  ],
+  [
+    1050,
+    755,
+    -5
+  ],
+  [
+    1050,
+    732,
+    -5
+  ],
+  [
+    1536,
+    732,
+    -5
+  ],
+  [
+    1536,
+    237,
+    -5
+  ],
+  [
+    1495,
+    237,
+    -5
+  ],
+  [
+    1495,
+    182,
+    -5
+  ],
+  [
+    1433,
+    182,
+    -5
+  ],
+  [
+    1433,
+    182,
+    50
+  ],
+  [
+    1367,
+    1407,
+    50
+  ],
+  [
+    1367,
+    1407,
+    -5
+  ],
+  [
+    1367,
+    1487,
+    -5
+  ],
+  [
+    1452,
+    1487,
+    -5
+  ],
+  [
+    1452,
+    1456,
+    -5
+  ],
+  [
+    1494,
+    1456,
+    -5
+  ],
+  [
+    1494,
+    1487,
+    -5
+  ],
+  [
+    1579,
+    1487,
+    -5
+  ],
+  [
+    1579,
+    1407,
+    -5
+  ],
+  [
+    1494,
+    1407,
+    -5
+  ],
+  [
+    1494,
+    1439,
+    -5
+  ],
+  [
+    1452,
+    1439,
+    -5
+  ],
+  [
+    1452,
+    1407,
+    -5
+  ],
+  [
+    1367,
+    1407,
+    -5
+  ],
+  [
+    1367,
+    1407,
+    50
+  ],
+  [
+    554,
+    1407,
+    50
+  ],
+  [
+    554,
+    1407,
+    -5
+  ],
+  [
+    554,
+    1487,
+    -5
+  ],
+  [
+    588,
+    1487,
+    -5
+  ],
+  [
+    588,
+    1532,
+    -5
+  ],
+  [
+    715,
+    1532,
+    -5
+  ],
+  [
+    715,
+    1559,
+    -5
+  ],
+  [
+    681,
+    1559,
+    -5
+  ],
+  [
+    681,
+    1640,
+    -5
+  ],
+  [
+    766,
+    1640,
+    -5
+  ],
+  [
+    766,
+    1559,
+    -5
+  ],
+  [
+    732,
+    1559,
+    -5
+  ],
+  [
+    732,
+    1515,
+    -5
+  ],
+  [
+    605,
+    1515,
+    -5
+  ],
+  [
+    605,
+    1487,
+    -5
+  ],
+  [
+    640,
+    1487,
+    -5
+  ],
+  [
+    640,
+    1407,
+    -5
+  ],
+  [
+    554,
+    1407,
+    -5
+  ],
+  [
+    554,
+    1407,
+    50
+  ],
+  [
+    407,
+    1695,
+    50
+  ],
+  [
+    407,
+    1695,
+    -5
+  ],
+  [
+    407,
+    1796,
+    -5
+  ],
+  [
+    482,
+    1796,
+    -5
+  ],
+  [
+    482,
+    1695,
+    -5
+  ],
+  [
+    407,
+    1695,
+    -5
+  ],
+  [
+    407,
+    1695,
+    50
+  ],
+  [
+    204,
+    1695,
+    50
+  ],
+  [
+    204,
+    1695,
+    -5
+  ],
+  [
+    204,
+    1796,
+    -5
+  ],
+  [
+    279,
+    1796,
+    -5
+  ],
+  [
+    279,
+    1695,
+    -5
+  ],
+  [
+    204,
+    1695,
+    -5
+  ],
+  [
+    204,
+    1695,
+    50
+  ],
+  [
+    144,
+    946,
+    50
+  ],
+  [
+    144,
+    946,
+    -5
+  ],
+  [
+    144,
+    1009,
+    -5
+  ],
+  [
+    270,
+    1009,
+    -5
+  ],
+  [
+    270,
+    946,
+    -5
+  ],
+  [
+    144,
+    946,
+    -5
+  ],
+  [
+    144,
+    946,
+    50
+  ],
+  [
+    204,
+    477,
+    50
+  ],
+  [
+    204,
+    477,
+    -5
+  ],
+  [
+    204,
+    484,
+    -5
+  ],
+  [
+    201,
+    484,
+    -5
+  ],
+  [
+    201,
+    554,
+    -5
+  ],
+  [
+    169,
+    554,
+    -5
+  ],
+  [
+    169,
+    639,
+    -5
+  ],
+  [
+    233,
+    639,
+    -5
+  ],
+  [
+    233,
+    681,
+    -5
+  ],
+  [
+    201,
+    681,
+    -5
+  ],
+  [
+    201,
+    766,
+    -5
+  ],
+  [
+    233,
+    766,
+    -5
+  ],
+  [
+    233,
+    819,
+    -5
+  ],
+  [
+    144,
+    819,
+    -5
+  ],
+  [
+    144,
+    842,
+    -5
+  ],
+  [
+    97,
+    842,
+    -5
+  ],
+  [
+    97,
+    1338,
+    -5
+  ],
+  [
+    177,
+    1338,
+    -5
+  ],
+  [
+    177,
+    1252,
+    -5
+  ],
+  [
+    114,
+    1252,
+    -5
+  ],
+  [
+    114,
+    1214,
+    -5
+  ],
+  [
+    770,
+    1214,
+    -5
+  ],
+  [
+    770,
+    1100,
+    -5
+  ],
+  [
+    970,
+    1100,
+    -5
+  ],
+  [
+    970,
+    821,
+    -5
+  ],
+  [
+    1161,
+    821,
+    -5
+  ],
+  [
+    1161,
+    804,
+    -5
+  ],
+  [
+    953,
+    804,
+    -5
+  ],
+  [
+    953,
+    1084,
+    -5
+  ],
+  [
+    753,
+    1084,
+    -5
+  ],
+  [
+    753,
+    1198,
+    -5
+  ],
+  [
+    114,
+    1198,
+    -5
+  ],
+  [
+    114,
+    859,
+    -5
+  ],
+  [
+    144,
+    859,
+    -5
+  ],
+  [
+    144,
+    882,
+    -5
+  ],
+  [
+    270,
+    882,
+    -5
+  ],
+  [
+    270,
+    819,
+    -5
+  ],
+  [
+    250,
+    819,
+    -5
+  ],
+  [
+    250,
+    766,
+    -5
+  ],
+  [
+    281,
+    766,
+    -5
+  ],
+  [
+    281,
+    681,
+    -5
+  ],
+  [
+    250,
+    681,
+    -5
+  ],
+  [
+    250,
+    554,
+    -5
+  ],
+  [
+    218,
+    554,
+    -5
+  ],
+  [
+    218,
+    507,
+    -5
+  ],
+  [
+    253,
+    507,
+    -5
+  ],
+  [
+    253,
+    477,
+    -5
+  ],
+  [
+    204,
+    477,
+    -5
+  ],
+  [
+    204,
+    477,
+    50
+  ]
+]
diff --git a/typeset.js b/typeset.js
index 036129b..087e48d 100644
--- a/typeset.js
+++ b/typeset.js
@@ -514,7 +514,7 @@ const TSET = [
     copy: {
       array: (arr) => [...arr],
       reference: (arr) => {
-        return arr 
+        return arr
       }
     }
   }
-- 
GitLab