diff --git a/css/loading.css b/css/loading.css index 12e55b96..ac0f5e8d 100644 --- a/css/loading.css +++ b/css/loading.css @@ -22,7 +22,7 @@ body { justify-content: center; align-items: center; z-index: 6; - pointer-events: none; + cursor: progress; } .loading-icon { @@ -35,7 +35,6 @@ body { width: 256; height: 256; scale: 0.6; - pointer-events: visiblePainted; } .loading-tip { diff --git a/css/style.css b/css/style.css index 0e4dd87c..33f44537 100644 --- a/css/style.css +++ b/css/style.css @@ -1,14 +1,37 @@ @import url('https://fonts.googleapis.com/css2?family=Trispace:wght@100&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@300&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Assistant:wght@500&display=swap'); -/*i titled these poorly, without trying how any of it looks*/ :root { --bg: #202020; --block-color: #2b2b2b; --button-color: #373737; + --games-color: #373737a6; --hover-color: #3c3c3c; + --scrollbar-color: #434343; + --scroll-track-color: #111; --font-color: #dcddde; - --font-family: 'Work Sans', sans-serif; + --font-family: 'Assistant', sans-serif; +} + +::-webkit-scrollbar { + width: 20px; +} + +::-webkit-scrollbar-thumb { + background: var(--scrollbar-color); + background-clip: content-box; + border-radius: 16px; + border: 2.9px solid transparent; + box-shadow: inset 2px 2px 2px hsla(0,0%,100%,.25),inset -2px -2px 2px rgba(0,0,0,.25); + transition: all 0.2s ease-in; +} + +::-webkit-scrollbar-thumb:hover { + background-color: var(--hover-color); +} + +::-webkit-scrollbar-track { + background: linear-gradient(90deg,var(--scrollbar-color),var(--scrollbar-color) 1px,var(--scroll-track-color) 0,var(--scroll-track-color)); } html { @@ -59,17 +82,23 @@ body.noscript { display: grid; } -.homepage { +.homepage, .games, .proxy, .settings { position: absolute; top: 0; left: 0; margin-top: 15rem; + width: 100vw; display: flex; justify-content: center; align-items: center; z-index: 10; } +.games { + flex-direction: column; + top: 2.5%; +} + #title { z-index: 50; position: relative; @@ -89,6 +118,57 @@ body.noscript { pointer-events: none; } +#gamesList { + list-style: none; + padding: 0; + margin: 0; + z-index: 10; + width: 75%; + height: 60vh; + font-family: var(--font-family); + overflow-y: scroll; +} + +#gamesList li { + padding: 1rem; + transition: all 0.2s ease-in; + letter-spacing: 1px; + background-color: var(--games-color); +} + +#gamesList li:hover, #gamesList li:focus, #gamesList .active { + background-color: var(--hover-color); +} + +.searchbar { + display: flex; + width: 75%; + justify-content: center; + margin-bottom: 5px; +} + +#search { + all: unset; + margin-right: 4px; + width: 100%; + padding: 1rem; + font-family: var(--font-family); + color: var(--font-color); + background-color: var(--block-color); +} + +#sort { + all: unset; + margin: 0; + border: none; + background-color: var(--block-color); + color: var(--font-color); + font-size: 1rem; + font-family: var(--font-family); + padding: 1rem; + width: 20%; +} + logo img { z-index: 50; position: fixed; @@ -97,18 +177,38 @@ logo img { scale: 0.45; } +img[alt="MonkeyGG2 Icon"] { + filter: brightness(110%); +} + +img[alt="Proxy Icon"] { + margin: -1rem 0; +} + +.card .img-container { + max-width: 256px; + max-height: 256px; + margin: 2rem 0; + display: inline-flex; + justify-content: center; + align-items: center; +} + +.card .img-container > img, svg { + width: 100%; +} + .card-row { display: flex; flex-direction: row; - width: 90%; + width: 75%; } .column { text-align: center; float: left; - width: 25%; + width: 33%; padding: 0 10px; - cursor: pointer; } .column button { @@ -122,11 +222,11 @@ logo img { .card { box-shadow: var(--button-color) 0 4px 8px 0; - padding: 16px; + padding: 12px; text-align: center; background-color: var(--button-color); border-radius: 50px; - font-size: 150%; + font-size: 1.2rem; text-decoration: none; color: var(--font-color); font-family: var(--font-family); @@ -134,6 +234,24 @@ logo img { cursor: pointer; } +.card h5 { + font-size: 2rem; + letter-spacing: 1px; + margin: 2px; +} + .card:hover { background-color: var(--hover-color); +} + +#page-loader iframe { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 999; + margin: 0; + padding: 0; + border: 0; } \ No newline at end of file diff --git a/game-info.jsonc b/game-info.jsonc new file mode 100644 index 00000000..066ab812 --- /dev/null +++ b/game-info.jsonc @@ -0,0 +1,169 @@ +/* + Data for all games + + "name-of-game": "path/to/game" + + The path should be from the games directory. + + The list does not have to be ordered in any way but for the + sake of simplicity we will order this list alphanumerically. +*/ +{ + "1v1.LOL": "1v1-lol", + "2048": "2048", + "Achievement Unlocked": "flash/?game=achievement-unlocked", + "Achievement Unlocked 2": "w-flash/?game=achievement-unlocked-2", + "Achievement Unlocked 3": "w-flash/?game=achievement-unlocked-3", + "A Dark Room": "a-dark-room", + "Abandoned": "abandoned", + "Ages of Conflict": "ages-of-conflict", + "Age of War": "flash/?game=age-of-war", + "Age of War Hacked": "flash/?game=age-of-war-hacked", + "Amidst The Sky": "amidst-the-sky", + "Another Gentlemans Adventure": "another-gentlemans-adventure", + "Awesome Tanks": "awesome-tanks", + "Awesome Tanks 2": "awesome-tanks-2", + "Babel Tower": "babel-tower", + "Basketball Stars": "basketball-stars", + "Bloons": "flash/?game=bloons", + "Bloons TD 1": "flash/?game=bloons-td-1", + "Bloons TD 2": "flash/?game=bloons-td-2", + "Bloons TD 3": "w-flash/?game=bloons-tower-defense-3", + "Bloons TD 4": "w-flash/?game=bloons-tower-defense-4", + "Bloons TD 5": "w-flash/?game=bloons-tower-defense-5", + "Bloxorz": "flash/?game=bloxorz", + "Brawl Stars Project Laser": "brawl-stars-project-laser", + "Breaklock": "breaklock", + "Cat Ninja": "w-flash/?game=cat-ninja", + "Curveball": "flash/?game=curveball", + "Chrome Dino": "chrome-dino", + "Clicker Heroes": "clicker-heroes", + "Clicker Heroes Updated": "clicker-heroes-updated", + "Cookie Clicker": "cookie-clicker", + "Core Ball": "core-ball", + "Crossy Road": "crossy-road", + "Conway's Game of Life": "conways-game-of-life", + "Creative Kill Chamber": "flash/?game=creative-kill-chamber", + "Cut The Rope": "cut-the-rope", + "Dadish": "dadish", + "Dadish 2": "dadish-2", + "Don't Escape": "w-flash/?game=dont-escape", + "Don't Escape 2": "w-flash/?game=dont-escape-2", + "Don't Escape 3": "w-flash/?game=dont-escape-3", + "Doodle Jump": "doodle-jump", + "Drift Boss": "drift-boss", + "Drift Hunters": "drift-hunters", + "Drive Mad": "drive-mad", + "Duck Life": "flash/?game=duck-life", + "Duck Life 2": "flash/?game=duck-life-2", + "Duck Life 3": "flash/?game=duck-life-3", + "Duck Life 4": "duck-life-4", + "Duck Life Treasure Hunt": "w-flash/?game=duck-life-treasure-hunt", + "Dune!": "dune", + "Eaglercraft 1.5.2": "eaglercraft", + "Eaglercraft 1.8.8 (Multiplayer Only)": "eaglercraftx/", + "EvoWars": "evowars", + "Escape The Car": "flash/?game=escape-the-car", + "Escape The Closet": "flash/?game=escape-the-closet", + "Escape The Phonebooth": "flash/?game=escape-the-phonebooth", + "Escape The Bathroom": "flash/?game=escape-the-bathroom", + "Escape The Freezer": "w-flash/?game=escape-the-freezer", + "Escape The Shack": "w-flash/?game=escape-the-shack", + "Fireboy and Watergirl": "fireboy-and-watergirl", + "Fireboy and Watergirl 2": "fireboy-and-watergirl-2", + "Fireboy and Watergirl 3": "fireboy-and-watergirl-3", + "Fireboy and Watergirl 4": "fireboy-and-watergirl-4", + "Flash Chess": "flash/?game=flash-chess", + "Friday Night Funkin": "friday-night-funkin", + "Factory Balls": "flash/?game=factory-balls", + "Flappy Bird": "flappy-bird", + "Getaway Shootout": "getaway-shootout", + "Gons io": "gons-io", + "Gun Mayhem": "flash/?game=gun-mayhem", + "Gun Mayhem 2": "flash/?game=gun-mayhem-2", + "Gun Spin": "gunspin", + "Henry Stickmin 0: Breaking The Bank": "flash/?game=breaking-the-bank", + "Henry Stickmin 1: Escaping The Prison": "flash/?game=escaping-the-prison", + "Henry Stickmin 2: Stealing The Diamond": "flash/?game=stealing-the-diamond", + "Henry Stickmin 3: Infiltrating The Airship": "flash/?game=infiltrating-the-airship", + "Henry Stickmin 4: Fleeing the Complex": "flash/?game=fleeing-the-complex", + "Hextris": "hextris", + "Incremancer": "incremancer", + "Learn To Fly": "flash/?game=learn-to-fly", + "Learn To Fly 2": "w-flash/?game=learn-to-fly-2", + "Idle Breakout": "idle-breakout", + "Maptroid": "maptroid", + "Mario": "mario-game", + "Monkey Mart": "monkey-mart", + "MotoX3M": "motox3m", + "N-gon": "n-gon", + "Papas Pizzeria": "flash/?game=papas-pizzaria", + "Papas Freezeria": "w-flash/?game=papas-freezeria", + "Particle Clicker": "particle-clicker", + "Planet Life": "planet-life", + "P.craft": "pcraft", + "Precision Client (Eaglercraft 1.5.2)": "precision-client/", + "Progress Knight": "progress-knight", + "Pull Of War": "pull-of-war", + "Reach The Core": "reach-the-core", + "Raft Wars": "flash/?game=raft-wars", + "Raft Wars 2": "flash/?game=raft-wars-2", + "Retro Bowl": "retro-bowl", + "Retro Bowl Old": "retro-bowl-old", + "Rogue Soul": "w-flash/?game=rogue-soul", + "Rogue Soul 2": "w-flash/?game=rogue-soul-2", + "Riddle School": "flash/?game=riddle-school", + "Riddle School 2": "flash/?game=riddle-school-2", + "Riddle School 3": "flash/?game=riddle-school-3", + "Riddle School 4": "flash/?game=riddle-school-4", + "Riddle School 5": "flash/?game=riddle-school-5", + "Riddle Transfer": "flash/?game=riddle-transfer", + "Riddle Transfer 2": "flash/?game=riddle-transfer-2", + "Rooftop Snipers": "rooftop-snipers", + "Rookie Bowman": "rookie-bowman", + "Run 3": "run-3", + "Sandspiel": "sandspiel", + "Scuba Bear": "scuba-bear", + "Slope": "slope", + "Smash Karts": "smash-karts", + "Stickman Hook": "stickman-hook", + "Subway Surfers": "subway-surfers", + "Subway Surfers New York": "subway-surfers-ny", + "Stick War": "flash/?game=stick-war", + "Submachine": "flash/?game=submachine", + "Submachine 2": "flash/?game=submachine-2", + "Submachine 3": "flash/?game=submachine-3", + "Submachine 4": "flash/?game=submachine-4", + "Submachine 5": "flash/?game=submachine-5", + "Submachine 6": "flash/?game=submachine-6", + "Submachine 7": "flash/?game=submachine-7", + "Submachine 8": "flash/?game=submachine-8", + "Submachine 9": "flash/?game=submachine-9", + "Submachine 10": "flash/?game=submachine-10", + "Submachine 0": "flash/?game=submachine-0", + "Submachine 32 Chambers": "flash/?game=submachine-32-chambers", + "Submachine FLF": "flash/?game=submachine-flf", + "Sugar Sugar": "w-flash/?game=sugar-sugar", + "The Final Earth": "the-final-earth", + "There Is No Game": "there-is-no-game", + "Time Shooter": "time-shooter", + "Time Shooter 3": "time-shooter-3", + "Tiny Fishing": "tiny-fishing", + "Trace": "trace", + "Tanuki Sunset": "tanuki-sunset", + "Temple Run 2": "temple-run-2", + "The Impossible Quiz": "flash/?game=the-impossible-quiz", + "This Is The Only Level": "flash/?game=this-is-the-only-level", + "This Is The Only Level 2": "w-flash/?game=this-is-the-only-level-2", + "Tunnel Rush": "tunnel-rush", + "Two Ball 3d": "two-ball-3d", + "Vex 3": "vex-3", + "Vex 4": "vex-4", + "Vex 5": "vex-5", + "Vex 6": "vex-6", + "Vex 7": "vex-7", + "Web OSU": "web-osu", + "Ultimate Chess": "w-flash/?game=ultimate-chess", + "X Trench Run": "x-trench-run", + "Yohoho": "yohoho" +} \ No newline at end of file diff --git a/games/core-ball/image/WB_logo.png b/games/core-ball/image/WB_logo.png new file mode 100644 index 00000000..8ad3d7f1 Binary files /dev/null and b/games/core-ball/image/WB_logo.png differ diff --git a/games/core-ball/image/arrow.png b/games/core-ball/image/arrow.png new file mode 100644 index 00000000..636759e5 Binary files /dev/null and b/games/core-ball/image/arrow.png differ diff --git a/games/core-ball/image/btn_fw.png b/games/core-ball/image/btn_fw.png new file mode 100644 index 00000000..52aad62a Binary files /dev/null and b/games/core-ball/image/btn_fw.png differ diff --git a/games/core-ball/index.html b/games/core-ball/index.html new file mode 100644 index 00000000..e0c90170 --- /dev/null +++ b/games/core-ball/index.html @@ -0,0 +1,40 @@ + + + + + + + + + Core Ball + + + + + +
+
+ Core Ball +
+
+
+
+
+ + +
+
+
+
+
+ + + + diff --git a/games/core-ball/index.js b/games/core-ball/index.js new file mode 100644 index 00000000..f98a6ba3 --- /dev/null +++ b/games/core-ball/index.js @@ -0,0 +1,692 @@ +"undefined" == typeof window.define && ((window.define = function () {}), (window.define.amd = 1)), + "undefined" == typeof window.$AJB && (window.$AJB = {}), + ($AJB.lib = {}), + ($AJB.general = {}), + ($AJB.page = {}), + ($AJB.lib.stopEvent = function () { + "use strict"; + return function (a) { + a && (a.preventDefault ? (a.preventDefault(), a.stopPropagation()) : ((a.returnValue = !1), (a.cancelBubble = !0))); + }; + }), + ($AJB.lib.Storage = function () { + "use strict"; + var a = { + setValue: function (a, b) { + window.localStorage && (window.localStorage[a] = b); + }, + getValue: function (a) { + return window.localStorage ? window.localStorage[a] : void 0; + }, + }; + return a; + }), + ($AJB.general.BeginStage = function () { + "use strict"; + function a(a) { + function c() { + b(h, "click", function () { + e.fire(g, f); + }), + (j.innerHTML = "GO"); + } + var h = a.getElementsByClassName("button")[0], + i = a.getElementsByClassName("text")[0], + j = document.getElementById("txtAr"), + k = { + show: function () { + a.style.display = ""; + }, + hide: function () { + a.style.display = "none"; + }, + level: function (a) { + (f = a), (i.innerHTML = "Level " + a); + }, + on: function (a, b) { + e.add(a, b); + }, + off: function (a, b) { + e.remove(a, b); + }, + }; + return c(), k; + } + var b = $AJB.lib.addEvent(), + c = $AJB.lib.CustEvent(), + d = $AJB.lib.util(), + e = c(), + f = 0, + g = "start"; + return a; + }), + ($AJB.general.Switcher = function () { + "use strict"; + function a(a, b, c) { + var d, + e, + f = null, + g = !1, + h = { + point: [0, 0], + enabled: !1, + color: "#c8c8c8", + update: function () { + var a = h.point, + c = 30; + h.enabled && + (0 === e + ? ((d = h.color), a[0] < b / 2 ? ((a[0] = Math.min(a[0] + c, b / 2)), (h.point = a)) : ((h.point = a), (g = !0))) + : 1 === e && ((d = "#000"), a[0] > b / 2 ? ((a[0] = Math.max(a[0] - c, b / 2)), (h.point = a)) : ((h.point = a), (g = !0)))); + }, + render: function () { + var e = h.point; + h.enabled && ((a.fillStyle = d), a.fillRect(e[0] - b / 2, e[1] - c / 2, b, c), g && ((h.enabled = !1), f && f())); + }, + switchStage: function (d, i) { + 0 === d ? (h.point = [-b / 2, c / 2]) : 1 === d && ((a.fillStyle = h.color), a.fillRect(0, 0, b, c), (h.point = [b + b / 2, c / 2])), (h.enabled = !0), (g = !1), (e = d), (f = i); + }, + }; + return h; + } + return a; + }), + ($AJB.lib.addEvent = function () { + var a = $AJB.lib.util(), + b = { click: "touchstart", mousedown: "touchstart", mouseup: "touchend" }; + return function (c, d, e, f) { + c.addEventListener ? c.addEventListener(a.isMobile ? b[d] || d : d, e, f) : c.attachEvent ? c.attachEvent("on" + d, e) : (c["on" + d] = e); + }; + }), + ($AJB.general.Levels = function () { + "use strict"; + function a(a, b) { + return function () { + var c = 0; + return function () { + return (c += (a * b) % 360); + }; + }; + } + function b(a, b) { + return function () { + var c = 0, + d = 1, + e = +new Date(); + return function () { + var f = +new Date(); + return f - e > b && ((d = -d), (e = f)), (c += (d * a) % 360); + }; + }; + } + function c(a, b, c, d) { + return function () { + var e = 0, + f = +new Date(); + return function () { + var g = +new Date(); + return g - f > c && ((a = b - a), (f = g)), (e += (a * d) % 360); + }; + }; + } + function d(a) { + var b = 1; + return ( + h(document.body, "mousedown", function () { + b = -b; + }), + function () { + var c = 0; + return function () { + return (c += (a * b) % 360); + }; + } + ); + } + function e(a, b, c, d) { + return ( + h(document.body, "mousedown", function () { + d = -d; + }), + function () { + var e = 0, + f = +new Date(); + return function () { + var g = +new Date(); + return g - f > c && ((a = b - a), (f = g)), (e += (a * d) % 360); + }; + } + ); + } + function f(a, b, c, d) { + i[a] = { childs: k[b], queueCount: c, round: j[d] }; + } + var g, + h = $AJB.lib.addEvent(), + i = {}, + j = { + A1: a(1.5, 1), + A2: a(1.5, -1), + B1: a(2.5, 1), + B2: a(2.5, -1), + C1: b(2.2, 3e3), + C2: b(3.5, 2e3), + D1: c(2, 2.3, 1200, 1), + D2: c(2, 2.3, 1200, -1), + D3: c(4, 4.5, 1700, 1), + D4: c(4, 4.5, 1700, -1), + D5: c(4, 4.5, 1700, 1), + D6: c(4, 4.5, 1700, -1), + E1: d(2), + E2: e(2, 2.3, 1e3, 1), + }, + k = { + 0: [], + 2: [0, 180], + 3: [0, 120, 240], + 4: [0, 90, 180, 270], + 5: [0, 72, 144, 216, 288], + 6: [0, 60, 120, 180, 240, 300], + 7: [0, 52, 103, 155, 206, 258, 309], + 8: [0, 45, 90, 135, 180, 225, 270, 315], + 9: [0, 40, 80, 120, 160, 200, 240, 280, 320], + 10: [0, 36, 72, 108, 144, 180, 216, 252, 288, 324], + 11: [0, 33, 66, 99, 131, 164, 197, 230, 262, 295, 328], + 12: [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330], + 13: [0, 28, 56, 84, 111, 139, 167, 194, 222, 250, 277, 305, 333], + 14: [0, 26, 52, 78, 103, 129, 155, 180, 206, 232, 258, 283, 309, 335], + 15: [0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288, 312, 336], + 16: [0, 23, 45, 68, 90, 113, 135, 158, 180, 203, 225, 248, 270, 293, 315, 338], + }, + l = { + 1: ["4", 8, "A1"], + 2: ["6", 10, "A1"], + 3: ["2", 20, "A1"], + 4: ["8", 12, "A2"], + 5: ["12", 8, "A1"], + 6: ["10", 10, "A2"], + 7: ["12", 12, "A1"], + 8: ["16", 3, "A2"], + 9: ["0", 26, "A2"], + 10: ["16", 10, "A1"], + 11: ["10", 8, "B1"], + 12: ["6", 12, "B2"], + 13: ["12", 4, "B1"], + 14: ["8", 14, "B2"], + 15: ["8", 6, "B1"], + 16: ["5", 10, "B2"], + 17: ["6", 12, "B1"], + 18: ["8", 14, "B2"], + 19: ["0", 23, "B1"], + 20: ["10", 13, "B2"], + 21: ["4", 12, "C1"], + 22: ["6", 10, "C1"], + 23: ["8", 12, "C1"], + 24: ["7", 14, "C1"], + 25: ["2", 18, "C1"], + 26: ["4", 18, "C1"], + 27: ["0", 24, "C1"], + 28: ["4", 10, "C2"], + 29: ["6", 13, "C2"], + 30: ["4", 20, "C1"], + 31: ["6", 8, "D1"], + 32: ["2", 12, "D2"], + 33: ["3", 14, "D2"], + 34: ["3", 18, "D1"], + 35: ["8", 12, "D1"], + 36: ["7", 15, "D2"], + 37: ["16", 8, "D2"], + 38: ["0", 23, "D1"], + 39: ["12", 12, "D1"], + 40: ["12", 15, "D2"], + 41: ["5", 10, "E1"], + 42: ["6", 12, "E1"], + 43: ["3", 15, "E1"], + 44: ["3", 19, "E1"], + 45: ["0", 24, "E1"], + 46: ["2", 15, "E2"], + 47: ["4", 16, "E2"], + 48: ["12", 8, "E2"], + 49: ["3", 20, "E2"], + 50: ["16", 14, "E2"], + 51: ["4", 6, "D3"], + 52: ["4", 12, "D4"], + 53: ["6", 13, "D3"], + 54: ["0", 24, "D4"], + 55: ["4", 21, "D3"], + 56: ["16", 16, "A1"], + 57: ["4", 24, "C1"], + 58: ["4", 26, "D1"], + 59: ["4", 25, "E2"], + 60: ["13", 19, "E2"], + }; + for (g in l) f(g, l[g][0], l[g][1], l[g][2]); + return i; + }), + ($AJB.general.Collide = function () { + "use strict"; + var a = $AJB.lib.util(), + b = { + check: function (b, c, d) { + var e = b.childs(), + f = e.length, + g = Math.ceil(2 * c.rad()); + for (d = d || 1; f--; ) if (c !== e[f].ball && a.getPointDistance(c.pos(), e[f].ball.pos()) <= g + Math.ceil(2 * d)) return !0; + return !1; + }, + }; + return b; + }), + ($AJB.general.Tween = function () { + "use strict"; + var a = { + simple: function (b, c, d, e) { + var f = (c - b) / e, + g = +new Date(); + return e > g - d ? ((a.isEnd = !1), b + (g - d) * f) : ((a.isEnd = !0), c); + }, + isEnd: !0, + }; + return a; + }), + ($AJB.general.BallQueue = function () { + "use strict"; + function a(a, f, g, h, i) { + function j() { + var b, + d, + e = k(a), + j = e.length; + for (b = 0; j > b; b++) (d = c(h, null, e[b], null, i)), d.pos(f, g + 3 * d.rad() * b), m.push(d); + } + function k(a) { + for (var b = a, c = []; b--; ) c.push(b + 1); + return c; + } + var l, + m = [], + n = [], + o = b(); + return ( + (i = i || 1), + (l = { + ballList: m, + add: function () {}, + remove: function (a) { + var b = m[a]; + return m.splice(a, 1), b; + }, + clear: function () { + (n = []), (m = []); + }, + popup: function () { + var a = m.shift(); + (a.st = +new Date()), (a.sv = a.pos().y), n.push(a); + }, + update: function () { + var a, + b, + c, + h = n.length, + i = m.length; + if (h) { + for (b = n[0].rad(), a = g - 3 * b; h--; ) n[h].pos(f, d.simple(n[h].sv, a, n[h].st, 50)), (c = n[n.length - 1].pos().y), n[h].pos().y === a && (o.fire(e, n[h]), n.splice(h, 1)); + for (; i--; ) m[i].pos(f, c + 3 * b * (i + 1)); + } + }, + render: function () { + for (var a = m.length, b = n.length; a--; ) m[a].render(); + for (; b--; ) n[b].render(); + }, + on: function (a, b) { + o.add(a, b); + }, + off: function (a, b) { + o.remove(a, b); + }, + destroy: function () { + for (var a = m.length; a--; ) m[a].destroy(); + o.destroy(); + }, + }), + j(), + l + ); + } + var b = $AJB.lib.CustEvent(), + c = $AJB.general.Ball(), + d = $AJB.general.Tween(), + e = "popup"; + return a; + }), + ($AJB.general.Ball = function () { + "use strict"; + function a(a, c, d, e, f) { + function g() { + var c = b.getTextWidth(a, 0, 0, d, e); + b.drawText(a, i - c / 2, j + e / 3, d, e, "black"); + } + var h, + i = 0, + j = 0; + return ( + (f = f || 1), + (c = (c || 12) * f), + (e = (e || 15) * f), + (h = { + pos: function (a, b) { + return "undefined" != typeof a && (i = a), "undefined" != typeof b && (j = b), { x: i, y: j }; + }, + scale: function (a) { + return "undefined" != typeof a && (f = a), f; + }, + rad: function (a) { + return "undefined" != typeof a && (c = a), c; + }, + render: function (e) { + b.drawCircle(a, i, j, c, "#ffffff"), "undefined" != typeof d ? g(d) : "undefined" != typeof e && g(e); + }, + destroy: function () { + h = null; + }, + }) + ); + } + var b = $AJB.lib.util(); + return a; + }), + ($AJB.lib.util = function () { + "use strict"; + return { + drawCircle: function (a, b, c, d, e) { + a.beginPath(), a.arc(b, c, d, 0, 2 * Math.PI, !1), (a.fillStyle = e || "red"), a.fill(); + }, + drawLine: function (a, b, c, d, e, f, g) { + (a.strokeStyle = f || "red"), (a.lineWidth = g || 1), a.beginPath(), a.moveTo(b, c), a.lineTo(d, e), a.stroke(); + }, + drawText: function (a, b, c, d, e, f) { + (a.font = e + "px Verdana"), (a.fillStyle = f || "red"), a.fillText(d, b, c); + }, + getTextWidth: function (a, b, c, d, e, f) { + return (a.font = e + "px Verdana"), (a.fillStyle = f || "red"), a.measureText(d).width; + }, + getPointDistance: function (a, b) { + return Math.floor(Math.sqrt(Math.floor(Math.pow(a.x - b.x, 2)) + Math.floor(Math.pow(a.y - b.y, 2)))); + }, + isMobile: /(mobile|iphone|ipod|ipad|ios|android|windows phone)/i.test(navigator.userAgent), + isAndroid: /android/i.test(navigator.userAgent), + isWeixin: /MicroMessenger/i.test(navigator.userAgent), + }; + }), + ($AJB.general.Core = function () { + "use strict"; + function a(a, d, e, f, g) { + function h() { + for (var a, b, c, d, e = l.length; e--; ) + (a = 3 * Math.cos(((l[e].angle + j.angle()) * Math.PI) / 180) * m * g + n), (b = 3 * Math.sin(((l[e].angle + j.angle()) * Math.PI) / 180) * m * g + o), (c = a / Math.abs(a)), (d = b / Math.abs(b)), l[e].ball.pos(a, b); + } + var i, + j, + k = 0, + l = [], + m = 50, + n = a.width / 2, + o = 4 * m * g; + return ( + (g = g || 1), + (i = c(d, m, e, f, g)), + i.pos(n, o), + (j = { + pos: i.pos, + scale: i.scale, + rad: i.rad, + angle: function (a) { + return "undefined" != typeof a && (k = a), k; + }, + addChild: function (a, b) { + l.push({ angle: a, ball: b }); + }, + clear: function () { + l = []; + }, + childs: function () { + return l; + }, + update: function () { + h(); + }, + render: function () { + var c, + e = l.length, + f = a.width, + h = a.height; + for (d.clearRect(0, 0, f, h), c = 0; e > c; c++) b.drawLine(d, n, o, l[c].ball.pos().x, l[c].ball.pos().y, "#ffffff", 1.5 * g), l[c].ball.render(); + i.render(); + }, + destroy: function () { + j.clear(), (i = null), (j = null); + }, + }) + ); + } + var b = $AJB.lib.util(), + c = $AJB.general.Ball(); + return a; + }), + ($AJB.lib.CustEvent = function () { + return function (a) { + function b(a) { + return Object.prototype.toString.call(a).slice(8, -1).toLowerCase(); + } + var c = {}; + return ( + !a && (a = {}), + { + add: function (a, d) { + if ("function" === b(d)) { + var e = c; + (a = a.toLowerCase()), !e[a] && (e[a] = []), e[a].push(d); + } + }, + remove: function (a, d) { + var e, + f = c[a]; + if (((a = a.toLowerCase()), "function" === b(d) && f && f.length)) for (e = f.length - 1; e >= 0; e--) f[e] === d && f.splice(e, 1); + }, + fire: function (b) { + var d, e, f, g; + if (((b = b.toLowerCase()), (d = c[b]), d && d.length)) for (e = Array.prototype.slice.call(arguments, 1), g = d.length, f = 0; g > f; f++) d[f].apply(a, e); + }, + destroy: function () { + var a, + b = c.length - 1; + for (a = b; a >= 0; a--) evts.splice(a, 1); + }, + } + ); + }; + }), + ($AJB.general.Scene = function () { + "use strict"; + function a(a, b, l, m) { + function n(a) { + var g = a.childs, + h = g.length; + for (y = a.round(), w && w.destroy(), w = c(b, l, B, 50, m); h--; ) w.addChild(g[h], d(l, null, "", null, m)); + x && x.destroy(), + (x = e(a.queueCount, b.width / 2, w.pos().y + 4 * w.rad(), l, m)), + x.on("popup", function (a) { + w.addChild(90 - w.angle(), a), f.check(w, a, m) ? ((z = a), s()) : !x.ballList.length && r(); + }); + } + function o() { + y && (w.angle(y()), w.update(), x.update()); + } + function p() { + var b, + c, + d, + e, + f = w.childs(), + g = f.length, + h = 25; + for (a.style.backgroundColor = u.bgColor; g--; ) (b = f[g].angle + w.angle()), (c = Math.cos((b * Math.PI) / 180) * h), (d = Math.sin((b * Math.PI) / 180) * h), (e = f[g].ball.pos()), f[g].ball.pos(e.x + c, e.y + d); + } + function q(a) { + var b, + c = [25, 15, 20, 15], + d = c.length, + e = 200, + f = e / d; + for (w.update(), b = 1; d >= b; b++) a > f * b && z.rad(c[b - 1] * m); + } + function r() { + "pass" !== A && ((a.style.backgroundColor = "#1CB01A"), (A = "pass"), (v = +new Date())); + } + function s() { + "fail" !== l && ((a.style.backgroundColor = "#B8111C"), (A = "fail"), (v = +new Date())); + } + function t() { + var a = "to be continued...", + c = h.getTextWidth(l, 0, 0, a, 30 * m); + h.drawText(l, (b.width - c) / 2, 200 * m, a, 30 * m, "yellow"); + } + var u, + v, + w, + x, + y, + z, + A = "run", + B = 1; + return (u = { + enabled: !1, + run: function (b) { + var c = g[b]; + (B = b), c ? ((u.enabled = !0), n(c), (a.style.backgroundColor = "#000"), (A = "run")) : t(); + }, + shot: function () { + x && x.ballList.length && x.popup(); + }, + update: function () { + var a; + u.enabled && ("run" === A ? o() : "pass" === A ? (p(), +new Date() - v > 1e3 && ((A = ""), k.fire(i))) : "fail" === A && ((a = +new Date() - v), q(a), a > 1e3 && ((A = ""), k.fire(j)))); + }, + render: function () { + u.enabled && (w.render(), x.render()); + }, + on: function (a, b) { + k.add(a, b); + }, + off: function (a, b) { + k.remove(a, b); + }, + }); + } + var b = $AJB.lib.CustEvent(), + c = $AJB.general.Core(), + d = $AJB.general.Ball(), + e = $AJB.general.BallQueue(), + f = $AJB.general.Collide(), + g = $AJB.general.Levels(), + h = $AJB.lib.util(), + i = "passed", + j = "failed", + k = b(); + return a; + }), + ($AJB.general.Game = function () { + "use strict"; + function a() { + var a = document.body.scrollWidth || document.documentElement.scrollWidth, + b = document.body.scrollHeight || document.documentElement.scrollHeight; + (r.width = a), (r.height = b), (i = l(x, a, b)), (s.style.backgroundColor = i.color), (s.style.width = a + "px"), (s.style.height = b + "px"), (j = b / 560); + } + function b() {} + function c() { + n(u, "mousedown", function () {}); + } + function d(a) { + (D = +a), o.setValue(z, D), (document.title = A.replace(/\#\{level\}/, D)), (GlobalLevel = D), C.level(D), !p.isWeixin && p.isMobile && b(); + } + function e() { + n(document.body, "mousedown", function (a) { + var b; + if (a && a.changedTouches) for (b = a.changedTouches.length; b--; ) h.shot(); + else h.shot(); + "1" != a.target.getAttribute("data-capture") && q(a); + }), + n(w, "mousedown", function () { + w.style.display = "none"; + }), + n(v, "mousedown", function () { + E || + ((E = !0), + (t.style.display = ""), + d(1), + setTimeout(function () { + (t.style.display = "none"), (E = !1); + }, 1e3)); + }), + h.on("passed", function () { + i.switchStage(0, function () { + (h.enabled = !1), d(D + 1), (r.style.display = "none"), C.show(); + }); + }), + h.on("failed", function () { + i.switchStage(0, function () { + (h.enabled = !1), (r.style.display = "none"), C.level(D), C.show(); + }); + }), + C.on("start", function () { + (r.style.display = ""), + C.hide(), + i.switchStage(1, function () { + h.run(D); + }); + }); + } + function f() { + window.clearTimeout(F), h.update(), h.render(), i.update(), i.render(), (F = window.setTimeout(f, 1e3 / y)); + } + function g() { + a(), (h = k(document.body, r, x, j)), e(), c(), C.level(D), C.show(), f(); + } + var h, + i, + j, + k = $AJB.general.Scene(), + l = $AJB.general.Switcher(), + m = $AJB.general.BeginStage(), + n = $AJB.lib.addEvent(), + o = $AJB.lib.Storage(), + p = $AJB.lib.util(), + q = $AJB.lib.stopEvent(), + r = document.getElementById("stage"), + s = document.getElementById("begin"), + t = document.getElementById("tip"), + u = document.getElementById("btnFW"), + v = document.getElementById("btnReset"), + w = document.getElementById("wxArrow"), + x = r.getContext("2d"), + y = 60, + z = "core-ball-level", + A = "", + B = "", + C = m(s), + D = +o.getValue(z) || 1, + E = !1, + F = 0, + G = { start: g, shareTitle: A, shareLevel: D }; + return G; + }), + function share() { + console.log("share"); + }; +($AJB.page.index = function () { + "use strict"; + var a = $AJB.general.Game(); + a.start(); +}), + $AJB.page.index(); +GlobalLevel = $AJB.general.Game().shareLevel; diff --git a/games/core-ball/js/conf/requireConf.js b/games/core-ball/js/conf/requireConf.js new file mode 100644 index 00000000..ecf2fdf0 --- /dev/null +++ b/games/core-ball/js/conf/requireConf.js @@ -0,0 +1,3 @@ +requirejs.config({ + baseUrl : "http://dev.me/h5/core-ball/js" +}); \ No newline at end of file diff --git a/games/core-ball/js/general/Ball.js b/games/core-ball/js/general/Ball.js new file mode 100644 index 00000000..f2714d5a --- /dev/null +++ b/games/core-ball/js/general/Ball.js @@ -0,0 +1,67 @@ +/** + * @fileoverview Ball + * @author Random | http://weibo.com/random + * @date 2015-02-05 + */ + +define(function(require, exports, module) { + "use strict"; + + var util = require("lib/util"); + + function Ball(stage, rad, num, fontSize, scale){ + var x = 0; + var y = 0; + var me; + + scale = scale || 1; + rad = (rad || 12) * scale; + fontSize = (fontSize || 15) * scale; + + function renderNumber(n){ + var w = util.getTextWidth(stage, 0, 0, num, fontSize); + util.drawText(stage, x - w / 2, y + fontSize / 2, num, fontSize, "black"); + } + + me = { + pos : function(bx, by){ + typeof bx !== "undefined" && (x = bx); + typeof by !== "undefined" && (y = by); + return { + x : x, + y : y + }; + }, + + //n :num, + + scale : function(sc){ + typeof sc !== "undefined" && (scale = sc); + return scale; + }, + + rad : function(r){ + typeof r !== "undefined" && (rad = r); + return rad; + }, + + render : function(n){ + util.drawCircle(stage, x, y, rad, "#ffffff"); + + if(typeof num !== "undefined"){ + renderNumber(num); + }else if(typeof n !== "undefined"){ + renderNumber(n); + } + }, + + destroy : function(){ + me = null; + } + }; + + return me; + } + + module.exports = Ball; +}); \ No newline at end of file diff --git a/games/core-ball/js/general/BallQueue.js b/games/core-ball/js/general/BallQueue.js new file mode 100644 index 00000000..cb3ad5d9 --- /dev/null +++ b/games/core-ball/js/general/BallQueue.js @@ -0,0 +1,139 @@ +/** + * @fileoverview BallQueue + * @author Random | http://weibo.com/random + * @date 2015-02-05 + */ + +define(function(require, exports, module) { + "use strict"; + + var CustEvent = require("lib/CustEvent"); + var Ball = require("general/Ball"); + var Tween = require("general/Tween"); + + var EVENT_POPUP = "popup"; + + function BallQueue(n, x, y, stage, scale){ + var me; + var ballList = []; + var popList = []; + var custEvent = CustEvent(); + + scale = scale || 1; + + function init(){ + var numList = numToArr(n); + var l = numList.length; + var i; + var ball; + + for(i=0; i td){ + d = -d; + t = t2; + } + angle += d * v % 360; + return angle; + }; + }; + } + + function typeD(v, sum, td, d){ + return function(){ + var angle = 0; + var t = +(new Date); + + return function(){ + var t2 = +(new Date); + if(t2 - t > td){ + v = sum - v; + t = t2; + } + angle += v * d % 360; + return angle; + }; + }; + } + + function typeE(v1, v2){ + var d = 1; + var map = { + "-1" : v2, + "1" : v1 + }; + var v = v2 ? map[d] : v1; + + addEvent(document.body, "mousedown", function(){ + d = -d; + v = v2 ? map[d] : v1; + }); + return function(){ + var angle = 0; + + return function(){ + angle += v * d % 360; + return angle; + }; + }; + } + + function typeDE(v, sum, td, d){ + addEvent(document.body, "mousedown", function(){ + d = -d; + }); + return function(){ + var angle = 0; + var t = +(new Date); + + return function(){ + var t2 = +(new Date); + if(t2 - t > td){ + v = sum - v; + t = t2; + } + angle += v * d % 360; + return angle; + }; + }; + } + + function typeF(v1, v2, td1, td2){ + return function(){ + var angle = 0; + var t = +(new Date); + var i = 0; + var arr = [[v1, td1], [v2, td2]]; + var d = 1; + + return function(){ + var t2 = +(new Date); + var v = arr[i][0]; + if(t2 - t > arr[i][1]){ + v = arr[i][0]; + i = (i + 1) % 2; + t = +(new Date); + d = -d; + } + + angle += d * v; + return angle; + } + } + } + + + var roundTypes = { + "A1" : typeAB(1.5, 1), + "A2" : typeAB(1.5, -1), + + "B1" : typeAB(2.5, 1), + "B2" : typeAB(2.5, -1), + + "C1" : typeC(2.2, 3000), + "C2" : typeC(3.5, 2000), + + "D1" : typeD(2, 2.3, 1200, 1), + "D2" : typeD(2, 2.3, 1200, -1), + "D3" : typeD(4, 4.5, 700, 1), + "D4" : typeD(4, 4.5, 700, -1), + "D5" : typeD(4, 4.5, 1700, 1), + "D6" : typeD(4, 4.5, 1700, -1), + + "E1" : typeE(2), + "E2" : typeDE(2, 2.3, 1000, 1), + "E3" : typeDE(2, 2.5, 1000, 1), + "E4" : typeE(3, 2), + "E5" : typeE(1.5, 3.2), + + "F1" : typeF(2, 0.3, 200, 300), + "F2" : typeF(3.5, 1, 250, 1500), + "F3" : typeF(0.5, 1.8, 350, 1500), + "F4" : typeF(1.8, 0.5, 1000, 150), + "F5" : typeF(0.5, 2.2, 350, 1500) + }; + + var childsTypes = { + "0" : [], + "2" : [0, 180], + "3" : [0, 120, 240], + "4" : [0, 90, 180, 270], + "5" : [0, 72, 144, 216, 288], + "6" : [0, 60, 120, 180, 240, 300], + "7" : [0, 52, 103, 155, 206, 258, 309], + "8" : [0, 45, 90, 135, 180, 225, 270, 315], + "9" : [0, 40, 80, 120, 160, 200, 240, 280, 320], + "10" : [0, 36, 72, 108, 144, 180, 216, 252, 288, 324], + "11" : [0, 33, 66, 99, 131, 164, 197, 230, 262, 295, 328], + "12" : [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330], + "13" : [0, 28, 56, 84, 111, 139, 167, 194, 222, 250, 277, 305, 333], + "14" : [0, 26, 52, 78, 103, 129, 155, 180, 206, 232, 258, 283, 309, 335], + "15" : [0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288, 312, 336], + "16" : [0, 23, 45, 68, 90, 113, 135, 158, 180, 203, 225, 248, 270, 293, 315, 338] + }; + + var data = { + "1" : ["4", 8, "A1"], + "2" : ["6", 10, "A1"], + "3" : ["2", 20, "A1"], + "4" : ["8", 12, "A2"], + "5" : ["12", 8, "A1"], + "6" : ["10", 10, "A2"], + "7" : ["11", 12, "A1"], + "8" : ["14", 6, "A2"], + "9" : ["0", 26, "A2"], + "10" : ["14", 10, "A1"], + + "11" : ["10", 8, "B1"], + "12" : ["6", 12, "B2"], + "13" : ["12", 4, "B1"], + "14" : ["8", 14, "B2"], + "15" : ["8", 6, "B1"], + "16" : ["5", 10, "B2"], + "17" : ["6", 12, "B1"], + "18" : ["8", 14, "B2"], + "19" : ["0", 23, "B1"], + "20" : ["10", 13, "B2"], + + "21" : ["4", 12, "C1"], + "22" : ["6", 10, "C1"], + "23" : ["8", 12, "C1"], + "24" : ["7", 14, "C1"], + "25" : ["2", 18, "C1"], + "26" : ["4", 18, "C1"], + "27" : ["0", 24, "C1"], + "28" : ["4", 10, "C2"], + "29" : ["6", 13, "C2"], + "30" : ["4", 20, "C1"], + + "31" : ["6", 8, "D1"], + "32" : ["2", 12, "D2"], + "33" : ["3", 14, "D2"], + "34" : ["3", 18, "D1"], + "35" : ["8", 12, "D1"], + "36" : ["7", 15, "D2"], + "37" : ["16", 8, "D2"], + "38" : ["0", 23, "D1"], + "39" : ["12", 12, "D1"], + "40" : ["12", 15, "D2"], + + "41" : ["5", 10, "E1"], + "42" : ["6", 12, "E1"], + "43" : ["3", 15, "E1"], + "44" : ["3", 19, "E1"], + "45" : ["0", 24, "E1"], + "46" : ["2", 15, "E2"], + "47" : ["4", 16, "E2"], + "48" : ["12", 8, "E2"], + "49" : ["3", 20, "E2"], + "50" : ["16", 14, "E3"], + + "51" : ["6", 10, "D3"], + "52" : ["2", 18, "D4"], + "53" : ["8", 14, "D3"], + "54" : ["0", 24, "D4"], + "55" : ["4", 21, "D3"], + "56" : ["16", 16, "A1"], + "57" : ["4", 22, "C1"], + "58" : ["4", 26, "D1"], + "59" : ["4", 25, "E2"], + "60" : ["12", 14, "E2"], + + "61" : ["10", 11, "F1"], + "62" : ["4", 21, "F1"], + "63" : ["8", 16, "F1"], + "64" : ["2", 24, "F1"], + "65" : ["16", 8, "F1"], + "66" : ["12", 14, "F2"], + "67" : ["8", 19, "F2"], + "68" : ["3", 21, "F2"], + "69" : ["0", 32, "F2"], + "70" : ["8", 20, "F1"], + + "71" : ["12", 12, "F5"], + "72" : ["8", 18, "F3"], + "73" : ["15", 15, "F5"], + "74" : ["3", 18, "F3"], + "75" : ["3", 22, "F5"], + "76" : ["5", 22, "F4"], + "77" : ["6", 21, "F4"], + "78" : ["9", 18, "F4"], + "79" : ["8", 21, "F4"], + "80" : ["6", 24, "F4"], + + "81" : ["5", 12, "E4"], + "82" : ["7", 14, "E4"], + "83" : ["2", 21, "E4"], + "84" : ["0", 24, "E4"], + "85" : ["7", 16, "E4"], + "86" : ["12", 13, "E5"], + "87" : ["4", 15, "E5"], + "88" : ["5", 19, "E5"], + "89" : ["8", 18, "E4"], + "90" : ["16", 16, "E4"] + + }; + + + function bindLevles(lv, ct, count, rt){ + Levels[lv] = { + childs : childsTypes[ct], + queueCount : count, + round : roundTypes[rt] + }; + } + + for(k in data){ + bindLevles(k, data[k][0], data[k][1], data[k][2]); + } + + + module.exports = Levels; +}); diff --git a/games/core-ball/js/general/Scene.js b/games/core-ball/js/general/Scene.js new file mode 100644 index 00000000..61541f6e --- /dev/null +++ b/games/core-ball/js/general/Scene.js @@ -0,0 +1,196 @@ +/** + * @fileoverview Scene + * @author Random | http://weibo.com/random + * @date 2015-02-11 + */ + +define(function(require, exports, module) { + "use strict"; + + var CustEvent = require("lib/CustEvent"); + var Core = require("general/Core"); + var Ball = require("general/Ball"); + var BallQueue = require("general/BallQueue"); + var Collide = require("general/Collide"); + var Levels = require("general/Levels"); + var util = require("lib/util"); + + var EVENT_PASSED = "passed"; + var EVENT_FAILED = "failed"; + + var custEvent = CustEvent(); + + + + function Scene(container, canvas, stage, scale){ + var me; + var state = "run"; + var level = 1; + var ts; + var core; + var ballQueue; + var roundHandle; + var failedBall; + + function initStage(conf){ + var childs = conf.childs; + var i = childs.length; + + roundHandle = conf.round(); + + core && core.destroy(); + core = Core(canvas, stage, level, 50, scale); + + while(i--){ + core.addChild(childs[i], Ball(stage, null, "", null, scale)); + } + + ballQueue && ballQueue.destroy(); + ballQueue = BallQueue(conf.queueCount, canvas.width / 2, core.pos().y + core.rad() * 4, stage, scale); + ballQueue.on("popup", function(ball){ + core.addChild(90 - core.angle(), ball); + if(Collide.check(core, ball, scale)){ + failedBall = ball; + fail(); + }else{ + !ballQueue.ballList.length && pass(); + } + }); + } + + + function stageUpdate(){ + if(roundHandle){ + core.angle(roundHandle()); + core.update(); + ballQueue.update(); + } + } + + function updatePass(){ + var childs = core.childs(); + var i = childs.length; + var angle; + var v = 25; + var dx; + var dy; + var pos; + + container.style.backgroundColor = me.bgColor; + while(i--){ + angle = childs[i].angle + core.angle(); + dx = Math.cos(angle * Math.PI / 180) * v; + dy = Math.sin(angle * Math.PI / 180) * v; + + pos = childs[i].ball.pos(); + childs[i].ball.pos(pos.x + dx, pos.y + dy); + } + } + + function updateFail(t){ + var rs = [25, 15, 20, 15]; + var l = rs.length; + var tm = 200; + var m = tm / l; + var i; + + core.update(); + + for(i=1; i<=l; i++){ + t > m * i && failedBall.rad(rs[i-1] * scale); + } + } + + function pass(){ + if(state !== "pass"){ + container.style.backgroundColor = "#1CB01A"; + state = "pass"; + ts = +(new Date); + } + } + + function fail(){ + if(stage !== "fail"){ + container.style.backgroundColor = "#B8111C"; + state = "fail"; + ts = +(new Date); + } + } + + function toBeContinued(){ + var text = "to be continued..."; + var w = util.getTextWidth(stage, 0, 0, text, 30 * scale); + + util.drawText(stage, (canvas.width - w) / 2, 200 * scale, text, 30 * scale, "yellow"); + + + } + + me = { + enabled : false, + + run : function(lv){ + var conf = Levels[lv]; + level = lv; + if(conf){ + me.enabled = true; + initStage(conf); + container.style.backgroundColor = "#000"; + state = "run"; + + }else{ + toBeContinued(); + } + }, + + shot : function(){ + ballQueue && ballQueue.ballList.length && ballQueue.popup(); + }, + + update : function(){ + var t; + if(!me.enabled){ + return; + } + + if(state === "run"){ + stageUpdate(); + + }else if(state === "pass"){ + updatePass(); + if(+(new Date) - ts > 1000){ + state = ""; + custEvent.fire(EVENT_PASSED); + } + + }else if(state === "fail"){ + t = +(new Date) - ts; + updateFail(t); + if(t > 1000){ + state = ""; + custEvent.fire(EVENT_FAILED); + } + } + }, + + render : function(){ + if(me.enabled){ + core.render(); + ballQueue.render(); + } + }, + + on : function(type, handle){ + custEvent.add(type, handle); + }, + + off : function(type, handle){ + custEvent.remove(type, handle); + } + }; + + return me; + } + + module.exports = Scene; +}); \ No newline at end of file diff --git a/games/core-ball/js/general/Switcher.js b/games/core-ball/js/general/Switcher.js new file mode 100644 index 00000000..5161dd6c --- /dev/null +++ b/games/core-ball/js/general/Switcher.js @@ -0,0 +1,84 @@ +/** + * @fileoverview Switcher + * @author Random | http://weibo.com/random + * @date 2015-03-04 + */ + +define(function(require, exports, module) { + "use strict"; + + function Switcher(stage, width, height){ + var color; + var callBack = null; + var type; + var isEnd = false; + + var me = { + point : [0, 0], + + enabled : false, + + color : "#c8c8c8", + + update : function(){ + var p = me.point; + var v = 30; + + if(me.enabled){ + if(type === 0){ + color = me.color; + if(p[0] < width / 2){ + p[0] = Math.min(p[0] + v, width / 2); + me.point = p; + }else{ + me.point = p; + isEnd = true; + } + + }else if(type === 1){ + color = "#000"; + if(p[0] > width / 2){ + p[0] = Math.max(p[0] - v, width / 2); + me.point = p; + }else{ + me.point = p; + isEnd = true; + } + } + } + }, + + render : function(){ + var p = me.point; + + if(me.enabled){ + stage.fillStyle = color; + stage.fillRect(p[0] - width / 2, p[1] - height / 2, width, height); + if(isEnd){ + me.enabled = false + callBack && callBack(); + } + } + }, + + switchStage : function(tp, cb){ + if(tp === 0){ + me.point = [-width / 2, height /2]; + }else if(tp === 1){ + stage.fillStyle = me.color; + stage.fillRect(0, 0, width, height); + me.point = [width + width / 2, height /2]; + } + + me.enabled = true; + isEnd = false; + type = tp; + callBack = cb; + } + }; + + return me; + } + + module.exports = Switcher; +}); \ No newline at end of file diff --git a/games/core-ball/js/general/Tween.js b/games/core-ball/js/general/Tween.js new file mode 100644 index 00000000..a92e4c8f --- /dev/null +++ b/games/core-ball/js/general/Tween.js @@ -0,0 +1,28 @@ +/** + * @fileoverview Tween + * @author Random | http://weibo.com/random + * @date 2015-03-09 + */ + +define(function(require, exports, module) { + "use strict"; + + var Tween = { + simple : function(sv, ev, st, d){ + var v = (ev - sv) / d; + var t = +(new Date); + + if(t - st < d){ + Tween.isEnd = false; + return sv + (t - st) * v; + }else { + Tween.isEnd = true; + return ev; + } + }, + + isEnd : true + }; + + module.exports = Tween; +}); \ No newline at end of file diff --git a/games/core-ball/js/lib/CustEvent.js b/games/core-ball/js/lib/CustEvent.js new file mode 100644 index 00000000..bf30ef9a --- /dev/null +++ b/games/core-ball/js/lib/CustEvent.js @@ -0,0 +1,77 @@ +/** + * @fileoverview 自定义事件 + * @author Random | http://weibo.com/random + * @date 2013-05-21 + */ + +define(function(require, exports, module){ + + module.exports = function(target){ + var events={}; + + !target && (target={}); + + function getType(obj){ + return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(); + } + + return { + add:function(type,handle){ + if (getType(handle) !== "function") { + return; + } + + var evts=events; + type=type.toLowerCase(); + + !evts[type] && (evts[type]=[]); + evts[type].push(handle); + }, + + + remove:function(type,handle){ + var evts=events[type]; + var i; + + type=type.toLowerCase(); + + if (getType(handle) !== "function" || !evts || !evts.length) { + return; + } + for(i=evts.length-1;i>=0;i--){ + evts[i]===handle && evts.splice(i,1); + } + }, + + + fire:function(type){ + var evts; + var args; + var i; + var l; + + type=type.toLowerCase(); + evts=events[type]; + + if (!evts || !evts.length) { + return; + } + + args=Array.prototype.slice.call(arguments,1); + l=evts.length; + for(i=0;i=0;i--){ + evts.splice(i,1); + } + } + }; + }; +}); \ No newline at end of file diff --git a/games/core-ball/js/lib/Storage.js b/games/core-ball/js/lib/Storage.js new file mode 100644 index 00000000..e079eb33 --- /dev/null +++ b/games/core-ball/js/lib/Storage.js @@ -0,0 +1,27 @@ +/** + * @fileoverview Storage + * @author Random | http://weibo.com/random + * @date 2015-03-11 + */ + +define(function(require, exports, module) { + "use strict"; + + var Storage = { + setValue : function(key, value){ + try{ + window.localStorage && (window.localStorage[key] = value); + }catch(ex){} + }, + + getValue : function(key){ + if(window.localStorage){ + try{ + return window.localStorage[key]; + }catch(ex){} + } + } + }; + + module.exports = Storage; +}); \ No newline at end of file diff --git a/games/core-ball/js/lib/addEvent.js b/games/core-ball/js/lib/addEvent.js new file mode 100644 index 00000000..a74fa3ce --- /dev/null +++ b/games/core-ball/js/lib/addEvent.js @@ -0,0 +1,26 @@ +/** + * @fileoverview addEvent + * @author Random | http://weibo.com/random + * @date 2015-03-05 + */ + +define(function(require, exports, module) { + var util = require("lib/util"); + + var map = { + "click" : "touchstart", + "mousedown" : "touchstart", + "mouseup" : "touchend" + }; + + module.exports = function(dom, type, handle, isCapture){ + if(dom.addEventListener){ + dom.addEventListener(util.isMobile ? map[type] || type : type, handle, isCapture); + }else if(dom.attachEvent){ + dom.attachEvent("on" + type, handle); + }else{ + dom["on" + type] = handle; + } + + }; +}); \ No newline at end of file diff --git a/games/core-ball/js/lib/md5.js b/games/core-ball/js/lib/md5.js new file mode 100644 index 00000000..a7053431 --- /dev/null +++ b/games/core-ball/js/lib/md5.js @@ -0,0 +1,274 @@ +/* + * JavaScript MD5 1.0.1 + * https://github.com/blueimp/JavaScript-MD5 + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + * + * Based on + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/*jslint bitwise: true */ +/*global unescape, define */ + +(function ($) { + 'use strict'; + + /* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ + function safe_add(x, y) { + var lsw = (x & 0xFFFF) + (y & 0xFFFF), + msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); + } + + /* + * Bitwise rotate a 32-bit number to the left. + */ + function bit_rol(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); + } + + /* + * These functions implement the four basic operations the algorithm uses. + */ + function md5_cmn(q, a, b, x, s, t) { + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); + } + function md5_ff(a, b, c, d, x, s, t) { + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); + } + function md5_gg(a, b, c, d, x, s, t) { + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); + } + function md5_hh(a, b, c, d, x, s, t) { + return md5_cmn(b ^ c ^ d, a, b, x, s, t); + } + function md5_ii(a, b, c, d, x, s, t) { + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); + } + + /* + * Calculate the MD5 of an array of little-endian words, and a bit length. + */ + function binl_md5(x, len) { + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var i, olda, oldb, oldc, oldd, + a = 1732584193, + b = -271733879, + c = -1732584194, + d = 271733878; + + for (i = 0; i < x.length; i += 16) { + olda = a; + oldb = b; + oldc = c; + oldd = d; + + a = md5_ff(a, b, c, d, x[i], 7, -680876936); + d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); + d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); + b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); + d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i], 20, -373897302); + a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); + d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); + c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); + d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); + c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); + d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); + d = md5_hh(d, a, b, c, x[i], 11, -358537222); + c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); + d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i], 6, -198630844); + d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); + d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return [a, b, c, d]; + } + + /* + * Convert an array of little-endian words to a string + */ + function binl2rstr(input) { + var i, + output = ''; + for (i = 0; i < input.length * 32; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF); + } + return output; + } + + /* + * Convert a raw string to an array of little-endian words + * Characters >255 have their high-byte silently ignored. + */ + function rstr2binl(input) { + var i, + output = []; + output[(input.length >> 2) - 1] = undefined; + for (i = 0; i < output.length; i += 1) { + output[i] = 0; + } + for (i = 0; i < input.length * 8; i += 8) { + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32); + } + return output; + } + + /* + * Calculate the MD5 of a raw string + */ + function rstr_md5(s) { + return binl2rstr(binl_md5(rstr2binl(s), s.length * 8)); + } + + /* + * Calculate the HMAC-MD5, of a key and some data (raw strings) + */ + function rstr_hmac_md5(key, data) { + var i, + bkey = rstr2binl(key), + ipad = [], + opad = [], + hash; + ipad[15] = opad[15] = undefined; + if (bkey.length > 16) { + bkey = binl_md5(bkey, key.length * 8); + } + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); + return binl2rstr(binl_md5(opad.concat(hash), 512 + 128)); + } + + /* + * Convert a raw string to a hex string + */ + function rstr2hex(input) { + var hex_tab = '0123456789abcdef', + output = '', + x, + i; + for (i = 0; i < input.length; i += 1) { + x = input.charCodeAt(i); + output += hex_tab.charAt((x >>> 4) & 0x0F) + + hex_tab.charAt(x & 0x0F); + } + return output; + } + + /* + * Encode a string as utf-8 + */ + function str2rstr_utf8(input) { + return unescape(encodeURIComponent(input)); + } + + /* + * Take string arguments and return either raw or hex encoded strings + */ + function raw_md5(s) { + return rstr_md5(str2rstr_utf8(s)); + } + function hex_md5(s) { + return rstr2hex(raw_md5(s)); + } + function raw_hmac_md5(k, d) { + return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)); + } + function hex_hmac_md5(k, d) { + return rstr2hex(raw_hmac_md5(k, d)); + } + + function md5(string, key, raw) { + if (!key) { + if (!raw) { + return hex_md5(string); + } + return raw_md5(string); + } + if (!raw) { + return hex_hmac_md5(key, string); + } + return raw_hmac_md5(key, string); + } + + if (typeof define === 'function' && define.amd) { + define(function () { + return md5; + }); + } else { + $.md5 = md5; + } +}(this)); \ No newline at end of file diff --git a/games/core-ball/js/lib/require.js b/games/core-ball/js/lib/require.js new file mode 100644 index 00000000..84d1d678 --- /dev/null +++ b/games/core-ball/js/lib/require.js @@ -0,0 +1,36 @@ +/* + RequireJS 2.1.10 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details +*/ +var requirejs,require,define; +(function(ca){function G(b){return"[object Function]"===N.call(b)}function H(b){return"[object Array]"===N.call(b)}function v(b,c){if(b){var d;for(d=0;dthis.depCount&&!this.defined){if(G(c)){if(this.events.error&&this.map.isDefine||h.onError!==da)try{f=i.execCb(b,c,e,f)}catch(d){a=d}else f=i.execCb(b,c,e,f);this.map.isDefine&&void 0===f&&((e=this.module)?f=e.exports:this.usingExports&& +(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=c;this.exports=f;if(this.map.isDefine&&!this.ignore&&(p[b]=f,h.onResourceLoad))h.onResourceLoad(i,this.map,this.depMaps);y(b);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a= +this.map,b=a.id,d=m(a.prefix);this.depMaps.push(d);r(d,"defined",t(this,function(f){var d,g;g=j(ba,this.map.id);var J=this.map.name,u=this.map.parentMap?this.map.parentMap.name:null,p=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(J=f.normalize(J,function(a){return c(a,u,!0)})||""),f=m(a.prefix+"!"+J,this.map.parentMap),r(f,"defined",t(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),g=j(k,f.id)){this.depMaps.push(f); +if(this.events.error)g.on("error",t(this,function(a){this.emit("error",a)}));g.enable()}}else g?(this.map.url=i.nameToUrl(g),this.load()):(d=t(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),d.error=t(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(k,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),d.fromText=t(this,function(f,c){var g=a.name,J=m(g),k=O;c&&(f=c);k&&(O=!1);q(J);s(l.config,b)&&(l.config[g]=l.config[b]);try{h.exec(f)}catch(j){return w(C("fromtexteval", +"fromText eval for "+b+" failed: "+j,j,[b]))}k&&(O=!0);this.depMaps.push(J);i.completeLoad(g);p([g],d)}),f.load(a.name,p,d,l))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){W[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,t(this,function(a,b){var c,f;if("string"===typeof a){a=m(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=j(K,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;r(a,"defined",t(this,function(a){this.defineDep(b, +a);this.check()}));this.errback&&r(a,"error",t(this,this.errback))}c=a.id;f=k[c];!s(K,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,t(this,function(a){var b=j(k,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:l,contextName:b,registry:k,defined:p,urlFetched:T,defQueue:A,Module:$,makeModuleMap:m, +nextTick:h.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=l.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(l[b]||(l[b]={}),V(l[b],a,!0,!0)):l[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(ba[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);b[c]=a}),l.shim=b);a.packages&&v(a.packages,function(a){var b, +a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(l.paths[b]=a.location);l.pkgs[b]=a.name+"/"+(a.main||"main").replace(ja,"").replace(R,"")});B(k,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=m(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ca,arguments));return b||a.exports&&ea(a.exports)}},makeRequire:function(a,e){function g(f,c,d){var j,l;e.enableBuildCallback&&(c&&G(c))&&(c.__requireJsBuild= +!0);if("string"===typeof f){if(G(c))return w(C("requireargs","Invalid require call"),d);if(a&&s(K,f))return K[f](k[a.id]);if(h.get)return h.get(i,f,a,g);j=m(f,a,!1,!0);j=j.id;return!s(p,j)?w(C("notloaded",'Module name "'+j+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):p[j]}M();i.nextTick(function(){M();l=q(m(null,a));l.skipMap=e.skipMap;l.init(f,c,d,{enabled:!0});D()});return g}e=e||{};V(g,{isBrowser:z,toUrl:function(b){var e,d=b.lastIndexOf("."),g=b.split("/")[0];if(-1!== +d&&(!("."===g||".."===g)||1g.attachEvent.toString().indexOf("[native code"))&&!Z?(O=!0,g.attachEvent("onreadystatechange",b.onScriptLoad)): +(g.addEventListener("load",b.onScriptLoad,!1),g.addEventListener("error",b.onScriptError,!1)),g.src=d,M=g,D?y.insertBefore(g,D):y.appendChild(g),M=null,g;if(fa)try{importScripts(d),b.completeLoad(c)}catch(j){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,j,[c]))}};z&&!r.skipDataMain&&U(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(L=b.getAttribute("data-main"))return q=L,r.baseUrl||(E=q.split("/"),q=E.pop(),Q=E.length?E.join("/")+"/":"./",r.baseUrl= +Q),q=q.replace(R,""),h.jsExtRegExp.test(q)&&(q=L),r.deps=r.deps?r.deps.concat(q):[q],!0});define=function(b,c,d){var g,h;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(la,"").replace(ma,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(O){if(!(g=M))P&&"interactive"===P.readyState||U(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),g=P;g&&(b|| +(b=g.getAttribute("data-requiremodule")),h=F[g.getAttribute("data-requirecontext")])}(h?h.defQueue:S).push([b,c,d])};define.amd={jQuery:!0};h.exec=function(b){return eval(b)};h(r)}})(this); diff --git a/games/core-ball/js/lib/stopEvent.js b/games/core-ball/js/lib/stopEvent.js new file mode 100644 index 00000000..8a46ebd3 --- /dev/null +++ b/games/core-ball/js/lib/stopEvent.js @@ -0,0 +1,21 @@ +/** + * @fileoverview stopEvent + * @author Random | http://weibo.com/random + * @date 2015-03-11 + */ + +define(function(require, exports, module) { + "use strict"; + + module.exports = function(evt){ + if(evt){ + if(evt.preventDefault) { + evt.preventDefault(); + evt.stopPropagation(); + }else{ + evt.returnValue = false; + evt.cancelBubble = true; + } + } + }; +}); \ No newline at end of file diff --git a/games/core-ball/js/lib/util.js b/games/core-ball/js/lib/util.js new file mode 100644 index 00000000..f192a9c4 --- /dev/null +++ b/games/core-ball/js/lib/util.js @@ -0,0 +1,50 @@ +/** + * @fileoverview util + * @author Random | http://weibo.com/random + * @date 2015-02-05 + */ + +define(function(require, exports, module) { + "use strict"; + + module.exports = { + drawCircle : function(ctx, x, y, r, c){ + ctx.beginPath(); + ctx.arc(x, y, r, 0, 2 * Math.PI, false); + ctx.fillStyle = c || "red"; + ctx.fill(); + }, + + drawLine : function(ctx, x1, y1, x2, y2, c, w){ + ctx.strokeStyle = c || "red"; + ctx.lineWidth = w || 1 + ctx.beginPath(); + ctx.moveTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.stroke(); + }, + + drawText : function(ctx, x, y, text, size, c){ + ctx.font = size + "px Verdana"; + ctx.fillStyle = c || "red"; + ctx.fillText(text, x, y); + }, + + getTextWidth : function(ctx, x, y, text, size, c){ + ctx.font = size + "px Verdana"; + ctx.fillStyle = c || "red"; + return ctx.measureText(text).width; + }, + + getPointDistance : function(p1, p2){ + return Math.floor(Math.sqrt(Math.floor(Math.pow(p1.x - p2.x, 2)) + Math.floor(Math.pow(p1.y - p2.y, 2)))); + }, + + isMobile : (/(mobile|iphone|ipod|ipad|ios|android|windows phone)/i).test(navigator.userAgent), + + isAndroid : (/android/i).test(navigator.userAgent), + + isWeixin : (/MicroMessenger/i).test(navigator.userAgent) + + }; +}); \ No newline at end of file diff --git a/games/core-ball/js/page/index.js b/games/core-ball/js/page/index.js new file mode 100644 index 00000000..861e92fa --- /dev/null +++ b/games/core-ball/js/page/index.js @@ -0,0 +1,15 @@ +/** + * @fileoverview index + * @author Random | http://weibo.com/random + * @date 2015-02-05 + */ + +define("page/index", function(require, exports, module) { + "use strict"; + + var Game = require("general/Game"); + + Game.start(); +}); + +require(["page/index"]); \ No newline at end of file diff --git a/games/core-ball/pr_source.png b/games/core-ball/pr_source.png new file mode 100644 index 00000000..c6b1387b Binary files /dev/null and b/games/core-ball/pr_source.png differ diff --git a/games/core-ball/style.css b/games/core-ball/style.css new file mode 100644 index 00000000..5a739ed0 --- /dev/null +++ b/games/core-ball/style.css @@ -0,0 +1,65 @@ +@font-face { + font-family: poiret one; + src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAARAQAABAAQRFNJRwAAAAEAALpUAAAACEZGVE1gZKrgAACk3AAAABxHREVGAiUABgAApPgAAAAgR1BPU5fzTLYAAKUYAAAU+kdTVUIjnCSfAAC6FAAAAEBPUy8yiTxnzAAAAZgAAABgY21hcGSPbQYAAAnYAAADdmdhc3AAAAAQAACk1AAAAAhnbHlmqowlTwAAEUwAAIEQaGVhZPn6x28AAAEcAAAANmhoZWEHxQVaAAABVAAAACRobXR4QMpQggAAAfgAAAfgbG9jYVf8OQAAAA1YAAAD8m1heHACQQA/AAABeAAAACBuYW1lNQF0XgAAklwAAAaZcG9zdIt1TowAAJj4AAAL23ByZXBoBoyFAAANUAAAAAcAAQAAAAEAQnXJqa1fDzz1AAsD6AAAAADLbcGrAAAAAMttwav/r/8wBFEDwgAAAAgAAgAAAAAAAAABAAADwv8wAAAEg/+v/64EUQABAAAAAAAAAAAAAAAAAAAB+AABAAAB+AA8AAcAAAAAAAIAAAABAAEAAABAAAAAAAAAAAIBqgGQAAUAAAK8AooAAACMArwCigAAAd0AMgD6AAACAAAAAAAAAAAAoAACL1AAAEoAAAAAAAAAAHB5cnMAQAAN+wQDwv8wAAADwgDQAAAAlwAAAAABwgLuAAAAIAACAdYAAAAAAAABTQAAABQAAAHWAAABXgAAAOIAUAETAEYCoAAPAfsAIwK0ABQCuAAjALcASwFNAFUBTgAZATkAIwFVAA8AiwAjAYcAKACLACMChgAZA1gAKADxAA8CfQAeAk0AHgHqABECiQAtAncAIQIXABQCOQAeAncAHADtAFUA7wBVAZgASwGbADIBmABLAoYALQNwADIDKQAeAYMASwK6AC0CDgBLAXEASwFvAEsCtQAtAtoASwDBAFAB0wAUAjwASwFoAEsDlwBLAtsASwNmAC0BhgBKA2YALQGXAEsB8gAoAaEAFAJVAEsDEgAUA/8AFAHjABQCDAAUAasAGQDXAEgChgAZANcADwFKAA8BZgAZANMADwI5ACMCOQA8AdwAIwI5ACMB7wAoAPwAPAI6ACMCAgA8ALIAPADy//sBhAA8APsAPALqADwCDAA8AiIAIwI5ADwCOQAjAVwAPAFYACAA8QAyAfgAMgHtABkCrAAZAbEAFQH4ADIBawAZAQEAIgC3AEsBAQAUAhUASwDiAFACHQAyAhEAFANLACMCFgAZANcAWgGqADIAwAAPA3oANwHjAEYBmgAyAZsAMgN6ADcBVQBLAL8AFAHDAEYA0wAPAisASwI0AEsA1ABLAI4ADwHjABQCcgA3AykAHgMpAB4DKQAeAykAHgMpAB4DKQAeArMAGQLOADcBhQBVAYUAVQGFAEoBhQBVANUAEADVABAA1f/XANUAGQIOAA8C7wBVA3oANwN6ADcDegA3A3oANwN6ADcBiQBLA3AAMgJpAFUCaQBVAmkAVQJpAFUCIAAeAZoASwI8AEsCTQAtAk0ALQJNAC0CTQAtAk0ALQJNAC0DpAAoAfAALQIDADICAwAyAgMAMgIDADIAxgAJAMYACQDG/88AxgASAjsANwIgAEYCNgAtAjYALQI2AC0CNgAtAjYALQHNAEsCLAAoAgwAPAIMADwCDAA8AgwAPAIMADwCTQBLAgwAPAMVABQCOQAjAxUAFAI5ACMDFQAUAjkAIwK6AC0B3AAjAroALQHcACMCugAtAdwAIwK6AC0B3AAjAg4AOQKFACMCDgAPAlMAIwFxAEsB7wAoAXEASwHvACgBcQBLAe8AKAFxAEsB7wAoAXEAPwHvACgCtQAtAjoAIwK1AC0COgAjArUALQI6ACMCtQAtAjoAIwLaAEsCAgA8AtoAFAIPAA8Awf+2ALL/rwDBAAAAsv/3AMH/5ACy/90Awf/+ALL/+ADBAEMAsgBJAdMAFADy//sCPABLAYQAPAFoABMA+wASAWgASwD7ADwBaABLAQkAPAFoAEsBIQA8AWgACAEaAAgC2wBLAgwAPALbAEsCDAA8AtsASwIMADwCDAA7A2YALQIiACMDZgAtAiIAIwNmAC0CIgAjAvcAMgM0ADcBlwBLAVwAPAGXAEsBXAA7AZcAJwFcADIB8gAoAVgAIAHyACgBWAAYAfIAKAFYACACBgAyAWwAIgGhABQA8QAyAaEAFAESADIBoQAUAPoACgJVAEsB+AAyAlUASwH4ADICVQBLAfgAMgJVAEsB+AAyAlUASwH4ADICVQBLAfgAMgP/ABQCrAAZAgwAFAH4ADICIAAeAasAGQFrABkBqwAZAWsAGQG/ACMBfwAjAWoAGQKzABkDpAAoA2YALQIiACgB8gAoAVgAIAFKABIBSgASARcADwBYAA8AtQAPAJEADwFzAA8BSgAPAXsASwKXABkBeQBLAqYAMgIbADIA1QBaAL0ADwHYABkDHgAZAssASwKXABwCQwBLAn8AIAJtAEsDHwAZAYkASwGIAEsBbwBLA38AIwFxAEsDlgAZAhcAIwLhAEsC4QBLAkEASwMcABkDlwBLAtoASwNwADICbgBLAZgASwKmADIBqwAZAncAGQNPADIB7QAZAogASwJGADwCygBLAuYASwHUABkCHgBLAYkASwKmACMEXQBLAZYAIwJNACgCOwA3AVsASwErAEsCGAAZAeoAKAJoABkBZgAeAhUASwIVAEsBkwBLAe0AGQJlAEsCBwBLAiwAKAIAAEsCTQBLAeYAKAGqABkB/AAZAlkAKAG6ABkCFQBLAbQAKAJmAEsCfgBLAX4AGQHyAEsBVgBLAeYAHgLgAEsBSAAoAfQAKAKAABkBKwBLAesAKAFlACgA2gBQAMoAFAEQAAoCdAAeAlkASwKAABkBkwBLAfwAGQH+AEsBbwBLASsASwP/ABQCrAAZA/8AFAKsABkD/wAUAqwAGQIMABQB+AAyAZgAMgHuAA8A3ABkANwAGQDNABQBWABkAVgAGQFJABQBzQBLAc0ASwE7AG4B+gBLBIMANwE5AEsBOQAUAW8AGAIRABQCvQBLBFcASwKdACMCFQBLAc0ASwHPAEsBzwBLAGMADwHkADwBmgA8AeMAPAKCADwC3wA8A/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAYwAPAAAAAwAAAAMAAAAcAAEAAAAAAWwAAwABAAAAHAAEAVAAAABQAEAABQAQAAAADQB+AKkAsQC4ALsBMQE3AUkBfgGSAf8CGQLHAt0EDARPBFwEXwSRHoUe8yAUIBogHiAiICYgMCA6IKQgrCEWISIiSCJgImX2w/sE//8AAAAAAA0AIAChAKsAtAC7AL8BNAE5AUwBkgH8AhgCxgLYBAEEDgRRBF4EkB6AHvIgEyAYIBwgICAmIDAgOSCjIKwhFiEiIkgiYCJk9sP7AP//AAP/9//l/8P/wv/A/77/u/+5/7j/tv+j/zr/Iv52/mb9Q/1C/UH9QP0Q4yLituGX4ZThk+GS4Y/hhuF+4RbhD+Cm4Jvfdt9f31wK/wbDAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAgoAAAAAAQAAAwAAAAAAAAAAAAAAAAAAAAEAAgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwAAAH8AgACCAIQAjACRAJcAnACbAJ0AnwCeAKAAogCkAKMApQCmAKgApwCpAKoArACuAK0ArwCxALAAtQC0ALYAtwGyAHIAZQBmAGoBtAB2AJoAcABsAb0AdABrAb8AgQCTAAAAcwHAAcEAaAB1AAAAAAAAAAAAAAAAAAAAAAChALMAegBkAG4AAAE1Ab4AAABtAHkBtQAAAHsAfgCQAQgBCQGqAasBrwGwAawBrQCyAAAAugEuAAABuwG3AbgBxAHFAbMAdwGuAbEBtgB9AIUAfACGAIMAiACJAIoAhwCOAI8AAACNAJUAlgCUAOwBPAFCAHEBPgE/AUAAeAFDAUEBPQAAuAH/hbAEjQAAAAAAAAAAAAAAAAAAAAASACQAVgCiAOQBIAEsAUQBXgGEAZgBqgG4AcQB0gH4AgYCKgJgAnoCqALQAuIDIANGA1gDcAOEA5gDrAPUBBoENgRmBIoEqAS+BNIE/AUUBSIFPgVYBWgFhgWcBcAF4AYWBjoGdAaGBqQGuAbeBvwHEgcoBzoHSAdaB2wHegeIB7IH2gf+CCgIUAhoCKAIvgjSCOwJBAkYCUgJZgmGCa4J2AnyCiAKOApWCmgKiAqiCs4K4gsQCxwLSAtkC3YLrgvkDB4MQgxUDKQMtgz2DRINIg0wDXANfg2eDboNyA3qDgYOEg4wDkwOdA6WDrgO3g8ODzQPaA+MD8QP4A/8EB4QQBBUEGgQgBCYEMAQ6hEWEUIRchGsEdwR9hI6EmAShhKwEtoS9hMWE0gTeBOoE9wUGhROFJAU2hUWFUQVchWkFdYV6hX+FhYWLhZqFpwWxBbqFxYXShd2F5AXyBfuGBQYPhhoGJwYxhj+GRoZShl6GbYZ4BoYGkQabhqeGswa9hsgG1AbfhumG9wcBBw2HEwcehykHN4c+h0oHUwdgh2kHdYeDB5OHowe2B8IH0YffB/AH+QgDCA0IFogfCCeILIgxiDmIQYhIiFEIVghZiGMIawh0iH0IgoiJCJAImAifCKcIrIizCLoIwgjJCNII2ojlCO0I9wkBiQwJFYkjiTCJPQlIiVKJYoltCXUJgQmKiZYJn4mvibyJzYnbie8J/4oQih6KJgovCjaKP4pGik6KW4poinGKeoqHCpOKoYqvirqKxYrRCtyK6IrzCvsLCQsRCxgLHwsmCyyLNIs8i0WLUAtki3cLhouYC6aLqwuvi7YLuQvBC8cLzgvTC9uL5gvri/YMA4wGjAyME4wejCmMMgw6jEUMSoxRjFmMZYxpjHEMdwyBDI4MlAyfDKWMqoyyDLgMwQzGDM4M1wzbjOGM7wz2jPyNBI0KjRGNGg0jjSuNNg1CDUuNVg1ijW2NcY14jYKNiw2XDZ0NqA2tjbGNuA2+DcYNyw3VDd4N4o3oDfUN+44BjgmOD44WDh4OJ44vDjmORI5NDlmOZQ5qjnUOgI6FjouOkg6cjqaOsA63DsGOx47MDtCO247lDvAO+Y8FjxAPFw8kDyePKw8wDzUPOY9Bj0mPUQ9XD16PYo9oD38Pg4+ID48Pno+qj7gPwQ/Mj9SP24/ij+cP8Y/6kAOQEJAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAiAAAAAIAUP/5AJIC7gADAAcAABMzESMGNDIUYiEhEkIC7v12az4+AAIARgJ3AM0DKgADAAcAABM1MxUzNTMVRiFFIQJ3s7OzswAAAAIADwAAApEC7AAbAB8AABMhNzMHMzczBzMVIwczFSMDIxMjAyMTIzUzNyMhBzM3DwD/byFvuW8hb4iWRNrnfCB8unwfe6GvQ/IBE0S5RAHw/Pz8/B+ZH/7nARn+5wEZH5mZmQADACP/twHYAy8AIgApAC8AABImNDY3NTMVFhcVLgEnER4CFxYVFAYHFSM1LgEnNR4BFxEXJicRPgE0AAYUFhcRn1ZiPx9TMxFNKCcsQBEreFcfPmseGm4/li1KSmb+/k1CPgHHToZVBzg4Bj0wIDAG/uIRFSoUNEdagww9OwI4LTQ1RwIBl1AkIP53DHGaAalJZj0dARIAAAUAFP/1AqAC+QAJABEAGwAjACcAAAUjIiY0NjIWFAY2JiIGFBYyNgEjIiY0NjIWFAYCIgYUFjI2NCUzASMB/wpAXmCJYF8/T2pQUGpP/jwKQV1fiV9eD2xQUGxNARUn/dElC2KEYGCEYthRUWtQUAFRYoRgYIRiASlRa1BPbGP9EgAAAAEAI//yAqkC+AAqAAA3NDY3LgE1NDYyFxUuASIGFBY7ARUjIgYUFjI2PQEjNSEVIxEjNQ4BIyImI2NPJTBaiC4OQldJSTIOCFqFhLaEiwE0ix4Wf0pple5QhhgSSik/WDQ1ISxJYkkchbWDglzfHBz+NIA8UpUAAAEASwJ4AGwDKgADAAATNTMVSyECeLKyAAEAVf+pATQDMgALAAAyJhA2NxUGFRQWFxXNeHdovmRa7gED7FUkrvN41FEnAAAAAAEAGf+qAPkDKwAMAAASFhAGBzU+ATQmJzU3hXR4aFtkZFsEAtjn/vvsViZQ1fDWUB4CAAABACMB9QEWAukAFwAAEzMVNxcHMxUjFwcnFSM1Byc3IzUzJzcXkhlFFUZXV0UWQxlFFUVaW0cURwLpW0cURhpDFUVZWkYVQxpGFEcAAQAPAP0BRgItAAsAABMjNTM1MxUzFSMVI5uMjCGKiiEBgx+Lix+GAAEAI//BAGgANwAIAAAXNSI0MhUUDwFCH0UDHz84Ph8HCUcAAAEAKAGDAV8BogADAAABITUhAV/+yQE3AYMfAAABACP/+QBoADcAAwAAFjQyFCNFBz4+AAABABkAAAJtAuwAAwAAATMBIwJGJ/3RJQLs/RQAAgAo//MDMAL5AAsAEwAABSMiJhA2IBYVFA4BEiYgBhAWIDYBsw+b4eQBQORmsfbR/tvQ0AEl0Q3oATnl5KBlsmsCFtPT/tnS0gAAAAEADwAAAKYC7AAFAAAzESM1MxGFdpcCzx39FAABAB4AAAJNAvcAEwAAATQmIgYVIzQ2MhYVFAcFIRUhJTYCLITakR+k9Zax/vABvv3aAV2rAeBllp1wf6qmcqVvqiHdbAAAAAABAB7/9gIgAvkAIwAAJRQGIiY9ATMVFBYyNjU0Ji8BNz4BNTQmIgYHIz4BMhYUBx4BAiCX1Jcfg7qFQzYTEhodW39fAiACb51tNTdC8mmTjmMVEFt/f1w/dhcIDhRBIj1aXUFNbWaTOiFxAAACABEAAAHbAvgACAALAAAhNSEBETMVIxUnEQEBY/6uAXNXVyH+31sCnf2EIVt8Agn99wAAAQAt//YCXALuABwAAAEVIQM+ATMyFhQGIyImJzMeATMyNjQmIyIGByMTAgn+gxsjbj13pqd2X50WHxiIU2mUlGk+biQjIwLuHf7/LTCn66V4XFBoldOXPTQBTgACACH/9AJZAu4ADQAVAAABMhYUBiImND8BMwc+AQIWMjY0JiIGAURup6jrpWXbJsYRTuCUz5KTzJYCK6ropaTndPvjDRP+epWV0piZAAAAAAEAFAAAAgMC7AAFAAATIQEjASEUAe/+fiUBc/5FAuz9FALPAAMAHv/yAhsC+AAVAB0AJQAAARQGBx4BFRQGIiY1NDY3LgE1NDYyFiYGFBYyNjQmABYyNjQmIgYBsywmUWmV0pZlTyUwWoFbzUlJY0pK/vaDtoKCtYQCYSlGFBSKUmiUlWdQhhgSSik/WFg8SWJJSWJJ/baDg7aEhQAAAAACABwAAAJUAvoADQAVAAAlIiY0NjIWFA8BIzcOARImIgYUFjI2ATFvpqjrpWXbJsYRTuCUz5KTzJbDqemlpeZ0++MNEwGGlZXSmJkAAgBV//kAmAFDAAMABwAAFjQyFAI0MhRVQ0NDBz4+AQw+PgAAAgBV/8EAmgFDAAMADAAAEjQyFAM1IjQyFRQPAVVFJh9FAx8BBT4+/rw4Ph8HCUcAAQBLAOUBhAJyAAYAABMlFQ0BFSVLATn+8QEP/scBvLYmn6AouQAAAAIAMgFNAWkB7AADAAcAAAEhNSEVITUhAWn+yQE3/skBNwHNH58dAAABAEsA5QGEAnIABgAAEwUVBTUtAUsBOf7HAQ/+8QJytx25KKCfAAAAAgAt//kCMQL6ABMAFwAAEz4BMhYUBwYHFSM1MzI2NCYiBgcSNDIULQaM35NHRWMgDmR9g8J5BMNFAf9vjJLBWEQGpcKEuX55Zf36Pj4AAAAEADL/8wM+AvsACQARACEAKQAABSMiJhA2IBYQBhImIAYQFiA2AxEjNQ4BIyImNDYzMhYXNQAWMjY0JiIGAb8Pm+PmAULk4sHR/tnS0gEm0nkgIG4+YoyMYj5uIP5me6l4eah7DeoBOeXk/sXpAhjT0/7Z1NQBdP4+aTY+i8KLPjZp/sp7e6l8fQAAAAIAHgAAAwsDAAAGAAkAAAkBIwMhAyMBAyEBlAF3I47+b4wfAXO7AXgDAP0AAR7+4gK7/oAAAAAAAwBLAAABZQLuAA0AFQAdAAATMzIWFRQGBx4BFAYrARMRMzI2NCYjAxUzMjY0JiNLIEFYMSFNZpJoICAIVn18VwgILUVELgLuUT8mTwwTfr+NAcv+UYCwfwEH7ElfRAAAAQAt//UCfgL9ABYAAAUjIi4BNTQ2MzIXFSYjIgYQFjMyNxUGAbgLZ7Jn5qBrYF5tk9LSk21eWwtss2Wf5TglQNP+2dRAJTgAAgBLAAAB4QLuAAcADwAAEzMyFhAGKwETIxEzMjYQJksgqM7NqSAoCAiSu7sC7t3+y9wC0P1PygEbzAAAAQBLAAABWALuAAsAABMhFSMRMxUjFTMVIUsBDezFxez+8wLuHf5oHf8dAAABAEsAAAFWAu4ACQAAEyEVIxEzFSMRI0sBC+rDwyEC7h3+ah3+4gAAAQAt//UCfgL9ABoAAAE1IREGKwEiLgE1NDYzMhcVJiMiBhAWMzI3NQFlARlYbgtnsmfmoGtgXm2T0tKTUlgBHh3+8Tdss2Wf5TglQNP+2dQq4gAAAQBLAAACjwLuAAsAAAEzESMRIREjETMRIQJuISH9/iEhAgIC7v0SAR7+4gLu/k0AAQBQAAAAcQLuAAMAABMzESNQISEC7v0SAAAAAAEAFP/xAYgC7gAPAAATNTMRFAYrASInNRYyNjURrtp3YApQQz+wZALRHf34bYg5KUV3XQHvAAAAAQBLAAACKALuAAoAABMzEQEzCQEjAREjSyABPSj+qQGvLP5wIQLu/u0BE/7V/j0Bof5fAAEASwAAAVQC7gAFAAATETMVIRFs6P73Au79Lx0C7gAAAQBL//IDTALuAAsAAAERIxEJAREjETMJAQNMIf6e/qAeMAFRAVIC7v0SAsf9KwLV/TkC7v1MArQAAAAAAQBL//UCkAL5AAcAAAEzEQERIxEBAnMd/dgdAigC7v0HAqf9ZAL5/VoAAAACAC3/8wM5AvsACQARAAAEJhA2IBYQBisBACYgBhAWIDYBEOPmAULk4p0PAW3R/tnS0gEm0g3qATnl5P7F6QIY09P+2dTUAAACAEoAAAFlAu4ACQARAAATMzIWFAYrAREjEzMyNjQmKwFKIWiSl1sIISEIVH1/UggC7o/CjP7vAS18qn4AAAAAAgAt//QDOQL8ABEAIAAAARQGBxcjJwYrASIuATU0NiAWATI3JzMXPgE1NCYgBhAWAzlTRVEsPl9xC2eyZ+YBQuT+emVarSuaQE7R/tnS0gF4WaM3UT4+bLNln+Xk/fk3q5gzmFKU09P+2dQAAgBLAAABeQLuAAwAFAAAEzMyFhQGKwEBIycVIxMzMjY0JisBSythk5ZWBwECK+MgIBJRfIBSDQLuj8GO/vDu7gEtfKp+AAAAAQAo//IBygL7ACgAAAAmIgYdARQXHgQdARQGIyInNR4BMjY9ATQuBD0BNDYzMhcVAWJPYkVGHktLPSeBX31FGmWWbjROXE40WkJcNgKuMD01BT80FisxN1AwCl9wZzY5R2BQBjJTNToyTC0HRkpEMwAAAAABABQAAAGNAu4ABwAAARUjESMRIzUBjashrQLuHf0vAtEdAAABAEv/8gIKAu4AEQAABSMiJjURMxEUFjI2NREzERQGATAKXH8hbqJtIX8OgGECG/3mVXBvVgIa/edigQABABT/7wL+Au4ABQAABQEzCQEzAYn+iyQBVAFSIBEC//1JArcAAAAAAQAU//MD6ALuAA8AAAUBMwETAzMbATMDEwEzAQMBXf63JQEpi5ski48cnI4BLxv+s58NAvv9UQFFAWr+twFJ/pf+twKy/QUBbgAAAAEAFAAAAc8C7gALAAABAxMjCwEjEwMzGwEBo6HNJbu8H8ulJpKRAu7+tv5cAYH+fwGjAUv+1wEpAAAAAAEAFAAAAfgC7gAIAAAhIxEDMxsBMwMBGSHkJNPPHt8BLAHC/mEBn/4+AAAAAQAZAAABlQLuAAcAACUVIQEhNSEBAZL+hwFK/rYBfP61HR0C0R39LwAAAAABAEj/rQDIAzAABwAAExEzFSMRMxVpX4CAAxP8tx0Dgx0AAAABABkAAAJtAuwAAwAAEzMBIxkmAi4mAuz9FAAAAQAP/60AkQMwAAcAABcRIzUzESM1cGGCgjYDSR38fR0AAAAAAQAPAhwBOwKnAAYAABMXIycHIzexiilsbSqMAqeLbGyLAAAAAQAZAAABTQAfAAMAACkBNSEBTf7MATQfAAAAAAEADwIRAMQChAADAAATMxcjDymMKgKEcwAAAAACACP/9QH9Ac0ADwAXAAABESM1DgEjIiY0NjMyFhc1ABYyNjQmIgYB/SAccEBijIxiQHUX/mZ7qXh5qHsBwv4+cDlCi8KLRDhx/sp7e6l8fQAAAAACADz/9QIWAu4ADwAXAAAzETMRPgEzMhYUBiMiJicVJhYyNjQmIgY8IBtzPmOLi2M8ch4Ce6l4eah7Au7+ZjdCi8KLQTdtjHt7qXx9AAAAAAEAI//zAcMBywAVAAAFIyImNDYyFxUuASMiBhQWMzI2NxUGARYJYIqMzEgfXzRTe3tTNF8fRg2Ov4tNMy42e6p7Ni80TQAAAAIAI//1Af0C7gAPABcAAAERIzUOASMiJjQ2MzIWFxEAFjI2NCYiBgH9IB5yPGOLi2M+cxv+Znipe3uoeQLu/RJtN0GLwotCNwGa/Z57e6h9fAAAAAIAKP/0AcwBzAAOABQAAAUjIiY0NjIXARYyNjcVBgIGFBcBJgEdCV+NjM5K/sZBeF8fR797NQEjPgyPvotS/so0Ny4zTgG8e6A8ASE2AAAAAQA8AAAA6AJ4AA0AABMVIgYVETMVIxUjETQ25zpRjIwgZAJ4HFA9/vkcrAHPSl8AAgAj/zAB/gHMABsAIwAAATMRFAYjIiYnNR4BMzI2PQEOASMiJjQ2MzIWFwQWMjY0JiIGAd4ggGg5bB4abzpYcBt0PmKMjGJBcRv+ZXupeHipewHC/mh0hjQqLjBAd2dDN0KLwotBOcd7e6p7ewAAAAEAPAAAAdAC7QARAAAzIxEzETYzMhYVESMRNCYiBhVcICAye1RzIGKKaALt/n5idFP++gEGRmVmRQAAAAIAPAAAAHYCZQADAAcAABMRIxEmNDIUaSANOgHB/j8BwW42NgAAAAAC//v/OgC2AmUACQANAAAHNTI2NREzERQGEjQyFAU7UiBlOTrGHFA9Ad/+IUpfAvU2NgAAAQA8AAABawLsAAoAABMzETczBwEjJxUjPCCyKc4BAivkIALs/jqctP7y7e0AAAAAAQA8//cA5wLuAAkAADcVIiY1ETMRFBbnR2QgURMcX0oCTv2yPVAAAAEAPAAAAq4BzQAeAAAANjIWFREjETQmIgYVESMRNCYiBhURIxEzFT4BMhYXAYNVelwgTGtTIExsUCAgFE9VThIBkzpYS/7WASo6TVA1/tQBLDZPUDX+1AHCPx4sOy8AAAEAPAAAAdABzQARAAAzIxEzFTYzMhYVESMRNCYiBhVcICAze1RyIGGKaQHCW2Z0U/76AQZFZmZFAAAAAAIAI//1Af8BzQAJABEAABYmNDYyFhQGKwESJiIGFBYyNq2KjMWLiGEJ0nmoe3upeAuPvouLv44BQHx9qHt7AAACADz/OAIWAc0ADwAXAAAXETMVPgEzMhYUBiMiJicRAhYyNjQmIgY8IBtzPmOLi2M8ch4Ce6l4eah7yAKKbjdCi8KLQTf+ywFUe3upfH0AAAIAI/84Af0BzQAPABcAAAERIxEOASMiJjQ2MzIWFzUAFjI2NCYiBgH9IBxwQGKMjGJAdRf+ZnupeHmoewHC/XYBODlCi8KLRDhx/sp7e6l8fQAAAAEAPAAAAUMBzQANAAAAIgYVESMRMxU+ATIXFQEXalEgIBJMXisBsVA1/tQBwkMiLCAoAAABACD/9QE1Ac4AHgAAEyIGFB4DFRQGIyImJzUWMzI2NC4DNDYyFxUmnhooLT9ALVk/KEUQJlQ0Ry1APy05WiAgAbIiMiojKD4oO1MjHTBUQE82JiU1RzEjKTAAAAEAMv/6AN0CdwANAAA3FSImNREzFTMVIxEUFt1HZCCKilEWHF9KAdS2HP7+PVAAAAEAMv/1AcYBwgARAAABMxEjNQYjIiY1ETMRFBYyNjUBpiAgM3tUciBhimkBwv4+W2Z0UwEG/vpFZmZFAAEAGf/zAdQBwgAFAAABMwsBMxMBtx3d3iO+AcL+MQHP/nUAAAEAGf/1ApMBwgAPAAATMxM3JzMXNzMHFxMzAycHGSG5V2EgUVMeYla3HdVmZwHC/ne30LGz0rkBiv4029sAAAABABUAAAGdAcIACwAAGwEjJwcjEyczFzcz6LUloqEgsXclZGQgARH+7/X1AQ60mJgAAAAAAQAy/zkBxgHCABwAAAEzERQGIyInNx4BMzI2PQEGIyImNREzERQWMjY1AaYgfFpsPwIcWzJKbDF6U3YgZYplAcL+TFl8UzIwOWtLTGJ1UgEG/vpFZmZFAAEAGQAAAVIBwgAHAAAlFSEBIzUhAQFP/soBAOUBHv7/HBwBphz+WgABACL/tQDtAzEAHAAAExUUBgcWHQEUFhcVLgE9ATQmJz4BPQE0NjcVDgGnIyBDJiAtOjoqKjo6LSAmApuhJ0cVLFWpKEASHhVUL6ksSQwMSyyhL1EWHhBAAAAAAAEASwAAAGwC7AADAAAzETMRSyEC7P0UAAEAFP+1AN8DMQAbAAATFRQWFw4BHQEUBgc1Nj0BNDcuAT0BNCYnNR4BfTooKDo8LUhCHyMnIS47ApuhK0wMDEksqS5WFB4nU6lWKxRIJ6EoQBAeFlEAAAABAEsBOgHKAZ8ADQAAAQYiJiMGBzU2NzIWMjcByihRhyYxKCcxL4NMKQFoLkgEQjMsBEhBAAAAAAIAUAAAAJIC9QADAAcAADMjETMmNDIUgyEhM0ICii0+PgAAAAIAMv9lAfoCNAAeACYAAAU1IyImNDY7ATUzFTMyFxUuASsBETMyNjcVDgErARUDIyIGFBY7AQEeBGp+em0FIgVwRR9hNQUFNmAfIGE1BCIFXmZmXgWbkou9iWxsSjMtNP5nNC00IyaSAkd4qncAAAABABT//gH9AvYAJgAAEzMVIxUyFjI3MwYjIiYrAQYHIzY3NSM1MzU0NjsBMhcVLgEjIgYVscrJL4NMKSQ7OiiHJyExKCQyS1xcZFEJRDkYRiRIUQE4HLdIQWBJBENdCLcc7Ft3MiMbIWhRAAACACP/9AMoAvkAFwAfAAATNiAXNxcHFhAHFwcnBiAnByc3JhA3JzcEIAYQFiA2EJ9tAStzWRZXZmRVGFN1/tJqVhhVZWRVGQH0/tTOzwEd2AKYYWdaGld1/txxUxlTZGRWGVZsASx3UxoVzv7SyM8BLAAAAAEAGQAAAf0C7gAWAAAlIxUjNSM1MzUjNTMDMxsBMwMzFSMVMwGoiiGMjIx70yPTzx/PeoqKrq6uHWMfAaH+YQGf/l8fYwAAAAIAWgAAAH0C7gADAAcAADMjETM1IxEzfSMjIyMBG7cBHAAAAAIAMv/4AXgC8wAuADYAABM0NjcuATQ2MhcVJiIGFRQeBB8BFhcWFAYHHgEUBiInNRYzMjY1NC8BJicmNiIGFBYyNjQyVDwsLUdhKSdXMxYLGQkcARxGExpUPSwuSWolJjQnNmEaUxYK1WhKTmhKAXc8VwQbMlZCIzU8MCUYGQ0RBw8BDygbJWlYBhsyWEElNz8vJjcyDiszGZtJaEdJZwACAA8CLgCxAmQAAwAHAAASNDIUMjQyFA86MTcCLjY2NjYAAAADADf/8wNDAvsACQARACcAAAUjIiYQNiAWEAYSJiAGEBYgNgUjIiY0NjIXFS4BIyIGFBYzMjY3FQYBxA+b4+YBQuTiwdH+2dLSASbS/qMPXYmMzEgfXzRTe3tTNF8fRg3qATnl5P7F6QIY09P+2dTUWI++i00zLjZ7qns2LzRNAAIARgASAc8BsQAGAA0AAD8BFQcXFSc/ARUHFxUnRtq4uNqv2ri42vDBK6OkLcQawSujpC3EAAAAAQAyALwBaAE5AAUAACU1ITUhFQFJ/ukBNrxeH30AAAABADIBGgFpATkAAwAAASE1IQFp/skBNwEaHwAABAA3//MDQwL7AAkAEQAeACYAAAUjIiYQNiAWEAYSJiAGEBYgNiUVIxEzMhYUBgcXIycDFTMyNjQmIwHED5vj5gFC5OLB0f7Z0tIBJtL+Th9jPVc+MXQpbkZGLkdHLg3qATnl5P7F6QIY09P+2dTUUZsBwldxUAyemwEM8UlfSQABAEsCNgEQAlIAAwAAASM1MwEQxcUCNhwAAAAAAgAUAlgAqwLuAAkAEQAAEyMiJjQ2MhYUBjYmIgYUFjI2YQQeKyw/LCwSHSkeHikdAlgtPSwsPS1gHh8oHx4AAAIARgCoAX0CLQALAA8AABMjNTM1MxUzFSMVIxchNSHSjIwhioohq/7JATcBgx+Lix+GVR8AAAAAAQAPAhEAxAKEAAMAABMzByObKYsqAoRzAAAAAAEAS/84AeABwgATAAAXETMRFBYyNjURMxEjNQ4BIiYnEUshZYplICAbXWhaG8gCiv76RWZmRQEG/j5XLDYyK/7mAAAAAQBL/zgCFgLuAA8AAAUjESMiJjQ2MyEVIxEjESMBDx8UPVRWPgE3Wh+OyAKPV3lXHfxnA5kAAAABAEsBBQCJAUMAAwAAEjQyFEs+AQU+PgABAA//OAB/AAkAEwAAFzUzFTMyFh0BFAYrATUzMjY0JiMPGQogLSwhIyMXHh4XS1Q6LB4EHisZHSodAAACABQAEgGdAbEABgANAAATFxUHNTcvARcVBzU3J8Pa2ri4r9rauLgBscEaxC2koyvBGsQtpKMAAAIAN//5AjsC+gATABcAACUOASImNDc2NzUzFSMiBhQWMjY3AhQiNAI7Bozfk0dFYyAOZH2DwnkEw0X0b4ySwVhEBqXChLl+eWUCBj4+AAAAAwAeAAADCwOwAAYACQANAAAJASMDIQMjAQMhATMXIwGUAXcjjv5vjB8Bc7sBeP7sKYwqAwD9AAEe/uICu/6AAnVzAAADAB4AAAMLA7AABgAJAA0AAAkBIwMhAyMBAyEDMwcjAZQBdyOO/m+MHwFzuwF4iCmLKgMA/QABHv7iArv+gAJ1cwAAAAMAHgAAAwsDsAAGAAkAEAAACQEjAyEDIwEDIQMXIycHIzcBlAF3I47+b4wfAXO7AXiphClraiqGAwD9AAEe/uICu/6AAnVzW1tzAAADAB4AAAMLA6AABgAJABgAAAkBIwMhAyMBAyEDIiYGByM2OwEyFjI3MwYBlAF3I47+b4wfAXO7AXhpHWM8IB8nOAkeWjcfHy8DAP0AAR7+4gK7/oACFDcBNVA1MU0AAAAEAB4AAAMLA5AABgAJAA0AEQAACQEjAyEDIwEDIQA0MhQyNDIUAZQBdyOO/m+MHwFzuwF4/vU6MTcDAP0AAR7+4gK7/oACHzY2NjYABAAeAAADCwPCAAYACQATABsAAAkBIwMhAyMBAyEDIyImNDYyFhQGNiYiBhQWMjYBlAF3I47+b4wfAXO7AXi4BB4rLD8sLBIdKR4eKR0DAP0AAR7+4gK7/oAB8S09LCw9LWAeHygfHgACABkAAAKaAu4ADwASAAABFSMRMxUjETMVIREjAyMBGQEDAprsxcXs/vPJjB8BdLwC7h3+ax3+/h0BHv7iAu7+TQF5/ocAAAABADf/OAKIAv0AJwAABTUuARA2MzIXFSYjIgYQFjMyNxUGKwEVMzIWHQEUBisBNTMyNjQmIwGhldXmoGtgXm2T0tKTbV5bawgKIC0sISMjFx4eF0tBCOcBM+U4JUDT/tnUQCU4JiweBB4rGR0qHQAAAgBVAAABYgOwAAsADwAAEyEVIxEzFSMVMxUhEzMXI1UBDezFxez+8y4pjCoC7h3+aB3/HQOwcwACAFUAAAFiA7AACwAPAAATIRUjETMVIxUzFSETMwcjVQEN7MXF7P7zuSmLKgLuHf5oHf8dA7BzAAIASgAAAXIDsAALABIAABMhFSMRMxUjFTMVIRMXIycHIzdVAQ3sxcXs/vOZhClraiqGAu4d/mgd/x0DsHNbW3MAAAAAAwBVAAABYgOQAAsADwATAAATIRUjETMVIxUzFSESNDIUMjQyFFUBDezFxez+8zQ6MTcC7h3+aB3/HQNaNjY2NgAAAAACABAAAADFA7AAAwAHAAATMxEjAzMXI1ohIUopjCoC7v0SA7BzAAAAAgAQAAAAxQOwAAMABwAAEzMRIxMzByNaISFCKYsqAu79EgOwcwAAAAL/1wAAAP8DsAADAAoAABMzESMTFyMnByM3WiEhIYQpa2oqhgLu/RIDsHNbW3MAAAMAGQAAALsDkAADAAcACwAAEzMRIwI0MhQyNDIUWiEhQToxNwLu/RIDWjY2NjYAAAIADwAAAeEC7gALABcAABMzMhYQBisBESM1MxMjETMVIxEzMjYQJksgqM7NqSA8PCgIfHwIkru7Au7d/svcAWkdAUr+th3+tsoBG8wAAAAAAgBV//UCmgOgAAcAFgAAATMRAREjEQEDIiYGByM2OwEyFjI3MwYCfR392B0CKLUdYzwgHyc4CR5aNx8fLwLu/QcCp/1kAvn9WgL8NwE1UDUxTQAAAwA3//MDQwOwAAkAEQAVAAAEJhA2IBYQBisBACYgBhAWIDYBMxcjARrj5gFC5OKdDwFt0f7Z0tIBJtL+QCmMKg3qATnl5P7F6QIY09P+2dTUAsxzAAAAAAMAN//zA0MDsAAJABEAFQAABCYQNiAWEAYrAQAmIAYQFiA2ATMHIwEa4+YBQuTinQ8BbdH+2dLSASbS/swpiyoN6gE55eT+xekCGNPT/tnU1ALMcwAAAAADADf/8wNDA7AACQARABgAAAQmEDYgFhAGKwEAJiAGEBYgNgEXIycHIzcBGuPmAULk4p0PAW3R/tnS0gEm0v6rhClraiqGDeoBOeXk/sXpAhjT0/7Z1NQCzHNbW3MAAAADADf/8wNDA6AACQARACAAAAQmEDYgFhAGKwEAJiAGEBYgNgEiJgYHIzY7ATIWMjczBgEa4+YBQuTinQ8BbdH+2dLSASbS/usdYzwgHyc4CR5aNx8fLw3qATnl5P7F6QIY09P+2dTUAms3ATVQNTFNAAAAAAQAN//zA0MDkAAJABEAFQAZAAAEJhA2IBYQBisBACYgBhAWIDYANDIUMjQyFAEa4+YBQuTinQ8BbdH+2dLSASbS/ko6MTcN6gE55eT+xekCGNPT/tnU1AJ2NjY2NgAAAAEASwEcAT4CDgALAAATJzcXNxcHFwcnByeuYxZjYhhjYhZiXhgBlWMWY2IXY2EWYV4XAAADADL/8wM+AvsAFgAfACgAAAEUBisBIicHIzcuATU0NjMyFzczBx4BASIGFRQWFwEmEzQmJwEWMzI2Az7inQ90XyglNkVP5qB5ZCgnN0RN/nqT0kc+Aate+EU9/lRdbJPSAXeb6UM2SDieWZ/lRTZJN5wBDtOUU5EzAj5A/plSjzP9xD/UAAAAAgBV//ICFAOwABEAFQAABSMiJjURMxEUFjI2NREzERQGAzMXIwE6Clx/IW6ibSF/uymMKg6AYQIb/eZVcG9WAhr952KBA75zAAAAAAIAVf/yAhQDsAARABUAAAUjIiY1ETMRFBYyNjURMxEUBgMzByMBOgpcfyFuom0hfy8piyoOgGECG/3mVXBvVgIa/edigQO+cwAAAAACAFX/8gIUA7AAEQAYAAAFIyImNREzERQWMjY1ETMRFAYDFyMnByM3AToKXH8hbqJtIX9RhClraiqGDoBhAhv95lVwb1YCGv3nYoEDvnNbW3MAAAADAFX/8gIUA5AAEQAVABkAAAUjIiY1ETMRFBYyNjURMxEUBgI0MhQyNDIUAToKXH8hbqJtIX+yOjE3DoBhAhv95lVwb1YCGv3nYoEDaDY2NjYAAAACAB4AAAICA7AACAAMAAAhIxEDMxsBMwMTMwcjASMh5CTTzx7fHimLKgEsAcL+YQGf/j4ChHMAAAIASwAAAWgC7QALABMAADMRMxUzMhYUBisBFRkBMzI2NCYjSyAJYZOYXAkJVICAVALtdo/CjZkCWv5ceqx+AAABAEv/9gIUAsMAIAAAABYUBx4BFAYjIic1FjMyNjQmKwE1MjY0JiIGFREjETQ2ARRTOGCFimEvMC4xU3p5VFEtQkJYQiBTAsNSei8Ehr+JFCIZead4HUNZQkIt/ckCNzpSAAAAAwAt//UCBwKEAA8AFwAbAAABESM1DgEjIiY0NjMyFhc1ABYyNjQmIgYTMxcjAgcgHHBAYoyMYkB1F/5me6l4eah7fymMKgHC/j5wOUKLwotEOHH+ynt7qXx9AVBzAAAAAwAt//UCBwKEAA8AFwAbAAABESM1DgEjIiY0NjMyFhc1ABYyNjQmIgYBMwcjAgcgHHBAYoyMYkB1F/5me6l4eah7AQspiyoBwv4+cDlCi8KLRDhx/sp7e6l8fQFQcwAAAwAt//UCBwKEAA8AFwAeAAABESM1DgEjIiY0NjMyFhc1ABYyNjQmIgYTFyMnByM3AgcgHHBAYoyMYkB1F/5me6l4eah76YQpa2oqhgHC/j5wOUKLwotEOHH+ynt7qXx9AVBzW1tzAAADAC3/9QIHAnQADwAXACYAAAERIzUOASMiJjQ2MzIWFzUAFjI2NCYiBiUiJgYHIzY7ATIWMjczBgIHIBxwQGKMjGJAdRf+ZnupeHmoewEqHWM8IB8nOAkeWjcfHy8Bwv4+cDlCi8KLRDhx/sp7e6l8fe83ATVQNTFNAAAABAAt//UCBwJkAA8AFwAbAB8AAAERIzUOASMiJjQ2MzIWFzUAFjI2NCYiBjY0MhQyNDIUAgcgHHBAYoyMYkB1F/5me6l4eah7iDoxNwHC/j5wOUKLwotEOHH+ynt7qXx9+jY2NjYAAAAEAC3/9QIHApYADwAXACEAKQAAAREjNQ4BIyImNDYzMhYXNQAWMjY0JiIGNyMiJjQ2MhYUBjYmIgYUFjI2AgcgHHBAYoyMYkB1F/5me6l4eah72wQeKyw/LCwSHSkeHikdAcL+PnA5QovCi0Q4cf7Ke3upfH3MLT0sLD0tYB4fKB8eAAADACj/9QOBAc0AIQApAC8AAAUjIiYnFSM1DgEjIiY0NjMyFhc1MxU+ATMyFwEWMjY3FQYkFjI2NCYiBiQGFBcBJgLSDz5qHxogbj5ijIxiPm4gGh9uQmxK/sZBeF8fR/0Re6l4eah7Ai97NgEjPgtEN3BpNj6Lwos+NmlvN0NS/so0Ny4zTpd7e6l8fX17nz0BITYAAQAt/zgBzQHLACoAABc1LgE0NjIXFS4BIyIGFBYzMjY3FQYrASInFTMyFh0BFAYrATUzMjY0JiPvU2+MzEgfXzRTe3tTNF8fRmcJDAMKIC0sISMjFx4eF0tCDoizi00zLjZ7qns2LzRNASUsHgQeKxkdKh0AAAAAAwAy//QB1gKEAA4AFAAYAAAFIyImNDYyFwEWMjY3FQYCBhQXASYnMxcjAScJX42Mzkr+xkF4Xx9Hv3s1ASM+xSmMKgyPvotS/so0Ny4zTgG8e6A8ASE21HMAAAADADL/9AHWAoQADgAUABgAAAUjIiY0NjIXARYyNjcVBgIGFBcBJiczByMBJwlfjYzOSv7GQXhfH0e/ezUBIz45KYsqDI++i1L+yjQ3LjNOAbx7oDwBITbUcwAAAAMAMv/0AdYChAAOABQAGwAABSMiJjQ2MhcBFjI2NxUGAgYUFwEmJxcjJwcjNwEnCV+NjM5K/sZBeF8fR797NQEjPluEKWtqKoYMj76LUv7KNDcuM04BvHugPAEhNtRzW1tzAAAEADL/9AHWAmQADgAUABgAHAAABSMiJjQ2MhcBFjI2NxUGAgYUFwEuATQyFDI0MhQBJwlfjYzOSv7GQXhfH0e/ezUBIz68OjE3DI++i1L+yjQ3LjNOAbx7oDwBITZ+NjY2NgAAAgAJAAAAvgKEAAMABwAAExEjESczFyNzIEopjCoBwf4/AcHDcwAAAAIACQAAAL4ChAADAAcAABMRIxE3MwcjcyBCKYsqAcH+PwHBw3MAAAAC/88AAAD3AoQAAwAKAAATESMRNxcjJwcjN3MgIIQpa2oqhgHB/j8BwcNzW1tzAAADABIAAAC0AmQAAwAHAAsAABMRIxEmNDIUMjQyFHMgQToxNwHB/j8BwW02NjY2AAACADf/8wITAq0AHQAlAAABFRQGKwEiJjQ2MzIWFzU0Jwc1Nyc1FzcVBx4BFxYAFjI2NCYiBgITiV0PYIeLY0ByHdC5k5O3qoUxPx89/kR4qXt7qHkBMExfko6/i0Q8CZ1TTB0+PR1LSB84FSchQf7Ve3uofXwAAAACAEYAAAHaAnQAEQAgAAAzIxEzFTYzMhYVESMRNCYiBhUTIiYGByM2OwEyFjI3MwZmICAze1RyIGGKafodYzwgHyc4CR5aNx8fLwHCW2Z0U/76AQZFZmZFAR03ATVQNTFNAAAAAwAt//UCCQKEAAkAEQAVAAAWJjQ2MhYUBisBEiYiBhQWMjYBMxcjt4qMxYuIYQnSeah7e6l4/tcpjCoLj76Li7+OAUB8fah7ewH4cwAAAAADAC3/9QIJAoQACQARABUAABYmNDYyFhQGKwESJiIGFBYyNgMzByO3iozFi4hhCdJ5qHt7qXidKYsqC4++i4u/jgFAfH2oe3sB+HMAAwAt//UCCQKEAAkAEQAYAAAWJjQ2MhYUBisBEiYiBhQWMjYDFyMnByM3t4qMxYuIYQnSeah7e6l4voQpa2oqhguPvouLv44BQHx9qHt7AfhzW1tzAAAAAAMALf/1AgkCdAAJABEAIAAAFiY0NjIWFAYrARImIgYUFjI2AyImBgcjNjsBMhYyNzMGt4qMxYuIYQnSeah7e6l4fh1jPCAfJzgJHlo3Hx8vC4++i4u/jgFAfH2oe3sBlzcBNVA1MU0ABAAt//UCCQJkAAkAEQAVABkAABYmNDYyFhQGKwESJiIGFBYyNgA0MhQyNDIUt4qMxYuIYQnSeah7e6l4/uE6MTcLj76Li7+OAUB8fah7ewGiNjY2NgAAAAMASwD/AYICLQADAAcACwAAASE1IQY0MhQmNDIUAYL+yQE3u0VFRQGDH6M+PvA+PgAAAAADACj/9QIEAc0AEgAZACAAAAEWFAYrASInByM3JjQ2MzIXNzMHIgYUFxMmEjY0JwMWMwGwVIdgD0Q1EyUhVoxiRzsUJ71Te0j2NBp4RvYyPAGUSMmOJRosR8+LJhsRfbBAAUsi/mB7sT/+tiEAAAAAAgA8//UB0AKEABEAFQAAATMRIzUGIyImNREzERQWMjY1ATMXIwGwICAze1RyIGGKaf77KYwqAcL+PltmdFMBBv76RWZmRQHIcwAAAAIAPP/1AdAChAARABUAAAEzESM1BiMiJjURMxEUFjI2NQMzByMBsCAgM3tUciBhiml5KYsqAcL+PltmdFMBBv76RWZmRQHIcwAAAAACADz/9QHQAoQAEQAYAAABMxEjNQYjIiY1ETMRFBYyNjUDFyMnByM3AbAgIDN7VHIgYYppmoQpa2oqhgHC/j5bZnRTAQb++kVmZkUByHNbW3MAAAADADz/9QHQAmQAEQAVABkAAAEzESM1BiMiJjURMxEUFjI2NQI0MhQyNDIUAbAgIDN7VHIgYYpp+zoxNwHC/j5bZnRTAQb++kVmZkUBcjY2NjYAAAACADz/OQHQAoQAHAAgAAABMxEUBiMiJzceATMyNj0BBiMiJjURMxEUFjI2NQMzByMBsCB8Wmw/AhxbMkpsMXpTdiBlimV5KYsqAcL+TFl8UzIwOWtLTGJ1UgEG/vpFZmZFAchzAAAAAAIAS/84AiUCdQAPABcAABcRMxE+ATMyFhQGIyImJxEAJiIGFBYyNksgIW88Y4uLYz1uIQGaeKl7e6l4yAM9/uQ1PovCiz41/tEB/Xt7qnt7AAAAAAMAPP85AdACZAAcACAAJAAAATMRFAYjIic3HgEzMjY9AQYjIiY1ETMRFBYyNjUCNDIUMjQyFAGwIHxabD8CHFsySmwxelN2IGWKZfs6MTcBwv5MWXxTMjA5a0tMYnVSAQb++kVmZkUBcjY2NjYAAAACABQAAAMBAwAABgAJAAAJASMDIQMjAQMhAYoBdyOO/m+MHwFzuwF4AwD9AAEe/uICu/6AAAAAAAMAI//1Af0CUgAPABcAGwAAAREjNQ4BIyImNDYzMhYXNQAWMjY0JiIGASM1MwH9IBxwQGKMjGJAdRf+ZnupeHmoewE8xcUBwv4+cDlCi8KLRDhx/sp7e6l8fQECHAAAAAMAFAAAAwEDsAAGAAkAFwAACQEjAyEDIwEDIQAWMjY3Mw4BKwEiJiczAYoBdyOO/m+MHwFzuwF4/ug6RzkEHQJHMAgwRgIcAwD9AAEe/uICu/6AAlE3NyQvRUQwAAAAAAMAI//1Af0ChAAPABcAJQAAAREjNQ4BIyImNDYzMhYXNQAWMjY0JiIGEhYyNjczDgErASImJzMB/SAccEBijIxiQHUX/mZ7qXh5qHt7Okc5BB0CRzAIMEYCHAHC/j5wOUKLwotEOHH+ynt7qXx9ASw3NyQvRUQwAAIAFP84AwEDAAARABQAAAUzFSMiJj0BNwMhAyMJAQcUFgEDIQLeIyghKlCO/m+MHwF2AXdQF/6/uwF4rxkoHgd7AR7+4gMA/QB9FhwDav6AAAAAAAIAI/84Af0BzQAcACQAAAERIwcUFjsBFSMiJj0BNyM1DgEjIiY0NjMyFhc1ABYyNjQmIgYB/QFXGxcmKCEqVgMccEBijIxiQHUX/mZ7qXh5qHsBwv4+fRUdGSgeB3twOUKLwotEOHH+ynt7qXx9AAACAC3/9QJ+A7AAFgAaAAAFIyIuATU0NjMyFxUmIyIGEBYzMjcVBgMzByMBuAtnsmfmoGtgXm2T0tKTbV5bQCmLKgtss2Wf5TglQNP+2dRAJTgDu3MAAAAAAgAj//MBwwKEABUAGQAABSMiJjQ2MhcVLgEjIgYUFjMyNjcVBgMzByMBFglgiozMSB9fNFN7e1M0Xx9GXimLKg2Ov4tNMy42e6p7Ni80TQKRcwAAAgAt//UCfgOwABYAHQAABSMiLgE1NDYzMhcVJiMiBhAWMzI3FQYDFyMnByM3AbgLZ7Jn5qBrYF5tk9LSk21eW1+EKWtqKoYLbLNln+U4JUDT/tnUQCU4A7tzW1tzAAAAAgAj//MBwwKEABUAHAAABSMiJjQ2MhcVLgEjIgYUFjMyNjcVBgMXIycHIzcBFglgiozMSB9fNFN7e1M0Xx9GWIQpa2oqhg2Ov4tNMy42e6p7Ni80TQKRc1tbcwACAC3/9QJ+A5EAFgAaAAAFIyIuATU0NjMyFxUmIyIGEBYzMjcVBgI0MhQBuAtnsmfmoGtgXm2T0tKTbV5biToLbLNln+U4JUDT/tnUQCU4A2Y2NgACACP/8wHDAmUAFQAZAAAFIyImNDYyFxUuASMiBhQWMzI2NxUGAjQyFAEWCWCKjMxIH180U3t7UzRfH0aMOg2Ov4tNMy42e6p7Ni80TQI8NjYAAAACAC3/9QJ+A7AAFgAdAAAFIyIuATU0NjMyFxUmIyIGEBYzMjcVBhMHIyczFzcBuAtnsmfmoGtgXm2T0tKTbV5bIoQehipqawtss2Wf5TglQNP+2dRAJTgDu3NzW1sAAAACACP/8wHDAoQAFQAcAAAFIyImNDYyFxUuASMiBhQWMzI2NxUGEwcjJzMXNwEWCWCKjMxIH180U3t7UzRfH0YshB6GKmprDY6/i00zLjZ7qns2LzRNApFzc1tbAAMAOQAAAeEDsAAHAA8AFgAAEzMyFhAGKwETIxEzMjYQJjcHIyczFzdLIKjOzakgKAgIkru7XIQehipqawLu3f7L3ALQ/U/KARvM4HNzW1sAAwAj//UCdALvAA8AFwAgAAABESM1DgEjIiY0NjMyFhcRABYyNjQmIgYBNSI0MhUUDwEB/SAecjxji4tjPnMb/mZ4qXt7qHkCCx9FAx8C7v0SbTdBi8KLQjcBmv2ee3uofXwBRDg+HwcJRwAAAgAPAAAB4QLuAAsAFwAAEzMyFhAGKwERIzUzEyMRMxUjETMyNhAmSyCozs2pIDw8KAh8fAiSu7sC7t3+y9wBaR0BSv62Hf62ygEbzAAAAAACACP/9QJAAu4AFwAfAAABFTMVIxEjNQ4BIyImNDYzMhYXNSM1MzUAFjI2NCYiBgH9Q0MgHnI8Y4uLYz5zG3V1/mZ4qXt7qHkC7psd/cptN0GLwotCN+Idm/2ee3uofXwAAAAAAQBLAAABWALuAAsAABMhFSMRMxUjFTMVIUsBDezFxez+8wLuHf5oHf8dAAADACj/9AHMAlIADgAUABgAAAUjIiY0NjIXARYyNjcVBgIGFBcBJicjNTMBHQlfjYzOSv7GQXhfH0e/ezUBIz4IxcUMj76LUv7KNDcuM04BvHugPAEhNoYcAAAAAAIASwAAAVgDsAALABkAABMhFSMRMxUjFTMVIRIWMjY3Mw4BKwEiJiczSwEN7MXF7P7zKTpHOQQdAkcwCDBGAhwC7h3+aB3/HQOMNzckL0VEMAAAAAMAKP/0AcwChAAOABQAIgAABSMiJjQ2MhcBFjI2NxUGAgYUFwEuARYyNjczDgErASImJzMBHQlfjYzOSv7GQXhfH0e/ezUBIz7JOkc5BB0CRzAIMEYCHAyPvotS/so0Ny4zTgG8e6A8ASE2sDc3JC9FRDAAAgBLAAABWAORAAsADwAAEyEVIxEzFSMVMxUhEjQyFEsBDezFxez+8206Au4d/mgd/x0DWzY2AAADACj/9AHMAmUADgAUABgAAAUjIiY0NjIXARYyNjcVBgIGFBcBLgE0MhQBHQlfjYzOSv7GQXhfH0e/ezUBIz6IOgyPvotS/so0Ny4zTgG8e6A8ASE2fzY2AAAAAAEAS/84AVgC7gAXAAATIRUjETMVIxUzFQcUFjsBFSMiJj0BNyNLAQ3sxcXrVxsXJighKlbwAu4d/mgd/x19FR0ZKB4HewAAAAIAKP84AcwBzAAaACAAAAUjIiY0NjIXARYyNjcVBg8BFBY7ARUjIiY9AQIGFBcBJgEiDl+NjM5K/sZBeF8fOVBQGxcmKCEqEns1ASM+DI++i1L+yjQ3LjNAC3QVHRkoHgcCK3ugPAEhNgAAAAIAPwAAAWcDsAALABIAABMhFSMRMxUjFTMVIQEHIyczFzdLAQ3sxcXs/vMBHIQehipqawLuHf5oHf8dA7Bzc1tbAAAAAwAo//QBzAKEAA4AFAAbAAAFIyImNDYyFwEWMjY3FQYCBhQXASY3ByMnMxc3AR0JX42Mzkr+xkF4Xx9Hv3s1ASM+KYQehipqawyPvotS/so0Ny4zTgG8e6A8ASE21HNzW1sAAAIALf/1An4DsAAaACEAAAE1IREGKwEiLgE1NDYzMhcVJiMiBhAWMzI3NQMXIycHIzcBZQEZWG4LZ7Jn5qBrYF5tk9LSk1JYm4Qpa2oqhgEeHf7xN2yzZZ/lOCVA0/7Z1CriApJzW1tzAAAAAAMAI/8wAf4ChAAbACMAKgAAATMRFAYjIiYnNR4BMzI2PQEOASMiJjQ2MzIWFwQWMjY0JiIGExcjJwcjNwHeIIBoOWweGm86WHAbdD5ijIxiQXEb/mV7qXh4qXvqhClraiqGAcL+aHSGNCouMEB3Z0M3QovCi0E5x3t7qnt7AU9zW1tzAAIALf/1An4DsAAaACgAAAE1IREGKwEiLgE1NDYzMhcVJiMiBhAWMzI3NQAWMjY3Mw4BKwEiJiczAWUBGVhuC2eyZ+aga2BebZPS0pNSWP76Okc5BB0CRzAIMEYCHAEeHf7xN2yzZZ/lOCVA0/7Z1CriAm43NyQvRUQwAAADACP/MAH+AoQAGwAjADEAAAEzERQGIyImJzUeATMyNj0BDgEjIiY0NjMyFhcEFjI2NCYiBhIWMjY3Mw4BKwEiJiczAd4ggGg5bB4abzpYcBt0PmKMjGJBcRv+ZXupeHipe3s6RzkEHQJHMAgwRgIcAcL+aHSGNCouMEB3Z0M3QovCi0E5x3t7qnt7ASs3NyQvRUQwAAAAAAIALf/1An4DkQAaAB4AAAE1IREGKwEiLgE1NDYzMhcVJiMiBhAWMzI3NQI0MhQBZQEZWG4LZ7Jn5qBrYF5tk9LSk1JYxzoBHh3+8Tdss2Wf5TglQNP+2dQq4gI9NjYAAAMAI/8wAf4CZQAbACMAJwAAATMRFAYjIiYnNR4BMzI2PQEOASMiJjQ2MzIWFwQWMjY0JiIGNjQyFAHeIIBoOWweGm86WHAbdD5ijIxiQXEb/mV7qXh4qXu9OgHC/mh0hjQqLjBAd2dDN0KLwotBOcd7e6p7e/o2NgAAAAACAC3/PQJ+Av0AGgAjAAABNSERBisBIi4BNTQ2MzIXFSYjIgYQFjMyNzUDNSI0MhUUDwEBZQEZWG4LZ7Jn5qBrYF5tk9LSk1JYsB9FAx8BHh3+8Tdss2Wf5TglQNP+2dQq4v4fOD4fBwlHAAADACP/MAH+Ar8ACAAkACwAAAEVIzU0NjcVBhczERQGIyImJzUeATMyNj0BDgEjIiY0NjMyFhcEFjI2NCYiBgERJDQrO80ggGg5bB4abzpYcBt0PmKMjGJBcRv+ZXupeHipewJALy8vQw0jG7/+aHSGNCouMEB3Z0M3QovCi0E5x3t7qnt7AAAAAgBLAAACjwOwAAsAEgAAATMRIxEhESMRMxEhAxcjJwcjNwJuISH9/iEhAgLxhClraiqGAu79EgEe/uIC7v5NAnVzW1tzAAAAAgA8AAAB0ALtABEAGAAAMyMRMxE2MzIWFREjETQmIgYVExcjJwcjN1wgIDJ7VHMgYopoyIQpa2oqhgLt/n5idFP++gEGRmVmRQF+c1tbcwACABQAAALHAu4AEwAXAAABMxUzFSMRIxEhESMRIzUzNTMVIQUhNSECbiE4OCH9/iE3NyECAv3+AgL9/gLuwB397wEe/uICER3AwPPWAAAAAAEADwAAAdoC7QAZAAAzIxEjNTM1MxUzFSMVNjMyFhURIxE0JiIGFWYgNzcggYEye1RzIGKKaAJFHYuLHdpidFP++gEGRmVmRQAAAAAC/7YAAAELA6AAAwASAAATMxEjEyImBgcjNjsBMhYyNzMGUCEhYR1jPCAfJzgJHlo3Hx8vAu79EgNPNwE1UDUxTQAAAAL/rwAAAQQCdAADABIAABMRIxE3IiYGByM2OwEyFjI3MwZpIGEdYzwgHyc4CR5aNx8fLwHB/j8BwWI3ATVQNTFNAAAAAgAAAAAAxQN+AAMABwAAEzMRIxMjNTNQISF1xcUC7v0SA2IcAAAAAAL/9wAAALwCUgADAAcAABMRIxE3IzUzaSBzxcUBwf4/AcF1HAAAAAAC/+QAAADdA7AAAwARAAATMxEjAhYyNjczDgErASImJzNQISFOOkc5BB0CRzAIMEYCHALu/RIDjDc3JC9FRDAAAv/dAAAA1gKEAAMAEQAAExEjESYWMjY3Mw4BKwEiJiczaSBOOkc5BB0CRzAIMEYCHAHB/j8BwZ83NyQvRUQwAAH//v84AHEC7gAQAAATMxEjBxQWOwEVIyImPQE3I1AhAVcbFyYoISpWBALu/RJ9FR0ZKB4HewAAAv/4/zgAdgJlABAAFAAAFzMVIyImPQE3IxEzETMHFBYSNDIURSYoISpWBSABVxsOOq8ZKB4HewHB/j99FR0C3jY2AAACAEMAAAB9A5EAAwAHAAATMxEjAjQyFFAhIQ06Au79EgNbNjYAAAAAAQBJAAAAaQHBAAMAABMRIxFpIAHB/j8BwQAAAAIAFP/xAbIDsAAPABYAABM1MxEUBisBIic1FjI2NREnFyMnByM3rtp3YApQQz+wZDmEKWtqKoYC0R39+G2IOSlFd10B799zW1tzAAAC//v/OgEoAoQACQAQAAAHNTI2NREzERQGExcjJwcjNwU7UiBlYYQpa2oqhsYcUD0B3/4hSl8DSnNbW3MAAAAAAgBL/z0CKALuAAoAEwAAEzMRATMJASMBESMXNSI0MhUUDwFLIAE9KP6pAa8s/nAhzx9FAx8C7v7tARP+1f49AaH+X8M4Ph8HCUcAAAIAPP89AWsC7AAKABMAABMzETczBwEjJxUjFzUiNDIVFA8BPCCyKc4BAivkIIIfRQMfAuz+Opy0/vLt7cM4Ph8HCUcAAgATAAABVAOwAAUACQAAExEzFSERNzMHI2zo/vdUKYsqAu79Lx0C7sJzAAACABL/9wDnA6wACQANAAA3FSImNREzERQWAzMHI+dHZCBRDymLKhMcX0oCTv2yPVADmXMAAgBL/z0BVALuAAUADgAAExEzFSEREzUiNDIVFA8BbOj+92UfRQMfAu79Lx0C7vxPOD4fBwlHAAACADz/PQDnAu4ACQASAAA3FSImNREzERQWBzUiNDIVFA8B50dkIFEjH0UDHxMcX0oCTv2yPVDWOD4fBwlHAAAAAgBLAAABVALuAAUADgAAExEzFSERFzUiNDIVFA8BbOj+97EfRQMfAu79Lx0C7nc4Ph8HCUcAAAACADz/9wD6Au4ACQASAAA3FSImNREzERQWEzUiNDIVFA8B50dkIFEnH0UDHxMcX0oCTv2yPVACZTg+HwcJRwAAAgBLAAABVALuAAUACQAAExEzFSEREjQyFGzo/veyPgLu/S8dAu7+gT4+AAACADz/9wD0Au4ACQANAAA3FSImNREzERQWNjQyFOdHZCBRCT4THF9KAk79sj1Q8j4+AAAAAQAIAAABVALuAA0AABMRNxcHFTMVITUHJzcRbHgUjOj+9y8UQwLu/lN4FIz8HfgvFEMBzgAAAAABAAj/9wEEAu4AEQAAJRUiJj0BByc3ETMRNxcHFRQWAQRHZD0UUSBrFH9RExxfSmY9FFEBwP5gaxR/hj1QAAAAAgBL//UCkAOwAAcACwAAATMRAREjEQEDMwcjAnMd/dgdAijUKYsqAu79BwKn/WQC+f1aA11zAAACADwAAAHQAoQAEQAVAAAzIxEzFTYzMhYVESMRNCYiBhUTMwcjXCAgM3tUciBhimnbKYsqAcJbZnRT/voBBkVmZkUBfnMAAAACAEv/PQKQAvkABwAQAAABMxEBESMRCQE1IjQyFRQPAQJzHf3YHQIo/vcfRQMfAu79BwKn/WQC+f1a/uo4Ph8HCUcAAAIAPP89AdABzQARABoAADMjETMVNjMyFhURIxE0JiIGFRM1IjQyFRQPAVwgIDN7VHIgYYppph9FAx8BwltmdFP++gEGRWZmRf43OD4fBwlHAAAAAAIAS//1ApADsAAHAA4AAAEzEQERIxEBAwcjJzMXNwJzHf3YHQIocoQehipqawLu/QcCp/1kAvn9WgNdc3NbWwACADwAAAHQAoQAEQAYAAAzIxEzFTYzMhYVESMRNCYiBhUBByMnMxc3XCAgM3tUciBhimkBPoQehipqawHCW2Z0U/76AQZFZmZFAX5zc1tbAAIAOwAAAdAChwARABoAADMjETMVNjMyFhURIxE0JiIGFQM1IjQyFRQPAVwgIDN7VHIgYYppAh9FAx8BwltmdFP++gEGRWZmRQELOD4fBwlHAAAAAAMALf/zAzkDfgAJABEAFQAABCYQNiAWEAYrAQAmIAYQFiA2ASM1MwEQ4+YBQuTinQ8BbdH+2dLSASbS/v3FxQ3qATnl5P7F6QIY09P+2dTUAn4cAAMAI//1Af8CUgAJABEAFQAAFiY0NjIWFAYrARImIgYUFjI2AyM1M62KjMWLiGEJ0nmoe3upeGzFxQuPvouLv44BQHx9qHt7AaocAAADAC3/8wM5A7AACQARAB8AAAQmEDYgFhAGKwEAJiAGEBYgNgAWMjY3Mw4BKwEiJiczARDj5gFC5OKdDwFt0f7Z0tIBJtL+PDpHOQQdAkcwCDBGAhwN6gE55eT+xekCGNPT/tnU1AKoNzckL0VEMAAAAwAj//UB/wKEAAkAEQAfAAAWJjQ2MhYUBisBEiYiBhQWMjYAFjI2NzMOASsBIiYnM62KjMWLiGEJ0nmoe3upeP7TOkc5BB0CRzAIMEYCHAuPvouLv44BQHx9qHt7AdQ3NyQvRUQwAAAEAC3/8wM5A7AACQARABUAGQAABCYQNiAWEAYrAQAmIAYQFiA2ATMHIyUzByMBEOPmAULk4p0PAW3R/tnS0gEm0v6PKYsqAQYpiyoN6gE55eT+xekCGNPT/tnU1ALMc3NzAAAABAAj//UB/wKEAAkAEQAVABkAABYmNDYyFhQGKwESJiIGFBYyNgMzByMlMwcjrYqMxYuIYQnSeah7e6l42imLKgEGKYsqC4++i4u/jgFAfH2oe3sB+HNzcwAAAAACADIAAALUAu4ADwAXAAABIxEzFSMVMxUhIiYQNjMhATMRIyIGEBYC1OzFxez+15zd4KEBIf7fFBSUzM0C0f5oHf8d3wE41/0vArTF/trJAAMAN//1AxEBzwAXAB8AJwAABSMiJjQ2Mhc2MzIXARYyNjcVBisBIicGEiYiBhQWMjY3JiIHFhUUBwEsD12JjLhFRVZsSv7HQHhfH0dlD1JAQHJ5qHt7qXjyPpc7PgkLj76LODpS/skzNy4zTjg6AUB8fah7e/E2NERaIh4AAAAAAwBLAAABeQOwAAwAFAAYAAATMzIWFAYrAQEjJxUjEzMyNjQmKwE3MwcjSythk5ZWBwECK+MgIBJRfIBSDXYpiyoC7o/Bjv7w7u4BLXyqft9zAAAAAgA8AAABQwKEAA0AEQAAACIGFREjETMVPgEyFxUDMwcjARdqUSAgEkxeK0gpiyoBsVA1/tQBwkMiLCAoAP9zAAMAS/89AXkC7gAMABQAHQAAEzMyFhQGKwEBIycVIxMzMjY0JisBEzUiNDIVFA8BSythk5ZWBwECK+MgIBJRfIBSDV0fRQMfAu6PwY7+8O7uAS18qn78bDg+HwcJRwAAAAIAO/89AUMBzQANABYAAAAiBhURIxEzFT4BMhcVAzUiNDIVFA8BARdqUSAgEkxeK+kfRQMfAbFQNf7UAcJDIiwgKP24OD4fBwlHAAADACcAAAF5A7AADAAUABsAABMzMhYUBisBASMnFSMTMzI2NCYrATcHIyczFzdLK2GTllYHAQIr4yAgElF8gFIN5IQehipqawLuj8GO/vDu7gEtfKp+33NzW1sAAAIAMgAAAVoChAANABQAAAAiBhURIxEzFT4BMhcVEwcjJzMXNwEXalEgIBJMXisXhB6GKmprAbFQNf7UAcJDIiwgKAD/c3NbWwAAAAACACj/8gHKA7AAKAAsAAAAJiIGHQEUFx4EHQEUBiMiJzUeATI2PQE0LgQ9ATQ2MzIXFQMzByMBYk9iRUYeS0s9J4FffUUaZZZuNE5cTjRaQlw2TymLKgKuMD01BT80FisxN1AwCl9wZzY5R2BQBjJTNToyTC0HRkpEMwEscwAAAAIAIP/1ATUChAAeACIAABMiBhQeAxUUBiMiJic1FjMyNjQuAzQ2MhcVJjczByOeGigtP0AtWT8oRRAmVDRHLUA/LTlaICAOKYsqAbIiMiojKD4oO1MjHTBUQE82JiU1RzEjKTDScwAAAgAo//IBygOwACgALwAAACYiBh0BFBceBB0BFAYjIic1HgEyNj0BNC4EPQE0NjMyFxUDFyMnByM3AWJPYkVGHktLPSeBX31FGmWWbjROXE40WkJcNnCEKWtqKoYCrjA9NQU/NBYrMTdQMApfcGc2OUdgUAYyUzU6MkwtB0ZKRDMBLHNbW3MAAAIAGP/1AUAChAAeACUAABMiBhQeAxUUBiMiJic1FjMyNjQuAzQ2MhcVJicXIycHIzeeGigtP0AtWT8oRRAmVDRHLUA/LTlaICAThClraiqGAbIiMiojKD4oO1MjHTBUQE82JiU1RzEjKTDSc1tbcwABACj/OAHKAvsAOwAAFzUmJzUeATI2PQE0LgQ9ATQ2MzIXFS4BIgYdARQXHgQdARQGIxUzMhYdARQGKwE1MzI2NCYj0W47GmWWbjROXE40WkJcNhdPYkVGHktLPSeBXwogLSwhIyMXHh4XSz4KXDY5R2BQBjJTNToyTC0HRkpEMyowPTUFPzQWKzE3UDAKX3AjLB4EHisZHSodAAABACD/OAE1Ac4AMQAAFzUmJzUWMzI2NC4DNDYyFxUmIyIGFB4DFRQGKwEVMzIWHQEUBisBNTMyNjQmI4JIGiZUNEctQD8tOVogIDEaKC0/QC1ZPwIKIC0sISMjFx4eF0tCDDIwVEBPNiYlNUcxIykwIjIqIyg+KDtTJiweBB4rGR0qHQACADL/8gHUA7AAKAAvAAAAJiIGHQEUFx4EHQEUBiMiJzUeATI2PQE0LgQ9ATQ2MzIXFRMHIyczFzcBbE9iRUYeS0s9J4FffUUaZZZuNE5cTjRaQlw2FIQehipqawKuMD01BT80FisxN1AwCl9wZzY5R2BQBjJTNToyTC0HRkpEMwEsc3NbWwAAAgAi//UBSgKEAB4AJQAAEyIGFB4DFRQGIyImJzUWMzI2NC4DNDYyFxUmNwcjJzMXN6gaKC0/QC1ZPyhFECZUNEctQD8tOVogIHGEHoYqamsBsiIyKiMoPig7UyMdMFRATzYmJTVHMSMpMNJzc1tbAAIAFP89AY0C7gAHABAAAAEVIxEjESM1EzUiNDIVFA8BAY2rIa25H0UDHwLuHf0vAtEd/E84Ph8HCUcAAAIAMv89AN0CdwANABYAADcVIiY1ETMVMxUjERQWBzUiNDIVFA8B3UdkIIqKURsfRQMfFhxfSgHUthz+/j1Q2Tg+HwcJRwAAAAIAFAAAAY0DsAAHAA4AAAEVIxEjESM1JQcjJzMXNwGNqyGtAVCEHoYqamsC7h39LwLRHcJzc1tbAAAAAAIAMv/6AOUCdwANABYAADcVIiY1ETMVMxUjERQWEzUiNDIVFA8B3UdkIIqKURwfRQMfFhxfSgHUthz+/j1QAes4Ph8HCUcAAAEAFAAAAY0C7gAPAAABFSMRMxUjESMRIzUzESM1AY2rdnYhdnatAu4d/l8d/u0BEx0BoR0AAAAAAQAK//oA6AJ3ABUAADcVIiY1ESM1MzUzFTMVIxUzFSMRFBboR2QzMyB+foqKURYcX0oBaRpRURpLHP7+PVAAAAIAS//yAgoDoAARACAAAAUjIiY1ETMRFBYyNjURMxEUBgMiJgYHIzY7ATIWMjczBgEwClx/IW6ibSF/EB1jPCAfJzgJHlo3Hx8vDoBhAhv95lVwb1YCGv3nYoEDXTcBNVA1MU0AAAAAAgAy//UBxgJ0ABEAIAAAATMRIzUGIyImNREzERQWMjY1AyImBgcjNjsBMhYyNzMGAaYgIDN7VHIgYYppWh1jPCAfJzgJHlo3Hx8vAcL+PltmdFMBBv76RWZmRQFnNwE1UDUxTQAAAAACAEv/8gIKA34AEQAVAAAFIyImNREzERQWMjY1ETMRFAYTIzUzATAKXH8hbqJtIX8CxcUOgGECG/3mVXBvVgIa/edigQNwHAACADL/9QHGAlIAEQAVAAABMxEjNQYjIiY1ETMRFBYyNjUDIzUzAaYgIDN7VHIgYYppSMXFAcL+PltmdFMBBv76RWZmRQF6HAACAEv/8gIKA7AAEQAfAAAFIyImNREzERQWMjY1ETMRFAYCFjI2NzMOASsBIiYnMwEwClx/IW6ibSF/vzpHOQQdAkcwCDBGAhwOgGECG/3mVXBvVgIa/edigQOaNzckL0VEMAAAAgAy//UBxgKEABEAHwAAATMRIzUGIyImNREzERQWMjY1ABYyNjczDgErASImJzMBpiAgM3tUciBhimn+9zpHOQQdAkcwCDBGAhwBwv4+W2Z0UwEG/vpFZmZFAaQ3NyQvRUQwAAMAS//yAgoDwgARABsAIwAABSMiJjURMxEUFjI2NREzERQGAyMiJjQ2MhYUBjYmIgYUFjI2ATAKXH8hbqJtIX9fBB4rLD8sLBIdKR4eKR0OgGECG/3mVXBvVgIa/edigQM6LT0sLD0tYB4fKB8eAAADADL/9QHGApYAEQAbACMAAAEzESM1BiMiJjURMxEUFjI2NQMjIiY0NjIWFAY2JiIGFBYyNgGmICAze1RyIGGKaakEHissPywsEh0pHh4pHQHC/j5bZnRTAQb++kVmZkUBRC09LCw9LWAeHygfHgAAAwBL//ICCgOwABEAFQAZAAAFIyImNREzERQWMjY1ETMRFAYDMwcjJTMHIwEwClx/IW6ibSF/bCmLKgEGKYsqDoBhAhv95lVwb1YCGv3nYoEDvnNzcwAAAAMAMv/1AcYChAARABUAGQAAATMRIzUGIyImNREzERQWMjY1AzMHIyUzByMBpiAgM3tUciBhimm2KYsqAQYpiyoBwv4+W2Z0UwEG/vpFZmZFAchzc3MAAAABAEv/OAIKAu4AHQAAAREUBg8BFBY7ARUjIiY9ATcjIiY1ETMRFBYyNjURAgpwU04bFyYoISpMBFx/IW6ibQLu/edbfwhwFR0ZKB4HbYBhAhv95lVwb1YCGgAAAAEAMv84AcYBwgAeAAABMxEjBxQWOwEVIyImPQE3IzUGIyImNREzERQWMjY1AaYgAVcbFyYoISpWAzN7VHIgYYppAcL+Pn0VHRkoHgd7W2Z0UwEG/vpFZmZFAAAAAgAU//MD6AOwAA8AFgAABQEzARMDMxsBMwMTATMBAxMXIycHIzcBXf63JQEpi5ski48cnI4BLxv+s58ThClraiqGDQL7/VEBRQFq/rcBSf6X/rcCsv0FAW4CT3NbW3MAAgAZ//UCkwKEAA8AFgAAEzMTNyczFzczBxcTMwMnBxMXIycHIzcZIblXYSBRUx5iVrcd1WZndYQpa2oqhgHC/ne30LGz0rkBiv4029sCj3NbW3MAAgAUAAAB+AOwAAgADwAAISMRAzMbATMLARcjJwcjNwEZIeQk088e3wOEKWtqKoYBLAHC/mEBn/4+AoRzW1tzAAIAMv85AcYChAAcACMAAAEzERQGIyInNx4BMzI2PQEGIyImNREzERQWMjY1AxcjJwcjNwGmIHxabD8CHFsySmwxelN2IGWKZZqEKWtqKoYBwv5MWXxTMjA5a0tMYnVSAQb++kVmZkUByHNbW3MAAAADAB4AAAICA5AACAAMABAAACEjEQMzGwEzAwI0MhQyNDIUASMh5CTTzx7fZDoxNwEsAcL+YQGf/j4CLjY2NjYAAgAZAAABlQOwAAcACwAAJRUhASE1IQETMwcjAZL+hwFK/rYBfP61vSmLKh0dAtEd/S8Dk3MAAAACABkAAAFSAoQABwALAAAlFSEBIzUhARMzByMBT/7KAQDlAR7+/5YpiyocHAGmHP5aAmhzAAAAAAIAGQAAAZUDkQAHAAsAACUVIQEhNSEBEjQyFAGS/ocBSv62AXz+tW46HR0C0R39LwM+NjYAAAAAAgAZAAABUgJlAAcACwAAJRUhASM1IQESNDIUAU/+ygEA5QEe/v9HOhwcAaYc/loCEzY2AAIAIwAAAZ8DsAAHAA4AACUVIQEhNSEJAQcjJzMXNwGc/ocBSv62AXz+tQEfhB6GKmprHR0C0R39LwOTc3NbWwACACMAAAFcAoQABwAOAAAlFSEBIzUhARMHIyczFzcBWf7KAQDlAR7+//iEHoYqamscHAGmHP5aAmhzc1tbAAAAAQAZ/zoBUQLtABcAABc1MjY1ESM1MzU0NjMVIgYdATMVIxEUBhk7UWNjZEg7UWxrZcYcUD0BwxyCSl8cUD2CHP49Sl8AAAAAAwAZAAACmgOwAA8AEgAWAAABFSMRMxUjETMVIREjAyMBGQEDATMHIwKa7MXF7P7zyYwfAXS8AYUpiyoC7h3+ax3+/h0BHv7iAu7+TQF5/ocCdXMABAAo//UDgQKEACEAKQAvADMAAAUjIiYnFSM1DgEjIiY0NjMyFhc1MxU+ATMyFwEWMjY3FQYkFjI2NCYiBiQGFBcBJiUzByMC0g8+ah8aIG4+YoyMYj5uIBofbkJsSv7GQXhfH0f9EXupeHmoewIvezYBIz7+7CmLKgtEN3BpNj6Lwos+NmlvN0NS/so0Ny4zTpd7e6l8fX17nz0BITbTcwAAAAAEAC3/8wM5A7AAFgAfACcAKwAAARQGKwEiJwcjNy4BNTQ2MzIXNzMHHgEBIgYVFBYXASYTNCcBFjMyNgEzByMDOeKdD3RgKSU2RE7moHdkKCc2RE7+epPSRj4Bqlz4g/5UXW2T0v7MKYsqAXeb6UQ3STieWJ/lRDVIN50BDtOUUpEzAj4//pmnbv3DP9QCzHMAAAAABAAo//UCBAKEABIAGQAgACQAAAEWFAYrASInByM3JjQ2MzIXNzMHIgYUFxMmEjY0JwMWMxMzByMBsFSHYA9ENRMlIVaMYkc7FCe9U3tI9jQaeEb2MjwsKYsqAZRIyY4lGixHz4smGxF9sEABSyL+YHuxP/62IQJzcwAAAAIAKP89AcoC+wAoADEAAAAmIgYdARQXHgQdARQGIyInNR4BMjY9ATQuBD0BNDYzMhcVAzUiNDIVFA8BAWJPYkVGHktLPSeBX31FGmWWbjROXE40WkJcNpEfRQMfAq4wPTUFPzQWKzE3UDAKX3BnNjlHYFAGMlM1OjJMLQdGSkQz/Lk4Ph8HCUcAAAAAAgAg/z0BNQHOAB4AJwAAEyIGFB4DFRQGIyImJzUWMzI2NC4DNDYyFxUmAzUiNDIVFA8BnhooLT9ALVk/KEUQJlQ0Ry1APy05WiAgJx9FAx8BsiIyKiMoPig7UyMdMFRATzYmJTVHMSMpMP2LOD4fBwlHAAABABICEQE6AoQABgAAExcjJwcjN7aEKWtqKoYChHNbW3MAAAABABICEQE6AoQABgAAAQcjJzMXNwE6hB6GKmprAoRzc1tbAAABAA8CEAEIAoQADQAAEhYyNjczDgErASImJzMtOkc5BB0CRzAIMEYCHAJgNzckL0VEMAAAAQAPAi8ASQJlAAMAABI0MhQPOgIvNjYAAgAPAgAApgKWAAkAEQAAEyMiJjQ2MhYUBjYmIgYUFjI2XAQeKyw/LCwSHSkeHikdAgAtPSwsPS1gHh8oHx4AAAEAD/84AIIAAAAMAAAXMxUjIiY9ATczBxQWXCYoISpWHFcbrxkoHgd7fRUdAAAAAAEADwIjAWQCdAAOAAABIiYGByM2OwEyFjI3MwYBCh1jPCAfJzgJHlo3Hx8vAiM3ATVQNTFNAAAAAgAPAhEBPgKEAAMABwAAEzMHIyUzByObKYsqAQYpiyoChHNzcwAAAAMASwAAAVgDkQALAA8AEwAAASMRMxUjFTMVIREhJjQyFDI0MhQBWOzFxez+8wEN2ToxNwLR/mgd/x0C7m02NjY2AAAAAQAZ/zoCXALuABsAAAU1MjY1ETQmIgYVESMRIzUhFSMRNjMyFhURFAYBrztRZYlmIa0Beas1dFV3ZcYaUT4BI0ZnY0P+8wLRHR3+olx1VP7dS14AAgBLAAABVgO2AAUACQAAASMRIxEhJzMHIwFW6iEBC0spiyoC0f0vAu7IiwABADL/8wKDAvsAGQAAATIXFSYjIgYVFBchFSEeATI3FQYrASImEDYBuGxfXm2T0gUBdv6QIMPkXltpD5vj5gL7OSRA05QcIB1ynEAlOOoBOeUAAAABADL/8gHpAvoAJAAAACYiBhUUFx4EFRQGIyInNR4BMjY1NC4ENTQ2MzIXFQF8T2JVSiBPUEEpiWWASRtsmnU3UmFSN2pDXDcCrTBHOUUvFSguNVEyZW9nNjpGYVQ0UjE1Lk0xSlREMwAAAAABAFoAAAB7Au4AAwAAMyMRM3shIQLuAAADAA8AAACuA1kAAwAHAAsAABMRIxEmNDIUMjQyFG4hPjQ3NALu/RIC7jc0NDQ0AAABABn/8QGNAu4ADwAAEzUzERQGKwEiJzUWMjY1EbPad2AKUEM/sGQC0R39+G2IOSlFd10B7wAAAAIAGQAAAvUC7gAUABwAACERIxEUBisBNTI2NREhETMyFhQGIyczMjY0JisBAerxeGEHUW4BMglSkItcBAVPeXhNCALR/iBpiB17WQH9/tyJuIked6B3AAACAEsAAALIAu4AEQAZAAABETMyFhQGKwERIREjETMRIRETMzI2NCYrAQHdCVKQi1wk/q8hIQFRIAVPeXhNCALu/tyJuIkBq/5VAu7+3AEk/TB3oHcAAAAAAQAcAAACWwLuABUAADMjESM1IRUjETYzMhYVESMRNCYiBhXnIaoBdqs1dFR3IGWJZgLRHR3+olx1VP76AQZGZ2NDAAACAEsAAAIoA7cAAwAOAAABMwcjBzMRATMJASMBESMBRSeLKG4gAT0o/qkBryz+cCEDt4s+/u0BE/7V/j0Bof5fAAAAAAIAIAAAAmUDngANABUAABIWMjY3Mw4BKwEiJiczBQEjNwEzARPwOkc5BB0CRzAIMEYCHAF3/pwfVv7oJAEG/AN6NzckL0VEMLD9ErUCOf3qAhYAAAEAS/+fAiIC7gALAAAhIxEzESERMxEjFSMBKN0hAZUh2x8C7v0vAtH9EmEAAgAZAAADBgMAAAYACQAACQEjAyEDIwEDIQGPAXcjjv5vjB8Bc7sBeAMA/QABHv7iArv+gAAAAAACAEsAAAFmAu4ACwATAAAzETMVIxUzMhYUBiMZATMyNjQmI0vwzwlfkpZkCFJ/elcC7h30jsKNAcH+W32rfQAAAwBLAAABZQLuAA0AFQAdAAATMzIWFRQGBx4BFAYrARMRMzI2NCYjAxUzMjY0JiNLIEFYMSFNZpJoICAIVn18VwgILUVELgLuUT8mTwwTfr+NAcv+UYCwfwEH7ElfRAAAAQBLAAABVgLuAAUAAAEjESMRIQFW6iEBCwLR/S8C7gACACP/nwNcAv8ACgANAAAXNTMJATMVIzUhFQkBISM3AWkBaTAf/QMBgP65ApFhfgLi/R5+YWEDG/1jAAABAEsAAAFYAu4ACwAAASMRMxUjFTMVIREhAVjsxcXs/vMBDQLR/mgd/x0C7gAAAAABABkAAAN9Au4AEQAAATMREzMJASMBESMRASMJATMTAbsg+SX+7gGWKf6HIP6IKgGX/u4k+QLu/vEBD/7W/jwBof5fAaH+XwHEASr+8QAAAAEAI//zAe8C+wAiAAABFAceARUUBiMiJic1HgEzMjY0JisBNTMyNjQmIgYHNTYyFgGFUFFplmpAbR8bbUVbg4FdJiAzR0dcRAwtjFsCZVQuEpFVZpI5Mzg8S4K3hhxIZEcuJTQ8WAAAAQBLAAAClgLuAAkAAAERIxEBIxEzEQECliH99R8hAgkC7v0SAr/9QQLu/UMCvQAAAgBLAAAClgOlAA0AFwAAABYyNjczDgErASImJzMFESMRASMRMxEBASA4STgEHQJHMAgwRgIcAXkh/fUfIQIJA4A1NiQvRUQwt/0SAr/9QQLu/UMCvQAAAAEASwAAAigC7gAKAAATMxEBMwkBIwERI0sgAT0o/qkBryz+cCEC7v7tARP+1f49AaH+XwABABkAAAMDAv8ABQAACQEjCQEjAY4BdST+rP6uIAL//QECt/1JAAAAAQBL//IDTALuAAsAAAERIxEJAREjETMJAQNMIf6e/qAeMAFRAVIC7v0SAsf9KwLV/TkC7v1MArQAAAAAAQBLAAACjwLuAAsAAAEzESMRIREjETMRIQJuISH9/iEhAgIC7v0SAR7+4gLu/k0AAgAy//QDPgL8AAkAEQAABCYQNiAWEAYrAQAmIAYQFiA2ARXj5gFC5OKdDwFt0f7Z0tIBJtIM6gE55eT+xekCGNPT/tnU1AAAAQBLAAACIwLuAAcAABMhESMRIREjSwHYIf5qIQLu/RIC0f0vAAAAAAIASwAAAWYC7gAJABEAABMzMhYUBisBESMTMzI2NCYrAUshaJKXWwghIQhUfX9SCALuj8KM/u8BLXyqfgAAAAABADL/9QKDAv0AFgAABSMiLgE1NDYzMhcVJiMiBhAWMzI3FQYBvQtnsmfmoGtgXm2T0tKTbV5bC2yzZZ/lOCVA0/7Z1EAlOAABABkAAAGSAu4ABwAAARUjESMRIzUBkqshrQLuHf0vAtEdAAABABkAAAJeAu4ABwAACQEjNwEzARMCXv6cH1b+6CQBBvwC7v0StQI5/eoCFgAAAAADADL/5wMdAwcAEwAbACMAAAU1IyImEDY7ATUzFTMyFhAGKwEVJzMRIyIGFBYTIxEzMjY0JgGXB4/Pz44IIQePz9COBygHCIG7u7IIB4G9vxk8zQEUyTo6zf7uyzxXAnS6/7sCdP2Muv68AAABABkAAAHUAu4ACwAAAQMTIwsBIxMDMxsBAaihzSW7vB/LpSaSkQLu/rb+XAGB/n8BowFL/tcBKQAAAAABAEv/nwJvAu4ACwAAKQERMxEhETMRMxUjAlL9+SEBlSFNHQLu/S8C0f0vfgAAAAABADwAAAH7Au4AEwAAEzUzFRQWMjY9ATMRIxEOASsBIiY8IW+fbyEhGWQ8ClmCAfn17lJ1dVLu/RIBljVFhQAAAQBLAAACfwLuAAsAACkBETMRMxEzETMRMwJ//cwh6SDpIQLu/S8C0f0vAtEAAAAAAQBL/58CzQLuAA8AACkBETMRMxEzETMRMxEzFSMCsP2bIekg6SJNHQLu/S8C0f0vAtH9L34AAAACABkAAAGiAu4ACwATAAATNTMRMzIWFAYrARETIxEzMjY0JhmeCVKQjV4hKQgIS3d2AtEd/tuIuIkC0f7b/nF4oHcAAAMASwAAAdMC7gADAA0AFQAAIREzEQEzETMyFhQGKwETIxEzMjY0JgGyIf54IQlSkI1eISkICEt3dgLu/RIC7v7biLiJAaz+cXigdwACAEsAAAFXAu4ACQARAAATMxEzMhYUBisBEyMRMzI2NCZLIQlSkI1eISkICEt3dgLu/tuIuIkBrP5xeKB3AAAAAQAj//MCdAL7ABkAABMyFhAGKwEiJzUWMjY3ITUhNjU0JiMiBzU27qDm45sPaVte5MMg/pABdgXSk21eXwL75f7H6jglQJxyHSAclNNAJDkAAAAAAgBL//MEKwL7ABMAGwAAMxEzETMmNTQ2IBYQBisBIiYnIxEAJiAGEBYgNkshuAXmAUDm5JsPgc8kvQOe0/7a0dIBJdMC7v5NIByf5eT+xuquff7iAgvT0/7Z1NQAAAAAAgAjAAABSwLuAAwAFAAAATMRIzUHIwEjIiY0NhMzESMiBhQWASArIOMlAQINVpaTWhINUoB8Au79Eu7uARCOwY/+PwGkfqp8AAAAAAIAKP/1AgIBzQAPABcAAAERIzUOASMiJjQ2MzIWFzUAFjI2NCYiBgICIBxwQGKMjGJAdRf+ZnupeHmoewHC/j5wOUKLwotEOHH+ynt7qXx9AAAAAAIAN//zAhMCqgAHACAAADYWMjY0JiIGNzIWFAYrASImPQE0Nz4CPwEVBwYdAT4BV3upeHmoe85ji4dgD12JLhNHOC+2ttAdcop7e6l8fZmLv46SX0xvRh0zGhNIHUlTnQk8RAADAEsAAAEzAcIACwATABsAABMzMhYUBx4BFAYrARMjFTMyNjQmJyMVMzI2NCZLVCczJSg3Vj5UVjY2MEVFMTU3GCQmAcI1WBgMUGpXAQzxR2RGm4AlMygAAQBLAAABEgHBAAUAAAEjESMRMwESpyDHAaX+WwHBAAACABn/xwH/Ac8ACgANAAAXNTMbATMVIzUhFRMDIRkj0dEhHP5Q17ABYTlTAbX+TFQ5OQHE/pAAAAIAKP/0AcwBzAAOABQAAAUjIiY0NjIXARYyNjcVBgIGFBcBJgEbC1+JjM5K/sZBeF8fR797NQEjPgyOv4tS/so0Ny4zTgG8e6A8ASE2AAAAAQAZAAACTwHCABEAAAEzFTczBwEjJxUjNQcjASczFwEkIJAksAEHK+Ag4CsBB7AkkAHCkZG0/vLn5+fnAQ60kQAAAAABAB7/8wE+AcoAHwAAEhYUBgceARQGIyInNR4BMjY0JisBNTMyNjQmIyIHNTbFORsSLUBdQFUuD0RiS0syGBQbJiYbOBYgAco3QSoJDFVwW0Q8LThMZ00bKDYoRz8jAAABAEsAAAHKAcEACQAAAREjEQEjETMRAQHKH/68HB8BQwHB/j8Bj/5xAcH+cQGPAAACAEsAAAHKArcACQAXAAABESMRASMRMxEBJhYyNjczDgErASImJzMByh/+vBwfAUP1OEk4BB0CRzAIMEYCHAHB/j8Bj/5xAcH+cQGP0TU2JC9FRDAAAAAAAQBLAAABegHCAAoAABMzFTczBwEjJxUjSyCyKc4BAivkIAHCnJy0/vLt7QABABkAAAHUAc8ABQAAMyMbASMDNh3d3iO+Ac/+MQGLAAEAS//0AhoBwgALAAAzETMbATMRIxELARFLJMXIHiDLyAHC/nIBjv4+AYf+bQGX/nUAAAABAEsAAAG8AcIACwAAATMRIzUhFSMRMxUhAZwgIP7PICABMQHC/j6pqQHC/QAAAAACACj/9QIEAc0ACQARAAASNjIWFAYrASImJCYiBhQWMjYojMWLiGEKXosBvHmoe3upeAFCi4u/jo+xfH2oe3sAAQBLAAABtQHCAAcAABMhESMRIREjSwFqIP7WIAHC/j4Bpv5aAAAAAAIAS/84AiUBzQAPABcAABcRMxU+ATMyFhQGIyImJxECFjI2NCYiBksgG3M+Y4uLYzxyHgJ7qXh5qHvIAopuN0KLwotBN/7LAVR7e6l8fQAAAQAo//MByAHLABUAAAUjIiY0NjIXFS4BIyIGFBYzMjY3FQYBGwlgiozMSB9fNFN7e1M0Xx9GDY6/i00zLjZ7qns2LzRNAAAAAQAZAAABkQHBAAcAAAEVIxEjESM1AZGsIKwBwRz+WwGlHAAAAQAZ/zgB4wHCAAcAAAkBIzcDMxsBAeP+yx1f1yLGxQHC/XbJAcH+YwGdAAADACj/OgIxAnUAEwAbACMAAAEzFTMyFhQGKwEVIzUjIiY0NjsBFSMiBhQWOwETETMyNjQmIwEhIAViiYdiByAIY46PYggIVH9/VAggBlR3eFQCdaiJv4vAwIy9ihx7pnoBm/5leah6AAEAGQAAAaEBwgALAAAbASMnByMTJzMXNzPstSWioSCxdyVkZCABEf7v9fUBDrSYmAAAAAABAEv/nwH8AcIACwAAATMRMxUjNSERMxEhAZUgRxz+ayABKgHC/lt+YQHC/loAAAABACgAAAFpAcIAEwAAEzUzFRQWMjY9ATMRIzUOASsBIiYoIEtsSiAfEkMoBkFeATaMiThQUDiJ/j7eICdfAAAAAQBLAAACGwHCAAsAACkBETMRMxEzETMRMwIb/jAguCC4IAHC/loBpv5aAaYAAAAAAQBL/58CZQHCAA8AADMRMxEzETMRMxEzETMVIzVLILkguSBIHwHC/loBpv5aAab+W35hAAIAGQAAAVYBwgALABMAABMzFTMyFhQGKwERIxcVMzI2NCYjGXoxPFZYPU5aei8vRkcuAcKbWHhXAaaa8UdhSQADAEsAAAGmAcIAAwANABUAAAEzESMBMxUzMhYUBisBExUzMjY0JiMBhx8f/sQgMTxWWD1OIC8vRkcuAcL+PgHCm1h4VwEM8UdhSQAAAgBLAAABLgHCAAkAEQAAEzMVMzIWFAYrARMVMzI2NCYjSyAxPFZYPU4gLy9GRy4BwptYeFcBDPFHYUkAAQAe//MBvgHLABoAADc1ITY1NCYjIgYHNTY7ATIWFAYiJzUeATI2N50A/wJ7UzRfH0ZoCV+KjMxIH192cRWqGw4MVXs2LzRNj76LTTQvNltAAAAAAgBL//UCuAHNABMAGwAAMxEzFTMmNTQ2MhYUBisBIiYnIxUAIgYUFjI2NEsgcwKLxYyKYAhOfxd3AbOoenqoegHC/QYWYYuLvo9qSqkBsXype3upAAAAAAIAKAAAAP0BwgAMABQAADYmNDY7AREjNSMHIz8BNSMiBhQWM2s+Vz08ICFyInRBHi5HRy6qUHFX/j6bm54Y8UlfSQAABAAo//QBzAJ3AAMABwAWABwAABI0MhQyNDIUAyMiJjQ2MhcBFjI2NxUGAgYUFwEmwDoxN0cLX4mMzkr+xkF4Xx9Hv3s1ASM+AkE2NjY2/bOOv4tS/so0Ny4zTgG8e6A8ASE2AAEAGf86AjUC7AAfAAATNTM1MxUzFSMVNjMyFhURFAYjNTI2NRE0JiIGFREjERmIIampNXRVdWRHO09kiWUhAkMdjIwd0lx0U/7dSl8cTz4BI0VmY0H+8wJDAAAAAgBLAAABEgK/AAUACQAAASMRIxEzJzMHIwERpx/GKCmLKgGm/loBwf6LAAABACj/8wHIAcsAGgAAJRUjHgEyNjcVBiImNDY7ATIXFS4BIyIGFRQXAUn7FXF2Xx9IzIyJXQ9lRh9fNFN7AsUbQFs2LzRNi76PTTQvNntVDA4AAAABACj/9QE9Ac4AHgAAEyIGFB4DFRQGIyImJzUWMzI2NC4DNDYyFxUmphooLT9ALVk/KEUQJlQ0Ry1APy05WiAgAbIiMiojKD4oO1MjHTBUQE82JiU1RzEjKTAAAAIAUAAAAIoCZQADAAcAABMRIxEmNDIUfSANOgHB/j8BwW42NgAAAAADABQAAAC2AmUAAwAHAAsAABI0MhQyNDIUBxEjERQ6MTdAIAIvNjY2Nm7+PwHBAAACAAr/OgDFAmUACQANAAAXNTI2NREzERQGEjQyFAo7USFlOTrGHFA9Ad/+IUpfAvU2NgAAAgAeAAACTAHCABMAGwAAMzUyNjURMxUzMhYUBisBESMVFAYBFTMyNjQmIx47UvcZPFVXPTa6YwE9GC9GRy4cUD0BGZtYeFcBpv1KXwEM8UdhSQAAAgBLAAACMQHCABEAGQAAATMVMzIWFAYrAREjESMRMxUzFxUzMjY0JiMBaR8YPVRWPjT+ICD+HxcwRUUwAcKbV3lXAQz+9AHCmhzxR2FJAAABABkAAAI1AuwAGQAAEzUzNTMVMxUjFTYzMhYVESMRNCYiBhURIxEZiCGpqTV0VXUhZIllIQJDHYyMHdJcdFP++gEGRWZjQf7zAkMAAgBLAAABegK/AAMADgAAEzMHIwczFTczBwEjJxUj/SmLKiYgsinOAQIr5CACv4tynJy0/vLt7QACABn/OAHjArAADQAVAAASFjI2NzMOASsBIiYnMwUBIzcDMxsBsDpHOQQdAkcwCDBGAhwBNf7LHV/XIsbFAow3NyQvRUQw7v12yQHB/mMBnQAAAAABAEv/nwGzAcIACwAAATMRIxUjNSMRMxEhAZMgpR2mIAEoAcL+PmFhAcL+WgAAAAABAEsAAAFWA1EABwAAExEjETM1MxVsIeohAtH9LwLuY4AAAAABAEsAAAESAikABwAAExEjETM1MxVrIKgfAab+WgHCZ4MAAAACABT/8wPoA7AADwATAAAFATMBEwMzGwEzAxMBMwELATMXIwFd/rclASmLmySLjxycjgEvG/6zn1cpjCoNAvv9UQFFAWr+twFJ/pf+twKy/QUBbgJPcwAAAgAZ//UCkwKEAA8AEwAAEzMTNyczFzczBxcTMwMnBxMzFyMZIblXYSBRUx5iVrcd1WZnCimMKgHC/ne30LGz0rkBiv4029sCj3MAAAIAFP/zA+gDsAAPABMAAAUBMwETAzMbATMDEwEzAQMTMwcjAV3+tyUBKYubJIuPHJyOAS8b/rOfNSmLKg0C+/1RAUUBav63AUn+l/63ArL9BQFuAk9zAAACABn/9QKTAoQADwATAAATMxM3JzMXNzMHFxMzAycHEzMHIxkhuVdhIFFTHmJWtx3VZmeWKYsqAcL+d7fQsbPSuQGK/jTb2wKPcwAAAwAU//MD6AOQAA8AEwAXAAAFATMBEwMzGwEzAxMBMwEDAjQyFDI0MhQBXf63JQEpi5ski48cnI4BLxv+s59OOjE3DQL7/VEBRQFq/rcBSf6X/rcCsv0FAW4B+TY2NjYAAwAZ//UCkwJkAA8AEwAXAAATMxM3JzMXNzMHFxMzAycHEjQyFDI0MhQZIblXYSBRUx5iVrcd1WZnFDoxNwHC/ne30LGz0rkBiv4029sCOTY2NjYAAgAUAAAB+AOwAAgADAAAISMRAzMbATMLATMXIwEZIeQk088e324pjCoBLAHC/mEBn/4+AoRzAAACADL/OQHGAoQAHAAgAAABMxEUBiMiJzceATMyNj0BBiMiJjURMxEUFjI2NQEzFyMBpiB8Wmw/AhxbMkpsMXpTdiBlimX++ymMKgHC/kxZfFMyMDlrS0xidVIBBv76RWZmRQHIcwAAAAEAMgEaAWYBOQADAAABITUhAWb+zAE0ARofAAABAA8BGgHfATkAAwAAASE1IQHf/jAB0AEaHwAAAQBkAjcAwwMsAAgAABMVIzU0NjcVBogkNCs7Aq12di9DDSMbAAAAAAEAGQI4AHgDKgAIAAATNTMVFAYHNTZUJDQrOwK3c3MvQw0jGwAAAAABABT/OQBzACAACAAAFzUzFRQGBzU2TyQ0KztIaGgvQw0jGwACAGQCNwE/AywACAARAAATFSM1NDY3FQYXFSM1NDY3FQaIJDQrO3wkNCs7Aq12di9DDSMbQXZ2L0MNIxsAAAAAAgAZAjcA9AMqAAgAEQAAEzUzFRQGBzU2JzUzFRQGBzU20CQ0Kzt8JDQrOwK2dHQvQw0jG0F0dC9DDSMbAAAAAAIAFP84AO8AHgAIABEAABc1MxUUBgc1Nic1MxUUBgc1NsskNCs7fCQ0KztJZ2cvQw0jG0FnZy9DDSMbAAEASwAAAYIC7AALAAABIxEjESM1MxEzETMBgoshi4shiwEc/uQBHB8Bsf5PAAAAAAEASwAAAYIC7AATAAABIxEjESM1MzUjNTM1MxUzFSMVMwGCiyGLi4uLIYuLiwEc/uQBHB2ZH/v7H5kAAAEAbgDvAM0BTQAGAAA2NDIVFAYjbl8aFu9eLxYZAAAAAwBL//kBrwA3AAMABwALAAAWNDIUMjQyFDI0MhRLRU5FR0UHPj4+Pj4+AAAHADf/9QRRAvkACQARABsAIwAtADUAOQAABSMiJjQ2MhYUBjYmIgYUFjI2ASMiJjQ2MhYUBgIiBhQWMjY0ASMiJjQ2MhYUBjYmIgYUFjI2ATMBIwIiCkBeYIlgXz9PalBQak/+PApBXV+JX14PbFBQbE0CUgpAXmCJYF8/T2pQUGpP/kgn/dElC2KEYGCEYthRUWtQUAFRYoRgYIRiASlRa1BPbP1qYoRgYIRi2FFRa1BQAor9FAAAAQBLABIBJQGxAAYAAD8BFQcXFSdL2ri42vDBK6OkLcQAAAAAAQAUABIA7gGxAAYAABMXFQc1NycU2tq4uAGxwRrELaSjAAAAAQAYAAABVgLuABEAACUjFSM1IzUzESEVIxEzFSMVMwEuwiEzMwEL6sPDwqmpqRwCKR3+ah1ZAAABABT//gH9AvYALgAAJSMVMhYyNzMGIyImKwEGByM2NzUjNTM1IzUzNTQ2OwEyFxUuASMiBh0BMxUjFTMBhNIvg0wpJDs6KIcnITEoJDJLXFxcXGRRCUQ5GEYkSFHT0tKoQ0hBYEkEQ10IQx1XHOxbdzIjGyFoUewcVwAAAQBL//MCmgL5ABwAAAEyFwcmIgYHIQchBhQXIQchHgEyNxUGKwEiJhA2Ac9qYQxV4MYhAbwL/koDBQGGC/6LIcHjXltnD5vh5AL5Oh47pnQdFzMgHXObQCU46AE55QAABABL//UELwL5AAkAEQAVAB0AAAEjIiY0NjIWFAY2JiIGFBYyNhMhNSEBMxEBESMRAQOOCkBeYIlgXz9PalBQak8g/rcBSf5EHf3YHQIoAbBihGBghGLYUVFrUFD/AB8Bsv0HAqf9ZAL5/VoAAgAjAckCegLuAAsAEwAAAREzFzczESM1BycVAxUjESMRIzUBVxt3eRgfdXNiaB5oAdIBHObm/uTT3N3UARwa/v8BARoAAAAAAgBLAL8BygGkAA0AGwAAJQYiJiMGBzU2NzIWMjcmFjI3FQYiJiMGBzU2NwHKKFGHJjEoJzEvg0wp+INMKShRhyYxKCcx7S5IBEI1LARIQYVIQTIuSARCNSwEAAABAEsA6gGCAk4AEwAAARUjBzMVIwcjNyM1MzcjNTM3MwcBgmNKrcNKJUlOZEquxUknSgHsH2MdY2MdYx9iYgAAAgBLAJ0BhAKYAAYACgAAEyUVDQEVJQEhNSFLATn+8QEP/scBOf7JATcB4rYmn6Aouf7ZHwAAAAACAEsAnQGEApgABgAKAAATBRUFNS0BASE1IUsBOf7HAQ/+8QE3/skBNwKYth65KKCf/isfAAAAAAEAD/89AFT/swAIAAAXNSI0MhUUDwEuH0UDH8M4Ph8HCUcAAAEAPAAAAdACeAAbAAABFSIGFREzFSMVIzUjFSMRNDYzFSIGFREzETQ2Ac86UYyMIMggZEc6UchkAngcUD3++RysrKwBz0pfHFA9/vkBB0pfAAAAAAIAPAAAAV4ChAARABUAAAERIzUjFSMRNDYzFSIGFREzNSY0MhQBUSDVIGRHOlHVDToBwf4/rKwBz0pfHFA9/vn5jTY2AAAAAAEAPP/3Ac8CeQAXAAAlFSImPQEjFSMRNDYzFSIGFREzETMRFBYBz0dkyCBkRzpRyCBRExxfSgysAc9KXxxQPf75AbH+Jz1QAAIAPAAAAkYChwAfACMAAAERIzUjFSM1IxUjETQ2MxUiBhURMxE0NjMVIgYVETM1JjQyFAI5INUgyCBkRzpRyGRHOlHVDToBwf4/rKysrAHPSl8cUD3++QEHSl8cUD3++fmQNjYAAAAAAQA8//cCyAJ4ACUAACUVIiY9ASMVIzUjFSMRNDYzFSIGFREzETQ2MxUiBhURMxEzERQWAshHZNkgyCBkRzpRyGRHOlHZIFETHF9KDKysrAHPSl8cUD3++QEHSl8cUD3++QGv/ik9UAABAA//PQBU/7MACAAAFzUiNDIVFA8BLh9FAx/DOD4fBwlHAAAAABwBVgABAAAAAAAAAD0AfAABAAAAAAABAAoA0AABAAAAAAACAAcA6wABAAAAAAADAB8BMwABAAAAAAAEAAoBaQABAAAAAAAFAA0BkAABAAAAAAAGABEBwgABAAAAAAAHACgCJgABAAAAAAAIAA4CbQABAAAAAAAJAA4CmgABAAAAAAALABgC2wABAAAAAAAMABgDJgABAAAAAAANAJAEYQABAAAAAAAOABoFKAADAAEECQAAAHoAAAADAAEECQABABQAugADAAEECQACAA4A2wADAAEECQADAD4A8wADAAEECQAEABQBUwADAAEECQAFABoBdAADAAEECQAGACIBngADAAEECQAHAFAB1AADAAEECQAIABwCTwADAAEECQAJABwCfAADAAEECQALADACqQADAAEECQAMADAC9AADAAEECQANASADPwADAAEECQAOADQE8gBDAG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADEAMQAsACAARABlAG4AaQBzACAATQBhAHMAaABhAHIAbwB2ACAAKABkAGUAbgBpAHMALgBtAGEAcwBoAGEAcgBvAHYAQABnAG0AYQBpAGwALgBjAG8AbQApAABDb3B5cmlnaHQgKGMpIDIwMTEsIERlbmlzIE1hc2hhcm92IChkZW5pcy5tYXNoYXJvdkBnbWFpbC5jb20pAABQAG8AaQByAGUAdAAgAE8AbgBlAABQb2lyZXQgT25lAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABEAGUAbgBpAHMATQBhAHMAaABhAHIAbwB2ADoAIABQAG8AaQByAGUAdAAgAE8AbgBlADoAIAAyADAAMQAxAABEZW5pc01hc2hhcm92OiBQb2lyZXQgT25lOiAyMDExAABQAG8AaQByAGUAdAAgAE8AbgBlAABQb2lyZXQgT25lAABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAxAABWZXJzaW9uIDEuMDAxAABQAG8AaQByAGUAdABPAG4AZQAtAFIAZQBnAHUAbABhAHIAAFBvaXJldE9uZS1SZWd1bGFyAABQAG8AaQByAGUAdAAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEQAZQBuAGkAcwAgAE0AYQBzAGgAYQByAG8AdgAuAABQb2lyZXQgaXMgYSB0cmFkZW1hcmsgb2YgRGVuaXMgTWFzaGFyb3YuAABEAGUAbgBpAHMAIABNAGEAcwBoAGEAcgBvAHYAAERlbmlzIE1hc2hhcm92AABEAGUAbgBpAHMAIABNAGEAcwBoAGEAcgBvAHYAAERlbmlzIE1hc2hhcm92AABkAGUAbgBpAHMALgBtAGEAcwBoAGEAcgBvAHYAQABnAG0AYQBpAGwALgBjAG8AbQAAZGVuaXMubWFzaGFyb3ZAZ21haWwuY29tAABkAGUAbgBpAHMALgBtAGEAcwBoAGEAcgBvAHYAQABnAG0AYQBpAGwALgBjAG8AbQAAZGVuaXMubWFzaGFyb3ZAZ21haWwuY29tAABUAGgAaQBzACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAUwBJAEwAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAxAC4AMQAuACAAVABoAGkAcwAgAGwAaQBjAGUAbgBzAGUAIABpAHMAIABhAHYAYQBpAGwAYQBiAGwAZQAgAHcAaQB0AGgAIABhACAARgBBAFEAIABhAHQAOgAgAGgAdAB0AHAAOgAvAC8AcwBjAHIAaQBwAHQAcwAuAHMAaQBsAC4AbwByAGcALwBPAEYATAAAVGhpcyBGb250IFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBTSUwgT3BlbiBGb250IExpY2Vuc2UsIFZlcnNpb24gMS4xLiBUaGlzIGxpY2Vuc2UgaXMgYXZhaWxhYmxlIHdpdGggYSBGQVEgYXQ6IGh0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMAABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAAGh0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMAAAAAAACAAAAAAAA/7UAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAABAAIBAgEDAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCjAIQAhQC9AJYA6ACGAI4AiwCpAKQBBACKANoAgwCTAI0AlwCIAMMA3gCqAKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAPAAkQDWANQA1QBoAOsA7QCJAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA6gB4AHoAeQB7AH0AfAC4AKEAfwB+AIAAgQDsAO4AugEFAQYBBwEIAQkBCgD9AP4BCwEMAQ0BDgD/AQABDwEQAREBAQESARMBFAEVARYBFwEYARkBGgEbARwBHQD4APkBHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQD6ANcBLgEvATABMQEyATMBNAE1ATYBNwE4ATkA4gDjAToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYAsACxAUcBSAFJAUoBSwFMAU0BTgFPAVAA+wD8AOQA5QFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmALsBZwFoAWkBagDmAOcApgFrAWwBbQFuAW8BcADYAOEA2wDcAN0A4ADZAN8BcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYAsgCzALYAtwDEALQAtQDFAIIAwgCHAKsAxgC+AL8A9wHXAdgB2QCMAKcAjwCUAJUB2gHbAMAAwQHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0ETlVMTAJDUgd1bmkwMEFEB0FtYWNyb24HYW1hY3JvbgZBYnJldmUGYWJyZXZlB0FvZ29uZWsHYW9nb25lawtDY2lyY3VtZmxleAtjY2lyY3VtZmxleApDZG90YWNjZW50CmNkb3RhY2NlbnQGRGNhcm9uBmRjYXJvbgZEY3JvYXQHRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4Ckdkb3RhY2NlbnQKZ2RvdGFjY2VudAd1bmkwMTIyB3VuaTAxMjMLSGNpcmN1bWZsZXgLaGNpcmN1bWZsZXgESGJhcgRoYmFyBkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrC0pjaXJjdW1mbGV4C2pjaXJjdW1mbGV4B3VuaTAxMzYHdW5pMDEzNwZMYWN1dGUGbGFjdXRlB3VuaTAxM0IHdW5pMDEzQwZMY2Fyb24GbGNhcm9uBExkb3QEbGRvdAZOYWN1dGUGbmFjdXRlB3VuaTAxNDUHdW5pMDE0NgZOY2Fyb24GbmNhcm9uC25hcG9zdHJvcGhlB09tYWNyb24Hb21hY3JvbgZPYnJldmUGb2JyZXZlDU9odW5nYXJ1bWxhdXQNb2h1bmdhcnVtbGF1dAZSYWN1dGUGcmFjdXRlB3VuaTAxNTYHdW5pMDE1NwZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDE2Mgd1bmkwMTYzBlRjYXJvbgZ0Y2Fyb24EVGJhcgR0YmFyBlV0aWxkZQZ1dGlsZGUHVW1hY3Jvbgd1bWFjcm9uBlVicmV2ZQZ1YnJldmUFVXJpbmcFdXJpbmcNVWh1bmdhcnVtbGF1dA11aHVuZ2FydW1sYXV0B1VvZ29uZWsHdW9nb25lawtXY2lyY3VtZmxleAt3Y2lyY3VtZmxleAtZY2lyY3VtZmxleAt5Y2lyY3VtZmxleAZaYWN1dGUGemFjdXRlClpkb3RhY2NlbnQKemRvdGFjY2VudAdBRWFjdXRlB2FlYWN1dGULT3NsYXNoYWN1dGULb3NsYXNoYWN1dGUHdW5pMDIxOAd1bmkwMjE5B3VuaTA0MDEHdW5pMDQwMgd1bmkwNDAzB3VuaTA0MDQHdW5pMDQwNQd1bmkwNDA2B3VuaTA0MDcHdW5pMDQwOAd1bmkwNDA5B3VuaTA0MEEHdW5pMDQwQgd1bmkwNDBDB3VuaTA0MEUHdW5pMDQwRgd1bmkwNDEwB3VuaTA0MTEHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTQHdW5pMDQxNQd1bmkwNDE2B3VuaTA0MTcHdW5pMDQxOAd1bmkwNDE5B3VuaTA0MUEHdW5pMDQxQgd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjMHdW5pMDQyNAd1bmkwNDI1B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMAd1bmkwNDMxB3VuaTA0MzIHdW5pMDQzMwd1bmkwNDM0B3VuaTA0MzUHdW5pMDQzNgd1bmkwNDM3B3VuaTA0MzgHdW5pMDQzOQd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0UHdW5pMDQzRgd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mgd1bmkwNDQzB3VuaTA0NDQHdW5pMDQ0NQd1bmkwNDQ2B3VuaTA0NDcHdW5pMDQ0OAd1bmkwNDQ5B3VuaTA0NEEHdW5pMDQ0Qgd1bmkwNDRDB3VuaTA0NEQHdW5pMDQ0RQd1bmkwNDRGB3VuaTA0NTEHdW5pMDQ1Mgd1bmkwNDUzB3VuaTA0NTQHdW5pMDQ1NQd1bmkwNDU2B3VuaTA0NTcHdW5pMDQ1OAd1bmkwNDU5B3VuaTA0NUEHdW5pMDQ1Qgd1bmkwNDVDB3VuaTA0NUUHdW5pMDQ1Rgd1bmkwNDkwB3VuaTA0OTEGV2dyYXZlBndncmF2ZQZXYWN1dGUGd2FjdXRlCVdkaWVyZXNpcwl3ZGllcmVzaXMGWWdyYXZlBnlncmF2ZQRsaXJhBEV1cm8HdW5pMjExNgd1bmlGNkMzA2ZfZgVmX2ZfaQVmX2ZfbANfMDECXzICXzMCXzQCXzUCXzYCXzcCXzgCXzkDXzEwA18xMQNfMTIDXzE0A18xNQNfMTYDXzE3A18xOANfMTkDXzIwA18yMQNfMjIDXzIzA18yNANfMjUDXzI2A18yNwNfMjgDXzI5A18zMANfMzEEXzEyNwRfMTI5BF8xNDEEXzE0MgRfMTQzBF8xNDQEXzE1NwRfMTU4BF8xNjAEXzE3MARfMTc4BF8xNzkEXzE4NQRfMTg2BF8xODgEXzE4OQRfMTkwAl8xAAABAAH//wAPAAAAAQAAAADJiW8xAAAAAMttegMAAAAAy23BqwABAAAADgAAABgAAAAAAAIAAQADAfcAAQAEAAAAAgAAAAEAAAAKAEIAUAADREZMVAAUY3lybAAgbGF0bgAsAAQAAAAA//8AAQAAAAQAAAAA//8AAQAAAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAARN2AAQAAACSAS4BWAFuAXgBfgGEAXgBngGkAjoCVAKaAswC/gNwA9oELATaBOQE8gaABrIIEAkKCnwKfAp8CnwKfAqCCpAKfAp8CpYK6Ap8CnwKfAt2CnwLkAuWC6gLsgGkAaQBpAGkAaQBpAPaA9oD2gPaA9oD2gaABoAGgAaAC7gKfAp8CnwKfAp8CnwKfAp8CnwKfAp8CnwKfAp8CnwKfAuQC5ALkAuQAaQKfAGkCnwBpAJUCnwCVAp8CnwKfAp8CnwKkAqQA9oKfAPaCnwLdgt2C3YE5Ap8BOQKfATkCnwNKg6sBoALkAaAC5AGgAuQBoALuBA2EPwRFhA2ETQRUhD8EWwRihGcEa4SVBMCExgRihMiEygTMhNAE04TWBNmE3ATcBMoEDYTKAAKACb/JgB7/yYAfP8mAH3/JgB+/yYAf/8mAID/JgC7/yYAvf8mAL//JgAFAAf/1AAM/9AASf91AMr/dQDM/3UAAgAW/7AAHP+/AAEAHP/EAAEAHP+mAAYAFf+rABj/xAAZ/4gAG/+wABwAMgAd/5wAAQAZ/7AAJQAH/ygADP8kACj/tAAs/7QANP+0ADb/tAA5/7AAOv/KADv/kQA+/7oAW/+cAFz/nACC/7QAjf+0AI7/tACP/7QAkP+0AJH/tACT/7QAlP/KAJX/ygCW/8oAl//KAJj/ugDB/7QAx/+0ANn/tADd/7QBAv+0AQb/tAEY/7ABGv+wASD/ygEk/8oBJv/KASj/ygEu/7oABgA5/8QAPv+6AJj/ugEY/8QBGv/EAS7/ugARABH/iAAT/4gAJv+2ADv/tgA8/74APv/GAHv/tgB8/7YAff+2AH7/tgB//7YAgP+2AJj/xgC7/7YAvf+2AL//tgEu/8YADAAR/3AAE/9wACb/qAB7/6gAfP+oAH3/qAB+/6gAf/+oAID/qAC7/6gAvf+oAL//qAAMABH/xAAT/8IAJv/KAHv/ygB8/8oAff/KAH7/ygB//8oAgP/KALv/ygC9/8oAv//KABwAKP/QACz/pgA0/9IAO//OAD7/zgCC/9AAjf/SAI7/0gCP/9IAkP/SAJH/0gCT/9IAlP/YAJj/zgDB/9AAx//QANn/pgDd/6YBAv/SAQb/0gEQ/9gBFP/YARb/2AEg/9gBJP/YASb/2AEo/9gBLv/OABoAB/9aAAz/VgAo/5IALP+SADT/kgA5/7IAO/+GADz/hgA+/4oAgv+SAI3/kgCO/5IAj/+SAJD/kgCR/5IAk/+SAJj/igDB/5IAx/+SANn/kgDd/5IBAv+SAQb/kgEY/7IBGv+yAS7/igAUABH/hgAT/4QAJv+0ADn/rAA7/7QAPP++AD7/xgB7/7QAfP+0AH3/tAB+/7QAf/+0AID/tACY/8YAu/+0AL3/tAC//7QBGP+sARr/rAEu/8YAKwAR/1wAE/9cACb/ggA5/9gARv/QAEr/yABU/9AAe/+CAHz/ggB9/4IAfv+CAH//ggCA/4IAm//QAJz/0ACd/9AAnv/QAJ//0ACg/9AAo//IAKT/yACl/8gApv/IAK3/0ACu/9AAr//QALD/0ACx/9AAs//QALv/ggC8/9AAvf+CAL7/0AC//4IAwP/QAM7/yADS/8gA1P/IANb/yAED/9ABB//QARj/2AEa/9gAAgAR/8wAE//MAAMAOf+6ARj/ugEa/7oAYwAR/6gAEv+0ABP/qAAf/4wAIP+MACb/tAAo/7oALP+6AC//pgA0/7AARv+yAEj/rABJ/6wASv+sAEv/wQBM/6IATv+oAE//gwBS/8wAVP+yAFX/vwBW/7oAV/+gAFj/vwBZ/84AWv+qAFv/ugBc/8QAXf+6AF7/qgBf/78Ae/+0AHz/tAB9/7QAfv+0AH//tACA/7QAgv+6AI3/sACO/7AAj/+wAJD/sACR/7AAk/+wAJv/sgCc/7IAnf+yAJ7/sgCf/7IAoP+yAKP/rACk/6wApf+sAKb/rACt/7IArv+yAK//sgCw/7IAsf+yALP/sgC0/6oAtf+qALb/qgC3/6oAu/+0ALz/sgC9/7QAvv+yAL//tADA/7IAwf+6AMf/ugDK/6wAzP+sAM7/rADS/6wA1P+sANb/rADZ/7oA2v+iAN3/ugDe/6IBAv+wAQP/sgEG/7ABB/+yAQv/oAEN/6ABD/+gARD/2AER/78BFP/YARX/vwEW/9gBF/+/ASH/qgEl/6oBJ/+qASn/qgAMABH/wgAT/8AAJv/KAHv/ygB8/8oAff/KAH7/ygB//8oAgP/KALv/ygC9/8oAv//KAFcAEf8uABL/pgAT/ywAH/9iACD/YAAm/zYALP+2ADT/tgBG/3oASP9uAEn/bgBK/3QAS/+3AEz/eABS/8EAVP96AFX/twBW/24AV/+3AFj/gwBa/6oAW/+3AF3/gwBe/7cAX/+NAHv/NgB8/zYAff82AH7/NgB//zYAgP82AI3/tgCO/7YAj/+2AJD/tgCR/7YAk/+2AJv/egCc/3oAnf96AJ7/egCf/3oAoP96AKP/dACk/3QApf90AKb/dACt/3oArv96AK//egCw/3oAsf96ALP/egC0/6oAtf+qALb/qgC3/6oAu/82ALz/egC9/zYAvv96AL//NgDA/3oAyv9uAMz/bgDO/3QA0v90ANT/dADW/3QA2f+2ANr/eADd/7YA3v94AQL/tgED/3oBBv+2AQf/egEL/7cBDf+3AQ//twER/4MBFf+DARf/yQEh/6oBJf+qASf/qgEp/6oAPgAR/0YAEv+yABP/RAAf/3AAIP9uACb/SgA0/7wARv+KAEr/hABU/4oAWv+yAF7/sgB7/0oAfP9KAH3/SgB+/0oAf/9KAID/SgCN/7wAjv+8AI//vACQ/7wAkf+8AJP/vACb/4oAnP+KAJ3/igCe/4oAn/+KAKD/igCj/4QApP+EAKX/hACm/4QArf+KAK7/igCv/4oAsP+KALH/igCz/4oAtP+yALX/sgC2/7IAt/+yALv/SgC8/4oAvf9KAL7/igC//0oAwP+KAM7/hADS/4QA1P+EANb/hAEC/7wBA/+KAQb/vAEH/4oBIf+yASX/sgEn/7IBKf+yAFwAEf+CABL/zAAT/4IAH/+SACD/kgAm/4gAKP+6ACz/ugAv/6EANP/IAEb/sABI/3kASf95AEr/qgBL/8wATP95AFL/twBU/7AAVf+3AFb/eQBX/7cAWP+YAFr/yABb/60AXf+YAF7/rQBf/7cAe/+IAHz/iAB9/4gAfv+IAH//iACA/4gAgv+6AI3/yACO/8gAj//IAJD/yACR/8gAk//IAJv/sACc/7AAnf+wAJ7/sACf/7AAoP+wAKP/qgCk/6oApf+qAKb/qgCt/7AArv+wAK//sACw/7AAsf+wALP/sAC0/8gAtf/IALb/yAC3/8gAu/+IALz/sAC9/4gAvv+wAL//iADA/7AAwf+6AMf/ugDK/3kAzP95AM7/qgDS/6oA1P+qANb/qgDZ/7oA2v95AN3/ugDe/3kBAv/IAQP/sAEG/8gBB/+wAQv/twEN/7cBD/+3ARH/mAEV/5gBF//ZASH/yAEl/8gBJ//IASn/yAABAE//ugADABH/wgAT/8IAT/+6AAEAT//LABQASv/KAE//ugBU/9AAnf/YAKP/ygCk/8oApf/KAKb/ygCt/9AArv/QAK//0ACw/9AAsf/QALP/0ADO/8oA0v/KANT/ygDW/8oBA//QAQf/0AAjAEb/2ABI/9gASf/YAEr/2ABP/7oAVP/YAFb/2ABb/7oAm//YAJz/2ACd/9gAnv/YAJ//2ACg/9gAo//YAKT/2ACl/9gApv/YAK3/2ACu/9gAr//YALD/2ACx/9gAs//YALz/2AC+/9gAwP/YAMr/2ADM/9gAzv/YANL/2ADU/9gA1v/YAQP/2AEH/9gABgAR/34AE/98AB//vAAg/7oAT/+6AF3/0wABAE//zgAEABH/mAAT/5YASf/YAE//ugACABH/nAAT/5wAAQBP/9MAXAAR/4IAEv/MABP/ggAf/5IAIP+SACb/iAAo/7oALP+6AC//oQA0/8gARv+wAEj/eQBJ/3kASv+qAEv/zABM/3kAUv+3AFT/sABV/7cAVv95AFf/twBY/5gAWv/IAFv/rQBd/5gAXv+tAF//twB7/4gAfP+IAH3/iAB+/4gAf/+IAID/iACC/7oAjf/IAI7/yACP/8gAkP/IAJH/yACT/8gAm/+wAJz/sACd/7AAnv+wAJ//sACg/7AAo/+qAKT/qgCl/6oApv+qAK3/sACu/7AAr/+wALD/sACx/7AAs/+wALT/yAC1/8gAtv/IALf/yAC7/4gAvP+wAL3/iAC+/7AAv/+IAMD/sADB/7oAx/+6AMr/eQDM/3kAzv+qANL/qgDU/6oA1v+qANn/ugDa/3kA3f+6AN7/eQEC/8gBA/+wAQb/yAEH/7ABC/+3AQ3/twEP/7cBEf+YARX/mAEX/9EBIf/IASX/yAEn/8gBKf/IAGAAEf+oABL/tAAT/6gAH/+MACD/jAAm/7QAKP+6ACz/ugAv/6YANP+wAEb/sgBI/6wASf+sAEr/rABL/8EATP+iAE7/qABP/4MAUv/MAFT/sgBV/78AVv+6AFf/oABY/78AWf/OAFr/qgBb/7oAXP/EAF3/ugBe/6oAX/+/AHv/tAB8/7QAff+0AH7/tAB//7QAgP+0AIL/ugCN/7AAjv+wAI//sACQ/7AAkf+wAJP/sACb/7IAnP+yAJ3/sgCe/7IAn/+yAKD/sgCj/6wApP+sAKX/rACm/6wArf+yAK7/sgCv/7IAsP+yALH/sgCz/7IAtP+qALX/qgC2/6oAt/+qALv/tAC8/7IAvf+0AL7/sgC//7QAwP+yAMH/ugDH/7oAyv+sAMz/rADO/6wA0v+sANT/rADW/6wA2f+6ANr/ogDd/7oA3v+iAQL/sAED/7IBBv+wAQf/sgEL/6ABDf+gAQ//oAER/78BFf+/ARf/vwEh/6oBJf+qASf/qgEp/6oAYgAR/6gAEv+0ABP/qAAf/4wAIP+MACb/tAAo/7oALP+6AC//pgA0/7AARv+yAEj/rABJ/6wASv+sAEv/wQBM/6IATv+oAE//gwBS/8wAVP+yAFX/vwBW/7oAV/+gAFj/vwBZ/84AWv+qAFv/ugBc/8QAXf+6AF7/qgBf/78Ae/+0AHz/tAB9/7QAfv+0AH//tACA/7QAgv+6AI3/sACO/7AAj/+wAJD/sACR/7AAk/+wAJv/sgCc/7IAnf+yAJ7/sgCf/7IAoP+yAKP/rACk/6wApf+sAKb/rACt/7IArv+yAK//sgCw/7IAsf+yALP/sgC0/6oAtf+qALb/qgC3/6oAu/+0ALz/sgC9/7QAvv+yAL//tADA/7IAwf+6AMf/ugDK/6wAzP+sAM7/rADS/6wA1P+sANb/rADZ/7oA2v+iAN3/ugDe/6IBAv+wAQP/sgEG/7ABB/+yAQv/oAEN/6ABD/+gARH/vwEU/9gBFf+/ARb/2AEX/78BIf+qASX/qgEn/6oBKf+qADEBR/+6AVL/dAFW/4MBWP+DAV3/gwFg/7oBY/+6AWQAMgFlADIBZv+6AWwAMgFy/3sBc/97AXT/ewF1/3sBdv97AXf/ewF4/3sBef97AXr/ewF7/5wBfP97AX3/ewF+/3sBf/97AYD/ewGB/3sBgv97AYP/ewGE/3sBhf97AYb/ewGH/3sBiP97AYn/ewGK/3sBi/97AYz/ewGN/3sBjv97AY//ewGQ/3sBkf97AZL/ewGU/3sBlf97AZb/ewGd/3sBof97AAYBR/+6AWD/ugFj/7oBZv+6AWn/ugFs/7oABwFH/7oBYP+6AWP/ugFk/3QBZf+NAWb/ugFp/4MABwFH/7oBYP+6AWP/ugFk/5IBZf+DAWb/ugFp/1YABgFH/7oBYP+6AWP/ugFk/7oBZv+6AWn/kgAHAUf/ugFg/7oBY/+6AWX/ugFm/7oBaf+DAWz/ugAEAVL/ugFW/7oBWP+6AV3/ugAEAVL/gwFW/3QBWP+SAV3/kgApAVL/qgFW/5IBXf+wAXL/kQFz/5EBdP+cAXX/nAF2/5wBd/+RAXj/nAF5/5EBev+cAXv/nAF8/5wBff+cAX7/nAF//5wBgP+RAYH/kQGC/5EBg/+RAYT/kQGF/5EBhv+cAYf/nAGI/5wBif+nAYr/nAGL/5wBjP+RAY3/nAGO/5wBj/+nAZD/nAGR/5wBkv+RAZT/nAGV/5EBlv+RAZ3/nAGh/5wAKwFS/40BVv+DAVj/nAFd/5wBZv/OAXL/ZQFz/5EBdP97AXX/ewF2/zgBd/9lAXj/ZQF5/3sBev97AXv/ewF8/3sBff9lAX7/ewF//3sBgP9lAYH/ewGC/3sBg/9lAYT/ewGF/5wBhv9lAYf/ewGI/3sBif+RAYr/kQGL/5EBjP+RAY3/kQGO/5EBj/+RAZD/kQGR/5EBkv9lAZT/ewGV/2UBlv97AZ3/ewGh/3sABQFS/7oBVv+6AVj/ugFd/7oBZ//WAAIBUv+6AVj/ugABAX3/0gACAXb/sAF9/7AAAwGE/6YBhf+6AYn/ugADAYT/zgGF/84Bif/TAAIBhP+mAYn/0wADAXb/pgF4/84Bff+mAAIBdv+6AXj/xAABAYT/pgABAJIABwAMABUAGAAbABwAHQAeACYAJwApACsALwAwADEANAA1ADYAOAA5ADoAOwA8AD4ARgBHAEgASQBKAEsATABNAE4AUABRAFIAVABVAFcAWABaAFsAXABdAHsAfAB9AH4AfwCAAI0AjgCPAJAAkQCTAJQAlQCWAJcAmACbAJwAnQCeAJ8AoACjAKQApQCmAK0ArgCvALAAsQCzALQAtQC2ALcAuwC8AL0AvgC/AMkAygDLAMwAzgDSANQA1gDaAN4BAgEDAQYBBwELAQ0BDwEQAREBFAEVARYBFwEYARoBIAEhASQBJQEmAScBKAEuAUYBTwFSAVUBVgFYAVwBXQFgAWIBZAFlAWYBbwFwAXMBdQF2AXgBfQGEAYUBjAGOAZQBoAGhAAAAAQAAAAoAPAA+AANERkxUABRjeXJsAB5sYXRuACgABAAAAAD//wAAAAQAAAAA//8AAAAEAAAAAP//AAAAAAAAAAAAAQAAAAA=) + format("TrueType"); +} +body { + font-family: poiret one, Helvetica, Georgia; + background-color: #c8c8c8; + overflow: hidden; + padding: 0; + margin: 0; +} +.center-box { + text-align: center; + position: absolute; + width: 300px; + height: 400px; + margin: -200px 0 0 -150px; + left: 50%; + top: 50%; +} +.title { + font-size: 50px; +} +.button { + position: absolute; + cursor: pointer; + width: 100px; + height: 100px; + left: 50%; + top: 50%; + margin: -100px 0 0 -50px; + border: 1px solid #222; + color: #222; + border-radius: 15px; + font-size: 55px; +} +.button .text { + font-size: 20px; +} +.op, +#wxArrow { + display: none; +} +.ads { + width: 100%; + height: 50px; + margin: 0; + padding: 0; + border: none; + background: 0 0; + position: absolute; + z-index: 1002; + bottom: 0; +} +@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (orientation: landscape) { + body { + -webkit-transform-origin: 0% 0%; + transform-origin: 0% 0%; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + position: absolute; + left: 100%; + } +} \ No newline at end of file diff --git a/games/core-ball/tool/js_builder/Gruntfile.js b/games/core-ball/tool/js_builder/Gruntfile.js new file mode 100644 index 00000000..d56ee6e0 --- /dev/null +++ b/games/core-ball/tool/js_builder/Gruntfile.js @@ -0,0 +1,114 @@ +/** + * @fileoverview + * @author Random | http://weibo.com/random + * @created 2014-07-15 + */ + +var fs = require("fs"); +var amdjsBuild = require("amdjs-build"); + +var TRANS_DIR = './_transport/'; +var COMBI_DIR = './_combi/'; +var AMDJS_BUILD_DIR = './_amdjs_build/'; +var DEST_DIR = './built/'; +var SRC_DIR = "../../js/"; + +module.exports = function(grunt) { + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + + clean : { + before : [TRANS_DIR, COMBI_DIR, AMDJS_BUILD_DIR, DEST_DIR], + after: [TRANS_DIR, COMBI_DIR, AMDJS_BUILD_DIR] + }, + + transport: { + options: { + paths: [SRC_DIR], + alias: { + "jquery": "conf/jquery" + }, + debug: false + }, + target: { + files: [{ + cwd: SRC_DIR, + expand: true, + src: [ + //srcFile, + '**/*.js', + '!conf/requireConf.js', + '!lib/require.js' + ], + dest: TRANS_DIR + }] + } + }, + + + combi: { + target: { + options: { + modulesPath : TRANS_DIR, + seajsUse : "", + complete : combiComplete + }, + files: [{ + cwd: TRANS_DIR, + expand: true, + src: "page/*.js", + dest: COMBI_DIR + }] + } + }, + + + uglify: { + options: { + report: 'min' + }, + target: { + files: [{ + cwd: AMDJS_BUILD_DIR, + expand: true, + src: "*.js", + dest: DEST_DIR + }] + } + } + }); + + + function combiComplete(fileList){ + if(!fs.existsSync(AMDJS_BUILD_DIR)){ + fs.mkdirSync(AMDJS_BUILD_DIR); + } + + fileList.forEach(function(file){ + var fileName; + var arr; + + if(file.indexOf("/") > -1){ + arr = file.split("/"); + fileName = arr.pop(); + }else{ + fileName = file; + } + + amdjsBuild(file, AMDJS_BUILD_DIR + fileName.replace(/\.js$/, ".min.js"), "$AJB"); + }); + } + + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-cmd-transport'); + grunt.loadNpmTasks('grunt-cmd-combi'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + + + grunt.registerTask('default', '默认任务', function() { + console.log("grunt build: 将项目目录js/page/下的js文件分别合并压缩到当前built目录"); + }); + + grunt.registerTask('build', ['clean:before', 'transport','combi', 'uglify', 'clean:after']); + //grunt.registerTask('build', ['clean:before', 'transport', 'combi']); +}; \ No newline at end of file diff --git a/games/core-ball/tool/js_builder/built/index.min.js b/games/core-ball/tool/js_builder/built/index.min.js new file mode 100644 index 00000000..57985b07 --- /dev/null +++ b/games/core-ball/tool/js_builder/built/index.min.js @@ -0,0 +1,694 @@ +"undefined" == typeof window.define && ((window.define = function () {}), (window.define.amd = 1)), + "undefined" == typeof window.$AJB && (window.$AJB = {}), + ($AJB.lib = {}), + ($AJB.general = {}), + ($AJB.page = {}), + ($AJB.lib.stopEvent = function () { + "use strict"; + return function (a) { + a && (a.preventDefault ? (a.preventDefault(), a.stopPropagation()) : ((a.returnValue = !1), (a.cancelBubble = !0))); + }; + }), + ($AJB.lib.Storage = function () { + "use strict"; + var a = { + setValue: function (a, b) { + window.localStorage && (window.localStorage[a] = b); + }, + getValue: function (a) { + return window.localStorage ? window.localStorage[a] : void 0; + }, + }; + return a; + }), + ($AJB.general.BeginStage = function () { + "use strict"; + function a(a) { + function c() { + b(h, "click", function () { + e.fire(g, f); + }), + (j.innerHTML = d.isAndroid ? "GO" : "▶"); + } + var h = a.getElementsByClassName("button")[0], + i = a.getElementsByClassName("text")[0], + j = document.getElementById("txtAr"), + k = { + show: function () { + a.style.display = ""; + }, + hide: function () { + a.style.display = "none"; + }, + level: function (a) { + (f = a), (i.innerHTML = "level " + a); + }, + on: function (a, b) { + e.add(a, b); + }, + off: function (a, b) { + e.remove(a, b); + }, + }; + return c(), k; + } + var b = $AJB.lib.addEvent(), + c = $AJB.lib.CustEvent(), + d = $AJB.lib.util(), + e = c(), + f = 0, + g = "start"; + return a; + }), + ($AJB.general.Switcher = function () { + "use strict"; + function a(a, b, c) { + var d, + e, + f = null, + g = !1, + h = { + point: [0, 0], + enabled: !1, + color: "#c8c8c8", + update: function () { + var a = h.point, + c = 30; + h.enabled && + (0 === e + ? ((d = h.color), a[0] < b / 2 ? ((a[0] = Math.min(a[0] + c, b / 2)), (h.point = a)) : ((h.point = a), (g = !0))) + : 1 === e && ((d = "#000"), a[0] > b / 2 ? ((a[0] = Math.max(a[0] - c, b / 2)), (h.point = a)) : ((h.point = a), (g = !0)))); + }, + render: function () { + var e = h.point; + h.enabled && ((a.fillStyle = d), a.fillRect(e[0] - b / 2, e[1] - c / 2, b, c), g && ((h.enabled = !1), f && f())); + }, + switchStage: function (d, i) { + 0 === d ? (h.point = [-b / 2, c / 2]) : 1 === d && ((a.fillStyle = h.color), a.fillRect(0, 0, b, c), (h.point = [b + b / 2, c / 2])), (h.enabled = !0), (g = !1), (e = d), (f = i); + }, + }; + return h; + } + return a; + }), + ($AJB.lib.addEvent = function () { + var a = $AJB.lib.util(), + b = { click: "touchstart", mousedown: "touchstart", mouseup: "touchend" }; + return function (c, d, e, f) { + c.addEventListener ? c.addEventListener(a.isMobile ? b[d] || d : d, e, f) : c.attachEvent ? c.attachEvent("on" + d, e) : (c["on" + d] = e); + }; + }), + ($AJB.general.Levels = function () { + "use strict"; + function a(a, b) { + return function () { + var c = 0; + return function () { + return (c += (a * b) % 360); + }; + }; + } + function b(a, b) { + return function () { + var c = 0, + d = 1, + e = +new Date(); + return function () { + var f = +new Date(); + return f - e > b && ((d = -d), (e = f)), (c += (d * a) % 360); + }; + }; + } + function c(a, b, c, d) { + return function () { + var e = 0, + f = +new Date(); + return function () { + var g = +new Date(); + return g - f > c && ((a = b - a), (f = g)), (e += (a * d) % 360); + }; + }; + } + function d(a) { + var b = 1; + return ( + h(document.body, "mousedown", function () { + b = -b; + }), + function () { + var c = 0; + return function () { + return (c += (a * b) % 360); + }; + } + ); + } + function e(a, b, c, d) { + return ( + h(document.body, "mousedown", function () { + d = -d; + }), + function () { + var e = 0, + f = +new Date(); + return function () { + var g = +new Date(); + return g - f > c && ((a = b - a), (f = g)), (e += (a * d) % 360); + }; + } + ); + } + function f(a, b, c, d) { + i[a] = { childs: k[b], queueCount: c, round: j[d] }; + } + var g, + h = $AJB.lib.addEvent(), + i = {}, + j = { + A1: a(1.5, 1), + A2: a(1.5, -1), + B1: a(2.5, 1), + B2: a(2.5, -1), + C1: b(2.2, 3e3), + C2: b(3.5, 2e3), + D1: c(2, 2.3, 1200, 1), + D2: c(2, 2.3, 1200, -1), + D3: c(4, 4.5, 1700, 1), + D4: c(4, 4.5, 1700, -1), + D5: c(4, 4.5, 1700, 1), + D6: c(4, 4.5, 1700, -1), + E1: d(2), + E2: e(2, 2.3, 1e3, 1), + }, + k = { + 0: [], + 2: [0, 180], + 3: [0, 120, 240], + 4: [0, 90, 180, 270], + 5: [0, 72, 144, 216, 288], + 6: [0, 60, 120, 180, 240, 300], + 7: [0, 52, 103, 155, 206, 258, 309], + 8: [0, 45, 90, 135, 180, 225, 270, 315], + 9: [0, 40, 80, 120, 160, 200, 240, 280, 320], + 10: [0, 36, 72, 108, 144, 180, 216, 252, 288, 324], + 11: [0, 33, 66, 99, 131, 164, 197, 230, 262, 295, 328], + 12: [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330], + 13: [0, 28, 56, 84, 111, 139, 167, 194, 222, 250, 277, 305, 333], + 14: [0, 26, 52, 78, 103, 129, 155, 180, 206, 232, 258, 283, 309, 335], + 15: [0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264, 288, 312, 336], + 16: [0, 23, 45, 68, 90, 113, 135, 158, 180, 203, 225, 248, 270, 293, 315, 338], + }, + l = { + 1: ["4", 8, "A1"], + 2: ["6", 10, "A1"], + 3: ["2", 20, "A1"], + 4: ["8", 12, "A2"], + 5: ["12", 8, "A1"], + 6: ["10", 10, "A2"], + 7: ["12", 13, "A1"], + 8: ["16", 3, "A2"], + 9: ["0", 26, "A2"], + 10: ["16", 10, "A1"], + 11: ["10", 8, "B1"], + 12: ["6", 12, "B2"], + 13: ["12", 4, "B1"], + 14: ["8", 14, "B2"], + 15: ["8", 6, "B1"], + 16: ["5", 10, "B2"], + 17: ["6", 12, "B1"], + 18: ["8", 14, "B2"], + 19: ["0", 23, "B1"], + 20: ["10", 13, "B2"], + 21: ["4", 12, "C1"], + 22: ["6", 10, "C1"], + 23: ["8", 12, "C1"], + 24: ["7", 14, "C1"], + 25: ["2", 18, "C1"], + 26: ["4", 18, "C1"], + 27: ["0", 24, "C1"], + 28: ["4", 10, "C2"], + 29: ["6", 13, "C2"], + 30: ["4", 20, "C1"], + 31: ["6", 8, "D1"], + 32: ["2", 12, "D2"], + 33: ["3", 14, "D2"], + 34: ["3", 18, "D1"], + 35: ["8", 12, "D1"], + 36: ["7", 15, "D2"], + 37: ["16", 8, "D2"], + 38: ["0", 23, "D1"], + 39: ["12", 12, "D1"], + 40: ["12", 15, "D2"], + 41: ["5", 10, "E1"], + 42: ["6", 12, "E1"], + 43: ["3", 15, "E1"], + 44: ["3", 19, "E1"], + 45: ["0", 24, "E1"], + 46: ["2", 15, "E2"], + 47: ["4", 16, "E2"], + 48: ["12", 8, "E2"], + 49: ["3", 20, "E2"], + 50: ["16", 14, "E2"], + 51: ["4", 6, "D3"], + 52: ["4", 12, "D4"], + 53: ["6", 13, "D3"], + 54: ["0", 24, "D4"], + 55: ["4", 21, "D3"], + 56: ["16", 16, "A1"], + 57: ["4", 24, "C1"], + 58: ["4", 26, "D1"], + 59: ["4", 25, "E2"], + 60: ["13", 19, "E2"], + }; + for (g in l) f(g, l[g][0], l[g][1], l[g][2]); + return i; + }), + ($AJB.general.Collide = function () { + "use strict"; + var a = $AJB.lib.util(), + b = { + check: function (b, c, d) { + var e = b.childs(), + f = e.length, + g = Math.ceil(2 * c.rad()); + for (d = d || 1; f--; ) if (c !== e[f].ball && a.getPointDistance(c.pos(), e[f].ball.pos()) <= g + Math.ceil(2 * d)) return !0; + return !1; + }, + }; + return b; + }), + ($AJB.general.Tween = function () { + "use strict"; + var a = { + simple: function (b, c, d, e) { + var f = (c - b) / e, + g = +new Date(); + return e > g - d ? ((a.isEnd = !1), b + (g - d) * f) : ((a.isEnd = !0), c); + }, + isEnd: !0, + }; + return a; + }), + ($AJB.general.BallQueue = function () { + "use strict"; + function a(a, f, g, h, i) { + function j() { + var b, + d, + e = k(a), + j = e.length; + for (b = 0; j > b; b++) (d = c(h, null, e[b], null, i)), d.pos(f, g + 3 * d.rad() * b), m.push(d); + } + function k(a) { + for (var b = a, c = []; b--; ) c.push(b + 1); + return c; + } + var l, + m = [], + n = [], + o = b(); + return ( + (i = i || 1), + (l = { + ballList: m, + add: function () {}, + remove: function (a) { + var b = m[a]; + return m.splice(a, 1), b; + }, + clear: function () { + (n = []), (m = []); + }, + popup: function () { + var a = m.shift(); + (a.st = +new Date()), (a.sv = a.pos().y), n.push(a); + }, + update: function () { + var a, + b, + c, + h = n.length, + i = m.length; + if (h) { + for (b = n[0].rad(), a = g - 3 * b; h--; ) n[h].pos(f, d.simple(n[h].sv, a, n[h].st, 50)), (c = n[n.length - 1].pos().y), n[h].pos().y === a && (o.fire(e, n[h]), n.splice(h, 1)); + for (; i--; ) m[i].pos(f, c + 3 * b * (i + 1)); + } + }, + render: function () { + for (var a = m.length, b = n.length; a--; ) m[a].render(); + for (; b--; ) n[b].render(); + }, + on: function (a, b) { + o.add(a, b); + }, + off: function (a, b) { + o.remove(a, b); + }, + destroy: function () { + for (var a = m.length; a--; ) m[a].destroy(); + o.destroy(); + }, + }), + j(), + l + ); + } + var b = $AJB.lib.CustEvent(), + c = $AJB.general.Ball(), + d = $AJB.general.Tween(), + e = "popup"; + return a; + }), + ($AJB.general.Ball = function () { + "use strict"; + function a(a, c, d, e, f) { + function g() { + var c = b.getTextWidth(a, 0, 0, d, e); + b.drawText(a, i - c / 2, j + e / 2, d, e, "black"); + } + var h, + i = 0, + j = 0; + return ( + (f = f || 1), + (c = (c || 12) * f), + (e = (e || 15) * f), + (h = { + pos: function (a, b) { + return "undefined" != typeof a && (i = a), "undefined" != typeof b && (j = b), { x: i, y: j }; + }, + scale: function (a) { + return "undefined" != typeof a && (f = a), f; + }, + rad: function (a) { + return "undefined" != typeof a && (c = a), c; + }, + render: function (e) { + b.drawCircle(a, i, j, c, "#ffffff"), "undefined" != typeof d ? g(d) : "undefined" != typeof e && g(e); + }, + destroy: function () { + h = null; + }, + }) + ); + } + var b = $AJB.lib.util(); + return a; + }), + ($AJB.lib.util = function () { + "use strict"; + return { + drawCircle: function (a, b, c, d, e) { + a.beginPath(), a.arc(b, c, d, 0, 2 * Math.PI, !1), (a.fillStyle = e || "red"), a.fill(); + }, + drawLine: function (a, b, c, d, e, f, g) { + (a.strokeStyle = f || "red"), (a.lineWidth = g || 1), a.beginPath(), a.moveTo(b, c), a.lineTo(d, e), a.stroke(); + }, + drawText: function (a, b, c, d, e, f) { + (a.font = e + "px Verdana"), (a.fillStyle = f || "red"), a.fillText(d, b, c); + }, + getTextWidth: function (a, b, c, d, e, f) { + return (a.font = e + "px Verdana"), (a.fillStyle = f || "red"), a.measureText(d).width; + }, + getPointDistance: function (a, b) { + return Math.floor(Math.sqrt(Math.floor(Math.pow(a.x - b.x, 2)) + Math.floor(Math.pow(a.y - b.y, 2)))); + }, + isMobile: /(mobile|iphone|ipod|ipad|ios|android|windows phone)/i.test(navigator.userAgent), + isAndroid: /android/i.test(navigator.userAgent), + isWeixin: /MicroMessenger/i.test(navigator.userAgent), + }; + }), + ($AJB.general.Core = function () { + "use strict"; + function a(a, d, e, f, g) { + function h() { + for (var a, b, c, d, e = l.length; e--; ) + (a = 3 * Math.cos(((l[e].angle + j.angle()) * Math.PI) / 180) * m * g + n), (b = 3 * Math.sin(((l[e].angle + j.angle()) * Math.PI) / 180) * m * g + o), (c = a / Math.abs(a)), (d = b / Math.abs(b)), l[e].ball.pos(a, b); + } + var i, + j, + k = 0, + l = [], + m = 50, + n = a.width / 2, + o = 4 * m * g; + return ( + (g = g || 1), + (i = c(d, m, e, f, g)), + i.pos(n, o), + (j = { + pos: i.pos, + scale: i.scale, + rad: i.rad, + angle: function (a) { + return "undefined" != typeof a && (k = a), k; + }, + addChild: function (a, b) { + l.push({ angle: a, ball: b }); + }, + clear: function () { + l = []; + }, + childs: function () { + return l; + }, + update: function () { + h(); + }, + render: function () { + var c, + e = l.length, + f = a.width, + h = a.height; + for (d.clearRect(0, 0, f, h), c = 0; e > c; c++) b.drawLine(d, n, o, l[c].ball.pos().x, l[c].ball.pos().y, "#ffffff", 1.5 * g), l[c].ball.render(); + i.render(); + }, + destroy: function () { + j.clear(), (i = null), (j = null); + }, + }) + ); + } + var b = $AJB.lib.util(), + c = $AJB.general.Ball(); + return a; + }), + ($AJB.lib.CustEvent = function () { + return function (a) { + function b(a) { + return Object.prototype.toString.call(a).slice(8, -1).toLowerCase(); + } + var c = {}; + return ( + !a && (a = {}), + { + add: function (a, d) { + if ("function" === b(d)) { + var e = c; + (a = a.toLowerCase()), !e[a] && (e[a] = []), e[a].push(d); + } + }, + remove: function (a, d) { + var e, + f = c[a]; + if (((a = a.toLowerCase()), "function" === b(d) && f && f.length)) for (e = f.length - 1; e >= 0; e--) f[e] === d && f.splice(e, 1); + }, + fire: function (b) { + var d, e, f, g; + if (((b = b.toLowerCase()), (d = c[b]), d && d.length)) for (e = Array.prototype.slice.call(arguments, 1), g = d.length, f = 0; g > f; f++) d[f].apply(a, e); + }, + destroy: function () { + var a, + b = c.length - 1; + for (a = b; a >= 0; a--) evts.splice(a, 1); + }, + } + ); + }; + }), + ($AJB.general.Scene = function () { + "use strict"; + function a(a, b, l, m) { + function n(a) { + var g = a.childs, + h = g.length; + for (y = a.round(), w && w.destroy(), w = c(b, l, B, 50, m); h--; ) w.addChild(g[h], d(l, null, "", null, m)); + x && x.destroy(), + (x = e(a.queueCount, b.width / 2, w.pos().y + 4 * w.rad(), l, m)), + x.on("popup", function (a) { + w.addChild(90 - w.angle(), a), f.check(w, a, m) ? ((z = a), s()) : !x.ballList.length && r(); + }); + } + function o() { + y && (w.angle(y()), w.update(), x.update()); + } + function p() { + var b, + c, + d, + e, + f = w.childs(), + g = f.length, + h = 25; + for (a.style.backgroundColor = u.bgColor; g--; ) (b = f[g].angle + w.angle()), (c = Math.cos((b * Math.PI) / 180) * h), (d = Math.sin((b * Math.PI) / 180) * h), (e = f[g].ball.pos()), f[g].ball.pos(e.x + c, e.y + d); + } + function q(a) { + var b, + c = [25, 15, 20, 15], + d = c.length, + e = 200, + f = e / d; + for (w.update(), b = 1; d >= b; b++) a > f * b && z.rad(c[b - 1] * m); + } + function r() { + "pass" !== A && ((a.style.backgroundColor = "#1CB01A"), (A = "pass"), (v = +new Date())); + } + function s() { + "fail" !== l && ((a.style.backgroundColor = "#B8111C"), (A = "fail"), (v = +new Date())); + } + function t() { + var a = "to be continued...", + c = h.getTextWidth(l, 0, 0, a, 30 * m); + h.drawText(l, (b.width - c) / 2, 200 * m, a, 30 * m, "yellow"); + } + var u, + v, + w, + x, + y, + z, + A = "run", + B = 1; + return (u = { + enabled: !1, + run: function (b) { + var c = g[b]; + (B = b), c ? ((u.enabled = !0), n(c), (a.style.backgroundColor = "#000"), (A = "run")) : t(); + }, + shot: function () { + x && x.ballList.length && x.popup(); + }, + update: function () { + var a; + u.enabled && ("run" === A ? o() : "pass" === A ? (p(), +new Date() - v > 1e3 && ((A = ""), k.fire(i))) : "fail" === A && ((a = +new Date() - v), q(a), a > 1e3 && ((A = ""), k.fire(j)))); + }, + render: function () { + u.enabled && (w.render(), x.render()); + }, + on: function (a, b) { + k.add(a, b); + }, + off: function (a, b) { + k.remove(a, b); + }, + }); + } + var b = $AJB.lib.CustEvent(), + c = $AJB.general.Core(), + d = $AJB.general.Ball(), + e = $AJB.general.BallQueue(), + f = $AJB.general.Collide(), + g = $AJB.general.Levels(), + h = $AJB.lib.util(), + i = "passed", + j = "failed", + k = b(); + return a; + }), + ($AJB.general.Game = function () { + "use strict"; + function a() { + var a = document.body.scrollWidth || document.documentElement.scrollWidth, + b = document.body.scrollHeight || document.documentElement.scrollHeight; + (r.width = a), (r.height = b), (i = l(x, a, b)), (s.style.backgroundColor = i.color), (s.style.width = a + "px"), (s.style.height = b + "px"), (j = b / 560); + } + function b() { + u.href = B.replace(/#\{level\}/, D); + } + function c() { + p.isWeixin + ? n(u, "mousedown", function () { + w.style.display = ""; + }) + : p.isMobile && b(); + } + function d(a) { + (D = +a), o.setValue(z, D), (document.title = A.replace(/\#\{level\}/, D)), C.level(D), !p.isWeixin && p.isMobile && b(); + } + function e() { + n(document.body, "mousedown", function (a) { + var b; + if (a && a.changedTouches) for (b = a.changedTouches.length; b--; ) h.shot(); + else h.shot(); + "1" != a.target.getAttribute("data-capture") && q(a); + }), + n(w, "mousedown", function () { + w.style.display = "none"; + }), + n(v, "mousedown", function () { + E || + ((E = !0), + (t.style.display = ""), + d(1), + setTimeout(function () { + (t.style.display = "none"), (E = !1); + }, 1e3)); + }), + h.on("passed", function () { + i.switchStage(0, function () { + (h.enabled = !1), d(D + 1), (r.style.display = "none"), C.show(); + }); + }), + h.on("failed", function () { + i.switchStage(0, function () { + (h.enabled = !1), (r.style.display = "none"), C.level(D), C.show(); + }); + }), + C.on("start", function () { + (r.style.display = ""), + C.hide(), + i.switchStage(1, function () { + h.run(D); + }); + }); + } + function f() { + window.clearTimeout(F), h.update(), h.render(), i.update(), i.render(), (F = window.setTimeout(f, 1e3 / y)); + } + function g() { + a(), (h = k(document.body, r, x, j)), e(), c(), C.level(D), C.show(), f(); + } + var h, + i, + j, + k = $AJB.general.Scene(), + l = $AJB.general.Switcher(), + m = $AJB.general.BeginStage(), + n = $AJB.lib.addEvent(), + o = $AJB.lib.Storage(), + p = $AJB.lib.util(), + q = $AJB.lib.stopEvent(), + r = document.getElementById("stage"), + s = document.getElementById("begin"), + t = document.getElementById("tip"), + u = document.getElementById("btnFW"), + v = document.getElementById("btnReset"), + w = document.getElementById("wxArrow"), + x = r.getContext("2d"), + y = 60, + z = "core-ball-level", + A = "Core Ball(酷啵)-练手活的HTML5游戏,我已玩到第#{level}关了,你也来试试吧!", + B = "sinaweibo://share?content=Core Ball(酷啵) - 练手活的HTML5小游戏,我已玩到第#{level}关了,你也来试试吧! http://coreball.sinaapp.com", + C = m(s), + D = +o.getValue(z) || 1, + E = !1, + F = 0, + G = { start: g }; + return G; + }), + ($AJB.page.index = function () { + "use strict"; + var a = $AJB.general.Game(); + a.start(); + }), + $AJB.page.index(); \ No newline at end of file diff --git a/games/mario-game/all.js b/games/mario-game/all.js index 6850c37e..f5505ae9 100644 --- a/games/mario-game/all.js +++ b/games/mario-game/all.js @@ -1 +1,6255 @@ -function applyNewJs(){document.body.addEventListener("keydown",(function(e){32!==e.keyCode&&38!==e.keyCode&&40!==e.keyCode||e.target!==document.body||e.preventDefault()}),!1),document.getElementById("paused")&&document.getElementById("paused").remove(),document.getElementById("mobile-controls")&&document.getElementById("mobile-controls").remove();var e=createElement("div",{id:"paused"}),t=createElement("span");t.innerText="CLICK TO UNPAUSE",e.appendChild(t),body.appendChild(e);var n=createElement("div",{id:"mobile-controls"}),x=createElement("div",{id:"move-left",className:"move"}),r=createElement("div",{id:"move-top",className:"move"}),i=createElement("div",{id:"move-right",className:"move"}),a=createElement("div",{id:"move-bottom",className:"move"}),o=createElement("div",{id:"move-fire",className:"move"}),l=createElement("span"),s=createElement("span"),d=createElement("span"),u=createElement("span"),p=createElement("span");x.appendChild(l),r.appendChild(s),i.appendChild(d),a.appendChild(u),o.appendChild(p),n.appendChild(x),n.appendChild(r),n.appendChild(i),n.appendChild(a),n.appendChild(o),body.appendChild(n);var c=document.getElementById("move-right"),m=document.getElementById("move-left"),h=document.getElementById("move-top"),f=document.getElementById("move-bottom"),g=document.getElementById("move-fire");c.addEventListener("touchstart",(function(e){var t=new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,keyCode:68});document.body.dispatchEvent(t)})),c.addEventListener("touchend",(function(e){var t=new KeyboardEvent("keyup",{bubbles:!0,cancelable:!0,keyCode:68});document.body.dispatchEvent(t)})),m.addEventListener("touchstart",(function(e){var t=new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,keyCode:65});document.body.dispatchEvent(t)})),m.addEventListener("touchend",(function(e){var t=new KeyboardEvent("keyup",{bubbles:!0,cancelable:!0,keyCode:65});document.body.dispatchEvent(t)})),h.addEventListener("touchstart",(function(e){var t=new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,keyCode:87});document.body.dispatchEvent(t)})),h.addEventListener("touchend",(function(e){var t=new KeyboardEvent("keyup",{bubbles:!0,cancelable:!0,keyCode:87});document.body.dispatchEvent(t)})),f.addEventListener("touchstart",(function(e){var t=new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,keyCode:83});document.body.dispatchEvent(t)})),f.addEventListener("touchend",(function(e){var t=new KeyboardEvent("keyup",{bubbles:!0,cancelable:!0,keyCode:83});document.body.dispatchEvent(t)})),g.addEventListener("touchstart",(function(e){var t=new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,keyCode:17});document.body.dispatchEvent(t)})),g.addEventListener("touchend",(function(e){var t=new KeyboardEvent("keyup",{bubbles:!0,cancelable:!0,keyCode:17});document.body.dispatchEvent(t)})),document.getElementById("data_display").style="width:100%;font-size:13px"}function resetData(){var e;(e=document.getElementById("data_display"))&&body.removeChild(e),window.data||(window.data=new Data)}function Data(){this.playerpower=1,this.traveled=this.traveledold=0,this.scorelevs=[100,200,400,500,800,1e3,2e3,4e3,5e3,8e3],this.score=new DataObject(0,6,"SCORE"),this.time=new DataObject(350,3,"TIME"),this.world=new DataObject(0,0,"WORLD"),this.coins=new DataObject(0,0,"COINS"),this.lives=new DataObject(3,1,"LIVES"),this.time.dir=-1,this.scoreold=0}function DataObject(e,t,n){this.amount=e,this.length=t,this.name=n,this.element=createElement("td",{className:"indisplay"})}function setDataDisplay(){var e=createElement("table",{id:"data_display",className:"display",style:{width:gamescreen.right+14+"px"}}),t=["score","coins","world","time","lives"];for(var n in body.appendChild(e),data.display=e,t)e.appendChild(data[t[n]].element),updateDataElement(data[t[n]]);body.appendChild(data.display),is_mobile&&applyNewJs()}function clearDataDisplay(){body.removeChild(data_display)}function toggleLuigi(){window.luigi=!window.luigi,localStorage.luigi=window.luigi,window.player.title=window.luigi?"Luigi":"Mario",setThingSprite(window.player)}function startDataTime(){TimeHandler.addEventInterval(updateDataTime,25,1/0,data.time)}function updateDataTime(e){1!=e.dir&&(100==e.amount?playCurrentThemeHurry():e.amount<=0&&killPlayer(player,!0)),notime||(map.time=e.amount+=e.dir,updateDataElement(e))}function updateDataElement(e){var t=e.name+"
"+("Infinity"==e.amount?"Inf":e.amount);e.element.innerHTML=t,e.element.style.width=""}function score(e,t,n){if(!(t<=0)){if(1==arguments.length)return score(player,e);if(localStorage.highscore=max(localStorage.highscore,data.score.amount+=t),n){var x=addText(t,e.left,e.top);x.yvel=-unitsized4,TimeHandler.addEvent(killScore,49,x)}for(;data.score>1e4;)gainLife(),data.score.amount=data.score.amount%1e4;updateDataElement(data.score)}}function killScore(e){body.contains(e)&&body.removeChild(e),killNormal(e),deleteThing(e,texts,texts.indexOf(e))}function findScore(e){return e=0;--e)x[e],n=r[x[e]]=createElement("div",settings),t.appendChild(n);proliferate(r.left,{id:"left",className:"scroller flipped off",dx:-7}),proliferate(r.right,{id:"right",style:{right:"21px"},dx:7}),editor.scrollers=r,body.appendChild(t)}function editorFollowerHide(){var e=editor.follower;e.hiddenOld=e.hidden,e.hidden=!0}function editorFollowerShow(){var e=editor.follower;e.hidden=e.hiddenOld}function editorScrollingStart(e){var t=e.target.dx;editorPreventClicks(),editor.scrolling=TimeHandler.addEventInterval(editorScrolling,1,1/0,-t),classRemove(editor.scrollers.left,"off")}function editorScrollingStop(){TimeHandler.addEvent(editorClickOff,3),TimeHandler.clearEvent(editor.scrolling)}function editorScrolling(e){if(scrollEditor(e),editor.xloc>=0)return scrollEditor(-editor.xloc),editorScrollingStop(),classAdd(editor.scrollers.left,"off"),!0}function createEditorGuideLines(){var e,t,n,x={floor:0,ceiling:ceillev,jumplev1:jumplev1,jumplev2:jumplev2},r=16*unitsize+"px",i=map.floor;for(e in window.maplines=t=document.createElement("div"),t.style.marginLeft=r,t.id="maplines",x)n=createElement("div",{innerText:e,className:"mapline",id:e+"_line",style:{marginTop:(i-x[e])*unitsize+"px",marginLeft:"-"+r,paddingLeft:r}}),t.appendChild(n);body.appendChild(t)}function setEditorControls(e){e=e||["load","save","reset","undo"];var t,n,x,r=document.getElementById("controls"),i=createElement("div",{id:"controls"}),a=editor.controls={container:i};for(x in r&&(r.innerHTML=""),e)t=e[x],n=createElement("div",{id:t,alt:t,className:"control",style:{backgroundImage:"url(Theme/"+t+".gif)"},innerHTML:"
"+t+"
",onclick:editorClickControl}),i.appendChild(n),a[t]=n;sidebar.appendChild(i)}function setEditorTriggers(){var e,t=[maplines,canvas];for(e=t.length-1;e>=0;--e)t[e].onclick=editorMouseClick;document.onmousemove=editorFollowerFollowsCursor}function editorMouseClick(e){if(window.editing&&!editor.clicking){if(editorPreventClicks(),editor.erasing)return editorPlaceEraser(e);if(!editor.in_settings&&editor.canplace){var t=editor.section_name,n=(window[t],editor.current_selected,editor.follower);editor.placed.push(n),editor.follower=!1,editorSetCurrentThingFromName(null,!0),paused&&refillCanvas(),n.was_follower=!0,delete n.onclick,editor.playing&&(thingRetrieveVelocity(n),proliferate(n,n.reference.attributes))}}}function editorSelectSection(){var e=(this||editor.sectionselect).value.toLowerCase();(editor.in_settings="settings"==e)?(editorSetSection(e,!0),editorSetSectionSettings()):editorSetSection(e)}function editorSetSection(e,t){var n,x,r=editor.section=editor[e],i=editor.bottombar,a=0;if(editor.section_name=e,i.innerHTML="",!t)for(e in r)++a,x=editorAddBottomPreview(i,e,r[e]),n||(n=x);a?(i.style.visibility="visible",editorSetCurrentThingFromCanvas(n)):i.style.visibility="hidden"}function editorAddBottomPreview(e,t,n){var x,r=n.width,i=n.height,a=window[t],o=a?ThingCreate(a,n.previewargs):new Thing(Sprite,t),l=createElement("div",{width:r*unitsize+"px",height:i*unitsize+"px",name:t,className:"holder "+t,onclick:editorSetCurrentThing}),s=proliferate(getCanvas(r*unitsizet2,i*unitsizet2),{name:t,reference:n,style:{marginLeft:-roundDigit(r/2,scale)+"px"},onclick:editorSetCurrentThing}),d=(e.things,r*unitsizet2),u=i*unitsizet2,p=s.getContext("2d");return canvasDisableSmoothing(s),editor.bottombar.things[t]=s.thing=o,addClass(o,"editor"),x=o.canvas,o.canvases&&(x=o.canvases[n.sprite_source||"middle"].canvas),n.previewsize?(p.fillStyle=p.createPattern(x,"repeat"),p.fillRect(0,0,d,u)):p.drawImage(x,0,0,d,u),l.appendChild(l.canvas=s),e.appendChild(l),e[t]=l,s}function editorSetSectionSettings(){var e,t=editor.settings,n="";n+="

Settings

",n+=addArgumentOption("night",Boolean,t.night),n+=addArgumentOption("setting",["Overworld","Underworld","Underwater","Castle","Sky"],t.setting),n+=addArgumentOption("alt",Boolean,t.alt),n+="
",options.innerHTML=n,ensureOptionsAboveZero(editorUpdateSettingsOption),e=editor.sidebar.getElementsByTagName("table")[0].rows,editor.settings.night_elem=e[0].cells[1].firstChild,editor.settings.setting_elem=e[1].cells[1].firstChild,editor.settings.alt_elem=e[2].cells[1].firstChild,editor.follower&&killNormal(editor.follower),editor.follower=!1}function editorUpdateSettingsOption(e){var t=editor.settings,n=t.night="True"==t.night_elem.value,x=t.alt="True"==t.alt_elem.value,r=(t.setting=t.setting_elem.value)+(n?" Night":"")+(x?" "+x:"");setAreaSetting(area,r,r!=area.setting)}function editorSetCurrentThing(e,t){var n=e.target,x=editor.current_thing_name=n.name,r=editor.current_thing=editor.section[x];t||updateCurrentArguments(x,r),editorUpdateFollower()}function editorSetCurrentThingFromCanvas(e,t){editorSetCurrentThing({target:e},t)}function editorSetCurrentThingFromName(e,t){editorSetCurrentThing({target:{name:e||editor.current_thing_name}},t)}function updateCurrentArguments(e,t){t=t||{};var n,x=editor.options,r="",i=t.mydefaults||{},a=t.arguments||{};for(n in r+="

"+e+"

",a.width||(r+=addStaticOption("width",t.width)),a.height||(r+=addStaticOption("height",t.height)),a)r+=addArgumentOption(n.replace("_","-"),a[n],null,i);r+="
",x.innerHTML=r,ensureOptionsAboveZero()}function addStaticOption(e,t){return t==1/0&&(t="Inf."),""+e+": "+t+""}function addArgumentOption(e,t,n,x){x=x||{};var r=""+e+": ";switch(t){case 1/0:r+="Inf";break;case Boolean:r+="";break;case Number:r+="";break;default:switch(typeof t){case"number":r+=""+t+"x";break;case"string":r+="";break;case"object":for(i in r+=""}}return r+""}function ensureOptionsAboveZero(e){e=e||editorUpdateFollower;var t,n=editor.options.getElementsByTagName("input");for(i=n.length-1;i>=0;--i)(t=n[i]).onchange=t.onclick=t.onkeypress=editorInputEnsureAboveZero;for(n=options.getElementsByTagName("select"),i=n.length-1;i>=0;--i)(t=n[i]).onchange=t.onclick=t.onkeypress=editorUpdateFollower}function editorInputEnsureAboveZero(e){editorUpdateFollower(e)}function editorUpdateFollower(e){if(editor.in_settings)return editorUpdateSettingsOption(e);var t,n=editor.current_thing;(t=editor.follower)&&(t.id="",killNormal(t)),t=n.createfunc?n.createfunc(editor.current_thing,editorGetArguments()):ThingCreate(window[editor.current_thing_name],n.followerUpdate(editor.current_thing,editorGetArguments())),editor.follower=t,proliferate(t,{id:"follower",libtype:editor.section_name,lookleft:!0,nocollide:!0,reference:n,onclick:editorMouseClick},!0),addThing(t),addClass(t,"editor"),thingRetrieveVelocity(t),thingStoreVelocity(t),editorSetFollowerPosition(t),editor.erasing&&(t.hidden=!0)}function editorGetArguments(){var e=arrayMake(editor.options.getElementsByTagName("input")),t=arrayMake(editor.options.getElementsByTagName("select")),n=e.concat(t);return pairs=generateInputNameValuePairs(n),pairs}function generateInputNameValuePairs(e){var t,n={};for(t in e)n[e[t].name]=e[t].value;return n}function editorFollowerFollowsCursor(e){var t=editor.follower;t&&editorSetFollowerPosition(t,roundFollowerDigit(e.x)+(editor.current_thing.widthoff-editor.offset.x)*unitsize,roundFollowerDigit(e.y)+editor.current_thing.heightoff*unitsize)}function editorSetFollowerPosition(e,t,n){t=t||editor.xloc_old||0,n=n||editor.yloc_old||0,setLeft(e,t),setTop(e,n),editor.xloc_old=t,editor.yloc_old=n}function roundFollowerDigit(e){var t="solids"==editor.section_name?8:4;return unitsize*t*round(e/(unitsize*t))}function roundFollowerPosition(e,t){editorSetFollowerPosition(e,roundFollowerDigit(e.left),roundFollowerDigit(e.top))}function editorFollowerUpdateStandard(e,t){"True"==t.hidden&&TimeHandler.addEvent((function(){editor.follower.hidden=!0}));var n=[];return t.width&&n.push(Number(t.width)),t.height&&n.push(Number(t.height)),n}function editorClickControl(e){editorPreventClicks();var t=e.target;t.id||(t=t.parentNode),window["editorControl"+capitalizeFirst(t.id)](),e.preventDefault()}function editorPreventClicks(){editor.clicking=!0,TimeHandler.addEvent(editorClickOff,3)}function editorClickOff(){window.editor&&(editor.clicking=!1)}function editorControlUndo(){var e=editor.placed.pop();e&&!e.player&&killNormal(e)}function editorControlReset(){var e=editor.placed.length,t=roundDigit(35/e,21);TimeHandler.addEventInterval(editorControlUndo,t,e)}function editorControlSave(){var e=editor.rawfunc=editorGetRawFunc();editorCreateInputWindow("Hit Submit below to start playing!

This map will be resumed automatically the next time you use the editor on this computer.
Alternately, you may copy this text to work on again later using Load (the button next to Save).

",e,editorSubmitGameFuncPlay);return e}function editorControlCancel(){loadEditor()}function editorGetRawFunc(){var e,t=editor.placed,n=t.length-1,x=new Array(e),r=" var map = arguments[0] || new Map();\n";for(r+="\n map.time = "+data.time.amount+";",r+="\n map.locs = [ new Location(0, true) ];",r+="\n map.areas = [",r+="\n new Area('"+area.setting+"', function() {",r+="\n setLocationGeneration(0);\n\n",e=n;e>=0;--e)x[e]=new editorPreStatement(t[e]);for(x.sort(prethingsorter),e=n;e>=0;--e)x[e]=" "+x[e].statement;return r+=(x=removeDuplicates(x)).join("\n"),r+="\n })",r+="\n ];",r+="\n return map;"}function editorPreStatement(e){this.placer=e,this.xloc=(gamescreen.left+e.left)/unitsize,this.yloc=map.floor-e.top/unitsize,this.statement=editorGetStatement(this,e,e.reference,e.args)}function editorGetStatement(e,t,n,x){if(!n&&!(n=editor[t.libtype][t.title]))return"";var r,i,a=(n.prefunc||pushPreThing).name,o=x.length;if(n.prefunc_custom)a+="("+n.prefunc_custom(e,t,n,x)+");";else{r=[],n.prefunc_solo||r.push(t.title),r.push(String(e.xloc)),r.push(String(e.yloc));for(var l=1;l=0;--n)if(!(t=r[n]).player&&t!=editor.follower&&objectsTouch(e,t)){killNormal(t),x.splice(x.indexOf(t),1);break}killNormal(e)}}function editorControlLoad(){editorCreateInputWindow("Paste your work in progress here, and click Submit to continue it.","",editorSubmitLoad)}function addThingsToPlaced(){var e=editor.placed;for(editor.placed=(editor.placed||[]).concat(characters).concat(solids).concat(scenery),e.sort(prethingsorter),e.splice(e.indexOf(player),1),i=e.length-1;i>=0;--i)placer=e[i],placer.reference=editor[placer.libtype][placer.title]}function editorCreateInputWindow(e,t,n){var x=gamescreen.unitwidth,r=editor.input_window=createElement("div",{id:"input_window",innerHTML:e||"",style:{width:x+"px"}}),i=r.input=editor.window_input=createElement("textarea",{id:"window_input",value:t||"",style:{width:x-49+"px"}}),a=r.submit=createElement("div",{id:"window_submit",className:"window_button",innerText:"Submit",onclick:n}),o=r.cancel=createElement("div",{id:"window_cancel",className:"window_button",innerText:"Cancel",onclick:editorCloseInputWindow});return r.appendChild(i),r.appendChild(a),r.appendChild(o),body.appendChild(r),killNormal(editor.follower=!1),editor.follower=!1,r}function editorCloseInputWindow(e){editorPreventClicks(),removeChildSafe(window.input_window,body),e||(editorSetCurrentThingFromName(),window.editing=!0),editorUpdateFollower()}function editorClose(e){if(window.editor){classRemove(body,"editor"),classRemove(body,"erasing"),killNormal(editor.follower),editor.follower=!1,delete window.editor;var t,n=["maplines","sidebar","bottombar","scrollers"];for(t in n)removeChildSafe(document.getElementById(n[t]),body);document.onmousemove=null,window.editing=!1,e&&window.map&&(map.shifting=!1)}}function scrollEditor(e,t){window.editor&&(editor.follower&&(e=e||0,t=t||0,shiftAll(scenery,e,t),shiftAll(solids,e,t),shiftAll(characters,e,t),editor.xloc+=e,editor.yloc+=t))}function editorStoreLocally(){localStorage.editorLastFunc=editor.rawfunc}function setEditorLocalRetrieval(){localStorage.editorLastFunc&&(editor.rawfunc=round,editorSubmitGameFunc())}function editorSubmitGameFunc(){if(!window.editor||!editor.rawfunc)return loadEditor();editor.rawfunc;var e=window.custommapfunc=new Function(editor.rawfunc);mapfuncs.Custom={Map:e},window.canedit=!0,setMap(["Custom","Map"]),window.canedit=editor.playing=!1,entryBlank(player),addThingsToPlaced(),editorStoreLocally(),editorCloseInputWindow()}function editorSubmitGameFuncPlay(){editorPreventClicks(),editorSubmitGameFunc(),editorStartPlaying()}function editorSubmitLoad(){if(window.editor&&editor.window_input){editorPreventClicks();var e=editor.window_input.value;loadEditor(),editor.rawfunc=e,editorSubmitGameFunc()}}function editorStartPlaying(){editorPreventClicks(),editor.playing=!0,placePlayer(),entryPlain(player),nokeys=!1;var e,t,n,x=editor.placed;for(n in x)thingRetrieveVelocity(e=x[n]),(t=editor[e.libtype][e.title])&&proliferate(e,t.onadds);setEditorControls(["Cancel"])}function setEditorLocalRetrieval(){var e=localStorage.editorLastFunc;if(e){editor.rawfunc=e,editorSubmitGameFunc(),editorStoreLocally();var t,n=editor.placed;for(t in n)thingStoreVelocity(n[t])}}function resetSeed(){window.seeder=1777771/(window.seed=round(1e7*random())),window.seedlast=.007,window.getSeed=function(){return seedlast="0."+String(seeder/seedlast).substring(4).replace(".","")}}function pushRandomSectionOverworld(e){var t=max(randTrue(117),1),n=0;if(++map.num_random_sections,pushPreFuncCollider(e,zoneDisableCheeps),map.had_floor=!1,map.needs_floor||t>=14||t<3||randTrue()?(pushPreFloor(e,0,t),map.had_floor=!0):pushPreThing(Stone,e,n=0,t),window.randcount_powerup=3,t<=3&&map.had_floor){if(randTrue())switch(randTrue(3)){case 0:if(t>3){pushPreScenery("HillSmall",e,0);break}case 1:if(t>2){pushPreScenery("Bush1",e+8*max(0,randTrue(t-2)),n);break}case 2:pushPreScenery("PlantLarge",e+8*max(0,randTrue(t-2)),n);break;case 3:pushPreScenery("PlantSmall",e+8*max(0,randTrue(t-2)),n)}}else for(var x=t-2,r=0,i=0,a=randTrue(2);a=7&&(pushPreScenery("CastleWall",e+8*(x+randTrue()),0,n-randTrue(2)),randTrue()&&pushPreThing(Brick,e+8*(x+randTrue(n)),jumplev1,randTrue()?Mushroom:getRandomBrickItem(!1,randTrue())));for(s=0;s=3?endCastleOutsideRandom(e+8*(r+u+1),!0):pushRandomSectionPreCastle(e+8*(r+u),t+1),spawnMap()}function endCastleOutsideRandom(e){var t,n;switch(randTrue()){case 0:for(n=1+randTrue();n<9;n+=2)pushPreThing(Stone,e+8*n,8*(n-randTrue()),1,1+randTrue());pushPreThing(Stone,e+72,64,2),t=12;break;case 1:for(pushPreFloor(e,0,11),n=1,hadlast=!1;n<9;++n)!hadlast||randTrue(2)||8==n?(pushPreThing(Stone,e+8*n,8*n,1,n),hadlast=!0):(hadlast=!1,pushPrePipe(e+8*n,0,8*max(n-randTrue(2),2),!0),++n);pushPreThing(Stone,e+72,72,2,9),t=7}pushPreFloor(e+88,0,round(gamescreen.width/8)),endCastleOutside(e+8*(9+t)+4,0,!0,round(gamescreen.width/8))}function startRandomSectionCastle(e){e+=32;var t=randTrue(7)+3,n=randTrue(4)+3;randTrue(4);pushPreFloor(e,24,t),pushPreThing(Stone,e,88,t,3),fillPreWater(e+8*t,0,2*n),pushPreThing(Podoboo,e+8*t+max(0,8*randTrue(n-3)),-32),pushRandomSectionCastle(e+8*(t+n),0),spawnMap()}function pushRandomSectionCastle(e,t){var n,x;switch(randTrue(3)){case 0:x=64*(n=1+randTrue(2))-8;for(var r=0;r3||randTrue())if(randTrue(3))pushRandomSmallEnemy(o+8*(randTrue()+1),8*n);else if(randTrue(2))for(a=1;a7&&randTrue()?(x=map.randtype,map.sincechange=0):x=pushRandomSectionTrees,pushPreThing(GenerationStarter,e+8*(t+randSign()),ceilmax+20,x),spawnMap(),map.treelev=n}function pushRandomSmallEnemy(e,t,n){switch(randTrue(7)){case 1:case 2:case 3:pushPreThing(Koopa,e,t+12,!0,n);break;case 7:pushPreThing(Beetle,e,t+8.5);break;default:pushPreThing(Goomba,e,t+8)}}function pushRandomSectionUnderworld(e){var t,n,x=max(randTrue(117),1),r=14,i=x-x%r;floor(x/r);if(pushPreFloor(e,0,x),window.randcount_powerup=3,x3&&o<64&&pushPreThing(Coral,l+8*(a-1),i,3),a>=3&&(n+=a-3)}}map.countCheep>1&&(pushPreThing(CheepCheep,e+8*n,randTrue(80)+8,randTrue()),map.countCheep=0),map.countBlooper>7&&(pushPreThing(Blooper,e+8*n,randTrue(80)+8),map.countBlooper=0),randTrue(7)&&++map.countCheep,randTrue(3)&&++map.countBlooper}if(++map.sincechange<3){var d=prepareNextGeneratorStandard(e,t,pushRandomSectionUnderwater,!1,!0);pushPreScenery("Water",e+8*t,ceilmax-21,8*(d+1)/3,1),pushPreThing(WaterBlock,e+8*t,ceilmax,8*(d+1))}else endRandomSectionUnderwater(e+8*t)}function endRandomSectionUnderwater(e){pushPreFloor(e,0,19),pushPreScenery("Water",e,ceilmax-21,28,1),pushPreThing(WaterBlock,e,ceilmax,157.5),pushPreThing(Stone,e,8,5,1),pushPreThing(Stone,e+8,16,4,1),pushPreThing(Stone,e+16,24,3,1),pushPreThing(Stone,e+24,32,2,1),pushPreThing(Stone,e+24,88,2,4),pushPreThing(PipeSide,e+32,48,["Random",randTrue()?"Overworld":"Underworld","Up"]),pushPreThing(Stone,e+40,88,14,11),map.scrollblockerok=!0,pushPreThing(ScrollBlocker,e+56,80,!0),spawnMap()}function startRandomSectionSky(e){pushPreThing(Stone,e,0,78),pushPreThing(Platform,e+88,24,6,[collideTransport]),pushRandomSectionSky(e+80,1),spawnMap()}function pushRandomSectionSky(e,t){if(t++>7)return fillPreThing(Coin,e+8,8,3,1,8),spawnMap();var n=0;if(t%2)fillPreThing(Coin,e+1,71,3,1,8),n=32;else switch(randTrue(t)){case 3:pushPreThing(Stone,e+8,48,1,2),fillPreThing(Coin,e+25,63,7,1,8),pushPreThing(Stone,e+88,48,1,2),n=104;break;case 4:case 5:case 6:pushPreThing(Stone,e+8,56,2);for(var x=0;x<=7;x+=2)pushPreThing(Stone,e+8*(x+5),56),fillPreThing(Coin,e+8*(x+5)+1,63,2,1,8);n=104;break;default:fillPreThing(Coin,e+1,55+8*randTrue(),16,1,8),n=128}pushPreThing(GenerationStarter,e+n,ceilmax+20,pushRandomSectionSky,t),spawnMap()}function prepareNextGeneratorStandard(e,t,n,x,r){var i=0,a=0;if(r)i=1;else switch(randTrue(7)){case 0:t>7&&map.underwater&&!randTrue(7)?(i=randTrue(3)+7,pushPreThing(Springboard,e+8*(t-1),14.5)):a=!0;break;case 1:var o=max(1,randTrue(7));i=o+randTrue(3),pushPreFloor(e+8*t,0,o);for(var l=1;l<=o;++l)pushPreThing(Stone,e+8*(t+l-1),8*l,1,l);if(randTrue()){pushPreFloor(e+8*(t+i+(o=max(1,randTrue(o)))-1),0,o);for(var s=0;s=3+randTrue(7)&&(n=pushRandomSectionPreCastle),!r&&++map.sincechange>3&&(n=getRandomNextSection(),map.sincechange=0,pushPreFuncCollider(e,zoneDisableCheeps)),pushPreThing(GenerationStarter,e+8*(t+i),ceilmax+20,n),spawnMap(),i}function getRandomNextSection(){switch(randTrue()){case 0:return map.treeheight=0,pushRandomSectionTrees;case 1:return startRandomSectionBridge}}function pushRandomChunkEnemy(e,t,n){pushRandomEnemy(e,0,t,n),randTrue(2)&&(pushRandomSolidRow(e+8*t,jumplev1,randTrue(2)+1),randTrue()&&pushRandomEnemy(e,jumplev1,t+1,!0),randTrue()&&(pushRandomSolidRow(e+8*t,jumplev2,randTrue(2)+1),randTrue()&&pushRandomEnemy(e,jumplev2,t+1,!0)))}function pushRandomEnemy(e,t,n,x){switch(randTrue(14)){case 0:case 1:fillPreThing(Beetle,e+8*n,t+8.5,randTrue(2),1,12);break;case 3:if(!x){switch(randTrue(4)){case 0:pushPreThing(HammerBro,e+8*n,t+12),randTrue()&&pushPreThing(HammerBro,e+8*n+16,t+40);break;case 1:if("Underworld"!=map.randname){pushPreThing(Lakitu,e+8*n,t+80,!0);break}case 2:pushPreThing(Blooper,e+8*n,t+40)}break}break;default:if(!randTrue(3))return;switch(randTrue(3)){case 1:fillPreThing(Koopa,e+8*n,t+12,randTrue(2),1,12,0,randTrue()||map.onlysmartkoopas,randTrue());break;default:fillPreThing(Goomba,e+8*n,t+8,randTrue(2),1,12)}}}function addPipeRandom(e,t,n){var x;x=!(n<=24||randTrue(2))&&getRandomTransport(),pushPrePipe(e,t,n,randTrue(7),x)}function getRandomTransport(){var e,t=[["Overworld","Up"],["Underworld","Down"],["Underwater","Up"]];return t[e=randTrue(t.length-1)][0]==map.randname&&(e=(e+randTrue(t.length-2)+1)%t.length),["Random",t[e][0],t[e][1]]}function getAfterSkyTransport(){switch(randTrue(3)){case 0:return["Random","Underworld","Down"];default:return["Random","Overworld"+(body.className.indexOf(!0)?" Night":""),"Down"]}}function pushRandomObstacle(e,t){var n=randTrue(3);switch(n>1&&(map.hadPipe=!1),n){case 0:case 1:if(t>1){addPipeRandom(e+8*t,0,8*(randTrue(2+(1==map.hadObstacle&&0==map.hadPipe&&t>7))+2)),map.hadObstacle=map.hadPipe=!0;break}case 2:for(var x=0;x<2;++x)randTrue()||t<1||pushPreThing(Stone,e+8*(t+x),8*(r=randTrue(2)+2),1,r);break;default:x=randTrue(2);switch(randTrue(7)){case 0:var r;if(pushPreThing(Cannon,e+8*(t+x),8*(r=randTrue(2)+1),r),1==r&&randTrue(2)&&2!=x){var i=randTrue()+2;pushPreThing(Cannon,e+8*(t+x),8*r+8*i,i)}map.hadObstacle=!0;break;case 1:if(!map.underwater){randTrue()&&(!map.underwater&&randTrue(2)&&pushPreThing(Brick,e+8*t,jumplev1),pushPreThing(Block,e+8*(t+1),jumplev1,[Mushroom,1],!0),!map.underwater&&randTrue(2)&&pushPreThing(Brick,e+8*(t+2),jumplev1),map.hadObstacle=!0);break}case 2:if(!map.underwater){var a=randTrue();a||pushPreThing(Brick,e+8*t,jumplev1,getRandomBrickItem()),pushPreThing(Stone,e+8*(t+a),jumplev1,2),addPipeRandom(e+8*(t+a),jumplev1,24+8*randTrue()),a&&pushPreThing(Brick,e+8*t,jumplev1,getRandomBrickItem());break}}}}function pushRandomSolidRow(e,t,n){for(var x=0;x4){pushPreScenery("Bush3",e,0);break}case 1:if(n-t>2){pushPreScenery("Bush2",e,0);break}case 0:pushPreScenery("Bush1",e,0);break;case 3:if(n-t>4){pushPreScenery("HillLarge",e,0);break}case 4:pushPreScenery("HillSmall",e,0);break;case 5:pushPreScenery("PlantLarge",e,0);break;case 6:pushPreScenery("PlantSmall",e,0);break;case 7:pushPreScenery("Fence",e,0,randTrue(2)+1)}}function pushRandomSkyScenery(e){switch(randTrue(2)){case 0:pushPreScenery("Cloud1",e,8*(randTrue(5)+5));break;case 1:pushPreScenery("Cloud2",e,8*(randTrue(4)+6));break;case 2:pushPreScenery("Cloud3",e,8*(randTrue(3)+7))}}function addDistanceCounter(){counter=createElement("div",{className:"indisplay counter randomdisplay",innerText:data.traveledold+" blocks traveled"}),body.appendChild(counter),TimeHandler.addEventInterval((function(e){data.traveled=max(0,Math.round((player.right+gamescreen.left)/unitsizet8)-3),e.innerText=data.traveledold+data.traveled+" blocks traveled"}),3,1/0,counter)}function addSeedDisplay(){}function createTunnel(e,t,n){for(var x=randTrue(2)+3,r=randTrue(2)+2,i=!1,a=0;a=0;--e)body.removeChild(t[e])}function resetLibrary(){window.palette=[[0,0,0,0],[255,255,255,255],[0,0,0,255],[188,188,188,255],[116,116,116,255],[252,216,168,255],[252,152,56,255],[252,116,180,255],[216,40,0,255],[200,76,12,255],[136,112,0,255],[124,7,0,255],[168,250,188,255],[128,208,16,255],[0,168,0,255],[24,60,92,255],[0,128,136,255],[32,56,236,255],[156,252,240,255],[60,188,252,255],[92,148,252,255],[0,130,0,255]],window.digitsize=getDigitSize(palette),window.filters={Underworld:["palette",{"05":"18","09":"16"}],Castle:["palette",{"02":"04","05":"01","09":"03"}],Alt:["palette",{11:"01"}],Alt2:["palette",{"02":"04","05":"01","09":"03",13:"01",19:"08"}],star:{one:["palette",{}],two:["palette",{"06":"02","08":"05",10:"09"}],three:["palette",{"06":"01","08":"06",10:"08"}],four:["palette",{"06":"01","08":"06",10:"14"}]},smart:["palette",{14:"08"}]},window.library={rawsprites:{characters:{Eraser:"p[7,7,7,7]x06,3333x011,x36,x09,x38,x07,x310,x05,311x36,11300033321333312333003332x16,23330333321233212x38,22233222x320,03333x26,3333x05,x28,x06,11x28,x05,x15,x25,110000x16,222111x05,x15,001110000",Beetle:{normal:{normal:"p[0,2,5,8]x022,1111x010,x18,x07,x110,x05,x17,33111000x18,32311000x19,3311003333x111,001133x110,001113x110,011213x110,011113x110,011113x110,0011233x15,x35,00222331133322200222203333002222",two:"p[0,2,5,8]x07,111x010,x18,x07,x110,x05,x17,33111000x18,32311000x19,3311003333x111,001133x110,001113x110,011213x110,011113x110,011113x110,0011233x15,x35,00022331133322x05,22233330222x06,22x05,22000"},Underworld:{normal:"p[0,15,16,18]x022,1111x010,x18,x07,x110,x05,x17,22111000x18,23211000x19,2211002222x111,001122x110,001112x110,011312x110,011112x110,011112x110,0011322x15,x25,00333221122233300333302222003333",two:"p[0,15,16,18]x07,111x010,x18,x07,x110,x05,x17,22111000x18,23211000x19,2211002222x111,001122x110,001112x110,011312x110,011112x110,011112x110,0011322x15,x25,00033221122233x05,33322220333x06,33x05,33000"},Castle:{normal:"p[0,1,3,4]x022,3333x010,x38,x07,x310,x05,x37,22333000x38,21233000x39,2233002222x311,003322x310,003332x310,033132x310,033332x310,033332x310,0033122x35,x25,00111223322211100111102222001111",two:"p[0,1,3,4]x07,333x010,x38,x07,x310,x05,x37,22333000x38,21233000x39,2233002222x311,003322x310,003332x310,033132x310,033332x310,033332x310,0033122x35,x25,00011223322211x05,11122220111x06,11x05,11000"}},BeetleShell:{normal:"p[0,2,5,8]x06,1111x010,x18,x07,1111331111x05,1111322311110000x15,33x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x35,x16,x35,000033311333x010,3333x06,",Underworld:"p[0,15,16,18]x06,1111x010,x18,x07,1111221111x05,1111233211110000x15,22x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x25,x16,x25,000022211222x010,2222x06,",Castle:"p[0,1,3,4]x06,3333x010,x38,x07,3333223333x05,3333211233330000x35,22x35,0000x312,000x314,00x314,00x314,00x314,00x314,00x314,0x25,x36,x25,000022233222x010,2222x06,"},Blooper:{normal:{normal:"p[0,2,5,9]x06,2332x011,232232x09,23222232x07,2232222322x05,223x26,3220002223x26,322202223x28,32220003x28,3x06,x210,x06,2x18,2x06,1221111221x06,2112112112x06,2112112112x05,212211112212000022332222332200003x210,30000220x26,022000032032002302300002202200220220000320320023023x05,2022002202x06,2032002302x06,2002002002x09,2002x06,",squeeze:"p[0,2,5,9]x06,2332x011,232232x09,23222232x07,2232222322x05,223x26,3220002223x26,322202223x28,32220003x28,3x06,2x18,200003x25,11x25,30x216,32223x26,322232222022002202222032203200230223000222020020222x05,2202002022000"},Underwater:{normal:"p[0,1,2,3]x06,1331x011,131131x09,13111131x07,1131111311x05,113x16,3110001113x16,311101113x18,31110003x18,3x06,x110,x06,1x28,1x06,2112222112x06,1221221221x06,1221221221x05,121122221121000011331111331100003x110,30000110x16,011000031031001301300001101100110110000310310013013x05,1011001101x06,1031001301x06,1001001001x09,1001x06,",squeeze:"p[0,1,2,3]x06,1331x011,131131x09,13111131x07,1131111311x05,113x16,3110001113x16,311101113x18,31110003x18,3x06,1x28,100003x15,22x15,30x116,31113x16,311131111011001101111031103100130113000111010010111x05,1101001011000"}},Bowser:{normal:{normal:"p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,122233221323333113331x012,1022223332333311331123x010,10113133123333113111223111x09,10003223331113312233112x013,12233111x39,2231x011,2233111x313,1x09,122233111x36,111x35,x010,220033x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,111x36,x019,x35,11113333x019,2x36,x17,x017,1122332222x15,x016,111x210,11x021,1122112222x021,1112111x25,0",two:"p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,122233221323333113331x012,1022223332333311331123x010,10113133123333113111223111x09,10003223331113312233112x013,12233111x39,2231x011,2233111x313,1x09,122233111x36,111x35,x010,220033x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,11x37,x019,x35,11113333x020,x36,x17,x019,22332222x15,x018,2222112211211x018,112211121112222x016,111x27,x06,"},firing:{normal:"p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,112233221323333113331x012,1022223322333311331123x010,101030322x35,113111223111x06,x29,33331113312233112x07,x27,3333111x39,2231x07,x38,111x313,1x010,x35,111x36,111x35,x014,33x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,111x36,x019,x35,11113333x019,2x36,x17,x017,1122332222x15,x016,111x210,11x021,1122112222x021,1112111x25,0",two:"p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,112233221323333113331x012,1022223322333311331123x010,101030322x35,113111223111x06,x29,33331113312233112x07,x27,3333111x39,2231x07,x38,111x313,1x010,x35,111x36,111x35,x014,33x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,11x37,x019,x35,11113333x020,x36,x17,x019,22332222x15,x018,2222112211211x018,112211121112222x016,111x27,x06,"}},BowserFire:"p[0,1,6,8]x010,x36,003x010,x316,x06,x35,22332222332222x315,x25,111133x05,3333x213,13000x313,2223333x05,x39,0x36,x09,3300333033003x06,",BrickShard:{normal:"p[0,2,9]0021200002221200212121202212221222212221022212220021212000022200",Underworld:["filter",["characters","BrickShard","Overworld"],filters.Underworld],Castle:["filter",["characters","BrickShard","Overworld"],filters.Castle]},BulletBill:"p[0,2,5,8]110x17,x06,2201x25,1110000113x16,2111000112x19,2100113x19,22101131133x15,2121113132212111121111313x26,x17,3111x25,x17,31111222x15,0113x111,00113x110,000110x19,0000110x17,x06,",Bubble:"p[0,1]0110100110010110",CastleFireBall:["same",["characters","FireBall"]],CheepCheep:{normal:{normal:"p[0,1,3,6]0003333x013,x35,011x07,x26,11110000121122221111000x16,222111100012121122x15,0001212112211110000x16,221112x05,1211x27,0000333x210,0000233x29,00300233x28,3330023311x26,333033331112222333000x18,20333x05,x15,0000300",two:"p[0,1,3,6]0003333x013,x35,x010,x26,3x07,1211x25,x06,x16,x25,111001212112222x15,0121211222x16,0x16,22x16,0001211222x16,00333x210,0300233x29,33000233x28,3300023311x26,300033331112222330000x18,203x07,x15,x07,"},red:{normal:"p[0,1,6,8]0002222x013,x25,x010,x36,2x07,1311x35,x06,x16,x35,111001313113333x15,0131311333x16,0x16,33x16,0001311333x16,00222x310,0200322x39,22000322x38,2200032211x36,200022221113333220000x18,302x07,x15,x07,",two:"p[0,1,6,8]0002222x013,x25,011x07,x36,11110000131133331111000x16,333111100013131133x15,0001313113311110000x16,331113x05,1311x37,0000222x310,0000322x39,00200322x38,2220032211x36,222022221113333222000x18,30222x05,x15,0000200"}},Coin:{normal:{normal:{normal:"p[0,2,6,8]00222211000x26,11002233221102232212211223221221122322122112232212211223221221122322122112232212211223221221102211221100x26,1100022221100",two:"p[0,2,8]00222211000x26,1100x26,110x25,12211x25,12211x25,12211x25,12211x25,12211x25,12211x25,12211x25,1221102211221100x26,1100022221100",three:"p[0,2,9,11]00333311000x36,11003322331103323313311332331331133233133113323313311332331331133233133113323313311332331331103311331100x36,1100033331100"},Underworld:{normal:"p[0,6,9,16]00111133000x16,33001122113301121131133112113113311211311331121131133112113113311211311331121131133112113113301133113300x16,3300011113300",two:"p[0,9,16]00111122000x16,2200x16,220x15,21122x15,21122x15,21122x15,21122x15,21122x15,21122x15,21122x15,2112201122112200x16,2200011112200",three:"p[0,9,11,16]00222233000x26,33002211223302212232233221223223322122322332212232233221223223322122322332212232233221223223302233223300x26,3300022223300"}},anim:{normal:"p[0,1,7]000012x08,12x07,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x07,12x08,120000",anim2:"p[0,1,6,7]000022x07,2222x05,x26,000022132200022122322002212232200221223220022122322002212232200221223220002213220000x26,x05,2222x07,220000",anim3:"p[0,1,6,7]000023x08,23x07,2333x06,2333x06,2333x06,2333x06,1333x06,1333x06,2333x06,2333x06,2333x06,2333x07,23x08,230000",anim4:"p[0,1,6]x05,2x09,2x09,2x09,2x09,2x09,2x09,1x09,1x09,2x09,2x09,2x09,2x09,2x09,20000"}},FireBall:{normal:"p[0,1,6,8]0303330000303330300032330033322303322123032212330332233000333300",two:"p[0,1,6,8]x05,3000333000333233030322230033212x36,2122330332233000333300",three:"p[0,1,6,8]0033330003322330332122303212233032233300332300030333030000333030",four:"p[0,1,6,8]0033330003322330332212x36,2123300322230303323330003330003x05,"},FireFlower:{normal:{normal:"p[0,1,6,8,14]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,",two:"p[0,2,5,9,14]0000x28,x06,x212,000222x38,222022333x16,3332222333x16,333220222x38,222000x212,x06,x28,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,",three:"p[0,6,8,10,14]0000x18,x06,x112,000111x38,111011333x26,3331111333x26,333110111x38,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,",four:"p[0,1,6,14]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,33x07,333000033000033303330003300033300333300330033330003333033033330000333303303333x05,x310,x09,3333x06,"},Underworld:{normal:"p[0,1,6,8,16]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,",two:"p[0,15,16,18]0000x38,x06,x312,000333x28,333033222x16,2223333222x16,222330333x28,333000x312,x06,x38,x011,22x07,222000022000022202220002200022200222200220022220002222022022220000222202202222x05,x210,x09,2222x06,",three:"p[0,6,8,10,16]0000x18,x06,x112,000111x38,111011333x26,3331111333x26,333110111x38,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,",four:"p[0,5,9,16]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,33x07,333000033000033303330003300033300333300330033330003333033033330000333303303333x05,x310,x09,3333x06,"}},Firework:["same",["solids","Firework"]],Goomba:{normal:"p[0,2,5,9]x06,3333x011,x36,x09,x38,x07,x310,x05,311x36,11300033321333312333003332x16,23330333321233212x38,22233222x320,03333x26,3333x05,x28,x06,11x28,x05,x15,x25,110000x16,222111x05,x15,001110000",Underworld:"p[0,15,16,18]x06,2222x011,x26,x09,x28,x07,x210,x05,211x26,11200022231222213222002223x16,32220222231322313x28,33322333x220,02222x36,2222x05,x38,x06,11x38,x05,x15,x35,110000x16,333111x05,x15,001110000",Castle:["filter",["characters","Goomba","Overworld"],filters.Castle]},Hammer:{normal:"p[0,2,5,8]x08,2x014,12101x010,111101x09,1122232x09,1211131x08,x16,31x08,10011131x09,x15,01x012,2x015,2x015,2x015,2x015,2x015,2x015,2x015,2x07,",two:"p[0,2,5,8]x073,11x013,10111x011,101211x010,11112110x28,11112122x08,1111211x010,3333x011,1111211x065,",three:"p[0,2,5,8]x07,2x015,2x015,2x015,2x015,2x015,2x015,2x015,2x012,10x15,x09,13111001x08,13x16,x08,1311121x09,2322211x09,101111x010,10121x014,2x08,",four:"p[0,2,5,8]x065,1121111x011,3333x010,1121111x08,22121111x28,01121111x010,112101x011,11101x013,11x073,"},HammerBro:{normal:{normal:"p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,12113333x06,21231x36,00022210311133313x06,3322113231x06,3222212331x06,x25,1323130000x25,1133233000x25,1133332200x25,313333233x06,33123323330000223311223333000022233111133x05,222x35,11110000222233x26,x05,222033x25,x06,2200002222x013,222",two:"p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,1211333300002221231x36,x06,10311133313x06,3322113231x06,3222212331x06,3x25,32313x05,33x25,3233x05,33312222322x06,3313333233x06,3312333233x06,3311223333x07,33111133x08,x35,1111x07,23322233x08,x27,x010,x25,x012,2222000"},throwing:{normal:"p[0,1,6,14]00003333x011,333313x09,3113331x010,31133332x07,231133322x06,x25,12322x06,x25,12222x06,x25,1122233x05,2221x25,333x07,1322223313x06,3322223231x06,33x25,331x06,33322132313x05,33311133233x05,3331x35,22x06,3313333233x06,33123323330000223311223333000022233111133x05,222x35,11110000222233x26,x05,222033x25,x06,2200002222x013,222",two:"p[0,1,6,14]00003333x011,333313x09,3113331x010,31133332x07,231133322x06,x25,12322x06,x25,12222x06,x25,1122233x05,2221x25,333x07,1322223313x06,3322223231x06,33x25,331x06,33322132313x05,33311133233x05,3331x35,22x06,3313333233x06,3312333233x06,3311223333x07,33111133x08,x35,1111x07,23322233x08,x27,x010,x25,x012,2222000"},thrown:{normal:"p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,12113333x06,21231x36,00022210311133313x06,3322113231x06,3222212331x06,x25,1323130000x25,1133233000x25,1133332200x25,313333233x06,33123323330000223311223333000022233111133x05,222x35,11110000222233x26,x05,222033x25,x06,2200002222x013,222",two:"p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,12113333x06,21231x36,00022210311133313x06,3322113231x06,3222212331x06,x25,1323130000x25,1133233000x25,113333220022223313333233x06,3312333233x06,3311223333x07,33111133x08,x35,1111x07,23322233x08,x27,x010,x25,x012,2222000"}},Koopa:{normal:{normal:{flying:{normal:"p[0,1,6,14]x019,1x09,11000111x07,1111001112x05,x15,0231122000x15,0023112200112110002311220012111100211122011211110222122201211110023x25,012111010x26,0012x15,022202203312111002200220331113330220221333232333002022133233323200002212x36,23000221132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000221112331110000x25,x15,22200x25,x06,2222",two:"p[0,1,6,14]00001x014,111x012,2111x012,23112x010,223112x010,223112x010,2211120011100002322122011211000x27,0121111002220022012x15,022000213x17,x05,22133x17,00022133331131110222213332323311002221232333232000021132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000021112331112x05,222x15,222x06,2220000222x07,2220022200"},normal:{normal:{normal:"p[0,1,6,14]x019,1x014,111x013,1112x011,231122x010,231122x010,231122x010,211122x09,2221222x09,23x25,x09,x26,00x35,0002220220323332300220022033232333022022133332311300202213332323130000221232333232000221132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000221112331110000x25,x15,22200x25,x06,2222",two:"p[0,1,6,14]00001x014,111x012,2111x012,23112x010,223112x010,223112x010,221112x09,2322122x09,x27,x09,22200220x35,00022000213233323x06,2213323233x05,22133332311300222213332323130002221232333232000021132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000021112331112x05,222x15,222x06,2220000222x07,2220022200"},Underworld:{normal:"p[0,5,9,16]x019,1x014,111x013,1112x011,231122x010,231122x010,231122x010,211122x09,2221222x09,23x25,x09,x26,00x35,0002220220323332300220022033232333022022133332311300202213332323130000221232333232000221132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000221112331110000x25,x15,22200x25,x06,2222",two:"p[0,5,9,16]00001x014,111x012,2111x012,23112x010,223112x010,223112x010,221112x09,2322122x09,x27,x09,22200220x35,00022000213233323x06,2213323233x05,22133332311300222213332323130002221232333232000021132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000021112331112x05,222x15,222x06,2220000222x07,2220022200"}}},smart:["filter",["characters","Koopa","normal","normal"],filters.smart]},Castle:["filter",["characters","Koopa","normal"],filters.Castle]},Lakitu:{normal:"p[0,1,6,14]x05,x25,x010,x27,x08,333233322x06,3111311132x06,3x17,323x05,3113131132330000311313113233x05,3332x37,x05,222333322233000x25,33x25,3003x25,11x25,30031222111122213003x112,303x114,33x15,3113x15,33x15,3113x15,33x15,3113x15,33x114,3313x110,3130311131111311130031111333311113003x112,3000311113311113x05,3333003333000",hiding:"p[0,1,6,14]x0131,2220000222x05,x25,33x25,0000x25,11x25,00003222111122230003x112,303x114,33x15,3113x15,33x15,3113x15,33x15,3113x15,33x114,3313x110,3130311131111311130031111333311113003x112,3000311113311113x05,3333003333000"},Mario:{dead:"p[0,6,8,10]x05,x25,x07,11x27,1100111131311313x16,3313113133x15,33311113331100x35,113333x05,331333313x06,33x16,3x05,222211112220003332233332233003333223322333003333212212333003333x26,333000333x26,3300",normal:{normal:{normal:"p[0,6,8,10]0000x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,3332333x08,333323323330000x35,2222333300011132122123110001111x26,111000111x28,11x05,222202222x06,333300033330000x35,000x35,00",hopping:["same",["characters","Mario","normal","normal","running","normal","two"]],jumping:"p[0,6,8,10]x013,111x06,x26,0111x05,x29,11x05,33311311333000031311131133300003133111311130000331111x36,x06,x17,33000x35,2333233000x37,2333220311x36,x26,0311112232212212330113x210,3300333x29,330333x28,x05,330x25,x07,",running:{skidding:"p[0,6,8,10]x05,x26,x08,x28,33x07,131x37,0000x16,3113111001133113311311100033x16,3111x05,1123332222x05,3332231112220000x36,1113220000x36,112222x05,3333x26,x07,222233322x07,222x35,x09,2333223333x09,2x36,x010,x35,00",normal:{normal:"p[0,6,8,10]x05,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x05,x35,2233x05,1113333222333x17,3332122233x15,0x28,0330000x210,33000x211,330033322200222233003333x013,3333x010,",two:"p[0,6,8,10]x020,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x08,333322333x07,3332212211x06,3333x26,x06,2331112222x07,23112222x09,2223333x09,x38,0000",three:"p[0,6,8,10]x021,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,x35,2311x06,11x36,11100001112x35,11x05,333x27,x06,33x28,x05,333x27,x06,330003333x012,x35,x05,"}},paddling:{normal:{normal:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x06,33x27,x07,33x26,x08,332222x010,30033x014,3x027,",paddle1:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x05,33x28,x06,33x27,x07,33x25,x09,330333x013,33x026,",paddle2:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x05,33x25,33111000033x27,111000033x26,00110000330333x013,33x026,",paddle3:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x07,33x25,x09,330333x013,33x026,"},swim2:{normal:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x07,3x27,x07,33x26,x010,3322x011,333x013,33x028,",paddle1:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x06,3x28,x06,33x27,x09,33222x010,3333x012,333x027,",paddle2:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x06,3x25,33111000033x27,111x06,3322220011x05,3333x012,333x027,",paddle3:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x09,332222x09,3333x012,333x027,"}},climbing:{normal:"p[0,6,8,10]0000x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x09,222x35,x08,222x36,11100002222x35,111100x26,3333111100x211,33300x211,330000x29,x08,x26,x06,",two:"p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x08,22x35,111x05,22x36,1111000222x36,1111000x25,122x08,x28,00033000x210,3330000x29,333x05,x28,333x016,"}},large:{normal:"p[0,6,8,10]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36,",jumping:"p[0,6,8,10]x012,111x012,11311x06,x25,113310000x27,x15,000x28,x35,000x211,33000333113111333300311311331111330031133x18,30031133111311113033x15,x37,0033331111333313000033x18,33x05,2222332333300x36,223233300x38,23323300x38,2232300033113333223320003111133222231000x15,32221222000x15,x28,0001011x29,003011x210,033000x29,33330003x28,x37,233x26,x37,222332222x37,x25,0022x37,x25,x08,3332222x09,33x014,3x015,",hopping:["same",["characters","Mario","normal","large","running","normal","two"]],crouching:"p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000331113111311110033x15,x36,000223x15,x35,0033323x19,0033323331113323033332x38,23033332x37,22x36,21x35,22x37,x28,x39,x26,x38,1112222111333231111222211113221111x26,1111202113x06,311200033330000333300x36,0000x36,",running:{skidding:"p[0,6,8,10]000x27,x09,11x27,33x06,1x27,333000x26,31133110022113113113111100013311311311110x16,3111213x16,3x15,22313111133331133223110333311113332x05,x15,x35,220003322233111332000333222x15,32000333233x15,3200x37,x15,0000x37,113122200x38,11222200x37,x27,00x36,x27,0000333x25,333x05,x25,x35,x06,x25,x38,0000222333311113x06,233x16,3x07,3112222x010,x27,003x07,222230033x07,22x37,x08,x37,x09,x36,x011,3333x012,3330000",normal:{normal:"p[0,6,8,10]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x08,33311x010,222233200010000333322332011100x36,223231110x37,223321110x37,223323130x36,222332330x36,22212313003333x29,000x15,x28,000x15,x28,0031111x29,0330111x27,x35,00023x26,x35,003223x25,x38,22233222x39,2222000x310,2x011,333x013,333x014,333x011,",two:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,30003333x27,322003333x25,3322200333322223222200033332220022220003333x05,333300033x07,33330003x08,x36,x010,x36,x017,",three:"p[0,6,8,10]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x05,33x18,x07,222211x09,32332233x07,323333223x07,3233332233x06,3233332223x06,32x35,113x06,3233331111x06,22333311112x05,22233311112200002222331112220000x26,332222x05,x25,33322x07,222x36,x07,22x36,x09,223333x010,3222333x09,3333033x08,x35,x011,x37,x011,x35,x05,"}},paddling:{normal:{normal:"p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,",paddle1:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,",paddle2:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,",paddle3:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,"},swim2:{normal:"p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,",paddle1:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027,",paddle2:"p[0,6,8,10]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x028,",paddle3:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027,"}},climbing:{normal:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x29,30330000x27,x35,x05,x26,x35,x07,22223333x011,x35,x013,33x015,3x018,",two:"p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,3x06,x210,033000x29,33330000x28,33330000x28,3333x05,x27,3333x064,"}},fiery:{normal:"p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x07,1x25,3x09,31333313x07,3313333133x05,3331333313330003333133331333300333113333113330333311333311x38,x18,x38,1211112133332222x18,x28,x18,22220222x18,2220022x110,22000x112,000x16,00x16,00x15,0000x15,00x15,0000x15,000333300003333000033330000333300x36,0000x312,0000x36,",jumping:"p[0,5,6,8]x012,222x012,22322x06,x15,223320000x17,x25,000x18,x35,000x111,33000333223222333300322322332222330032233x28,30032233222322223033x25,x37,0033332222333323000033x28,33x05,1111331333300x36,113133300x38,13313300x38,1131300033223333113310003222233111132000x25,31112111000x25,x18,0002222x19,003022x110,033000x19,33330003x18,x37,133x16,x37,111331111x37,x15,0011x37,x15,x08,3331111x09,33x014,3x015,",hopping:["same",["characters","Mario","normal","fiery","running","normal","three"]],crouching:"p[0,5,6,8]x07,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000332223222322220033x25,x36,000113x25,x35,0033313x29,0033313332223313033331x38,13033331x37,11x36,12x35,11x37,x18,x39,x16,x38,2221111222333132222111122223112222x16,2222101223x06,322100033330000333300x36,0000x36,",firing:["same",["characters","Mario","normal","fiery","running","normal","two"]],running:{skidding:"p[0,5,6,8]000x17,x09,22x17,33x06,2x17,333000x16,32233220011223223223222200023322322322220x26,3222123x26,3x25,11323222233332233113220333322223331x05,x25,x35,110003311133222331000333111x25,31000333133x25,3100x37,x25,0000x37,223211100x38,22111100x37,x17,00x36,x17,0000333x15,333x05,x15,x35,x06,x15,x38,0000111333322223x06,133x26,3x07,3221111x010,x17,003x07,111130033x07,11x37,x08,x37,x09,x36,x011,3333x012,3330000",normal:{normal:"p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x08,33322x010,111133100020000333311331022200x36,113132220x37,113312220x37,113313230x36,111331330x36,11121323003333x19,000x25,x18,000x25,x18,0032222x19,0330222x17,x35,00013x16,x35,003113x15,x38,11133111x39,1111000x310,1x011,333x013,333x014,333x011,",two:"p[0,5,6,8]x039,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,30003333x17,311003333x15,3311100333311113111100033331110011110003333x05,333300033x07,33330003x08,x36,x010,x36,0",three:"p[0,5,6,8,10]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000044x25,x35,x05,33x28,x07,111122x09,31331133x07,313333113x07,3133331133x06,3133331113x06,31x35,223x06,3133332222x06,11333322221x05,11133322221100001111332221110000x16,331111x05,x15,33311x07,111x36,x07,11x36,x09,113333x010,3111333x09,3333033x08,x35,x011,x37,x011,x35,x05,"}},paddling:{normal:{normal:"p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,",paddle1:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x05,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,",paddle2:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,",paddle3:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,"},swim2:{normal:"p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,",paddle1:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027,",paddle2:"p[0,5,6,8]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x028,",paddle3:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027,"}},climbing:{normal:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x19,30330000x17,x35,x05,x16,x35,x07,11113333x011,x35,x013,33x015,3x018,",two:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,3x06,x110,033000x19,33330000x18,33330000x18,3333x05,x17,3333x064,"}},shrooming:{normal:"p[0,6,8,10]x0261,x25,x010,x29,x07,3331131x08,3131113111x06,31331113111x05,3311113333x08,x17,x08,332333x09,3332332333x05,33332222333300001132122123110000111x26,111000011x28,11x06,22200222x07,3330000333x05,33330000333300",shrooming2:"p[0,6,8,10]x0134,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,33323333233300033332333323333011002122221200x15,0x28,0x16,x210,11101022220022220100022220000222200003333000033330000333300003333000x35,0000x35,0",shrooming3:"p[0,6,8,10]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36,"}},star:{normal:["filter",["characters","Mario","normal"],filters.star.one],star2:["filter",["characters","Mario","normal"],filters.star.two],star3:["filter",["characters","Mario","normal"],filters.star.three],star4:["filter",["characters","Mario","normal"],filters.star.four]}},Luigi:{dead:"p[0,6,1,21]x05,x25,x07,11x27,1100111131311313x16,3313113133x15,33311113331100x35,113333x05,331333313x06,33x16,3x05,222211112220003332233332233003333223322333003333212212333003333x26,333000333x26,3300",normal:{normal:{normal:"p[0,6,1,21]0000x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,3332333x08,333323323330000x35,2222333300011132122123110001111x26,111000111x28,11x05,222202222x06,333300033330000x35,000x35,00",hopping:["same",["characters","Luigi","normal","normal","running","normal","two"]],jumping:"p[0,6,1,21]x013,111x06,x26,0111x05,x29,11x05,33311311333000031311131133300003133111311130000331111x36,x06,x17,33000x35,2333233000x37,2333220311x36,x26,0311112232212212330113x210,3300333x29,330333x28,x05,330x25,x07,",running:{skidding:"p[0,6,1,21]x05,x26,x08,x28,33x07,131x37,0000x16,3113111001133113311311100033x16,3111x05,1123332222x05,3332231112220000x36,1113220000x36,112222x05,3333x26,x07,222233322x07,222x35,x09,2333223333x09,2x36,x010,x35,00",normal:{normal:"p[0,6,1,21]x05,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x05,x35,2233x05,1113333222333x17,3332122233x15,0x28,0330000x210,33000x211,330033322200222233003333x013,3333x010,",two:"p[0,6,1,21]x020,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x08,333322333x07,3332212211x06,3333x26,x06,2331112222x07,23112222x09,2223333x09,x38,0000",three:"p[0,6,1,21]x021,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,x35,2311x06,11x36,11100001112x35,11x05,333x27,x06,33x28,x05,333x27,x06,330003333x012,x35,x05,"}},paddling:{normal:{normal:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x06,33x27,x07,33x26,x08,332222x010,30033x014,3x027,",paddle1:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x05,33x28,x06,33x27,x07,33x25,x09,330333x013,33x026,",paddle2:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x05,33x25,33111000033x27,111000033x26,00110000330333x013,33x026,",paddle3:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x07,33x25,x09,330333x013,33x026,"},swim2:{normal:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x07,3x27,x07,33x26,x010,3322x011,333x013,33x028,",paddle1:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x06,3x28,x06,33x27,x09,33222x010,3333x012,333x027,",paddle2:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x06,3x25,33111000033x27,111x06,3322220011x05,3333x012,333x027,",paddle3:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x09,332222x09,3333x012,333x027,"}},climbing:{normal:"p[0,6,1,21]0000x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x09,222x35,x08,222x36,11100002222x35,111100x26,3333111100x211,33300x211,330000x29,x08,x26,x06,",two:"p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x08,22x35,111x05,22x36,1111000222x36,1111000x25,122x08,x28,00033000x210,3330000x29,333x05,x28,333x016,"}},large:{normal:"p[0,6,1,21]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36,",jumping:"p[0,6,1,21]x012,111x012,11311x06,x25,113310000x27,x15,000x28,x35,000x211,33000333113111333300311311331111330031133x18,30031133111311113033x15,x37,0033331111333313000033x18,33x05,2222332333300x36,223233300x38,23323300x38,2232300033113333223320003111133222231000x15,32221222000x15,x28,0001011x29,003011x210,033000x29,33330003x28,x37,233x26,x37,222332222x37,x25,0022x37,x25,x08,3332222x09,33x014,3x015,",hopping:["same",["characters","Luigi","normal","large","running","normal","two"]],crouching:"p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000331113111311110033x15,x36,000223x15,x35,0033323x19,0033323331113323033332x38,23033332x37,22x36,21x35,22x37,x28,x39,x26,x38,1112222111333231111222211113221111x26,1111202113x06,311200033330000333300x36,0000x36,",running:{skidding:"p[0,6,1,21]000x27,x09,11x27,33x06,1x27,333000x26,31133110022113113113111100013311311311110x16,3111213x16,3x15,22313111133331133223110333311113332x05,x15,x35,220003322233111332000333222x15,32000333233x15,3200x37,x15,0000x37,113122200x38,11222200x37,x27,00x36,x27,0000333x25,333x05,x25,x35,x06,x25,x38,0000222333311113x06,233x16,3x07,3112222x010,x27,003x07,222230033x07,22x37,x08,x37,x09,x36,x011,3333x012,3330000",normal:{normal:"p[0,6,1,21]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x08,33311x010,222233200010000333322332011100x36,223231110x37,223321110x37,223323130x36,222332330x36,22212313003333x29,000x15,x28,000x15,x28,0031111x29,0330111x27,x35,00023x26,x35,003223x25,x38,22233222x39,2222000x310,2x011,333x013,333x014,333x011,",two:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,30003333x27,322003333x25,3322200333322223222200033332220022220003333x05,333300033x07,33330003x08,x36,x010,x36,x017,",three:"p[0,6,1,21]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x05,33x18,x07,222211x09,32332233x07,323333223x07,3233332233x06,3233332223x06,32x35,113x06,3233331111x06,22333311112x05,22233311112200002222331112220000x26,332222x05,x25,33322x07,222x36,x07,22x36,x09,223333x010,3222333x09,3333033x08,x35,x011,x37,x011,x35,x05,"}},paddling:{normal:{normal:"p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,",paddle1:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,",paddle2:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,",paddle3:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,"},swim2:{normal:"p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,",paddle1:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027,",paddle2:"p[0,6,1,21]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x028,",paddle3:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027,"}},climbing:{normal:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x29,30330000x27,x35,x05,x26,x35,x07,22223333x011,x35,x013,33x015,3x018,",two:"p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,3x06,x210,033000x29,33330000x28,33330000x28,3333x05,x27,3333x064,"}},fiery:{normal:"p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x07,1x25,3x09,31333313x07,3313333133x05,3331333313330003333133331333300333113333113330333311333311x38,x18,x38,1211112133332222x18,x28,x18,22220222x18,2220022x110,22000x112,000x16,00x16,00x15,0000x15,00x15,0000x15,000333300003333000033330000333300x36,0000x312,0000x36,",jumping:"p[0,5,6,8]x012,222x012,22322x06,x15,223320000x17,x25,000x18,x35,000x111,33000333223222333300322322332222330032233x28,30032233222322223033x25,x37,0033332222333323000033x28,33x05,1111331333300x36,113133300x38,13313300x38,1131300033223333113310003222233111132000x25,31112111000x25,x18,0002222x19,003022x110,033000x19,33330003x18,x37,133x16,x37,111331111x37,x15,0011x37,x15,x08,3331111x09,33x014,3x015,",hopping:["same",["characters","Luigi","normal","fiery","running","normal","three"]],crouching:"p[0,5,6,8]x07,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000332223222322220033x25,x36,000113x25,x35,0033313x29,0033313332223313033331x38,13033331x37,11x36,12x35,11x37,x18,x39,x16,x38,2221111222333132222111122223112222x16,2222101223x06,322100033330000333300x36,0000x36,",firing:["same",["characters","Luigi","normal","fiery","running","normal","two"]],running:{skidding:"p[0,5,6,8]000x17,x09,22x17,33x06,2x17,333000x16,32233220011223223223222200023322322322220x26,3222123x26,3x25,11323222233332233113220333322223331x05,x25,x35,110003311133222331000333111x25,31000333133x25,3100x37,x25,0000x37,223211100x38,22111100x37,x17,00x36,x17,0000333x15,333x05,x15,x35,x06,x15,x38,0000111333322223x06,133x26,3x07,3221111x010,x17,003x07,111130033x07,11x37,x08,x37,x09,x36,x011,3333x012,3330000",normal:{normal:"p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x08,33322x010,111133100020000333311331022200x36,113132220x37,113312220x37,113313230x36,111331330x36,11121323003333x19,000x25,x18,000x25,x18,0032222x19,0330222x17,x35,00013x16,x35,003113x15,x38,11133111x39,1111000x310,1x011,333x013,333x014,333x011,",two:"p[0,5,6,8]x039,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,30003333x17,311003333x15,3311100333311113111100033331110011110003333x05,333300033x07,33330003x08,x36,x010,x36,0",three:"p[0,5,6,8,10]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000044x25,x35,x05,33x28,x07,111122x09,31331133x07,313333113x07,3133331133x06,3133331113x06,31x35,223x06,3133332222x06,11333322221x05,11133322221100001111332221110000x16,331111x05,x15,33311x07,111x36,x07,11x36,x09,113333x010,3111333x09,3333033x08,x35,x011,x37,x011,x35,x05,"}},paddling:{normal:{normal:"p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,",paddle1:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x05,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,",paddle2:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,",paddle3:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,"},swim2:{normal:"p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,",paddle1:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027,",paddle2:"p[0,5,6,8]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x028,",paddle3:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027,"}},climbing:{normal:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x19,30330000x17,x35,x05,x16,x35,x07,11113333x011,x35,x013,33x015,3x018,",two:"p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,3x06,x110,033000x19,33330000x18,33330000x18,3333x05,x17,3333x064,"}},shrooming:{normal:"p[0,6,1,21]x0261,x25,x010,x29,x07,3331131x08,3131113111x06,31331113111x05,3311113333x08,x17,x08,332333x09,3332332333x05,33332222333300001132122123110000111x26,111000011x28,11x06,22200222x07,3330000333x05,33330000333300",shrooming2:"p[0,6,1,21]x0134,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,33323333233300033332333323333011002122221200x15,0x28,0x16,x210,11101022220022220100022220000222200003333000033330000333300003333000x35,0000x35,0",shrooming3:"p[0,6,1,21]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36,"}},star:{normal:["filter",["characters","Luigi","normal"],filters.star.one],star2:["filter",["characters","Luigi","normal"],filters.star.two],star3:["filter",["characters","Luigi","normal"],filters.star.three],star4:["filter",["characters","Luigi","normal"],filters.star.four]}},Mushroom:{normal:"p[0,1,6,8]x06,2222x011,332222x09,33332222x07,x35,x25,x05,22333x27,000x29,3332200x28,x35,202233x25,x35,222333x25,x35,22233x27,333x219,02333x16,3332x05,x18,x08,12x16,x08,12x16,x09,121111x05,",gainlife:"p[0,1,6,14]x06,2222x011,332222x09,33332222x07,x35,x25,x05,22333x27,000x29,3332200x28,x35,202233x25,x35,222333x25,x35,22233x27,333x219,02333x16,3332x05,x18,x08,12x16,x08,12x16,x09,121111x05,",deathly:"p[0,5,9,16]x06,2222x011,332222x09,33332222x07,x35,x25,x05,22333x27,000x29,3332200x28,x35,202233x25,x35,222333x25,x35,22233x27,333x219,02333x16,3332x05,x18,x08,12x16,x08,12x16,x09,121111x05,"},Pirhana:{normal:{normal:"p[0,6,14]x022,2002x011,210012x09,22200222x08,12200221x07,2221001222x06,2222002222x05,1212200221210000x25,00x25,0000222120021222000021222002221200002222100122220000212220022212x05,2212002122x06,2222002222x07,12100121x010,2002x06,11x05,11x05,11121100011000112101211001100112100112110110112110001121011012110000111211112111x05,x110,000",two:"p[0,1,6,14]x034,3x010,30003211x06,112300331x08,1330023311000011332033321x06,12333233331100113333233233100001332x37,x06,x36,23333100133332x35,23100132333302x35,00x35,20033233300333233000333320023333x05,32x36,23x08,323323x05,22x05,22x05,22232200022000223202322002200223200223220220223220002232022023220000222322223222x05,x210,000"},Underworld:{normal:"p[0,9,16]x022,2002x011,210012x09,22200222x08,12200221x07,2221001222x06,2222002222x05,1212200221210000x25,00x25,0000222120021222000021222002221200002222100122220000212220022212x05,2212002122x06,2222002222x07,12100121x010,2002x06,11x05,11x05,11121100011000112101211001100112100112110110112110001121011012110000111211112111x05,x110,000",two:"p[0,5,9,16]x034,3x010,30003211x06,112300331x08,1330023311000011332033321x06,12333233331100113333233233100001332x37,x06,x36,23333100133332x35,23100132333302x35,00x35,20033233300333233000333320023333x05,32x36,23x08,323323x05,22x05,22x05,22232200022000223202322002200223200223220220223220002232022023220000222322223222x05,x210,000"},Castle:["same",["characters","Pirhana","Underworld"]]},Podoboo:"p[0,1,6,8]0000x36,x07,x38,x05,3332222333000333x26,33300332221122233033322111122x35,22x16,22333322x16,22333322x16,223333222111122233332222112222x35,232222323330x35,22x35,00x35,22x35,0003303333033x05,30033003000",Shell:{normal:{normal:{normal:"p[0,1,6,14]x05,233332x09,33222233x07,3323333233x06,32x36,23x05,32x38,230000232x36,2320002333233332333200x35,2222x35,01113323333233x17,2x36,2111100011x36,11x07,11333311x09,x16,x011,1111x06,",peeking:"p[0,1,6,14]x05,233332x09,33222233x07,3323333233x06,32x36,23x05,32x38,230000232x36,2320002333233332333200x35,2222x35,01113323333233x17,2x36,2111100211x36,11200022211333311222002220x16,02220022000111100022002x012,20"},smart:["filter",["characters","Shell","normal","normal"],filters.smart]},Underworld:{normal:"p[0,5,9,16]x05,233332x09,33222233x07,3323333233x06,32x36,23x05,32x38,230000232x36,2320002333233332333200x35,2222x35,01113323333233x17,2x36,2111100011x36,11x07,11333311x09,x16,x011,1111x06,",peeking:"p[0,5,6,9,16]x05,344443x09,44333344x07,4434444344x06,43x46,34x05,43x48,340000343x46,3430003444344443444300x45,3333x45,01114434444344x17,3x46,3111100211x46,11200022211444411222002220x16,02220022000111100022002x012,20"},Castle:["same",["characters","Shell","normal","normal"]]},ShellBeetle:{normal:"p[0,2,5,9]x06,1111x010,x18,x07,1111331111x05,1111322311110000x15,33x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x35,x16,x35,000033311333x010,3333x06,",Underworld:"p[0,15,16,18]x06,1111x010,x18,x07,1111221111x05,1111233211110000x15,22x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x25,x16,x25,000022211222x010,2222x06,",Castle:"p[0,1,3,4]x06,3333x010,x38,x07,3333223333x05,3333211233330000x35,22x35,0000x312,000x314,00x314,00x314,00x314,00x314,00x314,0x25,x36,x25,000022233222x010,2222x06,"},Spiny:{normal:"p[0,1,6,8]x024,1x015,1x014,122x08,10000122000010001200122220012000122012222012200012223222312220001122x35,1222003322331123322301113331122233330033133x25,x36,133133222333111333321x35,111x05,222x16,2220002222x06,2222",two:"p[0,1,6,8]x08,1x015,1x014,122x08,10000122000010001200122220012000122012222012200012223222312220001122x35,1222003322331123322301113331122233330033133x25,x36,133133222333111333321x35,111x05,222x16,22x06,222000222x08,22000220000"},SpinyEgg:{normal:"p[0,1,6,8]x06,22x09,22322322x06,2x36,2x05,x310,00022311x35,22002311x37,200331x39,022x310,2222x310,220x39,133002x37,11320022x35,11322000x310,x05,2x36,2x06,22322322x09,22x06,",two:"p[0,1,6,8]0000220022x08,233332x05,22x38,2200233311x35,20003311x36,0022331x37,2222x310,220x312,00x312,022x310,2222x37,1332200x36,11330002x35,1133320022x38,22x05,233332x08,2200220000"},Star:{normal:"p[0,6,8]x06,11x012,11x011,1111x010,1111x09,x16,0000x119,2112x15,01111211211110001112112111x05,x18,x06,x18,x05,x110,0000x110,00001111001111000111x06,1110011x08,110",two:"p[0,2,9]x06,22x012,22x011,2222x010,2222x09,x26,0000x219,1221x25,02222122122220002221221222x05,x28,x06,x28,x05,x210,0000x210,00002222002222000222x06,2220022x08,220",three:"p[0,5,8]x06,22x012,22x011,2222x010,2222x09,x26,0000x219,1221x25,02222122122220002221221222x05,x28,x06,x28,x05,x210,0000x210,00002222002222000222x06,2220022x08,220",four:"p[0,6,14]x06,11x012,11x011,1111x010,1111x09,x16,0000x119,2112x15,01111211211110001112112111x05,x18,x06,x18,x05,x110,0000x110,00001111001111000111x06,1110011x08,110"},Vine:["multiple","vertical",{top:"p[0,6,14]00222x010,x25,x08,2211122x07,x25,12x09,222022x012,22x012,22x012,22x012,22x012,220022x08,2202222x07,2221112x07,x26,12x06,220x25,",middle:"p[0,6,14]x06,22x012,22x012,22x08,220022x07,2222022x07,2111222x06,21x26,x06,x25,022x012,22x012,22x012,22x012,220022x08,2202222x07,2221112x07,x26,12x06,220x25,"}]},solids:{Axe:{normal:"p[0,2,4,6,9]003x010,3000323300420033130032333322333313032x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,130323333423333130002330042000313000300002200003x09,42x014,22x014,42x014,22x014,42x07,",two:"p[0,2,4,9]003x010,3000323300320033130032333322333313032x36,2x35,1332x36,2x35,1332x36,2x35,1332x36,2x35,1332x36,2x35,13032x35,23333130002330032000313000300002200003x09,32x014,22x014,32x014,22x014,32x07,",three:"p[0,2,4,9,11]004x010,4000424400320044140042444422444414042x45,32x45,1442x45,32x45,1442x45,32x45,1442x45,32x45,1442x45,32x45,140424444324444140002440032000414000400002200004x09,32x014,22x014,32x014,22x014,32x07,"},Block:{normal:{normal:"p[0,2,9]0x114,01x214,1121x210,1211x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,1121x210,1211x214,10x114,0",unused:{normal:"p[0,2,6,9]0x314,03x214,1321x210,12132222x35,x25,132223311133222213222331223312221322233122331222132222112333122213x26,3311122213x26,331x25,13x27,11x25,13x26,33x26,13x26,331x25,1321x25,112221213x214,x117,",two:"p[0,2,9]0x214,0x215,1221x210,121x215,1x26,111x26,1x26,1222212221x26,1222212221x25,11222212221x29,1112221x29,1x25,1x28,11x25,1x215,1x29,1x25,1221x25,11222121x215,x117,",three:"p[0,2,9,11]0x214,02x314,1231x310,13123333x25,x35,123332211122333312333221332213331233322133221333123333113222133312x36,2211133312x36,221x35,12x37,11x35,12x36,22x36,12x36,221x35,1231x35,113331312x314,x117,"}},Underworld:{normal:"p[0,9,16]0x214,02x114,2212x110,2122x114,22x114,22x114,22x114,22x114,22x114,22x114,22x114,22x114,22x114,2212x110,2122x114,20x214,0",unused:{normal:"p[0,6,9,16]0x214,02x114,3213x110,31321111x25,x15,321112233322111132111223112231113211122311223111321111331222311132x16,2233311132x16,223x15,32x17,33x15,32x16,22x16,32x16,223x15,3213x15,331113132x114,x317,",two:"p[0,9,16]0x114,0x115,2112x110,212x115,2x16,222x16,2x16,2111121112x16,2111121112x15,22111121112x19,2221112x19,2x15,2x18,22x15,2x115,2x19,2x15,2112x15,22111212x115,x217,",three:"p[0,9,11,16]0x114,01x214,3123x210,32312222x15,x25,312221133311222231222113221132223122211322113222312222332111322231x26,1133322231x26,113x25,31x27,33x25,31x26,11x26,31x26,113x25,3123x25,332223231x214,x317,"}},Castle:["same",["solids","Block","Underworld"]]},Brick:{normal:{normal:"p[2,5,9]x116,x27,0x27,0x27,0x27,x017,2220x27,0x27,0x27,0x27,0x27,02222x016,x27,0x27,0x27,0x27,0x27,0x27,x017,2220x27,0x27,0x27,0x27,0x27,02222x016,",used:["same",["solids","Block","Overworld","used"]]},Underworld:{normal:"p[2,16]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,",used:["same",["solids","Block","Overworld","used"]]},Castle:["filter",["solids","Brick","Overworld"],filters.Castle],Alt2:["filter",["solids","Brick","Overworld"],filters.Alt2]},BridgeBase:"p[0,2,5,8]111000112221012222x35,222x35,222x35,222x35,22221012211100011",Cannon:["multiple","vertical",{top:"p[0,2,5,9]222x010,2222111x210,11222x110,x26,1x213,111x210,112x112,2112x112,2112x112,2112x15,22221112112111121111311211211121122113121121112121131312112111212113131211211121133113221122212x16,3122221102x16,302110002x18,3x06,2x18,3x05,2x110,300002x110,3000211x38,1130021333222233313021133x26,3313021133232232331132113233223323113211323322332311321132332233231132113x28,3113211333233233311321133322223331132111x38,11132x114,3",middle:"p[2,5,9]1x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,2"}],CastleAxe:"p[0,2,4,6,8]003x010,3000323300420033130032333322333313032x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,130323333423333130002330042000313000300002200003x09,42x014,22x014,42x014,22x014,42x07,",CastleBlock:"p[0,4,9]0x114,01x214,1121x210,1211x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,1121x210,1211x214,10x114,0",CastleBridge:"p[1,2,4,8]10001000100010001000100010001000122212223222322232223222322232223222322232223222322232221222122213331333133313331333133313331333",CastleChain:"p[0,1,3]x014,1x013,1x014,22x011,12x013,22x011,12x012,102x012,22x011,12x012,102x012,22x011,12x013,22x011,12x012,102x012,22x013,",CastleStone:{normal:"p[1,2,3,4]0031x06,31000022310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,3102223331x37,13333x116,x06,31x06,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,31x37,1x37,x117,",Underwater:"p[2,12,14,20]1103x16,03111122031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,0312220003x07,30000x316,x16,03x16,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,03x07,3x07,x317,"},Cloud:"p[0,1,2]000x210,x05,2x110,20002x112,2002x112,2002x112,202x114,22x15,2112x15,22x15,2112x15,22x15,2112x15,22x114,2212x110,2120211121111211120021111222211112002x112,2000211112211112x05,2222002222000",Coral:"p[0,7,8]0000100012x05,110001000120000121001000112000120110100012000020001010011211112000101001x26,100021100120000221000221112x06,2x05,22120001x05,1000012001x06,1011012001000100101001120122010001100012120022000021001122000020000211112x011,22212x06,",DeadGoomba:{normal:"p[0,5,9,15]x06,2222x09,x210,000022333222233322022111133331111x218,000x110,x07,x18,x05,x35,0000x35,0",Underworld:"p[0,15,16,18]x06,2222x09,x210,000022111222211122022333311113333x218,000x310,x07,x38,x05,x15,0000x15,0",Castle:["filter",["solids","DeadGoomba","normal"],filters.Castle]},Firework:{normal:"p[0,6,8]x070,2002x010,20222202x09,221122x09,22111122x08,22111122x09,221122x09,20222202x010,2002x070,",n2:"p[0,1,6,8]x020,3x06,3x09,303303x09,x38,x06,303232232303x05,3321221233x06,3221111223x05,3332111123330000333211112333x05,3221111223x06,3321221233x05,303232232303x06,x38,x09,303303x09,3x06,3x020,",n3:"p[0,1,6,8]00030033330030000300x38,003000x35,22x35,00303323233232330300323x26,32300033321211212333033232x16,232x35,22x16,22x36,22x16,22x35,232x16,23233033321211212333000323x26,32300303323233232330300x35,22x35,000300x38,00300003003333003000"},Flag:{normal:"p[0,1,14]x116,0x18,x25,1100x16,22121221000x15,211211210000111121222121x05,11122212221x06,11x27,1x07,111222111x08,x18,x09,x17,x010,x16,x011,x15,x012,1111x013,111x014,11x015,1",Alt:"p[0,5,16]x116,0x18,x25,1100x16,22121221000x15,211211210000111121222121x05,11122212221x06,11x27,1x07,111222111x08,x18,x09,x17,x010,x16,x011,x15,x012,1111x013,111x014,11x015,1",Alt2:["same",["solids","Flag","Alt"]]},FlagPole:{normal:"p[13]x0288,",Alt:"p[1]x0288,",Alt2:["same",["solids","FlagPole","Alt"]]},FlagTop:{normal:"p[0,2,13,14]001111000123331012x35,112x35,11x36,11x36,10133331000111100",Alt:"p[0,1,3,4]002222000213332021x35,221x35,22x36,22x36,20233332000222200",Alt2:["same",["solids","Flag","Alt"]]},Floor:{normal:"p[2,5,9]2x18,02111121x28,01222201x28,01222201x28,01222201x28,01022201x28,02000021x28,0x15,01x28,01222201x28,01222201x28,012222000x26,01x25,01100222201x25,0121100001x26,0122211101x26,01x26,01x25,002x06,21x06,2",Underworld:"p[2,16,18]1x28,01222212x18,02111102x18,02111102x18,02111102x18,02011102x18,01000012x18,0x25,02x18,02111102x18,02111102x18,021111000x16,02x15,02200111102x15,0212200002x16,0211122202x16,02x16,02x15,001x06,12x06,1",Underwater:"p[2,12,14]22x112,0221111x29,0011122111222211100122x15,2212221202112222011x25,0211222201x26,021x26,0x25,0221x26,0022201201x26,0000101011112222000100101222122220012011x25,02200122011x25,0200012001x25,001111220012220000122220022x06,2x07,2",Castle:["same",["solids","Stone","Castle"]],Alt2:["filter",["solids","Floor","Overworld"],filters.Alt2]},Peach:"p[0,1,2,6,8]x019,303303x010,x36,x09,x48,x07,x410,x07,4443234444x07,433233434x06,x37,434x07,x38,44x05,3444x35,44x05,34433334444x06,x36,4444x06,4413341444x05,44133111144x05,431111331440000x39,144x05,x37,1444x07,44111144x07,x110,x05,x112,0000x112,0001111x46,111100x414,00x45,1111x45,0",Pipe:{normal:["multiple","vertical",{top:"p[0,2,13,14]x133,x230,11x35,x26,x319,1122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,232322x133,00x128,00",middle:"p[0,2,13,14]00122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,2322100"}],Castle:{normal:["multiple","vertical",{top:"p[0,1,3,4]x333,x130,33x25,x16,x219,3311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,121211x333,00x328,00",middle:"p[0,1,3,4]00311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,1211300"}],Underwater:["multiple","vertical",{top:"p[0,5,9,17]x133,x230,11x35,x26,x319,1122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,232322x133,00x128,00",middle:"p[5,9,17,20]33011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,1211033"}]},Alt:["same",["solids","Pipe","Castle"]],Alt2:["same",["solids","Pipe","Castle"]]},PipeSide:{normal:"p[0,2,13,14]x115,x024,1x213,x122,0001x213,11x220,1001x213,11x220,1001x213,11x220,1001x313,11x221,101x313,11x321,101x213,11x321,101x213,11x221,101x213,11x221,101x213,11x222,11x213,11x222,11x313,11x222,11x213,11x322,11x213,11x222,11x213,11x222,11x213,11x322,11x313,11x322,11x313,11x322,11x313,11x322,11x313,11x322,11x313,11x322,11x313,11x321,101x313,11x321,101x313,11x321,101x313,11323232323232323232323101323232323232311232323232323232323232101232323232323211323232323232323232321001323232323232311x220,1001x213,11x220,1001x213,x122,000x115,x024,",small:"p[0,2,13,14]x115,01x213,111x213,111x213,111x213,111x313,111x313,111x213,111x213,111x213,111x213,111x213,111x313,111x213,111x213,111x213,111x213,111x313,111x313,111x313,111x313,111x313,111x313,111x313,111x313,111x313,111323232323232311123232323232321113232323232323111x213,111x213,x117,0"},PipeVertical:{normal:"p[0,2,13,14]012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210",Castle:{normal:"p[0,1,3,4]00211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,1311200",Underwater:"p[0,7,8,17]00122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,2322100"}},Platform:{normal:"p[0,1,6,9]x18,x38,220000222x05,322x05,32223333x210,x38,",Sky:"p[0,1,6]001111000x15,2012x15,212x15,212211112112211220111122000222200"},Scale:{normal:["multiple","horizontal",{left:"p[0,2,5,9]000x27,00x28,0222333000022x35,00223331333022331113302233313330220x35,00220033300022x08,",middle:"p[0,5]x120,x080,",right:"p[0,2,5,9]x27,000x28,x05,333222000x35,22003331333220331113322033313332200x35,0220003330022x08,22"}],Alt:["multiple","horizontal",{left:"p[0,1,2,9]000x17,00x18,0111333000011x35,00113332333011332223301133323330110x35,00110033300011x08,",middle:"p[0,1]x120,x080,",right:"p[0,1,2,9]x17,000x18,x05,333111000x35,11003332333110332223311033323331100x35,0110003330011x08,11"}]},Springboard:{normal:["multiple","vertical",{top:"p[8]x032,",topheight:2,middle:"p[0,1,6]x05,110011x010,210012x010,200002x010,200002x09,2x06,2x08,2x06,2x08,2x06,2x07,2x08,2x05,12x08,21000011x08,11000011x08,11000012x08,21x05,2x08,2x07,2x06,2x08,2x06,2x08,2x06,2x09,200002x010,200002x010,210012x010,110011x05,",bottom:"p[2,8,9]x132,x27,0x27,0x27,0x27,x017,2220x27,0x27,0x27,0x27,0x27,02222x016,",bottomheight:9}],alt:["multiple","vertical",{top:"p[8]x032,",topheight:2,middle:"p[0,1,6]x05,110011x010,210012x010,200002x010,200002x09,2x06,2x08,2x06,2x08,2x06,2x07,2x08,2x05,12x08,21000011x08,11000011x08,11000012x08,21x05,2x08,2x07,2x06,2x08,2x06,2x08,2x06,2x09,200002x010,200002x010,210012x010,110011x05,",bottom:"p[3,4,8]x232,x07,1x07,1x07,1x07,x117,0001x07,1x07,1x07,1x07,1x07,10000x116,",bottomheight:9}]},Stone:{normal:"p[2,5,9]2x114,012x112,00112x110,0001112x18,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,0000111x09,200011x011,2001x013,2x016,2",Underwater:["same",["solids","Floor","Underwater"]],Underworld:["filter",["solids","Stone","Overworld"],filters.Underworld],Castle:{normal:"p[1,2,3,4]0031x06,31000022310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,3102223331x37,13333x116,x06,31x06,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,31x37,1x37,x117,",Underwater:"p[2,3,14,20]1103x16,03111122031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,0312220003x07,30000x316,x16,03x16,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,03x07,3x07,x317,"},Sky:"p[0,1,2]000x210,x05,2x110,20002x112,2002x112,2002x112,202x114,22x15,2112x15,22x15,2112x15,22x15,2112x15,22x114,2212x110,2120211121111211120021111222211112002x112,2000211112211112x05,2222002222000"},Toad:"p[0,1,2,6,8]x06,1111x010,x18,x06,144411114441000114441441444110011441444414411044111144441111x45,1114444111x46,1111441111x46,x110,x45,1133233233114401143323323341100300x38,00303330333223330x37,443333443333003x410,300004444333344440000444x36,4440000444x36,444x05,x110,x05,x112,000444x18,444041444x16,4441x47,1111x412,1111x46,",ShroomTop:["multiple","horizontal",{left:"p[0,2,6,8]000x113,001x36,x27,01x37,x27,01x37,x27,1x38,x27,1x37,x28,1x37,222333221x36,222x35,21x35,222x37,1x28,x37,1x28,x37,1x29,x35,21x210,333221x215,011x213,000x113,",middle:"p[2,6,8]x016,1x28,x18,x28,x19,x26,x132,x25,x110,x27,x19,x27,x18,x29,x17,x29,x17,x29,x17,x29,x18,x27,x19,x27,x110,x25,111x016,",right:"p[0,2,6,8]x113,000x38,x25,100x38,x26,10x38,x26,10x38,222333212x36,222x35,1223333222x36,1x29,x36,1x29,x36,1x210,x35,1x211,33321x215,1x215,1x215,1x214,x117,0"}],TreeTop:{normal:["multiple","horizontal",{left:"p[0,2,13]00x114,011x213,01x214,11x214,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x26,1x27,1012222101x25,10001111000x15,00",middle:"p[2,8,13]x016,x2199,0x27,00x25,010x25,011x05,111x05,11",right:"p[0,2,13]x114,00x213,110x214,10x214,11x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,11x27,1x26,101x25,10122221000x15,000111100"}],Alt:["multiple","horizontal",{left:"p[0,1,4]00x214,022x113,02x114,22x114,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x16,2x17,2021111202x15,20002222000x25,00",middle:"p[1,3,4]x216,x0199,2x07,22x05,212x05,211x25,111x25,11",right:"p[0,1,4]x213,000x113,200x114,20x114,20x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,22x17,2x16,202x15,20211112000x25,000222200"}],Alt2:["same",["solids","TreeTop","Alt"]]},WaterBlock:"20"},scenery:{BrickHalf:{normal:"p[2,9]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,",Alt2:["filter",["scenery","BrickHalf","normal"],filters.Alt2]},BrickPlain:{normal:"p[2,9]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x17,0x17,0",Alt2:["filter",["scenery","BrickPlain","normal"],filters.Alt2]},BridgeBase:"p[0,2,5,9]111000112221012222x35,222x35,222x35,222x35,22221012211100011",Bush1:"p[0,2,13,14]x014,1111x027,122221x024,11x26,1x022,1x28,101x020,1x29,121x019,1x26,3x25,1x017,122233222322221x016,12223x210,1x013,111x216,1001x08,1x219,10121x06,1x221,1221x06,x225,1010011x226,1211x230,11x230,101x228,10",Bush2:"p[0,2,13,14]x014,1111x012,1111x027,122221x010,122221x024,11x26,1x07,11x26,1x022,1x28,10100001x28,101x020,1x29,1210001x29,121x019,1x26,3x25,1001x26,3x25,1x017,1222332223222210122233222322221x016,12223x210,112223x210,1x013,111x232,1001x08,1x235,10121x06,1x237,1221x06,x241,1010011x242,1211x246,11x246,101x244,10",Bush3:"p[0,2,13,14]x014,1111x012,1111x012,1111x027,122221x010,122221x010,122221x024,11x26,1x07,11x26,1x07,11x26,1x022,1x28,10100001x28,10100001x28,101x020,1x29,1210001x29,1210001x29,121x019,1x26,3x25,1001x26,3x25,1001x26,3x25,1x017,12223322232222101222332223222210122233222322221x016,12223x210,112223x210,112223x210,1x013,111x248,1001x08,1x251,10121x06,1x253,1221x06,x257,1010011x258,1211x262,11x262,101x260,10",CastleBridge:"p[1,2,4,9]10001000100010001000100010001000122212223222322232223222322232223222322232223222322232221222122213331333133313331333133313331333",CastleChain:"p[0,1,3]x014,1x013,1x014,22x011,12x013,22x011,12x012,102x012,22x011,12x012,102x012,22x011,12x013,22x011,12x012,102x012,22x013,",CastleDoor:{normal:"p[2,9]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x15,x06,11110111x010,11011x012,1x017,1x014,11x014,1x0416,",Alt2:["filter",["scenery","CastleDoor","normal"],filters.Alt2]},CastleRailing:{normal:"p[0,2,5,9]2222x07,x25,3332x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,23333111x29,1111",Alt2:["filter",["scenery","CastleRailing","normal"],filters.Alt2]},CastleRailingFilled:{normal:"p[2,5,9]11112220222x15,222122202221x27,122202221x27,1x07,1x27,1x27,1x27,1x27,1x27,1x27,12222000x19,0000",Alt2:["filter",["scenery","CastleRailingFilled","normal"],filters.Alt2]},CastleTop:{normal:"p[2,9]x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,x025,1110x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,01111x024,x17,x09,x17,0x17,x09,x17,0x17,x09,x17,x025,11101111x08,1110x17,01111x08,1110x17,01111x08,11101111x024,x17,x09,x17,0x17,x09,x17,0x17,x09,x17,x025,11101111x08,1110x17,01111x08,1110x17,01111x08,11101111x024,",Alt2:["filter",["scenery","CastleTop","normal"],filters.Alt2]},CastleWall:{normal:"p[0,2,5,9]2222x07,x25,3332x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,23333111x29,1111x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,",Alt2:["filter",["scenery","CastleRailingFilled","normal"],filters.Alt2]},Cloud1:{normal:"p[0,1,2,19]x014,2222x027,211112x024,22x16,2x022,2x18,202x020,2x19,212x019,2x16,3x15,2x017,211133111311112x016,21113x110,2x013,222x116,2002x08,2x119,20212x06,2x121,2112x06,x125,2020022x126,2122x130,22x130,202x128,20002113x111,3x111,2x05,2113113x16,3x113,2x05,2113333111333311113x18,200002x15,x36,1x35,x19,x06,2221111331111333x18,22x09,2x16,2x18,21122x012,221112022111122022x016,22200002222x010,",Alt2:["filter",["scenery","Cloud1","normal"],filters.Alt2]},Cloud2:{normal:"p[0,1,2,19]x014,2222x012,2222x027,211112x010,211112x024,22x16,2x07,22x16,2x022,2x18,20200002x18,202x020,2x19,2120002x19,212x019,2x16,3x15,2002x16,3x15,2x017,2111331113111120211133111311112x016,21113x110,221113x110,2x013,222x132,2002x08,2x135,20212x06,2x137,2112x06,x141,2020022x142,2122x146,22x146,202x144,20002113x111,3x115,3x111,2x05,2113113x16,3x18,3x16,3x113,2x05,21133331113333111131333111333311113x18,200002x15,x36,1x35,1111x36,1x35,x19,x06,2221111331111333x17,331111333x18,22x09,2x16,2x18,2x16,2x18,21122x012,2211120221111220221112022111122022x016,22200002222x05,22200002222x010,",Alt2:["filter",["scenery","Cloud2","normal"],filters.Alt2]},Cloud3:{normal:"p[0,1,2,19]x014,2222x012,2222x012,2222x027,211112x010,211112x010,211112x024,22x16,2x07,22x16,2x07,22x16,2x022,2x18,20200002x18,20200002x18,202x020,2x19,2120002x19,2120002x19,212x019,2x16,3x15,2002x16,3x15,2002x16,3x15,2x017,21113311131111202111331113111120211133111311112x016,21113x110,221113x110,221113x110,2x013,222x148,2002x08,2x151,20212x06,2x153,2112x06,x157,2020022x158,2122x162,22x162,202x160,20002113x111,3x115,3x115,3x111,2x05,2113113x16,3x18,3x16,3x18,3x16,3x113,2x05,211333311133331111313331113333111131333111333311113x18,200002x15,x36,1x35,1111x36,1x35,1111x36,1x35,x19,x06,2221111331111333x17,331111333x17,331111333x18,22x09,2x16,2x18,2x16,2x18,2x16,2x18,21122x012,22111202211112202211120221111220221112022111122022x016,22200002222x05,22200002222x05,22200002222x010,",Alt2:["filter",["scenery","Cloud3","normal"],filters.Alt2]},Fence:"p[0,2,5,9]000023222331x08,2322333100003322232233312222333323223331333311112322333x15,000023223331x08,23223331x08,23232331x08,23232331x08,2323233100003322232323312222333323232331333311112322233x15,000023222331x08,23222331x08,232223310000",HillLarge:"p[0,2,14]x037,x16,x071,111x26,111x066,11x212,11x063,1x213,1221x061,1x213,111221x059,1x214,1112221x057,1x215,11122221x055,1x213,112111x25,1x053,1x214,11221x27,1x051,1x215,11x211,1x049,1x216,11x212,1x047,1x232,1x045,1x234,1x043,1x236,1x041,1x238,1x039,1x240,1x037,1x242,1x035,1x244,1x033,1x246,1x031,1x213,1x223,1x210,1x029,1x213,111x221,111x210,1x027,1x214,111x221,111x211,1x025,1x215,111x221,111x212,1x023,1x213,112111x218,112111x213,1x021,1x214,11221x219,11221x215,1x019,1x215,11x222,11x219,1x017,1x216,11x222,11x220,1x015,1x264,1x013,1x266,1x011,1x268,1x09,1x270,1x07,1x272,1x05,1x274,10001x276,101x278,1",HillSmall:"p[0,2,14]x021,x16,x039,111x26,111x034,11x212,11x031,1x213,1221x029,1x213,111221x027,1x214,1112221x025,1x215,11122221x023,1x213,112111x25,1x021,1x214,11221x27,1x019,1x215,11x211,1x017,1x216,11x212,1x015,1x232,1x013,1x234,1x011,1x236,1x09,1x238,1x07,1x240,1x05,1x242,10001x244,101x246,1",Pirhana:["same",["characters","Pirhana"]],pirhana:["same",["characters","Pirhana"]],PlantLarge:{normal:"p[0,2,5,13]x06,1111x010,11333311x07,1x38,1x05,1x310,10001x312,1001x312,101x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,101x312,1001x312,1001x312,10001x310,1000011x38,11x05,1113333111x07,x18,x09,x17,x08,1x26,1x08,12222121x08,12222121x08,12222121x08,12222121x08,11222211x09,121121x09,12122121x08,1x26,1x08,12222121x08,12222121x08,12222121x08,12222121x08,11222211x09,121121x09,121221210000",Alt:"p[0,1,2,3,5]x06,3333x010,33111133x07,3x18,3x05,3x110,30003x112,3003x112,303x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,303x112,3003x112,3003x112,30003x110,3000033x18,33x05,3331111333x07,x38,x09,x37,x08,2x46,2x08,24444242x08,24444242x08,24444242x08,24444242x08,22444422x09,242242x09,24244242x08,2x46,2x08,24444242x08,24444242x08,24444242x08,24444242x08,22444422x09,242242x09,242442420000",Alt2:["same",["solids","PlantLarge","Alt"]]},PlantSmall:{normal:"p[0,2,5,13]x05,1111x08,11333311x05,1x38,10001x310,101x312,11x312,11x312,11x312,11x312,101x310,10011x38,110001113333111x05,x18,x07,x17,x06,1x26,1x06,12222121x06,12222121x06,12222121x06,12222121x06,11222211x07,121121x07,12122121x06,1x26,1x06,12222121x06,12222121x06,12222121x06,12222121x06,11222211x07,121121x07,12122121000",Alt:"p[0,1,2,3,5]x05,3333x08,33111133x05,3x18,30003x110,303x112,33x112,33x112,33x112,33x112,303x110,30033x18,330003331111333x05,x38,x07,x37,x06,2x46,2x06,24444242x06,24444242x06,24444242x06,24444242x06,22444422x07,242242x07,24244242x06,2x46,2x06,24444242x06,24444242x06,24444242x06,24444242x06,22444422x07,242242x07,24244242000",Alt2:["same",["solids","PlantSmall","Alt"]]},Railing:{normal:"p[0,2,13]2x06,221x05,12010001220100012200111022x06,22x06,22x06,2",Night:"p[0,1,3]1x06,112x05,21020002110200021100222011x06,11x06,11x06,1"},ShroomTrunk:["multiple","vertical",{top:"p[2,5,9]0x114,00x114,00x114,00x114,00x114,00111121111211110021121211212112001221112211122100x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,0",middle:"p[2,5]0x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,0"}],String:"x056,",TreeTrunk:{normal:"p[2,9]x120,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x140,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x120,",Underworld:["filter",["scenery","TreeTrunk","normal"],filters.Underworld],Alt2:["filter",["scenery","TreeTrunk","normal"],filters.Alt2]},Water:{normal:"p[0,1,17]x028,1x06,121000012210011222100x26,1121x26,1212222122122112",Underwater:"p[1,17,20]x212,0x26,010222201102200111022x16,0010x16,010111101101100x19,",Night:"p[2,1,19]x028,1x06,121000012210011222100x26,1121x26,1212222122122112",Castle:{normal:"p[0,1,8]x028,1x06,121000012210011222100x26,1121x26,1212222122122112",Underwater:"p[1,17,20]x212,0x26,010222201102200111022x16,0010x16,010111101101100x19,"}},WaterFill:{normal:{normal:"p[17]x088,",Night:"p[19]x088,"},Castle:"p[8]x088,"}}},cache:{},posts:[]},library.filters=filters,delete window.filters,library.sprites=libraryParse(library.rawsprites),libraryPosts()}function libraryParse(e){var t,n,x={};for(n in e)switch((t=e[n]).constructor){case String:x[n]=spriteGetArray(spriteExpand(spriteUnravel(t)));break;case Array:library.posts.push({caller:x,name:n,command:e[n]});break;case Object:x[n]=libraryParse(t)}return x}function libraryPosts(){var e,t,n,x,r,i=library.posts;for(r in i)t=(e=i[r]).caller,n=e.name,x=e.command,t[n]=evaluatePost(t,x,r)}function evaluatePost(e,t,n){switch(t[0]){case"same":return followPath(library.sprites,t[1],0);case"filter":return applyLibraryFilter(followPath(library.rawsprites,t[1],0),t[2],n);case"multiple":return evaluatePostMultiple(t)}}function applyLibraryFilter(e,t){switch(t[0]){case"palette":return e.constructor==String?spriteGetArray(spriteExpand(applyPaletteFilter(spriteUnravel(e),t[1]))):applyPaletteFilterRecursive(e,t[1])}}function applyPaletteFilterRecursive(e,t){var n,x,r={};for(x in e)switch((n=e[x]).constructor){case String:r[x]=spriteGetArray(spriteExpand(applyPaletteFilter(spriteUnravel(n),t)));break;case Object:r[x]=applyPaletteFilterRecursive(n,t)}return r}function applyPaletteFilter(e,t){var n,x,r,i="";for(x=0,r=e.length;x8||e[1]<=0)){var n="Maps/World"+e[0]+e[1]+".js";t.open("GET",n,!0),mlog("Maps","Requesting:",n),t.send(),t.onreadystatechange=function(){if(4==t.readyState){if(200==t.status)mapfuncs[e[0]][e[1]]=Function(t.responseText),window.parentwindow&&parentwindow.onMapLoad&&(parentwindow.onMapLoad(e[0],e[1]),setTimeout((function(){parentwindow.onMapLoad(e[0],e[1])}),2100)),mlog("Maps"," Loaded: Maps/World"+e[0]+e[1]+".js");else if(404!=t.status)return;setTimeout((function(){passivelyLoadMap(setNextLevelArr(e),t)}),7)}}}}function setNextLevelArr(e){return 4==e[1]++&&(++e[0],e[1]=1),e}function resetMaps(){var e;window.currentmap=[1,1],window.defaultsetting={setting:"Overworld"},window.mapfuncs=new Array(9);for(var t,n=1;n<=9;++n)for(t=(e=mapfuncs[n]=[0,0,0,0,0]).length;t>=0;--t)e[t]=window["World"+n+t];mapfuncs.Random={Overworld:WorldRandomOverworld,Underworld:WorldRandomUnderworld,Underwater:WorldRandomUnderwater,Bridge:WorldRandomBridge,Sky:WorldRandomSky,Castle:WorldRandomCastle},mapfuncs.Special={Blank:BlankMap},startLoadingMaps()}function Map(){this.underwater=this.current_character=this.current_solid=this.current_scenery=this.xloc=0,this.canscroll=!0,this.floor=104,this.time=400,this.curloc=-1,this.gravity=gravity,this.maxyvel=1.75*unitsize,this.maxyvelinv=-2.1*this.maxyvel}function Area(e,t){this.creation=t||function(){},this.precharacters=[],this.presolids=[],this.prescenery=[],this.floor=140,this.width=0,this.underwater=!1,setAreaSetting(this,e||"")}function setAreaSetting(e,t,n){map.shifting=!0,1==arguments.length&&(t=arguments[0]||"Overworld",e=map.area),e.setting=e.background=t,e.theme=t.split(" ")[0],e.fillStyle=getAreaFillStyle(e.setting),-1!=e.fillStyle.indexOf("Underwater")?goUnderWater():goOntoLand(),n&&AudioPlayer.playTheme(),gameon&&clearAllSprites(),map.shifting=!1}function Location(e,t,n){this.area=e,this.xloc=n||0,this.yloc=this.floor=0,this.entry=1==t?entryPlain:t||entryNormal}function PreThing(e,t,n){this.xloc=e,this.yloc=t,this.type=n;var x=arrayMake(arguments),r=new Thing;x[2]=n,x=x.splice(2),Thing.apply(r,x),this.object=r}function setMap(e,t){if(gameon){!window.canedit&&window.editing&&editorClose(!0),removeRandomDisplays(),e instanceof Array&&(t=e[1],e=e[0]);var n=e?[e,t]:window.currentmap,x=new Map,r=mapfuncs[n[0]];r?(n.func=r=r[n[1]],r?(window.map=x,window.currentmap=n,r(x),x.areanum=x.curloc=0,window.area=x.area=x.areas[0],window.player&&player.power&&storePlayerStats(),window.data&&(data.scoreold=data.score.amount),shiftToLocation(0)):log("No such map exists (yet?):",r)):log("No such map section exists (yet?):",r)}}function setMapRandom(e){gameon&&(resetSeed(),"string"==typeof e?e=["Random",e]:e||(e=["Random","Overworld"]),setMap(e[0],e[1]),data.traveledold=data.traveled,map.sincechange=map.num_random_sections=0,map.entrancetype=e[2],map.random=!0,"Sky"==map.randname&&(map.exitloc=["Random","Overworld","Down"]))}function shiftToLocation(e){if(map.random&&"number"!=typeof e)return setMapRandom(e);"number"==typeof e&&(e=map.locs[e]),pause(),resetGameState(),resetGameScreenPosition(),resetQuadrants(),map.areanum=e.area,window.area=map.area=map.areas[map.areanum],setAreaPreCreation(area),area.creation(),setAreaPostCreation(area),spawnMap(),player=placePlayer(),scrollPlayer(e.xloc*unitsize),locMovePreparations(player),unpause(),e.entry(player,e.entrything),TimeHandler.addEvent(AudioPlayer.playTheme,2),TimeHandler.addEventInterval(checkTexts,117,1/0)}function setAreaPreCreation(e){window.events=[],TimeHandler.clearAllEvents(),window.characters=[],window.solids=[],window.scenery=[],clearTexts(),e.precharacters=[],e.presolids=[],e.prescenery=[],map.current_solid=map.current_character=map.current_scenery=map.shifting=0,map.canscroll=!0,data.time.amount=map.time,data.world.amount=currentmap[0]+"-"+currentmap[1],setDataDisplay(),startDataTime(),map.random&&(data.world.amount="Random Map",data.world.element.innerHTML="WORLD
Random Map")}function clearTexts(){if(window.texts)for(var e=texts.length-1;e>=0;--e)texts[e]&&removeChildSafe(texts[e],body);window.texts=[]}function setAreaPostCreation(){if(map.current_character=map.current_solid=map.current_scenery=0,area.width=max(area.width,gamescreen.width),map.underwater=map.area.underwater,map.jumpmod=1.056+3.5*map.underwater,map.has_lakitu=!1,TimeHandler.addEvent(setMapGravity,1),area.underwater&&(area.presolids.push(new PreThing(0,0,WaterBlock,area.width)),map.random||area.presolids.push(new PreThing(0,16,Sprite,"Water",[area.width/3,1]))),area.presolids.sort(prethingsorter),area.precharacters.sort(prethingsorter),area.prescenery.sort(prethingsorter),area.sections&&area.sections[0])setBStretch(),area.sections.current=0,area.sections[0](area.sections.start);else if(!map.random&&"Sky"!=area.setting){var e=new PreThing(area.width,0,ScrollBlocker);area.presolids.push(e)}area.fillStyle=getAreaFillStyle(area.setting)}function getAreaFillStyle(e){return stringHas(e,"Underworld")||stringHas(e,"Castle")||stringHas(e,"Night")?stringHas(e,"Underwater")?"#2038ec":"black":stringHas(e,"Underwater")?"#2038ec":"#5c94fc"}function prethingsorter(e,t){return e.xloc==t.xloc?t.yloc-e.yloc:e.xloc-t.xloc}function setLocationGeneration(e){map.curloc=e,map.refx=map.locs[map.curloc].xloc,map.refy=map.locs[map.curloc].yloc+map.floor,map.areanum=map.locs[map.curloc].area}function spawnMap(){var e,t,n,x,r,i=map.area,a=QuadsKeeper.getOutDifference(),o=gamescreen.right+a,l=o+(2*QuadsKeeper.getQuadWidth()+a);for(t=(e=i.precharacters).length,r=map.current_character;t>r&&o>=(n=e[r]).xloc*unitsize;)addThing(x=n.object,n.xloc*unitsize-gamescreen.left,n.yloc*unitsize),x.placenum=r,++r;for(map.current_character=r,t=(e=i.presolids).length,r=map.current_solid;t>r&&l>=(n=e[r]).xloc*unitsize;)addThing(x=n.object,n.xloc*unitsize-gamescreen.left,n.yloc*unitsize),x.placenum=r,++r;for(map.current_solid=r,t=(e=i.prescenery).length,r=map.current_scenery;t>r&&l>=(n=e[r]).xloc*unitsize;)addThing(x=n.object,n.xloc*unitsize-gamescreen.left,n.yloc*unitsize),x.placenum=r,++r;map.current_scenery=r}function goToTransport(e){e instanceof Array?(map.ending=!0,storePlayerStats(),pause(),map.random?setMapRandom(e):setMap(e)):shiftToLocation(map.locs[e]),is_mobile&&applyNewJs()}function entryPlain(e){setLeft(e,unitsizet16),setBottom(e,map.floor*unitsize),e.nocollide=e.piping=!1,e.placed=!0}function entryNormal(e){setLeft(e,unitsizet16),setTop(e,unitsizet16),e.nocollide=e.piping=!1,e.placed=!0}function entryBlank(e){setLeft(e,unitsizet16),setBottom(e,map.floor*unitsize),e.nocollide=e.piping=e.movement=!1,e.placed=e.nofall=e.nocollide=notime=nokeys=!0,thingStoreVelocity(e),clearDataDisplay()}function entryRandom(e){switch(data.time.amount=0,data.time.dir=1,updateDataElement(data.time),map.startwidth?map.nofloor||pushPreFloor(0,0,map.startwidth):map.startwidth=0,map.firstRandomThings(map),map.randtype(8*(map.startwidth+1)),entryPlain(e),addDistanceCounter(),addSeedDisplay(),map.entrancetype){case"Down":entryNormal(player);break;case"Up":locMovePreparations(player),exitPipeVert(player,addThing(new Thing(Pipe,32),unitsizet8,(map.floor-32)*unitsize));break;case"Vine":locMovePreparations(player),TimeHandler.addEvent((function(){enterCloudWorld(player,!0)}),1),player.nofall=!0,spawnMap();break;case"Castle":startCastle(player)}}function enterCloudWorld(e){map.random&&(map.exitloc=getAfterSkyTransport());var t=140*unitsize,n=72*unitsize;e.placed=e.nofall=!0,setTop(e,t),setLeft(e,30*unitsize),removeClass(e,"jumping"),addClasses(e,["climbing","animated"]),e.climbing=TimeHandler.addSpriteCycle(e,["one","two"],"climbing"),e.attached=new Thing(Vine,-1),addThing(e.attached,unitsizet32,t-unitsizet8);var x=setInterval((function(){if(e.attached.top<=n){clearInterval(x),setTop(e.attached,n,!0),e.attached.movement=!1;var t=e.attached.top+unitsizet16;x=setInterval((function(){shiftVert(e,-1*unitsized4,!0),e.top<=t&&(removeClass(e,"animated"),clearInterval(x),setTop(e,t,!0),clearInterval(x),setTimeout((function(){setLeft(e,36*unitsize,!0),addClass(e,"flipped"),setTimeout((function(){playerHopsOff(e,e.attached,!0),TimeHandler.clearClassCycle(e,"climbing"),e.running=TimeHandler.addSpriteCycle(e,["one","two","three","two"],"running",setPlayerRunningCycler)}),28*timer)}),14*timer))}),timer)}}),timer)}function walkToPipe(){player=placePlayer(),startWalking(player),map.canscroll=!1;var e=setInterval((function(){player.piping&&(AudioPlayer.pauseTheme(),clearInterval(e),player.maxspeed=player.maxspeedsave)}),timer);unpause()}function startWalking(e){e.movement=movePlayer,e.maxspeed=e.walkspeed,nokeys=notime=e.keys.run=!0,e.nofall=e.nocollide=!1}function intoPipeVert(e,t,n){if(!(!t.transport||!e.resting||e.right+unitsizet2>t.right||e.left-unitsizet2=t.top&&(clearInterval(x),setTimeout((function(){goToTransport(n)}),700))}),timer)}}function intoPipeHoriz(e,t,n){pipePreparations(e),switchContainers(e,characters,scenery),unpause();var x=setInterval((function(){shiftHoriz(e,unitsized4,!0),e.left>=t.left&&(clearInterval(x),setTimeout((function(){goToTransport(n)}),700))}),timer)}function pipePreparations(e){AudioPlayer.pauseTheme(),AudioPlayer.play("Pipe"),locMovePreparations(e),e.nofall=e.nocollide=nokeys=notime=!0,e.movement=e.xvel=e.yvel=0}function locMovePreparations(e){e.keys=new Keys,e.nocollide=e.piping=1,e.placed=!1,removeCrouch(),removeClass(e,"running"),removeClass(e,"jumping"),removeClass(e,"flipped")}function startCastle(e){(e=e||window.player)&&(setBottom(e,56*unitsize),setLeft(e,unitsizet2),e.nocollide=e.piping=!1,e.placed=!0)}function exitPipeVert(e,t){switchContainers(e,characters,scenery),e.nofall=nokeys=notime=!0,AudioPlayer.play("Pipe"),setTop(e,t.top),setMidXObj(e,t,!0);var n=unitsize/-4,x=setInterval((function(){shiftVert(e,n,!0),e.bottom<=t.top&&(switchContainers(e,scenery,characters),clearInterval(x),e.nocollide=e.piping=e.nofall=nokeys=notime=!1,e.placed=!0)}),timer)}function endLevel(){map.ending||(map.ending=!0,map.random?setMapRandom(["Random","Castle"]):setNextLevelArr(currentmap),storePlayerStats(),pause(),setMap())}function setExitLoc(e){map.exitloc=e}function pushPreThing(e,t,n,x,r){var i=new PreThing(map.refx+t,map.refy-n,e,x,r),a=i.object;return!a.solid&&!a.character||a.nostretch||(map.area.width=max(map.area.width,i.xloc+a.width)),a.solid&&!a.spawn_as_char?map.area.presolids.push(i):map.area.precharacters.push(i),i}function pushPreScenery(e,t,n,x,r){x=round(x||1),r=round(r||1);var i=new PreThing(map.refx+t,map.refy-n,Sprite,e,[x,r]);return i.yloc-=i.object.height,map.area.prescenery.push(i),i}function pushPreScenerySolid(e,t,n,x,r){x=x||1,r=r||1;var i=new PreThing(map.refx+t,map.refy-n,Sprite,e,[x,r]);return i.yloc-=i.object.height,map.area.presolids.push(i),i}function pushPreText(e,t,n){var x=new PreThing(map.refx+t,map.refy-n,FuncSpawner,spawnText,e);return map.area.presolids.push(x),x}function fillPreThing(e,t,n,x,r,i,a,o,l){for(var s,d,u=t,p=0;pTHANK YOU "+window.player.title.toUpperCase()+"!",style:x},e+160,66).object,pushPreText({innerHTML:"YOUR QUEST IS OVER.
WE PRESENT YOU A NEW QUEST.
",style:x},e+148,50).object,pushPreText({innerHTML:"PRESS BUTTON B
TO SELECT A WORLD.
",style:x},e+148,26).object]):(pushPreThing(Toad,e+194,12).object,n.text=[pushPreText({innerHTML:"THANK YOU "+window.player.title.toUpperCase()+"!",style:x},e+160,66).object,pushPreText({innerHTML:"BUT OUR PRINCESS IS IN
ANOTHER CASTLE!
",style:x},e+148,50).object])}function pushPreSectionPass(e,t,n,x,r){var i=pushPreThing(Collider,e,t,[n,x],[sectionPass,sectionColliderInit]).object,a=(r=map.area.sections.current||0,map.area.sections[r]);a.numpass?++a.numpass:a.numpass=1,a.colliders?a.colliders.push(i):a.colliders=[i]}function pushPreSectionFail(e,t,n,x,r){var i=pushPreThing(Collider,e,t,[n,x],[sectionFail,sectionColliderInit]).object,a=(r=map.area.sections.current||0,map.area.sections[r]);a.colliders?a.colliders.push(i):a.colliders=[i]}function pushCastleDecider(e,t){pushPreThing(castleDecider,e,ceilmax,e,t)}function sectionColliderInit(e){e.sections=map.area.sections,e.parent=e.sections[e.sections.current],e.movement=!1}function sectionPass(e,t){if("player"!=e.type)return!1;t.nocollide=!0,--t.parent.numpass||activateSection(t.parent,!0)}function sectionFail(e,t){if("player"!=e.type)return!1;t.nocollide=!0,activateSection(t.parent,!1)}function activateSection(e,t){for(var n=e.colliders,x=n.length-1;x>=0;--x)killNormal(n[x]);e.activated=!0,e.passed=t}function pushPreTree(e,t,n){pushPreThing(TreeTop,e,t,n);var x=DtB(t);pushPreScenerySolid("TreeTrunk",e+8,t-x-8,n-2,x/8)}function pushPreShroom(e,t,n){pushPreThing(ShroomTop,e,t,n);var x=DtB(t-4);pushPreScenery("ShroomTrunk",e+4*n-4,t-x-8,1,x/8)}function pushPrePipe(e,t,n,x,r,i){isFinite(n)||(n=gamescreen.height,t-=gamescreen.height);var a=pushPreThing(Pipe,e,t+n,n/8,r),o=a.object;return x&&(o.pirhana=pushPreThing(Pirhana,e+4,t+n+12).object),i&&(map.locs[i].entrything=o,map.locs[i].xloc=e),a}function pushPreCastle(e,t,n){e=e||0,t=t||0,n?pushPreCastleBig(e,t):pushPreCastleSmall(e,t)}function pushPreCastleBig(e,t){var n,x;for(pushPreCastleSmall(e+16,t+48),n=0;n<3;++n)for(x=0;x<2;++x)pushPreScenerySolid("BrickPlain",e+16+16*n,t+24+8*x);for(n=0;n<2;++n)pushPreScenerySolid("CastleDoor",e+24+16*n,t+24);for(n=0;n<5;++n){if(2==n)continue;pushPreScenerySolid("BrickHalf",e+16+8*n,t+48)}for(n=0;n<2;++n)pushPreScenerySolid("CastleRailing",e+8*n,t+44);for(n=0;n<5;++n)pushPreScenerySolid("CastleRailingFilled",e+16+8*n,t+44);for(n=5;n<7;++n)pushPreScenerySolid("CastleRailing",e+16+8*n,t+44);for(n=0;n<2;++n)for(x=0;x<3;++x)pushPreScenerySolid("BrickPlain",e+24+16*n,t+8*x);for(n=0;n<3;++n)pushPreScenerySolid("CastleDoor",e+16+16*n,t);for(n=0;n<2;++n){for(x=0;x<5;++x)pushPreScenerySolid("BrickPlain",e+8*n,t+8*x);pushPreScenerySolid("BrickHalf",e+8*n,t+40)}for(n=0;n<2;++n){for(x=0;x<5;++x)pushPreScenerySolid("BrickPlain",e+56+8*n,t+8*x);pushPreScenerySolid("BrickHalf",e+56+8*n,t+40)}for(n=0;n<3;++n)for(x=0;x<2;++x)pushPreScenerySolid("BrickHalf",e+16+16*n,t+20+20*x)}function pushPreCastleSmall(e,t){var n,x;for(n=0;n<3;++n)pushPreScenerySolid("CastleRailing",e+8+8*n,t+36);for(n=0;n<2;++n)pushPreScenerySolid("CastleTop",e+8+12*n,t+24);for(pushPreScenerySolid("CastleRailing",e,t+20),n=1;n<=3;++n)pushPreScenerySolid("CastleRailingFilled",e+8*n,t+20);for(pushPreScenerySolid("CastleRailing",e+32,t+20),n=0;n<2;++n)for(pushPreScenerySolid("BrickHalf",e+8*n,t),x=0;x<2;++x)pushPreScenerySolid("BrickPlain",e+8*n,t+4+8*x);for(n=0;n<2;++n)for(pushPreScenerySolid("BrickHalf",e+24+8*n,t),x=0;x<2;++x)pushPreScenerySolid("BrickPlain",e+24+8*n,t+4+8*x);pushPreScenerySolid("CastleDoor",e+16,t)}function pushPreFuncCollider(e,t){return e instanceof Array?(console.log("position",e),pushPreThing(FuncCollider,e[0],e[1],t,[e[2],e[3]])):pushPreThing(FuncCollider,e,ceilmax+40,t)}function pushPreFuncSpawner(e,t){return pushPreThing(FuncSpawner,e,jumplev1,t)}function zoneEnableLakitu(){map.zone_lakitu=!0,enterLakitu()}function zoneDisableLakitu(){if(map.has_lakitu){var e=map.has_lakitu;map.zone_lakitu=map.has_lakitu=!1,e.lookleft||(e.lookleft=!0,removeClass(e,"flipped")),e.movement=function(e){e.xvel=max(e.xvel-unitsized32,-1*unitsize)}}}function zoneStartCheeps(e){pushPreFuncCollider(e,zoneEnableCheeps)}function zoneStopCheeps(e){pushPreFuncCollider(e,zoneDisableCheeps)}function zoneEnableCheeps(e){!map.zone_cheeps&&e.player&&startCheepSpawn()}function zoneDisableCheeps(e){e.player&&(map.zone_cheeps=!1)}function pushPrePattern(e,t,n,x){var r,i,a,o=t,l=Scenery.patterns[e];for(i=0;i

super

MARIO BROS.

©1985 NINTENDO

Move: Arrows/WASD
Fire/Sprint: Shift/CTRL
Pause/Mute: P/M

",20,91),pushPrePattern("backreg",0,0,5),pushPreFloor(0,0,69),pushPreThing(Block,128,jumplev1),pushPreThing(Brick,160,jumplev1),pushPreThing(Block,168,jumplev1,Mushroom),pushPreThing(Goomba,176,8),pushPreThing(Brick,176,jumplev1),pushPreThing(Block,176,jumplev2),pushPreThing(Block,184,jumplev1),pushPreThing(Brick,192,jumplev1),pushPrePipe(224,0,16,!1),pushPrePipe(304,0,24),pushPrePipe(368,0,32),pushPreThing(Goomba,340,8),pushPrePipe(368,0,32),pushPreThing(Goomba,412,8),pushPreThing(Goomba,422,8),pushPrePipe(456,0,32,!1,2),pushPreThing(Block,512,40,[Mushroom,1],!0),pushPreFloor(568,0,15),pushPreThing(Brick,618,jumplev1),pushPreThing(Block,626,jumplev1,Mushroom),pushPreThing(Brick,634,jumplev1),pushPreThing(Brick,640,jumplev2),pushPreThing(Goomba,640,jumplev2+8),pushPreThing(Brick,648,jumplev2),pushPreThing(Brick,656,jumplev2),pushPreThing(Goomba,656,jumplev2+8),pushPreThing(Brick,664,jumplev2),pushPreThing(Brick,672,jumplev2),pushPreThing(Brick,680,jumplev2),pushPreThing(Brick,688,jumplev2),pushPreThing(Brick,696,jumplev2),pushPreFloor(712,0,64),pushPreThing(Brick,728,jumplev2),pushPreThing(Brick,736,jumplev2),pushPreThing(Brick,744,jumplev2),pushPreThing(Brick,752,jumplev1,Coin),pushPreThing(Block,752,jumplev2),pushPreThing(Goomba,776,8),pushPreThing(Goomba,788,8),pushPreThing(Brick,800,jumplev1),pushPreThing(Brick,808,jumplev1,Star),pushPreThing(Block,848,jumplev1),pushPreThing(Koopa,856,12),pushPreThing(Block,872,jumplev1),pushPreThing(Block,872,jumplev2,Mushroom),pushPreThing(Block,896,jumplev1),pushPreThing(Goomba,912,8),pushPreThing(Goomba,924,8),pushPreThing(Brick,944,jumplev1),pushPreThing(Brick,968,jumplev2),pushPreThing(Brick,976,jumplev2),pushPreThing(Brick,984,jumplev2),pushPreThing(Goomba,992,8),pushPreThing(Goomba,1004,8),pushPreThing(Goomba,1024,8),pushPreThing(Goomba,1036,8),pushPreThing(Brick,1024,jumplev2),pushPreThing(Brick,1032,jumplev1),pushPreThing(Block,1032,jumplev2),pushPreThing(Brick,1040,jumplev1),pushPreThing(Block,1040,jumplev2),pushPreThing(Brick,1048,jumplev2),pushPreThing(Stone,1072,8),pushPreThing(Stone,1080,16,1,2),pushPreThing(Stone,1088,24,1,3),pushPreThing(Stone,1096,32,1,4),pushPreThing(Stone,1120,32,1,4),pushPreThing(Stone,1128,24,1,3),pushPreThing(Stone,1136,16,1,2),pushPreThing(Stone,1144,8),pushPreThing(Stone,1184,8),pushPreThing(Stone,1192,16,1,2),pushPreThing(Stone,1200,24,1,3),pushPreThing(Stone,1208,32,1,4),pushPreThing(Stone,1216,32,1,4),pushPreFloor(1240,0,69),pushPreThing(Stone,1240,32,1,4),pushPreThing(Stone,1248,24,1,3),pushPreThing(Stone,1256,16,1,2),pushPreThing(Stone,1264,8,1,1),pushPrePipe(1304,0,16,!1,!1,1),pushPreThing(Brick,1344,jumplev1),pushPreThing(Brick,1352,jumplev1),pushPreThing(Block,1360,jumplev1),pushPreThing(Brick,1368,jumplev1),pushPreThing(Goomba,1392,8),pushPreThing(Goomba,1404,8),pushPrePipe(1432,0,16),pushPreThing(Stone,1448,8),pushPreThing(Stone,1456,16,1,2),pushPreThing(Stone,1464,24,1,3),pushPreThing(Stone,1472,32,1,4),pushPreThing(Stone,1480,40,1,5),pushPreThing(Stone,1488,48,1,6),pushPreThing(Stone,1496,56,1,7),pushPreThing(Stone,1504,64,2,8),endCastleOutside(1580,0,1)})),new Area("Underworld",(function(){setLocationGeneration(2),makeCeiling(32,7),pushPreFloor(0,0,17),fillPreThing(Brick,0,8,1,11,8,8),fillPreThing(Brick,32,8,7,3,8,8),fillPreThing(Coin,33,31,7,2,8,16),fillPreThing(Coin,41,63,5,1,8,8),pushPreThing(PipeSide,104,16,1),pushPreThing(PipeVertical,120,88,88)}))]}function randMapType(e){e.locs=[new Location(0,entryRandom)],e.areas=[new Area(e.areatype,(function(){setLocationGeneration(0),"Underwater"==e.randname&&(goUnderWater(),pushPreScenery("Water",0,ceilmax-21,8*(e.startwidth+1)/3,1),pushPreThing(WaterBlock,0,ceilmax,8*(e.startwidth+1)))}))],e.treefunc=randTrue(3)?pushPreTree:pushPreShroom,e.treeheight=e.treelev=e.sincechange=0}function randDayNight(){return randTrue(3)?"":" Night"}function WorldRandomOverworld(e){e.random=!0,e.randtype=pushRandomSectionOverworld,e.randname="Overworld",e.areatype="Overworld"+randDayNight(),e.firstRandomThings=function(e){for(var t=0;t<10;++t)randTrue()&&pushRandomGroundScenery(8*t)},e.startwidth=14,e.onlysmartkoopas=!1,randMapType(e)}function WorldRandomTrees(e){e.random=!0,e.randtype=pushRandomSectionTrees,e.randname="Overworld",e.areatype="Overworld"+randDayNight(),e.firstRandomThings=function(e){e.treefunc(100,8*(e.treelev=randTrue()+2),randTrue()+4),e.startwidth+=7},e.startwidth=11,e.onlysmartkoopas=randTrue(),randMapType(e)}function WorldRandomUnderworld(e){e.random=!0,e.randtype=pushRandomSectionUnderworld,e.randname=e.areatype="Underworld",e.firstRandomThings=function(e){fillPreThing(Brick,0,8,1,11,8,8)},e.startwidth=randTrue(3)+7,e.onlysmartkoopas=!0,e.respawndist=42,e.entrancetype="Up",randMapType(e)}function WorldRandomUnderwater(e){e.random=!0,e.randtype=pushRandomSectionUnderwater,e.randname="Underwater",e.areatype="Underwater"+randDayNight(),e.firstRandomThings=function(e){},e.startwidth=randTrue(3)+7,e.entrancetype="Up",e.countCheep=e.countBlooper=0,e.respawndist=42,e.onlysmartkoopas=!0,randMapType(e)}function WorldRandomBridge(e){e.random=!0,e.randtype=startRandomSectionBridge,e.randname="Overworld",e.areatype="Overworld"+randDayNight(),e.firstRandomThings=function(e){},e.startwidth=14,randMapType(e)}function WorldRandomSky(e){e.random=!0,e.randtype=startRandomSectionSky,e.randname="Sky",e.areatype="Sky"+randDayNight(),e.entrancetype="Vine",e.firstRandomThings=function(e){pushPreThing(Stone,0,0,4)},e.startwidth=4,e.nofloor=!0,randMapType(e)}function WorldRandomCastle(e){e.random=!0,e.randtype=startRandomSectionCastle,e.randname=e.areatype=e.entrancetype="Castle",e.firstRandomThings=function(e){startCastleInside(),startCastle()},e.respawndist=35,randMapType(e)}function FullScreenMario(){var e=Date.now();ensureLocalStorage(),TonedJS(!0),window.body=document.body,window.bodystyle=body.style,window.verbosity={Maps:!1,Sounds:!1},window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,timer)},window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout,window.Uint8ClampedArray=window.Uint8ClampedArray||window.Uint8Array||Array,resetMeasurements(),resetLibrary(),resetEvents(),resetCanvas(),resetMaps(),resetScenery(),resetTriggers(),resetSeed(),resetSounds(),window.luigi=localStorage&&"true"==localStorage.luigi,window.gameon=!0,setMap(1,1),log("It took "+(Date.now()-e)+" milliseconds to start.")}function ensureLocalStorage(){var e=!1;try{window.hasOwnProperty("localStorage")||(window.localStorage={crappy:!0}),window.localStorage&&(e=!0)}catch(t){e=!1}if(!e)throw document.body.innerText="It seems your browser does not allow localStorage!"}function resetMeasurements(){resetUnitsize(4),resetTimer(1e3/60),window.jumplev1=32,window.jumplev2=64,window.ceillev=88,window.ceilmax=104,window.castlev=-48,window.paused=!0,resetGameScreen(),window.parentwindow||(window.parentwindow=!1)}function resetUnitsize(e){window.unitsize=e;for(var t=2;t<=64;++t)window["unitsizet"+t]=unitsize*t,window["unitsized"+t]=unitsize/t;window.scale=unitsized2,window.gravity=round(12*unitsize)/100}function resetTimer(e){e=roundDigit(e,.001),window.timer=window.timernorm=e,window.timert2=2*e,window.timerd2=e/2,window.fps=window.fps_target=roundDigit(1e3/e,.001),window.time_prev=Date.now()}function resetGameScreen(){window.gamescreen=new getGameScreen}function getGameScreen(){resetGameScreenPosition(this),this.middlex=(this.left+this.right)/2,window.botmax=this.height-ceilmax,botmax
Your screen isn't high enough. Make it taller, then refresh."),this.deathheight=this.bottom+48}function resetGameScreenPosition(e){(e=e||window.gamescreen).left=e.top=0,e.bottom=innerHeight,e.right=innerWidth,e.height=innerHeight/unitsize,e.width=innerWidth/unitsize,e.unitheight=innerHeight,e.unitwidth=innerWidth}function resetEvents(){window.TimeHandler=new TimeHandlr({onSpriteCycleStart:"onadding",doSpriteCycleStart:"placed",cycleCheckValidity:"alive",timingDefault:9})}function resetSounds(){window.sounds={},window.theme=!1,window.muted=localStorage&&"true"==localStorage.muted,window.AudioPlayer=new AudioPlayr({directory:"Sounds",getVolumeLocal:function(){return.49},getThemeDefault:function(){return area.theme},library:{Sounds:["Bowser Falls","Bowser Fires","Break Block","Bump","Coin","Ending","Fireball","Firework","Flagpole","Gain Life","Game Over 2","Game Over","Hurry","Into the Tunnel","Jump Small","Jump Super","Kick","Level Complete","Player Dies","Pause","Pipe","Power Down","Powerup Appears","Powerup","Stage Clear","Vine Emerging","World Clear","You Dead"],Themes:["Castle","Overworld","Underwater","Underworld","Star","Sky","Hurry Castle","Hurry Overworld","Hurry Underwater","Hurry Underworld","Hurry Star","Hurry Sky"]}})}function resetQuadrants(){window.QuadsKeeper=new QuadsKeepr({num_rows:5,num_cols:6,screen_width:window.innerWidth,screen_height:window.innerHeight,tolerance:unitsized2,onUpdate:spawnMap,onCollide:!1})}function resetGameState(e){clearAllTimeouts(),resetData(),window.nokeys=window.spawning=window.spawnon=window.notime=window.editing=window.qcount=window.lastscroll=0,window.paused=window.gameon=window.speed=1,e||(window.gamecount=0),resetQuadrants(),window.gamehistory=[],AudioPlayer.pause()}function scrollWindow(e,t){var n=-(e=e||0),x=-(t=t||0);gamescreen.left+=e,gamescreen.right+=e,gamescreen.top+=t,gamescreen.bottom+=t,shiftAll(characters,n,x),shiftAll(solids,n,x),shiftAll(scenery,n,x),shiftAll(QuadsKeeper.getQuadrants(),n,x),shiftElements(texts,n,x),QuadsKeeper.updateQuadrants(n),window.playediting&&scrollEditor(e,t)}function shiftAll(e,t,n){for(var x=e.length-1;x>=0;--x)shiftBoth(e[x],t,n)}function shiftElements(e,t,n){for(var x,r=e.length-1;r>=0;--r)x=e[r],elementShiftLeft(x,t),elementShiftTop(x,n)}function scrollPlayer(e,t,n){var x=player.left,r=player.top;scrollWindow(e,t=t||0),setLeft(player,x,n),setTop(player,r+t*unitsize,n),QuadsKeeper.updateQuadrants()}function mlog(e){verbosity[e]&&log.apply(console,arguments)}function resetCanvas(){window.canvas=getCanvas(innerWidth,innerHeight,!0),window.context=canvas.getContext("2d"),body.appendChild(canvas)}function spriteUnravel(e){for(var t,n,x,r=getPaletteReferenceStarting(window.palette),i=window.digitsize,a=e.length,o="",l=0;l=0))+String(Number(l.indexOf("flip-vert")>=0))){case"11":x=n.flipboth?n.flipboth:n.flipboth=flipSpriteArrayBoth(x);break;case"10":x=n.fliphoriz?n.fliphoriz:n.fliphoriz=flipSpriteArrayHoriz(x,e);break;case"01":x=n.flipvert?n.flipvert:n.flipvert=flipSpriteArrayVert(x,e);break;default:x=n.raw}return x}function expandObtainedSprite(e,t,n,x,r){var i,a,o=new Uint8ClampedArray(e.length*scale),l=n*unitsizet4,s=x*scale,d=0,u=0;for(i=0;i49&&(alert(e.title),console.log(e.title,n,t)),n)if(r=t[n[i]]){t=r,n.splice(i,1),x=!1;break}if(x)if(r=t.normal)switch(x=!1,r.constructor){case Uint8ClampedArray:case SpriteMultiple:return r;case Object:t=r;break;default:t=t[r]}else x=!0;if(x||!t)return console.log("\nSprite not found! Title: "+e.title),console.log("Classname:",e.className),console.log("Remaining",n),console.log("Current",t),console.log("Prev",a),new Uint8ClampedArray(e.spritewidth*e.spriteheight);switch(t.constructor){case Uint8ClampedArray:case SpriteMultiple:return t;case"Object":continue}}}function refillThingCanvas(e){var t=e.canvas,n=e.context,x=n.getImageData(0,0,t.width,t.height);memcpyU8(e.sprite,x.data),n.putImageData(x,0,0)}function refillThingCanvases(e,t){var n,x,r,i,a,o=e.canvases={},l=e.spritewidthpixels,s=e.spriteheightpixels;for(a in e.num_sprites=1,t)(n=t[a])instanceof Uint8ClampedArray?(++e.num_sprites,o[a]=r={canvas:getCanvas(l,s)},r.context=i=r.canvas.getContext("2d"),memcpyU8(n,(x=i.getImageData(0,0,l,s)).data),i.putImageData(x,0,0)):o[a]=n;r=o.middle,e.canvas=r.canvas,e.context=r.context}function refillCanvas(){var e,t=window.canvas,n=window.context;for(n.fillStyle=area.fillStyle,n.fillRect(0,0,t.width,t.height),e=scenery.length-1;e>=0;--e)drawThingOnCanvas(n,scenery[e]);for(e=solids.length-1;e>=0;--e)drawThingOnCanvas(n,solids[e]);for(e=characters.length-1;e>=0;--e)drawThingOnCanvas(n,characters[e])}function drawThingOnCanvas(e,t){if(!t.hidden){var n=t.left,x=t.top;n>innerWidth||(1==t.num_sprites?drawThingOnCanvasSingle(e,t.canvas,t,n,x):drawThingOnCanvasMultiple(e,t.canvases,t.canvas,t,n,x))}}function drawThingOnCanvasSingle(e,t,n,x,r){n.repeat?drawPatternOnCanvas(e,t,x,r,n.unitwidth,n.unitheight):e.drawImage(t,x,r)}function drawThingOnCanvasMultiple(e,t,n,x,r,i){var a,o,l=i,s=r,d=x.right,u=x.bottom,p=x.unitwidth,c=x.unitheight,m=x.spritewidthpixels,h=x.spriteheightpixels;"v"==x.sprite_type[0]?((o=t.bottom)&&(a=t.bottomheight||x.spriteheightpixels,drawPatternOnCanvas(e,o.canvas,s,u-a,m,min(c,h)),u-=a,c-=a),(o=t.top)&&(a=t.topheight||x.spriteheightpixels,drawPatternOnCanvas(e,o.canvas,s,l,m,min(c,h)),l+=a,c-=a)):"h"==x.sprite_type[0]&&((o=t.left)&&(a=t.leftwidth||x.spritewidthpixels,drawPatternOnCanvas(e,o.canvas,s,l,min(p,m),h),s+=a,p-=a),(o=t.right)&&(a=t.rightwidth||x.spritewidthpixels,drawPatternOnCanvas(e,o.canvas,d-a,l,min(p,m),h),d-=a,p-=a)),l=e.length||x>=t.length)){null==n&&(n=0),null==x&&(x=0),null==r&&(r=max(0,min(e.length,t.length)));for(var i=r+0,a=x+0,o=n+0;i--;)t[a++]=e[o++]}}function canvasDisableSmoothing(e,t){(t=t||e.getContext("2d")).webkitImageSmoothingEnabled=!1,t.mozImageSmoothingEnabled=!1,t.imageSmoothingEnabled=!1}function Thing(e){if(0!=arguments.length&&e){var t=this===window?new Thing:this,n=t.args=arrayMake(arguments);n[0]=t,e.apply(t,n),t.alive=!0,t.placed=this.outerok=0,t.xvel=this.xvel||0,t.yvel=this.yvel||0,null==t.tolx&&(t.tolx=0),null==t.toly&&(t.toly=unitsized8),t.collide=t.collide||function(){},t.death=t.death||killNormal,t.animate=t.animate||emergeUp;var x,r=4;(x=floor(t.width*unitsize/QuadsKeeper.getQuadWidth()))>0&&(r+=(x+1)*r/2),(x=floor(t.height*unitsize/QuadsKeeper.getQuadHeight()))>0&&(r+=(x+1)*r/2),t.maxquads=r,t.quadrants=new Array(t.maxquads),t.overlaps=[],t.title=t.title||e.name,t.spritewidth=t.spritewidth||t.width,t.spriteheight=t.spriteheight||t.height,t.sprite="";try{setContextStuff(t,t.spritewidth,t.spriteheight)}catch(e){log("Thing context fail",e,t.title,t),setTimeout((function(){setContextStuff(t,t.spritewidth,t.spriteheight)}),1)}return t}}function setContextStuff(e,t,n){e.spritewidthpixels=e.spritewidth*unitsize,e.spriteheightpixels=e.spriteheight*unitsize,e.canvas=getCanvas(e.spritewidthpixels,e.spriteheightpixels),e.context=e.canvas.getContext("2d"),e.imageData=e.context.getImageData(0,0,e.spritewidthpixels,e.spriteheightpixels),e.sprite_type=e.sprite_type||"neither",canvasDisableSmoothing(e,e.context)}function ThingCreate(e,t){var n=new Thing;return Thing.apply(n,[e].concat(t)),n}function setCharacter(e,t){e.type=t.split(" ")[0],e.resting=e.under=e.undermid=!1,e.alive=e.character=!0,e.libtype="characters",setClassInitial(e,"character "+t)}function setSolid(e,t){e.type="solid",e.name=t,e.solid=e.alive=!0,e.speed=e.speed||0,e.collide=e.collide||characterTouchedSolid,e.bottomBump=e.bottomBump||function(){},e.action=e.action||function(){},e.jump=e.jump||function(){},e.spritewidth=e.spritewidth||8,e.spriteheight=e.spriteheight||8,e.libtype="solids",setClassInitial(e,"solid "+t)}function setScenery(e,t){setSolid(e,t),e.libtype="scenery"}function addThing(e,t,n){return e instanceof Function&&(e=new Thing(e)),placeThing(e,t,n),window[e.libtype].push(e),e.placed=!0,e.onadding&&e.onadding(),setThingSprite(e),window["last_"+(e.title||e.group||"unknown")]=e,e}function placeThing(e,t,n){return setLeft(e,t),setTop(e,n),updateSize(e),e}function addText(e,t,n){var x=createElement("div",{innerHTML:e,className:"text",left:t,top:n,onclick:body.onclick||canvas.onclick,style:{marginLeft:t+"px",marginTop:n+"px"}});return body.appendChild(x),texts.push(x),x}function spawnText(e,t){var n=e.element=addText("",e.left,e.top);"object"==typeof t?proliferate(n,t):n.innerHTML=t,e.movement=!1}function checkTexts(){var e,t,n,x=QuadsKeeper.getDelX();for(n=texts.length-1;n>=0;--n)t=texts[n],e=texts[n].element||t,t.right=t.left+e.clientWidth,t.right1?t.death(t):void 0;e.solid?AudioPlayer.playLocal("Bump",t.right):(AudioPlayer.playLocal("Kick",t.right),e.death(e,2),scoreEnemyFire(e)),t.death(t)}}function fireDeleted(){--player.numballs}function fireExplodes(e){var t=new Thing(Firework);addThing(t,e.left-t.width/2,e.top-t.height/2),t.animate(),killNormal(e)}function Star(e){e.group="item",e.width=7,e.height=8,e.speed=.56*unitsize,e.jumpheight=1.17*unitsize,e.gravity=gravity/2.8,e.animate=emergeUp,e.movement=moveJumping,e.collide=collideFriendly,e.action=playerStar,e.death=killNormal,e.nofire=!0,setCharacter(e,"star item"),TimeHandler.addSpriteCycle(e,["one","two","three","four"],0,7)}function Shell(e,t){e.width=8,e.height=7,e.group="item",e.speed=unitsizet2,e.collide_primary=!0,e.moveleft=e.xvel=e.move=e.hitcount=e.peeking=e.counting=e.landing=e.enemyhitcount=0,e.smart=t,e.movement=moveShell,e.collide=hitShell,e.death=killFlip,e.spawntype=Koopa,setCharacter(e,"shell"+(t?" smart":" dumb"))}function hitShell(e,t){if("shell"==e.type&&t.type!=e.type)return hitShell(t,e);switch(e.type){case"solid":t.right0&&e.bottom<=t.top+unitsizet2;if(e.star)return scorePlayerShell(e,t),t.death(t,2);if(t.landing)return void(t.shelltoleft==n?(++t.landing,1==t.landing&&scorePlayerShell(e,t),TimeHandler.addEvent((function(e){--e.landing}),2,t)):player.death(player));0==t.xvel||x?(t.counting=0,scorePlayerShell(e,t),t.peeking&&(t.peeking=!1,removeClass(t,"peeking"),t.height-=unitsized8,updateSize(t)),0==t.xvel?(n?(t.moveleft=!0,t.xvel=-t.speed):(t.moveleft=!1,t.xvel=t.speed),++t.hitcount,TimeHandler.addEvent((function(e){--e.hitcount}),2,t)):t.xvel=0,x&&(AudioPlayer.play("Kick"),t.xvel?scorePlayerShell(e,t):(jumpEnemy(e,t),e.yvel*=2,scorePlayerShell(e,t),setBottom(e,t.top-unitsize,!0)),++t.landing,t.shelltoleft=n,TimeHandler.addEvent((function(e){--e.landing}),2,t))):!t.hitcount&&(n&&t.xvel<0||!n&&t.xvel>0)&&e.death(e);break;case"shell":if(0!=e.xvel)if(0!=t.xvel){var r=e.xvel;shiftHoriz(e,e.xvel=t.xvel),shiftHoriz(t,t.xvel=r)}else score(t,500),t.death(t);else 0!=t.xvel&&(score(e,500),e.death(e));break;default:switch(e.group){case"enemy":if(t.xvel){if("koopa"==e.type.split(" ")[0]){var i=new Thing(Shell,e.smart);addThing(i,e.left,e.bottom-i.height*unitsize),killFlip(i),killNormal(e)}else killFlip(e);AudioPlayer.play("Kick"),score(e,findScore(t.enemyhitcount),!0),++t.enemyhitcount}else e.moveleft=objectToLeft(e,t);break;case"item":if("shell"!=e.type)return;t.xvel&&killFlip(e),e.xvel&&killFlip(t)}}}function moveShell(e){if(0==e.xvel)if(350==++e.counting)addClass(e,"peeking"),e.peeking=!0,e.height+=unitsized8,updateSize(e);else if(490==e.counting){var t=new Thing(e.spawntype,e.smart);addThing(t,e.left,e.bottom-t.height*unitsize),killNormal(e)}}function collideFriendly(e,t){"player"==e.type&&(t.action&&t.action(e),t.death(t))}function jumpEnemy(e,t){e.keys.up?e.yvel=-1.4*unitsize:e.yvel=-.7*unitsize,e.xvel*=.91,AudioPlayer.play("Kick"),"item"==t.group&&"shell"!=t.type||score(t,findScore(e.jumpcount+++e.jumpers),!0),++e.jumpers,TimeHandler.addEvent((function(e){--e.jumpers}),1,e)}function Goomba(e){e.width=e.height=8,e.speed=.21*unitsize,e.toly=unitsize,e.moveleft=e.noflip=!0,e.smart=!1,e.group="enemy",e.movement=moveSimple,e.collide=collideEnemy,e.death=killGoomba,setCharacter(e,"goomba"),TimeHandler.addSpriteCycleSynched(e,[unflipHoriz,flipHoriz])}function killGoomba(e,t){if(e.alive)if(t)killFlip(e);else{var n=new Thing(DeadGoomba);addThing(n,e.left,e.bottom-n.height*unitsize),TimeHandler.addEvent(killNormal,21,n),killNormal(e)}}function DeadGoomba(e){e.width=8,e.height=4,e.movement=!1,e.nocollide=e.nocollide=!0,e.death=killNormal,setSolid(e,"deadGoomba")}function Koopa(e,t,n){e.width=8,e.height=12,e.speed=e.xvel=.21*unitsize,e.moveleft=e.skipoverlaps=!0,e.group="enemy",e.smart=t;var x="koopa";x+=e.smart?" smart":" dumb",e.smart&&(x+=" smart"),n?(x+=" flying",e.winged=!0,1==n?(e.movement=moveJumping,e.jumpheight=1.17*unitsize,e.gravity=gravity/2.8):(e.movement=moveFloating,e.ytop=e.begin=n[0]*unitsize,e.ybot=e.end=n[1]*unitsize,e.nofall=e.fly=!0,e.changing=e.xvel=0,e.yvel=e.maxvel=unitsized4)):(x+=" regular",e.smart?e.movement=moveSmart:e.movement=moveSimple),e.collide=collideEnemy,e.death=killKoopa,setCharacter(e,x),TimeHandler.addSpriteCycleSynched(e,["one","two"]),e.toly=unitsizet2}function killKoopa(e,t){if(e.alive){var n;if(n=t&&2!=t||e.winged?new Thing(Koopa,e.smart):new Thing(Shell,e.smart),TimeHandler.addEvent((function(e,t){addThing(e,t.left,t.bottom-e.height*unitsize),e.moveleft=t.moveleft}),0,n,e),killNormal(e),2!=t)return n;killFlip(n)}}function Pirhana(e,t){e.width=8,e.height=12,e.counter=0,e.countermax=e.height*unitsize,e.dir=unitsized8,e.toly=unitsizet8,e.nofall=e.deadly=e.nocollidesolid=e.repeat=!0,e.group="enemy",e.collide=collideEnemy,e.death=killNormal,e.movement=movePirhanaInit,e.death=killPirhana,setCharacter(e,"pirhana")}function movePirhanaInit(e){e.hidden=!0;var t=e.visual_scenery=new Thing(Sprite,"Pirhana");addThing(t,e.left,e.top),TimeHandler.addSpriteCycle(t,["one","two"]),e.movement=movePirhanaNew,movePirhanaNew(e,e.height*unitsize)}function movePirhanaNew(e,t){t=t||e.dir,e.counter+=t,shiftVert(e,t),shiftVert(e.visual_scenery,t),(e.counter<=0||e.counter>=e.countermax)&&(e.movement=!1,e.dir*=-1,TimeHandler.addEvent(movePirhanaRestart,35,e))}function movePirhanaRestart(e){var t=getMidX(player);e.counter>=e.countermax&&t>e.left-unitsizet8&&te.heightfall||(e.nofall=!1,e.movement=movePodobooSwitch)}function movePodobooSwitch(e){e.yvel<=0||(flipVert(e),e.movement=movePodobooDown)}function movePodobooDown(e){e.top0?TimeHandler.addEvent(throwHammer,7,e,--t):(TimeHandler.addEvent(throwHammer,70,e,7),removeClass(e,"thrown"))}),14,e))}function jumpHammerBro(e){if(!characterIsAlive(e))return!0;e.resting&&(map.floor-e.bottom/unitsize>=jumplev1-2&&"floor"!=e.resting.name&&Math.floor(2*Math.random())?(e.yvel=-.7*unitsize,e.falling=!0,TimeHandler.addEvent((function(e){e.falling=!1}),42,e)):e.yvel=-2.1*unitsize,e.resting=!1)}function Hammer(e,t){e.width=e.height=8,e.nocollidesolid=e.nocollidechar=e.deadly=e.nofire=!0,e.collide=collideEnemy,e.yvel=1.4*-unitsize,e.xvel=unitsize/1.4,t&&(e.xvel*=-1),e.gravity=gravity/2.1,setCharacter(e,"hammer"),TimeHandler.addSpriteCycle(e,["one","two","three","four"],3)}function Cannon(e,t,n){e.width=8,e.height=8*(t||1),e.spriteheight=16,n||(e.movement=moveCannonInit),e.timer=117,e.repeat=!0,setSolid(e,"cannon")}function moveCannonInit(e){TimeHandler.addEventInterval((function(e){if(!(player.right>e.left-unitsizet8&&player.leftunitsize)return e.nocollidesolid=!1,!0}),3,1/0,e))}function bowserFires(e){if(!characterIsAlive(e)||!characterIsAlive(player))return!0;e.lookleft&&(addClass(e,"firing"),AudioPlayer.playLocal("Bowser Fires",e.left),TimeHandler.addEvent((function(e){var t=e.top+unitsizet4,n=new Thing(BowserFire,roundDigit(player.bottom,unitsizet8));removeClass(e,"firing"),addThing(n,e.left-unitsizet8,t),AudioPlayer.play("Bowser Fires")}),14,e))}function killBowser(e,t){if(t)return e.nofall=!1,killFlip(e);5==++e.deathcount&&(e.yvel=e.speed=e.movement=0,killFlip(e,350),score(e,5e3))}function freezeBowser(e){e.movement=!1,thingStoreVelocity(e)}function BowserFire(e,t){e.width=12,e.height=4,e.xvel=-.63*unitsize,e.deadly=e.nofall=e.nocollidesolid=e.nofire=!0,e.collide=collideEnemy,t&&(e.ylev=t,e.movement=moveFlying),setCharacter(e,"bowserfire"),TimeHandler.addSpriteCycle(e,[unflipVert,flipVert])}function moveFlying(e){round(e.bottom)!=round(e.ylev)?shiftVert(e,min(max(0,e.ylev-e.bottom),unitsize)):e.movement=!1}function WaterBlock(e,t){e.height=16,e.width=t,e.spritewidth=e.spriteheight=1/scale,e.repeat=!0,setSolid(e,"water-block")}function Blooper(e){e.width=8,e.height=12,e.nocollidesolid=e.nofall=e.moveleft=1,e.squeeze=e.counter=0,e.speed=unitsized2,e.xvel=e.speedinv=-unitsized4,e.movement=moveBlooper,e.collide=collideEnemy,e.death=killFlip,setCharacter(e,"blooper")}function moveBlooper(e){switch(e.counter){case 56:e.squeeze=!0,++e.counter;break;case 63:squeezeBlooper(e);break;default:++e.counter}e.tope.right+unitsizet8?e.xvel=min(e.speed,e.xvel+unitsized32):player.rightplayer.bottom||e.bottom>360)&&unsqueezeBlooper(e)}function unsqueezeBlooper(e){e.squeeze=!1,removeClass(e,"squeeze"),e.counter=0,setHeight(e,12,!0,!0)}function CheepCheep(e,t,n){e.width=e.height=8,e.group="enemy";var x="cheepcheep "+(t?"red":"");e.red=t,setCheepVelocities(e),n?(x+=" jumping",e.jumping=!0,e.movement=moveCheepJumping):e.movement=moveCheepInit,e.nofall=e.nocollidesolid=e.nocollidechar=!0,e.death=killFlip,e.collide=collideEnemy,setCharacter(e,x),TimeHandler.addSpriteCycle(e,["one","two"])}function setCheepVelocities(e){e.red?(e.xvel=-unitsized4,e.yvel=unitsize/-24):(e.xvel=unitsize/-6,e.yvel=-unitsized32)}function moveCheepInit(e){setCheepVelocities(e),e.topunitsized8&&player.left>gamescreen.width*unitsized2?e.left=100&&(data.coins.amount=0,gainLife()),updateDataElement(data.coins)}function coinEmerge(e,t){AudioPlayer.play("Coin"),removeClass(e,"still"),switchContainers(e,characters,scenery),score(e,200,!1),gainCoin(),e.nocollide=e.alive=e.nofall=e.emerging=!0,e.blockparent?e.movement=coinEmergeMoveParent:e.movement=coinEmergeMove,e.yvel=-unitsize,TimeHandler.addEvent((function(e){e.yvel*=-1}),25,e),TimeHandler.addEvent((function(e){killNormal(e),deleteThing(e,scenery,scenery.indexOf(e))}),49,e),TimeHandler.addEventInterval(coinEmergeMovement,1,1/0,e,t),TimeHandler.clearClassCycle(e,0),addClass(e,"anim"),TimeHandler.addSpriteCycle(e,["anim1","anim2","anim3","anim4","anim3","anim2"],0,5)}function coinEmergeMovement(e,t){if(!e.alive)return!0;shiftVert(e,e.yvel)}function coinEmergeMove(e){shiftVert(e,e.yvel,!0)}function coinEmergeMoveParent(e){e.bottom>=e.blockparent.bottom?killNormal(e):shiftVert(e,e.yvel,!0)}function Player(e){setPlayerSizeSmall(e),e.walkspeed=unitsized2,e.canjump=e.nofiredeath=e.nofire=e.player=e.nokillend=1,e.numballs=e.moveleft=e.skidding=e.star=e.dying=e.nofall=e.maxvel=e.paddling=e.jumpers=e.landing=0,e.running="",e.power=data.playerpower,e.maxspeed=e.maxspeedsave=1.35*unitsize,e.scrollspeed=1.75*unitsize,e.keys=new Keys,e.fire=playerFires,e.movement=movePlayer,e.death=killPlayer,setCharacter(e,"player normal small still"),e.tolx=unitsizet2,e.toly=0,e.gravity=map.gravity,map.underwater&&(e.swimming=!0,TimeHandler.addSpriteCycle(e,["swim1","swim2"],"swimming",5))}function placePlayer(e,t){clearOldPlayer(),window.player=new Thing(Player),window.luigi?window.player.title="Luigi":window.player.title="Mario";var n=addThing(player,e||unitsizet16,t||(map.floor-player.height)*unitsize);return data.playerpower>=2&&(playerGetsBig(player,!0),3==data.playerpower&&playerGetsFire(player,!0)),n}function clearOldPlayer(){window.player&&(player.alive=!1,player.dead=!0)}function Keys(){this.run=this.crouch=this.jump=this.jumplev=this.sprint=0}function thingStoreVelocity(e,t){e.xvelOld=e.xvel||0,e.yvelOld=e.yvel||0,e.nofallOld=e.nofall||!1,e.nocollideOld=e.nocollide||!1,e.movementOld=e.movement||e.movementOld,e.nofall=e.nocollide=!0,e.xvel=e.yvel=!1,t||(e.movement=!1)}function thingRetrieveVelocity(e,t){t||(e.xvel=e.xvelOld||0,e.yvel=e.yvelOld||0),e.movement=e.movementOld||e.movement,e.nofall=e.nofallOld||!1,e.nocollide=e.nocollideOld||!1}function removeCrouch(){player.crouching=!1,player.toly=player.tolyold||0,1!=player.power&&(removeClass(player,"crouching"),player.height=16,updateBottom(player,0),updateSize(player))}function playerShroom(e){e.shrooming||(AudioPlayer.play("Powerup"),score(e,1e3,!0),3!=e.power&&(e.shrooming=!0,(2==++e.power?playerGetsBig:playerGetsFire)(e),storePlayerStats()))}function playerGetsBig(e,t){if(setPlayerSizeLarge(e),e.keys.down=0,removeClasses(player,"crouching small"),updateBottom(e,0),updateSize(e),t)addClass(e,"large");else{addClass(player,"shrooming");for(var n=[1,2,1,2,3,2,3],x=n.length-1;x>=0;--x)n[x]="shrooming"+n[x];thingStoreVelocity(player),n.push((function(e,t){return e.shrooming=t.length=0,addClass(e,"large"),removeClasses(e,"shrooming shrooming3"),thingRetrieveVelocity(player),!0})),TimeHandler.addSpriteCycle(e,n,"shrooming",6)}}function playerGetsSmall(e){var t=player.bottom;e.keys.down=0,thingStoreVelocity(e),addClass(e,"small"),flicker(e),removeClasses(player,"running skidding jumping fiery"),addClass(player,"paddling"),TimeHandler.addEvent((function(e){removeClass(e,"large"),setPlayerSizeSmall(e),setBottom(e,t-unitsize)}),21,player),TimeHandler.addEvent((function(e){thingRetrieveVelocity(e,!1),e.nocollidechar=!0,removeClass(e,"paddling"),(e.running||e.xvel)&&addClass(e,"running"),TimeHandler.addEvent(setThingSprite,1,e)}),42,player),TimeHandler.addEvent((function(e){e.nocollidechar=!1}),70,player)}function playerGetsFire(e){removeClass(e,"intofiery"),addClass(e,"fiery"),player.shrooming=!1}function setPlayerSizeSmall(e){setSize(e,8,8,!0),updateSize(e)}function setPlayerSizeLarge(e){setSize(e,8,16,!0),updateSize(e)}function movePlayer(e){if(e.keys.up){if(e.keys.jump>0&&(e.yvel<=0||map.underwater)&&(map.underwater&&playerPaddles(e),e.resting?(e.resting.xvel&&(e.xvel+=e.resting.xvel),e.resting=!1):(e.jumping||map.underwater||switchClass(e,"running skidding","jumping"),e.jumping=!0),!map.underwater)){var t=unitsize/pow(++e.keys.jumplev,map.jumpmod-.0014*e.xvel);e.yvel=max(e.yvel-t,map.maxyvelinv)}}else e.keys.jump=0;e.keys.crouch&&!e.crouching&&e.resting&&(1!=e.power&&(e.crouching=!0,addClass(e,"crouching"),e.height=11,e.tolyold=e.toly,e.toly=unitsizet4,updateBottom(e,0),updateSize(e)),e.resting.actionTop&&e.resting.actionTop(e,e.resting,e.resting.transport));var n=0;if(0==e.keys.run||e.crouching)e.xvel*=.98,n=.035;else{var x=e.keys.run*(.098*((e.keys.sprint&&!map.underwater||0)+1));e.xvel+=x||0,e.xvel*=.98,n=7e-4,signBool(e.keys.run)==e.moveleft?e.skidding||(addClass(e,"skidding"),e.skidding=!0):e.skidding&&(removeClass(e,"skidding"),e.skidding=!1)}e.xvel>n?e.xvel-=n:e.xvel<-n?e.xvel+=n:0!=e.xvel&&(e.xvel=0,window.nokeys||0!=e.keys.run||(e.keys.left_down?e.keys.run=-1:e.keys.right_down&&(e.keys.run=1))),Math.abs(e.xvel)<.14?e.running&&(e.running=!1,1==player.power&&setPlayerSizeSmall(e),removeClasses(e,"running skidding one two three"),addClass(e,"still"),TimeHandler.clearClassCycle(e,"running")):e.running||(e.running=!0,switchClass(e,"still","running"),playerStartRunningCycle(e),1==e.power&&setPlayerSizeSmall(e)),e.xvel>0?(e.xvel=min(e.xvel,e.maxspeed),e.moveleft&&(e.resting||map.underwater)&&(unflipHoriz(e),e.moveleft=!1)):e.xvel<0&&(e.xvel=max(e.xvel,-1*e.maxspeed),e.moveleft||!e.resting&&!map.underwater||(flipHoriz(e),e.moveleft=!0)),e.resting&&(e.hopping&&(removeClass(e,"hopping"),e.xvel&&addClass(e,"running"),e.hopping=!1),e.keys.jumplev=e.yvel=e.jumpcount=0,e.jumping&&(e.jumping=!1,removeClass(e,"jumping"),1==e.power&&setPlayerSizeSmall(e),addClass(e,abs(e.xvel)<.14?"still":"running")),e.paddling&&(e.paddling=e.swimming=!1,removeClasses(e,"paddling swim1 swim2"),TimeHandler.clearClassCycle(e,"paddling"),addClass(e,"running"))),isNaN(e.xvel)}function playerStartRunningCycle(e){e.running=TimeHandler.addSpriteCycle(e,["one","two","three","two"],"running",setPlayerRunningCycler)}function setPlayerRunningCycler(e){e.timeout=5+ceil(player.maxspeedsave-abs(player.xvel))}function playerPaddles(e){e.paddling||(removeClasses(e,"skidding paddle1 paddle2 paddle3 paddle4 paddle5"),addClass(e,"paddling"),TimeHandler.clearClassCycle(e,"paddling_cycle"),TimeHandler.addSpriteCycle(e,["paddle1","paddle2","paddle3","paddle3","paddle2","paddle1",function(){return e.paddling=!1}],"paddling_cycle",5)),e.paddling=e.swimming=!0,e.yvel=-.84*unitsize}function playerBubbles(){addThing(new Thing(Bubble),player.right,player.top)}function movePlayerVine(e){var t=e.attached;if(e.bottomt.bottom-unitsizet4)return unattachPlayer(e)}else e.animatednow=!1;e.animatednow&&!e.animated?addClass(e,"animated"):!e.animatednow&&e.animated&&removeClass(e,"animated"),e.animated=e.animatednow,e.bottom<-16&&(locMovePreparations(e),!t.locnum&&map.random?goToTransport(["Random","Sky","Vine"]):shiftToLocation(t.locnum))}function unattachPlayer(e){e.movement=movePlayer,removeClasses(e,"climbing","animated"),TimeHandler.clearClassCycle(e,"climbing"),e.yvel=e.skipoverlaps=e.attachoff=e.nofall=e.climbing=e.attached=e.attached.attached=!1,e.xvel=e.keys.run}function playerHopsOff(e,t,n){removeClasses(e,"climbing running"),addClass(e,"jumping"),e.piping=e.nocollide=e.nofall=e.climbing=!1,e.gravity=gravity/4,e.xvel=3.5,e.yvel=-3.5,TimeHandler.addEvent((function(e){unflipHoriz(e),e.gravity=gravity,e.movement=movePlayer,e.attached=!1,n&&(addClass(e,"running"),playerStartRunningCycle(e))}),21,e)}function playerFires(){if(!(player.numballs>=2)){++player.numballs,addClass(player,"firing");var e=new Thing(FireBall,player.moveleft,!0);e.yvel=unitsize,addThing(e,player.right+unitsized4,player.top+unitsizet8),player.moveleft&&setRight(e,player.left-unitsized4,!0),e.animate(e),e.ondelete=fireDeleted,TimeHandler.addEvent((function(e){removeClass(e,"firing")}),7,player)}}function emergeFire(e){AudioPlayer.play("Fireball")}function playerStar(e){e.star||(++e.star,AudioPlayer.play("Powerup"),AudioPlayer.playTheme("Star",!0),TimeHandler.addEvent(playerRemoveStar,560,e),switchClass(e,"normal","star"),TimeHandler.addSpriteCycle(e,["star1","star2","star3","star4"],"star",5))}function playerRemoveStar(e){e.star&&(--e.star,removeClasses(e,"star star1 star2 star3 star4"),TimeHandler.clearClassCycle(e,"star"),addClass(e,"normal"),AudioPlayer.playTheme())}function killPlayer(e,t){if(e.alive&&!e.flickering&&!e.dying){if(2==t)notime=!0,e.dead=e.dying=!0;else{if(!t&&e.power>1)return AudioPlayer.play("Power Down"),e.power=1,storePlayerStats(),playerGetsSmall(e);2!=t&&(TimeHandler.clearAllCycles(e),setSize(e,7.5,7,!0),updateSize(e),setClass(e,"character player dead"),nokeys=notime=e.dying=!0,thingStoreVelocity(e),containerForefront(e,characters),TimeHandler.addEvent((function(e){thingRetrieveVelocity(e,!0),e.nocollide=!0,e.movement=e.resting=!1,e.gravity=gravity/2.1,e.yvel=-1.4*unitsize}),7,e))}AudioPlayer.pause(),window.editing||AudioPlayer.play("Player Dies"),e.nocollide=e.nomove=nokeys=1,--data.lives.amount,map.random||(data.score.amount=data.scoreold),window.editing?setTimeout((function(){editorSubmitGameFuncPlay(),editor.playing=editor.playediting=!0}),35*timer):!map.random||data.lives.amount<=0?window.reset=setTimeout(data.lives.amount?setMap:gameOver,280*timer):(nokeys=notime=!1,updateDataElement(data.score),updateDataElement(data.lives),TimeHandler.addEvent((function(){playerDropsIn(),AudioPlayer.playTheme()}),117))}}function playerDropsIn(){clearOldPlayer(),placePlayer(unitsizet16,-1*unitsizet8+map.underwater*unitsize*24),flicker(player),map.underwater?player.gravity=gravity/2.8:(player.nocollide=!0,TimeHandler.addEvent((function(){player.nocollide=!1,addThing(new Thing(RestingStone),player.left,player.bottom+player.yvel)}),map.respawndist||17))}function gameOver(){gameon=!1,pause(),AudioPlayer.pauseTheme(),AudioPlayer.play("Game Over");var e="
GAME OVER
";e+="

",body.className="Night",body.innerHTML=e,window.gamecount=1/0,clearPlayerStats(),setTimeout(gameRestart,7e3)}function gameRestart(){seedlast=.007,body.style.visibility="hidden",body.innerHTML=body.style.paddingTop=body.style.fontSize="",body.appendChild(canvas),gameon=!0,map.random?setMapRandom():setMap(1,1),TimeHandler.addEvent((function(){body.style.visibility=""})),setLives(3)}function Floor(e,t,n){e.width=8*(t||1),e.height=8*n||unitsizet32,e.spritewidth=8,e.spriteheight=8,e.repeat=!0,setSolid(e,"floor")}function Clouds(e,t){e.width=8*t,e.height=8,setSolid(e,"clouds")}function Brick(e,t){if(e.width=e.height=8,e.used=!1,e.bottomBump=brickBump,t)if(t instanceof Array)for(e.contents=t;e.contents.length<3;)e.contents.push(!1);else e.contents=[t,!1,!1];else e.contents=!1;e.death=killNormal,setSolid(e,"brick unused"),e.tolx=1}function brickBump(e,t){if(!e.up&&"player"==t.type&&(AudioPlayer.play("Bump"),!e.used)){if(e.up=t,t.power>1&&!e.contents)return TimeHandler.addEvent(brickBreak,2,e,t);blockBumpMovement(e),e.contents&&(player.power>1&&e.contents[0]==Mushroom&&!e.contents[1]&&(e.contents[0]=FireFlower),TimeHandler.addEvent((function(e){var t=e.contents,n=new Thing(t[0],t[1],t[2]);addThing(n,e.left,e.top),setMidXObj(n,e,!0),n.blockparent=e,n.animate(n,e),e.contents[0]==Coin?(e.lastcoin&&makeUsedBlock(e),TimeHandler.addEvent((function(e){e.lastcoin=!0}),245,e)):makeUsedBlock(e)}),7,e))}}function makeUsedBlock(e){e.used=!0,switchClass(e,"unused","used")}function brickBreak(e,t){AudioPlayer.play("Break Block"),score(e,50),e.up=t,TimeHandler.addEvent(placeShards,1,e),killNormal(e)}function placeShards(e){for(var t,n=0;n<4;++n)addThing(t=new Thing(BrickShard),e.left+(n<2)*e.width*unitsize-unitsizet2,e.top+n%2*e.height*unitsize-unitsizet2),t.xvel=unitsized2-unitsize*(n>1),t.yvel=-1.4*unitsize+n%2,TimeHandler.addEvent(killNormal,350,t)}function BrickShard(e){e.width=e.height=4,e.nocollide=!0,e.death=killNormal,setCharacter(e,"brickshard"),TimeHandler.addSpriteCycle(e,[unflipHoriz,flipHoriz])}function attachEmerge(e,t){e.animate=setInterval((function(){setBottom(e,t.top,!0),t.up||(clearInterval(e.animate),e.animate=!1)}),timer)}function Block(e,t,n){if(e.width=e.height=8,e.used=!1,e.bottomBump=blockBump,t)if(t instanceof Array)for(e.contents=t;e.contents.length<3;)e.contents.push(!1);else e.contents=[t,!1,!1];else e.contents=[Coin];e.death=killNormal,setSolid(e,"Block unused"),e.hidden=!!n&&(e.hidden=e.skipoverlaps=!0),e.tolx=1,TimeHandler.addSpriteCycleSynched(e,["one","two","three","two","one"])}function blockBump(e,t){"player"==t.type&&(e.used?AudioPlayer.play("Bump"):(e.used=1,e.hidden=e.hidden=e.skipoverlaps=!1,e.up=t,blockBumpMovement(e),removeClass(e,"hidden"),switchClass(e,"unused","used"),player.power>1&&e.contents[0]==Mushroom&&!e.contents[1]&&(e.contents[0]=FireFlower),TimeHandler.addEvent(blockContentsEmerge,7,e)))}function blockContentsEmerge(e){var t=new Thing(e.contents[0],e.contents[1],e.contents[2]);addThing(t,e.left,e.top),setMidXObj(t,e,!0),t.blockparent=e,t.animate(t,e)}function Pipe(e,t,n){e.width=e.spritewidth=16,e.height=8*(t||1),!1!==n&&(e.actionTop=intoPipeVert,e.transport=n),setSolid(e,"pipe")}function PipeSide(e,t,n){e.width=e.spritewidth=n?8:19.5,e.height=e.spriteheight=16,t&&(e.actionLeft=intoPipeHoriz,e.transport=t),setSolid(e,"pipe side "+(n?"small":""))}function PipeVertical(e,t){e.spritewidth=e.width=16,e.spriteheight=e.repeat=1,e.height=t,setSolid(e,"pipe vertical")}function Vine(e,t){e.width=e.spriteheight=7,e.height=0,e.locnum=t,e.nocollide=e.nofall=e.repeat=!0,e.animate=vineEmerge,e.movement=vineMovement,setCharacter(e,"vine")}function vineEmerge(e,t){AudioPlayer.play("Vine Emerging"),setHeight(e,0),e.movement=vineMovement,TimeHandler.addEvent(vineEnable,14,e),TimeHandler.addEventInterval(vineStay,1,14,e,t)}function vineStay(e,t){setBottom(e,t.top)}function vineEnable(e){e.nocollide=!1,e.collide=touchVine}function vineMovement(e){increaseHeightTop(e,unitsized4),e.attached&&shiftVert(e.attached,-unitsized4,!0)}function touchVine(e,t){!e.player||e.attached||e.climbing||e.bottom>t.bottom+unitsizet2||(t.attached=e,e.attached=t,e.nofall=e.skipoverlaps=!0,e.xvel=e.yvel=e.resting=e.jumping=e.jumpcount=e.running=0,e.attachleft=!objectToLeft(e,t),e.attachoff=2*e.attachleft-1,e.movementsave=e.movement,e.movement=movePlayerVine,e.keys=new Keys,TimeHandler.clearClassCycle(e,"running"),removeClass(e,"running skidding"),unflipHoriz(e),e.attachleft&&flipHoriz(e),addClass(e,"climbing"),e.climbing=TimeHandler.addSpriteCycle(e,["one","two"],"climbing"),lookTowardThing(e,t),e.attachleft?setLeft(e,t.right-unitsizet4):setRight(e,t.left+unitsizet4))}function Springboard(e){e.width=8,e.height=e.heightnorm=14.5,e.tension=e.tensionsave=0,e.dir=1,e.collide=collideSpring,setSolid(e,"springboard")}function collideSpring(e,t){return e.yvel>=0&&e.player&&!t.tension&&characterOnSolid(e,t)?springPlayerInit(t,e):characterTouchedSolid(e,t)}function springPlayerInit(e,t){e.tension=e.tensionsave=max(.77*t.yvel,unitsize),t.movement=movePlayerSpringDown,t.spring=e,t.xvel/=2.8}function movePlayerSpringDown(e){return objectsTouch(e,e.spring)?e.spring.height<2.5*unitsize||e.spring.tensione.spring.right-unitsizet2)&&(e.xvel/=1.4),reduceSpringHeight(e.spring,e.spring.tension),setBottom(e,e.spring.top,!0),e.spring.tension/=2,void updateSize(e.spring)):(e.movement=movePlayer,e.spring.movement=moveSpringUp,void(e.spring=!1))}function movePlayerSpringUp(e){if(!e.spring||!objectsTouch(e,e.spring))return e.spring=!1,void(e.movement=movePlayer)}function moveSpringUp(e){reduceSpringHeight(e,-e.tension),e.tension*=2,e==player.spring&&setBottom(player,e.top,!0),e.height>e.heightnorm&&(e==player.spring&&(player.yvel=max(-unitsizet2,-.98*e.tensionsave),player.resting=player.spring=!1),reduceSpringHeight(e,(e.height-e.heightnorm)*unitsize),e.tension=e.tensionsave=e.movement=!1)}function reduceSpringHeight(e,t){reduceHeight(e,t,!0)}function Stone(e,t,n){e.width=8*t||8,e.height=8*n||8,e.repeat=!0,setSolid(e,"Stone")}function GenericStone(e,t,n){return Stone(e,t,n)}function RestingStone(e){e.width=e.height=8,e.used=!1,e.movement=RestingStoneUnused,setSolid(e,"Stone hidden"),e.title="Stone"}function RestingStoneUnused(e){if(player.resting){if(player.resting!=e)return killNormal(e);e.movement=RestingStoneUsed,removeClass(e,"hidden"),setThingSprite(player)}}function RestingStoneUsed(e){if(!player.resting)return killNormal(e)}function CastleBlock(e,t,n){e.width=e.height=8;var x,r,i=!1;t instanceof Array?(x=t[0],r=t[1],i=n):(x=t,r=n),setSolid(e,i?"castleblockinvis":"castleblock"),x&&(e.balls=new Array(x),e.dt=.07*(r?1:-1),e.timeout=round(7/(abs(r)||1)),e.movement=castleBlockSpawn,e.timer=e.counter=0,e.angle=.25,e.spawn_as_char=!0)}function castleBlockSpawn(e){for(var t=0;tn.bottom-unitsize||(killNormal(n),killNormal(t),notime=nokeys=!0,thingStoreVelocity(e),killOtherCharacters(),TimeHandler.addEvent(killNormal,7,n.chain),TimeHandler.addEvent(CastleAxeKillsBridge,14,n.bridge,n),AudioPlayer.pauseTheme(),AudioPlayer.playTheme("World Clear",!1,!1))}function CastleAxeKillsBridge(e,t){e.width-=2,e.right-=unitsizet2,e.width>0?TimeHandler.addEvent(CastleAxeKillsBridge,1,e,t):(e.width=0,TimeHandler.addEvent(CastleAxeKillsBowser,1,t.bowser)),setWidth(e,e.width)}function CastleAxeKillsBowser(e){e.nofall=!1,e.nothrow=!0,++player.star,TimeHandler.addEvent(CastleAxeContinues,35,player)}function CastleAxeContinues(e){map.canscroll=!0,startWalking(e)}function Toad(e){e.width=16,e.height=e.spriteheight=12,e.group="toad",setSolid(e,"toad npc")}function Peach(e){e.width=16,e.height=e.spriteheight=12,e.group="peach",setSolid(e,"peach npc")}function collideCastleNPC(e,t){killNormal(t),e.keys.run=0,TimeHandler.addEvent((function(e){var t;for(t=0;te.parent.bottom?(setTop(e,e.parent.top),detachPlayer(e)):movePlatformNorm(e)}function movePlatformNorm(e){shiftHoriz(e,e.xvel),shiftVert(e,e.yvel),e==player.resting&&e.alive&&(setBottom(player,e.top),shiftHoriz(player,e.xvel),player.right>innerWidth&&setRight(player,innerWidth))}function detachPlayer(e){player.resting==e&&(player.resting=!1)}function Scale(e,t,n){e.height=5,e.width=4*t,e.spritewidth=e.spriteheight=5,e.repeat=e.nocollide=!0,setSolid(e,"scale")}function Flag(e){e.width=e.height=8,e.nocollide=!0,setSolid(e,"flag")}function FlagPole(e){e.width=1,e.height=72,e.nocollide=e.repeat=!0,setSolid(e,"flagpole")}function FlagTop(e){e.spritewidth=e.spriteheight=e.width=e.height=4,e.nocollide=!0,setSolid(e,"flagtop")}function FlagDetector(e){e.width=2,e.height=100,e.collide=FlagCollision,setSolid(e,"flagdetector"),e.hidden=!0}function CastleDoorDetector(e){e.width=e.height=4,e.collide=endLevelPoints,setSolid(e,"castledoor"),e.hidden=!0}function FlagCollision(e,t){if(!e||!e.player)return killNormal(e);window.detector=t,AudioPlayer.pause(),AudioPlayer.play("Flagpole"),killOtherCharacters(),nokeys=notime=player.nofall=1,player.xvel=player.yvel=player.keys.up=player.keys.jump=map.canscroll=map.ending=player.movement=0,player.nocollidechar=!0,setRight(e,t.pole.left,!0),removeClasses(e,"running jumping skidding"),addClass(e,"climbing animated"),updateSize(e),TimeHandler.addSpriteCycle(e,["one","two"],"climbing"),playerRemoveStar(player);var n=!1,x=!1,r=(t.stone.top-e.bottom)/unitsize,i=setInterval((function(){n||(e.bottom>=t.stone.top?(scorePlayerFlag(r,t.stone),n=!0,setBottom(e,t.stone.top,!0),removeClass(player,"animated"),TimeHandler.clearClassCycle(player,"climbing")):shiftVert(e,unitsize,!0)),x||(t.flag.bottom>=t.stone.top?(x=!0,setBottom(t.flag,t.stone.top,!0)):shiftVert(t.flag,unitsize,!0)),n&&x&&(setBottom(e,t.stone.top,!0),clearInterval(i),setTimeout((function(){FlagOff(e,t.pole)}),21*timer)),refillCanvas()}),timer)}function scorePlayerFlag(e,t){var n;n=e<28?e<8?100:400:e<40?800:e<62?2e3:5e3,score(player,n,!0)}function FlagOff(e,t){player.keys.run=notime=nokeys=1,player.maxspeed=player.walkspeed,flipHoriz(e),TimeHandler.clearClassCycle(e,"climbing"),setLeft(e,t.right,!0),setTimeout((function(){AudioPlayer.play("Stage Clear"),playerHopsOff(e,t,!0)}),14*timer)}function endLevelPoints(e,t){if(e&&e.player){notime=nokeys=!0,killNormal(t),killNormal(e);var n=parseInt(getLast(String(data.time.amount)));1!=n&&3!=n&&6!=n&&(n=0);var x=setInterval((function(){--data.time.amount,data.score.amount+=50,updateDataElement(data.score),updateDataElement(data.time),AudioPlayer.play("Coin"),data.time.amount<=0&&(clearInterval(x),setTimeout((function(){endLevelFireworks(e,n,t)}),49*timer))}),timer)}}function endLevelFireworks(e,t,n){var x,r,i=0;if(t){for(var a=n.left+32*unitsized2;igamescreen.right-gamescreen.left)&&e.section.activated){var t=e.section;t.numpass=t.colliders.length=0,t.passed?(++map.area.sections.current,e.next(e.xloc)):t(e.xloc),t.activated=t.passed=!1,spawnMap(),killNormal(e)}},setSolid(e,"decider blue "+n),e.hidden=!0}function FuncCollider(e,t,n){n?(e.width=n[0],e.height=n[1]):(e.width=8,e.height=ceilmax+40),e.collide=t,e.hidden=!0,setSolid(e,"funccollider blue "+t.name)}function FuncSpawner(e,t,n){e.width=8,e.height=8,e.movement=function(){t(e,n)},e.argument=n,e.nocollide=e.hidden=!0,setSolid(e,"funccollider blue "+t.name)}function Collider(e,t,n){e.width=t[0],e.height=t[1],n instanceof Array?(e.func=n[0]||function(){},e.movement=n[1]||function(){}):(e.func=n||function(){},e.movement=!1),e.collide=function(e,t){if(!e.player)return!1;t.func(e,t)},setSolid(e,"collider blue "+e.func.name),e.hidden=!0}function TonedJS(e){var t={giveSup:function(e,t){for(var n in t=t||{},e)t[n]=e[n];return t},giveSub:function(e,t){for(var n in t=t||{},e)t.hasOwnProperty(n)||(t[n]=e[n]);return t},proliferate:function(e,t,n){var x,r;for(r in t)n&&e.hasOwnProperty(r)||("object"==typeof(x=t[r])&&null!=x?(e.hasOwnProperty(r)||(e[r]=x instanceof Array?[]:{}),proliferate(e[r],x,n)):e[r]=x);return e},getFirst:function(e,t){for(var n in e)return t?n:e[n]},getLast:function(e,t){for(var n in e);return t?n:e[n]},followPath:function(e,t,n){return null!=t[n]&&null!=e[t[n]]?followPath(e[t[n]],t,++n):e},createElement:function(e){for(var t=document.createElement(e||"div"),n=arguments.length;--n>0;)proliferate(t,arguments[n]);return t},classAdd:function(e,t){e.className+=" "+t},classRemove:function(e,t){e.className=e.className.replace(new RegExp(" "+t,"gm"),"")},elementSetPosition:function(e,t,n){null==t&&(t=e.left),null==n&&(n=e.top),proliferate(e,{left:t,top:n,style:{marginLeft:t+"px",marginTop:n+"px"}})},elementShiftLeft:function(e,t){e.left||(e.left=Number(e.style.marginLeft.replace("px",""))),e.style.marginLeft=round(e.left+=t)+"px"},elementShiftTop:function(e,t){e.top||(e.top=Number(e.style.marginLeft.replace("px",""))),e.style.marginTop=round(e.top+=t)+"px"},removeChildSafe:function(e,t){e&&(t=t||document.body).contains(e)&&t.removeChild(e)},findParentOfType:function(e,t){var n=e.parentElement;return n&&n.nodeName!=t?findParentType(n,t):n},clearAllTimeouts:function(){for(var e=setTimeout((function(){}));e--;)clearTimeout(e)},stringTrim:function(e){return e.replace(/^\s+|\s+$/g,"")},stringOf:function(e,t){return 0==t?"":new Array(1+(t||1)).join(e)},stringHas:function(e,t){return-1!=e.indexOf(t)},stringHasI:function(e,t){return-1!=e.toLowerCase().indexOf(t.toLowerCase())},capitalizeFirst:function(e,t){return t=t||1,e.substr(0,t).toUpperCase()+e.substr(t).toLowerCase()},ArrayD:function(e){if(1==arguments.length)return new Array(e);var t,n=arrayMake(arguments),x=new Array(e);for(n.shift(),t=e-1;t>=0;--t)x[t]=ArrayD.apply(this,n);return x},arrayOf:function(e,t){t=t||1;for(var n=new Array(t);t--;)n[t]=e;return n},arrayMake:function(e){return Array.prototype.slice.call(e)},arrayRange:function(e,t){for(var n=1+t-e,x=new Array(n),r=e,i=0;i0},log:console.log.bind(console),now:Date.now};return e&&t.giveSub(t,window),t}function resetTriggers(){window.controls=new Controls({left:[37,65,"AXIS_LEFT","DPAD_LEFT"],right:[39,68,"AXIS_RIGHT","DPAD_RIGHT"],up:[38,87,32,"FACE_1","DPAD_UP","LEFT_BOTTOM_SHOULDER"],down:[40,83,"AXIS_DOWN","DPAD_DOWN"],sprint:[16,17,"FACE_1"],pause:[80,"START_FORWARD"],mute:[77],q:[81],l:[76]}),window.gamepad=new Gamepad,gamepad.bind(Gamepad.Event.BUTTON_DOWN,ControlsPipe("keydown",!0)),gamepad.bind(Gamepad.Event.BUTTON_UP,ControlsPipe("keyup",!1)),gamepad.bind(Gamepad.Event.AXIS_CHANGED,(function(e){var t=e.value,n=abs(t);if(!(n<.1))switch(e.axis){case"LEFT_STICK_Y":case"RIGHT_STICK_Y":n>.5?keydown(t>0?"DPAD_DOWN":"DPAD_UP"):(keyup("DPAD_UP"),keyup("DPAD_DOWN"));break;case"LEFT_STICK_X":case"RIGHT_STICK_X":n>.5?keydown(t<0?"DPAD_LEFT":"DPAD_RIGHT"):(keyup("DPAD_UP"),keyup("DPAD_DOWN"))}})),gamepad.init(),proliferate(body,{onkeydown:ControlsPipe("keydown",!0),onkeyup:ControlsPipe("keyup",!1),oncontextmenu:contextmenu,onmousedown:mousedown}),setMessageTriggers()}function Controls(e,t){this.pipes=e;var n,x,r,i,a=this.keydown={left:function(e){e.run=-1,e.left_down=!0},right:function(e){e.run=1,e.right_down=!0},up:function(e){e.up=!0,player.canjump&&(player.resting||map.underwater)&&(e.jump=1,player.canjump=e.jumplev=0,AudioPlayer.play(player.power>1?"Jump Super":"Jump Small"),map.underwater&&setTimeout((function(){player.jumping=e.jump=!1}),14*timer))},down:function(e){e.crouch=!0},sprint:function(e){3!=player.power||0!=e.sprint||e.crouch||player.fire(),e.sprint=1},pause:function(e){paused||window.editing&&!editor.playing||setTimeout((function(){pause(!0)}),140)},mute:function(e){AudioPlayer.toggleMute()},q:function(e){switch(++qcount>28&&maxlulz(),qcount){case 7:lulz();break;case 14:superlulz();break;case 21:hyperlulz()}},l:function(e){toggleLuigi()}},o=this.keyup={left:function(e){e.run=0,e.left_down=!1},right:function(e){e.run=0,e.right_down=!1},up:function(e){map.underwater||(e.jump=e.up=0),player.canjump=!0},down:function(e){e.crouch=0,removeCrouch()},sprint:function(e){e.sprint=0},pause:function(e){unpause(!0)}};for(n in e)for(i in x=e[n])a[r=x[i]]=a[n],o[r]=o[n]}function ControlsPipe(e,t){var n=controls[e];return function(x){t&&(player&&player.dead||window.paused)||window.nokeys||(("number"!=typeof x||x.which||x.control)&&(x=x.which||x.control),n[x]?n[x](player.keys):mlog(e,"Could not",e,x),window.gamehistory[gamecount]=[keydown,x])}}function keydown(e){if(!(player&&player.dead||window.paused||window.nokeys)){var t=controls.keydown;("object"==typeof e||e.which)&&(e=e.which),t[e]&&t[e](player.keys),window.gamehistory[gamecount]=[keydown,e]}}function keyup(e){if(!window.nokeys){var t=controls.keyup;("object"==typeof e||e.which)&&(e=e.which),t[e]&&t[e](player.keys),window.gamehistory[gamecount]=[keyup,e]}}function contextmenu(e){e.preventDefault&&e.preventDefault()}function mousedown(e){3==e.which&&(paused?unpause():window.editor&&(editing||editor.playing)||pause(!0),e.preventDefault&&e.preventDefault())}function scriptKeys(e){var t,n;for(t in e)n=e[t],TimeHandler.addEvent(n[0],t,n[1]),TimeHandler.addEvent((function(){alert(n[0].name+", "+n[1])}),t)}function lulz(e,t){player.star=!0,e=e||[Goomba],t=t||7,TimeHandler.addEventInterval((function(){if(!(characters.length>210)){var t=new Thing(e[randInt(e.length)],randBoolJS(),randBoolJS());t.yvel=random()*-unitsizet4,t.xvel=t.speed=random()*unitsizet2*randSign(),addThing(t,(32*random()+128)*unitsize,88*random()*unitsize)}}),t,1/0)}function superlulz(){lulz([Goomba,Koopa,Beetle,HammerBro,Lakitu,Podoboo,Blooper])}function hyperlulz(){lulz([Bowser],21)}function maxlulz(){TimeHandler.addEventInterval((function(e){setAreaSetting(e[randInt(e.length)])}),7,1/0,["Overworld","Underworld","Underwater","Sky","Castle"])}function mapKeyToControl(e,t){if(-1==window.controls.pipes[e].indexOf(t)){window.controls.pipes[e].push(t);var n=window.controls.pipes;window.controls=new Controls(n),proliferate(body,{onkeydown:ControlsPipe("keydown",!0),onkeyup:ControlsPipe("keyup",!1),oncontextmenu:contextmenu,onmousedown:mousedown})}}function setMessageTriggers(){var e={setMap:triggerSetMap,startEditor:function(){loadEditor()},toggleOption:function(e){var t="toggle"+e.option;console.log(t,window[t]),window[t]?window[t]():log("Could not toggle",t)},setKey:function(e){mapKeyToControl(e.action,e.keyCode)}};window.addEventListener("message",(function(t){var n=t.data,x=n.type;e[x]?e[x](n):console.log("Unknown event type received:",x,".\n",n)}))}function triggerSetMap(e){clearPlayerStats(),setMap.apply(this,e.map||[]),setLives(3)}function upkeep(){if(!window.paused){window.nextupk=setTimeout(upkeep,timer);for(var e=window.speed;e>0;--e)adjustFPS(),QuadsKeeper.determineAllQuadrants(solids),maintainSolids(),maintainCharacters(),maintainPlayer(),texts.length&&maintainTexts(),TimeHandler.handleEvents(),refillCanvas()}}function adjustFPS(){window.time_now=now();var e=time_now-time_prev,t=roundDigit(1e3/e,.001);window.fps=roundDigit(.7*fps+.3*t,.01),window.realtime=fps_target/fps,window.time_prev=time_now}function pause(e){paused&&!window.nextupk||(cancelAnimationFrame(nextupk),AudioPlayer.pause(),paused=!0,e&&AudioPlayer.play("Pause"))}function unpause(){paused&&(window.nextupk=requestAnimationFrame(upkeep),paused=!1,AudioPlayer.resume())}function maintainSolids(e){for(var t,n=0;nx)||t.outerok?!t.nomove&&t.movement&&t.movement(t):deleteThing(t,characters,n):map.shifting||deleteThing(t,characters,n)}function maintainPlayer(e){if(player.alive){if(player.yvel>0&&(map.underwater||(player.keys.jump=0),player.jumping||(map.underwater?player.paddling||(switchClass(player,"paddling","paddling"),player.padding=!0):(addClass(player,"jumping"),player.jumping=!0)),!player.piping&&!player.dying&&player.top>gamescreen.deathheight)){if(map.exitloc)return map.random?(goToTransport(["Random","Overworld","Down"]),void playerDropsIn()):shiftToLocation(map.exitloc);clearPlayerStats(),killPlayer(player,2)}player.xvel>0?player.right>gamescreen.middlex&&player.right>gamescreen.right-gamescreen.left&&(player.xvel=min(0,player.xvel)):player.left<0&&(player.xvel=max(0,player.xvel)),player.under&&(player.jumpcount=0),window.scrolloffset=map.canscroll*(player.right-gamescreen.middlex),scrolloffset>0&&!map.shifting?scrollWindow(lastscroll=round(min(player.scrollspeed,scrolloffset))):lastscroll=0}}function maintainTexts(){var e,t,n;for(n=texts.length-1;n>=0;--n)e=(t=texts[n]).element||t,t.xvel&&elementShiftLeft(e,t.xvel),t.yvel&&elementShiftTop(e,t.yvel)}function followPath(e,t,n){return null!=t[n]&&null!=e[t[n]]?followPath(e[t[n]],t,++n):e}function clearAllTimeouts(){for(var e=setTimeout((function(){}));e--;)clearTimeout(e)}function getCanvas(e,t,n){var x=createElement("canvas",{width:e,height:t});return n&&(n=n||unitsize,proliferate(x.style,{width:e*n+"px",height:t*n+"px"})),x.getContext("2d").webkitImageSmoothingEnabled=!1,x}function step(e){unpause(),upkeep(),pause(),e>0&&step(e-1)}function fastforward(e){window.speed=max(0,parseInt(e||0))+1}function toggleFastFWD(e){window.fastforwarding?(fastforward(0),window.fastforwarding=!1):(fastforward(2),window.fastforwarding=!0)}function specifyTimer(e){timer=e,requestAnimationFrame=function(e){window.setTimeout(e,timer)}}function changeUnitsize(e){function t(e){for(i in e)updateSize(e[i]),updatePosition(e[i])}e&&(resetUnitsize(e),t(solids),t(characters))}function randTrue(e){return floor(getSeed()*((e||1)+1))}function randSign(e){return 2*randTrue(e)-1}function randBoolJS(e){return floor(2*random())}function updatePosition(e){e.nomove||shiftHoriz(e,e.xvel),e.nofall||shiftVert(e,e.yvel)}function updateSize(e){var t;e.unitwidth=e.width*unitsize,e.unitheight=e.height*unitsize,e.spritewidthpixels=e.spritewidth*unitsize,e.spriteheightpixels=e.spriteheight*unitsize,(t=e.canvas)&&(t.width=e.spritewidthpixels,t.height=e.spriteheightpixels,refillThingCanvas(e))}function reduceHeight(e,t,n){e.top+=t,e.height-=t/unitsize,n&&updateSize(e)}function shiftBoth(e,t,n){e.noshiftx||shiftHoriz(e,t),e.noshifty||shiftVert(e,n)}function shiftHoriz(e,t){e.left+=t,e.right+=t}function shiftVert(e,t){e.top+=t,e.bottom+=t}function setLeft(e,t){e.left=t,e.right=e.left+e.width*unitsize}function setRight(e,t){e.right=t,e.left=e.right-e.width*unitsize}function setTop(e,t){e.top=t,e.bottom=e.top+e.height*unitsize}function setBottom(e,t){e.bottom=t,e.top=e.bottom-e.height*unitsize}function setWidth(e,t,n,x){e.width=t,e.unitwidth=t*unitsize,n&&(e.spritewidth=t,e.spritewidthpixels=t*unitsize),x&&(updateSize(e),setThingSprite(e))}function setHeight(e,t,n,x){e.height=t,e.unitheight=t*unitsize,n&&(e.spriteheight=t,e.spriteheightpixels=t*unitsize),x&&(updateSize(e),setThingSprite(e))}function setSize(e,t,n,x,r){t&&setWidth(e,t,x),n&&setHeight(e,n,x),r&&(updateSize(e),setThingSprite(e))}function setMidX(e,t,n){setLeft(e,t+e.width*unitsized2,n)}function getMidX(e){return e.left+e.width*unitsized2}function setMidY(e,t,n){setTop(e,t+e.height*unitsized2,n)}function setMidXObj(e,t,n){setLeft(e,t.left+t.width*unitsized2-e.width*unitsized2,n)}function slideToXLoc(e,t,n,x){n=n||1/0;var r=getMidX(e);shiftHoriz(e,r=e.ocheck.right-unitsizet2?(e.overlapdir=0,e.overlaps=[]):shiftHoriz(e,e.overlapdir,!0);else if(e.overlaps.length>0){var t,n,x=e.overlaps,r={right:-1/0},i={left:1/0},a=0;for(n in e.overlapfix=!0,x)a+=getMidX(t=x[n]),t.right>r.right&&(r=t),t.left=a-unitsized16?(e.overlapdir=unitsize,e.ocheck=r):(e.overlapdir=-unitsize,e.ocheck=i)}}function characterOverlapsSolid(e,t){return e.top<=t.top&&e.bottom>t.bottom}function objectsTouch(e,t){return e.right-unitsize>t.left&&e.left+unitsize=t.top&&e.top<=t.bottom}function charactersTouch(e,t){return!(e.bottom<=t.top+unitsizet2||e.top+unitsizet2>=t.bottom)}function objectInQuadrant(e,t){return e.right+unitsize>=t.left&&e.left-unitsize<=t.right&&e.bottom+unitsize>=t.top&&e.top-unitsize<=t.bottom}function objectsCollided(e,t){return e.solid&&!t.solid?objectsCollided(t,e):t.up&&e!=t.up?characterTouchesUp(e,t):void(t.solid||e.player?t.collide(e,t):e.collide(t,e))}function objectToLeft(e,t){return(e.left+e.right)/2<(t.left+t.right)/2}function objectOnTop(e,t){return!("solid"==e.type&&t.yvel>0)&&(!(e.yvelt.left&&(e.bottom-t.yvel<=t.top+t.toly||e.bottom<=t.top+t.toly+abs(e.yvel-t.yvel))))}function objectOnSolid(e,t){return e.left+unitsizet.left&&(e.bottom-e.yvel<=t.top+t.toly||e.bottom<=t.top+t.toly+abs(e.yvel-t.yvel))}function solidOnCharacter(e,t){return!(t.yvel>=0)&&(t.midx=getMidX(t),t.midx>e.left&&t.midx=0&&e.left+e.xvel+unitsize!=t.right&&e.right-e.xvel-unitsize!=t.left}function characterOnResting(e,t){return objectOnSolid(e,t)&&e.left+e.xvel+unitsize!=t.right&&e.right-e.xvel-unitsize!=t.left}function characterTouchedSolid(e,t){if(t.up!=e){if(characterOnSolid(e,t)){if(t.hidden)return;e.resting=t,e.player&&map.underwater&&removeClass(e,"paddling")}else if(solidOnCharacter(t,e)){var n=e.left+e.width*unitsize/2;if(n>t.left&&n=t.left&&(e.xvel=max(e.xvel,0),shiftHoriz(e,min(t.right-unitsize-e.left,unitsized2),!0)),e.player?t.actionLeft&&t.actionLeft(e,t,t.transport):(e.moveleft=!e.moveleft,"item"==e.group&&e.collide(t,e)))}}function characterNotBumping(e,t){return e.top+e.toly+abs(e.yvel)>t.bottom}function characterTouchesUp(e,t){switch(e.group){case"item":e.moveleft=getMidX(e)<=getMidX(t)+unitsized2,characterHops(e);break;case"coin":e.animate(e);break;default:e.death(e,2),scoreEnemyBelow(e)}}function characterHops(e){e.yvel=-1.4*unitsize,e.resting=!1}function characterIsAlive(e){return!(!e||e.dead||!e.alive)}function scorePlayerShell(e,t){return e.star?score(t,200,!0):t.resting?t.peeking?score(t,1e3,!0):score(t,100,!0):score(t,8e3,!0)}function scoreEnemyStomp(e){switch(e.type.split(" ")[0]){case"koopa":e.fly?400:100;break;case"bulletbill":case"cheepcheep":200;break;case"hammerbro":1e3;break;case"lakitu":800;break;default:100}}function scoreEnemyFire(e){var t=200;switch(e.type.split(" ")[0]){case"goomba":t=100;break;case"hammerbro":t=1e3;break;case"bowser":t=5e3;break;default:t=200}scoreEnemyFin(e,t)}function scoreEnemyStar(e){var t=200;switch(e.type.split(" ")[0]){case"goomba":t=100;break;case"hammerbro":t=1e3;break;default:t=200}scoreEnemyFin(e,t),AudioPlayer.play("Kick")}function scoreEnemyBelow(e){var t=100;switch(e.type.split(" ")[0]){case"hammerbro":t=1e3;break;default:t=100}scoreEnemyFin(e,t)}function scoreEnemyFin(e,t){score(e,t,!0)}function moveSimple(e){e.direction!=e.moveleft&&(e.moveleft?(e.xvel=-e.speed,e.noflip||unflipHoriz(e)):(e.noflip||flipHoriz(e),e.xvel=e.speed),e.direction=e.moveleft)}function moveSmart(e){moveSimple(e),0!=e.yvel||e.resting&&!offResting(e)||(e.moveleft?shiftHoriz(e,unitsize,!0):shiftHoriz(e,-unitsize,!0),e.moveleft=!e.moveleft)}function offResting(e){return e.moveleft?e.right-unitsizee.resting.right}function moveJumping(e){moveSimple(e),e.resting&&(e.yvel=-abs(e.jumpheight),e.resting=!1)}function moveFloating(e){setPlatformEndpoints(e),e.begin=map.floor*unitsize-e.begin,e.end=map.floor*unitsize-e.end,(e.movement=moveFloatingReal)(e)}function moveFloatingReal(e){e.tope.begin&&(e.yvel=max(e.yvel-unitsized32,-e.maxvel)),movePlatformNorm(e)}function moveSliding(e){setPlatformEndpoints(e),(e.movement=moveSlidingReal)(e)}function moveSlidingReal(e){gamescreen.left+e.lefte.end&&(e.xvel=max(e.xvel-unitsized32,-e.maxvel)),movePlatformNorm(e)}function setPlatformEndpoints(e){if(e.begin>e.end){var t=e.begin;e.begin=e.end,e.end=t}}function collideTransport(e,t){characterTouchedSolid(e,t),t==e.resting&&(t.movement=movePlatformNorm,t.collide=characterTouchedSolid,t.xvel=unitsized2)}function moveFalling(e){if(e!=player.resting)return e.yvel=0;shiftVert(e,e.yvel+=unitsized8),setBottom(player,e.top),e.yvel>=2.8*unitsize&&(e.freefall=!0,e.movement=moveFreeFalling)}function moveFallingScale(e){player.resting==e?(shiftScaleStringVert(e,e.string,e.yvel+=unitsized16),shiftScaleStringVert(e.partner,e.partner.string,-e.yvel),e.tension+=e.yvel,e.partner.tension-=e.yvel):e.yvel>0&&(shiftScaleStringVert(e,e.string,e.yvel-=unitsized32),shiftScaleStringVert(e.partner,e.partner.string,-e.yvel),e.tension-=e.yvel,e.partner.tension+=e.yvel),e.partner.tension<=0&&(e.collide=e.partner.collide=characterTouchedSolid,e.movement=e.partner.movement=moveFreeFalling)}function moveFreeFalling(e){shiftVert(e,e.yvel+=unitsized16),e.yvel>unitsizet2&&(e.movement=function(e){shiftVert(e,e.yvel)})}function shiftScaleStringVert(e,t,n){shiftVert(e,n),t.bottom=e.top,t.height=(t.bottom-t.top)/unitsize,updateSize(t)}function setClass(e,t){e.className=t,setThingSprite(e)}function setClassInitial(e,t){e.className=t}function addClass(e,t){e.className+=" "+t,setThingSprite(e)}function removeClass(e,t){e.className=e.className.replace(new RegExp(" "+t,"gm"),""),setThingSprite(e)}function switchClass(e,t,n){removeClass(e,t),addClass(e,n)}function removeClasses(e){var t,n,x;for(n=1;n=0;--x)removeClass(e,t[x])}function addClasses(e,t){for(var n=t instanceof Array?t:t.split(" "),x=n.length-1;x>=0;--x)addClass(e,n[x])}function addElementClass(e,t){e.className+=" "+t}function removeElementClass(e,t){e.className=e.className.replace(new RegExp(" "+t,"gm"),"")}function flipHoriz(e){addClass(e,"flipped")}function flipVert(e){addClass(e,"flip-vert")}function unflipHoriz(e){removeClass(e,"flipped")}function unflipVert(e){removeClass(e,"flip-vert")}function deleteThing(e,t,n){t.splice(n,1),e.ondelete&&e.ondelete()}function switchContainers(e,t,n){t.splice(t.indexOf(e),1),n.push(e)}function containerForefront(e,t){t.splice(t.indexOf(e),1),t.unshift(e)}function killNormal(e){e&&(e.hidden=e.dead=!0,e.alive=e.resting=e.movement=!1,TimeHandler.clearAllCycles(e))}function killFlip(e,t){flipVert(e),e.bottomBump=function(){},e.nocollide=e.dead=!0,e.resting=e.movement=e.speed=e.xvel=e.nofall=!1,e.yvel=-unitsize,TimeHandler.addEvent((function(e){killNormal(e)}),70+(t||0))}function generalMovement(e,t,n,x){var r=setInterval((function(){shiftVert(e,n),shiftHoriz(e,t)}),timer);setTimeout((function(){clearInterval(r)}),x)}function blockBumpMovement(e){var t=-3,n=setInterval((function(){shiftVert(e,t),3.5==(t+=.5)&&(clearInterval(n),e.up=!1),determineThingCollisions(e)}),timer)}function emergeUp(e,t){AudioPlayer.play("Powerup Appears"),flipHoriz(e),e.nomove=e.nocollide=e.alive=e.nofall=e.emerging=!0,switchContainers(e,characters,scenery);var n=setInterval((function(){shiftVert(e,-unitsized8),e.bottom<=t.top&&(clearInterval(n),switchContainers(e,scenery,characters),e.nocollide=e.nomove=e.moveleft=e.nofall=e.emerging=!1,e.emergeOut&&e.emergeOut(e,t),e.movement&&(e.movementsave=e.movement,e.movement=moveSimple,e.moving=TimeHandler.addEventInterval((function(e,t){if(e.resting!=t)return TimeHandler.addEvent((function(e){e.movement=e.movementsave}),1,e),!0}),1,1/0,e,t)))}),timer)}function flicker(e,t,n){t=round(t)||49,n=round(n)||3;e.flickering=!0,TimeHandler.addEventInterval((function(e){e.hidden=!e.hidden}),n,t,e),TimeHandler.addEvent((function(e){e.flickering=e.hidden=!1}),t*n+1,e)}function killOtherCharacters(){var e,t;if(window.characters)for(t=characters.length-1;t>=0;--t)(e=characters[t]).nokillend?e.killonend&&e.killonend(e):deleteThing(e,characters,t);if(window.solids)for(t=solids.length-1;t>=0;--t)solids[t].killonend&&deleteThing(solids[t],solids,t)}function lookTowardPlayer(e,t){player.right<=e.left?e.lookleft&&!t||(e.lookleft=!0,e.moveleft=!1,unflipHoriz(e)):player.left>=e.right&&(e.lookleft||t)&&(e.lookleft=!1,e.moveleft=!0,flipHoriz(e))}function lookTowardThing(e,t){t.right<=e.left?(e.lookleft=!0,e.moveleft=!1,unflipHoriz(e)):t.left>=e.right&&(e.lookleft=!1,e.moveleft=!0,flipHoriz(e))}function playCurrentThemeHurry(e){AudioPlayer.playTheme("Hurry "+(e||area.theme))}!function(e){"use strict";var t=function(){},n={getType:function(){return"null"},isSupported:function(){return!1},update:t},x=function(e){var n=this,x=window;this.update=t,this.requestAnimationFrame=e||x.requestAnimationFrame||x.webkitRequestAnimationFrame||x.mozRequestAnimationFrame,this.tickFunction=function(){n.update(),n.startTicker()},this.startTicker=function(){n.requestAnimationFrame.apply(x,[n.tickFunction])}};x.prototype.start=function(e){this.update=e||t,this.startTicker()};var r=function(){};r.prototype.update=t,r.prototype.start=function(e){this.update=e||t};var i=function(e,t){this.listener=e,this.gamepadGetter=t,this.knownGamepads=[]};i.factory=function(e){var t=n,x=window&&window.navigator;return x&&(void 0!==x.webkitGamepads?t=new i(e,(function(){return x.webkitGamepads})):void 0!==x.webkitGetGamepads&&(t=new i(e,(function(){return x.webkitGetGamepads()})))),t},i.getType=function(){return"WebKit"},i.prototype.getType=function(){return i.getType()},i.prototype.isSupported=function(){return!0},i.prototype.update=function(){var e,t,n=this,x=Array.prototype.slice.call(this.gamepadGetter(),0);for(t=this.knownGamepads.length-1;t>=0;t--)e=this.knownGamepads[t],x.indexOf(e)<0&&(this.knownGamepads.splice(t,1),this.listener._disconnect(e));for(t=0;t.5,s=n>.5;e.state[r]=t,x&&!s?a._fire(o.Event.BUTTON_DOWN,Object.create(l)):!x&&s&&a._fire(o.Event.BUTTON_UP,Object.create(l)),0!==t&&1!==t&&t!==n&&a._fireAxisChangedEvent(e,r,t),e.lastState[r]=t},e.updater.push(x)},o.prototype._addAxisUpdater=function(e,t,n){var x,r=s(o.StandardAxes,n,"EXTRA_AXIS_"),i=this._createAxisGetter(e,t.axes,n),a=this;e.state[r]=0,e.lastState[r]=0,x=function(){var t=i(),n=e.lastState[r];e.state[r]=t,t!==n&&a._fireAxisChangedEvent(e,r,t),e.lastState[r]=t},e.updater.push(x)},o.prototype._fireAxisChangedEvent=function(e,t,n){var x={gamepad:e,axis:t,value:n};this._fire(o.Event.AXIS_CHANGED,x)},o.prototype._createButtonGetter=(l=function(){return 0},function(e,t,n){var x,r,i=l,a=this;return-1!==(x=t.byButton[n])?"number"==typeof x&&x1?0:1-r}),x}(i=function(){var t=e.axes[x[0]];return a._applyDeadzoneMaximize(t)},x[1],x[2]))),i}),o.prototype._createAxisGetter=function(){var e=function(){return 0};return function(t,n,x){var r,i=e,a=this;return-1!==(r=n.byAxis[x])&&"number"==typeof r&&r0&&this._fire(o.Event.TICK,this.gamepads)},o.prototype._applyDeadzoneMaximize=function(e,t,n){return t=void 0!==t?t:this.deadzone,n=void 0!==n?n:this.maximizeThreshold,e>=0?en&&(e=1):e>-t?e=0:e<-n&&(e=-1),e},e.Gamepad=o}("undefined"!=typeof module&&module.exports||window);var customMute=!0;function AudioPlayr(e){"use strict";var t,n,x,r,i,a,o,l,s,d,u=this.play=function(e){var n=x[e];if(!n){if(!(n=t[e]))return console.log("Unknown sound: '"+e+"'"),n;x[e]=n}return n.name_raw=e,c(n),n.volume=!i,customMute||n.play(),n.used++||n.addEventListener("ended",(function(){!function(e,t){x[t]&&delete x[t]}(0,e)})),n};function p(e){customMute||e.play()}function c(e){e&&e.pause&&(e.pause(),e.readyState&&(e.currentTime=0))}function m(e,t){var x,r,i=document.createElement("Audio");for(r in h(i,d),n)x=n[r],i.appendChild(h(document.createElement("Source"),{type:"audio/"+x,src:a+"/"+t+"/"+x+"/"+e+"."+x}));return customMute||i.play(),i}function h(e,t){var n,x;for(x in t)"object"==typeof(n=t[x])?(e[x]||(e[x]={}),h(e[x],n)):e[x]=n;return e}this.playLocal=function(e,t){var n,x=u(e);if(!x)return x;switch(l.constructor){case Function:n=l(t);break;case Number:n=l;break;default:n=Number(n)||1}return x.volume=x.volume_real=n=0,x},this.playTheme=function(e,t,n){if(n=void 0===n||n,!e)switch(s.constructor){case Function:e=s();break;case String:e=s}(i=r)&&(c(i),r=void 0,delete x[i.name_raw]);var i=r=u(e);return i.loop=n,t||(i.used=!1),1==i.used&&i.addEventListener("ended",this.playTheme),i},this.addEventListener=function(e,t,n){var r=x[e];r&&r.addEventListenever(t,n)},this.addEventImmediate=function(e,t,n){var r=x[e];r&&!r.paused?r.addEventListener(t,n):n()},this.toggleMute=function(){for(var e in i=!i,x)x[e].volume=i?0:x[e].volume_real||1;o&&(localStorage[o]=i)},this.pause=function(){for(var e in x)x[e]&&x[e].pause()},this.resume=function(){for(var e in x)x[e]&&!customMute&&p(x[e])},this.pauseTheme=function(){r&&r.pause()},this.resumeTheme=function(){r&&r.play()},this.clear=function(){this.pause(),x={},this.theme=void 0},this.getLibrary=function(){return t},this.getSounds=function(){return x},function(e){t=e.library||{},n=e.filetypes||["mp3","ogg"],i=e.muted||!1,a=e.directory||"",o=e.localStorageMuted||"",l=e.getVolumeLocal||1,s=e.getThemeDefault||"Theme";var r=e.soundSettings||{};d=e.soundSettings||{preload:r.preload||"auto",used:0,volume:0},x={},o&&(i=localStorage[o]),function(){var e,n,x,r;for(x in t)for(r in e=t[x])n=e[r],t[n]=m(n,x)}()}(e||{})}function TimeHandlr(e){"use strict";var t,n,x,r,i,a,o,l,s;this.getTime=function(){return t},this.getEvents=function(){return n};var d=this.addEvent=function(e,n){if(!(e instanceof Function))return console.warn("Attempting to add an event that isn't a function."),console.log(arguments),!1;n=n||1;var x=g(arguments);x.splice(0,2);var r={func:e,time_exec:t+n,time_repeat:n,args:x,repeat:1};return c(r,r.time_exec),r},u=this.addEventInterval=function(e,n,x){if(!(e instanceof Function))return console.warn("Attempting to add an event that isn't a function."),console.log(arguments),!1;n=n||1,x=x||1;var r=g(arguments);r.splice(0,3);var i={func:e,time_exec:t+n,time_repeat:n,args:r,repeat:x};return e.event=i,c(i,i.time_exec),i},p=this.addEventIntervalSynched=function(e,n,x,r,i){var a=n*i.length,o=w(t/a)*a,l=this,s=function(e,n,x){return x.startcount=t,u.apply(e,n)};if(n=n||1,x=x||1,o==t)return s(l,arguments,r);var p=o-t;d(s,p,l,arguments,r)};function c(e,t){return n[t]?(n[t].push(e),n[t]):n[t]=[e]}this.clearEvent=function(e){e&&(e.repeat=0)},this.clearAllEvents=function(){n={}};var m=this.clearClassCycle=function(e,t){if(e[x]&&e[x][t]){var n=e[x][t];n[0]=!1,n.length=!1,delete e[x][t]}};this.clearAllCycles=function(e){var t,n,x=e[x];for(t in x)(n=x[t])[0]=!1,n.length=1,delete x[t]},this.addSpriteCycle=function(e,t,n,r){e[x]||(e[x]={}),m(e,n);var i="function"==typeof r;n=n||0;var a=e[x][n]=h(e,t,i?0:r);return a.event&&i&&(a.event.count_changer=r),f(e,t),a},this.addSpriteCycleSynched=function(e,t,n,r){e[x]||(e[x]={}),m(e,n),n=n||0;var i=e[x][n]=h(e,t,r,!0);return f(e,t),i};function h(e,t,n,x){t.loc=t.oldclass=-1;var a=x?p:u;return e[r]=function(){a(f,n||o,1/0,e,t)},e[i]&&e[r](),t}function f(e,t){if(!e||!t||!t.length)return!0;if(null!=a&&!e[a])return!0;-1!=t.oldclass&&""!==t.oldclass&&s(e,t.oldclass),t.loc=++t.loc%t.length;var n=t[t.loc];if(n){var x=n instanceof Function?n(e,t):n;return"string"==typeof x?(t.oldclass=x,l(e,x),!1):!1===x}return!1===n}function g(e){return Array.prototype.slice.call(e)}function v(e,t){e.className+=" "+t}function y(e,t){e.className=e.className.replace(new RegExp(" "+t,"gm"),"")}this.handleEvents=function(){++t;var e=n[t];if(e){var x,r,i;for(i=0,r=e.length;i0&&!x.func.apply(this,x.args)&&(x.count_changer&&x.count_changer(x),x.repeat instanceof Function?x.repeat.bind(x)()&&(x.count+=x.time_repeat,c(x,x.time_exec)):--x.repeat>0&&(x.time_exec+=x.time_repeat,c(x,x.time_exec)));delete n[t]}};var w=Math.ceil;!function(e){t=e.time||0,n=e.events||{},x=e.cycles||"cycles",e.className||"className",r=e.onSpriteCycleStart||"onSpriteCycleStart",i=e.doSpriteCycleStart||"doSpriteCycleStart",a=e.cycleCheckValidity,o=e.timingDefault||7,l=e.addClass||window.addClass||v,s=e.removeClass||window.removeClass||y}(e||{})}function QuadsKeepr(e){"use strict";var t,n,x,r,i,a,o,l,s,d,u,p,c,m,h,f,g,v,y,w,T,S;this.getQuadrants=function(){return t},this.getNumQuads=function(){return x},this.getNumRows=function(){return r},this.getNumCols=function(){return i},this.getQuadWidth=function(){return l},this.getQuadHeight=function(){return s},this.getDelX=function(){return u},this.getOutDifference=function(){return p};var P=this.resetQuadrants=function(){t.length=0,n.length=0;for(var e=0;ee[w]))return};function B(e,t,n){e[T][e[y]]=t,++e[y],t.things[t.numthings]=e,++t.numthings}function A(e,t){return e[g]+d>=t.left&&e[h]-d<=t.right&&e[v]+d>=t.top&&e[f]-d<=t.bottom}!function(e){t=[],n=[],x=e.num_quads,r=e.num_rows,i=e.num_cols,x?(r&&(i=x/r),i&&(r=x/i)):(r||(r=2),i||(i=2),x=r*i),a=e.screen_width||640,o=e.screen_height||480,l=a/(i-3),s=o/(r-2),d=e.tolerance||0,u=e.delx||-2*l,p=l,h=e.thing_left||"left",g=e.thing_right||"right",f=e.thing_top||"top",v=e.thing_bottom||"bottom",y=e.thing_num_quads||"numquads",w=e.thing_max_quads||"maxquads",T=e.thing_quadrants||"quadrants",S=e.onUpdate,e.onCollide,P()}(e||{})} \ No newline at end of file +function applyNewJs() { + document.body.addEventListener("keydown", (function(e) { + 32 !== e.keyCode && 38 !== e.keyCode && 40 !== e.keyCode || e.target !== document.body || e.preventDefault() + }), !1), document.getElementById("paused") && document.getElementById("paused").remove(), document.getElementById("mobile-controls") && document.getElementById("mobile-controls").remove(); + var e = createElement("div", { + id: "paused" + }), + t = createElement("span"); + t.innerText = "CLICK TO UNPAUSE", e.appendChild(t), body.appendChild(e); + var n = createElement("div", { + id: "mobile-controls" + }), + x = createElement("div", { + id: "move-left", + className: "move" + }), + r = createElement("div", { + id: "move-top", + className: "move" + }), + i = createElement("div", { + id: "move-right", + className: "move" + }), + a = createElement("div", { + id: "move-bottom", + className: "move" + }), + o = createElement("div", { + id: "move-fire", + className: "move" + }), + l = createElement("span"), + s = createElement("span"), + d = createElement("span"), + u = createElement("span"), + p = createElement("span"); + x.appendChild(l), r.appendChild(s), i.appendChild(d), a.appendChild(u), o.appendChild(p), n.appendChild(x), n.appendChild(r), n.appendChild(i), n.appendChild(a), n.appendChild(o), body.appendChild(n); + var c = document.getElementById("move-right"), + m = document.getElementById("move-left"), + h = document.getElementById("move-top"), + f = document.getElementById("move-bottom"), + g = document.getElementById("move-fire"); + c.addEventListener("touchstart", (function(e) { + var t = new KeyboardEvent("keydown", { + bubbles: !0, + cancelable: !0, + keyCode: 68 + }); + document.body.dispatchEvent(t) + })), c.addEventListener("touchend", (function(e) { + var t = new KeyboardEvent("keyup", { + bubbles: !0, + cancelable: !0, + keyCode: 68 + }); + document.body.dispatchEvent(t) + })), m.addEventListener("touchstart", (function(e) { + var t = new KeyboardEvent("keydown", { + bubbles: !0, + cancelable: !0, + keyCode: 65 + }); + document.body.dispatchEvent(t) + })), m.addEventListener("touchend", (function(e) { + var t = new KeyboardEvent("keyup", { + bubbles: !0, + cancelable: !0, + keyCode: 65 + }); + document.body.dispatchEvent(t) + })), h.addEventListener("touchstart", (function(e) { + var t = new KeyboardEvent("keydown", { + bubbles: !0, + cancelable: !0, + keyCode: 87 + }); + document.body.dispatchEvent(t) + })), h.addEventListener("touchend", (function(e) { + var t = new KeyboardEvent("keyup", { + bubbles: !0, + cancelable: !0, + keyCode: 87 + }); + document.body.dispatchEvent(t) + })), f.addEventListener("touchstart", (function(e) { + var t = new KeyboardEvent("keydown", { + bubbles: !0, + cancelable: !0, + keyCode: 83 + }); + document.body.dispatchEvent(t) + })), f.addEventListener("touchend", (function(e) { + var t = new KeyboardEvent("keyup", { + bubbles: !0, + cancelable: !0, + keyCode: 83 + }); + document.body.dispatchEvent(t) + })), g.addEventListener("touchstart", (function(e) { + var t = new KeyboardEvent("keydown", { + bubbles: !0, + cancelable: !0, + keyCode: 17 + }); + document.body.dispatchEvent(t) + })), g.addEventListener("touchend", (function(e) { + var t = new KeyboardEvent("keyup", { + bubbles: !0, + cancelable: !0, + keyCode: 17 + }); + document.body.dispatchEvent(t) + })), document.getElementById("data_display").style = "width:100%;font-size:13px" +} + +function resetData() { + var e; + (e = document.getElementById("data_display")) && body.removeChild(e), window.data || (window.data = new Data) +} + +function Data() { + this.playerpower = 1, this.traveled = this.traveledold = 0, this.scorelevs = [100, 200, 400, 500, 800, 1e3, 2e3, 4e3, 5e3, 8e3], this.score = new DataObject(0, 6, "SCORE"), this.time = new DataObject(350, 3, "TIME"), this.world = new DataObject(0, 0, "WORLD"), this.coins = new DataObject(0, 0, "COINS"), this.lives = new DataObject(3, 1, "LIVES"), this.time.dir = -1, this.scoreold = 0 +} + +function DataObject(e, t, n) { + this.amount = e, this.length = t, this.name = n, this.element = createElement("td", { + className: "indisplay" + }) +} + +function setDataDisplay() { + var e = createElement("table", { + id: "data_display", + className: "display", + style: { + width: gamescreen.right + 14 + "px" + } + }), + t = ["score", "coins", "world", "time", "lives"]; + for (var n in body.appendChild(e), data.display = e, t) e.appendChild(data[t[n]].element), updateDataElement(data[t[n]]); + body.appendChild(data.display), is_mobile && applyNewJs() +} + +function clearDataDisplay() { + body.removeChild(data_display) +} + +function toggleLuigi() { + window.luigi = !window.luigi, localStorage.luigi = window.luigi, window.player.title = window.luigi ? "Luigi" : "Mario", setThingSprite(window.player) +} + +function startDataTime() { + TimeHandler.addEventInterval(updateDataTime, 25, 1 / 0, data.time) +} + +function updateDataTime(e) { + 1 != e.dir && (100 == e.amount ? playCurrentThemeHurry() : e.amount <= 0 && killPlayer(player, !0)), notime || (map.time = e.amount += e.dir, updateDataElement(e)) +} + +function updateDataElement(e) { + var t = e.name + "
" + ("Infinity" == e.amount ? "Inf" : e.amount); + e.element.innerHTML = t, e.element.style.width = "" +} + +function score(e, t, n) { + if (!(t <= 0)) { + if (1 == arguments.length) return score(player, e); + if (localStorage.highscore = max(localStorage.highscore, data.score.amount += t), n) { + var x = addText(t, e.left, e.top); + x.yvel = -unitsized4, TimeHandler.addEvent(killScore, 49, x) + } + for (; data.score > 1e4;) gainLife(), data.score.amount = data.score.amount % 1e4; + updateDataElement(data.score) + } +} + +function killScore(e) { + body.contains(e) && body.removeChild(e), killNormal(e), deleteThing(e, texts, texts.indexOf(e)) +} + +function findScore(e) { + return e < data.scorelevs.length ? data.scorelevs[e] : (gainLife(), -1) +} + +function gainLife(e, t) { + data.lives.amount += "number" == typeof e ? e : 1, t || AudioPlayer.play("Gain Life"), updateDataElement(data.lives) +} + +function setLives(e) { + data.lives.amount = Number(e), updateDataElement(data.lives) +} + +function storePlayerStats() { + data.playerpower = player.power +} + +function clearPlayerStats() { + data.playerpower = player.power = 1 +} + +function loadEditor(e) { + editorClose(), e || (window.canedit = !0, setMap(["Special", "Blank"]), window.canedit = !1), setEditorLibrary(), setEditorHTML(), setEditorControls(), setEditorTriggers(), setEditorLocalRetrieval(), classAdd(body, "editor"), classAdd(editor.sidebar, "expanded"), TimeHandler.addEvent(classRemove, 35, editor.sidebar, "expanded"), map.shifting = !1, window.editing = !0 +} + +function setEditorLibrary() { + window.editor = { + xloc: 0, + yloc: 0, + playing: !1, + canplace: !0, + offset: { + x: unitsizet2 + }, + settings: { + night: !1, + setting: "Overworld", + alt: !1 + }, + defaults: { + width: 8, + height: 8, + widthoff: 0, + heightoff: 0, + minimum: 1, + followerUpdate: editorFollowerUpdateStandard, + prefunc: pushPreThing, + outerok: !0 + }, + placed: [], + characters: { + Goomba: {}, + Koopa: { + height: 12, + arguments: { + smart: Boolean, + movement: ["moveSimple", "moveJumping", "moveFloating"] + }, + followerUpdate: function(e, t) { + var n = "True" == t.smart, + x = t.movement, + r = "moveJumping" == x; + return "moveFloating" == x && (r = [8, 72]), [n, r] + }, + onadds: { + nocollide: !1 + } + }, + Beetle: { + width: 8.5, + height: 8.5 + }, + HammerBro: { + height: 12 + }, + CheepCheep: { + arguments: { + smart: Boolean + }, + attributes: { + nofall: !0 + } + }, + Lakitu: { + height: 12 + }, + Podoboo: { + width: 7 + }, + Blooper: { + height: 12, + onadds: { + nofall: !0 + } + }, + Bowser: { + width: 16, + height: 16 + } + }, + solids: { + Floor: { + arguments: { + width: 8 + }, + mydefaults: { + width: 8 + }, + prefunc_custom: function(e, t, n, x) { + var r = "Floor, " + e.xloc + ", " + e.yloc; + return x[1] && (r += ", " + x[1]), r + } + }, + Brick: { + arguments: { + contents: ["false", "Coins", "Star"] + }, + followerUpdate: function(e, t) { + var n = []; + t.contents; + return n.push(window[t.contents]), n + }, + prefunc_custom: function(e, t, n, x) { + var r = "Brick, "; + return r += e.xloc + ", " + e.yloc, t.contents && (r += ", " + t.contents[0].name), r + } + }, + Block: { + arguments: { + contents: ["Coin", "Mushroom", "Star", "1Up Mushroom"], + hidden: Boolean + }, + followerUpdate: function(e, t) { + var n = []; + return "1Up Mushroom" == t.contents ? n.push([Mushroom, 1]) : n.push(window[t.contents]), "True" == t.hidden && (TimeHandler.addEvent((function() { + editor.follower.hidden = !0 + })), n.push(1)), n + }, + prefunc_custom: function(e, t, n, x) { + var r = "Block, ", + i = t.contents, + a = i[0].name; + return r += e.xloc + ", " + e.yloc, "Coin" != a ? ("Mushroom" == a && i[1] ? r += ", [Mushroom, " + String(i[1]) + "]" : r += ", " + a, t.hidden && (r += ", true")) : t.hidden && (r += ", false, true"), r + } + }, + Cannon: { + arguments: { + height: 8 + }, + sprite_source: "top" + }, + Pipe: { + width: 16, + prefunc: pushPrePipe, + prefunc_solo: !0, + arguments: { + height: 8, + Pirhana: Boolean + }, + followerUpdate: function(e, t) { + var n = []; + return n.push(Number(t.height)), n.push(Boolean(t.Pirhana)), n + }, + sprite_source: "top" + }, + Stone: { + arguments: { + width: 8, + height: 8 + }, + prefunc_custom: function(e, t, n, x) { + var r = "Stone, " + e.xloc + ", " + e.yloc; + return r += ", " + x[1] + ", " + x[2] + } + }, + Coral: { + arguments: { + height: 8 + } + }, + CastleBlock: { + arguments: { + fireballs: 2, + direction: ["CW", "CCW"], + hidden: Boolean + }, + followerUpdate: function(e, t) { + return [ + [Number(t.fireballs), "CW" == t.direction], "True" == t.hidden + ] + } + }, + Springboard: { + height: 14.5, + heightoff: 1.5 + } + }, + scenery: { + Bush1: { + width: 16 + }, + Bush2: { + width: 24 + }, + Bush3: { + width: 32 + }, + Cloud1: { + width: 16, + height: 12 + }, + Cloud2: { + width: 24, + height: 12 + }, + Cloud3: { + width: 32, + height: 12 + }, + HillSmall: { + width: 24, + height: 9.5, + heightoff: -1.5 + }, + HillLarge: { + width: 40, + height: 17.5, + heightoff: -1.5 + }, + PlantSmall: { + width: 7, + height: 15, + heightoff: 1 + }, + PlantLarge: { + height: 23, + heightoff: 1 + }, + Fence: {}, + Water: { + width: 4, + height: 4, + prefunc: fillPreWater, + prefunc_solo: !0, + prefunc_custom: function(e, t, n, x) { + return e.xloc + ", " + e.yloc + } + } + } + }; + var e, t, n, x; + editor.defaults; + for (n in editor) + for (x in e = editor[n], editor[n]) t = e[x], proliferate(t, editor.defaults, !0); + for (n in e = editor.scenery) t = e[n], proliferate(t, { + createfunc: function(e) { + return ThingCreate(Sprite, e.spritename) + }, + spritename: n, + prefunc_custom: function(e, t, n, x) { + return "'" + n.spritename + "', " + e.xloc + ", " + (e.yloc - n.height) + } + }, !0), t.prefunc == pushPreThing && (t.prefunc = pushPreScenery) +} + +function setEditorHTML() { + createEditorGuideLines(), createEditorSidebar(), createEditorBottomBar(), createEditorScrollers(), editor.sectionselect.onchange() +} + +function createEditorSidebar() { + var e, t = ["Solids", "Characters", "Scenery", "Settings"], + n = editor.sidebar = createElement("div", { + id: "sidebar" + }), + x = editor.category = createElement("div", { + id: "category", + className: "group first" + }), + r = editor.sectionselect = createElement("select", { + id: "sectionselect", + className: "options big", + onchange: editorSelectSection + }), + i = editor.options = createElement("div", { + id: "options", + className: "options big" + }); + for (e in n.appendChild(x), x.appendChild(r), t) r.appendChild(createElement("option", { + innerText: t[e] + })); + n.appendChild(i), body.appendChild(window.sidebar = n) +} + +function createEditorBottomBar() { + var e = editor.bottombar = createElement("div", { + id: "bottombar", + things: {} + }); + sidebar.appendChild(e) +} + +function createEditorScrollers() { + var e, t, n, x = ["right", "left"], + r = {}; + for (t = createElement("div", { + id: "scrollers", + style: { + zIndex: 7, + width: innerWidth - 32 + "px" + } + }), settings = { + className: "scroller", + style: { + zIndex: 7, + marginTop: innerHeight / 2 + "px" + }, + onmouseover: editorFollowerHide, + onmouseout: editorFollowerShow, + onmousedown: editorScrollingStart, + onmouseup: editorScrollingStop + }, e = x.length - 1; e >= 0; --e) x[e], n = r[x[e]] = createElement("div", settings), t.appendChild(n); + proliferate(r.left, { + id: "left", + className: "scroller flipped off", + dx: -7 + }), proliferate(r.right, { + id: "right", + style: { + right: "21px" + }, + dx: 7 + }), editor.scrollers = r, body.appendChild(t) +} + +function editorFollowerHide() { + var e = editor.follower; + e.hiddenOld = e.hidden, e.hidden = !0 +} + +function editorFollowerShow() { + var e = editor.follower; + e.hidden = e.hiddenOld +} + +function editorScrollingStart(e) { + var t = e.target.dx; + editorPreventClicks(), editor.scrolling = TimeHandler.addEventInterval(editorScrolling, 1, 1 / 0, -t), classRemove(editor.scrollers.left, "off") +} + +function editorScrollingStop() { + TimeHandler.addEvent(editorClickOff, 3), TimeHandler.clearEvent(editor.scrolling) +} + +function editorScrolling(e) { + if (scrollEditor(e), editor.xloc >= 0) return scrollEditor(-editor.xloc), editorScrollingStop(), classAdd(editor.scrollers.left, "off"), !0 +} + +function createEditorGuideLines() { + var e, t, n, x = { + floor: 0, + ceiling: ceillev, + jumplev1: jumplev1, + jumplev2: jumplev2 + }, + r = 16 * unitsize + "px", + i = map.floor; + for (e in window.maplines = t = document.createElement("div"), t.style.marginLeft = r, t.id = "maplines", x) n = createElement("div", { + innerText: e, + className: "mapline", + id: e + "_line", + style: { + marginTop: (i - x[e]) * unitsize + "px", + marginLeft: "-" + r, + paddingLeft: r + } + }), t.appendChild(n); + body.appendChild(t) +} + +function setEditorControls(e) { + e = e || ["load", "save", "reset", "undo"]; + var t, n, x, r = document.getElementById("controls"), + i = createElement("div", { + id: "controls" + }), + a = editor.controls = { + container: i + }; + for (x in r && (r.innerHTML = ""), e) t = e[x], n = createElement("div", { + id: t, + alt: t, + className: "control", + style: { + backgroundImage: "url(Theme/" + t + ".gif)" + }, + innerHTML: "
" + t + "
", + onclick: editorClickControl + }), i.appendChild(n), a[t] = n; + sidebar.appendChild(i) +} + +function setEditorTriggers() { + var e, t = [maplines, canvas]; + for (e = t.length - 1; e >= 0; --e) t[e].onclick = editorMouseClick; + document.onmousemove = editorFollowerFollowsCursor +} + +function editorMouseClick(e) { + if (window.editing && !editor.clicking) { + if (editorPreventClicks(), editor.erasing) return editorPlaceEraser(e); + if (!editor.in_settings && editor.canplace) { + var t = editor.section_name, + n = (window[t], editor.current_selected, editor.follower); + editor.placed.push(n), editor.follower = !1, editorSetCurrentThingFromName(null, !0), paused && refillCanvas(), n.was_follower = !0, delete n.onclick, editor.playing && (thingRetrieveVelocity(n), proliferate(n, n.reference.attributes)) + } + } +} + +function editorSelectSection() { + var e = (this || editor.sectionselect).value.toLowerCase(); + (editor.in_settings = "settings" == e) ? (editorSetSection(e, !0), editorSetSectionSettings()) : editorSetSection(e) +} + +function editorSetSection(e, t) { + var n, x, r = editor.section = editor[e], + i = editor.bottombar, + a = 0; + if (editor.section_name = e, i.innerHTML = "", !t) + for (e in r) ++a, x = editorAddBottomPreview(i, e, r[e]), n || (n = x); + a ? (i.style.visibility = "visible", editorSetCurrentThingFromCanvas(n)) : i.style.visibility = "hidden" +} + +function editorAddBottomPreview(e, t, n) { + var x, r = n.width, + i = n.height, + a = window[t], + o = a ? ThingCreate(a, n.previewargs) : new Thing(Sprite, t), + l = createElement("div", { + width: r * unitsize + "px", + height: i * unitsize + "px", + name: t, + className: "holder " + t, + onclick: editorSetCurrentThing + }), + s = proliferate(getCanvas(r * unitsizet2, i * unitsizet2), { + name: t, + reference: n, + style: { + marginLeft: -roundDigit(r / 2, scale) + "px" + }, + onclick: editorSetCurrentThing + }), + d = (e.things, r * unitsizet2), + u = i * unitsizet2, + p = s.getContext("2d"); + return canvasDisableSmoothing(s), editor.bottombar.things[t] = s.thing = o, addClass(o, "editor"), x = o.canvas, o.canvases && (x = o.canvases[n.sprite_source || "middle"].canvas), n.previewsize ? (p.fillStyle = p.createPattern(x, "repeat"), p.fillRect(0, 0, d, u)) : p.drawImage(x, 0, 0, d, u), l.appendChild(l.canvas = s), e.appendChild(l), e[t] = l, s +} + +function editorSetSectionSettings() { + var e, t = editor.settings, + n = ""; + n += "

Settings

", n += addArgumentOption("night", Boolean, t.night), n += addArgumentOption("setting", ["Overworld", "Underworld", "Underwater", "Castle", "Sky"], t.setting), n += addArgumentOption("alt", Boolean, t.alt), n += "
", options.innerHTML = n, ensureOptionsAboveZero(editorUpdateSettingsOption), e = editor.sidebar.getElementsByTagName("table")[0].rows, editor.settings.night_elem = e[0].cells[1].firstChild, editor.settings.setting_elem = e[1].cells[1].firstChild, editor.settings.alt_elem = e[2].cells[1].firstChild, editor.follower && killNormal(editor.follower), editor.follower = !1 +} + +function editorUpdateSettingsOption(e) { + var t = editor.settings, + n = t.night = "True" == t.night_elem.value, + x = t.alt = "True" == t.alt_elem.value, + r = (t.setting = t.setting_elem.value) + (n ? " Night" : "") + (x ? " " + x : ""); + setAreaSetting(area, r, r != area.setting) +} + +function editorSetCurrentThing(e, t) { + var n = e.target, + x = editor.current_thing_name = n.name, + r = editor.current_thing = editor.section[x]; + t || updateCurrentArguments(x, r), editorUpdateFollower() +} + +function editorSetCurrentThingFromCanvas(e, t) { + editorSetCurrentThing({ + target: e + }, t) +} + +function editorSetCurrentThingFromName(e, t) { + editorSetCurrentThing({ + target: { + name: e || editor.current_thing_name + } + }, t) +} + +function updateCurrentArguments(e, t) { + t = t || {}; + var n, x = editor.options, + r = "", + i = t.mydefaults || {}, + a = t.arguments || {}; + for (n in r += "

" + e + "

", a.width || (r += addStaticOption("width", t.width)), a.height || (r += addStaticOption("height", t.height)), a) r += addArgumentOption(n.replace("_", "-"), a[n], null, i); + r += "
", x.innerHTML = r, ensureOptionsAboveZero() +} + +function addStaticOption(e, t) { + return t == 1 / 0 && (t = "Inf."), "" + e + ": " + t + "" +} + +function addArgumentOption(e, t, n, x) { + x = x || {}; + var r = "" + e + ": "; + switch (t) { + case 1 / 0: + r += "Inf"; + break; + case Boolean: + r += ""; + break; + case Number: + r += ""; + break; + default: + switch (typeof t) { + case "number": + r += "" + t + "x"; + break; + case "string": + r += ""; + break; + case "object": + for (i in r += "" + } + } + return r + "" +} + +function ensureOptionsAboveZero(e) { + e = e || editorUpdateFollower; + var t, n = editor.options.getElementsByTagName("input"); + for (i = n.length - 1; i >= 0; --i)(t = n[i]).onchange = t.onclick = t.onkeypress = editorInputEnsureAboveZero; + for (n = options.getElementsByTagName("select"), i = n.length - 1; i >= 0; --i)(t = n[i]).onchange = t.onclick = t.onkeypress = editorUpdateFollower +} + +function editorInputEnsureAboveZero(e) { + editorUpdateFollower(e) +} + +function editorUpdateFollower(e) { + if (editor.in_settings) return editorUpdateSettingsOption(e); + var t, n = editor.current_thing; + (t = editor.follower) && (t.id = "", killNormal(t)), t = n.createfunc ? n.createfunc(editor.current_thing, editorGetArguments()) : ThingCreate(window[editor.current_thing_name], n.followerUpdate(editor.current_thing, editorGetArguments())), editor.follower = t, proliferate(t, { + id: "follower", + libtype: editor.section_name, + lookleft: !0, + nocollide: !0, + reference: n, + onclick: editorMouseClick + }, !0), addThing(t), addClass(t, "editor"), thingRetrieveVelocity(t), thingStoreVelocity(t), editorSetFollowerPosition(t), editor.erasing && (t.hidden = !0) +} + +function editorGetArguments() { + var e = arrayMake(editor.options.getElementsByTagName("input")), + t = arrayMake(editor.options.getElementsByTagName("select")), + n = e.concat(t); + return pairs = generateInputNameValuePairs(n), pairs +} + +function generateInputNameValuePairs(e) { + var t, n = {}; + for (t in e) n[e[t].name] = e[t].value; + return n +} + +function editorFollowerFollowsCursor(e) { + var t = editor.follower; + t && editorSetFollowerPosition(t, roundFollowerDigit(e.x) + (editor.current_thing.widthoff - editor.offset.x) * unitsize, roundFollowerDigit(e.y) + editor.current_thing.heightoff * unitsize) +} + +function editorSetFollowerPosition(e, t, n) { + t = t || editor.xloc_old || 0, n = n || editor.yloc_old || 0, setLeft(e, t), setTop(e, n), editor.xloc_old = t, editor.yloc_old = n +} + +function roundFollowerDigit(e) { + var t = "solids" == editor.section_name ? 8 : 4; + return unitsize * t * round(e / (unitsize * t)) +} + +function roundFollowerPosition(e, t) { + editorSetFollowerPosition(e, roundFollowerDigit(e.left), roundFollowerDigit(e.top)) +} + +function editorFollowerUpdateStandard(e, t) { + "True" == t.hidden && TimeHandler.addEvent((function() { + editor.follower.hidden = !0 + })); + var n = []; + return t.width && n.push(Number(t.width)), t.height && n.push(Number(t.height)), n +} + +function editorClickControl(e) { + editorPreventClicks(); + var t = e.target; + t.id || (t = t.parentNode), window["editorControl" + capitalizeFirst(t.id)](), e.preventDefault() +} + +function editorPreventClicks() { + editor.clicking = !0, TimeHandler.addEvent(editorClickOff, 3) +} + +function editorClickOff() { + window.editor && (editor.clicking = !1) +} + +function editorControlUndo() { + var e = editor.placed.pop(); + e && !e.player && killNormal(e) +} + +function editorControlReset() { + var e = editor.placed.length, + t = roundDigit(35 / e, 21); + TimeHandler.addEventInterval(editorControlUndo, t, e) +} + +function editorControlSave() { + var e = editor.rawfunc = editorGetRawFunc(); + editorCreateInputWindow("Hit Submit below to start playing!

This map will be resumed automatically the next time you use the editor on this computer.
Alternately, you may copy this text to work on again later using Load (the button next to Save).

", e, editorSubmitGameFuncPlay); + return e +} + +function editorControlCancel() { + loadEditor() +} + +function editorGetRawFunc() { + var e, t = editor.placed, + n = t.length - 1, + x = new Array(e), + r = " var map = arguments[0] || new Map();\n"; + for (r += "\n map.time = " + data.time.amount + ";", r += "\n map.locs = [ new Location(0, true) ];", r += "\n map.areas = [", r += "\n new Area('" + area.setting + "', function() {", r += "\n setLocationGeneration(0);\n\n", e = n; e >= 0; --e) x[e] = new editorPreStatement(t[e]); + for (x.sort(prethingsorter), e = n; e >= 0; --e) x[e] = " " + x[e].statement; + return r += (x = removeDuplicates(x)).join("\n"), r += "\n })", r += "\n ];", r += "\n return map;" +} + +function editorPreStatement(e) { + this.placer = e, this.xloc = (gamescreen.left + e.left) / unitsize, this.yloc = map.floor - e.top / unitsize, this.statement = editorGetStatement(this, e, e.reference, e.args) +} + +function editorGetStatement(e, t, n, x) { + if (!n && !(n = editor[t.libtype][t.title])) return ""; + var r, i, a = (n.prefunc || pushPreThing).name, + o = x.length; + if (n.prefunc_custom) a += "(" + n.prefunc_custom(e, t, n, x) + ");"; + else { + r = [], n.prefunc_solo || r.push(t.title), r.push(String(e.xloc)), r.push(String(e.yloc)); + for (var l = 1; l < o; ++l) { + switch (typeof(i = x[l])) { + case "undefined": + break; + case "number": + i = String(round(i)); + break; + default: + i = String(i) + } + void 0 !== i && r.push(i) + } + a += "(" + r.join(", ") + ");" + } + return a +} + +function editorControlErase() { + editor.erasing ? editorControlEraseOff() : editorControlEraseOn() +} + +function editorControlEraseOn() { + editor.erasing = editor.follower.hidden = !0, classAdd(body, "erasing"), classAdd(editor.controls.erase, "enabled") +} + +function editorControlEraseOff() { + editor.erasing = editor.follower.hidden = !1, classRemove(body, "erasing"), classRemove(editor.controls.erase, "enabled") +} + +function editorPlaceEraser(e) { + addThing(Eraser, e.x, e.y) +} + +function Eraser(e) { + e.width = e.height = 2, e.nocollide = e.nofall = !0, e.movement = eraserErases, setCharacter(e, "eraser") +} + +function eraserErases(e) { + if (window.editor) { + var t, n, x = editor.placed, + r = x.concat(solids).concat(characters).concat(scenery); + for (n = r.length - 1; n >= 0; --n) + if (!(t = r[n]).player && t != editor.follower && objectsTouch(e, t)) { + killNormal(t), x.splice(x.indexOf(t), 1); + break + } + killNormal(e) + } +} + +function editorControlLoad() { + editorCreateInputWindow("Paste your work in progress here, and click Submit to continue it.", "", editorSubmitLoad) +} + +function addThingsToPlaced() { + var e = editor.placed; + for (editor.placed = (editor.placed || []).concat(characters).concat(solids).concat(scenery), e.sort(prethingsorter), e.splice(e.indexOf(player), 1), i = e.length - 1; i >= 0; --i) placer = e[i], placer.reference = editor[placer.libtype][placer.title] +} + +function editorCreateInputWindow(e, t, n) { + var x = gamescreen.unitwidth, + r = editor.input_window = createElement("div", { + id: "input_window", + innerHTML: e || "", + style: { + width: x + "px" + } + }), + i = r.input = editor.window_input = createElement("textarea", { + id: "window_input", + value: t || "", + style: { + width: x - 49 + "px" + } + }), + a = r.submit = createElement("div", { + id: "window_submit", + className: "window_button", + innerText: "Submit", + onclick: n + }), + o = r.cancel = createElement("div", { + id: "window_cancel", + className: "window_button", + innerText: "Cancel", + onclick: editorCloseInputWindow + }); + return r.appendChild(i), r.appendChild(a), r.appendChild(o), body.appendChild(r), killNormal(editor.follower = !1), editor.follower = !1, r +} + +function editorCloseInputWindow(e) { + editorPreventClicks(), removeChildSafe(window.input_window, body), e || (editorSetCurrentThingFromName(), window.editing = !0), editorUpdateFollower() +} + +function editorClose(e) { + if (window.editor) { + classRemove(body, "editor"), classRemove(body, "erasing"), killNormal(editor.follower), editor.follower = !1, delete window.editor; + var t, n = ["maplines", "sidebar", "bottombar", "scrollers"]; + for (t in n) removeChildSafe(document.getElementById(n[t]), body); + document.onmousemove = null, window.editing = !1, e && window.map && (map.shifting = !1) + } +} + +function scrollEditor(e, t) { + window.editor && (editor.follower && (e = e || 0, t = t || 0, shiftAll(scenery, e, t), shiftAll(solids, e, t), shiftAll(characters, e, t), editor.xloc += e, editor.yloc += t)) +} + +function editorStoreLocally() { + localStorage.editorLastFunc = editor.rawfunc +} + +function setEditorLocalRetrieval() { + localStorage.editorLastFunc && (editor.rawfunc = round, editorSubmitGameFunc()) +} + +function editorSubmitGameFunc() { + if (!window.editor || !editor.rawfunc) return loadEditor(); + editor.rawfunc; + var e = window.custommapfunc = new Function(editor.rawfunc); + mapfuncs.Custom = { + Map: e + }, window.canedit = !0, setMap(["Custom", "Map"]), window.canedit = editor.playing = !1, entryBlank(player), addThingsToPlaced(), editorStoreLocally(), editorCloseInputWindow() +} + +function editorSubmitGameFuncPlay() { + editorPreventClicks(), editorSubmitGameFunc(), editorStartPlaying() +} + +function editorSubmitLoad() { + if (window.editor && editor.window_input) { + editorPreventClicks(); + var e = editor.window_input.value; + loadEditor(), editor.rawfunc = e, editorSubmitGameFunc() + } +} + +function editorStartPlaying() { + editorPreventClicks(), editor.playing = !0, placePlayer(), entryPlain(player), nokeys = !1; + var e, t, n, x = editor.placed; + for (n in x) thingRetrieveVelocity(e = x[n]), (t = editor[e.libtype][e.title]) && proliferate(e, t.onadds); + setEditorControls(["Cancel"]) +} + +function setEditorLocalRetrieval() { + var e = localStorage.editorLastFunc; + if (e) { + editor.rawfunc = e, editorSubmitGameFunc(), editorStoreLocally(); + var t, n = editor.placed; + for (t in n) thingStoreVelocity(n[t]) + } +} + +function resetSeed() { + window.seeder = 1777771 / (window.seed = round(1e7 * random())), window.seedlast = .007, window.getSeed = function() { + return seedlast = "0." + String(seeder / seedlast).substring(4).replace(".", "") + } +} + +function pushRandomSectionOverworld(e) { + var t = max(randTrue(117), 1), + n = 0; + if (++map.num_random_sections, pushPreFuncCollider(e, zoneDisableCheeps), map.had_floor = !1, map.needs_floor || t >= 14 || t < 3 || randTrue() ? (pushPreFloor(e, 0, t), map.had_floor = !0) : pushPreThing(Stone, e, n = 0, t), window.randcount_powerup = 3, t <= 3 && map.had_floor) { + if (randTrue()) switch (randTrue(3)) { + case 0: + if (t > 3) { + pushPreScenery("HillSmall", e, 0); + break + } + case 1: + if (t > 2) { + pushPreScenery("Bush1", e + 8 * max(0, randTrue(t - 2)), n); + break + } + case 2: + pushPreScenery("PlantLarge", e + 8 * max(0, randTrue(t - 2)), n); + break; + case 3: + pushPreScenery("PlantSmall", e + 8 * max(0, randTrue(t - 2)), n) + } + } else + for (var x = t - 2, r = 0, i = 0, a = randTrue(2); a < x; a += 3) randTrue(7) && (randTrue(2) ? (map.hadObstacle = !1, (i % 3 == 0 || randTrue()) && (pushRandomChunkEnemy(e, a), ++i), map.had_floor && pushRandomGroundScenery(e + 8 * a, a, t)) : pushRandomObstacle(e, a), !r && randTrue() ? (pushRandomSkyScenery(e + 8 * a), r = !0) : r = !1); + prepareNextGeneratorStandard(e, t, pushRandomSectionOverworld) +} + +function startRandomSectionBridge(e) { + pushPreFuncCollider(e - 24, zoneDisableCheeps), pushPreFuncCollider(e, zoneEnableCheeps); + var t = 5 + randTrue(4), + n = t - 4; + map.needs_bridge = !0, map.treelev = map.treeheight = 0, pushPreTree(e, 0, t + 1), pushPreThing(Stone, e + 16, 8, 1, 1), pushPreThing(Stone, e + 24, 16, 1, 2), pushPreThing(Stone, e + 32, 24, n, 3), pushRandomSectionBridge(e + 8 * (t - 1), 24, !0), spawnMap(), map.had_floor = !1 +} + +function pushRandomSectionBridge(e, t, n) { + var x = !1; + if (t = t || 24 + 16 * randTrue() - 8, randTrue() || map.needs_bridge) switch (randTrue(3)) { + case 0: + switch (randTrue()) { + case 0: + var r = randTrue(3) + 1, + i = 4 * r; + x = !0; + for (var a = 1; a <= 2 * r; a += 2) pushPreBridge(e + 16 * a, t, 3); + break; + case 1: + i = randTrue(7) + 7; + var o = DtB(t, 8); + n || pushPreThing(Stone, e, t, 1, o), pushPreBridge(e + 8, t, i - 1), pushPreThing(Stone, e + 8 * i, t, 1, o) + } + break; + default: + map.needs_bridge = map.treeheight = 0; + o = DtB(t, 8); + i = 17 * (randTrue(3) + 3); + for (a = 0; a < i; a += 17) + if (!a && n || pushPreThing(Stone, e + 8 * a, t, 1, o), pushPreBridge(e + 8 * (a + 1), t, 16), randTrue() && pushRandomSmallEnemy(e + 8 * (a + 8), t), randTrue(2)) { + randTrue(); + var l = 3 + randTrue(2); + pushRandomCoinRow(e + 8 * (a + 8), t + 32, l), pushRandomCoinRow(e + 8 * (a + 8), t + 40, getNextCoinRowSize(l)) + } else pushPreThing(Block, e + 8 * (a + 8), t + jumplev1, Mushroom); + pushPreThing(Stone, e + 8 * i, t, 1, o) + } else i = 10, pushPreTree(e + 16, 8 * randTrue(), i); + prepareNextGeneratorStandard(e, i + 2, randTrue() ? pushRandomSectionBridge : pushRandomSectionOverworld, !1, x) +} + +function pushRandomSectionPreCastle(e, t) { + var n, x, r = randTrue(35) + 35, + i = r - 3, + a = !1; + for (t = t || 0, pushPreFloor(e, 0, r), hadcloud = !1, x = randTrue(3); x < i; x += n || 3) { + switch (randTrue(3)) { + case 0: + switch (n = 3, randTrue(2)) { + case 0: + var o = randTrue(2) + 1; + pushPreThing(Cannon, e + 8 * (x + randTrue(2)), 8 * o, o); + break; + case 1: + for (var l = 0; l < n; ++l) randTrue() || pushPreThing(Stone, e + 8 * (x + l), 8 * (o = randTrue(3) + 1), 1, o); + break; + case 2: + pushPrePipe(e + 8 * (x + randTrue()), 0, 8 * (2 + randTrue(2)), !0) + } + break; + case 1: + switch (n = 7, a = !0, randTrue(2)) { + case 0: + pushPreThing(Koopa, e + 8 * (x + randTrue(7)), 12 + 8 * randTrue(3), randTrue(), !0); + break; + case 1: + randTrue() && pushPreThing(HammerBro, e + 8 * (x + randTrue(7)), 12 + 2 * randTrue(3)); + break; + case 2: + n = 10, a = !1; + for (l = 1; l < 8; ++l) + for (var s = jumplev1; s <= jumplev2; s += 32) pushPreThing(Brick, e + 8 * (x + l), s, getRandomBrickItem(!1, randTrue())); + var d = randTrue() ? jumplev1 : jumplev2; + height2 = o == jumplev1 ? jumplev2 : jumplev1, randTrue(2) && pushPreThing(HammerBro, e + 8 * (x + randTrue(3)), d + 12), randTrue(2) && pushPreThing(HammerBro, e + 8 * (x + 4 + randTrue(3)), height2 + 12) + } + } + a && n >= 7 && (pushPreScenery("CastleWall", e + 8 * (x + randTrue()), 0, n - randTrue(2)), randTrue() && pushPreThing(Brick, e + 8 * (x + randTrue(n)), jumplev1, randTrue() ? Mushroom : getRandomBrickItem(!1, randTrue()))); + for (s = 0; s < n; s += 3) randTrue(2) && pushRandomGroundScenery(e + 8 * (x + s), 0), !hadcloud && randTrue() ? (pushRandomSkyScenery(e + 8 * (x + s)), hadcloud = !0) : hadcloud = !1 + } + pushPreFloor(e + 8 * r, 0, x + 3 - r); + var u = 4 + randTrue(3); + t >= 3 ? endCastleOutsideRandom(e + 8 * (r + u + 1), !0) : pushRandomSectionPreCastle(e + 8 * (r + u), t + 1), spawnMap() +} + +function endCastleOutsideRandom(e) { + var t, n; + switch (randTrue()) { + case 0: + for (n = 1 + randTrue(); n < 9; n += 2) pushPreThing(Stone, e + 8 * n, 8 * (n - randTrue()), 1, 1 + randTrue()); + pushPreThing(Stone, e + 72, 64, 2), t = 12; + break; + case 1: + for (pushPreFloor(e, 0, 11), n = 1, hadlast = !1; n < 9; ++n) !hadlast || randTrue(2) || 8 == n ? (pushPreThing(Stone, e + 8 * n, 8 * n, 1, n), hadlast = !0) : (hadlast = !1, pushPrePipe(e + 8 * n, 0, 8 * max(n - randTrue(2), 2), !0), ++n); + pushPreThing(Stone, e + 72, 72, 2, 9), t = 7 + } + pushPreFloor(e + 88, 0, round(gamescreen.width / 8)), endCastleOutside(e + 8 * (9 + t) + 4, 0, !0, round(gamescreen.width / 8)) +} + +function startRandomSectionCastle(e) { + e += 32; + var t = randTrue(7) + 3, + n = randTrue(4) + 3; + randTrue(4); + pushPreFloor(e, 24, t), pushPreThing(Stone, e, 88, t, 3), fillPreWater(e + 8 * t, 0, 2 * n), pushPreThing(Podoboo, e + 8 * t + max(0, 8 * randTrue(n - 3)), -32), pushRandomSectionCastle(e + 8 * (t + n), 0), spawnMap() +} + +function pushRandomSectionCastle(e, t) { + var n, x; + switch (randTrue(3)) { + case 0: + x = 64 * (n = 1 + randTrue(2)) - 8; + for (var r = 0; r < n; ++r) randTrue() ? (makeCeilingCastle(e + 64 * r, 8), fillPreWater(e + 64 * r, 0, 16), pushPreThing(Platform, e + 64 * r + 8 + 8 * randTrue(2), 8 + 8 * randTrue(max(r + 2, 4)), 4, moveFalling)) : (pushPreFloor(e + 64 * r - 8, 8, 1), pushPrePlatformGenerator(e + 64 * r + 24, 4, 1.75), pushPreFloor(e + 64 * r + 64, 8, 1)); + break; + case 1: + var i, a, o; + x = 64 * (n = 2 * (1 + randTrue())) - 8, makeCeilingCastle(e, 8 * n), fillPreWater(e, 0, 16 * n); + for (r = 0; r < n; ++r) { + switch (i = e + 64 * r, a = 8 * randTrue(max(r + 1, 2 + randTrue(2))), o = 2 + randTrue(3), randTrue(2)) { + case 0: + pushPreFloor(i + 8 * randTrue(3), a, o); + break; + case 1: + pushPreThing(Stone, i + 8 * randTrue(3), a, o); + break; + case 2: + pushPreThing(Platform, i += 8 + 8 * randTrue(), 8 * randTrue(3), 4, [moveSliding, i, i + 56 + 8 * randTrue(2), 2]) + } + randTrue(2) || o % 2 != 1 || pushPreThing(Block, i + 4 * o - 8, a + 40, Mushroom), o <= 4 && pushPreThing(Podoboo, i + 8 * (o + 1), -32) + } + break; + case 2: + var l; + switch (x = 8 * (n = 14 + randTrue(21)) - 8, p = 1, pushPreFloor(e, 0, n), randTrue()) { + case 0: + makeCeilingCastle(e, n, p = 3); + for (r = 1 + randTrue(); r < n - 6; ++r) l = min(7, n - r), pushPreThing(Stone, e + 8 * r, jumplev1, l), randTrue() && pushPreThing(CastleBlock, e + 8 * (r + l - 4), 0, [6, randTrue()], !0), pushPreThing(CastleBlock, e + 8 * (r + l), jumplev1, 6, randTrue()), randTrue() && pushPreThing(CastleBlock, e + 8 * (r + l + 4), jumplev2 + 8, [6, randTrue()], !0), r += l; + break; + case 1: + makeCeilingCastle(e, n, p); + var s = randTrue(), + d = randTrue(); + pushPreThing(Stone, e, 8 * s, n, s); + for (r = randTrue(2); r < n - 3; r += 4) pushPreThing(Stone, e + 8 * (r + d), 16 + 8 * s, 3, 2), pushPreThing(CastleBlock, e + 8 * (r + d + 1), 24 + 8 * s, randTrue(2) ? 6 : 0, randSign()), pushPreThing(Stone, e + 8 * (r + d), 80, 3, 2), r < n - 5 && pushPreThing(CastleBlock, e + 8 * (r + d + 1), 64, randTrue(2) ? 6 : 0, randSign()), r += 1 + randTrue(3) + } + break; + case 3: + x = 8 * (n = 21 + randTrue(21)) - 8; + var u = 1 + randTrue(3), + p = 11 - u - 4; + pushPreFloor(e, 8 * u, n), makeCeilingCastle(e, n, p); + for (r = 0; r < n; r += 8) randTrue() && (pushRandomEnemy(e + 8 * r, 8 * u, 0), randTrue() && (pushRandomEnemy(e + 8 * r + 12, 8 * u, 0), randTrue() && pushRandomEnemy(e + 8 * r + 24, 8 * u, 0))) + } + pushPreThing(GenerationStarter, e + x, ceilmax + 20, t <= 280 ? pushRandomSectionCastle : endCastleInsideRandom, t + x / 8), spawnMap() +} + +function endCastleInsideRandom(e) { + var t = 2 + randTrue(2), + n = 8 * randTrue(), + x = n + 24 + 8 * randTrue(); + pushPreFloor(e, n, 5 * t); + for (var r = 0; r < t; ++r) pushPreFloor(e + 5 * (r + 1) * 8, x, max(2, randTrue(3))); + var i = e + 5 * t * 8, + a = 8 * randTrue(7); + fillPreWater(i, 0, a), endCastleInsideRandomFinal(i + a), spawnMap() +} + +function endCastleInsideRandomFinal(e) { + fillPreWater(e, 0, 16), pushPreFloor(e + 24, 24, 3), endCastleInside(e + 48, 2), randTrue() && pushPreThing(Podoboo, e + 72 + 8 * randTrue(3), -32), randTrue() && fillPreThing(Brick, e + 56 + 8 * randTrue(3), 64, 3 + randTrue(3), 1, 8), randTrue() && pushPreThing(CastleBlock, e + 56 + 8 * randTrue(2), 24, [6, randSign()], !0), spawnMap() +} + +function placeRandomCastleNPC(e) { + pushPreThing(Toad, e + 194, 12).object.text = [pushPreText({ + innerHTML: "THANK YOU " + window.player.title.toUpperCase() + "!" + }, e + 160, 66).object, pushPreText({ + innerHTML: "LOL YOU THOUGHT THERE WOULD BE SOMETHING HERE DIDN'T YOU!" + }, e + 148, 50).object] +} + +function pushRandomCoinRow(e, t, n) { + if (n) { + var x; + if (3 == n && (e += 8), randTrue(2)) switch (n) { + case 3: + x = [1, 0, 1]; + break; + case 4: + switch (randTrue()) { + case 0: + x = [1, 0, 0, 1]; + break; + case 1: + x = [0, 1, 1, 0] + } + break; + case 5: + switch (randTrue()) { + case 0: + x = [1, 0, 1, 0, 1]; + break; + case 1: + x = [0, 1, 0, 1, 0] + } + } else x = arrayOf(!0, n); + for (var r = 0; r < n; ++r) x[r] && pushPreThing(Coin, e + 8 * r, t) + } +} + +function getNextCoinRowSize(e) { + switch (e) { + case 3: + return 5; + case 5: + return 3; + default: + return e + } +} + +function pushRandomSectionTrees(e) { + var t, n, x; + switch (randTrue(7)) { + case 0: + var r, i; + t = randTrue(14) + 7, n = randTrue(3), map.treefunc(e, 8 * n, t); + for (var a = randTrue(2); a < t - 2; a += r - 1) randTrue(2) && pushRandomSmallEnemy(e + 8 * a, 8 * n), randTrue(2) && (r = 3 + (randTrue(3) ? 0 : randTrue(4)), i = 8 * min(9, n + randTrue(7) + 3), map.treefunc(e + 8 * a, i, r), randTrue() && pushRandomSmallEnemy(e + 8 * a, 8 * i), pushRandomSmallEnemy(e + 8 * (a += r - 1), 8 * n)); + break; + case 1: + t = 14, n = 7, randTrue(), t = 4 + randTrue(2), pushPrePlatformGenerator(e + 8 * (randTrue() + 1), t, -1), t += randTrue(3) + 3; + break; + default: + t = 4 + randSign() + randTrue(), n = min(randTrue(2) + 4 + randSign(2), map.treelev + 4); + var o = e - 8 * randTrue(); + if (n == map.treelev && (n += randSign()), map.treefunc(o, 8 * n, t), t > 3 || randTrue()) + if (randTrue(3)) pushRandomSmallEnemy(o + 8 * (randTrue() + 1), 8 * n); + else if (randTrue(2)) + for (a = 1; a < t - 1; ++a) pushPreThing(Coin, o + 1 + 8 * a, 8 * (n + 1) - 1) + }++map.sincechange > 7 && randTrue() ? (x = map.randtype, map.sincechange = 0) : x = pushRandomSectionTrees, pushPreThing(GenerationStarter, e + 8 * (t + randSign()), ceilmax + 20, x), spawnMap(), map.treelev = n +} + +function pushRandomSmallEnemy(e, t, n) { + switch (randTrue(7)) { + case 1: + case 2: + case 3: + pushPreThing(Koopa, e, t + 12, !0, n); + break; + case 7: + pushPreThing(Beetle, e, t + 8.5); + break; + default: + pushPreThing(Goomba, e, t + 8) + } +} + +function pushRandomSectionUnderworld(e) { + var t, n, x = max(randTrue(117), 1), + r = 14, + i = x - x % r; + floor(x / r); + if (pushPreFloor(e, 0, x), window.randcount_powerup = 3, x < r) switch (randTrue()) { + case 0: + for (t = 0; t < x - 2; t += 3) pushRandomChunkEnemy(e + 8 * t, 0, t); + break; + case 1: + for (t = 0; t < x - 2; t += 3) randTrue(2) ? t % 3 == 0 && pushRandomChunkEnemy(e, t) : pushRandomObstacle(e, t) + } else + for (t = 1; t < i; t += r) switch (randTrue(5)) { + case 0: + pushRandomUnderworldSquigglies(e + 8 * t, r), makeCeiling(e + 8 * t, r); + break; + case 1: + var a = 1 + randTrue(), + o = 4 + randTrue(7); + for (t += a, n = 0; n < r; n += 1 + randTrue() / 2) randTrue() && pushRandomSmallEnemy(e + 8 * (t + n), 0); + fillPreThing(Brick, e + 8 * t, 8 * o, 13, 12 - o, 8, 8), t -= a; + break; + case 2: + createTunnel(e + 8 * (t + 2), 10, Brick); + break; + case 3: + pushUnderworldPipes(e + 8 * (t + 2), 12), makeCeiling(e + 8 * (t + 1), r); + break; + case 4: + pushUnderworldStones(e + 8 * (t + 2), 12), makeCeiling(e + 8 * (t + 1), r); + break; + case 5: + for (n = 0; n < 10; n += 3) pushRandomChunkEnemy(e + 8 * (t + n), n); + break; + case 6: + for (n = 0; n < x - 2; n += 3) randTrue(2) ? (t % 3 == 0 || randTrue()) && (pushRandomChunkEnemy(e + 8 * (t + n), n), ++numenemychunks) : pushRandomObstacle(e + 8 * (t + n), n) + } + prepareNextGeneratorStandard(e, x, pushRandomSectionUnderworld, !0), spawnMap() +} + +function pushRandomUnderworldSquigglies(e, t, n, x) { + n = n || 1 / 0; + for (var r = 3 + randTrue(2), i = min(n, r + 1 + randTrue(4)), a = 1 == r ? i : randTrue(2) ? r : i, o = 1 + i - r, l = !1, s = i + 16, d = 0; d < t; ++d) { + if (randTrue()) { + for (var u = 0; u < 3; ++u) pushPreThing(Brick, e + 8 * (d + u), 8 * a, randTrue() ? null : getRandomBrickItem()); + !x && randTrue(2) && fillPreThing(Coin, e + 1 + 8 * d, 8 * min(s, a + randTrue(4) + 1) - 1, 3 + randTrue(), 1, 8), l || (randTrue() ? pushPreThing(Block, e + 8 * (d + 3), 8 * a, getRandomBlockItem()) : pushPreThing(Brick, e + 8 * (d + 3), 8 * a), l = !0), d += 3 + } else fillPreThing(Brick, e + 8 * d, 8 * r, 1, o, 8, 8), a = a == i ? r : i, l = !1; + (d % 3 == 1 || randTrue() && d < t - 3) && pushRandomSmallEnemy(e + 8 * d, 0, !1) + } +} + +function pushUnderworldPipes(e, t) { + var n, x, r, i = t - 4, + a = !1; + for (r = 0; r < i; r += 4) switch (randTrue()) { + case 0: + addPipeRandom(e + 8 * (r + (n = randTrue())), 0, 8 * (2 + randTrue(2))), r += 1 - n, a = !0; + break; + case 1: + n = randTrue() || !a, x = 4 + randTrue(4), n && pushPreThing(Brick, e + 8 * r, 8 * max(x - 4, 3 + randTrue()), getRandomBrickItem(!1)), addPipeRandom(e + 8 * (r + n), 0, 8 * x), a = !1 + } + for (; r < t - 1; ++r) randTrue() && pushRandomChunkEnemy(e + 8 * r, 0) +} + +function pushUnderworldStones(e, t) { + var n, x, r, i = t - 4, + a = !1; + for (r = 0; r < i; r += 2) switch (randTrue()) { + case 0: + pushPreThing(Stone, e + 8 * (r + (n = randTrue())), 8 * (x = 2 + randTrue(2)), 1, x), r += 1 - n, a = !0; + break; + case 1: + n = randTrue() || !a, x = 4 + randTrue(4), n && pushPreThing(Brick, e + 8 * r, 8 * max(x - 4, 3 + randTrue()), getRandomBrickItem(!1)), pushPreThing(Stone, e + 8 * (r + n), 8 * x, 1, x), a = !1 + } + for (; r < t - 1; r += 3) randTrue() && pushRandomChunkEnemy(e + 8 * r, 0) +} + +function pushRandomSectionUnderwater(e) { + var t = max(randTrue(117), 7); + pushPreFloor(e, 0, t -= t % 3), pushPreScenery("Water", e, ceilmax - 21, 8 * t / 3, 1), pushPreThing(WaterBlock, e, ceilmax, 8 * t), window.randcount_powerup = 3; + for (var n = 0; n < t; n += 4) { + switch (randTrue(21)) { + case 0: + if (n < t - 2) { + pushRandomObstacle(e, n); + break + } + case 1: + pushRandomEnemy(e, 0, n, !0); + break; + default: + switch (randTrue(7)) { + case 0: + var x = randTrue() + 2, + r = randTrue() + 2; + pushPreThing(Stone, e + 8 * n, 8 * r, randTrue(3) + 1, r), pushPreThing(Stone, e + 8 * n, ceillev, randTrue(3) + 1, x); + break; + case 1: + randTrue() && pushPreThing(Stone, e + 8 * n, jumplev1, 4), randTrue() && pushPreThing(Stone, e + 8 * n, jumplev2, 4); + break; + case 2: + fillPreThing(Coin, e + 8 * (n + randTrue()) + 1, 8 * (randTrue(8) + 1) - 1, 3, 1, 8); + break; + default: + if (map.had_coral) { + map.had_coral = !1; + break + } + map.had_coral = !0; + var i, a = randTrue(3) + 2, + o = jumplev1 * (1 + randTrue(2)), + l = e + 8 * n; + if (o == 3 * jumplev1) { + var s = !0; + o -= 8 + } + pushPreThing(Stone, e + 8 * n, o, a), i = !s && (randTrue(3) || a <= 3) ? o + 24 : o - 8, randTrue() && pushPreThing(Coral, l, i, 3), randTrue() && a > 3 && o < 64 && pushPreThing(Coral, l + 8 * (a - 1), i, 3), a >= 3 && (n += a - 3) + } + } + map.countCheep > 1 && (pushPreThing(CheepCheep, e + 8 * n, randTrue(80) + 8, randTrue()), map.countCheep = 0), map.countBlooper > 7 && (pushPreThing(Blooper, e + 8 * n, randTrue(80) + 8), map.countBlooper = 0), randTrue(7) && ++map.countCheep, randTrue(3) && ++map.countBlooper + } + if (++map.sincechange < 3) { + var d = prepareNextGeneratorStandard(e, t, pushRandomSectionUnderwater, !1, !0); + pushPreScenery("Water", e + 8 * t, ceilmax - 21, 8 * (d + 1) / 3, 1), pushPreThing(WaterBlock, e + 8 * t, ceilmax, 8 * (d + 1)) + } else endRandomSectionUnderwater(e + 8 * t) +} + +function endRandomSectionUnderwater(e) { + pushPreFloor(e, 0, 19), pushPreScenery("Water", e, ceilmax - 21, 28, 1), pushPreThing(WaterBlock, e, ceilmax, 157.5), pushPreThing(Stone, e, 8, 5, 1), pushPreThing(Stone, e + 8, 16, 4, 1), pushPreThing(Stone, e + 16, 24, 3, 1), pushPreThing(Stone, e + 24, 32, 2, 1), pushPreThing(Stone, e + 24, 88, 2, 4), pushPreThing(PipeSide, e + 32, 48, ["Random", randTrue() ? "Overworld" : "Underworld", "Up"]), pushPreThing(Stone, e + 40, 88, 14, 11), map.scrollblockerok = !0, pushPreThing(ScrollBlocker, e + 56, 80, !0), spawnMap() +} + +function startRandomSectionSky(e) { + pushPreThing(Stone, e, 0, 78), pushPreThing(Platform, e + 88, 24, 6, [collideTransport]), pushRandomSectionSky(e + 80, 1), spawnMap() +} + +function pushRandomSectionSky(e, t) { + if (t++ > 7) return fillPreThing(Coin, e + 8, 8, 3, 1, 8), spawnMap(); + var n = 0; + if (t % 2) fillPreThing(Coin, e + 1, 71, 3, 1, 8), n = 32; + else switch (randTrue(t)) { + case 3: + pushPreThing(Stone, e + 8, 48, 1, 2), fillPreThing(Coin, e + 25, 63, 7, 1, 8), pushPreThing(Stone, e + 88, 48, 1, 2), n = 104; + break; + case 4: + case 5: + case 6: + pushPreThing(Stone, e + 8, 56, 2); + for (var x = 0; x <= 7; x += 2) pushPreThing(Stone, e + 8 * (x + 5), 56), fillPreThing(Coin, e + 8 * (x + 5) + 1, 63, 2, 1, 8); + n = 104; + break; + default: + fillPreThing(Coin, e + 1, 55 + 8 * randTrue(), 16, 1, 8), n = 128 + } + pushPreThing(GenerationStarter, e + n, ceilmax + 20, pushRandomSectionSky, t), spawnMap() +} + +function prepareNextGeneratorStandard(e, t, n, x, r) { + var i = 0, + a = 0; + if (r) i = 1; + else switch (randTrue(7)) { + case 0: + t > 7 && map.underwater && !randTrue(7) ? (i = randTrue(3) + 7, pushPreThing(Springboard, e + 8 * (t - 1), 14.5)) : a = !0; + break; + case 1: + var o = max(1, randTrue(7)); + i = o + randTrue(3), pushPreFloor(e + 8 * t, 0, o); + for (var l = 1; l <= o; ++l) pushPreThing(Stone, e + 8 * (t + l - 1), 8 * l, 1, l); + if (randTrue()) { + pushPreFloor(e + 8 * (t + i + (o = max(1, randTrue(o))) - 1), 0, o); + for (var s = 0; s < o; ++s) pushPreThing(Stone, e + 8 * (t + i + o + s - 1), 8 * (o - s), 1, o - s); + i += o + o - 2 + } + break; + default: + x && randTrue() ? pushPrePlatformGenerator(e + 8 * (t + 1.5), 2 * ((i = randTrue(1) + 4) - 2), randSign()) : a = !0 + } + return (a || !i || i < 1) && (i = randTrue(3) + 1), n == pushRandomSectionOverworld && map.num_random_sections >= 3 + randTrue(7) && (n = pushRandomSectionPreCastle), !r && ++map.sincechange > 3 && (n = getRandomNextSection(), map.sincechange = 0, pushPreFuncCollider(e, zoneDisableCheeps)), pushPreThing(GenerationStarter, e + 8 * (t + i), ceilmax + 20, n), spawnMap(), i +} + +function getRandomNextSection() { + switch (randTrue()) { + case 0: + return map.treeheight = 0, pushRandomSectionTrees; + case 1: + return startRandomSectionBridge + } +} + +function pushRandomChunkEnemy(e, t, n) { + pushRandomEnemy(e, 0, t, n), randTrue(2) && (pushRandomSolidRow(e + 8 * t, jumplev1, randTrue(2) + 1), randTrue() && pushRandomEnemy(e, jumplev1, t + 1, !0), randTrue() && (pushRandomSolidRow(e + 8 * t, jumplev2, randTrue(2) + 1), randTrue() && pushRandomEnemy(e, jumplev2, t + 1, !0))) +} + +function pushRandomEnemy(e, t, n, x) { + switch (randTrue(14)) { + case 0: + case 1: + fillPreThing(Beetle, e + 8 * n, t + 8.5, randTrue(2), 1, 12); + break; + case 3: + if (!x) { + switch (randTrue(4)) { + case 0: + pushPreThing(HammerBro, e + 8 * n, t + 12), randTrue() && pushPreThing(HammerBro, e + 8 * n + 16, t + 40); + break; + case 1: + if ("Underworld" != map.randname) { + pushPreThing(Lakitu, e + 8 * n, t + 80, !0); + break + } + case 2: + pushPreThing(Blooper, e + 8 * n, t + 40) + } + break + } + break; + default: + if (!randTrue(3)) return; + switch (randTrue(3)) { + case 1: + fillPreThing(Koopa, e + 8 * n, t + 12, randTrue(2), 1, 12, 0, randTrue() || map.onlysmartkoopas, randTrue()); + break; + default: + fillPreThing(Goomba, e + 8 * n, t + 8, randTrue(2), 1, 12) + } + } +} + +function addPipeRandom(e, t, n) { + var x; + x = !(n <= 24 || randTrue(2)) && getRandomTransport(), pushPrePipe(e, t, n, randTrue(7), x) +} + +function getRandomTransport() { + var e, t = [ + ["Overworld", "Up"], + ["Underworld", "Down"], + ["Underwater", "Up"] + ]; + return t[e = randTrue(t.length - 1)][0] == map.randname && (e = (e + randTrue(t.length - 2) + 1) % t.length), ["Random", t[e][0], t[e][1]] +} + +function getAfterSkyTransport() { + switch (randTrue(3)) { + case 0: + return ["Random", "Underworld", "Down"]; + default: + return ["Random", "Overworld" + (body.className.indexOf(!0) ? " Night" : ""), "Down"] + } +} + +function pushRandomObstacle(e, t) { + var n = randTrue(3); + switch (n > 1 && (map.hadPipe = !1), n) { + case 0: + case 1: + if (t > 1) { + addPipeRandom(e + 8 * t, 0, 8 * (randTrue(2 + (1 == map.hadObstacle && 0 == map.hadPipe && t > 7)) + 2)), map.hadObstacle = map.hadPipe = !0; + break + } + case 2: + for (var x = 0; x < 2; ++x) randTrue() || t < 1 || pushPreThing(Stone, e + 8 * (t + x), 8 * (r = randTrue(2) + 2), 1, r); + break; + default: + x = randTrue(2); + switch (randTrue(7)) { + case 0: + var r; + if (pushPreThing(Cannon, e + 8 * (t + x), 8 * (r = randTrue(2) + 1), r), 1 == r && randTrue(2) && 2 != x) { + var i = randTrue() + 2; + pushPreThing(Cannon, e + 8 * (t + x), 8 * r + 8 * i, i) + } + map.hadObstacle = !0; + break; + case 1: + if (!map.underwater) { + randTrue() && (!map.underwater && randTrue(2) && pushPreThing(Brick, e + 8 * t, jumplev1), pushPreThing(Block, e + 8 * (t + 1), jumplev1, [Mushroom, 1], !0), !map.underwater && randTrue(2) && pushPreThing(Brick, e + 8 * (t + 2), jumplev1), map.hadObstacle = !0); + break + } + case 2: + if (!map.underwater) { + var a = randTrue(); + a || pushPreThing(Brick, e + 8 * t, jumplev1, getRandomBrickItem()), pushPreThing(Stone, e + 8 * (t + a), jumplev1, 2), addPipeRandom(e + 8 * (t + a), jumplev1, 24 + 8 * randTrue()), a && pushPreThing(Brick, e + 8 * t, jumplev1, getRandomBrickItem()); + break + } + } + } +} + +function pushRandomSolidRow(e, t, n) { + for (var x = 0; x < n; ++x) randTrue(2) ? pushPreThing(Brick, e + 8 * x, t, getRandomBrickItem("Overworld" == map.randname && t == jumplev2)) : pushPreThing(Block, e + 8 * x, t, getRandomBlockItem()) +} + +function getRandomBrickItem(e, t) { + return e && !randTrue(14) ? [Vine, ["Random", "Sky", "Vine"]] : !(!t && randTrue(7)) && (randTrue(3) ? Coin : Star) +} + +function getRandomBlockItem() { + return ++randcount_powerup, !(randcount_powerup <= 7) && (!randTrue(7) && Mushroom) +} + +function pushRandomGroundScenery(e, t, n) { + switch (randTrue(7)) { + case 2: + if (n - t > 4) { + pushPreScenery("Bush3", e, 0); + break + } + case 1: + if (n - t > 2) { + pushPreScenery("Bush2", e, 0); + break + } + case 0: + pushPreScenery("Bush1", e, 0); + break; + case 3: + if (n - t > 4) { + pushPreScenery("HillLarge", e, 0); + break + } + case 4: + pushPreScenery("HillSmall", e, 0); + break; + case 5: + pushPreScenery("PlantLarge", e, 0); + break; + case 6: + pushPreScenery("PlantSmall", e, 0); + break; + case 7: + pushPreScenery("Fence", e, 0, randTrue(2) + 1) + } +} + +function pushRandomSkyScenery(e) { + switch (randTrue(2)) { + case 0: + pushPreScenery("Cloud1", e, 8 * (randTrue(5) + 5)); + break; + case 1: + pushPreScenery("Cloud2", e, 8 * (randTrue(4) + 6)); + break; + case 2: + pushPreScenery("Cloud3", e, 8 * (randTrue(3) + 7)) + } +} + +function addDistanceCounter() { + counter = createElement("div", { + className: "indisplay counter randomdisplay", + innerText: data.traveledold + " blocks traveled" + }), body.appendChild(counter), TimeHandler.addEventInterval((function(e) { + data.traveled = max(0, Math.round((player.right + gamescreen.left) / unitsizet8) - 3), e.innerText = data.traveledold + data.traveled + " blocks traveled" + }), 3, 1 / 0, counter) +} + +function addSeedDisplay() {} + +function createTunnel(e, t, n) { + for (var x = randTrue(2) + 3, r = randTrue(2) + 2, i = !1, a = 0; a < t; ++a) fillPreThing(n, e + 8 * a, 8, 1, r, 8, 8), randTrue(3) || i ? i = !1 : pushRandomSmallEnemy(e + 8 * a, 8 * r), fillPreThing(n, e + 8 * a, 96 - 8 * x, 1, x, 8, 8) +} + +function removeRandomDisplays() { + var e, t = body.getElementsByClassName("randomdisplay"); + for (e = t.length - 1; e >= 0; --e) body.removeChild(t[e]) +} + +function resetLibrary() { + window.palette = [ + [0, 0, 0, 0], + [255, 255, 255, 255], + [0, 0, 0, 255], + [188, 188, 188, 255], + [116, 116, 116, 255], + [252, 216, 168, 255], + [252, 152, 56, 255], + [252, 116, 180, 255], + [216, 40, 0, 255], + [200, 76, 12, 255], + [136, 112, 0, 255], + [124, 7, 0, 255], + [168, 250, 188, 255], + [128, 208, 16, 255], + [0, 168, 0, 255], + [24, 60, 92, 255], + [0, 128, 136, 255], + [32, 56, 236, 255], + [156, 252, 240, 255], + [60, 188, 252, 255], + [92, 148, 252, 255], + [0, 130, 0, 255] + ], window.digitsize = getDigitSize(palette), window.filters = { + Underworld: ["palette", { + "05": "18", + "09": "16" + }], + Castle: ["palette", { + "02": "04", + "05": "01", + "09": "03" + }], + Alt: ["palette", { + 11: "01" + }], + Alt2: ["palette", { + "02": "04", + "05": "01", + "09": "03", + 13: "01", + 19: "08" + }], + star: { + one: ["palette", {}], + two: ["palette", { + "06": "02", + "08": "05", + 10: "09" + }], + three: ["palette", { + "06": "01", + "08": "06", + 10: "08" + }], + four: ["palette", { + "06": "01", + "08": "06", + 10: "14" + }] + }, + smart: ["palette", { + 14: "08" + }] + }, window.library = { + rawsprites: { + characters: { + Eraser: "p[7,7,7,7]x06,3333x011,x36,x09,x38,x07,x310,x05,311x36,11300033321333312333003332x16,23330333321233212x38,22233222x320,03333x26,3333x05,x28,x06,11x28,x05,x15,x25,110000x16,222111x05,x15,001110000", + Beetle: { + normal: { + normal: "p[0,2,5,8]x022,1111x010,x18,x07,x110,x05,x17,33111000x18,32311000x19,3311003333x111,001133x110,001113x110,011213x110,011113x110,011113x110,0011233x15,x35,00222331133322200222203333002222", + two: "p[0,2,5,8]x07,111x010,x18,x07,x110,x05,x17,33111000x18,32311000x19,3311003333x111,001133x110,001113x110,011213x110,011113x110,011113x110,0011233x15,x35,00022331133322x05,22233330222x06,22x05,22000" + }, + Underworld: { + normal: "p[0,15,16,18]x022,1111x010,x18,x07,x110,x05,x17,22111000x18,23211000x19,2211002222x111,001122x110,001112x110,011312x110,011112x110,011112x110,0011322x15,x25,00333221122233300333302222003333", + two: "p[0,15,16,18]x07,111x010,x18,x07,x110,x05,x17,22111000x18,23211000x19,2211002222x111,001122x110,001112x110,011312x110,011112x110,011112x110,0011322x15,x25,00033221122233x05,33322220333x06,33x05,33000" + }, + Castle: { + normal: "p[0,1,3,4]x022,3333x010,x38,x07,x310,x05,x37,22333000x38,21233000x39,2233002222x311,003322x310,003332x310,033132x310,033332x310,033332x310,0033122x35,x25,00111223322211100111102222001111", + two: "p[0,1,3,4]x07,333x010,x38,x07,x310,x05,x37,22333000x38,21233000x39,2233002222x311,003322x310,003332x310,033132x310,033332x310,033332x310,0033122x35,x25,00011223322211x05,11122220111x06,11x05,11000" + } + }, + BeetleShell: { + normal: "p[0,2,5,8]x06,1111x010,x18,x07,1111331111x05,1111322311110000x15,33x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x35,x16,x35,000033311333x010,3333x06,", + Underworld: "p[0,15,16,18]x06,1111x010,x18,x07,1111221111x05,1111233211110000x15,22x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x25,x16,x25,000022211222x010,2222x06,", + Castle: "p[0,1,3,4]x06,3333x010,x38,x07,3333223333x05,3333211233330000x35,22x35,0000x312,000x314,00x314,00x314,00x314,00x314,00x314,0x25,x36,x25,000022233222x010,2222x06," + }, + Blooper: { + normal: { + normal: "p[0,2,5,9]x06,2332x011,232232x09,23222232x07,2232222322x05,223x26,3220002223x26,322202223x28,32220003x28,3x06,x210,x06,2x18,2x06,1221111221x06,2112112112x06,2112112112x05,212211112212000022332222332200003x210,30000220x26,022000032032002302300002202200220220000320320023023x05,2022002202x06,2032002302x06,2002002002x09,2002x06,", + squeeze: "p[0,2,5,9]x06,2332x011,232232x09,23222232x07,2232222322x05,223x26,3220002223x26,322202223x28,32220003x28,3x06,2x18,200003x25,11x25,30x216,32223x26,322232222022002202222032203200230223000222020020222x05,2202002022000" + }, + Underwater: { + normal: "p[0,1,2,3]x06,1331x011,131131x09,13111131x07,1131111311x05,113x16,3110001113x16,311101113x18,31110003x18,3x06,x110,x06,1x28,1x06,2112222112x06,1221221221x06,1221221221x05,121122221121000011331111331100003x110,30000110x16,011000031031001301300001101100110110000310310013013x05,1011001101x06,1031001301x06,1001001001x09,1001x06,", + squeeze: "p[0,1,2,3]x06,1331x011,131131x09,13111131x07,1131111311x05,113x16,3110001113x16,311101113x18,31110003x18,3x06,1x28,100003x15,22x15,30x116,31113x16,311131111011001101111031103100130113000111010010111x05,1101001011000" + } + }, + Bowser: { + normal: { + normal: "p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,122233221323333113331x012,1022223332333311331123x010,10113133123333113111223111x09,10003223331113312233112x013,12233111x39,2231x011,2233111x313,1x09,122233111x36,111x35,x010,220033x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,111x36,x019,x35,11113333x019,2x36,x17,x017,1122332222x15,x016,111x210,11x021,1122112222x021,1112111x25,0", + two: "p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,122233221323333113331x012,1022223332333311331123x010,10113133123333113111223111x09,10003223331113312233112x013,12233111x39,2231x011,2233111x313,1x09,122233111x36,111x35,x010,220033x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,11x37,x019,x35,11113333x020,x36,x17,x019,22332222x15,x018,2222112211211x018,112211121112222x016,111x27,x06," + }, + firing: { + normal: "p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,112233221323333113331x012,1022223322333311331123x010,101030322x35,113111223111x06,x29,33331113312233112x07,x27,3333111x39,2231x07,x38,111x313,1x010,x35,111x36,111x35,x014,33x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,111x36,x019,x35,11113333x019,2x36,x17,x017,1122332222x15,x016,111x210,11x021,1122112222x021,1112111x25,0", + two: "p[0,1,6,14]x012,111x025,331112x025,3331122x023,113333223x019,200311x37,x018,2023311x38,x017,2221113332x35,x017,222213332223333x017,112233221323333113331x012,1022223322333311331123x010,101030322x35,113111223111x06,x29,33331113312233112x07,x27,3333111x39,2231x07,x38,111x313,1x010,x35,111x36,111x35,x014,33x16,33112333111x015,33222113322333112x011,222001022211x37,22x010,2210222012231x39,1x09,220022220033133311133321x08,210x26,1331133112333x010,200x25,333311333223311x010,10x25,333311x37,111x011,12220x35,1333311322x017,x35,1133323323x018,x35,11x37,x019,x35,11113333x020,x36,x17,x019,22332222x15,x018,2222112211211x018,112211121112222x016,111x27,x06," + } + }, + BowserFire: "p[0,1,6,8]x010,x36,003x010,x316,x06,x35,22332222332222x315,x25,111133x05,3333x213,13000x313,2223333x05,x39,0x36,x09,3300333033003x06,", + BrickShard: { + normal: "p[0,2,9]0021200002221200212121202212221222212221022212220021212000022200", + Underworld: ["filter", ["characters", "BrickShard", "Overworld"], filters.Underworld], + Castle: ["filter", ["characters", "BrickShard", "Overworld"], filters.Castle] + }, + BulletBill: "p[0,2,5,8]110x17,x06,2201x25,1110000113x16,2111000112x19,2100113x19,22101131133x15,2121113132212111121111313x26,x17,3111x25,x17,31111222x15,0113x111,00113x110,000110x19,0000110x17,x06,", + Bubble: "p[0,1]0110100110010110", + CastleFireBall: ["same", ["characters", "FireBall"]], + CheepCheep: { + normal: { + normal: "p[0,1,3,6]0003333x013,x35,011x07,x26,11110000121122221111000x16,222111100012121122x15,0001212112211110000x16,221112x05,1211x27,0000333x210,0000233x29,00300233x28,3330023311x26,333033331112222333000x18,20333x05,x15,0000300", + two: "p[0,1,3,6]0003333x013,x35,x010,x26,3x07,1211x25,x06,x16,x25,111001212112222x15,0121211222x16,0x16,22x16,0001211222x16,00333x210,0300233x29,33000233x28,3300023311x26,300033331112222330000x18,203x07,x15,x07," + }, + red: { + normal: "p[0,1,6,8]0002222x013,x25,x010,x36,2x07,1311x35,x06,x16,x35,111001313113333x15,0131311333x16,0x16,33x16,0001311333x16,00222x310,0200322x39,22000322x38,2200032211x36,200022221113333220000x18,302x07,x15,x07,", + two: "p[0,1,6,8]0002222x013,x25,011x07,x36,11110000131133331111000x16,333111100013131133x15,0001313113311110000x16,331113x05,1311x37,0000222x310,0000322x39,00200322x38,2220032211x36,222022221113333222000x18,30222x05,x15,0000200" + } + }, + Coin: { + normal: { + normal: { + normal: "p[0,2,6,8]00222211000x26,11002233221102232212211223221221122322122112232212211223221221122322122112232212211223221221102211221100x26,1100022221100", + two: "p[0,2,8]00222211000x26,1100x26,110x25,12211x25,12211x25,12211x25,12211x25,12211x25,12211x25,12211x25,1221102211221100x26,1100022221100", + three: "p[0,2,9,11]00333311000x36,11003322331103323313311332331331133233133113323313311332331331133233133113323313311332331331103311331100x36,1100033331100" + }, + Underworld: { + normal: "p[0,6,9,16]00111133000x16,33001122113301121131133112113113311211311331121131133112113113311211311331121131133112113113301133113300x16,3300011113300", + two: "p[0,9,16]00111122000x16,2200x16,220x15,21122x15,21122x15,21122x15,21122x15,21122x15,21122x15,21122x15,2112201122112200x16,2200011112200", + three: "p[0,9,11,16]00222233000x26,33002211223302212232233221223223322122322332212232233221223223322122322332212232233221223223302233223300x26,3300022223300" + } + }, + anim: { + normal: "p[0,1,7]000012x08,12x07,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x06,1112x07,12x08,120000", + anim2: "p[0,1,6,7]000022x07,2222x05,x26,000022132200022122322002212232200221223220022122322002212232200221223220002213220000x26,x05,2222x07,220000", + anim3: "p[0,1,6,7]000023x08,23x07,2333x06,2333x06,2333x06,2333x06,1333x06,1333x06,2333x06,2333x06,2333x06,2333x07,23x08,230000", + anim4: "p[0,1,6]x05,2x09,2x09,2x09,2x09,2x09,2x09,1x09,1x09,2x09,2x09,2x09,2x09,2x09,20000" + } + }, + FireBall: { + normal: "p[0,1,6,8]0303330000303330300032330033322303322123032212330332233000333300", + two: "p[0,1,6,8]x05,3000333000333233030322230033212x36,2122330332233000333300", + three: "p[0,1,6,8]0033330003322330332122303212233032233300332300030333030000333030", + four: "p[0,1,6,8]0033330003322330332212x36,2123300322230303323330003330003x05," + }, + FireFlower: { + normal: { + normal: "p[0,1,6,8,14]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,", + two: "p[0,2,5,9,14]0000x28,x06,x212,000222x38,222022333x16,3332222333x16,333220222x38,222000x212,x06,x28,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,", + three: "p[0,6,8,10,14]0000x18,x06,x112,000111x38,111011333x26,3331111333x26,333110111x38,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,", + four: "p[0,1,6,14]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,33x07,333000033000033303330003300033300333300330033330003333033033330000333303303333x05,x310,x09,3333x06," + }, + Underworld: { + normal: "p[0,1,6,8,16]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,", + two: "p[0,15,16,18]0000x38,x06,x312,000333x28,333033222x16,2223333222x16,222330333x28,333000x312,x06,x38,x011,22x07,222000022000022202220002200022200222200220022220002222022022220000222202202222x05,x210,x09,2222x06,", + three: "p[0,6,8,10,16]0000x18,x06,x112,000111x38,111011333x26,3331111333x26,333110111x38,111000x112,x06,x18,x011,44x07,444000044000044404440004400044400444400440044440004444044044440000444404404444x05,x410,x09,4444x06,", + four: "p[0,5,9,16]0000x18,x06,x112,000111x28,111011222x36,2221111222x36,222110111x28,111000x112,x06,x18,x011,33x07,333000033000033303330003300033300333300330033330003333033033330000333303303333x05,x310,x09,3333x06," + } + }, + Firework: ["same", ["solids", "Firework"]], + Goomba: { + normal: "p[0,2,5,9]x06,3333x011,x36,x09,x38,x07,x310,x05,311x36,11300033321333312333003332x16,23330333321233212x38,22233222x320,03333x26,3333x05,x28,x06,11x28,x05,x15,x25,110000x16,222111x05,x15,001110000", + Underworld: "p[0,15,16,18]x06,2222x011,x26,x09,x28,x07,x210,x05,211x26,11200022231222213222002223x16,32220222231322313x28,33322333x220,02222x36,2222x05,x38,x06,11x38,x05,x15,x35,110000x16,333111x05,x15,001110000", + Castle: ["filter", ["characters", "Goomba", "Overworld"], filters.Castle] + }, + Hammer: { + normal: "p[0,2,5,8]x08,2x014,12101x010,111101x09,1122232x09,1211131x08,x16,31x08,10011131x09,x15,01x012,2x015,2x015,2x015,2x015,2x015,2x015,2x015,2x07,", + two: "p[0,2,5,8]x073,11x013,10111x011,101211x010,11112110x28,11112122x08,1111211x010,3333x011,1111211x065,", + three: "p[0,2,5,8]x07,2x015,2x015,2x015,2x015,2x015,2x015,2x015,2x012,10x15,x09,13111001x08,13x16,x08,1311121x09,2322211x09,101111x010,10121x014,2x08,", + four: "p[0,2,5,8]x065,1121111x011,3333x010,1121111x08,22121111x28,01121111x010,112101x011,11101x013,11x073," + }, + HammerBro: { + normal: { + normal: "p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,12113333x06,21231x36,00022210311133313x06,3322113231x06,3222212331x06,x25,1323130000x25,1133233000x25,1133332200x25,313333233x06,33123323330000223311223333000022233111133x05,222x35,11110000222233x26,x05,222033x25,x06,2200002222x013,222", + two: "p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,1211333300002221231x36,x06,10311133313x06,3322113231x06,3222212331x06,3x25,32313x05,33x25,3233x05,33312222322x06,3313333233x06,3312333233x06,3311223333x07,33111133x08,x35,1111x07,23322233x08,x27,x010,x25,x012,2222000" + }, + throwing: { + normal: "p[0,1,6,14]00003333x011,333313x09,3113331x010,31133332x07,231133322x06,x25,12322x06,x25,12222x06,x25,1122233x05,2221x25,333x07,1322223313x06,3322223231x06,33x25,331x06,33322132313x05,33311133233x05,3331x35,22x06,3313333233x06,33123323330000223311223333000022233111133x05,222x35,11110000222233x26,x05,222033x25,x06,2200002222x013,222", + two: "p[0,1,6,14]00003333x011,333313x09,3113331x010,31133332x07,231133322x06,x25,12322x06,x25,12222x06,x25,1122233x05,2221x25,333x07,1322223313x06,3322223231x06,33x25,331x06,33322132313x05,33311133233x05,3331x35,22x06,3313333233x06,3312333233x06,3311223333x07,33111133x08,x35,1111x07,23322233x08,x27,x010,x25,x012,2222000" + }, + thrown: { + normal: "p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,12113333x06,21231x36,00022210311133313x06,3322113231x06,3222212331x06,x25,1323130000x25,1133233000x25,1133332200x25,313333233x06,33123323330000223311223333000022233111133x05,222x35,11110000222233x26,x05,222033x25,x06,2200002222x013,222", + two: "p[0,1,6,14]003333x011,31x35,x08,31113313x09,31133313x08,311x35,x07,221221233x07,x25,122133x05,x25,12113333x06,21231x36,00022210311133313x06,3322113231x06,3222212331x06,x25,1323130000x25,1133233000x25,113333220022223313333233x06,3312333233x06,3311223333x07,33111133x08,x35,1111x07,23322233x08,x27,x010,x25,x012,2222000" + } + }, + Koopa: { + normal: { + normal: { + flying: { + normal: "p[0,1,6,14]x019,1x09,11000111x07,1111001112x05,x15,0231122000x15,0023112200112110002311220012111100211122011211110222122201211110023x25,012111010x26,0012x15,022202203312111002200220331113330220221333232333002022133233323200002212x36,23000221132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000221112331110000x25,x15,22200x25,x06,2222", + two: "p[0,1,6,14]00001x014,111x012,2111x012,23112x010,223112x010,223112x010,2211120011100002322122011211000x27,0121111002220022012x15,022000213x17,x05,22133x17,00022133331131110222213332323311002221232333232000021132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000021112331112x05,222x15,222x06,2220000222x07,2220022200" + }, + normal: { + normal: { + normal: "p[0,1,6,14]x019,1x014,111x013,1112x011,231122x010,231122x010,231122x010,211122x09,2221222x09,23x25,x09,x26,00x35,0002220220323332300220022033232333022022133332311300202213332323130000221232333232000221132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000221112331110000x25,x15,22200x25,x06,2222", + two: "p[0,1,6,14]00001x014,111x012,2111x012,23112x010,223112x010,223112x010,221112x09,2322122x09,x27,x09,22200220x35,00022000213233323x06,2213323233x05,22133332311300222213332323130002221232333232000021132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000021112331112x05,222x15,222x06,2220000222x07,2220022200" + }, + Underworld: { + normal: "p[0,5,9,16]x019,1x014,111x013,1112x011,231122x010,231122x010,231122x010,211122x09,2221222x09,23x25,x09,x26,00x35,0002220220323332300220022033232333022022133332311300202213332323130000221232333232000221132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000221112331110000x25,x15,22200x25,x06,2222", + two: "p[0,5,9,16]00001x014,111x012,2111x012,23112x010,223112x010,223112x010,221112x09,2322122x09,x27,x09,22200220x35,00022000213233323x06,2213323233x05,22133332311300222213332323130002221232333232000021132x35,2300002132323332320000212333232333x05,1x35,23333x05,113332323111000021112331112x05,222x15,222x06,2220000222x07,2220022200" + } + } + }, + smart: ["filter", ["characters", "Koopa", "normal", "normal"], filters.smart] + }, + Castle: ["filter", ["characters", "Koopa", "normal"], filters.Castle] + }, + Lakitu: { + normal: "p[0,1,6,14]x05,x25,x010,x27,x08,333233322x06,3111311132x06,3x17,323x05,3113131132330000311313113233x05,3332x37,x05,222333322233000x25,33x25,3003x25,11x25,30031222111122213003x112,303x114,33x15,3113x15,33x15,3113x15,33x15,3113x15,33x114,3313x110,3130311131111311130031111333311113003x112,3000311113311113x05,3333003333000", + hiding: "p[0,1,6,14]x0131,2220000222x05,x25,33x25,0000x25,11x25,00003222111122230003x112,303x114,33x15,3113x15,33x15,3113x15,33x15,3113x15,33x114,3313x110,3130311131111311130031111333311113003x112,3000311113311113x05,3333003333000" + }, + Mario: { + dead: "p[0,6,8,10]x05,x25,x07,11x27,1100111131311313x16,3313113133x15,33311113331100x35,113333x05,331333313x06,33x16,3x05,222211112220003332233332233003333223322333003333212212333003333x26,333000333x26,3300", + normal: { + normal: { + normal: "p[0,6,8,10]0000x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,3332333x08,333323323330000x35,2222333300011132122123110001111x26,111000111x28,11x05,222202222x06,333300033330000x35,000x35,00", + hopping: ["same", ["characters", "Mario", "normal", "normal", "running", "normal", "two"]], + jumping: "p[0,6,8,10]x013,111x06,x26,0111x05,x29,11x05,33311311333000031311131133300003133111311130000331111x36,x06,x17,33000x35,2333233000x37,2333220311x36,x26,0311112232212212330113x210,3300333x29,330333x28,x05,330x25,x07,", + running: { + skidding: "p[0,6,8,10]x05,x26,x08,x28,33x07,131x37,0000x16,3113111001133113311311100033x16,3111x05,1123332222x05,3332231112220000x36,1113220000x36,112222x05,3333x26,x07,222233322x07,222x35,x09,2333223333x09,2x36,x010,x35,00", + normal: { + normal: "p[0,6,8,10]x05,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x05,x35,2233x05,1113333222333x17,3332122233x15,0x28,0330000x210,33000x211,330033322200222233003333x013,3333x010,", + two: "p[0,6,8,10]x020,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x08,333322333x07,3332212211x06,3333x26,x06,2331112222x07,23112222x09,2223333x09,x38,0000", + three: "p[0,6,8,10]x021,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,x35,2311x06,11x36,11100001112x35,11x05,333x27,x06,33x28,x05,333x27,x06,330003333x012,x35,x05," + } + }, + paddling: { + normal: { + normal: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x06,33x27,x07,33x26,x08,332222x010,30033x014,3x027,", + paddle1: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x05,33x28,x06,33x27,x07,33x25,x09,330333x013,33x026,", + paddle2: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x05,33x25,33111000033x27,111000033x26,00110000330333x013,33x026,", + paddle3: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x07,33x25,x09,330333x013,33x026," + }, + swim2: { + normal: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x07,3x27,x07,33x26,x010,3322x011,333x013,33x028,", + paddle1: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x06,3x28,x06,33x27,x09,33222x010,3333x012,333x027,", + paddle2: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x06,3x25,33111000033x27,111x06,3322220011x05,3333x012,333x027,", + paddle3: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x09,332222x09,3333x012,333x027," + } + }, + climbing: { + normal: "p[0,6,8,10]0000x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x09,222x35,x08,222x36,11100002222x35,111100x26,3333111100x211,33300x211,330000x29,x08,x26,x06,", + two: "p[0,6,8,10]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x08,22x35,111x05,22x36,1111000222x36,1111000x25,122x08,x28,00033000x210,3330000x29,333x05,x28,333x016," + } + }, + large: { + normal: "p[0,6,8,10]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36,", + jumping: "p[0,6,8,10]x012,111x012,11311x06,x25,113310000x27,x15,000x28,x35,000x211,33000333113111333300311311331111330031133x18,30031133111311113033x15,x37,0033331111333313000033x18,33x05,2222332333300x36,223233300x38,23323300x38,2232300033113333223320003111133222231000x15,32221222000x15,x28,0001011x29,003011x210,033000x29,33330003x28,x37,233x26,x37,222332222x37,x25,0022x37,x25,x08,3332222x09,33x014,3x015,", + hopping: ["same", ["characters", "Mario", "normal", "large", "running", "normal", "two"]], + crouching: "p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000331113111311110033x15,x36,000223x15,x35,0033323x19,0033323331113323033332x38,23033332x37,22x36,21x35,22x37,x28,x39,x26,x38,1112222111333231111222211113221111x26,1111202113x06,311200033330000333300x36,0000x36,", + running: { + skidding: "p[0,6,8,10]000x27,x09,11x27,33x06,1x27,333000x26,31133110022113113113111100013311311311110x16,3111213x16,3x15,22313111133331133223110333311113332x05,x15,x35,220003322233111332000333222x15,32000333233x15,3200x37,x15,0000x37,113122200x38,11222200x37,x27,00x36,x27,0000333x25,333x05,x25,x35,x06,x25,x38,0000222333311113x06,233x16,3x07,3112222x010,x27,003x07,222230033x07,22x37,x08,x37,x09,x36,x011,3333x012,3330000", + normal: { + normal: "p[0,6,8,10]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x08,33311x010,222233200010000333322332011100x36,223231110x37,223321110x37,223323130x36,222332330x36,22212313003333x29,000x15,x28,000x15,x28,0031111x29,0330111x27,x35,00023x26,x35,003223x25,x38,22233222x39,2222000x310,2x011,333x013,333x014,333x011,", + two: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,30003333x27,322003333x25,3322200333322223222200033332220022220003333x05,333300033x07,33330003x08,x36,x010,x36,x017,", + three: "p[0,6,8,10]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x05,33x18,x07,222211x09,32332233x07,323333223x07,3233332233x06,3233332223x06,32x35,113x06,3233331111x06,22333311112x05,22233311112200002222331112220000x26,332222x05,x25,33322x07,222x36,x07,22x36,x09,223333x010,3222333x09,3333033x08,x35,x011,x37,x011,x35,x05," + } + }, + paddling: { + normal: { + normal: "p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,", + paddle1: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,", + paddle2: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,", + paddle3: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042," + }, + swim2: { + normal: "p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,", + paddle1: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027,", + paddle2: "p[0,6,8,10]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x028,", + paddle3: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027," + } + }, + climbing: { + normal: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x29,30330000x27,x35,x05,x26,x35,x07,22223333x011,x35,x013,33x015,3x018,", + two: "p[0,6,8,10]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,3x06,x210,033000x29,33330000x28,33330000x28,3333x05,x27,3333x064," + } + }, + fiery: { + normal: "p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x07,1x25,3x09,31333313x07,3313333133x05,3331333313330003333133331333300333113333113330333311333311x38,x18,x38,1211112133332222x18,x28,x18,22220222x18,2220022x110,22000x112,000x16,00x16,00x15,0000x15,00x15,0000x15,000333300003333000033330000333300x36,0000x312,0000x36,", + jumping: "p[0,5,6,8]x012,222x012,22322x06,x15,223320000x17,x25,000x18,x35,000x111,33000333223222333300322322332222330032233x28,30032233222322223033x25,x37,0033332222333323000033x28,33x05,1111331333300x36,113133300x38,13313300x38,1131300033223333113310003222233111132000x25,31112111000x25,x18,0002222x19,003022x110,033000x19,33330003x18,x37,133x16,x37,111331111x37,x15,0011x37,x15,x08,3331111x09,33x014,3x015,", + hopping: ["same", ["characters", "Mario", "normal", "fiery", "running", "normal", "three"]], + crouching: "p[0,5,6,8]x07,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000332223222322220033x25,x36,000113x25,x35,0033313x29,0033313332223313033331x38,13033331x37,11x36,12x35,11x37,x18,x39,x16,x38,2221111222333132222111122223112222x16,2222101223x06,322100033330000333300x36,0000x36,", + firing: ["same", ["characters", "Mario", "normal", "fiery", "running", "normal", "two"]], + running: { + skidding: "p[0,5,6,8]000x17,x09,22x17,33x06,2x17,333000x16,32233220011223223223222200023322322322220x26,3222123x26,3x25,11323222233332233113220333322223331x05,x25,x35,110003311133222331000333111x25,31000333133x25,3100x37,x25,0000x37,223211100x38,22111100x37,x17,00x36,x17,0000333x15,333x05,x15,x35,x06,x15,x38,0000111333322223x06,133x26,3x07,3221111x010,x17,003x07,111130033x07,11x37,x08,x37,x09,x36,x011,3333x012,3330000", + normal: { + normal: "p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x08,33322x010,111133100020000333311331022200x36,113132220x37,113312220x37,113313230x36,111331330x36,11121323003333x19,000x25,x18,000x25,x18,0032222x19,0330222x17,x35,00013x16,x35,003113x15,x38,11133111x39,1111000x310,1x011,333x013,333x014,333x011,", + two: "p[0,5,6,8]x039,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,30003333x17,311003333x15,3311100333311113111100033331110011110003333x05,333300033x07,33330003x08,x36,x010,x36,0", + three: "p[0,5,6,8,10]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000044x25,x35,x05,33x28,x07,111122x09,31331133x07,313333113x07,3133331133x06,3133331113x06,31x35,223x06,3133332222x06,11333322221x05,11133322221100001111332221110000x16,331111x05,x15,33311x07,111x36,x07,11x36,x09,113333x010,3111333x09,3333033x08,x35,x011,x37,x011,x35,x05," + } + }, + paddling: { + normal: { + normal: "p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,", + paddle1: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x05,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,", + paddle2: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,", + paddle3: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042," + }, + swim2: { + normal: "p[0,6,8,10]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,", + paddle1: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027,", + paddle2: "p[0,5,6,8]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x028,", + paddle3: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027," + } + }, + climbing: { + normal: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x19,30330000x17,x35,x05,x16,x35,x07,11113333x011,x35,x013,33x015,3x018,", + two: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,3x06,x110,033000x19,33330000x18,33330000x18,3333x05,x17,3333x064," + } + }, + shrooming: { + normal: "p[0,6,8,10]x0261,x25,x010,x29,x07,3331131x08,3131113111x06,31331113111x05,3311113333x08,x17,x08,332333x09,3332332333x05,33332222333300001132122123110000111x26,111000011x28,11x06,22200222x07,3330000333x05,33330000333300", + shrooming2: "p[0,6,8,10]x0134,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,33323333233300033332333323333011002122221200x15,0x28,0x16,x210,11101022220022220100022220000222200003333000033330000333300003333000x35,0000x35,0", + shrooming3: "p[0,6,8,10]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36," + } + }, + star: { + normal: ["filter", ["characters", "Mario", "normal"], filters.star.one], + star2: ["filter", ["characters", "Mario", "normal"], filters.star.two], + star3: ["filter", ["characters", "Mario", "normal"], filters.star.three], + star4: ["filter", ["characters", "Mario", "normal"], filters.star.four] + } + }, + Luigi: { + dead: "p[0,6,1,21]x05,x25,x07,11x27,1100111131311313x16,3313113133x15,33311113331100x35,113333x05,331333313x06,33x16,3x05,222211112220003332233332233003333223322333003333212212333003333x26,333000333x26,3300", + normal: { + normal: { + normal: "p[0,6,1,21]0000x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,3332333x08,333323323330000x35,2222333300011132122123110001111x26,111000111x28,11x05,222202222x06,333300033330000x35,000x35,00", + hopping: ["same", ["characters", "Luigi", "normal", "normal", "running", "normal", "two"]], + jumping: "p[0,6,1,21]x013,111x06,x26,0111x05,x29,11x05,33311311333000031311131133300003133111311130000331111x36,x06,x17,33000x35,2333233000x37,2333220311x36,x26,0311112232212212330113x210,3300333x29,330333x28,x05,330x25,x07,", + running: { + skidding: "p[0,6,1,21]x05,x26,x08,x28,33x07,131x37,0000x16,3113111001133113311311100033x16,3111x05,1123332222x05,3332231112220000x36,1113220000x36,112222x05,3333x26,x07,222233322x07,222x35,x09,2333223333x09,2x36,x010,x35,00", + normal: { + normal: "p[0,6,1,21]x05,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x05,x35,2233x05,1113333222333x17,3332122233x15,0x28,0330000x210,33000x211,330033322200222233003333x013,3333x010,", + two: "p[0,6,1,21]x020,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x08,333322333x07,3332212211x06,3333x26,x06,2331112222x07,23112222x09,2223333x09,x38,0000", + three: "p[0,6,1,21]x021,x26,x09,x210,x06,33331131x07,33131113111x05,331331113111000033311113333x07,x18,x07,x35,2311x06,11x36,11100001112x35,11x05,333x27,x06,33x28,x05,333x27,x06,330003333x012,x35,x05," + } + }, + paddling: { + normal: { + normal: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x06,33x27,x07,33x26,x08,332222x010,30033x014,3x027,", + paddle1: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x05,33x28,x06,33x27,x07,33x25,x09,330333x013,33x026,", + paddle2: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x05,33x25,33111000033x27,111000033x26,00110000330333x013,33x026,", + paddle3: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x07,33x25,x09,330333x013,33x026," + }, + swim2: { + normal: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,111x06,2x36,11x06,22233332x07,3x27,x07,33x26,x010,3322x011,333x013,33x028,", + paddle1: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,32x35,1111x05,2x36,111x05,222333322x06,3x28,x06,33x27,x09,33222x010,3333x012,333x027,", + paddle2: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3233322x09,2x36,x08,222333311x06,3x25,33111000033x27,111x06,3322220011x05,3333x012,333x027,", + paddle3: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3332333x08,33332333x06,1333322333x05,1113322122x07,33x27,x09,332222x09,3333x012,333x027," + } + }, + climbing: { + normal: "p[0,6,1,21]0000x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x07,3323333x09,222x35,x08,222x36,11100002222x35,111100x26,3333111100x211,33300x211,330000x29,x08,x26,x06,", + two: "p[0,6,1,21]x05,x26,x09,x210,x06,33311311x07,31311131111x05,3133111311110000331111x35,x07,x18,x08,22x35,111x05,22x36,1111000222x36,1111000x25,122x08,x28,00033000x210,3330000x29,333x05,x28,333x016," + } + }, + large: { + normal: "p[0,6,1,21]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36,", + jumping: "p[0,6,1,21]x012,111x012,11311x06,x25,113310000x27,x15,000x28,x35,000x211,33000333113111333300311311331111330031133x18,30031133111311113033x15,x37,0033331111333313000033x18,33x05,2222332333300x36,223233300x38,23323300x38,2232300033113333223320003111133222231000x15,32221222000x15,x28,0001011x29,003011x210,033000x29,33330003x28,x37,233x26,x37,222332222x37,x25,0022x37,x25,x08,3332222x09,33x014,3x015,", + hopping: ["same", ["characters", "Luigi", "normal", "large", "running", "normal", "two"]], + crouching: "p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000331113111311110033x15,x36,000223x15,x35,0033323x19,0033323331113323033332x38,23033332x37,22x36,21x35,22x37,x28,x39,x26,x38,1112222111333231111222211113221111x26,1111202113x06,311200033330000333300x36,0000x36,", + running: { + skidding: "p[0,6,1,21]000x27,x09,11x27,33x06,1x27,333000x26,31133110022113113113111100013311311311110x16,3111213x16,3x15,22313111133331133223110333311113332x05,x15,x35,220003322233111332000333222x15,32000333233x15,3200x37,x15,0000x37,113122200x38,11222200x37,x27,00x36,x27,0000333x25,333x05,x25,x35,x06,x25,x38,0000222333311113x06,233x16,3x07,3112222x010,x27,003x07,222230033x07,22x37,x08,x37,x09,x36,x011,3333x012,3330000", + normal: { + normal: "p[0,6,1,21]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x08,33311x010,222233200010000333322332011100x36,223231110x37,223321110x37,223323130x36,222332330x36,22212313003333x29,000x15,x28,000x15,x28,0031111x29,0330111x27,x35,00023x26,x35,003223x25,x38,22233222x39,2222000x310,2x011,333x013,333x014,333x011,", + two: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,30003333x27,322003333x25,3322200333322223222200033332220022220003333x05,333300033x07,33330003x08,x36,x010,x36,x017,", + three: "p[0,6,1,21]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x05,33x18,x07,222211x09,32332233x07,323333223x07,3233332233x06,3233332223x06,32x35,113x06,3233331111x06,22333311112x05,22233311112200002222331112220000x26,332222x05,x25,33322x07,222x36,x07,22x36,x09,223333x010,3222333x09,3333033x08,x35,x011,x37,x011,x35,x05," + } + }, + paddling: { + normal: { + normal: "p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,", + paddle1: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,", + paddle2: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042,", + paddle3: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x06,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x042," + }, + swim2: { + normal: "p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,", + paddle1: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027,", + paddle2: "p[0,6,1,21]x022,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,2x07,322x36,2x06,3222x36,11x05,222x36,11100002222x35,1111000x26,3331111000x210,011000x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x028,", + paddle3: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x08,x36,233x07,x36,223x06,x36,22233x05,x35,x25,3000011333222122200001113x28,0001111x29,000111x29,x07,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x027," + } + }, + climbing: { + normal: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x29,30330000x27,x35,x05,x26,x35,x07,22223333x011,x35,x013,33x015,3x018,", + two: "p[0,6,1,21]x023,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,x35,x06,3x18,x06,3222111x08,3233323x09,32333323x07,332x35,22110000322x37,1111003222x36,1111000222x37,1110002222x36,111000x26,3332x06,x210,x06,x29,3x06,x210,033000x29,33330000x28,33330000x28,3333x05,x27,3333x064," + } + }, + fiery: { + normal: "p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x07,1x25,3x09,31333313x07,3313333133x05,3331333313330003333133331333300333113333113330333311333311x38,x18,x38,1211112133332222x18,x28,x18,22220222x18,2220022x110,22000x112,000x16,00x16,00x15,0000x15,00x15,0000x15,000333300003333000033330000333300x36,0000x312,0000x36,", + jumping: "p[0,5,6,8]x012,222x012,22322x06,x15,223320000x17,x25,000x18,x35,000x111,33000333223222333300322322332222330032233x28,30032233222322223033x25,x37,0033332222333323000033x28,33x05,1111331333300x36,113133300x38,13313300x38,1131300033223333113310003222233111132000x25,31112111000x25,x18,0002222x19,003022x110,033000x19,33330003x18,x37,133x16,x37,111331111x37,x15,0011x37,x15,x08,3331111x09,33x014,3x015,", + hopping: ["same", ["characters", "Luigi", "normal", "fiery", "running", "normal", "three"]], + crouching: "p[0,5,6,8]x07,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000332223222322220033x25,x36,000113x25,x35,0033313x29,0033313332223313033331x38,13033331x37,11x36,12x35,11x37,x18,x39,x16,x38,2221111222333132222111122223112222x16,2222101223x06,322100033330000333300x36,0000x36,", + firing: ["same", ["characters", "Luigi", "normal", "fiery", "running", "normal", "two"]], + running: { + skidding: "p[0,5,6,8]000x17,x09,22x17,33x06,2x17,333000x16,32233220011223223223222200023322322322220x26,3222123x26,3x25,11323222233332233113220333322223331x05,x25,x35,110003311133222331000333111x25,31000333133x25,3100x37,x25,0000x37,223211100x38,22111100x37,x17,00x36,x17,0000333x15,333x05,x15,x35,x06,x15,x38,0000111333322223x06,133x26,3x07,3221111x010,x17,003x07,111130033x07,11x37,x08,x37,x09,x36,x011,3333x012,3330000", + normal: { + normal: "p[0,5,6,8]x06,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000333x25,x35,x05,33x28,x08,33322x010,111133100020000333311331022200x36,113132220x37,113312220x37,113313230x36,111331330x36,11121323003333x19,000x25,x18,000x25,x18,0032222x19,0330222x17,x35,00013x16,x35,003113x15,x38,11133111x39,1111000x310,1x011,333x013,333x014,333x011,", + two: "p[0,5,6,8]x039,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,30003333x17,311003333x15,3311100333311113111100033331110011110003333x05,333300033x07,33330003x08,x36,x010,x36,0", + three: "p[0,5,6,8,10]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000044x25,x35,x05,33x28,x07,111122x09,31331133x07,313333113x07,3133331133x06,3133331113x06,31x35,223x06,3133332222x06,11333322221x05,11133322221100001111332221110000x16,331111x05,x15,33311x07,111x36,x07,11x36,x09,113333x010,3111333x09,3333033x08,x35,x011,x37,x011,x35,x05," + } + }, + paddling: { + normal: { + normal: "p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x05,33x28,00003333x27,x05,3333x25,x07,33332223x08,3333033x09,3300033x09,300003x058,", + paddle1: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x05,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,", + paddle2: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042,", + paddle3: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x06,33x18,00003333x17,x05,3333x15,x07,33331113x08,3333033x09,3300033x09,300003x042," + }, + swim2: { + normal: "p[0,6,1,21]x07,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000033x15,331111x05,3113331111x05,322x35,11x05,322x36,1x06,32x36,x08,32x35,23x07,323333223x08,223322233x07,x28,3x07,x25,1222x06,x210,x06,x210,x06,x210,x06,x29,x07,x28,x08,3x25,x09,333222x010,x35,x011,3333x012,333x014,33x043,", + paddle1: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027,", + paddle2: "p[0,5,6,8]x022,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,1x07,311x36,1x06,3111x36,22x05,111x36,22200001111x35,2222000x16,3332222000x110,022000x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x028,", + paddle3: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x08,x36,133x07,x36,113x06,x36,11133x05,x35,x15,3000022333111211100002223x18,0002222x19,000222x19,x07,x19,x07,x18,x08,3x15,x09,333111x010,x35,x011,3333x012,333x014,33x027," + } + }, + climbing: { + normal: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,332222x05,3223332222x05,311x35,22x05,311x36,2x06,31x36,x08,31x35,13x07,313333113x08,113311133x07,x18,3x07,x15,2111x06,x110,x06,x110,x06,x110,x06,x19,x07,x19,30330000x17,x35,x05,x16,x35,x07,11113333x011,x35,x013,33x015,3x018,", + two: "p[0,5,6,8]x023,x15,x09,x16,2x08,x16,22x08,x111,x05,333223222x06,322322332222000032233x28,00332233222322220033x25,x36,000033x25,x35,x06,3x28,x06,3111222x08,3133313x09,31333313x07,331x35,11220000311x37,2222003111x36,2222000111x37,2220001111x36,222000x16,3331x06,x110,x06,x19,3x06,x110,033000x19,33330000x18,33330000x18,3333x05,x17,3333x064," + } + }, + shrooming: { + normal: "p[0,6,1,21]x0261,x25,x010,x29,x07,3331131x08,3131113111x06,31331113111x05,3311113333x08,x17,x08,332333x09,3332332333x05,33332222333300001132122123110000111x26,111000011x28,11x06,22200222x07,3330000333x05,33330000333300", + shrooming2: "p[0,6,1,21]x0134,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,33323333233300033332333323333011002122221200x15,0x28,0x16,x210,11101022220022220100022220000222200003333000033330000333300003333000x35,0000x35,0", + shrooming3: "p[0,6,1,21]x06,x25,x09,x26,1x08,x26,11x08,x211,x05,333113111x06,311311331111000031133x18,00331133111311110033x15,x36,000333x15,x35,x05,33x18,x07,2x15,3x09,32333323x07,3323333233x05,3332333323330003333233332333300333223333223330333322333322x38,x28,x38,2122221233331111x28,x18,x28,11110111x28,1110011x210,11000x212,000x26,00x26,00x25,0000x25,00x25,0000x25,000333300003333000033330000333300x36,0000x312,0000x36," + } + }, + star: { + normal: ["filter", ["characters", "Luigi", "normal"], filters.star.one], + star2: ["filter", ["characters", "Luigi", "normal"], filters.star.two], + star3: ["filter", ["characters", "Luigi", "normal"], filters.star.three], + star4: ["filter", ["characters", "Luigi", "normal"], filters.star.four] + } + }, + Mushroom: { + normal: "p[0,1,6,8]x06,2222x011,332222x09,33332222x07,x35,x25,x05,22333x27,000x29,3332200x28,x35,202233x25,x35,222333x25,x35,22233x27,333x219,02333x16,3332x05,x18,x08,12x16,x08,12x16,x09,121111x05,", + gainlife: "p[0,1,6,14]x06,2222x011,332222x09,33332222x07,x35,x25,x05,22333x27,000x29,3332200x28,x35,202233x25,x35,222333x25,x35,22233x27,333x219,02333x16,3332x05,x18,x08,12x16,x08,12x16,x09,121111x05,", + deathly: "p[0,5,9,16]x06,2222x011,332222x09,33332222x07,x35,x25,x05,22333x27,000x29,3332200x28,x35,202233x25,x35,222333x25,x35,22233x27,333x219,02333x16,3332x05,x18,x08,12x16,x08,12x16,x09,121111x05," + }, + Pirhana: { + normal: { + normal: "p[0,6,14]x022,2002x011,210012x09,22200222x08,12200221x07,2221001222x06,2222002222x05,1212200221210000x25,00x25,0000222120021222000021222002221200002222100122220000212220022212x05,2212002122x06,2222002222x07,12100121x010,2002x06,11x05,11x05,11121100011000112101211001100112100112110110112110001121011012110000111211112111x05,x110,000", + two: "p[0,1,6,14]x034,3x010,30003211x06,112300331x08,1330023311000011332033321x06,12333233331100113333233233100001332x37,x06,x36,23333100133332x35,23100132333302x35,00x35,20033233300333233000333320023333x05,32x36,23x08,323323x05,22x05,22x05,22232200022000223202322002200223200223220220223220002232022023220000222322223222x05,x210,000" + }, + Underworld: { + normal: "p[0,9,16]x022,2002x011,210012x09,22200222x08,12200221x07,2221001222x06,2222002222x05,1212200221210000x25,00x25,0000222120021222000021222002221200002222100122220000212220022212x05,2212002122x06,2222002222x07,12100121x010,2002x06,11x05,11x05,11121100011000112101211001100112100112110110112110001121011012110000111211112111x05,x110,000", + two: "p[0,5,9,16]x034,3x010,30003211x06,112300331x08,1330023311000011332033321x06,12333233331100113333233233100001332x37,x06,x36,23333100133332x35,23100132333302x35,00x35,20033233300333233000333320023333x05,32x36,23x08,323323x05,22x05,22x05,22232200022000223202322002200223200223220220223220002232022023220000222322223222x05,x210,000" + }, + Castle: ["same", ["characters", "Pirhana", "Underworld"]] + }, + Podoboo: "p[0,1,6,8]0000x36,x07,x38,x05,3332222333000333x26,33300332221122233033322111122x35,22x16,22333322x16,22333322x16,223333222111122233332222112222x35,232222323330x35,22x35,00x35,22x35,0003303333033x05,30033003000", + Shell: { + normal: { + normal: { + normal: "p[0,1,6,14]x05,233332x09,33222233x07,3323333233x06,32x36,23x05,32x38,230000232x36,2320002333233332333200x35,2222x35,01113323333233x17,2x36,2111100011x36,11x07,11333311x09,x16,x011,1111x06,", + peeking: "p[0,1,6,14]x05,233332x09,33222233x07,3323333233x06,32x36,23x05,32x38,230000232x36,2320002333233332333200x35,2222x35,01113323333233x17,2x36,2111100211x36,11200022211333311222002220x16,02220022000111100022002x012,20" + }, + smart: ["filter", ["characters", "Shell", "normal", "normal"], filters.smart] + }, + Underworld: { + normal: "p[0,5,9,16]x05,233332x09,33222233x07,3323333233x06,32x36,23x05,32x38,230000232x36,2320002333233332333200x35,2222x35,01113323333233x17,2x36,2111100011x36,11x07,11333311x09,x16,x011,1111x06,", + peeking: "p[0,5,6,9,16]x05,344443x09,44333344x07,4434444344x06,43x46,34x05,43x48,340000343x46,3430003444344443444300x45,3333x45,01114434444344x17,3x46,3111100211x46,11200022211444411222002220x16,02220022000111100022002x012,20" + }, + Castle: ["same", ["characters", "Shell", "normal", "normal"]] + }, + ShellBeetle: { + normal: "p[0,2,5,9]x06,1111x010,x18,x07,1111331111x05,1111322311110000x15,33x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x35,x16,x35,000033311333x010,3333x06,", + Underworld: "p[0,15,16,18]x06,1111x010,x18,x07,1111221111x05,1111233211110000x15,22x15,0000x112,000x114,00x114,00x114,00x114,00x114,00x114,00x114,0x25,x16,x25,000022211222x010,2222x06,", + Castle: "p[0,1,3,4]x06,3333x010,x38,x07,3333223333x05,3333211233330000x35,22x35,0000x312,000x314,00x314,00x314,00x314,00x314,00x314,0x25,x36,x25,000022233222x010,2222x06," + }, + Spiny: { + normal: "p[0,1,6,8]x024,1x015,1x014,122x08,10000122000010001200122220012000122012222012200012223222312220001122x35,1222003322331123322301113331122233330033133x25,x36,133133222333111333321x35,111x05,222x16,2220002222x06,2222", + two: "p[0,1,6,8]x08,1x015,1x014,122x08,10000122000010001200122220012000122012222012200012223222312220001122x35,1222003322331123322301113331122233330033133x25,x36,133133222333111333321x35,111x05,222x16,22x06,222000222x08,22000220000" + }, + SpinyEgg: { + normal: "p[0,1,6,8]x06,22x09,22322322x06,2x36,2x05,x310,00022311x35,22002311x37,200331x39,022x310,2222x310,220x39,133002x37,11320022x35,11322000x310,x05,2x36,2x06,22322322x09,22x06,", + two: "p[0,1,6,8]0000220022x08,233332x05,22x38,2200233311x35,20003311x36,0022331x37,2222x310,220x312,00x312,022x310,2222x37,1332200x36,11330002x35,1133320022x38,22x05,233332x08,2200220000" + }, + Star: { + normal: "p[0,6,8]x06,11x012,11x011,1111x010,1111x09,x16,0000x119,2112x15,01111211211110001112112111x05,x18,x06,x18,x05,x110,0000x110,00001111001111000111x06,1110011x08,110", + two: "p[0,2,9]x06,22x012,22x011,2222x010,2222x09,x26,0000x219,1221x25,02222122122220002221221222x05,x28,x06,x28,x05,x210,0000x210,00002222002222000222x06,2220022x08,220", + three: "p[0,5,8]x06,22x012,22x011,2222x010,2222x09,x26,0000x219,1221x25,02222122122220002221221222x05,x28,x06,x28,x05,x210,0000x210,00002222002222000222x06,2220022x08,220", + four: "p[0,6,14]x06,11x012,11x011,1111x010,1111x09,x16,0000x119,2112x15,01111211211110001112112111x05,x18,x06,x18,x05,x110,0000x110,00001111001111000111x06,1110011x08,110" + }, + Vine: ["multiple", "vertical", { + top: "p[0,6,14]00222x010,x25,x08,2211122x07,x25,12x09,222022x012,22x012,22x012,22x012,22x012,220022x08,2202222x07,2221112x07,x26,12x06,220x25,", + middle: "p[0,6,14]x06,22x012,22x012,22x08,220022x07,2222022x07,2111222x06,21x26,x06,x25,022x012,22x012,22x012,22x012,220022x08,2202222x07,2221112x07,x26,12x06,220x25," + }] + }, + solids: { + Axe: { + normal: "p[0,2,4,6,9]003x010,3000323300420033130032333322333313032x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,130323333423333130002330042000313000300002200003x09,42x014,22x014,42x014,22x014,42x07,", + two: "p[0,2,4,9]003x010,3000323300320033130032333322333313032x36,2x35,1332x36,2x35,1332x36,2x35,1332x36,2x35,1332x36,2x35,13032x35,23333130002330032000313000300002200003x09,32x014,22x014,32x014,22x014,32x07,", + three: "p[0,2,4,9,11]004x010,4000424400320044140042444422444414042x45,32x45,1442x45,32x45,1442x45,32x45,1442x45,32x45,1442x45,32x45,140424444324444140002440032000414000400002200004x09,32x014,22x014,32x014,22x014,32x07," + }, + Block: { + normal: { + normal: "p[0,2,9]0x114,01x214,1121x210,1211x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,1121x210,1211x214,10x114,0", + unused: { + normal: "p[0,2,6,9]0x314,03x214,1321x210,12132222x35,x25,132223311133222213222331223312221322233122331222132222112333122213x26,3311122213x26,331x25,13x27,11x25,13x26,33x26,13x26,331x25,1321x25,112221213x214,x117,", + two: "p[0,2,9]0x214,0x215,1221x210,121x215,1x26,111x26,1x26,1222212221x26,1222212221x25,11222212221x29,1112221x29,1x25,1x28,11x25,1x215,1x29,1x25,1221x25,11222121x215,x117,", + three: "p[0,2,9,11]0x214,02x314,1231x310,13123333x25,x35,123332211122333312333221332213331233322133221333123333113222133312x36,2211133312x36,221x35,12x37,11x35,12x36,22x36,12x36,221x35,1231x35,113331312x314,x117," + } + }, + Underworld: { + normal: "p[0,9,16]0x214,02x114,2212x110,2122x114,22x114,22x114,22x114,22x114,22x114,22x114,22x114,22x114,22x114,2212x110,2122x114,20x214,0", + unused: { + normal: "p[0,6,9,16]0x214,02x114,3213x110,31321111x25,x15,321112233322111132111223112231113211122311223111321111331222311132x16,2233311132x16,223x15,32x17,33x15,32x16,22x16,32x16,223x15,3213x15,331113132x114,x317,", + two: "p[0,9,16]0x114,0x115,2112x110,212x115,2x16,222x16,2x16,2111121112x16,2111121112x15,22111121112x19,2221112x19,2x15,2x18,22x15,2x115,2x19,2x15,2112x15,22111212x115,x217,", + three: "p[0,9,11,16]0x114,01x214,3123x210,32312222x15,x25,312221133311222231222113221132223122211322113222312222332111322231x26,1133322231x26,113x25,31x27,33x25,31x26,11x26,31x26,113x25,3123x25,332223231x214,x317," + } + }, + Castle: ["same", ["solids", "Block", "Underworld"]] + }, + Brick: { + normal: { + normal: "p[2,5,9]x116,x27,0x27,0x27,0x27,x017,2220x27,0x27,0x27,0x27,0x27,02222x016,x27,0x27,0x27,0x27,0x27,0x27,x017,2220x27,0x27,0x27,0x27,0x27,02222x016,", + used: ["same", ["solids", "Block", "Overworld", "used"]] + }, + Underworld: { + normal: "p[2,16]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,", + used: ["same", ["solids", "Block", "Overworld", "used"]] + }, + Castle: ["filter", ["solids", "Brick", "Overworld"], filters.Castle], + Alt2: ["filter", ["solids", "Brick", "Overworld"], filters.Alt2] + }, + BridgeBase: "p[0,2,5,8]111000112221012222x35,222x35,222x35,222x35,22221012211100011", + Cannon: ["multiple", "vertical", { + top: "p[0,2,5,9]222x010,2222111x210,11222x110,x26,1x213,111x210,112x112,2112x112,2112x112,2112x15,22221112112111121111311211211121122113121121112121131312112111212113131211211121133113221122212x16,3122221102x16,302110002x18,3x06,2x18,3x05,2x110,300002x110,3000211x38,1130021333222233313021133x26,3313021133232232331132113233223323113211323322332311321132332233231132113x28,3113211333233233311321133322223331132111x38,11132x114,3", + middle: "p[2,5,9]1x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,21x014,2" + }], + CastleAxe: "p[0,2,4,6,8]003x010,3000323300420033130032333322333313032x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,1332x35,42x35,130323333423333130002330042000313000300002200003x09,42x014,22x014,42x014,22x014,42x07,", + CastleBlock: "p[0,4,9]0x114,01x214,1121x210,1211x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,11x214,1121x210,1211x214,10x114,0", + CastleBridge: "p[1,2,4,8]10001000100010001000100010001000122212223222322232223222322232223222322232223222322232221222122213331333133313331333133313331333", + CastleChain: "p[0,1,3]x014,1x013,1x014,22x011,12x013,22x011,12x012,102x012,22x011,12x012,102x012,22x011,12x013,22x011,12x012,102x012,22x013,", + CastleStone: { + normal: "p[1,2,3,4]0031x06,31000022310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,3102223331x37,13333x116,x06,31x06,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,31x37,1x37,x117,", + Underwater: "p[2,12,14,20]1103x16,03111122031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,0312220003x07,30000x316,x16,03x16,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,03x07,3x07,x317," + }, + Cloud: "p[0,1,2]000x210,x05,2x110,20002x112,2002x112,2002x112,202x114,22x15,2112x15,22x15,2112x15,22x15,2112x15,22x114,2212x110,2120211121111211120021111222211112002x112,2000211112211112x05,2222002222000", + Coral: "p[0,7,8]0000100012x05,110001000120000121001000112000120110100012000020001010011211112000101001x26,100021100120000221000221112x06,2x05,22120001x05,1000012001x06,1011012001000100101001120122010001100012120022000021001122000020000211112x011,22212x06,", + DeadGoomba: { + normal: "p[0,5,9,15]x06,2222x09,x210,000022333222233322022111133331111x218,000x110,x07,x18,x05,x35,0000x35,0", + Underworld: "p[0,15,16,18]x06,2222x09,x210,000022111222211122022333311113333x218,000x310,x07,x38,x05,x15,0000x15,0", + Castle: ["filter", ["solids", "DeadGoomba", "normal"], filters.Castle] + }, + Firework: { + normal: "p[0,6,8]x070,2002x010,20222202x09,221122x09,22111122x08,22111122x09,221122x09,20222202x010,2002x070,", + n2: "p[0,1,6,8]x020,3x06,3x09,303303x09,x38,x06,303232232303x05,3321221233x06,3221111223x05,3332111123330000333211112333x05,3221111223x06,3321221233x05,303232232303x06,x38,x09,303303x09,3x06,3x020,", + n3: "p[0,1,6,8]00030033330030000300x38,003000x35,22x35,00303323233232330300323x26,32300033321211212333033232x16,232x35,22x16,22x36,22x16,22x35,232x16,23233033321211212333000323x26,32300303323233232330300x35,22x35,000300x38,00300003003333003000" + }, + Flag: { + normal: "p[0,1,14]x116,0x18,x25,1100x16,22121221000x15,211211210000111121222121x05,11122212221x06,11x27,1x07,111222111x08,x18,x09,x17,x010,x16,x011,x15,x012,1111x013,111x014,11x015,1", + Alt: "p[0,5,16]x116,0x18,x25,1100x16,22121221000x15,211211210000111121222121x05,11122212221x06,11x27,1x07,111222111x08,x18,x09,x17,x010,x16,x011,x15,x012,1111x013,111x014,11x015,1", + Alt2: ["same", ["solids", "Flag", "Alt"]] + }, + FlagPole: { + normal: "p[13]x0288,", + Alt: "p[1]x0288,", + Alt2: ["same", ["solids", "FlagPole", "Alt"]] + }, + FlagTop: { + normal: "p[0,2,13,14]001111000123331012x35,112x35,11x36,11x36,10133331000111100", + Alt: "p[0,1,3,4]002222000213332021x35,221x35,22x36,22x36,20233332000222200", + Alt2: ["same", ["solids", "Flag", "Alt"]] + }, + Floor: { + normal: "p[2,5,9]2x18,02111121x28,01222201x28,01222201x28,01222201x28,01022201x28,02000021x28,0x15,01x28,01222201x28,01222201x28,012222000x26,01x25,01100222201x25,0121100001x26,0122211101x26,01x26,01x25,002x06,21x06,2", + Underworld: "p[2,16,18]1x28,01222212x18,02111102x18,02111102x18,02111102x18,02011102x18,01000012x18,0x25,02x18,02111102x18,02111102x18,021111000x16,02x15,02200111102x15,0212200002x16,0211122202x16,02x16,02x15,001x06,12x06,1", + Underwater: "p[2,12,14]22x112,0221111x29,0011122111222211100122x15,2212221202112222011x25,0211222201x26,021x26,0x25,0221x26,0022201201x26,0000101011112222000100101222122220012011x25,02200122011x25,0200012001x25,001111220012220000122220022x06,2x07,2", + Castle: ["same", ["solids", "Stone", "Castle"]], + Alt2: ["filter", ["solids", "Floor", "Overworld"], filters.Alt2] + }, + Peach: "p[0,1,2,6,8]x019,303303x010,x36,x09,x48,x07,x410,x07,4443234444x07,433233434x06,x37,434x07,x38,44x05,3444x35,44x05,34433334444x06,x36,4444x06,4413341444x05,44133111144x05,431111331440000x39,144x05,x37,1444x07,44111144x07,x110,x05,x112,0000x112,0001111x46,111100x414,00x45,1111x45,0", + Pipe: { + normal: ["multiple", "vertical", { + top: "p[0,2,13,14]x133,x230,11x35,x26,x319,1122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,232322x133,00x128,00", + middle: "p[0,2,13,14]00122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,2322100" + }], + Castle: { + normal: ["multiple", "vertical", { + top: "p[0,1,3,4]x333,x130,33x25,x16,x219,3311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,1212113311122x16,211x211,121113311122x16,211x210,121211x333,00x328,00", + middle: "p[0,1,3,4]00311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,121130000311122x15,211x28,1211130000311122x15,211x29,1211300" + }], + Underwater: ["multiple", "vertical", { + top: "p[0,5,9,17]x133,x230,11x35,x26,x319,1122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,2323221122233x26,322x311,232221122233x26,322x310,232322x133,00x128,00", + middle: "p[5,9,17,20]33011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,121103333011122x15,211x28,1211103333011122x15,211x29,1211033" + }] + }, + Alt: ["same", ["solids", "Pipe", "Castle"]], + Alt2: ["same", ["solids", "Pipe", "Castle"]] + }, + PipeSide: { + normal: "p[0,2,13,14]x115,x024,1x213,x122,0001x213,11x220,1001x213,11x220,1001x213,11x220,1001x313,11x221,101x313,11x321,101x213,11x321,101x213,11x221,101x213,11x221,101x213,11x222,11x213,11x222,11x313,11x222,11x213,11x322,11x213,11x222,11x213,11x222,11x213,11x322,11x313,11x322,11x313,11x322,11x313,11x322,11x313,11x322,11x313,11x322,11x313,11x321,101x313,11x321,101x313,11x321,101x313,11323232323232323232323101323232323232311232323232323232323232101232323232323211323232323232323232321001323232323232311x220,1001x213,11x220,1001x213,x122,000x115,x024,", + small: "p[0,2,13,14]x115,01x213,111x213,111x213,111x213,111x313,111x313,111x213,111x213,111x213,111x213,111x213,111x313,111x213,111x213,111x213,111x213,111x313,111x313,111x313,111x313,111x313,111x313,111x313,111x313,111x313,111323232323232311123232323232321113232323232323111x213,111x213,x117,0" + }, + PipeVertical: { + normal: "p[0,2,13,14]012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210012232x310,223x25,332222100122232x39,223x25,33222210", + Castle: { + normal: "p[0,1,3,4]00211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,131120000211133x15,311x38,1311120000211133x15,311x39,1311200", + Underwater: "p[0,7,8,17]00122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,232210000122233x25,322x38,2322210000122233x25,322x39,2322100" + } + }, + Platform: { + normal: "p[0,1,6,9]x18,x38,220000222x05,322x05,32223333x210,x38,", + Sky: "p[0,1,6]001111000x15,2012x15,212x15,212211112112211220111122000222200" + }, + Scale: { + normal: ["multiple", "horizontal", { + left: "p[0,2,5,9]000x27,00x28,0222333000022x35,00223331333022331113302233313330220x35,00220033300022x08,", + middle: "p[0,5]x120,x080,", + right: "p[0,2,5,9]x27,000x28,x05,333222000x35,22003331333220331113322033313332200x35,0220003330022x08,22" + }], + Alt: ["multiple", "horizontal", { + left: "p[0,1,2,9]000x17,00x18,0111333000011x35,00113332333011332223301133323330110x35,00110033300011x08,", + middle: "p[0,1]x120,x080,", + right: "p[0,1,2,9]x17,000x18,x05,333111000x35,11003332333110332223311033323331100x35,0110003330011x08,11" + }] + }, + Springboard: { + normal: ["multiple", "vertical", { + top: "p[8]x032,", + topheight: 2, + middle: "p[0,1,6]x05,110011x010,210012x010,200002x010,200002x09,2x06,2x08,2x06,2x08,2x06,2x07,2x08,2x05,12x08,21000011x08,11000011x08,11000012x08,21x05,2x08,2x07,2x06,2x08,2x06,2x08,2x06,2x09,200002x010,200002x010,210012x010,110011x05,", + bottom: "p[2,8,9]x132,x27,0x27,0x27,0x27,x017,2220x27,0x27,0x27,0x27,0x27,02222x016,", + bottomheight: 9 + }], + alt: ["multiple", "vertical", { + top: "p[8]x032,", + topheight: 2, + middle: "p[0,1,6]x05,110011x010,210012x010,200002x010,200002x09,2x06,2x08,2x06,2x08,2x06,2x07,2x08,2x05,12x08,21000011x08,11000011x08,11000012x08,21x05,2x08,2x07,2x06,2x08,2x06,2x08,2x06,2x09,200002x010,200002x010,210012x010,110011x05,", + bottom: "p[3,4,8]x232,x07,1x07,1x07,1x07,x117,0001x07,1x07,1x07,1x07,1x07,10000x116,", + bottomheight: 9 + }] + }, + Stone: { + normal: "p[2,5,9]2x114,012x112,00112x110,0001112x18,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,00001111x28,0000111x09,200011x011,2001x013,2x016,2", + Underwater: ["same", ["solids", "Floor", "Underwater"]], + Underworld: ["filter", ["solids", "Stone", "Overworld"], filters.Underworld], + Castle: { + normal: "p[1,2,3,4]0031x06,31000022310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,3102223331x37,13333x116,x06,31x06,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,310x25,31x37,1x37,x117,", + Underwater: "p[2,3,14,20]1103x16,03111122031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,0312220003x07,30000x316,x16,03x16,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,031x25,03x07,3x07,x317," + }, + Sky: "p[0,1,2]000x210,x05,2x110,20002x112,2002x112,2002x112,202x114,22x15,2112x15,22x15,2112x15,22x15,2112x15,22x114,2212x110,2120211121111211120021111222211112002x112,2000211112211112x05,2222002222000" + }, + Toad: "p[0,1,2,6,8]x06,1111x010,x18,x06,144411114441000114441441444110011441444414411044111144441111x45,1114444111x46,1111441111x46,x110,x45,1133233233114401143323323341100300x38,00303330333223330x37,443333443333003x410,300004444333344440000444x36,4440000444x36,444x05,x110,x05,x112,000444x18,444041444x16,4441x47,1111x412,1111x46,", + ShroomTop: ["multiple", "horizontal", { + left: "p[0,2,6,8]000x113,001x36,x27,01x37,x27,01x37,x27,1x38,x27,1x37,x28,1x37,222333221x36,222x35,21x35,222x37,1x28,x37,1x28,x37,1x29,x35,21x210,333221x215,011x213,000x113,", + middle: "p[2,6,8]x016,1x28,x18,x28,x19,x26,x132,x25,x110,x27,x19,x27,x18,x29,x17,x29,x17,x29,x17,x29,x18,x27,x19,x27,x110,x25,111x016,", + right: "p[0,2,6,8]x113,000x38,x25,100x38,x26,10x38,x26,10x38,222333212x36,222x35,1223333222x36,1x29,x36,1x29,x36,1x210,x35,1x211,33321x215,1x215,1x215,1x214,x117,0" + }], + TreeTop: { + normal: ["multiple", "horizontal", { + left: "p[0,2,13]00x114,011x213,01x214,11x214,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x26,1x27,1012222101x25,10001111000x15,00", + middle: "p[2,8,13]x016,x2199,0x27,00x25,010x25,011x05,111x05,11", + right: "p[0,2,13]x114,00x213,110x214,10x214,11x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,1x215,11x27,1x26,101x25,10122221000x15,000111100" + }], + Alt: ["multiple", "horizontal", { + left: "p[0,1,4]00x214,022x113,02x114,22x114,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x16,2x17,2021111202x15,20002222000x25,00", + middle: "p[1,3,4]x216,x0199,2x07,22x05,212x05,211x25,111x25,11", + right: "p[0,1,4]x213,000x113,200x114,20x114,20x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,2x115,22x17,2x16,202x15,20211112000x25,000222200" + }], + Alt2: ["same", ["solids", "TreeTop", "Alt"]] + }, + WaterBlock: "20" + }, + scenery: { + BrickHalf: { + normal: "p[2,9]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,", + Alt2: ["filter", ["scenery", "BrickHalf", "normal"], filters.Alt2] + }, + BrickPlain: { + normal: "p[2,9]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x17,0x17,0", + Alt2: ["filter", ["scenery", "BrickPlain", "normal"], filters.Alt2] + }, + BridgeBase: "p[0,2,5,9]111000112221012222x35,222x35,222x35,222x35,22221012211100011", + Bush1: "p[0,2,13,14]x014,1111x027,122221x024,11x26,1x022,1x28,101x020,1x29,121x019,1x26,3x25,1x017,122233222322221x016,12223x210,1x013,111x216,1001x08,1x219,10121x06,1x221,1221x06,x225,1010011x226,1211x230,11x230,101x228,10", + Bush2: "p[0,2,13,14]x014,1111x012,1111x027,122221x010,122221x024,11x26,1x07,11x26,1x022,1x28,10100001x28,101x020,1x29,1210001x29,121x019,1x26,3x25,1001x26,3x25,1x017,1222332223222210122233222322221x016,12223x210,112223x210,1x013,111x232,1001x08,1x235,10121x06,1x237,1221x06,x241,1010011x242,1211x246,11x246,101x244,10", + Bush3: "p[0,2,13,14]x014,1111x012,1111x012,1111x027,122221x010,122221x010,122221x024,11x26,1x07,11x26,1x07,11x26,1x022,1x28,10100001x28,10100001x28,101x020,1x29,1210001x29,1210001x29,121x019,1x26,3x25,1001x26,3x25,1001x26,3x25,1x017,12223322232222101222332223222210122233222322221x016,12223x210,112223x210,112223x210,1x013,111x248,1001x08,1x251,10121x06,1x253,1221x06,x257,1010011x258,1211x262,11x262,101x260,10", + CastleBridge: "p[1,2,4,9]10001000100010001000100010001000122212223222322232223222322232223222322232223222322232221222122213331333133313331333133313331333", + CastleChain: "p[0,1,3]x014,1x013,1x014,22x011,12x013,22x011,12x012,102x012,22x011,12x012,102x012,22x011,12x013,22x011,12x012,102x012,22x013,", + CastleDoor: { + normal: "p[2,9]x17,0x17,0x17,0x17,0x17,0x17,x017,1110x17,0x17,0x17,0x17,0x17,01111x016,x15,x06,11110111x010,11011x012,1x017,1x014,11x014,1x0416,", + Alt2: ["filter", ["scenery", "CastleDoor", "normal"], filters.Alt2] + }, + CastleRailing: { + normal: "p[0,2,5,9]2222x07,x25,3332x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,23333111x29,1111", + Alt2: ["filter", ["scenery", "CastleRailing", "normal"], filters.Alt2] + }, + CastleRailingFilled: { + normal: "p[2,5,9]11112220222x15,222122202221x27,122202221x27,1x07,1x27,1x27,1x27,1x27,1x27,1x27,12222000x19,0000", + Alt2: ["filter", ["scenery", "CastleRailingFilled", "normal"], filters.Alt2] + }, + CastleTop: { + normal: "p[2,9]x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,x025,1110x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,01111x024,x17,x09,x17,0x17,x09,x17,0x17,x09,x17,x025,11101111x08,1110x17,01111x08,1110x17,01111x08,11101111x024,x17,x09,x17,0x17,x09,x17,0x17,x09,x17,x025,11101111x08,1110x17,01111x08,1110x17,01111x08,11101111x024,", + Alt2: ["filter", ["scenery", "CastleTop", "normal"], filters.Alt2] + }, + CastleWall: { + normal: "p[0,2,5,9]2222x07,x25,3332x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,2x37,2x07,23333111x29,1111x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,x37,1x37,1x37,1x37,1x37,1x37,x117,3331x37,1x37,1x37,1x37,1x37,13333x116,", + Alt2: ["filter", ["scenery", "CastleRailingFilled", "normal"], filters.Alt2] + }, + Cloud1: { + normal: "p[0,1,2,19]x014,2222x027,211112x024,22x16,2x022,2x18,202x020,2x19,212x019,2x16,3x15,2x017,211133111311112x016,21113x110,2x013,222x116,2002x08,2x119,20212x06,2x121,2112x06,x125,2020022x126,2122x130,22x130,202x128,20002113x111,3x111,2x05,2113113x16,3x113,2x05,2113333111333311113x18,200002x15,x36,1x35,x19,x06,2221111331111333x18,22x09,2x16,2x18,21122x012,221112022111122022x016,22200002222x010,", + Alt2: ["filter", ["scenery", "Cloud1", "normal"], filters.Alt2] + }, + Cloud2: { + normal: "p[0,1,2,19]x014,2222x012,2222x027,211112x010,211112x024,22x16,2x07,22x16,2x022,2x18,20200002x18,202x020,2x19,2120002x19,212x019,2x16,3x15,2002x16,3x15,2x017,2111331113111120211133111311112x016,21113x110,221113x110,2x013,222x132,2002x08,2x135,20212x06,2x137,2112x06,x141,2020022x142,2122x146,22x146,202x144,20002113x111,3x115,3x111,2x05,2113113x16,3x18,3x16,3x113,2x05,21133331113333111131333111333311113x18,200002x15,x36,1x35,1111x36,1x35,x19,x06,2221111331111333x17,331111333x18,22x09,2x16,2x18,2x16,2x18,21122x012,2211120221111220221112022111122022x016,22200002222x05,22200002222x010,", + Alt2: ["filter", ["scenery", "Cloud2", "normal"], filters.Alt2] + }, + Cloud3: { + normal: "p[0,1,2,19]x014,2222x012,2222x012,2222x027,211112x010,211112x010,211112x024,22x16,2x07,22x16,2x07,22x16,2x022,2x18,20200002x18,20200002x18,202x020,2x19,2120002x19,2120002x19,212x019,2x16,3x15,2002x16,3x15,2002x16,3x15,2x017,21113311131111202111331113111120211133111311112x016,21113x110,221113x110,221113x110,2x013,222x148,2002x08,2x151,20212x06,2x153,2112x06,x157,2020022x158,2122x162,22x162,202x160,20002113x111,3x115,3x115,3x111,2x05,2113113x16,3x18,3x16,3x18,3x16,3x113,2x05,211333311133331111313331113333111131333111333311113x18,200002x15,x36,1x35,1111x36,1x35,1111x36,1x35,x19,x06,2221111331111333x17,331111333x17,331111333x18,22x09,2x16,2x18,2x16,2x18,2x16,2x18,21122x012,22111202211112202211120221111220221112022111122022x016,22200002222x05,22200002222x05,22200002222x010,", + Alt2: ["filter", ["scenery", "Cloud3", "normal"], filters.Alt2] + }, + Fence: "p[0,2,5,9]000023222331x08,2322333100003322232233312222333323223331333311112322333x15,000023223331x08,23223331x08,23232331x08,23232331x08,2323233100003322232323312222333323232331333311112322233x15,000023222331x08,23222331x08,232223310000", + HillLarge: "p[0,2,14]x037,x16,x071,111x26,111x066,11x212,11x063,1x213,1221x061,1x213,111221x059,1x214,1112221x057,1x215,11122221x055,1x213,112111x25,1x053,1x214,11221x27,1x051,1x215,11x211,1x049,1x216,11x212,1x047,1x232,1x045,1x234,1x043,1x236,1x041,1x238,1x039,1x240,1x037,1x242,1x035,1x244,1x033,1x246,1x031,1x213,1x223,1x210,1x029,1x213,111x221,111x210,1x027,1x214,111x221,111x211,1x025,1x215,111x221,111x212,1x023,1x213,112111x218,112111x213,1x021,1x214,11221x219,11221x215,1x019,1x215,11x222,11x219,1x017,1x216,11x222,11x220,1x015,1x264,1x013,1x266,1x011,1x268,1x09,1x270,1x07,1x272,1x05,1x274,10001x276,101x278,1", + HillSmall: "p[0,2,14]x021,x16,x039,111x26,111x034,11x212,11x031,1x213,1221x029,1x213,111221x027,1x214,1112221x025,1x215,11122221x023,1x213,112111x25,1x021,1x214,11221x27,1x019,1x215,11x211,1x017,1x216,11x212,1x015,1x232,1x013,1x234,1x011,1x236,1x09,1x238,1x07,1x240,1x05,1x242,10001x244,101x246,1", + Pirhana: ["same", ["characters", "Pirhana"]], + pirhana: ["same", ["characters", "Pirhana"]], + PlantLarge: { + normal: "p[0,2,5,13]x06,1111x010,11333311x07,1x38,1x05,1x310,10001x312,1001x312,101x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,11x314,101x312,1001x312,1001x312,10001x310,1000011x38,11x05,1113333111x07,x18,x09,x17,x08,1x26,1x08,12222121x08,12222121x08,12222121x08,12222121x08,11222211x09,121121x09,12122121x08,1x26,1x08,12222121x08,12222121x08,12222121x08,12222121x08,11222211x09,121121x09,121221210000", + Alt: "p[0,1,2,3,5]x06,3333x010,33111133x07,3x18,3x05,3x110,30003x112,3003x112,303x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,33x114,303x112,3003x112,3003x112,30003x110,3000033x18,33x05,3331111333x07,x38,x09,x37,x08,2x46,2x08,24444242x08,24444242x08,24444242x08,24444242x08,22444422x09,242242x09,24244242x08,2x46,2x08,24444242x08,24444242x08,24444242x08,24444242x08,22444422x09,242242x09,242442420000", + Alt2: ["same", ["solids", "PlantLarge", "Alt"]] + }, + PlantSmall: { + normal: "p[0,2,5,13]x05,1111x08,11333311x05,1x38,10001x310,101x312,11x312,11x312,11x312,11x312,101x310,10011x38,110001113333111x05,x18,x07,x17,x06,1x26,1x06,12222121x06,12222121x06,12222121x06,12222121x06,11222211x07,121121x07,12122121x06,1x26,1x06,12222121x06,12222121x06,12222121x06,12222121x06,11222211x07,121121x07,12122121000", + Alt: "p[0,1,2,3,5]x05,3333x08,33111133x05,3x18,30003x110,303x112,33x112,33x112,33x112,33x112,303x110,30033x18,330003331111333x05,x38,x07,x37,x06,2x46,2x06,24444242x06,24444242x06,24444242x06,24444242x06,22444422x07,242242x07,24244242x06,2x46,2x06,24444242x06,24444242x06,24444242x06,24444242x06,22444422x07,242242x07,24244242000", + Alt2: ["same", ["solids", "PlantSmall", "Alt"]] + }, + Railing: { + normal: "p[0,2,13]2x06,221x05,12010001220100012200111022x06,22x06,22x06,2", + Night: "p[0,1,3]1x06,112x05,21020002110200021100222011x06,11x06,11x06,1" + }, + ShroomTrunk: ["multiple", "vertical", { + top: "p[2,5,9]0x114,00x114,00x114,00x114,00x114,00111121111211110021121211212112001221112211122100x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,0", + middle: "p[2,5]0x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,00x114,0" + }], + String: "x056,", + TreeTrunk: { + normal: "p[2,9]x120,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x140,0x17,0x17,0x17,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x120,", + Underworld: ["filter", ["scenery", "TreeTrunk", "normal"], filters.Underworld], + Alt2: ["filter", ["scenery", "TreeTrunk", "normal"], filters.Alt2] + }, + Water: { + normal: "p[0,1,17]x028,1x06,121000012210011222100x26,1121x26,1212222122122112", + Underwater: "p[1,17,20]x212,0x26,010222201102200111022x16,0010x16,010111101101100x19,", + Night: "p[2,1,19]x028,1x06,121000012210011222100x26,1121x26,1212222122122112", + Castle: { + normal: "p[0,1,8]x028,1x06,121000012210011222100x26,1121x26,1212222122122112", + Underwater: "p[1,17,20]x212,0x26,010222201102200111022x16,0010x16,010111101101100x19," + } + }, + WaterFill: { + normal: { + normal: "p[17]x088,", + Night: "p[19]x088," + }, + Castle: "p[8]x088," + } + } + }, + cache: {}, + posts: [] + }, library.filters = filters, delete window.filters, library.sprites = libraryParse(library.rawsprites), libraryPosts() +} + +function libraryParse(e) { + var t, n, x = {}; + for (n in e) switch ((t = e[n]).constructor) { + case String: + x[n] = spriteGetArray(spriteExpand(spriteUnravel(t))); + break; + case Array: + library.posts.push({ + caller: x, + name: n, + command: e[n] + }); + break; + case Object: + x[n] = libraryParse(t) + } + return x +} + +function libraryPosts() { + var e, t, n, x, r, i = library.posts; + for (r in i) t = (e = i[r]).caller, n = e.name, x = e.command, t[n] = evaluatePost(t, x, r) +} + +function evaluatePost(e, t, n) { + switch (t[0]) { + case "same": + return followPath(library.sprites, t[1], 0); + case "filter": + return applyLibraryFilter(followPath(library.rawsprites, t[1], 0), t[2], n); + case "multiple": + return evaluatePostMultiple(t) + } +} + +function applyLibraryFilter(e, t) { + switch (t[0]) { + case "palette": + return e.constructor == String ? spriteGetArray(spriteExpand(applyPaletteFilter(spriteUnravel(e), t[1]))) : applyPaletteFilterRecursive(e, t[1]) + } +} + +function applyPaletteFilterRecursive(e, t) { + var n, x, r = {}; + for (x in e) switch ((n = e[x]).constructor) { + case String: + r[x] = spriteGetArray(spriteExpand(applyPaletteFilter(spriteUnravel(n), t))); + break; + case Object: + r[x] = applyPaletteFilterRecursive(n, t) + } + return r +} + +function applyPaletteFilter(e, t) { + var n, x, r, i = ""; + for (x = 0, r = e.length; x < r; x += digitsize) i += t[n = e.substr(x, digitsize)] || n; + return i +} + +function evaluatePostMultiple(e) { + var t, n, x = e[1], + r = e[2], + i = new SpriteMultiple(x); + for (n in r) t = r[n], i[n] = "string" == typeof t ? spriteGetArray(spriteExpand(spriteUnravel(t))) : t; + return i +} + +function SpriteMultiple(e) { + this.type = e, this.multiple = !0 +} + +function getDigitSize(e) { + return Number(String(e.length).length) +} + +function startLoadingMaps() { + "file:" != window.location.protocol && passivelyLoadMap([1, 2], new XMLHttpRequest) +} + +function passivelyLoadMap(e, t) { + if (!(!e || e[0] > 8 || e[1] <= 0)) { + var n = "Maps/World" + e[0] + e[1] + ".js"; + t.open("GET", n, !0), mlog("Maps", "Requesting:", n), t.send(), t.onreadystatechange = function() { + if (4 == t.readyState) { + if (200 == t.status) mapfuncs[e[0]][e[1]] = Function(t.responseText), window.parentwindow && parentwindow.onMapLoad && (parentwindow.onMapLoad(e[0], e[1]), setTimeout((function() { + parentwindow.onMapLoad(e[0], e[1]) + }), 2100)), mlog("Maps", " Loaded: Maps/World" + e[0] + e[1] + ".js"); + else if (404 != t.status) return; + setTimeout((function() { + passivelyLoadMap(setNextLevelArr(e), t) + }), 7) + } + } + } +} + +function setNextLevelArr(e) { + return 4 == e[1]++ && (++e[0], e[1] = 1), e +} + +function resetMaps() { + var e; + window.currentmap = [1, 1], window.defaultsetting = { + setting: "Overworld" + }, window.mapfuncs = new Array(9); + for (var t, n = 1; n <= 9; ++n) + for (t = (e = mapfuncs[n] = [0, 0, 0, 0, 0]).length; t >= 0; --t) e[t] = window["World" + n + t]; + mapfuncs.Random = { + Overworld: WorldRandomOverworld, + Underworld: WorldRandomUnderworld, + Underwater: WorldRandomUnderwater, + Bridge: WorldRandomBridge, + Sky: WorldRandomSky, + Castle: WorldRandomCastle + }, mapfuncs.Special = { + Blank: BlankMap + }, startLoadingMaps() +} + +function Map() { + this.underwater = this.current_character = this.current_solid = this.current_scenery = this.xloc = 0, this.canscroll = !0, this.floor = 104, this.time = 400, this.curloc = -1, this.gravity = gravity, this.maxyvel = 1.75 * unitsize, this.maxyvelinv = -2.1 * this.maxyvel +} + +function Area(e, t) { + this.creation = t || function() {}, this.precharacters = [], this.presolids = [], this.prescenery = [], this.floor = 140, this.width = 0, this.underwater = !1, setAreaSetting(this, e || "") +} + +function setAreaSetting(e, t, n) { + map.shifting = !0, 1 == arguments.length && (t = arguments[0] || "Overworld", e = map.area), e.setting = e.background = t, e.theme = t.split(" ")[0], e.fillStyle = getAreaFillStyle(e.setting), -1 != e.fillStyle.indexOf("Underwater") ? goUnderWater() : goOntoLand(), n && AudioPlayer.playTheme(), gameon && clearAllSprites(), map.shifting = !1 +} + +function Location(e, t, n) { + this.area = e, this.xloc = n || 0, this.yloc = this.floor = 0, this.entry = 1 == t ? entryPlain : t || entryNormal +} + +function PreThing(e, t, n) { + this.xloc = e, this.yloc = t, this.type = n; + var x = arrayMake(arguments), + r = new Thing; + x[2] = n, x = x.splice(2), Thing.apply(r, x), this.object = r +} + +function setMap(e, t) { + if (gameon) { + !window.canedit && window.editing && editorClose(!0), removeRandomDisplays(), e instanceof Array && (t = e[1], e = e[0]); + var n = e ? [e, t] : window.currentmap, + x = new Map, + r = mapfuncs[n[0]]; + r ? (n.func = r = r[n[1]], r ? (window.map = x, window.currentmap = n, r(x), x.areanum = x.curloc = 0, window.area = x.area = x.areas[0], window.player && player.power && storePlayerStats(), window.data && (data.scoreold = data.score.amount), shiftToLocation(0)) : log("No such map exists (yet?):", r)) : log("No such map section exists (yet?):", r) + } +} + +function setMapRandom(e) { + gameon && (resetSeed(), "string" == typeof e ? e = ["Random", e] : e || (e = ["Random", "Overworld"]), setMap(e[0], e[1]), data.traveledold = data.traveled, map.sincechange = map.num_random_sections = 0, map.entrancetype = e[2], map.random = !0, "Sky" == map.randname && (map.exitloc = ["Random", "Overworld", "Down"])) +} + +function shiftToLocation(e) { + if (map.random && "number" != typeof e) return setMapRandom(e); + "number" == typeof e && (e = map.locs[e]), pause(), resetGameState(), resetGameScreenPosition(), resetQuadrants(), map.areanum = e.area, window.area = map.area = map.areas[map.areanum], setAreaPreCreation(area), area.creation(), setAreaPostCreation(area), spawnMap(), player = placePlayer(), scrollPlayer(e.xloc * unitsize), locMovePreparations(player), unpause(), e.entry(player, e.entrything), TimeHandler.addEvent(AudioPlayer.playTheme, 2), TimeHandler.addEventInterval(checkTexts, 117, 1 / 0) +} + +function setAreaPreCreation(e) { + window.events = [], TimeHandler.clearAllEvents(), window.characters = [], window.solids = [], window.scenery = [], clearTexts(), e.precharacters = [], e.presolids = [], e.prescenery = [], map.current_solid = map.current_character = map.current_scenery = map.shifting = 0, map.canscroll = !0, data.time.amount = map.time, data.world.amount = currentmap[0] + "-" + currentmap[1], setDataDisplay(), startDataTime(), map.random && (data.world.amount = "Random Map", data.world.element.innerHTML = "WORLD
Random Map") +} + +function clearTexts() { + if (window.texts) + for (var e = texts.length - 1; e >= 0; --e) texts[e] && removeChildSafe(texts[e], body); + window.texts = [] +} + +function setAreaPostCreation() { + if (map.current_character = map.current_solid = map.current_scenery = 0, area.width = max(area.width, gamescreen.width), map.underwater = map.area.underwater, map.jumpmod = 1.056 + 3.5 * map.underwater, map.has_lakitu = !1, TimeHandler.addEvent(setMapGravity, 1), area.underwater && (area.presolids.push(new PreThing(0, 0, WaterBlock, area.width)), map.random || area.presolids.push(new PreThing(0, 16, Sprite, "Water", [area.width / 3, 1]))), area.presolids.sort(prethingsorter), area.precharacters.sort(prethingsorter), area.prescenery.sort(prethingsorter), area.sections && area.sections[0]) setBStretch(), area.sections.current = 0, area.sections[0](area.sections.start); + else if (!map.random && "Sky" != area.setting) { + var e = new PreThing(area.width, 0, ScrollBlocker); + area.presolids.push(e) + } + area.fillStyle = getAreaFillStyle(area.setting) +} + +function getAreaFillStyle(e) { + return stringHas(e, "Underworld") || stringHas(e, "Castle") || stringHas(e, "Night") ? stringHas(e, "Underwater") ? "#2038ec" : "black" : stringHas(e, "Underwater") ? "#2038ec" : "#5c94fc" +} + +function prethingsorter(e, t) { + return e.xloc == t.xloc ? t.yloc - e.yloc : e.xloc - t.xloc +} + +function setLocationGeneration(e) { + map.curloc = e, map.refx = map.locs[map.curloc].xloc, map.refy = map.locs[map.curloc].yloc + map.floor, map.areanum = map.locs[map.curloc].area +} + +function spawnMap() { + var e, t, n, x, r, i = map.area, + a = QuadsKeeper.getOutDifference(), + o = gamescreen.right + a, + l = o + (2 * QuadsKeeper.getQuadWidth() + a); + for (t = (e = i.precharacters).length, r = map.current_character; t > r && o >= (n = e[r]).xloc * unitsize;) addThing(x = n.object, n.xloc * unitsize - gamescreen.left, n.yloc * unitsize), x.placenum = r, ++r; + for (map.current_character = r, t = (e = i.presolids).length, r = map.current_solid; t > r && l >= (n = e[r]).xloc * unitsize;) addThing(x = n.object, n.xloc * unitsize - gamescreen.left, n.yloc * unitsize), x.placenum = r, ++r; + for (map.current_solid = r, t = (e = i.prescenery).length, r = map.current_scenery; t > r && l >= (n = e[r]).xloc * unitsize;) addThing(x = n.object, n.xloc * unitsize - gamescreen.left, n.yloc * unitsize), x.placenum = r, ++r; + map.current_scenery = r +} + +function goToTransport(e) { + e instanceof Array ? (map.ending = !0, storePlayerStats(), pause(), map.random ? setMapRandom(e) : setMap(e)) : shiftToLocation(map.locs[e]), is_mobile && applyNewJs() +} + +function entryPlain(e) { + setLeft(e, unitsizet16), setBottom(e, map.floor * unitsize), e.nocollide = e.piping = !1, e.placed = !0 +} + +function entryNormal(e) { + setLeft(e, unitsizet16), setTop(e, unitsizet16), e.nocollide = e.piping = !1, e.placed = !0 +} + +function entryBlank(e) { + setLeft(e, unitsizet16), setBottom(e, map.floor * unitsize), e.nocollide = e.piping = e.movement = !1, e.placed = e.nofall = e.nocollide = notime = nokeys = !0, thingStoreVelocity(e), clearDataDisplay() +} + +function entryRandom(e) { + switch (data.time.amount = 0, data.time.dir = 1, updateDataElement(data.time), map.startwidth ? map.nofloor || pushPreFloor(0, 0, map.startwidth) : map.startwidth = 0, map.firstRandomThings(map), map.randtype(8 * (map.startwidth + 1)), entryPlain(e), addDistanceCounter(), addSeedDisplay(), map.entrancetype) { + case "Down": + entryNormal(player); + break; + case "Up": + locMovePreparations(player), exitPipeVert(player, addThing(new Thing(Pipe, 32), unitsizet8, (map.floor - 32) * unitsize)); + break; + case "Vine": + locMovePreparations(player), TimeHandler.addEvent((function() { + enterCloudWorld(player, !0) + }), 1), player.nofall = !0, spawnMap(); + break; + case "Castle": + startCastle(player) + } +} + +function enterCloudWorld(e) { + map.random && (map.exitloc = getAfterSkyTransport()); + var t = 140 * unitsize, + n = 72 * unitsize; + e.placed = e.nofall = !0, setTop(e, t), setLeft(e, 30 * unitsize), removeClass(e, "jumping"), addClasses(e, ["climbing", "animated"]), e.climbing = TimeHandler.addSpriteCycle(e, ["one", "two"], "climbing"), e.attached = new Thing(Vine, -1), addThing(e.attached, unitsizet32, t - unitsizet8); + var x = setInterval((function() { + if (e.attached.top <= n) { + clearInterval(x), setTop(e.attached, n, !0), e.attached.movement = !1; + var t = e.attached.top + unitsizet16; + x = setInterval((function() { + shiftVert(e, -1 * unitsized4, !0), e.top <= t && (removeClass(e, "animated"), clearInterval(x), setTop(e, t, !0), clearInterval(x), setTimeout((function() { + setLeft(e, 36 * unitsize, !0), addClass(e, "flipped"), setTimeout((function() { + playerHopsOff(e, e.attached, !0), TimeHandler.clearClassCycle(e, "climbing"), e.running = TimeHandler.addSpriteCycle(e, ["one", "two", "three", "two"], "running", setPlayerRunningCycler) + }), 28 * timer) + }), 14 * timer)) + }), timer) + } + }), timer) +} + +function walkToPipe() { + player = placePlayer(), startWalking(player), map.canscroll = !1; + var e = setInterval((function() { + player.piping && (AudioPlayer.pauseTheme(), clearInterval(e), player.maxspeed = player.maxspeedsave) + }), timer); + unpause() +} + +function startWalking(e) { + e.movement = movePlayer, e.maxspeed = e.walkspeed, nokeys = notime = e.keys.run = !0, e.nofall = e.nocollide = !1 +} + +function intoPipeVert(e, t, n) { + if (!(!t.transport || !e.resting || e.right + unitsizet2 > t.right || e.left - unitsizet2 < t.left)) { + pipePreparations(e), switchContainers(e, characters, scenery), unpause(); + var x = setInterval((function() { + shiftVert(e, unitsized4, !0), e.top >= t.top && (clearInterval(x), setTimeout((function() { + goToTransport(n) + }), 700)) + }), timer) + } +} + +function intoPipeHoriz(e, t, n) { + pipePreparations(e), switchContainers(e, characters, scenery), unpause(); + var x = setInterval((function() { + shiftHoriz(e, unitsized4, !0), e.left >= t.left && (clearInterval(x), setTimeout((function() { + goToTransport(n) + }), 700)) + }), timer) +} + +function pipePreparations(e) { + AudioPlayer.pauseTheme(), AudioPlayer.play("Pipe"), locMovePreparations(e), e.nofall = e.nocollide = nokeys = notime = !0, e.movement = e.xvel = e.yvel = 0 +} + +function locMovePreparations(e) { + e.keys = new Keys, e.nocollide = e.piping = 1, e.placed = !1, removeCrouch(), removeClass(e, "running"), removeClass(e, "jumping"), removeClass(e, "flipped") +} + +function startCastle(e) { + (e = e || window.player) && (setBottom(e, 56 * unitsize), setLeft(e, unitsizet2), e.nocollide = e.piping = !1, e.placed = !0) +} + +function exitPipeVert(e, t) { + switchContainers(e, characters, scenery), e.nofall = nokeys = notime = !0, AudioPlayer.play("Pipe"), setTop(e, t.top), setMidXObj(e, t, !0); + var n = unitsize / -4, + x = setInterval((function() { + shiftVert(e, n, !0), e.bottom <= t.top && (switchContainers(e, scenery, characters), clearInterval(x), e.nocollide = e.piping = e.nofall = nokeys = notime = !1, e.placed = !0) + }), timer) +} + +function endLevel() { + map.ending || (map.ending = !0, map.random ? setMapRandom(["Random", "Castle"]) : setNextLevelArr(currentmap), storePlayerStats(), pause(), setMap()) +} + +function setExitLoc(e) { + map.exitloc = e +} + +function pushPreThing(e, t, n, x, r) { + var i = new PreThing(map.refx + t, map.refy - n, e, x, r), + a = i.object; + return !a.solid && !a.character || a.nostretch || (map.area.width = max(map.area.width, i.xloc + a.width)), a.solid && !a.spawn_as_char ? map.area.presolids.push(i) : map.area.precharacters.push(i), i +} + +function pushPreScenery(e, t, n, x, r) { + x = round(x || 1), r = round(r || 1); + var i = new PreThing(map.refx + t, map.refy - n, Sprite, e, [x, r]); + return i.yloc -= i.object.height, map.area.prescenery.push(i), i +} + +function pushPreScenerySolid(e, t, n, x, r) { + x = x || 1, r = r || 1; + var i = new PreThing(map.refx + t, map.refy - n, Sprite, e, [x, r]); + return i.yloc -= i.object.height, map.area.presolids.push(i), i +} + +function pushPreText(e, t, n) { + var x = new PreThing(map.refx + t, map.refy - n, FuncSpawner, spawnText, e); + return map.area.presolids.push(x), x +} + +function fillPreThing(e, t, n, x, r, i, a, o, l) { + for (var s, d, u = t, p = 0; p < x; ++p) { + for (s = n, d = 0; d < r; ++d) pushPreThing(e, u, s, o, l), s += a; + u += i + } +} + +function pushPreFloor(e, t, n) { + pushPreThing(Floor, e, t || 0, n || 1, DtB(t, 8)) +} + +function makeCeiling(e, t) { + t = t || 1; + for (var n = 0; n < t; ++n) pushPreThing(Brick, e + 8 * n, ceillev) +} + +function makeCeilingCastle(e, t, n) { + pushPreThing(Stone, e, ceillev, t || 1, n || 1) +} + +function pushPreBridge(e, t, n, x) { + pushPreScenery("Railing", e, t, 2 * n), pushPreThing(BridgeBase, e, t, n), x instanceof Array && (x[0] && pushPreThing(Stone, e - 8, t, 1, 64), x[1] && pushPreThing(Stone, e + 8 * n, t, 1, 64)) +} + +function fillPreWater(e, t, n) { + var x = DtB(t), + r = ceil(x / 5.5), + i = 5 * r; + pushPreScenery("Water", e, t - 5.5, 4 * n / 3), pushPreScenery("WaterFill", e, t - i - 15.5, 4 * n / 3, r + 2) +} + +function pushPrePlatformGenerator(e, t, n) { + pushPreThing(PlatformGenerator, e, ceilmax + 16, t, n) +} + +function pushPreScale(e, t, n, x) { + var r = x[0], + i = 2 * r, + a = x[1] + 1.5, + o = x[2] + 1.5, + l = pushPreThing(Scale, e, t, n).object; + platleft = pushPreThing(Platform, e - i, t - 4 * a, r, moveFallingScale).object, platright = pushPreThing(Platform, e + 4 * n - r - 6, t - 4 * o, r, moveFallingScale).object, platleft.parent = l, platright.parent = l, platleft.partner = platright, platright.partner = platleft, platleft.tension = a * unitsizet4 - 10 * unitsize, platright.tension = o * unitsizet4 - 10 * unitsize, l.tensionleft = a * unitsize, l.tensionright = o * unitsize, platleft.string = pushPreScenery("String", e, t - 4 * a, 1, 4 * (a - .5)).object, platright.string = pushPreScenery("String", e + 4 * n - 1, t - 4 * o, 1, 4 * (o - .5)).object +} + +function pushPreWarpWorld(e, t, n, x, r) { + 1 == n.length && (n = [-1, n[0], -1]); + var i, a, o = (x || 0) + e + 10, + l = n.length; + warp = pushPreThing(WarpWorld, e, t + ceilmax).object; + var s = pushPreText({ + innerText: "WELCOME TO WARP ZONE!", + style: { + visibility: "hidden" + } + }, o, 58); + for (warp.texts.push(s.object), a = 0; a < l; ++a) - 1 != n[a] && (warp.pipes.push(i = pushPrePipe(o, t, 24, !0, n[a]).object), warp.pirhanas.push(i.pirhana), n[a] instanceof Array && warp.texts.push(pushPreText({ + innerText: n[a][0], + style: { + visibility: "hidden" + } + }, o + 4, 38).object)), o += 32; + r && (window.block = pushPreThing(ScrollBlocker, e, ceilmax), pushPreThing(ScrollBlocker, o + 16, ceilmax)) +} + +function goUnderWater() { + window.map && (map.area && (window.player && !map.shifting && setAreaSetting(String(map.area.setting || "") + " Underwater"), map.area.underwater = !0), setMapGravity(), TimeHandler.clearEvent(map.bubbling), map.bubbling = TimeHandler.addEventInterval(playerBubbles, 96, 1 / 0), map.underwater = !0) +} + +function goOntoLand() { + map && (map.area && (window.player && !map.shifting && setAreaSetting(map.area.setting.replace("Underwater", "") || "Overworld"), map.area.underwater = !1), setMapGravity(), TimeHandler.clearEvent(map.bubbling), map.underwater = !1) +} + +function setMapGravity() { + window.player && (map.underwater ? player.gravity = gravity / 2.8 : player.gravity = gravity) +} + +function setBStretch() { + window.bstretch = gamescreen.width / 8 - 2 +} + +function endCastleOutside(e, t, n, x, r) { + e = e || 0, t = t || 0, n && (n = castlev), r = r || 20; + var i = pushPreThing(FlagDetector, e + 7, t + 108).object, + a = pushPreThing(CastleDoorDetector, e + 60 + 8 * (0 == castlev), 8).object; + i.flag = pushPreThing(Flag, e + .5, t + 79.5).object, i.stone = pushPreThing(Stone, e + 4, t + 8).object, i.top = pushPreThing(FlagTop, e + 6.5, 84).object, i.pole = pushPreThing(FlagPole, e + 8, 80).object, x && pushPreScenery("CastleWall", e + r + 72, t, x), 0 == n && shiftHoriz(a, unitsizet8), pushPreCastle(e + r + 16, t, n) +} + +function startCastleInside() { + pushPreThing(Stone, 0, 88, 5, 3), pushPreThing(Stone, 0, 48, 3, DtB(48, 8)), pushPreThing(Stone, 24, 40, 1, DtB(40, 8)), pushPreThing(Stone, 32, 32, 1, DtB(32, 8)) +} + +function endCastleInside(e, t, n) { + var x = pushPreThing(FuncCollider, e + 104, 48, CastleAxeFalls, [16, 24]).object.axe = pushPreThing(CastleAxe, e + 104, 40).object; + x.bridge = pushPreThing(CastleBridge, e, 24, 13).object, x.chain = pushPreThing(CastleChain, e + 96.5, 32).object, x.bowser = pushPreThing(Bowser, e + 69, 42, n).object, pushPreThing(ScrollBlocker, e + 112, ceilmax), pushPreThing(Stone, e, 88, 32), fillPreWater(e, 0, 26), pushPreFloor(e + 104, 32, 3), pushPreFloor(e + 104, 0, 19), pushPreThing(Stone, e + 112, 80, 2, 3), pushPreThing(ScrollBlocker, e + 256, ceilmax), endCastleInsideFinal(e, t) +} + +function endCastleInsideFinal(e, t) { + var n = pushPreFuncCollider(e + 180, collideCastleNPC).object, + x = { + visibility: "hidden" + }; + t ? (pushPreThing(Peach, e + 194, 13).object, n.text = [pushPreText({ + innerHTML: "THANK YOU " + window.player.title.toUpperCase() + "!", + style: x + }, e + 160, 66).object, pushPreText({ + innerHTML: "YOUR QUEST IS OVER.
WE PRESENT YOU A NEW QUEST.
", + style: x + }, e + 148, 50).object, pushPreText({ + innerHTML: "PRESS BUTTON B
TO SELECT A WORLD.
", + style: x + }, e + 148, 26).object]) : (pushPreThing(Toad, e + 194, 12).object, n.text = [pushPreText({ + innerHTML: "THANK YOU " + window.player.title.toUpperCase() + "!", + style: x + }, e + 160, 66).object, pushPreText({ + innerHTML: "BUT OUR PRINCESS IS IN
ANOTHER CASTLE!
", + style: x + }, e + 148, 50).object]) +} + +function pushPreSectionPass(e, t, n, x, r) { + var i = pushPreThing(Collider, e, t, [n, x], [sectionPass, sectionColliderInit]).object, + a = (r = map.area.sections.current || 0, map.area.sections[r]); + a.numpass ? ++a.numpass : a.numpass = 1, a.colliders ? a.colliders.push(i) : a.colliders = [i] +} + +function pushPreSectionFail(e, t, n, x, r) { + var i = pushPreThing(Collider, e, t, [n, x], [sectionFail, sectionColliderInit]).object, + a = (r = map.area.sections.current || 0, map.area.sections[r]); + a.colliders ? a.colliders.push(i) : a.colliders = [i] +} + +function pushCastleDecider(e, t) { + pushPreThing(castleDecider, e, ceilmax, e, t) +} + +function sectionColliderInit(e) { + e.sections = map.area.sections, e.parent = e.sections[e.sections.current], e.movement = !1 +} + +function sectionPass(e, t) { + if ("player" != e.type) return !1; + t.nocollide = !0, --t.parent.numpass || activateSection(t.parent, !0) +} + +function sectionFail(e, t) { + if ("player" != e.type) return !1; + t.nocollide = !0, activateSection(t.parent, !1) +} + +function activateSection(e, t) { + for (var n = e.colliders, x = n.length - 1; x >= 0; --x) killNormal(n[x]); + e.activated = !0, e.passed = t +} + +function pushPreTree(e, t, n) { + pushPreThing(TreeTop, e, t, n); + var x = DtB(t); + pushPreScenerySolid("TreeTrunk", e + 8, t - x - 8, n - 2, x / 8) +} + +function pushPreShroom(e, t, n) { + pushPreThing(ShroomTop, e, t, n); + var x = DtB(t - 4); + pushPreScenery("ShroomTrunk", e + 4 * n - 4, t - x - 8, 1, x / 8) +} + +function pushPrePipe(e, t, n, x, r, i) { + isFinite(n) || (n = gamescreen.height, t -= gamescreen.height); + var a = pushPreThing(Pipe, e, t + n, n / 8, r), + o = a.object; + return x && (o.pirhana = pushPreThing(Pirhana, e + 4, t + n + 12).object), i && (map.locs[i].entrything = o, map.locs[i].xloc = e), a +} + +function pushPreCastle(e, t, n) { + e = e || 0, t = t || 0, n ? pushPreCastleBig(e, t) : pushPreCastleSmall(e, t) +} + +function pushPreCastleBig(e, t) { + var n, x; + for (pushPreCastleSmall(e + 16, t + 48), n = 0; n < 3; ++n) + for (x = 0; x < 2; ++x) pushPreScenerySolid("BrickPlain", e + 16 + 16 * n, t + 24 + 8 * x); + for (n = 0; n < 2; ++n) pushPreScenerySolid("CastleDoor", e + 24 + 16 * n, t + 24); + for (n = 0; n < 5; ++n) { + if (2 == n) continue; + pushPreScenerySolid("BrickHalf", e + 16 + 8 * n, t + 48) + } + for (n = 0; n < 2; ++n) pushPreScenerySolid("CastleRailing", e + 8 * n, t + 44); + for (n = 0; n < 5; ++n) pushPreScenerySolid("CastleRailingFilled", e + 16 + 8 * n, t + 44); + for (n = 5; n < 7; ++n) pushPreScenerySolid("CastleRailing", e + 16 + 8 * n, t + 44); + for (n = 0; n < 2; ++n) + for (x = 0; x < 3; ++x) pushPreScenerySolid("BrickPlain", e + 24 + 16 * n, t + 8 * x); + for (n = 0; n < 3; ++n) pushPreScenerySolid("CastleDoor", e + 16 + 16 * n, t); + for (n = 0; n < 2; ++n) { + for (x = 0; x < 5; ++x) pushPreScenerySolid("BrickPlain", e + 8 * n, t + 8 * x); + pushPreScenerySolid("BrickHalf", e + 8 * n, t + 40) + } + for (n = 0; n < 2; ++n) { + for (x = 0; x < 5; ++x) pushPreScenerySolid("BrickPlain", e + 56 + 8 * n, t + 8 * x); + pushPreScenerySolid("BrickHalf", e + 56 + 8 * n, t + 40) + } + for (n = 0; n < 3; ++n) + for (x = 0; x < 2; ++x) pushPreScenerySolid("BrickHalf", e + 16 + 16 * n, t + 20 + 20 * x) +} + +function pushPreCastleSmall(e, t) { + var n, x; + for (n = 0; n < 3; ++n) pushPreScenerySolid("CastleRailing", e + 8 + 8 * n, t + 36); + for (n = 0; n < 2; ++n) pushPreScenerySolid("CastleTop", e + 8 + 12 * n, t + 24); + for (pushPreScenerySolid("CastleRailing", e, t + 20), n = 1; n <= 3; ++n) pushPreScenerySolid("CastleRailingFilled", e + 8 * n, t + 20); + for (pushPreScenerySolid("CastleRailing", e + 32, t + 20), n = 0; n < 2; ++n) + for (pushPreScenerySolid("BrickHalf", e + 8 * n, t), x = 0; x < 2; ++x) pushPreScenerySolid("BrickPlain", e + 8 * n, t + 4 + 8 * x); + for (n = 0; n < 2; ++n) + for (pushPreScenerySolid("BrickHalf", e + 24 + 8 * n, t), x = 0; x < 2; ++x) pushPreScenerySolid("BrickPlain", e + 24 + 8 * n, t + 4 + 8 * x); + pushPreScenerySolid("CastleDoor", e + 16, t) +} + +function pushPreFuncCollider(e, t) { + return e instanceof Array ? (console.log("position", e), pushPreThing(FuncCollider, e[0], e[1], t, [e[2], e[3]])) : pushPreThing(FuncCollider, e, ceilmax + 40, t) +} + +function pushPreFuncSpawner(e, t) { + return pushPreThing(FuncSpawner, e, jumplev1, t) +} + +function zoneEnableLakitu() { + map.zone_lakitu = !0, enterLakitu() +} + +function zoneDisableLakitu() { + if (map.has_lakitu) { + var e = map.has_lakitu; + map.zone_lakitu = map.has_lakitu = !1, e.lookleft || (e.lookleft = !0, removeClass(e, "flipped")), e.movement = function(e) { + e.xvel = max(e.xvel - unitsized32, -1 * unitsize) + } + } +} + +function zoneStartCheeps(e) { + pushPreFuncCollider(e, zoneEnableCheeps) +} + +function zoneStopCheeps(e) { + pushPreFuncCollider(e, zoneDisableCheeps) +} + +function zoneEnableCheeps(e) { + !map.zone_cheeps && e.player && startCheepSpawn() +} + +function zoneDisableCheeps(e) { + e.player && (map.zone_cheeps = !1) +} + +function pushPrePattern(e, t, n, x) { + var r, i, a, o = t, + l = Scenery.patterns[e]; + for (i = 0; i < x; ++i) { + for (a in l)(r = l[a]) instanceof Array && pushPreScenery(r[0], o + r[1], n + r[2], r[3], r[4]); + o += l.width + } +} + +function DtB(e, t) { + return (e + botmax) / (t || 1) +} + +function BlankMap(e) { + e.locs = [new Location(0, entryBlank)], e.areas = [new Area("Overworld", (function() { + setTimeout(refillCanvas, timer + 2) + }))] +} + +function World11(e) { + e.locs = [new Location(0, !0), new Location(0, exitPipeVert), new Location(1)], e.areas = [new Area("Overworld", (function() { + setLocationGeneration(0); + pushPreText("

super

MARIO BROS.

©1985 NINTENDO

Move: Arrows/WASD
Fire/Sprint: Shift/CTRL
Pause/Mute: P/M

", 20, 91), pushPrePattern("backreg", 0, 0, 5), pushPreFloor(0, 0, 69), pushPreThing(Block, 128, jumplev1), pushPreThing(Brick, 160, jumplev1), pushPreThing(Block, 168, jumplev1, Mushroom), pushPreThing(Goomba, 176, 8), pushPreThing(Brick, 176, jumplev1), pushPreThing(Block, 176, jumplev2), pushPreThing(Block, 184, jumplev1), pushPreThing(Brick, 192, jumplev1), pushPrePipe(224, 0, 16, !1), pushPrePipe(304, 0, 24), pushPrePipe(368, 0, 32), pushPreThing(Goomba, 340, 8), pushPrePipe(368, 0, 32), pushPreThing(Goomba, 412, 8), pushPreThing(Goomba, 422, 8), pushPrePipe(456, 0, 32, !1, 2), pushPreThing(Block, 512, 40, [Mushroom, 1], !0), pushPreFloor(568, 0, 15), pushPreThing(Brick, 618, jumplev1), pushPreThing(Block, 626, jumplev1, Mushroom), pushPreThing(Brick, 634, jumplev1), pushPreThing(Brick, 640, jumplev2), pushPreThing(Goomba, 640, jumplev2 + 8), pushPreThing(Brick, 648, jumplev2), pushPreThing(Brick, 656, jumplev2), pushPreThing(Goomba, 656, jumplev2 + 8), pushPreThing(Brick, 664, jumplev2), pushPreThing(Brick, 672, jumplev2), pushPreThing(Brick, 680, jumplev2), pushPreThing(Brick, 688, jumplev2), pushPreThing(Brick, 696, jumplev2), pushPreFloor(712, 0, 64), pushPreThing(Brick, 728, jumplev2), pushPreThing(Brick, 736, jumplev2), pushPreThing(Brick, 744, jumplev2), pushPreThing(Brick, 752, jumplev1, Coin), pushPreThing(Block, 752, jumplev2), pushPreThing(Goomba, 776, 8), pushPreThing(Goomba, 788, 8), pushPreThing(Brick, 800, jumplev1), pushPreThing(Brick, 808, jumplev1, Star), pushPreThing(Block, 848, jumplev1), pushPreThing(Koopa, 856, 12), pushPreThing(Block, 872, jumplev1), pushPreThing(Block, 872, jumplev2, Mushroom), pushPreThing(Block, 896, jumplev1), pushPreThing(Goomba, 912, 8), pushPreThing(Goomba, 924, 8), pushPreThing(Brick, 944, jumplev1), pushPreThing(Brick, 968, jumplev2), pushPreThing(Brick, 976, jumplev2), pushPreThing(Brick, 984, jumplev2), pushPreThing(Goomba, 992, 8), pushPreThing(Goomba, 1004, 8), pushPreThing(Goomba, 1024, 8), pushPreThing(Goomba, 1036, 8), pushPreThing(Brick, 1024, jumplev2), pushPreThing(Brick, 1032, jumplev1), pushPreThing(Block, 1032, jumplev2), pushPreThing(Brick, 1040, jumplev1), pushPreThing(Block, 1040, jumplev2), pushPreThing(Brick, 1048, jumplev2), pushPreThing(Stone, 1072, 8), pushPreThing(Stone, 1080, 16, 1, 2), pushPreThing(Stone, 1088, 24, 1, 3), pushPreThing(Stone, 1096, 32, 1, 4), pushPreThing(Stone, 1120, 32, 1, 4), pushPreThing(Stone, 1128, 24, 1, 3), pushPreThing(Stone, 1136, 16, 1, 2), pushPreThing(Stone, 1144, 8), pushPreThing(Stone, 1184, 8), pushPreThing(Stone, 1192, 16, 1, 2), pushPreThing(Stone, 1200, 24, 1, 3), pushPreThing(Stone, 1208, 32, 1, 4), pushPreThing(Stone, 1216, 32, 1, 4), pushPreFloor(1240, 0, 69), pushPreThing(Stone, 1240, 32, 1, 4), pushPreThing(Stone, 1248, 24, 1, 3), pushPreThing(Stone, 1256, 16, 1, 2), pushPreThing(Stone, 1264, 8, 1, 1), pushPrePipe(1304, 0, 16, !1, !1, 1), pushPreThing(Brick, 1344, jumplev1), pushPreThing(Brick, 1352, jumplev1), pushPreThing(Block, 1360, jumplev1), pushPreThing(Brick, 1368, jumplev1), pushPreThing(Goomba, 1392, 8), pushPreThing(Goomba, 1404, 8), pushPrePipe(1432, 0, 16), pushPreThing(Stone, 1448, 8), pushPreThing(Stone, 1456, 16, 1, 2), pushPreThing(Stone, 1464, 24, 1, 3), pushPreThing(Stone, 1472, 32, 1, 4), pushPreThing(Stone, 1480, 40, 1, 5), pushPreThing(Stone, 1488, 48, 1, 6), pushPreThing(Stone, 1496, 56, 1, 7), pushPreThing(Stone, 1504, 64, 2, 8), endCastleOutside(1580, 0, 1) + })), new Area("Underworld", (function() { + setLocationGeneration(2), makeCeiling(32, 7), pushPreFloor(0, 0, 17), fillPreThing(Brick, 0, 8, 1, 11, 8, 8), fillPreThing(Brick, 32, 8, 7, 3, 8, 8), fillPreThing(Coin, 33, 31, 7, 2, 8, 16), fillPreThing(Coin, 41, 63, 5, 1, 8, 8), pushPreThing(PipeSide, 104, 16, 1), pushPreThing(PipeVertical, 120, 88, 88) + }))] +} + +function randMapType(e) { + e.locs = [new Location(0, entryRandom)], e.areas = [new Area(e.areatype, (function() { + setLocationGeneration(0), "Underwater" == e.randname && (goUnderWater(), pushPreScenery("Water", 0, ceilmax - 21, 8 * (e.startwidth + 1) / 3, 1), pushPreThing(WaterBlock, 0, ceilmax, 8 * (e.startwidth + 1))) + }))], e.treefunc = randTrue(3) ? pushPreTree : pushPreShroom, e.treeheight = e.treelev = e.sincechange = 0 +} + +function randDayNight() { + return randTrue(3) ? "" : " Night" +} + +function WorldRandomOverworld(e) { + e.random = !0, e.randtype = pushRandomSectionOverworld, e.randname = "Overworld", e.areatype = "Overworld" + randDayNight(), e.firstRandomThings = function(e) { + for (var t = 0; t < 10; ++t) randTrue() && pushRandomGroundScenery(8 * t) + }, e.startwidth = 14, e.onlysmartkoopas = !1, randMapType(e) +} + +function WorldRandomTrees(e) { + e.random = !0, e.randtype = pushRandomSectionTrees, e.randname = "Overworld", e.areatype = "Overworld" + randDayNight(), e.firstRandomThings = function(e) { + e.treefunc(100, 8 * (e.treelev = randTrue() + 2), randTrue() + 4), e.startwidth += 7 + }, e.startwidth = 11, e.onlysmartkoopas = randTrue(), randMapType(e) +} + +function WorldRandomUnderworld(e) { + e.random = !0, e.randtype = pushRandomSectionUnderworld, e.randname = e.areatype = "Underworld", e.firstRandomThings = function(e) { + fillPreThing(Brick, 0, 8, 1, 11, 8, 8) + }, e.startwidth = randTrue(3) + 7, e.onlysmartkoopas = !0, e.respawndist = 42, e.entrancetype = "Up", randMapType(e) +} + +function WorldRandomUnderwater(e) { + e.random = !0, e.randtype = pushRandomSectionUnderwater, e.randname = "Underwater", e.areatype = "Underwater" + randDayNight(), e.firstRandomThings = function(e) {}, e.startwidth = randTrue(3) + 7, e.entrancetype = "Up", e.countCheep = e.countBlooper = 0, e.respawndist = 42, e.onlysmartkoopas = !0, randMapType(e) +} + +function WorldRandomBridge(e) { + e.random = !0, e.randtype = startRandomSectionBridge, e.randname = "Overworld", e.areatype = "Overworld" + randDayNight(), e.firstRandomThings = function(e) {}, e.startwidth = 14, randMapType(e) +} + +function WorldRandomSky(e) { + e.random = !0, e.randtype = startRandomSectionSky, e.randname = "Sky", e.areatype = "Sky" + randDayNight(), e.entrancetype = "Vine", e.firstRandomThings = function(e) { + pushPreThing(Stone, 0, 0, 4) + }, e.startwidth = 4, e.nofloor = !0, randMapType(e) +} + +function WorldRandomCastle(e) { + e.random = !0, e.randtype = startRandomSectionCastle, e.randname = e.areatype = e.entrancetype = "Castle", e.firstRandomThings = function(e) { + startCastleInside(), startCastle() + }, e.respawndist = 35, randMapType(e) +} + +function FullScreenMario() { + var e = Date.now(); + ensureLocalStorage(), TonedJS(!0), window.body = document.body, window.bodystyle = body.style, window.verbosity = { + Maps: !1, + Sounds: !1 + }, window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function(e) { + setTimeout(e, timer) + }, window.cancelAnimationFrame = window.cancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || clearTimeout, window.Uint8ClampedArray = window.Uint8ClampedArray || window.Uint8Array || Array, resetMeasurements(), resetLibrary(), resetEvents(), resetCanvas(), resetMaps(), resetScenery(), resetTriggers(), resetSeed(), resetSounds(), window.luigi = localStorage && "true" == localStorage.luigi, window.gameon = !0, setMap(1, 1), log("It took " + (Date.now() - e) + " milliseconds to start.") +} + +function ensureLocalStorage() { + var e = !1; + try { + window.hasOwnProperty("localStorage") || (window.localStorage = { + crappy: !0 + }), window.localStorage && (e = !0) + } catch (t) { + e = !1 + } + if (!e) throw document.body.innerText = "It seems your browser does not allow localStorage!" +} + +function resetMeasurements() { + resetUnitsize(4), resetTimer(1e3 / 60), window.jumplev1 = 32, window.jumplev2 = 64, window.ceillev = 88, window.ceilmax = 104, window.castlev = -48, window.paused = !0, resetGameScreen(), window.parentwindow || (window.parentwindow = !1) +} + +function resetUnitsize(e) { + window.unitsize = e; + for (var t = 2; t <= 64; ++t) window["unitsizet" + t] = unitsize * t, window["unitsized" + t] = unitsize / t; + window.scale = unitsized2, window.gravity = round(12 * unitsize) / 100 +} + +function resetTimer(e) { + e = roundDigit(e, .001), window.timer = window.timernorm = e, window.timert2 = 2 * e, window.timerd2 = e / 2, window.fps = window.fps_target = roundDigit(1e3 / e, .001), window.time_prev = Date.now() +} + +function resetGameScreen() { + window.gamescreen = new getGameScreen +} + +function getGameScreen() { + resetGameScreenPosition(this), this.middlex = (this.left + this.right) / 2, window.botmax = this.height - ceilmax, botmax < unitsize && (body.innerHTML = "

Your screen isn't high enough. Make it taller, then refresh.
"), this.deathheight = this.bottom + 48 +} + +function resetGameScreenPosition(e) { + (e = e || window.gamescreen).left = e.top = 0, e.bottom = innerHeight, e.right = innerWidth, e.height = innerHeight / unitsize, e.width = innerWidth / unitsize, e.unitheight = innerHeight, e.unitwidth = innerWidth +} + +function resetEvents() { + window.TimeHandler = new TimeHandlr({ + onSpriteCycleStart: "onadding", + doSpriteCycleStart: "placed", + cycleCheckValidity: "alive", + timingDefault: 9 + }) +} + +function resetSounds() { + window.sounds = {}, window.theme = !1, window.muted = localStorage && "true" == localStorage.muted, window.AudioPlayer = new AudioPlayr({ + directory: "Sounds", + getVolumeLocal: function() { + return .49 + }, + getThemeDefault: function() { + return area.theme + }, + library: { + Sounds: ["Bowser Falls", "Bowser Fires", "Break Block", "Bump", "Coin", "Ending", "Fireball", "Firework", "Flagpole", "Gain Life", "Game Over 2", "Game Over", "Hurry", "Into the Tunnel", "Jump Small", "Jump Super", "Kick", "Level Complete", "Player Dies", "Pause", "Pipe", "Power Down", "Powerup Appears", "Powerup", "Stage Clear", "Vine Emerging", "World Clear", "You Dead"], + Themes: ["Castle", "Overworld", "Underwater", "Underworld", "Star", "Sky", "Hurry Castle", "Hurry Overworld", "Hurry Underwater", "Hurry Underworld", "Hurry Star", "Hurry Sky"] + } + }) +} + +function resetQuadrants() { + window.QuadsKeeper = new QuadsKeepr({ + num_rows: 5, + num_cols: 6, + screen_width: window.innerWidth, + screen_height: window.innerHeight, + tolerance: unitsized2, + onUpdate: spawnMap, + onCollide: !1 + }) +} + +function resetGameState(e) { + clearAllTimeouts(), resetData(), window.nokeys = window.spawning = window.spawnon = window.notime = window.editing = window.qcount = window.lastscroll = 0, window.paused = window.gameon = window.speed = 1, e || (window.gamecount = 0), resetQuadrants(), window.gamehistory = [], AudioPlayer.pause() +} + +function scrollWindow(e, t) { + var n = -(e = e || 0), + x = -(t = t || 0); + gamescreen.left += e, gamescreen.right += e, gamescreen.top += t, gamescreen.bottom += t, shiftAll(characters, n, x), shiftAll(solids, n, x), shiftAll(scenery, n, x), shiftAll(QuadsKeeper.getQuadrants(), n, x), shiftElements(texts, n, x), QuadsKeeper.updateQuadrants(n), window.playediting && scrollEditor(e, t) +} + +function shiftAll(e, t, n) { + for (var x = e.length - 1; x >= 0; --x) shiftBoth(e[x], t, n) +} + +function shiftElements(e, t, n) { + for (var x, r = e.length - 1; r >= 0; --r) x = e[r], elementShiftLeft(x, t), elementShiftTop(x, n) +} + +function scrollPlayer(e, t, n) { + var x = player.left, + r = player.top; + scrollWindow(e, t = t || 0), setLeft(player, x, n), setTop(player, r + t * unitsize, n), QuadsKeeper.updateQuadrants() +} + +function mlog(e) { + verbosity[e] && log.apply(console, arguments) +} + +function resetCanvas() { + window.canvas = getCanvas(innerWidth, innerHeight, !0), window.context = canvas.getContext("2d"), body.appendChild(canvas) +} + +function spriteUnravel(e) { + for (var t, n, x, r = getPaletteReferenceStarting(window.palette), i = window.digitsize, a = e.length, o = "", l = 0; l < a;) switch (e[l]) { + case "x": + for (x = e.indexOf(",", ++l), t = makeDigit(r[e.slice(l, l += i)], window.digitsize), n = Number(e.slice(l, x)); n--;) o += t; + l = x + 1; + break; + case "p": + "[" == e[++l] ? (x = e.indexOf("]"), r = getPaletteReference(e.slice(l + 1, x).split(",")), l = x + 1, i = 1) : (r = getPaletteReference(window.palette), i = window.digitsize); + break; + default: + o += makeDigit(r[e.slice(l, l += i)], window.digitsize) + } + return o +} + +function spriteExpand(e) { + for (var t, n, x = "", r = e.length, i = 0; i < r;) + for (t = e.slice(i, i += digitsize), n = 0; n < scale; ++n) x += t; + return x +} + +function spriteGetArray(e) { + var t, n, x, r, i = e.length / digitsize, + a = e.match(new RegExp(".{1," + digitsize + "}", "g")), + o = new Uint8ClampedArray(4 * i); + for (n = 0, x = 0; n < i; ++n) { + for (t = palette[Number(a[n])], r = 0; r < 4; ++r) o[x + r] = t[r]; + x += 4 + } + return o +} + +function setThingSprite(e) { + if (!e.hidden && e.title) { + var t, n = library.cache, + x = e.spritewidth, + r = e.spriteheight; + n[e.title + " " + e.className.split(/\s+/g).slice(1).sort()]; + (t = getSpriteFromLibrary(e)) ? t.multiple ? (expandObtainedSpriteMultiple(t, e, x, r), e.sprite_type = t.type) : (expandObtainedSprite(t, e, x, r), e.sprite_type = "normal"): log("Could not get sprite from library on " + e.title) + } +} + +function getSpriteFromLibrary(e) { + var t, n, x, r, i = library.cache, + a = e.title, + o = e.libtype, + l = e.className.split(/\s+/g).slice(1).sort(), + s = (map.area || window.defaultsetting).setting.split(" "); + for (r in s) l.unshift(s[r]); + if (n = i[t = a + " " + l]) x = n.raw; + else { + if (!(x = library.sprites[o][a]) || !x.constructor) return console.log("Error in checking for sprite of " + a + "."), void console.log("Title " + a, "\nLibtype " + o, "\n", e, "\n"); + x.constructor != Uint8ClampedArray && (x = findSpriteInLibrary(e, x, l)), n = i[t] = { + raw: x + } + } + switch (String(Number(l.indexOf("flipped") >= 0)) + String(Number(l.indexOf("flip-vert") >= 0))) { + case "11": + x = n.flipboth ? n.flipboth : n.flipboth = flipSpriteArrayBoth(x); + break; + case "10": + x = n.fliphoriz ? n.fliphoriz : n.fliphoriz = flipSpriteArrayHoriz(x, e); + break; + case "01": + x = n.flipvert ? n.flipvert : n.flipvert = flipSpriteArrayVert(x, e); + break; + default: + x = n.raw + } + return x +} + +function expandObtainedSprite(e, t, n, x, r) { + var i, a, o = new Uint8ClampedArray(e.length * scale), + l = n * unitsizet4, + s = x * scale, + d = 0, + u = 0; + for (i = 0; i < s; ++i) { + for (a = 0; a < scale; ++a) memcpyU8(e, o, d, u, l), u += l; + d += l + } + return r || (t.num_sprites = 1, t.sprite = o, refillThingCanvas(t)), o +} + +function expandObtainedSpriteMultiple(e, t, n, x) { + var r, i, a = {}; + for (i in t.num_sprites = 0, e)(r = e[i]).constructor == Uint8ClampedArray ? (++t.num_sprites, a[i] = expandObtainedSprite(r, t, n, x, !0)) : a[i] = "number" == typeof r ? r * scale : r; + t.sprite = a.middle, t.sprites = a, refillThingCanvases(t, a) +} + +function findSpriteInLibrary(e, t, n) { + var x, r, i, a = t; + if (t.multiple) return t; + for (var o = 0; x = !0;) { + for (i in ++o > 49 && (alert(e.title), console.log(e.title, n, t)), n) + if (r = t[n[i]]) { + t = r, n.splice(i, 1), x = !1; + break + } + if (x) + if (r = t.normal) switch (x = !1, r.constructor) { + case Uint8ClampedArray: + case SpriteMultiple: + return r; + case Object: + t = r; + break; + default: + t = t[r] + } else x = !0; + if (x || !t) return console.log("\nSprite not found! Title: " + e.title), console.log("Classname:", e.className), console.log("Remaining", n), console.log("Current", t), console.log("Prev", a), new Uint8ClampedArray(e.spritewidth * e.spriteheight); + switch (t.constructor) { + case Uint8ClampedArray: + case SpriteMultiple: + return t; + case "Object": + continue + } + } +} + +function refillThingCanvas(e) { + var t = e.canvas, + n = e.context, + x = n.getImageData(0, 0, t.width, t.height); + memcpyU8(e.sprite, x.data), n.putImageData(x, 0, 0) +} + +function refillThingCanvases(e, t) { + var n, x, r, i, a, o = e.canvases = {}, + l = e.spritewidthpixels, + s = e.spriteheightpixels; + for (a in e.num_sprites = 1, t)(n = t[a]) instanceof Uint8ClampedArray ? (++e.num_sprites, o[a] = r = { + canvas: getCanvas(l, s) + }, r.context = i = r.canvas.getContext("2d"), memcpyU8(n, (x = i.getImageData(0, 0, l, s)).data), i.putImageData(x, 0, 0)) : o[a] = n; + r = o.middle, e.canvas = r.canvas, e.context = r.context +} + +function refillCanvas() { + var e, t = window.canvas, + n = window.context; + for (n.fillStyle = area.fillStyle, n.fillRect(0, 0, t.width, t.height), e = scenery.length - 1; e >= 0; --e) drawThingOnCanvas(n, scenery[e]); + for (e = solids.length - 1; e >= 0; --e) drawThingOnCanvas(n, solids[e]); + for (e = characters.length - 1; e >= 0; --e) drawThingOnCanvas(n, characters[e]) +} + +function drawThingOnCanvas(e, t) { + if (!t.hidden) { + var n = t.left, + x = t.top; + n > innerWidth || (1 == t.num_sprites ? drawThingOnCanvasSingle(e, t.canvas, t, n, x) : drawThingOnCanvasMultiple(e, t.canvases, t.canvas, t, n, x)) + } +} + +function drawThingOnCanvasSingle(e, t, n, x, r) { + n.repeat ? drawPatternOnCanvas(e, t, x, r, n.unitwidth, n.unitheight) : e.drawImage(t, x, r) +} + +function drawThingOnCanvasMultiple(e, t, n, x, r, i) { + var a, o, l = i, + s = r, + d = x.right, + u = x.bottom, + p = x.unitwidth, + c = x.unitheight, + m = x.spritewidthpixels, + h = x.spriteheightpixels; + "v" == x.sprite_type[0] ? ((o = t.bottom) && (a = t.bottomheight || x.spriteheightpixels, drawPatternOnCanvas(e, o.canvas, s, u - a, m, min(c, h)), u -= a, c -= a), (o = t.top) && (a = t.topheight || x.spriteheightpixels, drawPatternOnCanvas(e, o.canvas, s, l, m, min(c, h)), l += a, c -= a)) : "h" == x.sprite_type[0] && ((o = t.left) && (a = t.leftwidth || x.spritewidthpixels, drawPatternOnCanvas(e, o.canvas, s, l, min(p, m), h), s += a, p -= a), (o = t.right) && (a = t.rightwidth || x.spritewidthpixels, drawPatternOnCanvas(e, o.canvas, d - a, l, min(p, m), h), d -= a, p -= a)), l < u && s < d && drawPatternOnCanvas(e, n, s, l, p, c) +} + +function getPaletteReferenceStarting(e) { + for (var t = {}, n = 0; n < e.length; ++n) t[makeDigit(n, digitsize)] = makeDigit(n, digitsize); + return t +} + +function getPaletteReference(e) { + for (var t = {}, n = getDigitSize(e), x = 0; x < e.length; ++x) t[makeDigit(x, n)] = makeDigit(e[x], n); + return t +} + +function flipSpriteArrayHoriz(e, t) { + var n, x, r, i, a, o = e.length, + l = t.spritewidth, + s = (t.spriteheight, new Uint8ClampedArray(o)), + d = l * unitsizet4; + for (r = 0; r < o; r += d) + for (n = r, x = r + d - 4, i = 0; i < d; i += 4) { + for (a = 0; a < 4; ++a) s[n + a] = e[x + a]; + n += 4, x -= 4 + } + return s +} + +function flipSpriteArrayVert(e, t) { + for (var n, x, r = e.length, i = t.spritewidth, a = (t.spriteheight, new Uint8ClampedArray(r)), o = i * unitsizet4, l = 0, s = r - o; l < r;) { + for (n = 0; n < o; n += 4) + for (x = 0; x < 4; ++x) a[l + n + x] = e[s + n + x]; + l += o, s -= o + } + return a +} + +function flipSpriteArrayBoth(e) { + for (var t, n = e.length, x = new Uint8ClampedArray(n), r = e.length - 4, i = 0; i < n;) { + for (t = 0; t < 4; ++t) x[i + t] = e[r + t]; + i += 4, r -= 4 + } + return x +} + +function drawPatternOnCanvas(e, t, n, x, r, i) { + e.translate(n, x), e.fillStyle = e.createPattern(t, "repeat"), e.fillRect(0, 0, r, i), e.translate(-n, -x) +} + +function clearAllSprites(e) { + var t, n, x = [window.solids, window.characters, window.scenery]; + for (t in x) + for (n in t = x[t]) setThingSprite(t[n]); + e && (library.cache = {}) +} + +function memcpyU8(e, t, n, x, r) { + if (!(!e || !t || n < 0 || x < 0 || r <= 0 || n >= e.length || x >= t.length)) { + null == n && (n = 0), null == x && (x = 0), null == r && (r = max(0, min(e.length, t.length))); + for (var i = r + 0, a = x + 0, o = n + 0; i--;) t[a++] = e[o++] + } +} + +function canvasDisableSmoothing(e, t) { + (t = t || e.getContext("2d")).webkitImageSmoothingEnabled = !1, t.mozImageSmoothingEnabled = !1, t.imageSmoothingEnabled = !1 +} + +function Thing(e) { + if (0 != arguments.length && e) { + var t = this === window ? new Thing : this, + n = t.args = arrayMake(arguments); + n[0] = t, e.apply(t, n), t.alive = !0, t.placed = this.outerok = 0, t.xvel = this.xvel || 0, t.yvel = this.yvel || 0, null == t.tolx && (t.tolx = 0), null == t.toly && (t.toly = unitsized8), t.collide = t.collide || function() {}, t.death = t.death || killNormal, t.animate = t.animate || emergeUp; + var x, r = 4; + (x = floor(t.width * unitsize / QuadsKeeper.getQuadWidth())) > 0 && (r += (x + 1) * r / 2), (x = floor(t.height * unitsize / QuadsKeeper.getQuadHeight())) > 0 && (r += (x + 1) * r / 2), t.maxquads = r, t.quadrants = new Array(t.maxquads), t.overlaps = [], t.title = t.title || e.name, t.spritewidth = t.spritewidth || t.width, t.spriteheight = t.spriteheight || t.height, t.sprite = ""; + try { + setContextStuff(t, t.spritewidth, t.spriteheight) + } catch (e) { + log("Thing context fail", e, t.title, t), setTimeout((function() { + setContextStuff(t, t.spritewidth, t.spriteheight) + }), 1) + } + return t + } +} + +function setContextStuff(e, t, n) { + e.spritewidthpixels = e.spritewidth * unitsize, e.spriteheightpixels = e.spriteheight * unitsize, e.canvas = getCanvas(e.spritewidthpixels, e.spriteheightpixels), e.context = e.canvas.getContext("2d"), e.imageData = e.context.getImageData(0, 0, e.spritewidthpixels, e.spriteheightpixels), e.sprite_type = e.sprite_type || "neither", canvasDisableSmoothing(e, e.context) +} + +function ThingCreate(e, t) { + var n = new Thing; + return Thing.apply(n, [e].concat(t)), n +} + +function setCharacter(e, t) { + e.type = t.split(" ")[0], e.resting = e.under = e.undermid = !1, e.alive = e.character = !0, e.libtype = "characters", setClassInitial(e, "character " + t) +} + +function setSolid(e, t) { + e.type = "solid", e.name = t, e.solid = e.alive = !0, e.speed = e.speed || 0, e.collide = e.collide || characterTouchedSolid, e.bottomBump = e.bottomBump || function() {}, e.action = e.action || function() {}, e.jump = e.jump || function() {}, e.spritewidth = e.spritewidth || 8, e.spriteheight = e.spriteheight || 8, e.libtype = "solids", setClassInitial(e, "solid " + t) +} + +function setScenery(e, t) { + setSolid(e, t), e.libtype = "scenery" +} + +function addThing(e, t, n) { + return e instanceof Function && (e = new Thing(e)), placeThing(e, t, n), window[e.libtype].push(e), e.placed = !0, e.onadding && e.onadding(), setThingSprite(e), window["last_" + (e.title || e.group || "unknown")] = e, e +} + +function placeThing(e, t, n) { + return setLeft(e, t), setTop(e, n), updateSize(e), e +} + +function addText(e, t, n) { + var x = createElement("div", { + innerHTML: e, + className: "text", + left: t, + top: n, + onclick: body.onclick || canvas.onclick, + style: { + marginLeft: t + "px", + marginTop: n + "px" + } + }); + return body.appendChild(x), texts.push(x), x +} + +function spawnText(e, t) { + var n = e.element = addText("", e.left, e.top); + "object" == typeof t ? proliferate(n, t) : n.innerHTML = t, e.movement = !1 +} + +function checkTexts() { + var e, t, n, x = QuadsKeeper.getDelX(); + for (n = texts.length - 1; n >= 0; --n) t = texts[n], e = texts[n].element || t, t.right = t.left + e.clientWidth, t.right < x && (body.removeChild(e), killNormal(t), deleteThing(e, texts, n)) +} + +function Mushroom(e, t) { + e.group = "item", e.width = e.height = 8, e.speed = .42 * unitsize, e.animate = emergeUp, e.movement = moveSimple, e.collide = collideFriendly, e.jump = mushroomJump, e.death = killNormal, e.nofire = !0; + var n = "mushroom"; + switch (t) { + case 1: + e.action = gainLife, n += " gainlife"; + break; + case -1: + e.action = killPlayer, n += " death"; + break; + default: + e.action = playerShroom, n += " regular" + } + setCharacter(e, n) +} + +function mushroomJump(e) { + e.yvel -= 1.4 * unitsize, e.top -= unitsize, e.bottom -= unitsize, updatePosition(e) +} + +function FireFlower(e) { + e.group = "item", e.width = e.height = 8, e.animate = emergeUp, e.collide = collideFriendly, e.action = playerShroom, e.nofall = e.nofire = !0, e.movement = !1, setCharacter(e, "fireflower"), TimeHandler.addSpriteCycle(e, ["one", "two", "three", "four"]) +} + +function FireBall(e, t) { + e.group = "item", e.width = e.height = 4, e.speed = 1.75 * unitsize, e.gravity = 1.56 * gravity, e.jumpheight = 1.56 * unitsize, e.nofire = e.nostar = e.collide_primary = !0, e.moveleft = t, e.animate = emergeFire, e.movement = moveJumping, e.collide = fireEnemy, e.death = fireExplodes, setCharacter(e, "fireball"), TimeHandler.addSpriteCycle(e, ["one", "two", "three", "four"], 4) +} + +function fireEnemy(e, t) { + if (!(!t.alive || t.emerging || e.height <= unitsize)) { + if (e.nofire) return e.nofire > 1 ? t.death(t) : void 0; + e.solid ? AudioPlayer.playLocal("Bump", t.right) : (AudioPlayer.playLocal("Kick", t.right), e.death(e, 2), scoreEnemyFire(e)), t.death(t) + } +} + +function fireDeleted() { + --player.numballs +} + +function fireExplodes(e) { + var t = new Thing(Firework); + addThing(t, e.left - t.width / 2, e.top - t.height / 2), t.animate(), killNormal(e) +} + +function Star(e) { + e.group = "item", e.width = 7, e.height = 8, e.speed = .56 * unitsize, e.jumpheight = 1.17 * unitsize, e.gravity = gravity / 2.8, e.animate = emergeUp, e.movement = moveJumping, e.collide = collideFriendly, e.action = playerStar, e.death = killNormal, e.nofire = !0, setCharacter(e, "star item"), TimeHandler.addSpriteCycle(e, ["one", "two", "three", "four"], 0, 7) +} + +function Shell(e, t) { + e.width = 8, e.height = 7, e.group = "item", e.speed = unitsizet2, e.collide_primary = !0, e.moveleft = e.xvel = e.move = e.hitcount = e.peeking = e.counting = e.landing = e.enemyhitcount = 0, e.smart = t, e.movement = moveShell, e.collide = hitShell, e.death = killFlip, e.spawntype = Koopa, setCharacter(e, "shell" + (t ? " smart" : " dumb")) +} + +function hitShell(e, t) { + if ("shell" == e.type && t.type != e.type) return hitShell(t, e); + switch (e.type) { + case "solid": + t.right < e.right ? (AudioPlayer.playLocal("Bump", e.left), setRight(t, e.left), t.xvel = -t.speed, t.moveleft = !0) : (AudioPlayer.playLocal("Bump", e.right), setLeft(t, e.right), t.xvel = t.speed, t.moveleft = !1); + break; + case "player": + var n = objectToLeft(t, e), + x = e.yvel > 0 && e.bottom <= t.top + unitsizet2; + if (e.star) return scorePlayerShell(e, t), t.death(t, 2); + if (t.landing) return void(t.shelltoleft == n ? (++t.landing, 1 == t.landing && scorePlayerShell(e, t), TimeHandler.addEvent((function(e) { + --e.landing + }), 2, t)) : player.death(player)); + 0 == t.xvel || x ? (t.counting = 0, scorePlayerShell(e, t), t.peeking && (t.peeking = !1, removeClass(t, "peeking"), t.height -= unitsized8, updateSize(t)), 0 == t.xvel ? (n ? (t.moveleft = !0, t.xvel = -t.speed) : (t.moveleft = !1, t.xvel = t.speed), ++t.hitcount, TimeHandler.addEvent((function(e) { + --e.hitcount + }), 2, t)) : t.xvel = 0, x && (AudioPlayer.play("Kick"), t.xvel ? scorePlayerShell(e, t) : (jumpEnemy(e, t), e.yvel *= 2, scorePlayerShell(e, t), setBottom(e, t.top - unitsize, !0)), ++t.landing, t.shelltoleft = n, TimeHandler.addEvent((function(e) { + --e.landing + }), 2, t))) : !t.hitcount && (n && t.xvel < 0 || !n && t.xvel > 0) && e.death(e); + break; + case "shell": + if (0 != e.xvel) + if (0 != t.xvel) { + var r = e.xvel; + shiftHoriz(e, e.xvel = t.xvel), shiftHoriz(t, t.xvel = r) + } else score(t, 500), t.death(t); + else 0 != t.xvel && (score(e, 500), e.death(e)); + break; + default: + switch (e.group) { + case "enemy": + if (t.xvel) { + if ("koopa" == e.type.split(" ")[0]) { + var i = new Thing(Shell, e.smart); + addThing(i, e.left, e.bottom - i.height * unitsize), killFlip(i), killNormal(e) + } else killFlip(e); + AudioPlayer.play("Kick"), score(e, findScore(t.enemyhitcount), !0), ++t.enemyhitcount + } else e.moveleft = objectToLeft(e, t); + break; + case "item": + if ("shell" != e.type) return; + t.xvel && killFlip(e), e.xvel && killFlip(t) + } + } +} + +function moveShell(e) { + if (0 == e.xvel) + if (350 == ++e.counting) addClass(e, "peeking"), e.peeking = !0, e.height += unitsized8, updateSize(e); + else if (490 == e.counting) { + var t = new Thing(e.spawntype, e.smart); + addThing(t, e.left, e.bottom - t.height * unitsize), killNormal(e) + } +} + +function collideFriendly(e, t) { + "player" == e.type && (t.action && t.action(e), t.death(t)) +} + +function jumpEnemy(e, t) { + e.keys.up ? e.yvel = -1.4 * unitsize : e.yvel = -.7 * unitsize, e.xvel *= .91, AudioPlayer.play("Kick"), "item" == t.group && "shell" != t.type || score(t, findScore(e.jumpcount++ + e.jumpers), !0), ++e.jumpers, TimeHandler.addEvent((function(e) { + --e.jumpers + }), 1, e) +} + +function Goomba(e) { + e.width = e.height = 8, e.speed = .21 * unitsize, e.toly = unitsize, e.moveleft = e.noflip = !0, e.smart = !1, e.group = "enemy", e.movement = moveSimple, e.collide = collideEnemy, e.death = killGoomba, setCharacter(e, "goomba"), TimeHandler.addSpriteCycleSynched(e, [unflipHoriz, flipHoriz]) +} + +function killGoomba(e, t) { + if (e.alive) + if (t) killFlip(e); + else { + var n = new Thing(DeadGoomba); + addThing(n, e.left, e.bottom - n.height * unitsize), TimeHandler.addEvent(killNormal, 21, n), killNormal(e) + } +} + +function DeadGoomba(e) { + e.width = 8, e.height = 4, e.movement = !1, e.nocollide = e.nocollide = !0, e.death = killNormal, setSolid(e, "deadGoomba") +} + +function Koopa(e, t, n) { + e.width = 8, e.height = 12, e.speed = e.xvel = .21 * unitsize, e.moveleft = e.skipoverlaps = !0, e.group = "enemy", e.smart = t; + var x = "koopa"; + x += e.smart ? " smart" : " dumb", e.smart && (x += " smart"), n ? (x += " flying", e.winged = !0, 1 == n ? (e.movement = moveJumping, e.jumpheight = 1.17 * unitsize, e.gravity = gravity / 2.8) : (e.movement = moveFloating, e.ytop = e.begin = n[0] * unitsize, e.ybot = e.end = n[1] * unitsize, e.nofall = e.fly = !0, e.changing = e.xvel = 0, e.yvel = e.maxvel = unitsized4)) : (x += " regular", e.smart ? e.movement = moveSmart : e.movement = moveSimple), e.collide = collideEnemy, e.death = killKoopa, setCharacter(e, x), TimeHandler.addSpriteCycleSynched(e, ["one", "two"]), e.toly = unitsizet2 +} + +function killKoopa(e, t) { + if (e.alive) { + var n; + if (n = t && 2 != t || e.winged ? new Thing(Koopa, e.smart) : new Thing(Shell, e.smart), TimeHandler.addEvent((function(e, t) { + addThing(e, t.left, t.bottom - e.height * unitsize), e.moveleft = t.moveleft + }), 0, n, e), killNormal(e), 2 != t) return n; + killFlip(n) + } +} + +function Pirhana(e, t) { + e.width = 8, e.height = 12, e.counter = 0, e.countermax = e.height * unitsize, e.dir = unitsized8, e.toly = unitsizet8, e.nofall = e.deadly = e.nocollidesolid = e.repeat = !0, e.group = "enemy", e.collide = collideEnemy, e.death = killNormal, e.movement = movePirhanaInit, e.death = killPirhana, setCharacter(e, "pirhana") +} + +function movePirhanaInit(e) { + e.hidden = !0; + var t = e.visual_scenery = new Thing(Sprite, "Pirhana"); + addThing(t, e.left, e.top), TimeHandler.addSpriteCycle(t, ["one", "two"]), e.movement = movePirhanaNew, movePirhanaNew(e, e.height * unitsize) +} + +function movePirhanaNew(e, t) { + t = t || e.dir, e.counter += t, shiftVert(e, t), shiftVert(e.visual_scenery, t), (e.counter <= 0 || e.counter >= e.countermax) && (e.movement = !1, e.dir *= -1, TimeHandler.addEvent(movePirhanaRestart, 35, e)) +} + +function movePirhanaRestart(e) { + var t = getMidX(player); + e.counter >= e.countermax && t > e.left - unitsizet8 && t < e.right + unitsizet8 ? setTimeout(movePirhanaRestart, 7, e) : e.movement = movePirhanaNew +} + +function killPirhana(e) { + (e || (e = this)) && (killNormal(e), killNormal(e.visual_scenery)) +} + +function playerAboveEnemy(e, t) { + return e.bottom < t.top + t.toly +} + +function collideEnemy(e, t) { + if (characterIsAlive(e) && characterIsAlive(t) && !(e.nocollidechar && !t.player || t.nocollidechar && !e.player)) { + if ("item" == e.group) return e.collide_primary ? e.collide(t, e) : void 0; + if (!map.underwater && e.player && (e.star && !t.nostar || !t.deadly && objectOnTop(e, t))) { + if (playerAboveEnemy(e, t)) return; + e.player && !e.star ? TimeHandler.addEvent((function(e, t) { + jumpEnemy(e, t) + }), 0, e, t) : t.nocollide = !0; + t.death(t, 2 * e.star); + e.star ? scoreEnemyStar(t) : (scoreEnemyStomp(t), setBottom(e, min(e.bottom, t.top + unitsize))), addClass(e, "hopping"), removeClasses(e, "running skidding jumping one two three"), e.hopping = !0, 1 == player.power && setPlayerSizeSmall(e) + } else e.player ? playerAboveEnemy(e, t) || e.death(e) : t.moveleft = !(e.moveleft = objectToLeft(e, t)) + } +} + +function Podoboo(e, t) { + e.width = 7, e.height = 8, e.deadly = e.nofall = e.nocollidesolid = e.nofire = !0, e.gravity = map.gravity / 2.1, e.jumpheight = (t || 64) * unitsize, e.speed = -map.maxyvel, e.movement = movePodobooInit, e.collide = collideEnemy, e.betweentime = 70, setCharacter(e, "podoboo") +} + +function movePodobooInit(e) { + characterIsAlive(e) && (e.hidden = !0, e.heightnorm = e.top, e.heightfall = e.top - e.jumpheight, TimeHandler.addEvent(podobooJump, e.betweentime, e), e.movement = !1) +} + +function podobooJump(e) { + characterIsAlive(e) && (unflipVert(e), e.yvel = e.speed + e.gravity, e.movement = movePodobooUp, e.hidden = !1, setThingSprite(e)) +} + +function movePodobooUp(e) { + shiftVert(e, e.speed, !0), e.top - gamescreen.top > e.heightfall || (e.nofall = !1, e.movement = movePodobooSwitch) +} + +function movePodobooSwitch(e) { + e.yvel <= 0 || (flipVert(e), e.movement = movePodobooDown) +} + +function movePodobooDown(e) { + e.top < e.heightnorm || (setTop(e, e.heightnorm, !0), e.movement = !1, e.nofall = e.hidden = !0, e.heightfall = e.top - e.jumpheight, TimeHandler.addEvent(podobooJump, e.betweentime, e)) +} + +function HammerBro(e) { + e.width = 8, e.height = 12, e.group = "enemy", e.collide = collideEnemy, e.statex = e.counter = e.statey = e.counterx = e.countery = e.level = e.throwcount = 0, e.death = killFlip, e.movement = moveHammerBro, setCharacter(e, "hammerbro"), e.gravity = gravity / 2, TimeHandler.addSpriteCycle(e, ["one", "two"]), TimeHandler.addEvent(throwHammer, 35, e, 7), TimeHandler.addEventInterval(jumpHammerBro, 140, 1 / 0, e) +} + +function moveHammerBro(e) { + e.xvel = Math.sin(Math.PI * (e.counter += .007)) / 2.1, lookTowardPlayer(e), e.nocollidesolid = e.yvel < 0 || e.falling +} + +function throwHammer(e, t) { + !characterIsAlive(e) || e.nothrow || e.right < -unitsizet32 || (3 != t && switchClass(e, "thrown", "throwing"), TimeHandler.addEvent((function(e) { + if (3 != t) { + if (!characterIsAlive(e)) return; + switchClass(e, "throwing", "thrown"), addThing(new Thing(Hammer, e.lookleft), e.left - unitsizet2, e.top - unitsizet2) + } + t > 0 ? TimeHandler.addEvent(throwHammer, 7, e, --t) : (TimeHandler.addEvent(throwHammer, 70, e, 7), removeClass(e, "thrown")) + }), 14, e)) +} + +function jumpHammerBro(e) { + if (!characterIsAlive(e)) return !0; + e.resting && (map.floor - e.bottom / unitsize >= jumplev1 - 2 && "floor" != e.resting.name && Math.floor(2 * Math.random()) ? (e.yvel = -.7 * unitsize, e.falling = !0, TimeHandler.addEvent((function(e) { + e.falling = !1 + }), 42, e)) : e.yvel = -2.1 * unitsize, e.resting = !1) +} + +function Hammer(e, t) { + e.width = e.height = 8, e.nocollidesolid = e.nocollidechar = e.deadly = e.nofire = !0, e.collide = collideEnemy, e.yvel = 1.4 * -unitsize, e.xvel = unitsize / 1.4, t && (e.xvel *= -1), e.gravity = gravity / 2.1, setCharacter(e, "hammer"), TimeHandler.addSpriteCycle(e, ["one", "two", "three", "four"], 3) +} + +function Cannon(e, t, n) { + e.width = 8, e.height = 8 * (t || 1), e.spriteheight = 16, n || (e.movement = moveCannonInit), e.timer = 117, e.repeat = !0, setSolid(e, "cannon") +} + +function moveCannonInit(e) { + TimeHandler.addEventInterval((function(e) { + if (!(player.right > e.left - unitsizet8 && player.left < e.right + unitsizet8)) { + var t = new Thing(BulletBill); + objectToLeft(player, e) ? (addThing(t, e.left, e.top), t.direction = t.moveleft = !0, t.xvel *= -1, flipHoriz(t)) : addThing(t, e.left + e.width, e.top), AudioPlayer.playLocal("Bump", e.right) + } + }), 270, 1 / 0, e), e.movement = !1 +} + +function BulletBill(e) { + e.width = 8, e.height = 7, e.group = "enemy", e.nofall = e.nofire = e.nocollidesolid = e.nocollidechar = !0, e.speed = e.xvel = unitsized2, e.movement = moveSimple, e.collide = collideEnemy, e.death = killFlip, setCharacter(e, "bulletbill") +} + +function Bowser(e, t) { + e.width = e.height = 16, e.speed = .28 * unitsize, e.gravity = gravity / 2.8, e.deadly = e.dx = e.lookleft = e.nokillend = e.skipoverlaps = !0, e.moveleft = e.smart = e.movecount = e.jumpcount = e.firecount = e.deathcount = 0, e.killonend = freezeBowser, e.counter = -.7, e.group = "enemy", e.movement = moveBowserInit, e.collide = collideEnemy, e.death = killBowser, setCharacter(e, "bowser"), TimeHandler.addSpriteCycle(e, ["one", "two"]), t && TimeHandler.addEvent(throwHammer, 35, e, 7) +} + +function moveBowserInit(e) { + TimeHandler.addEventInterval(bowserJumps, 117, 1 / 0, e), TimeHandler.addEventInterval(bowserFires, 280, 1 / 0, e), TimeHandler.addEventInterval(bowserFires, 350, 1 / 0, e), TimeHandler.addEventInterval(bowserFires, 490, 1 / 0, e), e.movement = moveBowser +} + +function moveBowser(e) { + characterIsAlive(player) && (lookTowardPlayer(e), e.lookleft ? e.xvel = Math.sin(Math.PI * (e.counter += .007)) / 1.4 : e.xvel = min(e.xvel + .07, .84)) +} + +function bowserJumps(e) { + if (!characterIsAlive(e)) return !0; + e.resting && e.lookleft && (e.yvel = -1.4 * unitsize, e.resting = !1, e.nocollidesolid = !0, TimeHandler.addEventInterval((function(e) { + if (e.yvel > unitsize) return e.nocollidesolid = !1, !0 + }), 3, 1 / 0, e)) +} + +function bowserFires(e) { + if (!characterIsAlive(e) || !characterIsAlive(player)) return !0; + e.lookleft && (addClass(e, "firing"), AudioPlayer.playLocal("Bowser Fires", e.left), TimeHandler.addEvent((function(e) { + var t = e.top + unitsizet4, + n = new Thing(BowserFire, roundDigit(player.bottom, unitsizet8)); + removeClass(e, "firing"), addThing(n, e.left - unitsizet8, t), AudioPlayer.play("Bowser Fires") + }), 14, e)) +} + +function killBowser(e, t) { + if (t) return e.nofall = !1, killFlip(e); + 5 == ++e.deathcount && (e.yvel = e.speed = e.movement = 0, killFlip(e, 350), score(e, 5e3)) +} + +function freezeBowser(e) { + e.movement = !1, thingStoreVelocity(e) +} + +function BowserFire(e, t) { + e.width = 12, e.height = 4, e.xvel = -.63 * unitsize, e.deadly = e.nofall = e.nocollidesolid = e.nofire = !0, e.collide = collideEnemy, t && (e.ylev = t, e.movement = moveFlying), setCharacter(e, "bowserfire"), TimeHandler.addSpriteCycle(e, [unflipVert, flipVert]) +} + +function moveFlying(e) { + round(e.bottom) != round(e.ylev) ? shiftVert(e, min(max(0, e.ylev - e.bottom), unitsize)) : e.movement = !1 +} + +function WaterBlock(e, t) { + e.height = 16, e.width = t, e.spritewidth = e.spriteheight = 1 / scale, e.repeat = !0, setSolid(e, "water-block") +} + +function Blooper(e) { + e.width = 8, e.height = 12, e.nocollidesolid = e.nofall = e.moveleft = 1, e.squeeze = e.counter = 0, e.speed = unitsized2, e.xvel = e.speedinv = -unitsized4, e.movement = moveBlooper, e.collide = collideEnemy, e.death = killFlip, setCharacter(e, "blooper") +} + +function moveBlooper(e) { + switch (e.counter) { + case 56: + e.squeeze = !0, ++e.counter; + break; + case 63: + squeezeBlooper(e); + break; + default: + ++e.counter + } + e.top < unitsizet16 + 10 && squeezeBlooper(e), e.squeeze ? e.yvel = max(e.yvel + .021, .7) : e.yvel = min(e.yvel - .035, -.7), shiftVert(e, e.yvel, !0), e.squeeze || (player.left > e.right + unitsizet8 ? e.xvel = min(e.speed, e.xvel + unitsized32) : player.right < e.left - unitsizet8 && (e.xvel = max(e.speedinv, e.xvel - unitsized32))) +} + +function squeezeBlooper(e) { + 2 != e.squeeze && addClass(e, "squeeze"), e.squeeze = 2, e.xvel /= 1.17, setHeight(e, 10, !0, !0), (e.top > player.bottom || e.bottom > 360) && unsqueezeBlooper(e) +} + +function unsqueezeBlooper(e) { + e.squeeze = !1, removeClass(e, "squeeze"), e.counter = 0, setHeight(e, 12, !0, !0) +} + +function CheepCheep(e, t, n) { + e.width = e.height = 8, e.group = "enemy"; + var x = "cheepcheep " + (t ? "red" : ""); + e.red = t, setCheepVelocities(e), n ? (x += " jumping", e.jumping = !0, e.movement = moveCheepJumping) : e.movement = moveCheepInit, e.nofall = e.nocollidesolid = e.nocollidechar = !0, e.death = killFlip, e.collide = collideEnemy, setCharacter(e, x), TimeHandler.addSpriteCycle(e, ["one", "two"]) +} + +function setCheepVelocities(e) { + e.red ? (e.xvel = -unitsized4, e.yvel = unitsize / -24) : (e.xvel = unitsize / -6, e.yvel = -unitsized32) +} + +function moveCheepInit(e) { + setCheepVelocities(e), e.top < player.top && (e.yvel *= -1), moveCheep(e), e.movement = moveCheep +} + +function moveCheep(e) { + shiftVert(e, e.yvel) +} + +function moveCheepJumping(e) { + shiftVert(e, e.yvel += unitsize / 14) +} + +function startCheepSpawn() { + return map.zone_cheeps = TimeHandler.addEventInterval((function() { + if (!map.zone_cheeps) return !0; + var e = new Thing(CheepCheep, !0, !0); + addThing(e, Math.random() * player.left * player.maxspeed / unitsized2, gamescreen.height * unitsize), e.xvel = Math.random() * player.maxspeed, e.yvel = -2.33 * unitsize, flipHoriz(e), e.movement = function(e) { + e.top < ceilmax ? e.movement = moveCheepJumping : shiftVert(e, e.yvel) + } + }), 21, 1 / 0) +} + +function Bubble(e) { + e.width = e.height = 2, e.nofall = e.nocollide = !0, e.movement = function(e) { + e.top < unitsizet16 ? killNormal(e) : shiftVert(e, e.yvel) + }, e.yvel = -unitsized4, setCharacter(e, "bubble") +} + +function Lakitu(e, t) { + e.width = 8, e.height = 12, e.nofall = e.noshiftx = e.nocollidesolid = !0, e.playerdiff = e.counter = 0, e.dir = -1, e.norepeat = t, e.playerdiff = unitsizet16, e.group = "enemy", e.collide = collideEnemy, e.movement = moveLakituInit, e.death = killLakitu, setCharacter(e, "lakitu out"), map.has_lakitu = e +} + +function moveLakituInit(e) { + if (map.has_lakitu && e.norepeat) return killNormal(e); + TimeHandler.addEventInterval((function(e) { + if (!e.alive) return !0; + throwSpiny(e) + }), 140, 1 / 0, e), e.movement = moveLakituInit2, moveLakituInit2(e), map.has_lakitu = e +} + +function moveLakituInit2(e) { + if (e.right < player.left) return moveLakitu(e), e.movement = moveLakitu, map.lakitu = e, !0; + shiftHoriz(e, -unitsize) +} + +function moveLakitu(e) { + player.xvel > unitsized8 && player.left > gamescreen.width * unitsized2 ? e.left < player.right + unitsizet16 && (slideToXLoc(e, player.right + unitsizet32 + player.xvel, 1.4 * player.maxspeed), e.counter = 0) : (e.counter += .007, slideToXLoc(e, player.left + player.xvel + 117 * Math.sin(Math.PI * e.counter), .7 * player.maxspeed)) +} + +function throwSpiny(e) { + if (!characterIsAlive(e)) return !1; + switchClass(e, "out", "hiding"), TimeHandler.addEvent((function(e) { + if (e.dead) return !1; + var t = new Thing(SpinyEgg); + addThing(t, e.left, e.top), t.yvel = -2.1 * unitsize, switchClass(e, "hiding", "out") + }), 21, e) +} + +function killLakitu(e) { + delete e.noscroll, killFlip(e) +} + +function Spiny(e) { + e.width = e.height = 8, e.group = "enemy", e.speed = .21 * unitsize, e.deadly = e.moveleft = !0, e.smart = !1, e.death = killFlip, e.collide = collideEnemy, e.movement = moveSimple, setCharacter(e, "spiny"), TimeHandler.addSpriteCycle(e, ["one", "two"]) +} + +function SpinyEgg(e) { + e.height = 8, e.width = 7, e.group = "enemy", e.deadly = !0, e.movement = moveSpinyEgg, e.spawntype = Spiny, e.spawner = e.death = createSpiny, e.collide = collideEnemy, setCharacter(e, "spinyegg"), TimeHandler.addSpriteCycle(e, ["one", "two"]) +} + +function moveSpinyEgg(e) { + e.resting && createSpiny(e) +} + +function createSpiny(e) { + var t = new Thing(Spiny); + addThing(t, e.left, e.top), t.moveleft = objectToLeft(player, t), killNormal(e) +} + +function Beetle(e) { + e.width = e.height = 8, e.group = "enemy", e.speed = e.xvel = .21 * unitsize, e.nofire = 2, e.moveleft = !0, e.smart = !1, e.collide = collideEnemy, e.movement = moveSmart, e.death = killBeetle, setCharacter(e, "beetle"), TimeHandler.addSpriteCycleSynched(e, ["one", "two"]) +} + +function killBeetle(e, t) { + if (e.alive) { + var n; + if (n = new Thing(t && 2 != t ? Koopa : BeetleShell, e.smart), TimeHandler.addEvent((function(e, t) { + addThing(e, t.left, t.bottom - e.height * unitsize), e.moveleft = t.moveleft + }), 0, n, e), killNormal(e), 2 != t) return n; + killFlip(n) + } +} + +function BeetleShell(e) { + e.width = e.height = 8, e.nofire = !0, e.group = "item", e.speed = unitsizet2, e.moveleft = e.xvel = e.move = e.hitcount = e.peeking = e.counting = e.landing = e.enemyhitcount = 0, e.movement = moveShell, e.collide = hitShell, e.death = killFlip, e.spawntype = Beetle, setCharacter(e, "shell beetle") +} + +function Coin(e, t) { + e.group = "coin", e.width = 5, e.height = 7, e.nofall = e.coin = e.nofire = e.nocollidechar = e.nokillend = e.onlyupsolids = e.skipoverlaps = !0, e.tolx = 0, e.toly = unitsized2, e.collide = hitCoin, e.animate = coinEmerge, e.death = killNormal, setCharacter(e, "coin one"), TimeHandler.addSpriteCycleSynched(e, ["one", "two", "three", "two", "one"]), t && (e.movement = coinBecomesSolid) +} + +function coinBecomesSolid(e) { + switchContainers(e, characters, solids), e.movement = !1 +} + +function hitCoin(e, t) { + e.player && (AudioPlayer.play("Coin"), score(e, 200, !1), gainCoin(), killNormal(t)) +} + +function gainCoin() { + ++data.coins.amount >= 100 && (data.coins.amount = 0, gainLife()), updateDataElement(data.coins) +} + +function coinEmerge(e, t) { + AudioPlayer.play("Coin"), removeClass(e, "still"), switchContainers(e, characters, scenery), score(e, 200, !1), gainCoin(), e.nocollide = e.alive = e.nofall = e.emerging = !0, e.blockparent ? e.movement = coinEmergeMoveParent : e.movement = coinEmergeMove, e.yvel = -unitsize, TimeHandler.addEvent((function(e) { + e.yvel *= -1 + }), 25, e), TimeHandler.addEvent((function(e) { + killNormal(e), deleteThing(e, scenery, scenery.indexOf(e)) + }), 49, e), TimeHandler.addEventInterval(coinEmergeMovement, 1, 1 / 0, e, t), TimeHandler.clearClassCycle(e, 0), addClass(e, "anim"), TimeHandler.addSpriteCycle(e, ["anim1", "anim2", "anim3", "anim4", "anim3", "anim2"], 0, 5) +} + +function coinEmergeMovement(e, t) { + if (!e.alive) return !0; + shiftVert(e, e.yvel) +} + +function coinEmergeMove(e) { + shiftVert(e, e.yvel, !0) +} + +function coinEmergeMoveParent(e) { + e.bottom >= e.blockparent.bottom ? killNormal(e) : shiftVert(e, e.yvel, !0) +} + +function Player(e) { + setPlayerSizeSmall(e), e.walkspeed = unitsized2, e.canjump = e.nofiredeath = e.nofire = e.player = e.nokillend = 1, e.numballs = e.moveleft = e.skidding = e.star = e.dying = e.nofall = e.maxvel = e.paddling = e.jumpers = e.landing = 0, e.running = "", e.power = data.playerpower, e.maxspeed = e.maxspeedsave = 1.35 * unitsize, e.scrollspeed = 1.75 * unitsize, e.keys = new Keys, e.fire = playerFires, e.movement = movePlayer, e.death = killPlayer, setCharacter(e, "player normal small still"), e.tolx = unitsizet2, e.toly = 0, e.gravity = map.gravity, map.underwater && (e.swimming = !0, TimeHandler.addSpriteCycle(e, ["swim1", "swim2"], "swimming", 5)) +} + +function placePlayer(e, t) { + clearOldPlayer(), window.player = new Thing(Player), window.luigi ? window.player.title = "Luigi" : window.player.title = "Mario"; + var n = addThing(player, e || unitsizet16, t || (map.floor - player.height) * unitsize); + return data.playerpower >= 2 && (playerGetsBig(player, !0), 3 == data.playerpower && playerGetsFire(player, !0)), n +} + +function clearOldPlayer() { + window.player && (player.alive = !1, player.dead = !0) +} + +function Keys() { + this.run = this.crouch = this.jump = this.jumplev = this.sprint = 0 +} + +function thingStoreVelocity(e, t) { + e.xvelOld = e.xvel || 0, e.yvelOld = e.yvel || 0, e.nofallOld = e.nofall || !1, e.nocollideOld = e.nocollide || !1, e.movementOld = e.movement || e.movementOld, e.nofall = e.nocollide = !0, e.xvel = e.yvel = !1, t || (e.movement = !1) +} + +function thingRetrieveVelocity(e, t) { + t || (e.xvel = e.xvelOld || 0, e.yvel = e.yvelOld || 0), e.movement = e.movementOld || e.movement, e.nofall = e.nofallOld || !1, e.nocollide = e.nocollideOld || !1 +} + +function removeCrouch() { + player.crouching = !1, player.toly = player.tolyold || 0, 1 != player.power && (removeClass(player, "crouching"), player.height = 16, updateBottom(player, 0), updateSize(player)) +} + +function playerShroom(e) { + e.shrooming || (AudioPlayer.play("Powerup"), score(e, 1e3, !0), 3 != e.power && (e.shrooming = !0, (2 == ++e.power ? playerGetsBig : playerGetsFire)(e), storePlayerStats())) +} + +function playerGetsBig(e, t) { + if (setPlayerSizeLarge(e), e.keys.down = 0, removeClasses(player, "crouching small"), updateBottom(e, 0), updateSize(e), t) addClass(e, "large"); + else { + addClass(player, "shrooming"); + for (var n = [1, 2, 1, 2, 3, 2, 3], x = n.length - 1; x >= 0; --x) n[x] = "shrooming" + n[x]; + thingStoreVelocity(player), n.push((function(e, t) { + return e.shrooming = t.length = 0, addClass(e, "large"), removeClasses(e, "shrooming shrooming3"), thingRetrieveVelocity(player), !0 + })), TimeHandler.addSpriteCycle(e, n, "shrooming", 6) + } +} + +function playerGetsSmall(e) { + var t = player.bottom; + e.keys.down = 0, thingStoreVelocity(e), addClass(e, "small"), flicker(e), removeClasses(player, "running skidding jumping fiery"), addClass(player, "paddling"), TimeHandler.addEvent((function(e) { + removeClass(e, "large"), setPlayerSizeSmall(e), setBottom(e, t - unitsize) + }), 21, player), TimeHandler.addEvent((function(e) { + thingRetrieveVelocity(e, !1), e.nocollidechar = !0, removeClass(e, "paddling"), (e.running || e.xvel) && addClass(e, "running"), TimeHandler.addEvent(setThingSprite, 1, e) + }), 42, player), TimeHandler.addEvent((function(e) { + e.nocollidechar = !1 + }), 70, player) +} + +function playerGetsFire(e) { + removeClass(e, "intofiery"), addClass(e, "fiery"), player.shrooming = !1 +} + +function setPlayerSizeSmall(e) { + setSize(e, 8, 8, !0), updateSize(e) +} + +function setPlayerSizeLarge(e) { + setSize(e, 8, 16, !0), updateSize(e) +} + +function movePlayer(e) { + if (e.keys.up) { + if (e.keys.jump > 0 && (e.yvel <= 0 || map.underwater) && (map.underwater && playerPaddles(e), e.resting ? (e.resting.xvel && (e.xvel += e.resting.xvel), e.resting = !1) : (e.jumping || map.underwater || switchClass(e, "running skidding", "jumping"), e.jumping = !0), !map.underwater)) { + var t = unitsize / pow(++e.keys.jumplev, map.jumpmod - .0014 * e.xvel); + e.yvel = max(e.yvel - t, map.maxyvelinv) + } + } else e.keys.jump = 0; + e.keys.crouch && !e.crouching && e.resting && (1 != e.power && (e.crouching = !0, addClass(e, "crouching"), e.height = 11, e.tolyold = e.toly, e.toly = unitsizet4, updateBottom(e, 0), updateSize(e)), e.resting.actionTop && e.resting.actionTop(e, e.resting, e.resting.transport)); + var n = 0; + if (0 == e.keys.run || e.crouching) e.xvel *= .98, n = .035; + else { + var x = e.keys.run * (.098 * ((e.keys.sprint && !map.underwater || 0) + 1)); + e.xvel += x || 0, e.xvel *= .98, n = 7e-4, signBool(e.keys.run) == e.moveleft ? e.skidding || (addClass(e, "skidding"), e.skidding = !0) : e.skidding && (removeClass(e, "skidding"), e.skidding = !1) + } + e.xvel > n ? e.xvel -= n : e.xvel < -n ? e.xvel += n : 0 != e.xvel && (e.xvel = 0, window.nokeys || 0 != e.keys.run || (e.keys.left_down ? e.keys.run = -1 : e.keys.right_down && (e.keys.run = 1))), Math.abs(e.xvel) < .14 ? e.running && (e.running = !1, 1 == player.power && setPlayerSizeSmall(e), removeClasses(e, "running skidding one two three"), addClass(e, "still"), TimeHandler.clearClassCycle(e, "running")) : e.running || (e.running = !0, switchClass(e, "still", "running"), playerStartRunningCycle(e), 1 == e.power && setPlayerSizeSmall(e)), e.xvel > 0 ? (e.xvel = min(e.xvel, e.maxspeed), e.moveleft && (e.resting || map.underwater) && (unflipHoriz(e), e.moveleft = !1)) : e.xvel < 0 && (e.xvel = max(e.xvel, -1 * e.maxspeed), e.moveleft || !e.resting && !map.underwater || (flipHoriz(e), e.moveleft = !0)), e.resting && (e.hopping && (removeClass(e, "hopping"), e.xvel && addClass(e, "running"), e.hopping = !1), e.keys.jumplev = e.yvel = e.jumpcount = 0, e.jumping && (e.jumping = !1, removeClass(e, "jumping"), 1 == e.power && setPlayerSizeSmall(e), addClass(e, abs(e.xvel) < .14 ? "still" : "running")), e.paddling && (e.paddling = e.swimming = !1, removeClasses(e, "paddling swim1 swim2"), TimeHandler.clearClassCycle(e, "paddling"), addClass(e, "running"))), isNaN(e.xvel) +} + +function playerStartRunningCycle(e) { + e.running = TimeHandler.addSpriteCycle(e, ["one", "two", "three", "two"], "running", setPlayerRunningCycler) +} + +function setPlayerRunningCycler(e) { + e.timeout = 5 + ceil(player.maxspeedsave - abs(player.xvel)) +} + +function playerPaddles(e) { + e.paddling || (removeClasses(e, "skidding paddle1 paddle2 paddle3 paddle4 paddle5"), addClass(e, "paddling"), TimeHandler.clearClassCycle(e, "paddling_cycle"), TimeHandler.addSpriteCycle(e, ["paddle1", "paddle2", "paddle3", "paddle3", "paddle2", "paddle1", function() { + return e.paddling = !1 + }], "paddling_cycle", 5)), e.paddling = e.swimming = !0, e.yvel = -.84 * unitsize +} + +function playerBubbles() { + addThing(new Thing(Bubble), player.right, player.top) +} + +function movePlayerVine(e) { + var t = e.attached; + if (e.bottom < t.top) return unattachPlayer(e); + if (e.keys.run == e.attachoff) { + for (; objectsTouch(e, t);) shiftHoriz(e, e.keys.run, !0); + return unattachPlayer(e) + } + if (e.keys.up) e.animatednow = !0, shiftVert(e, -1 * unitsized4, !0); + else if (e.keys.crouch) { + if (e.animatednow = !0, shiftVert(e, unitsized2, !0), e.bottom > t.bottom - unitsizet4) return unattachPlayer(e) + } else e.animatednow = !1; + e.animatednow && !e.animated ? addClass(e, "animated") : !e.animatednow && e.animated && removeClass(e, "animated"), e.animated = e.animatednow, e.bottom < -16 && (locMovePreparations(e), !t.locnum && map.random ? goToTransport(["Random", "Sky", "Vine"]) : shiftToLocation(t.locnum)) +} + +function unattachPlayer(e) { + e.movement = movePlayer, removeClasses(e, "climbing", "animated"), TimeHandler.clearClassCycle(e, "climbing"), e.yvel = e.skipoverlaps = e.attachoff = e.nofall = e.climbing = e.attached = e.attached.attached = !1, e.xvel = e.keys.run +} + +function playerHopsOff(e, t, n) { + removeClasses(e, "climbing running"), addClass(e, "jumping"), e.piping = e.nocollide = e.nofall = e.climbing = !1, e.gravity = gravity / 4, e.xvel = 3.5, e.yvel = -3.5, TimeHandler.addEvent((function(e) { + unflipHoriz(e), e.gravity = gravity, e.movement = movePlayer, e.attached = !1, n && (addClass(e, "running"), playerStartRunningCycle(e)) + }), 21, e) +} + +function playerFires() { + if (!(player.numballs >= 2)) { + ++player.numballs, addClass(player, "firing"); + var e = new Thing(FireBall, player.moveleft, !0); + e.yvel = unitsize, addThing(e, player.right + unitsized4, player.top + unitsizet8), player.moveleft && setRight(e, player.left - unitsized4, !0), e.animate(e), e.ondelete = fireDeleted, TimeHandler.addEvent((function(e) { + removeClass(e, "firing") + }), 7, player) + } +} + +function emergeFire(e) { + AudioPlayer.play("Fireball") +} + +function playerStar(e) { + e.star || (++e.star, AudioPlayer.play("Powerup"), AudioPlayer.playTheme("Star", !0), TimeHandler.addEvent(playerRemoveStar, 560, e), switchClass(e, "normal", "star"), TimeHandler.addSpriteCycle(e, ["star1", "star2", "star3", "star4"], "star", 5)) +} + +function playerRemoveStar(e) { + e.star && (--e.star, removeClasses(e, "star star1 star2 star3 star4"), TimeHandler.clearClassCycle(e, "star"), addClass(e, "normal"), AudioPlayer.playTheme()) +} + +function killPlayer(e, t) { + if (e.alive && !e.flickering && !e.dying) { + if (2 == t) notime = !0, e.dead = e.dying = !0; + else { + if (!t && e.power > 1) return AudioPlayer.play("Power Down"), e.power = 1, storePlayerStats(), playerGetsSmall(e); + 2 != t && (TimeHandler.clearAllCycles(e), setSize(e, 7.5, 7, !0), updateSize(e), setClass(e, "character player dead"), nokeys = notime = e.dying = !0, thingStoreVelocity(e), containerForefront(e, characters), TimeHandler.addEvent((function(e) { + thingRetrieveVelocity(e, !0), e.nocollide = !0, e.movement = e.resting = !1, e.gravity = gravity / 2.1, e.yvel = -1.4 * unitsize + }), 7, e)) + } + AudioPlayer.pause(), window.editing || AudioPlayer.play("Player Dies"), e.nocollide = e.nomove = nokeys = 1, --data.lives.amount, map.random || (data.score.amount = data.scoreold), window.editing ? setTimeout((function() { + editorSubmitGameFuncPlay(), editor.playing = editor.playediting = !0 + }), 35 * timer) : !map.random || data.lives.amount <= 0 ? window.reset = setTimeout(data.lives.amount ? setMap : gameOver, 280 * timer) : (nokeys = notime = !1, updateDataElement(data.score), updateDataElement(data.lives), TimeHandler.addEvent((function() { + playerDropsIn(), AudioPlayer.playTheme() + }), 117)) + } +} + +function playerDropsIn() { + clearOldPlayer(), placePlayer(unitsizet16, -1 * unitsizet8 + map.underwater * unitsize * 24), flicker(player), map.underwater ? player.gravity = gravity / 2.8 : (player.nocollide = !0, TimeHandler.addEvent((function() { + player.nocollide = !1, addThing(new Thing(RestingStone), player.left, player.bottom + player.yvel) + }), map.respawndist || 17)) +} + +function gameOver() { + gameon = !1, pause(), AudioPlayer.pauseTheme(), AudioPlayer.play("Game Over"); + var e = "
GAME OVER
"; + e += "

", body.className = "Night", body.innerHTML = e, window.gamecount = 1 / 0, clearPlayerStats(), setTimeout(gameRestart, 7e3) +} + +function gameRestart() { + seedlast = .007, body.style.visibility = "hidden", body.innerHTML = body.style.paddingTop = body.style.fontSize = "", body.appendChild(canvas), gameon = !0, map.random ? setMapRandom() : setMap(1, 1), TimeHandler.addEvent((function() { + body.style.visibility = "" + })), setLives(3) +} + +function Floor(e, t, n) { + e.width = 8 * (t || 1), e.height = 8 * n || unitsizet32, e.spritewidth = 8, e.spriteheight = 8, e.repeat = !0, setSolid(e, "floor") +} + +function Clouds(e, t) { + e.width = 8 * t, e.height = 8, setSolid(e, "clouds") +} + +function Brick(e, t) { + if (e.width = e.height = 8, e.used = !1, e.bottomBump = brickBump, t) + if (t instanceof Array) + for (e.contents = t; e.contents.length < 3;) e.contents.push(!1); + else e.contents = [t, !1, !1]; + else e.contents = !1; + e.death = killNormal, setSolid(e, "brick unused"), e.tolx = 1 +} + +function brickBump(e, t) { + if (!e.up && "player" == t.type && (AudioPlayer.play("Bump"), !e.used)) { + if (e.up = t, t.power > 1 && !e.contents) return TimeHandler.addEvent(brickBreak, 2, e, t); + blockBumpMovement(e), e.contents && (player.power > 1 && e.contents[0] == Mushroom && !e.contents[1] && (e.contents[0] = FireFlower), TimeHandler.addEvent((function(e) { + var t = e.contents, + n = new Thing(t[0], t[1], t[2]); + addThing(n, e.left, e.top), setMidXObj(n, e, !0), n.blockparent = e, n.animate(n, e), e.contents[0] == Coin ? (e.lastcoin && makeUsedBlock(e), TimeHandler.addEvent((function(e) { + e.lastcoin = !0 + }), 245, e)) : makeUsedBlock(e) + }), 7, e)) + } +} + +function makeUsedBlock(e) { + e.used = !0, switchClass(e, "unused", "used") +} + +function brickBreak(e, t) { + AudioPlayer.play("Break Block"), score(e, 50), e.up = t, TimeHandler.addEvent(placeShards, 1, e), killNormal(e) +} + +function placeShards(e) { + for (var t, n = 0; n < 4; ++n) addThing(t = new Thing(BrickShard), e.left + (n < 2) * e.width * unitsize - unitsizet2, e.top + n % 2 * e.height * unitsize - unitsizet2), t.xvel = unitsized2 - unitsize * (n > 1), t.yvel = -1.4 * unitsize + n % 2, TimeHandler.addEvent(killNormal, 350, t) +} + +function BrickShard(e) { + e.width = e.height = 4, e.nocollide = !0, e.death = killNormal, setCharacter(e, "brickshard"), TimeHandler.addSpriteCycle(e, [unflipHoriz, flipHoriz]) +} + +function attachEmerge(e, t) { + e.animate = setInterval((function() { + setBottom(e, t.top, !0), t.up || (clearInterval(e.animate), e.animate = !1) + }), timer) +} + +function Block(e, t, n) { + if (e.width = e.height = 8, e.used = !1, e.bottomBump = blockBump, t) + if (t instanceof Array) + for (e.contents = t; e.contents.length < 3;) e.contents.push(!1); + else e.contents = [t, !1, !1]; + else e.contents = [Coin]; + e.death = killNormal, setSolid(e, "Block unused"), e.hidden = !!n && (e.hidden = e.skipoverlaps = !0), e.tolx = 1, TimeHandler.addSpriteCycleSynched(e, ["one", "two", "three", "two", "one"]) +} + +function blockBump(e, t) { + "player" == t.type && (e.used ? AudioPlayer.play("Bump") : (e.used = 1, e.hidden = e.hidden = e.skipoverlaps = !1, e.up = t, blockBumpMovement(e), removeClass(e, "hidden"), switchClass(e, "unused", "used"), player.power > 1 && e.contents[0] == Mushroom && !e.contents[1] && (e.contents[0] = FireFlower), TimeHandler.addEvent(blockContentsEmerge, 7, e))) +} + +function blockContentsEmerge(e) { + var t = new Thing(e.contents[0], e.contents[1], e.contents[2]); + addThing(t, e.left, e.top), setMidXObj(t, e, !0), t.blockparent = e, t.animate(t, e) +} + +function Pipe(e, t, n) { + e.width = e.spritewidth = 16, e.height = 8 * (t || 1), !1 !== n && (e.actionTop = intoPipeVert, e.transport = n), setSolid(e, "pipe") +} + +function PipeSide(e, t, n) { + e.width = e.spritewidth = n ? 8 : 19.5, e.height = e.spriteheight = 16, t && (e.actionLeft = intoPipeHoriz, e.transport = t), setSolid(e, "pipe side " + (n ? "small" : "")) +} + +function PipeVertical(e, t) { + e.spritewidth = e.width = 16, e.spriteheight = e.repeat = 1, e.height = t, setSolid(e, "pipe vertical") +} + +function Vine(e, t) { + e.width = e.spriteheight = 7, e.height = 0, e.locnum = t, e.nocollide = e.nofall = e.repeat = !0, e.animate = vineEmerge, e.movement = vineMovement, setCharacter(e, "vine") +} + +function vineEmerge(e, t) { + AudioPlayer.play("Vine Emerging"), setHeight(e, 0), e.movement = vineMovement, TimeHandler.addEvent(vineEnable, 14, e), TimeHandler.addEventInterval(vineStay, 1, 14, e, t) +} + +function vineStay(e, t) { + setBottom(e, t.top) +} + +function vineEnable(e) { + e.nocollide = !1, e.collide = touchVine +} + +function vineMovement(e) { + increaseHeightTop(e, unitsized4), e.attached && shiftVert(e.attached, -unitsized4, !0) +} + +function touchVine(e, t) { + !e.player || e.attached || e.climbing || e.bottom > t.bottom + unitsizet2 || (t.attached = e, e.attached = t, e.nofall = e.skipoverlaps = !0, e.xvel = e.yvel = e.resting = e.jumping = e.jumpcount = e.running = 0, e.attachleft = !objectToLeft(e, t), e.attachoff = 2 * e.attachleft - 1, e.movementsave = e.movement, e.movement = movePlayerVine, e.keys = new Keys, TimeHandler.clearClassCycle(e, "running"), removeClass(e, "running skidding"), unflipHoriz(e), e.attachleft && flipHoriz(e), addClass(e, "climbing"), e.climbing = TimeHandler.addSpriteCycle(e, ["one", "two"], "climbing"), lookTowardThing(e, t), e.attachleft ? setLeft(e, t.right - unitsizet4) : setRight(e, t.left + unitsizet4)) +} + +function Springboard(e) { + e.width = 8, e.height = e.heightnorm = 14.5, e.tension = e.tensionsave = 0, e.dir = 1, e.collide = collideSpring, setSolid(e, "springboard") +} + +function collideSpring(e, t) { + return e.yvel >= 0 && e.player && !t.tension && characterOnSolid(e, t) ? springPlayerInit(t, e) : characterTouchedSolid(e, t) +} + +function springPlayerInit(e, t) { + e.tension = e.tensionsave = max(.77 * t.yvel, unitsize), t.movement = movePlayerSpringDown, t.spring = e, t.xvel /= 2.8 +} + +function movePlayerSpringDown(e) { + return objectsTouch(e, e.spring) ? e.spring.height < 2.5 * unitsize || e.spring.tension < unitsized32 ? (e.movement = movePlayerSpringUp, void(e.spring.movement = moveSpringUp)) : ((e.left < e.spring.left + unitsizet2 || e.right > e.spring.right - unitsizet2) && (e.xvel /= 1.4), reduceSpringHeight(e.spring, e.spring.tension), setBottom(e, e.spring.top, !0), e.spring.tension /= 2, void updateSize(e.spring)) : (e.movement = movePlayer, e.spring.movement = moveSpringUp, void(e.spring = !1)) +} + +function movePlayerSpringUp(e) { + if (!e.spring || !objectsTouch(e, e.spring)) return e.spring = !1, void(e.movement = movePlayer) +} + +function moveSpringUp(e) { + reduceSpringHeight(e, -e.tension), e.tension *= 2, e == player.spring && setBottom(player, e.top, !0), e.height > e.heightnorm && (e == player.spring && (player.yvel = max(-unitsizet2, -.98 * e.tensionsave), player.resting = player.spring = !1), reduceSpringHeight(e, (e.height - e.heightnorm) * unitsize), e.tension = e.tensionsave = e.movement = !1) +} + +function reduceSpringHeight(e, t) { + reduceHeight(e, t, !0) +} + +function Stone(e, t, n) { + e.width = 8 * t || 8, e.height = 8 * n || 8, e.repeat = !0, setSolid(e, "Stone") +} + +function GenericStone(e, t, n) { + return Stone(e, t, n) +} + +function RestingStone(e) { + e.width = e.height = 8, e.used = !1, e.movement = RestingStoneUnused, setSolid(e, "Stone hidden"), e.title = "Stone" +} + +function RestingStoneUnused(e) { + if (player.resting) { + if (player.resting != e) return killNormal(e); + e.movement = RestingStoneUsed, removeClass(e, "hidden"), setThingSprite(player) + } +} + +function RestingStoneUsed(e) { + if (!player.resting) return killNormal(e) +} + +function CastleBlock(e, t, n) { + e.width = e.height = 8; + var x, r, i = !1; + t instanceof Array ? (x = t[0], r = t[1], i = n) : (x = t, r = n), setSolid(e, i ? "castleblockinvis" : "castleblock"), x && (e.balls = new Array(x), e.dt = .07 * (r ? 1 : -1), e.timeout = round(7 / (abs(r) || 1)), e.movement = castleBlockSpawn, e.timer = e.counter = 0, e.angle = .25, e.spawn_as_char = !0) +} + +function castleBlockSpawn(e) { + for (var t = 0; t < e.balls.length; ++t) { + spawn = new Thing(CastleFireBall, 4 * t); + var n = e.width * unitsized4, + x = e.left + n, + r = e.top + n; + e.balls[t] = addThing(spawn, x + t * unitsize * 3, r + t * unitsize * 3) + } + e.movement = !1; + abs(e.dt); + TimeHandler.addEventInterval(castleBlockEvent, e.timeout, 1 / 0, e) +} + +function castleBlockEvent(e) { + e.midx = e.left, e.midy = e.top, e.counter = 0, e.angle += e.dt; + for (var t = 1; t < e.balls.length; ++t) setMidX(e.balls[t], e.midx + t * unitsizet4 * Math.cos(e.angle * Math.PI), !0), setMidY(e.balls[t], e.midy + t * unitsizet4 * Math.sin(e.angle * Math.PI), !0) +} + +function CastleFireBall(e, t) { + e.width = e.height = 4, e.deadly = e.nofire = e.nocollidechar = e.nocollidesolid = e.nofall = e.nostar = e.outerok = e.skipoverlaps = !0, e.movement = !1, e.collide = collideEnemy, setCharacter(e, "fireball castle"), TimeHandler.addSpriteCycle(e, ["one", "two", "three", "four"], 4) +} + +function CastleBridge(e, t) { + e.height = 8, e.width = 8 * t || 4, e.spritewidth = 4, e.repeat = !0, setSolid(e, "CastleBridge") +} + +function CastleChain(e) { + e.height = 8, e.width = e.spritewidth = 7.5, e.nocollide = !0, setSolid(e, "castlechain") +} + +function CastleAxe(e) { + e.width = e.height = 8, e.spritewidth = e.spriteheight = 8, e.nocollide = !0, setSolid(e, "castleaxe"), TimeHandler.addSpriteCycle(e, ["one", "two", "three", "two"]) +} + +function CastleAxeFalls(e, t) { + var n = t.axe; + !e.player || e.right < n.left + unitsize || e.bottom > n.bottom - unitsize || (killNormal(n), killNormal(t), notime = nokeys = !0, thingStoreVelocity(e), killOtherCharacters(), TimeHandler.addEvent(killNormal, 7, n.chain), TimeHandler.addEvent(CastleAxeKillsBridge, 14, n.bridge, n), AudioPlayer.pauseTheme(), AudioPlayer.playTheme("World Clear", !1, !1)) +} + +function CastleAxeKillsBridge(e, t) { + e.width -= 2, e.right -= unitsizet2, e.width > 0 ? TimeHandler.addEvent(CastleAxeKillsBridge, 1, e, t) : (e.width = 0, TimeHandler.addEvent(CastleAxeKillsBowser, 1, t.bowser)), setWidth(e, e.width) +} + +function CastleAxeKillsBowser(e) { + e.nofall = !1, e.nothrow = !0, ++player.star, TimeHandler.addEvent(CastleAxeContinues, 35, player) +} + +function CastleAxeContinues(e) { + map.canscroll = !0, startWalking(e) +} + +function Toad(e) { + e.width = 16, e.height = e.spriteheight = 12, e.group = "toad", setSolid(e, "toad npc") +} + +function Peach(e) { + e.width = 16, e.height = e.spriteheight = 12, e.group = "peach", setSolid(e, "peach npc") +} + +function collideCastleNPC(e, t) { + killNormal(t), e.keys.run = 0, TimeHandler.addEvent((function(e) { + var t; + for (t = 0; t < e.length; ++t) TimeHandler.addEvent(proliferate, 70 * t, e[t].element, { + style: { + visibility: "visible" + } + }); + TimeHandler.addEvent(endLevel, 70 * (t + 3)) + }), 21, t.text) +} + +function TreeTop(e, t) { + e.width = 8 * t, e.height = 8, e.repeat = !0, setSolid(e, "treetop") +} + +function ShroomTop(e, t) { + e.width = 8 * t, e.height = 8, e.repeat = !0, setSolid(e, "shroomtop") +} + +function Platform(e, t, n) { + e.width = 4 * (t || 4), e.height = 4, e.spritewidth = 4, e.moving = 0, e.repeat = e.killonend = !0, "function" == typeof n && (n = [n]), n instanceof Array && (e.movement = n[0], e.begin = n[1] * unitsize, e.end = n[2] * unitsize, e.maxvel = (n[3] || 1.5) * unitsized4, e.movement == moveFloating || e.movement == movePlatformSpawn ? e.yvel = e.maxvel : e.xvel = e.maxvel, e.changing = 0), e.movement == collideTransport && (e.movement = !1, e.collide = collideTransport), setSolid(e, "platform") +} + +function PlatformGenerator(e, t, n) { + e.width = 4 * t, e.interval = 35, e.height = 6 * e.interval, e.dir = n, e.nocollide = e.hidden = !0, e.movement = PlatformGeneratorInit, setSolid(e, "platformgenerator") +} + +function PlatformGeneratorInit(e) { + for (var t = 0, n = e.interval, x = e.height; t < x; t += n) e.platlast = new Thing(Platform, e.width / 4, [movePlatformSpawn, 0, 0, 1.5]), e.platlast.yvel *= e.dir, 1 == e.dir ? addThing(e.platlast, e.left, e.top + t * unitsize) : addThing(e.platlast, e.left, e.bottom - t * unitsize), e.platlast.parent = e, t += e.interval; + e.movement = !1 +} + +function movePlatformSpawn(e) { + e.bottom < e.parent.top ? (setBottom(e, e.parent.bottom), detachPlayer(e)) : e.top > e.parent.bottom ? (setTop(e, e.parent.top), detachPlayer(e)) : movePlatformNorm(e) +} + +function movePlatformNorm(e) { + shiftHoriz(e, e.xvel), shiftVert(e, e.yvel), e == player.resting && e.alive && (setBottom(player, e.top), shiftHoriz(player, e.xvel), player.right > innerWidth && setRight(player, innerWidth)) +} + +function detachPlayer(e) { + player.resting == e && (player.resting = !1) +} + +function Scale(e, t, n) { + e.height = 5, e.width = 4 * t, e.spritewidth = e.spriteheight = 5, e.repeat = e.nocollide = !0, setSolid(e, "scale") +} + +function Flag(e) { + e.width = e.height = 8, e.nocollide = !0, setSolid(e, "flag") +} + +function FlagPole(e) { + e.width = 1, e.height = 72, e.nocollide = e.repeat = !0, setSolid(e, "flagpole") +} + +function FlagTop(e) { + e.spritewidth = e.spriteheight = e.width = e.height = 4, e.nocollide = !0, setSolid(e, "flagtop") +} + +function FlagDetector(e) { + e.width = 2, e.height = 100, e.collide = FlagCollision, setSolid(e, "flagdetector"), e.hidden = !0 +} + +function CastleDoorDetector(e) { + e.width = e.height = 4, e.collide = endLevelPoints, setSolid(e, "castledoor"), e.hidden = !0 +} + +function FlagCollision(e, t) { + if (!e || !e.player) return killNormal(e); + window.detector = t, AudioPlayer.pause(), AudioPlayer.play("Flagpole"), killOtherCharacters(), nokeys = notime = player.nofall = 1, player.xvel = player.yvel = player.keys.up = player.keys.jump = map.canscroll = map.ending = player.movement = 0, player.nocollidechar = !0, setRight(e, t.pole.left, !0), removeClasses(e, "running jumping skidding"), addClass(e, "climbing animated"), updateSize(e), TimeHandler.addSpriteCycle(e, ["one", "two"], "climbing"), playerRemoveStar(player); + var n = !1, + x = !1, + r = (t.stone.top - e.bottom) / unitsize, + i = setInterval((function() { + n || (e.bottom >= t.stone.top ? (scorePlayerFlag(r, t.stone), n = !0, setBottom(e, t.stone.top, !0), removeClass(player, "animated"), TimeHandler.clearClassCycle(player, "climbing")) : shiftVert(e, unitsize, !0)), x || (t.flag.bottom >= t.stone.top ? (x = !0, setBottom(t.flag, t.stone.top, !0)) : shiftVert(t.flag, unitsize, !0)), n && x && (setBottom(e, t.stone.top, !0), clearInterval(i), setTimeout((function() { + FlagOff(e, t.pole) + }), 21 * timer)), refillCanvas() + }), timer) +} + +function scorePlayerFlag(e, t) { + var n; + n = e < 28 ? e < 8 ? 100 : 400 : e < 40 ? 800 : e < 62 ? 2e3 : 5e3, score(player, n, !0) +} + +function FlagOff(e, t) { + player.keys.run = notime = nokeys = 1, player.maxspeed = player.walkspeed, flipHoriz(e), TimeHandler.clearClassCycle(e, "climbing"), setLeft(e, t.right, !0), setTimeout((function() { + AudioPlayer.play("Stage Clear"), playerHopsOff(e, t, !0) + }), 14 * timer) +} + +function endLevelPoints(e, t) { + if (e && e.player) { + notime = nokeys = !0, killNormal(t), killNormal(e); + var n = parseInt(getLast(String(data.time.amount))); + 1 != n && 3 != n && 6 != n && (n = 0); + var x = setInterval((function() { + --data.time.amount, data.score.amount += 50, updateDataElement(data.score), updateDataElement(data.time), AudioPlayer.play("Coin"), data.time.amount <= 0 && (clearInterval(x), setTimeout((function() { + endLevelFireworks(e, n, t) + }), 49 * timer)) + }), timer) + } +} + +function endLevelFireworks(e, t, n) { + var x, r, i = 0; + if (t) { + for (var a = n.left + 32 * unitsized2; i < t;) explodeFirework(++i, a); + x = timer * (i + 2) * 42 + } else x = 0; + r = function() { + setTimeout((function() { + endLevel() + }), x) + }, AudioPlayer.addEventImmediate("Stage Clear", "ended", (function() { + TimeHandler.addEvent(r, 35) + })) +} + +function explodeFirework(e, t) { + setTimeout((function() { + var n = new Thing(Firework, e); + addThing(n, t + n.locs[0] - 6 * unitsize, unitsizet16 + n.locs[1]), n.animate() + }), timer * e * 42) +} + +function Firework(e, t) { + if (e.width = e.height = 8, e.nocollide = e.nofire = e.nofall = !0, t) switch (t) { + case 1: + e.locs = [unitsizet16, unitsizet16]; + break; + case 2: + e.locs = [-unitsizet16, unitsizet16]; + break; + case 3: + e.locs = [2 * unitsizet16, 2 * unitsizet16]; + break; + case 4: + e.locs = [-2 * unitsizet16, 2 * unitsizet16]; + break; + case 5: + e.locs = [0, 1.5 * unitsizet16]; + break; + default: + e.locs = [0, 0] + } + e.animate = function() { + var t = e.className + " n"; + e.locs && AudioPlayer.play("Firework"), TimeHandler.addEvent((function(e) { + setClass(e, t + 1) + }), 0, e), TimeHandler.addEvent((function(e) { + setClass(e, t + 2) + }), 7, e), TimeHandler.addEvent((function(e) { + setClass(e, t + 3) + }), 14, e), TimeHandler.addEvent((function(e) { + killNormal(e) + }), 21, e) + }, setCharacter(e, "firework"), score(e, 500) +} + +function Coral(e, t) { + e.width = 8, e.height = 8 * t, e.repeat = !0, setSolid(e, "coral") +} + +function BridgeBase(e, t) { + e.height = 4, e.spritewidth = 4, e.width = 8 * t, e.repeat = !0, setSolid(e, "bridge-base") +} + +function WarpWorld(e) { + e.width = 106, e.height = 88, e.movement = setWarpWorldInit, e.collide = enableWarpWorldText, e.pirhanas = [], e.pipes = [], e.texts = [], e.hidden = !0, setSolid(e, "warpworld") +} + +function setWarpWorldInit(e) { + shiftHoriz(e, e.width * unitsized2), e.width /= 2, updateSize(e), e.movement = !1 +} + +function enableWarpWorldText(e, t) { + var n, x = t.pirhanas, + r = t.texts; + for (n in x) x[n].death(); + for (n in r) r[n].element.style.visibility = ""; + killNormal(t) +} + +function resetScenery() { + window.Scenery = { + sprites: { + BrickHalf: [8, 4], + BrickPlain: [8, 8], + Bush1: [16, 8], + Bush2: [24, 8], + Bush3: [32, 8], + Castle: [75, 88], + CastleDoor: [8, 20], + CastleRailing: [8, 4], + CastleRailingFilled: [8, 4], + CastleTop: [12, 12], + CastleWall: [8, 48], + Cloud1: [16, 12], + Cloud2: [24, 12], + Cloud3: [32, 12], + HillSmall: [24, 9.5], + HillLarge: [40, 17.5], + Fence: [8, 8], + Pirhana: [8, 12], + pirhana: [8, 12], + PlantSmall: [7, 15], + PlantLarge: [8, 23], + Railing: [4, 4], + ShroomTrunk: [8, 8], + String: [1, 1], + TreeTrunk: [8, 8], + Water: { + 0: 4, + 1: 5, + spriteCycle: ["one", "two", "three", "four"] + }, + WaterFill: [4, 5] + }, + patterns: { + backreg: [ + ["HillLarge", 0, 0], + ["Cloud1", 68, 68], + ["Bush3", 92, 0], + ["HillSmall", 128, 0], + ["Cloud1", 156, 76], + ["Bush1", 188, 0], + ["Cloud3", 220, 68], + ["Cloud2", 292, 76], + ["Bush2", 332, 0], + ["Blank", 384] + ], + backcloud: [ + ["Cloud2", 28, 64], + ["Cloud1", 76, 32], + ["Cloud2", 148, 72], + ["Cloud1", 228, 0], + ["Cloud1", 284, 32], + ["Cloud1", 308, 40], + ["Cloud1", 372, 0], + ["Blank", 384] + ], + backcloudmin: [ + ["Cloud1", 68, 68], + ["Cloud1", 156, 76], + ["Cloud3", 220, 68], + ["Cloud2", 292, 76], + ["Blank", 384] + ], + backfence: [ + ["PlantSmall", 88, 0], + ["PlantLarge", 104, 0], + ["Fence", 112, 0, 4], + ["Cloud1", 148, 68], + ["PlantLarge", 168, 0], + ["PlantSmall", 184, 0], + ["PlantSmall", 192, 0], + ["Cloud1", 220, 76], + ["Cloud2", 244, 68], + ["Fence", 304, 0, 2], + ["PlantSmall", 320, 0], + ["Fence", 328, 0], + ["PlantLarge", 344, 0], + ["Cloud1", 364, 76], + ["Cloud2", 388, 68], + ["Blank", 384] + ], + backfencemin: [ + ["PlantLarge", 104, 0], + ["Fence", 112, 0, 4], + ["Cloud1", 148, 68], + ["PlantLarge", 168, 0], + ["PlantSmall", 184, 0], + ["PlantSmall", 192, 0], + ["Cloud1", 220, 76], + ["Cloud2", 244, 68], + ["Fence", 304, 0, 2], + ["PlantSmall", 320, 0], + ["Fence", 328, 0], + ["Cloud1", 364, 76], + ["Cloud2", 388, 68], + ["Blank", 384] + ], + backfencemin2: [ + ["Cloud2", 4, 68], + ["PlantSmall", 88, 0], + ["PlantLarge", 104, 0], + ["Fence", 112, 0, 1], + ["Fence", 128, 0, 2], + ["Cloud1", 148, 68], + ["PlantSmall", 184, 0], + ["PlantSmall", 192, 0], + ["Cloud1", 220, 76], + ["Cloud2", 244, 68], + ["Fence", 304, 0, 2], + ["PlantSmall", 320, 0], + ["Fence", 328, 0], + ["PlantLarge", 344, 0], + ["Cloud1", 364, 76], + ["Cloud2", 388, 68], + ["Blank", 384] + ], + backfencemin3: [ + ["Cloud2", 4, 68], + ["PlantSmall", 88, 0], + ["PlantLarge", 104, 0], + ["Fence", 112, 0, 4], + ["Cloud1", 148, 68], + ["PlantSmall", 184, 0], + ["PlantSmall", 192, 0], + ["Cloud1", 220, 76], + ["Cloud2", 244, 68], + ["Cloud1", 364, 76], + ["Cloud2", 388, 68], + ["Blank", 384] + ] + } + }, processSceneryPatterns(Scenery.patterns) +} + +function processSceneryPatterns(e) { + var t, n; + for (n in e)(t = e[n]).length && (t.width = t[t.length - 1][1], t.pop()) +} + +function SceneryBlocker(e, t, n) { + e.width = t || 8, e.height = n || 8, e.nocollide = e.hidden = !0, setSolid(e, "sceneryblocker") +} + +function Sprite(e, t, n) { + n || (n = [1, 1]); + var x = e.template = Scenery.sprites[t]; + x ? (e.width = (e.spritewidth = x[0]) * (n[0] || 1), e.height = (e.spriteheight = x[1]) * (n[1] || 1), e.unitwidth = e.spritewidth * unitsize, e.unitheight = e.spriteheight * unitsize, e.nocollide = e.maxquads = 1, e.repeat = !0, setScenery(e, "scenery " + t), e.title = t, x.spriteCycleTimer && TimeHandler.addSpriteCycle(e, spriteCycleTimer, spriteCycleTimer || void 0)) : log("No sprite template found for", t) +} + +function LocationShifter(e, t, n) { + e.loc = t, e.width = n[0], e.height = n[1], e.collide = collideLocationShifter, e.hidden = !0, setSolid(e, "blue") +} + +function collideLocationShifter(e, t) { + e.player && (t.nocollide = player.piping = !0, TimeHandler.addEvent((function(e) { + shiftToLocation(t.loc), map.random && entryRandom(e) + }), 1, e)) +} + +function ScrollBlocker(e, t) { + e.width = 40, e.height = 140, e.nocollide = e.hidden = !0, e.big = t, e.movement = function() { + e.left - player.xvel <= gamescreen.right - gamescreen.left && (map.canscroll = e.movement = !1, map.noscroll = e.big) + }, setSolid(e, "scrollblocker") +} + +function ScrollEnabler(e) { + e.width = 40, e.height = 140, e.hidden = !0, e.collide = function() { + e.left - player.xvel <= gamescreen.right - gamescreen.left && (map.canscroll = e.nocollide = !0) + }, setSolid(e, "scrollenabler") +} + +function zoneToggler(e, t) { + e.width = 40, e.height = 140, e.func = t, e.hidden = !0, e.collide = function(e, t) { + t.func(), t.nocollide = !0 + }, setSolid(e, "zonetoggler " + t.name) +} + +function GenerationStarter(e, t, n) { + e.width = 8, e.height = gamescreen.height + 20, e.func = t, e.arg = n, e.collide = function(e, t) { + if ("player" != e.type) return !1; + spawnMap(), killNormal(t) + }, e.movement = function(e) { + e.movement = !1, addClass(e, "used"), e.func((gamescreen.left + e.right) / unitsize, e.arg) + }, setSolid(e, "generationstarter"), e.hidden = !0 +} + +function castleDecider(e, t, n) { + e.height = ceilmax, e.width = 10, e.nocollide = !0, e.xloc = t, e.section = map.area.sections[n], e.next = map.area.sections[n + 1], e.movement = function(e) { + if (!(e.left > gamescreen.right - gamescreen.left) && e.section.activated) { + var t = e.section; + t.numpass = t.colliders.length = 0, t.passed ? (++map.area.sections.current, e.next(e.xloc)) : t(e.xloc), t.activated = t.passed = !1, spawnMap(), killNormal(e) + } + }, setSolid(e, "decider blue " + n), e.hidden = !0 +} + +function FuncCollider(e, t, n) { + n ? (e.width = n[0], e.height = n[1]) : (e.width = 8, e.height = ceilmax + 40), e.collide = t, e.hidden = !0, setSolid(e, "funccollider blue " + t.name) +} + +function FuncSpawner(e, t, n) { + e.width = 8, e.height = 8, e.movement = function() { + t(e, n) + }, e.argument = n, e.nocollide = e.hidden = !0, setSolid(e, "funccollider blue " + t.name) +} + +function Collider(e, t, n) { + e.width = t[0], e.height = t[1], n instanceof Array ? (e.func = n[0] || function() {}, e.movement = n[1] || function() {}) : (e.func = n || function() {}, e.movement = !1), e.collide = function(e, t) { + if (!e.player) return !1; + t.func(e, t) + }, setSolid(e, "collider blue " + e.func.name), e.hidden = !0 +} + +function TonedJS(e) { + var t = { + giveSup: function(e, t) { + for (var n in t = t || {}, e) t[n] = e[n]; + return t + }, + giveSub: function(e, t) { + for (var n in t = t || {}, e) t.hasOwnProperty(n) || (t[n] = e[n]); + return t + }, + proliferate: function(e, t, n) { + var x, r; + for (r in t) n && e.hasOwnProperty(r) || ("object" == typeof(x = t[r]) && null != x ? (e.hasOwnProperty(r) || (e[r] = x instanceof Array ? [] : {}), proliferate(e[r], x, n)) : e[r] = x); + return e + }, + getFirst: function(e, t) { + for (var n in e) return t ? n : e[n] + }, + getLast: function(e, t) { + for (var n in e); + return t ? n : e[n] + }, + followPath: function(e, t, n) { + return null != t[n] && null != e[t[n]] ? followPath(e[t[n]], t, ++n) : e + }, + createElement: function(e) { + for (var t = document.createElement(e || "div"), n = arguments.length; --n > 0;) proliferate(t, arguments[n]); + return t + }, + classAdd: function(e, t) { + e.className += " " + t + }, + classRemove: function(e, t) { + e.className = e.className.replace(new RegExp(" " + t, "gm"), "") + }, + elementSetPosition: function(e, t, n) { + null == t && (t = e.left), null == n && (n = e.top), proliferate(e, { + left: t, + top: n, + style: { + marginLeft: t + "px", + marginTop: n + "px" + } + }) + }, + elementShiftLeft: function(e, t) { + e.left || (e.left = Number(e.style.marginLeft.replace("px", ""))), e.style.marginLeft = round(e.left += t) + "px" + }, + elementShiftTop: function(e, t) { + e.top || (e.top = Number(e.style.marginLeft.replace("px", ""))), e.style.marginTop = round(e.top += t) + "px" + }, + removeChildSafe: function(e, t) { + e && (t = t || document.body).contains(e) && t.removeChild(e) + }, + findParentOfType: function(e, t) { + var n = e.parentElement; + return n && n.nodeName != t ? findParentType(n, t) : n + }, + clearAllTimeouts: function() { + for (var e = setTimeout((function() {})); e--;) clearTimeout(e) + }, + stringTrim: function(e) { + return e.replace(/^\s+|\s+$/g, "") + }, + stringOf: function(e, t) { + return 0 == t ? "" : new Array(1 + (t || 1)).join(e) + }, + stringHas: function(e, t) { + return -1 != e.indexOf(t) + }, + stringHasI: function(e, t) { + return -1 != e.toLowerCase().indexOf(t.toLowerCase()) + }, + capitalizeFirst: function(e, t) { + return t = t || 1, e.substr(0, t).toUpperCase() + e.substr(t).toLowerCase() + }, + ArrayD: function(e) { + if (1 == arguments.length) return new Array(e); + var t, n = arrayMake(arguments), + x = new Array(e); + for (n.shift(), t = e - 1; t >= 0; --t) x[t] = ArrayD.apply(this, n); + return x + }, + arrayOf: function(e, t) { + t = t || 1; + for (var n = new Array(t); t--;) n[t] = e; + return n + }, + arrayMake: function(e) { + return Array.prototype.slice.call(e) + }, + arrayRange: function(e, t) { + for (var n = 1 + t - e, x = new Array(n), r = e, i = 0; i < n;) x[i++] = r++; + return x + }, + arrayShuffle: function(e, t, n) { + t = t || 0, n = n || e.length; + for (var x, r, i = t; i <= n; ++i) r = randInt(i + 1), x = e[i], e[i] = e[r], e[r] = x; + return e + }, + removeDuplicates: function(e) { + var t, n, x, r, i, a = []; + for (r = 0, x = e.length; r < x; ++r) { + for (t = e[r], n = !1, i = 0; i < r; ++i) + if (e[i] == t) { + n = !0; + break + } + n || a.push(t) + } + return a + }, + makeDigit: function(e, t, n) { + return e = String(e), stringOf(n || 0, max(0, t - e.length)) + e + }, + roundDigit: function(e, t) { + return Number(t ? ~~(.5 + e / t) * t : round(e)) + }, + sign: function(e) { + return e ? e < 0 ? -1 : 1 : 0 + }, + round: function(e) { + return ~~(.5 + e) + }, + max: Math.max, + min: Math.min, + abs: Math.abs, + pow: Math.pow, + ceil: Math.ceil, + floor: Math.floor, + random: Math.random, + randInt: function(e) { + return floor(Math.random() * (e || 1)) + }, + signBool: function(e) { + return e > 0 + }, + log: console.log.bind(console), + now: Date.now + }; + return e && t.giveSub(t, window), t +} + +function resetTriggers() { + window.controls = new Controls({ + left: [37, 65, "AXIS_LEFT", "DPAD_LEFT"], + right: [39, 68, "AXIS_RIGHT", "DPAD_RIGHT"], + up: [38, 87, 32, "FACE_1", "DPAD_UP", "LEFT_BOTTOM_SHOULDER"], + down: [40, 83, "AXIS_DOWN", "DPAD_DOWN"], + sprint: [16, 17, "FACE_1"], + pause: [80, "START_FORWARD"], + mute: [77], + q: [81], + l: [76] + }), window.gamepad = new Gamepad, gamepad.bind(Gamepad.Event.BUTTON_DOWN, ControlsPipe("keydown", !0)), gamepad.bind(Gamepad.Event.BUTTON_UP, ControlsPipe("keyup", !1)), gamepad.bind(Gamepad.Event.AXIS_CHANGED, (function(e) { + var t = e.value, + n = abs(t); + if (!(n < .1)) switch (e.axis) { + case "LEFT_STICK_Y": + case "RIGHT_STICK_Y": + n > .5 ? keydown(t > 0 ? "DPAD_DOWN" : "DPAD_UP") : (keyup("DPAD_UP"), keyup("DPAD_DOWN")); + break; + case "LEFT_STICK_X": + case "RIGHT_STICK_X": + n > .5 ? keydown(t < 0 ? "DPAD_LEFT" : "DPAD_RIGHT") : (keyup("DPAD_UP"), keyup("DPAD_DOWN")) + } + })), gamepad.init(), proliferate(body, { + onkeydown: ControlsPipe("keydown", !0), + onkeyup: ControlsPipe("keyup", !1), + oncontextmenu: contextmenu, + onmousedown: mousedown + }), setMessageTriggers() +} + +function Controls(e, t) { + this.pipes = e; + var n, x, r, i, a = this.keydown = { + left: function(e) { + e.run = -1, e.left_down = !0 + }, + right: function(e) { + e.run = 1, e.right_down = !0 + }, + up: function(e) { + e.up = !0, player.canjump && (player.resting || map.underwater) && (e.jump = 1, player.canjump = e.jumplev = 0, AudioPlayer.play(player.power > 1 ? "Jump Super" : "Jump Small"), map.underwater && setTimeout((function() { + player.jumping = e.jump = !1 + }), 14 * timer)) + }, + down: function(e) { + e.crouch = !0 + }, + sprint: function(e) { + 3 != player.power || 0 != e.sprint || e.crouch || player.fire(), e.sprint = 1 + }, + pause: function(e) { + paused || window.editing && !editor.playing || setTimeout((function() { + pause(!0) + }), 140) + }, + mute: function(e) { + AudioPlayer.toggleMute() + }, + q: function(e) { + switch (++qcount > 28 && maxlulz(), qcount) { + case 7: + lulz(); + break; + case 14: + superlulz(); + break; + case 21: + hyperlulz() + } + }, + l: function(e) { + toggleLuigi() + } + }, + o = this.keyup = { + left: function(e) { + e.run = 0, e.left_down = !1 + }, + right: function(e) { + e.run = 0, e.right_down = !1 + }, + up: function(e) { + map.underwater || (e.jump = e.up = 0), player.canjump = !0 + }, + down: function(e) { + e.crouch = 0, removeCrouch() + }, + sprint: function(e) { + e.sprint = 0 + }, + pause: function(e) { + unpause(!0) + } + }; + for (n in e) + for (i in x = e[n]) a[r = x[i]] = a[n], o[r] = o[n] +} + +function ControlsPipe(e, t) { + var n = controls[e]; + return function(x) { + t && (player && player.dead || window.paused) || window.nokeys || (("number" != typeof x || x.which || x.control) && (x = x.which || x.control), n[x] ? n[x](player.keys) : mlog(e, "Could not", e, x), window.gamehistory[gamecount] = [keydown, x]) + } +} + +function keydown(e) { + if (!(player && player.dead || window.paused || window.nokeys)) { + var t = controls.keydown; + ("object" == typeof e || e.which) && (e = e.which), t[e] && t[e](player.keys), window.gamehistory[gamecount] = [keydown, e] + } +} + +function keyup(e) { + if (!window.nokeys) { + var t = controls.keyup; + ("object" == typeof e || e.which) && (e = e.which), t[e] && t[e](player.keys), window.gamehistory[gamecount] = [keyup, e] + } +} + +function contextmenu(e) { + e.preventDefault && e.preventDefault() +} + +function mousedown(e) { + 3 == e.which && (paused ? unpause() : window.editor && (editing || editor.playing) || pause(!0), e.preventDefault && e.preventDefault()) +} + +function scriptKeys(e) { + var t, n; + for (t in e) n = e[t], TimeHandler.addEvent(n[0], t, n[1]), TimeHandler.addEvent((function() { + alert(n[0].name + ", " + n[1]) + }), t) +} + +function lulz(e, t) { + player.star = !0, e = e || [Goomba], t = t || 7, TimeHandler.addEventInterval((function() { + if (!(characters.length > 210)) { + var t = new Thing(e[randInt(e.length)], randBoolJS(), randBoolJS()); + t.yvel = random() * -unitsizet4, t.xvel = t.speed = random() * unitsizet2 * randSign(), addThing(t, (32 * random() + 128) * unitsize, 88 * random() * unitsize) + } + }), t, 1 / 0) +} + +function superlulz() { + lulz([Goomba, Koopa, Beetle, HammerBro, Lakitu, Podoboo, Blooper]) +} + +function hyperlulz() { + lulz([Bowser], 21) +} + +function maxlulz() { + TimeHandler.addEventInterval((function(e) { + setAreaSetting(e[randInt(e.length)]) + }), 7, 1 / 0, ["Overworld", "Underworld", "Underwater", "Sky", "Castle"]) +} + +function mapKeyToControl(e, t) { + if (-1 == window.controls.pipes[e].indexOf(t)) { + window.controls.pipes[e].push(t); + var n = window.controls.pipes; + window.controls = new Controls(n), proliferate(body, { + onkeydown: ControlsPipe("keydown", !0), + onkeyup: ControlsPipe("keyup", !1), + oncontextmenu: contextmenu, + onmousedown: mousedown + }) + } +} + +function setMessageTriggers() { + var e = { + setMap: triggerSetMap, + startEditor: function() { + loadEditor() + }, + toggleOption: function(e) { + var t = "toggle" + e.option; + console.log(t, window[t]), window[t] ? window[t]() : log("Could not toggle", t) + }, + setKey: function(e) { + mapKeyToControl(e.action, e.keyCode) + } + }; + window.addEventListener("message", (function(t) { + var n = t.data, + x = n.type; + e[x] ? e[x](n) : console.log("Unknown event type received:", x, ".\n", n) + })) +} + +function triggerSetMap(e) { + clearPlayerStats(), setMap.apply(this, e.map || []), setLives(3) +} + +function upkeep() { + if (!window.paused) { + window.nextupk = setTimeout(upkeep, timer); + for (var e = window.speed; e > 0; --e) adjustFPS(), QuadsKeeper.determineAllQuadrants(solids), maintainSolids(), maintainCharacters(), maintainPlayer(), texts.length && maintainTexts(), TimeHandler.handleEvents(), refillCanvas() + } +} + +function adjustFPS() { + window.time_now = now(); + var e = time_now - time_prev, + t = roundDigit(1e3 / e, .001); + window.fps = roundDigit(.7 * fps + .3 * t, .01), window.realtime = fps_target / fps, window.time_prev = time_now +} + +function pause(e) { + paused && !window.nextupk || (cancelAnimationFrame(nextupk), AudioPlayer.pause(), paused = !0, e && AudioPlayer.play("Pause")) +} + +function unpause() { + paused && (window.nextupk = requestAnimationFrame(upkeep), paused = !1, AudioPlayer.resume()) +} + +function maintainSolids(e) { + for (var t, n = 0; n < solids.length; ++n)(t = solids[n]).alive && t.movement && t.movement(t), (!t.alive || t.right < QuadsKeeper.getDelX()) && deleteThing(t, solids, n) +} + +function maintainCharacters(e) { + var t, n, x = gamescreen.right + QuadsKeeper.getOutDifference(); + for (n = 0; n < characters.length; ++n)(t = characters[n]).resting ? t.yvel = 0 : (t.nofall || (t.yvel += t.gravity || map.gravity), t.yvel = min(t.yvel, map.maxyvel)), updatePosition(t), QuadsKeeper.determineThingQuadrants(t), t.under = t.undermid = !1, determineThingCollisions(t), t.resting && (characterOnResting(t, t.resting) ? (t.yvel = !1, setBottom(t, t.resting.top)) : t.resting = !1), t.alive ? "player" == t.type || map.shifting || !(0 == t.numquads || t.left > x) || t.outerok ? !t.nomove && t.movement && t.movement(t) : deleteThing(t, characters, n) : map.shifting || deleteThing(t, characters, n) +} + +function maintainPlayer(e) { + if (player.alive) { + if (player.yvel > 0 && (map.underwater || (player.keys.jump = 0), player.jumping || (map.underwater ? player.paddling || (switchClass(player, "paddling", "paddling"), player.padding = !0) : (addClass(player, "jumping"), player.jumping = !0)), !player.piping && !player.dying && player.top > gamescreen.deathheight)) { + if (map.exitloc) return map.random ? (goToTransport(["Random", "Overworld", "Down"]), void playerDropsIn()) : shiftToLocation(map.exitloc); + clearPlayerStats(), killPlayer(player, 2) + } + player.xvel > 0 ? player.right > gamescreen.middlex && player.right > gamescreen.right - gamescreen.left && (player.xvel = min(0, player.xvel)) : player.left < 0 && (player.xvel = max(0, player.xvel)), player.under && (player.jumpcount = 0), window.scrolloffset = map.canscroll * (player.right - gamescreen.middlex), scrolloffset > 0 && !map.shifting ? scrollWindow(lastscroll = round(min(player.scrollspeed, scrolloffset))) : lastscroll = 0 + } +} + +function maintainTexts() { + var e, t, n; + for (n = texts.length - 1; n >= 0; --n) e = (t = texts[n]).element || t, t.xvel && elementShiftLeft(e, t.xvel), t.yvel && elementShiftTop(e, t.yvel) +} + +function followPath(e, t, n) { + return null != t[n] && null != e[t[n]] ? followPath(e[t[n]], t, ++n) : e +} + +function clearAllTimeouts() { + for (var e = setTimeout((function() {})); e--;) clearTimeout(e) +} + +function getCanvas(e, t, n) { + var x = createElement("canvas", { + width: e, + height: t + }); + return n && (n = n || unitsize, proliferate(x.style, { + width: e * n + "px", + height: t * n + "px" + })), x.getContext("2d").webkitImageSmoothingEnabled = !1, x +} + +function step(e) { + unpause(), upkeep(), pause(), e > 0 && step(e - 1) +} + +function fastforward(e) { + window.speed = max(0, parseInt(e || 0)) + 1 +} + +function toggleFastFWD(e) { + window.fastforwarding ? (fastforward(0), window.fastforwarding = !1) : (fastforward(2), window.fastforwarding = !0) +} + +function specifyTimer(e) { + timer = e, requestAnimationFrame = function(e) { + window.setTimeout(e, timer) + } +} + +function changeUnitsize(e) { + function t(e) { + for (i in e) updateSize(e[i]), updatePosition(e[i]) + } + e && (resetUnitsize(e), t(solids), t(characters)) +} + +function randTrue(e) { + return floor(getSeed() * ((e || 1) + 1)) +} + +function randSign(e) { + return 2 * randTrue(e) - 1 +} + +function randBoolJS(e) { + return floor(2 * random()) +} + +function updatePosition(e) { + e.nomove || shiftHoriz(e, e.xvel), e.nofall || shiftVert(e, e.yvel) +} + +function updateSize(e) { + var t; + e.unitwidth = e.width * unitsize, e.unitheight = e.height * unitsize, e.spritewidthpixels = e.spritewidth * unitsize, e.spriteheightpixels = e.spriteheight * unitsize, (t = e.canvas) && (t.width = e.spritewidthpixels, t.height = e.spriteheightpixels, refillThingCanvas(e)) +} + +function reduceHeight(e, t, n) { + e.top += t, e.height -= t / unitsize, n && updateSize(e) +} + +function shiftBoth(e, t, n) { + e.noshiftx || shiftHoriz(e, t), e.noshifty || shiftVert(e, n) +} + +function shiftHoriz(e, t) { + e.left += t, e.right += t +} + +function shiftVert(e, t) { + e.top += t, e.bottom += t +} + +function setLeft(e, t) { + e.left = t, e.right = e.left + e.width * unitsize +} + +function setRight(e, t) { + e.right = t, e.left = e.right - e.width * unitsize +} + +function setTop(e, t) { + e.top = t, e.bottom = e.top + e.height * unitsize +} + +function setBottom(e, t) { + e.bottom = t, e.top = e.bottom - e.height * unitsize +} + +function setWidth(e, t, n, x) { + e.width = t, e.unitwidth = t * unitsize, n && (e.spritewidth = t, e.spritewidthpixels = t * unitsize), x && (updateSize(e), setThingSprite(e)) +} + +function setHeight(e, t, n, x) { + e.height = t, e.unitheight = t * unitsize, n && (e.spriteheight = t, e.spriteheightpixels = t * unitsize), x && (updateSize(e), setThingSprite(e)) +} + +function setSize(e, t, n, x, r) { + t && setWidth(e, t, x), n && setHeight(e, n, x), r && (updateSize(e), setThingSprite(e)) +} + +function setMidX(e, t, n) { + setLeft(e, t + e.width * unitsized2, n) +} + +function getMidX(e) { + return e.left + e.width * unitsized2 +} + +function setMidY(e, t, n) { + setTop(e, t + e.height * unitsized2, n) +} + +function setMidXObj(e, t, n) { + setLeft(e, t.left + t.width * unitsized2 - e.width * unitsized2, n) +} + +function slideToXLoc(e, t, n, x) { + n = n || 1 / 0; + var r = getMidX(e); + shiftHoriz(e, r < t ? min(n, t - r) : max(-n, t - r), x) +} + +function updateLeft(e, t) { + e.left += t, e.right = e.left + e.width * unitsize +} + +function updateRight(e, t) { + e.right += t, e.left = e.right - e.width * unitsize +} + +function updateTop(e, t) { + e.top += t, e.bottom = e.top + e.height * unitsize +} + +function updateBottom(e, t) { + e.bottom += t, e.top = e.bottom - e.height * unitsize +} + +function increaseHeightTop(e, t, n) { + e.top -= t, e.height += t / unitsize, e.unitheight = e.height * unitsize +} + +function determineThingCollisions(e) { + if (!e.nocollide) { + var t, n, x, r, i, a, o; + for (e.resting && 0 != e.resting.yvel || (e.resting = !1), e.skipoverlaps || checkOverlap(e), r = 0, a = e.numquads; r < a; ++r) + for (n = (t = e.quadrants[r]).things, i = 0, o = t.numthings; i < o && e != (x = n[i]); ++i) !x.alive || x.scenery || x.nocollide || !objectsTouch(e, x) || !e.player && x.hidden && x.visual_scenery && x.visual_scenery.hidden && !solidOnCharacter(x, e) || (x.character ? objectsCollided(e, x) : e.nocollidesolid || (objectsCollided(e, x), e.skipoverlaps || x.skipoverlaps || !characterOverlapsSolid(e, x) || e.overlaps.push(x))); + e.undermid ? e.undermid.bottomBump(e.undermid, e) : e.under instanceof Thing && e.under.bottomBump(e.under, e) + } +} + +function checkOverlap(e) { + if (e.overlapdir) e.overlapdir < 0 && e.right <= e.ocheck.left + unitsizet2 || e.left >= e.ocheck.right - unitsizet2 ? (e.overlapdir = 0, e.overlaps = []) : shiftHoriz(e, e.overlapdir, !0); + else if (e.overlaps.length > 0) { + var t, n, x = e.overlaps, + r = { + right: -1 / 0 + }, + i = { + left: 1 / 0 + }, + a = 0; + for (n in e.overlapfix = !0, x) a += getMidX(t = x[n]), t.right > r.right && (r = t), t.left < i.left && (i = t); + a /= x.length, getMidX(e) >= a - unitsized16 ? (e.overlapdir = unitsize, e.ocheck = r) : (e.overlapdir = -unitsize, e.ocheck = i) + } +} + +function characterOverlapsSolid(e, t) { + return e.top <= t.top && e.bottom > t.bottom +} + +function objectsTouch(e, t) { + return e.right - unitsize > t.left && e.left + unitsize < t.right && e.bottom >= t.top && e.top <= t.bottom +} + +function charactersTouch(e, t) { + return !(e.bottom <= t.top + unitsizet2 || e.top + unitsizet2 >= t.bottom) +} + +function objectInQuadrant(e, t) { + return e.right + unitsize >= t.left && e.left - unitsize <= t.right && e.bottom + unitsize >= t.top && e.top - unitsize <= t.bottom +} + +function objectsCollided(e, t) { + return e.solid && !t.solid ? objectsCollided(t, e) : t.up && e != t.up ? characterTouchesUp(e, t) : void(t.solid || e.player ? t.collide(e, t) : e.collide(t, e)) +} + +function objectToLeft(e, t) { + return (e.left + e.right) / 2 < (t.left + t.right) / 2 +} + +function objectOnTop(e, t) { + return !("solid" == e.type && t.yvel > 0) && (!(e.yvel < t.yvel && "solid" != t.type) && (!!(e.player && e.bottom < t.bottom && "enemy" == t.group) || e.left + unitsize < t.right && e.right - unitsize > t.left && (e.bottom - t.yvel <= t.top + t.toly || e.bottom <= t.top + t.toly + abs(e.yvel - t.yvel)))) +} + +function objectOnSolid(e, t) { + return e.left + unitsize < t.right && e.right - unitsize > t.left && (e.bottom - e.yvel <= t.top + t.toly || e.bottom <= t.top + t.toly + abs(e.yvel - t.yvel)) +} + +function solidOnCharacter(e, t) { + return !(t.yvel >= 0) && (t.midx = getMidX(t), t.midx > e.left && t.midx < e.right && e.bottom - e.yvel <= t.top + t.toly - t.yvel) +} + +function characterOnSolid(e, t) { + return e.resting == t || objectOnSolid(e, t) && e.yvel >= 0 && e.left + e.xvel + unitsize != t.right && e.right - e.xvel - unitsize != t.left +} + +function characterOnResting(e, t) { + return objectOnSolid(e, t) && e.left + e.xvel + unitsize != t.right && e.right - e.xvel - unitsize != t.left +} + +function characterTouchedSolid(e, t) { + if (t.up != e) { + if (characterOnSolid(e, t)) { + if (t.hidden) return; + e.resting = t, e.player && map.underwater && removeClass(e, "paddling") + } else if (solidOnCharacter(t, e)) { + var n = e.left + e.width * unitsize / 2; + if (n > t.left && n < t.right) e.undermid = t; + else if (t.hidden) return; + e.under ? e.under.push(t) : e.under = [t], e.player && setTop(e, t.bottom - e.toly + t.yvel, !0), e.yvel = t.yvel, e.player && (e.keys.jump = 0) + } + t.hidden || characterNotBumping(e, t) || objectOnTop(e, t) || objectOnTop(t, e) || e.under || e == t.up || (e.right <= t.right ? (e.xvel = min(e.xvel, 0), shiftHoriz(e, max(t.left + unitsize - e.right, -unitsized2), !0)) : e.left >= t.left && (e.xvel = max(e.xvel, 0), shiftHoriz(e, min(t.right - unitsize - e.left, unitsized2), !0)), e.player ? t.actionLeft && t.actionLeft(e, t, t.transport) : (e.moveleft = !e.moveleft, "item" == e.group && e.collide(t, e))) + } +} + +function characterNotBumping(e, t) { + return e.top + e.toly + abs(e.yvel) > t.bottom +} + +function characterTouchesUp(e, t) { + switch (e.group) { + case "item": + e.moveleft = getMidX(e) <= getMidX(t) + unitsized2, characterHops(e); + break; + case "coin": + e.animate(e); + break; + default: + e.death(e, 2), scoreEnemyBelow(e) + } +} + +function characterHops(e) { + e.yvel = -1.4 * unitsize, e.resting = !1 +} + +function characterIsAlive(e) { + return !(!e || e.dead || !e.alive) +} + +function scorePlayerShell(e, t) { + return e.star ? score(t, 200, !0) : t.resting ? t.peeking ? score(t, 1e3, !0) : score(t, 100, !0) : score(t, 8e3, !0) +} + +function scoreEnemyStomp(e) { + switch (e.type.split(" ")[0]) { + case "koopa": + e.fly ? 400 : 100; + break; + case "bulletbill": + case "cheepcheep": + 200; + break; + case "hammerbro": + 1e3; + break; + case "lakitu": + 800; + break; + default: + 100 + } +} + +function scoreEnemyFire(e) { + var t = 200; + switch (e.type.split(" ")[0]) { + case "goomba": + t = 100; + break; + case "hammerbro": + t = 1e3; + break; + case "bowser": + t = 5e3; + break; + default: + t = 200 + } + scoreEnemyFin(e, t) +} + +function scoreEnemyStar(e) { + var t = 200; + switch (e.type.split(" ")[0]) { + case "goomba": + t = 100; + break; + case "hammerbro": + t = 1e3; + break; + default: + t = 200 + } + scoreEnemyFin(e, t), AudioPlayer.play("Kick") +} + +function scoreEnemyBelow(e) { + var t = 100; + switch (e.type.split(" ")[0]) { + case "hammerbro": + t = 1e3; + break; + default: + t = 100 + } + scoreEnemyFin(e, t) +} + +function scoreEnemyFin(e, t) { + score(e, t, !0) +} + +function moveSimple(e) { + e.direction != e.moveleft && (e.moveleft ? (e.xvel = -e.speed, e.noflip || unflipHoriz(e)) : (e.noflip || flipHoriz(e), e.xvel = e.speed), e.direction = e.moveleft) +} + +function moveSmart(e) { + moveSimple(e), 0 != e.yvel || e.resting && !offResting(e) || (e.moveleft ? shiftHoriz(e, unitsize, !0) : shiftHoriz(e, -unitsize, !0), e.moveleft = !e.moveleft) +} + +function offResting(e) { + return e.moveleft ? e.right - unitsize < e.resting.left : e.left + unitsize > e.resting.right +} + +function moveJumping(e) { + moveSimple(e), e.resting && (e.yvel = -abs(e.jumpheight), e.resting = !1) +} + +function moveFloating(e) { + setPlatformEndpoints(e), e.begin = map.floor * unitsize - e.begin, e.end = map.floor * unitsize - e.end, (e.movement = moveFloatingReal)(e) +} + +function moveFloatingReal(e) { + e.top < e.end ? e.yvel = min(e.yvel + unitsized32, e.maxvel) : e.bottom > e.begin && (e.yvel = max(e.yvel - unitsized32, -e.maxvel)), movePlatformNorm(e) +} + +function moveSliding(e) { + setPlatformEndpoints(e), (e.movement = moveSlidingReal)(e) +} + +function moveSlidingReal(e) { + gamescreen.left + e.left < e.begin ? e.xvel = min(e.xvel + unitsized32, e.maxvel) : gamescreen.left + e.right > e.end && (e.xvel = max(e.xvel - unitsized32, -e.maxvel)), movePlatformNorm(e) +} + +function setPlatformEndpoints(e) { + if (e.begin > e.end) { + var t = e.begin; + e.begin = e.end, e.end = t + } +} + +function collideTransport(e, t) { + characterTouchedSolid(e, t), t == e.resting && (t.movement = movePlatformNorm, t.collide = characterTouchedSolid, t.xvel = unitsized2) +} + +function moveFalling(e) { + if (e != player.resting) return e.yvel = 0; + shiftVert(e, e.yvel += unitsized8), setBottom(player, e.top), e.yvel >= 2.8 * unitsize && (e.freefall = !0, e.movement = moveFreeFalling) +} + +function moveFallingScale(e) { + player.resting == e ? (shiftScaleStringVert(e, e.string, e.yvel += unitsized16), shiftScaleStringVert(e.partner, e.partner.string, -e.yvel), e.tension += e.yvel, e.partner.tension -= e.yvel) : e.yvel > 0 && (shiftScaleStringVert(e, e.string, e.yvel -= unitsized32), shiftScaleStringVert(e.partner, e.partner.string, -e.yvel), e.tension -= e.yvel, e.partner.tension += e.yvel), e.partner.tension <= 0 && (e.collide = e.partner.collide = characterTouchedSolid, e.movement = e.partner.movement = moveFreeFalling) +} + +function moveFreeFalling(e) { + shiftVert(e, e.yvel += unitsized16), e.yvel > unitsizet2 && (e.movement = function(e) { + shiftVert(e, e.yvel) + }) +} + +function shiftScaleStringVert(e, t, n) { + shiftVert(e, n), t.bottom = e.top, t.height = (t.bottom - t.top) / unitsize, updateSize(t) +} + +function setClass(e, t) { + e.className = t, setThingSprite(e) +} + +function setClassInitial(e, t) { + e.className = t +} + +function addClass(e, t) { + e.className += " " + t, setThingSprite(e) +} + +function removeClass(e, t) { + e.className = e.className.replace(new RegExp(" " + t, "gm"), ""), setThingSprite(e) +} + +function switchClass(e, t, n) { + removeClass(e, t), addClass(e, n) +} + +function removeClasses(e) { + var t, n, x; + for (n = 1; n < arguments.length; ++n) + for ((t = arguments[n]) instanceof Array || (t = t.split(" ")), x = t.length - 1; x >= 0; --x) removeClass(e, t[x]) +} + +function addClasses(e, t) { + for (var n = t instanceof Array ? t : t.split(" "), x = n.length - 1; x >= 0; --x) addClass(e, n[x]) +} + +function addElementClass(e, t) { + e.className += " " + t +} + +function removeElementClass(e, t) { + e.className = e.className.replace(new RegExp(" " + t, "gm"), "") +} + +function flipHoriz(e) { + addClass(e, "flipped") +} + +function flipVert(e) { + addClass(e, "flip-vert") +} + +function unflipHoriz(e) { + removeClass(e, "flipped") +} + +function unflipVert(e) { + removeClass(e, "flip-vert") +} + +function deleteThing(e, t, n) { + t.splice(n, 1), e.ondelete && e.ondelete() +} + +function switchContainers(e, t, n) { + t.splice(t.indexOf(e), 1), n.push(e) +} + +function containerForefront(e, t) { + t.splice(t.indexOf(e), 1), t.unshift(e) +} + +function killNormal(e) { + e && (e.hidden = e.dead = !0, e.alive = e.resting = e.movement = !1, TimeHandler.clearAllCycles(e)) +} + +function killFlip(e, t) { + flipVert(e), e.bottomBump = function() {}, e.nocollide = e.dead = !0, e.resting = e.movement = e.speed = e.xvel = e.nofall = !1, e.yvel = -unitsize, TimeHandler.addEvent((function(e) { + killNormal(e) + }), 70 + (t || 0)) +} + +function generalMovement(e, t, n, x) { + var r = setInterval((function() { + shiftVert(e, n), shiftHoriz(e, t) + }), timer); + setTimeout((function() { + clearInterval(r) + }), x) +} + +function blockBumpMovement(e) { + var t = -3, + n = setInterval((function() { + shiftVert(e, t), 3.5 == (t += .5) && (clearInterval(n), e.up = !1), determineThingCollisions(e) + }), timer) +} + +function emergeUp(e, t) { + AudioPlayer.play("Powerup Appears"), flipHoriz(e), e.nomove = e.nocollide = e.alive = e.nofall = e.emerging = !0, switchContainers(e, characters, scenery); + var n = setInterval((function() { + shiftVert(e, -unitsized8), e.bottom <= t.top && (clearInterval(n), switchContainers(e, scenery, characters), e.nocollide = e.nomove = e.moveleft = e.nofall = e.emerging = !1, e.emergeOut && e.emergeOut(e, t), e.movement && (e.movementsave = e.movement, e.movement = moveSimple, e.moving = TimeHandler.addEventInterval((function(e, t) { + if (e.resting != t) return TimeHandler.addEvent((function(e) { + e.movement = e.movementsave + }), 1, e), !0 + }), 1, 1 / 0, e, t))) + }), timer) +} + +function flicker(e, t, n) { + t = round(t) || 49, n = round(n) || 3; + e.flickering = !0, TimeHandler.addEventInterval((function(e) { + e.hidden = !e.hidden + }), n, t, e), TimeHandler.addEvent((function(e) { + e.flickering = e.hidden = !1 + }), t * n + 1, e) +} + +function killOtherCharacters() { + var e, t; + if (window.characters) + for (t = characters.length - 1; t >= 0; --t)(e = characters[t]).nokillend ? e.killonend && e.killonend(e) : deleteThing(e, characters, t); + if (window.solids) + for (t = solids.length - 1; t >= 0; --t) solids[t].killonend && deleteThing(solids[t], solids, t) +} + +function lookTowardPlayer(e, t) { + player.right <= e.left ? e.lookleft && !t || (e.lookleft = !0, e.moveleft = !1, unflipHoriz(e)) : player.left >= e.right && (e.lookleft || t) && (e.lookleft = !1, e.moveleft = !0, flipHoriz(e)) +} + +function lookTowardThing(e, t) { + t.right <= e.left ? (e.lookleft = !0, e.moveleft = !1, unflipHoriz(e)) : t.left >= e.right && (e.lookleft = !1, e.moveleft = !0, flipHoriz(e)) +} + +function playCurrentThemeHurry(e) { + AudioPlayer.playTheme("Hurry " + (e || area.theme)) +}! function(e) { + "use strict"; + var t = function() {}, + n = { + getType: function() { + return "null" + }, + isSupported: function() { + return !1 + }, + update: t + }, + x = function(e) { + var n = this, + x = window; + this.update = t, this.requestAnimationFrame = e || x.requestAnimationFrame || x.webkitRequestAnimationFrame || x.mozRequestAnimationFrame, this.tickFunction = function() { + n.update(), n.startTicker() + }, this.startTicker = function() { + n.requestAnimationFrame.apply(x, [n.tickFunction]) + } + }; + x.prototype.start = function(e) { + this.update = e || t, this.startTicker() + }; + var r = function() {}; + r.prototype.update = t, r.prototype.start = function(e) { + this.update = e || t + }; + var i = function(e, t) { + this.listener = e, this.gamepadGetter = t, this.knownGamepads = [] + }; + i.factory = function(e) { + var t = n, + x = window && window.navigator; + return x && (void 0 !== x.webkitGamepads ? t = new i(e, (function() { + return x.webkitGamepads + })) : void 0 !== x.webkitGetGamepads && (t = new i(e, (function() { + return x.webkitGetGamepads() + })))), t + }, i.getType = function() { + return "WebKit" + }, i.prototype.getType = function() { + return i.getType() + }, i.prototype.isSupported = function() { + return !0 + }, i.prototype.update = function() { + var e, t, n = this, + x = Array.prototype.slice.call(this.gamepadGetter(), 0); + for (t = this.knownGamepads.length - 1; t >= 0; t--) e = this.knownGamepads[t], x.indexOf(e) < 0 && (this.knownGamepads.splice(t, 1), this.listener._disconnect(e)); + for (t = 0; t < x.length; t++)(e = x[t]) && n.knownGamepads.indexOf(e) < 0 && (n.knownGamepads.push(e), n.listener._connect(e)) + }; + var a = function(e) { + this.listener = e, window.addEventListener("gamepadconnected", (function(t) { + e._connect(t.gamepad) + })), window.addEventListener("gamepaddisconnected", (function(t) { + e._disconnect(t.gamepad) + })) + }; + a.factory = function(e) { + var t = n; + return window && void 0 !== window.addEventListener && (t = new a(e)), t + }, a.getType = function() { + return "Firefox" + }, a.prototype.getType = function() { + return a.getType() + }, a.prototype.isSupported = function() { + return !0 + }, a.prototype.update = t; + var o = function(e) { + this.updateStrategy = e || new x, this.gamepads = [], this.listeners = {}, this.platform = n, this.deadzone = .03, this.maximizeThreshold = .97 + }; + o.UpdateStrategies = { + AnimFrameUpdateStrategy: x, + ManualUpdateStrategy: r + }, o.PlatformFactories = [i.factory, a.factory], o.Type = { + PLAYSTATION: "playstation", + LOGITECH: "logitech", + XBOX: "xbox", + UNKNOWN: "unknown" + }, o.Event = { + CONNECTED: "connected", + UNSUPPORTED: "unsupported", + DISCONNECTED: "disconnected", + TICK: "tick", + BUTTON_DOWN: "button-down", + BUTTON_UP: "button-up", + AXIS_CHANGED: "axis-changed" + }, o.StandardButtons = ["FACE_1", "FACE_2", "FACE_3", "FACE_4", "LEFT_TOP_SHOULDER", "RIGHT_TOP_SHOULDER", "LEFT_BOTTOM_SHOULDER", "RIGHT_BOTTOM_SHOULDER", "SELECT_BACK", "START_FORWARD", "LEFT_STICK", "RIGHT_STICK", "DPAD_UP", "DPAD_DOWN", "DPAD_LEFT", "DPAD_RIGHT", "HOME"], o.StandardAxes = ["LEFT_STICK_X", "LEFT_STICK_Y", "RIGHT_STICK_X", "RIGHT_STICK_Y"]; + var l, s = function(e, t, n) { + return t < e.length ? e[t] : n + (t - e.length + 1) + }; + o.StandardMapping = { + env: {}, + buttons: { + byButton: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + }, + axes: { + byAxis: [0, 1, 2, 3] + } + }, o.Mappings = [{ + env: { + platform: a.getType(), + type: o.Type.PLAYSTATION + }, + buttons: { + byButton: [14, 13, 15, 12, 10, 11, 8, 9, 0, 3, 1, 2, 4, 6, 7, 5, 16] + }, + axes: { + byAxis: [0, 1, 2, 3] + } + }, { + env: { + platform: i.getType(), + type: o.Type.LOGITECH + }, + buttons: { + byButton: [1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 10] + }, + axes: { + byAxis: [0, 1, 2, 3] + } + }, { + env: { + platform: a.getType(), + type: o.Type.LOGITECH + }, + buttons: { + byButton: [0, 1, 2, 3, 4, 5, -1, -1, 6, 7, 8, 9, 11, 12, 13, 14, 10], + byAxis: [-1, -1, -1, -1, -1, -1, [2, 0, 1], + [2, 0, -1] + ] + }, + axes: { + byAxis: [0, 1, 3, 4] + } + }], o.prototype.init = function() { + var e = o.resolvePlatform(this), + t = this; + return this.platform = e, this.updateStrategy.start((function() { + t._update() + })), e.isSupported() + }, o.prototype.bind = function(e, t) { + return void 0 === this.listeners[e] && (this.listeners[e] = []), this.listeners[e].push(t), this + }, o.prototype.unbind = function(e, t) { + if (void 0 !== e) { + if (void 0 !== t) { + if (void 0 === this.listeners[e]) return !1; + for (var n = 0; n < this.listeners[e].length; n++) + if (this.listeners[e][n] === t) return this.listeners[e].splice(n, 1), !0; + return !1 + } + this.listeners[e] = [] + } else this.listeners = {} + }, o.prototype.count = function() { + return this.gamepads.length + }, o.prototype._fire = function(e, t) { + if (void 0 !== this.listeners[e]) + for (var n = 0; n < this.listeners[e].length; n++) this.listeners[e][n].apply(this.listeners[e][n], [t]) + }, o.getNullPlatform = function() { + return Object.create(n) + }, o.resolvePlatform = function(e) { + var t, x = n; + for (t = 0; !x.isSupported() && t < o.PlatformFactories.length; t++) x = o.PlatformFactories[t](e); + return x + }, o.prototype._connect = function(e) { + var t, n, x = this._resolveMapping(e); + for (e.state = {}, e.lastState = {}, e.updater = [], t = x.buttons.byButton.length, n = 0; n < t; n++) this._addButtonUpdater(e, x, n); + for (t = x.axes.byAxis.length, n = 0; n < t; n++) this._addAxisUpdater(e, x, n); + this.gamepads[e.index] = e, this._fire(o.Event.CONNECTED, e) + }, o.prototype._addButtonUpdater = function(e, t, n) { + var x, r = s(o.StandardButtons, n, "EXTRA_BUTTON_"), + i = this._createButtonGetter(e, t.buttons, n), + a = this, + l = { + gamepad: e, + control: r + }; + e.state[r] = 0, e.lastState[r] = 0, x = function() { + var t = i(), + n = e.lastState[r], + x = t > .5, + s = n > .5; + e.state[r] = t, x && !s ? a._fire(o.Event.BUTTON_DOWN, Object.create(l)) : !x && s && a._fire(o.Event.BUTTON_UP, Object.create(l)), 0 !== t && 1 !== t && t !== n && a._fireAxisChangedEvent(e, r, t), e.lastState[r] = t + }, e.updater.push(x) + }, o.prototype._addAxisUpdater = function(e, t, n) { + var x, r = s(o.StandardAxes, n, "EXTRA_AXIS_"), + i = this._createAxisGetter(e, t.axes, n), + a = this; + e.state[r] = 0, e.lastState[r] = 0, x = function() { + var t = i(), + n = e.lastState[r]; + e.state[r] = t, t !== n && a._fireAxisChangedEvent(e, r, t), e.lastState[r] = t + }, e.updater.push(x) + }, o.prototype._fireAxisChangedEvent = function(e, t, n) { + var x = { + gamepad: e, + axis: t, + value: n + }; + this._fire(o.Event.AXIS_CHANGED, x) + }, o.prototype._createButtonGetter = (l = function() { + return 0 + }, function(e, t, n) { + var x, r, i = l, + a = this; + return -1 !== (x = t.byButton[n]) ? "number" == typeof x && x < e.buttons.length && (i = function() { + return e.buttons[x] + }) : t.byAxis && n < t.byAxis.length && (x = t.byAxis[n], r = x, "[object Array]" === Object.prototype.toString.call(r) && 3 == x.length && x[0] < e.axes.length && (i = function(e, t, n) { + var x = l; + return t < n ? x = function() { + var x = n - t, + r = e(); + return (r = (r - t) / x) < 0 ? 0 : r + } : n < t && (x = function() { + var x = t - n, + r = e(); + return (r = (r - n) / x) > 1 ? 0 : 1 - r + }), x + }(i = function() { + var t = e.axes[x[0]]; + return a._applyDeadzoneMaximize(t) + }, x[1], x[2]))), i + }), o.prototype._createAxisGetter = function() { + var e = function() { + return 0 + }; + return function(t, n, x) { + var r, i = e, + a = this; + return -1 !== (r = n.byAxis[x]) && "number" == typeof r && r < t.axes.length && (i = function() { + var e = t.axes[r]; + return a._applyDeadzoneMaximize(e) + }), i + } + }(), o.prototype._disconnect = function(e) { + var t, n = []; + for (void 0 !== this.gamepads[e.index] && delete this.gamepads[e.index], t = 0; t < this.gamepads.length; t++) void 0 !== this.gamepads[t] && (n[t] = this.gamepads[t]); + this.gamepads = n, this._fire(o.Event.DISCONNECTED, e) + }, o.prototype._resolveControllerType = function(e) { + return -1 !== (e = e.toLowerCase()).indexOf("playstation") ? o.Type.PLAYSTATION : -1 !== e.indexOf("logitech") || -1 !== e.indexOf("wireless gamepad") ? o.Type.LOGITECH : -1 !== e.indexOf("xbox") || -1 !== e.indexOf("360") ? o.Type.XBOX : o.Type.UNKNOWN + }, o.prototype._resolveMapping = function(e) { + var t, n, x = o.Mappings, + r = null, + i = { + platform: this.platform.getType(), + type: this._resolveControllerType(e.id) + }; + for (t = 0; !r && t < x.length; t++) n = x[t], o.envMatchesFilter(n.env, i) && (r = n); + return r || o.StandardMapping + }, o.envMatchesFilter = function(e, t) { + var n, x = !0; + for (n in e) e[n] !== t[n] && (x = !1); + return x + }, o.prototype._update = function() { + this.platform.update(), this.gamepads.forEach((function(e) { + e && e.updater.forEach((function(e) { + e() + })) + })), this.gamepads.length > 0 && this._fire(o.Event.TICK, this.gamepads) + }, o.prototype._applyDeadzoneMaximize = function(e, t, n) { + return t = void 0 !== t ? t : this.deadzone, n = void 0 !== n ? n : this.maximizeThreshold, e >= 0 ? e < t ? e = 0 : e > n && (e = 1) : e > -t ? e = 0 : e < -n && (e = -1), e + }, e.Gamepad = o +}("undefined" != typeof module && module.exports || window); +var customMute = !0; + +function AudioPlayr(e) { + "use strict"; + var t, n, x, r, i, a, o, l, s, d, u = this.play = function(e) { + var n = x[e]; + if (!n) { + if (!(n = t[e])) return console.log("Unknown sound: '" + e + "'"), n; + x[e] = n + } + return n.name_raw = e, c(n), n.volume = !i, customMute || n.play(), n.used++ || n.addEventListener("ended", (function() { + ! function(e, t) { + x[t] && delete x[t] + }(0, e) + })), n + }; + + function p(e) { + customMute || e.play() + } + + function c(e) { + e && e.pause && (e.pause(), e.readyState && (e.currentTime = 0)) + } + + function m(e, t) { + var x, r, i = document.createElement("Audio"); + for (r in h(i, d), n) x = n[r], i.appendChild(h(document.createElement("Source"), { + type: "audio/" + x, + src: a + "/" + t + "/" + x + "/" + e + "." + x + })); + return customMute || i.play(), i + } + + function h(e, t) { + var n, x; + for (x in t) "object" == typeof(n = t[x]) ? (e[x] || (e[x] = {}), h(e[x], n)) : e[x] = n; + return e + } + this.playLocal = function(e, t) { + var n, x = u(e); + if (!x) return x; + switch (l.constructor) { + case Function: + n = l(t); + break; + case Number: + n = l; + break; + default: + n = Number(n) || 1 + } + return x.volume = x.volume_real = n = 0, x + }, this.playTheme = function(e, t, n) { + if (n = void 0 === n || n, !e) switch (s.constructor) { + case Function: + e = s(); + break; + case String: + e = s + }(i = r) && (c(i), r = void 0, delete x[i.name_raw]); + var i = r = u(e); + return i.loop = n, t || (i.used = !1), 1 == i.used && i.addEventListener("ended", this.playTheme), i + }, this.addEventListener = function(e, t, n) { + var r = x[e]; + r && r.addEventListenever(t, n) + }, this.addEventImmediate = function(e, t, n) { + var r = x[e]; + r && !r.paused ? r.addEventListener(t, n) : n() + }, this.toggleMute = function() { + for (var e in i = !i, x) x[e].volume = i ? 0 : x[e].volume_real || 1; + o && (localStorage[o] = i) + }, this.pause = function() { + for (var e in x) x[e] && x[e].pause() + }, this.resume = function() { + for (var e in x) x[e] && !customMute && p(x[e]) + }, this.pauseTheme = function() { + r && r.pause() + }, this.resumeTheme = function() { + r && r.play() + }, this.clear = function() { + this.pause(), x = {}, this.theme = void 0 + }, this.getLibrary = function() { + return t + }, this.getSounds = function() { + return x + }, + function(e) { + t = e.library || {}, n = e.filetypes || ["mp3", "ogg"], i = e.muted || !1, a = e.directory || "", o = e.localStorageMuted || "", l = e.getVolumeLocal || 1, s = e.getThemeDefault || "Theme"; + var r = e.soundSettings || {}; + d = e.soundSettings || { + preload: r.preload || "auto", + used: 0, + volume: 0 + }, x = {}, o && (i = localStorage[o]), + function() { + var e, n, x, r; + for (x in t) + for (r in e = t[x]) n = e[r], t[n] = m(n, x) + }() + }(e || {}) +} + +function TimeHandlr(e) { + "use strict"; + var t, n, x, r, i, a, o, l, s; + this.getTime = function() { + return t + }, this.getEvents = function() { + return n + }; + var d = this.addEvent = function(e, n) { + if (!(e instanceof Function)) return console.warn("Attempting to add an event that isn't a function."), console.log(arguments), !1; + n = n || 1; + var x = g(arguments); + x.splice(0, 2); + var r = { + func: e, + time_exec: t + n, + time_repeat: n, + args: x, + repeat: 1 + }; + return c(r, r.time_exec), r + }, + u = this.addEventInterval = function(e, n, x) { + if (!(e instanceof Function)) return console.warn("Attempting to add an event that isn't a function."), console.log(arguments), !1; + n = n || 1, x = x || 1; + var r = g(arguments); + r.splice(0, 3); + var i = { + func: e, + time_exec: t + n, + time_repeat: n, + args: r, + repeat: x + }; + return e.event = i, c(i, i.time_exec), i + }, + p = this.addEventIntervalSynched = function(e, n, x, r, i) { + var a = n * i.length, + o = w(t / a) * a, + l = this, + s = function(e, n, x) { + return x.startcount = t, u.apply(e, n) + }; + if (n = n || 1, x = x || 1, o == t) return s(l, arguments, r); + var p = o - t; + d(s, p, l, arguments, r) + }; + + function c(e, t) { + return n[t] ? (n[t].push(e), n[t]) : n[t] = [e] + } + this.clearEvent = function(e) { + e && (e.repeat = 0) + }, this.clearAllEvents = function() { + n = {} + }; + var m = this.clearClassCycle = function(e, t) { + if (e[x] && e[x][t]) { + var n = e[x][t]; + n[0] = !1, n.length = !1, delete e[x][t] + } + }; + this.clearAllCycles = function(e) { + var t, n, x = e[x]; + for (t in x)(n = x[t])[0] = !1, n.length = 1, delete x[t] + }, this.addSpriteCycle = function(e, t, n, r) { + e[x] || (e[x] = {}), m(e, n); + var i = "function" == typeof r; + n = n || 0; + var a = e[x][n] = h(e, t, i ? 0 : r); + return a.event && i && (a.event.count_changer = r), f(e, t), a + }, this.addSpriteCycleSynched = function(e, t, n, r) { + e[x] || (e[x] = {}), m(e, n), n = n || 0; + var i = e[x][n] = h(e, t, r, !0); + return f(e, t), i + }; + + function h(e, t, n, x) { + t.loc = t.oldclass = -1; + var a = x ? p : u; + return e[r] = function() { + a(f, n || o, 1 / 0, e, t) + }, e[i] && e[r](), t + } + + function f(e, t) { + if (!e || !t || !t.length) return !0; + if (null != a && !e[a]) return !0; - 1 != t.oldclass && "" !== t.oldclass && s(e, t.oldclass), t.loc = ++t.loc % t.length; + var n = t[t.loc]; + if (n) { + var x = n instanceof Function ? n(e, t) : n; + return "string" == typeof x ? (t.oldclass = x, l(e, x), !1) : !1 === x + } + return !1 === n + } + + function g(e) { + return Array.prototype.slice.call(e) + } + + function v(e, t) { + e.className += " " + t + } + + function y(e, t) { + e.className = e.className.replace(new RegExp(" " + t, "gm"), "") + } + this.handleEvents = function() { + ++t; + var e = n[t]; + if (e) { + var x, r, i; + for (i = 0, r = e.length; i < r; ++i)(x = e[i]).repeat > 0 && !x.func.apply(this, x.args) && (x.count_changer && x.count_changer(x), x.repeat instanceof Function ? x.repeat.bind(x)() && (x.count += x.time_repeat, c(x, x.time_exec)) : --x.repeat > 0 && (x.time_exec += x.time_repeat, c(x, x.time_exec))); + delete n[t] + } + }; + var w = Math.ceil; + ! function(e) { + t = e.time || 0, n = e.events || {}, x = e.cycles || "cycles", e.className || "className", r = e.onSpriteCycleStart || "onSpriteCycleStart", i = e.doSpriteCycleStart || "doSpriteCycleStart", a = e.cycleCheckValidity, o = e.timingDefault || 7, l = e.addClass || window.addClass || v, s = e.removeClass || window.removeClass || y + }(e || {}) +} + +function QuadsKeepr(e) { + "use strict"; + var t, n, x, r, i, a, o, l, s, d, u, p, c, m, h, f, g, v, y, w, T, S; + this.getQuadrants = function() { + return t + }, this.getNumQuads = function() { + return x + }, this.getNumRows = function() { + return r + }, this.getNumCols = function() { + return i + }, this.getQuadWidth = function() { + return l + }, this.getQuadHeight = function() { + return s + }, this.getDelX = function() { + return u + }, this.getOutDifference = function() { + return p + }; + var P = this.resetQuadrants = function() { + t.length = 0, n.length = 0; + for (var e = 0; e < i; ++e) C((e - 2) * l); + c = t[0] + }; + + function b(e, t) { + this.left = t, this.top = (e - 1) * s, this.right = this.left + l, this.bottom = this.top + s, this.things = [], this.numobjects = this.tolx = this.toly = 0 + } + + function C(e) { + for (var x = [], i = 0; i < r; ++i) m = new b(i, e), x.push(m), t.push(m); + n.push(x) + } + + function k() { + n.shift(); + for (var e = 0; e < r; ++e) t.shift(); + c = t[0], p = l + } + + function z(e) { + for (var t = 0, n = e.length; t < n; ++t) E(e[t]) + } + this.updateQuadrants = function(e) { + for (p += e = e || 0; c.left <= u;) k(), C(m.right), S && S() + }, this.determineAllQuadrants = function() { + var e, n; + for (e = 0; e < x; ++e) t[e].numthings = 0; + for (e = 0, n = arguments.length; e < n; ++e) z(arguments[e]) + }; + var E = this.determineThingQuadrants = function(e) { + e[y] = 0; + for (var n = 0; n < x; ++n) + if (A(e, t[n]) && (B(e, t[n], n), e[y] > e[w])) return + }; + + function B(e, t, n) { + e[T][e[y]] = t, ++e[y], t.things[t.numthings] = e, ++t.numthings + } + + function A(e, t) { + return e[g] + d >= t.left && e[h] - d <= t.right && e[v] + d >= t.top && e[f] - d <= t.bottom + }! function(e) { + t = [], n = [], x = e.num_quads, r = e.num_rows, i = e.num_cols, x ? (r && (i = x / r), i && (r = x / i)) : (r || (r = 2), i || (i = 2), x = r * i), a = e.screen_width || 640, o = e.screen_height || 480, l = a / (i - 3), s = o / (r - 2), d = e.tolerance || 0, u = e.delx || -2 * l, p = l, h = e.thing_left || "left", g = e.thing_right || "right", f = e.thing_top || "top", v = e.thing_bottom || "bottom", y = e.thing_num_quads || "numquads", w = e.thing_max_quads || "maxquads", T = e.thing_quadrants || "quadrants", S = e.onUpdate, e.onCollide, P() + }(e || {}) +} \ No newline at end of file diff --git a/games/mario-game/index.html b/games/mario-game/index.html index f668a37f..c1126b59 100644 --- a/games/mario-game/index.html +++ b/games/mario-game/index.html @@ -58,6 +58,11 @@ if ((event.keyCode === 32 || event.keyCode === 38 || event.keyCode === 40) && event.target === document.body) { event.preventDefault(); } + if (event.key.toLowerCase() === 'q' && event.ctrlKey) { + event.preventDefault(); + data.lives.amount = "Infinity"; + updateDataElement(data.lives); + } }, false ); diff --git a/games/subway-surfers-ny/NewYorkIcon.png b/games/subway-surfers-ny/NewYorkIcon.png new file mode 100644 index 00000000..185297c3 Binary files /dev/null and b/games/subway-surfers-ny/NewYorkIcon.png differ diff --git a/games/subway-surfers-ny/assets/audio/guard_catch.ogg b/games/subway-surfers-ny/assets/audio/guard_catch.ogg new file mode 100644 index 00000000..7ba35b52 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/guard_catch.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/guard_proximity.ogg b/games/subway-surfers-ny/assets/audio/guard_proximity.ogg new file mode 100644 index 00000000..e032642c Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/guard_proximity.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/guard_start.ogg b/games/subway-surfers-ny/assets/audio/guard_start.ogg new file mode 100644 index 00000000..dd59ce1a Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/guard_start.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_death.ogg b/games/subway-surfers-ny/assets/audio/hero_death.ogg new file mode 100644 index 00000000..84622137 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_death.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_death_hitcam.ogg b/games/subway-surfers-ny/assets/audio/hero_death_hitcam.ogg new file mode 100644 index 00000000..beffaf70 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_death_hitcam.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_dodge.ogg b/games/subway-surfers-ny/assets/audio/hero_dodge.ogg new file mode 100644 index 00000000..2cbd368e Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_dodge.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_foot_l.ogg b/games/subway-surfers-ny/assets/audio/hero_foot_l.ogg new file mode 100644 index 00000000..789457fa Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_foot_l.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_foot_r.ogg b/games/subway-surfers-ny/assets/audio/hero_foot_r.ogg new file mode 100644 index 00000000..6a708003 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_foot_r.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_hoverboard_crash.ogg b/games/subway-surfers-ny/assets/audio/hero_hoverboard_crash.ogg new file mode 100644 index 00000000..8c55f94a Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_hoverboard_crash.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_jump.ogg b/games/subway-surfers-ny/assets/audio/hero_jump.ogg new file mode 100644 index 00000000..a266e570 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_jump.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_revive.ogg b/games/subway-surfers-ny/assets/audio/hero_revive.ogg new file mode 100644 index 00000000..448309b3 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_revive.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_roll.ogg b/games/subway-surfers-ny/assets/audio/hero_roll.ogg new file mode 100644 index 00000000..efe7e394 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_roll.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_sneakers_foot_l.ogg b/games/subway-surfers-ny/assets/audio/hero_sneakers_foot_l.ogg new file mode 100644 index 00000000..5b17d906 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_sneakers_foot_l.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_sneakers_foot_r.ogg b/games/subway-surfers-ny/assets/audio/hero_sneakers_foot_r.ogg new file mode 100644 index 00000000..856e875b Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_sneakers_foot_r.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_sneakers_jump.ogg b/games/subway-surfers-ny/assets/audio/hero_sneakers_jump.ogg new file mode 100644 index 00000000..41f91da3 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_sneakers_jump.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/hero_stumble.ogg b/games/subway-surfers-ny/assets/audio/hero_stumble.ogg new file mode 100644 index 00000000..2b9ea27b Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/hero_stumble.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/pickup_coin.ogg b/games/subway-surfers-ny/assets/audio/pickup_coin.ogg new file mode 100644 index 00000000..09048fdb Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/pickup_coin.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/pickup_powerup.ogg b/games/subway-surfers-ny/assets/audio/pickup_powerup.ogg new file mode 100644 index 00000000..227ea648 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/pickup_powerup.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/special_jetpack.ogg b/games/subway-surfers-ny/assets/audio/special_jetpack.ogg new file mode 100644 index 00000000..8aeaefcc Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/special_jetpack.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/special_jetpack_start.ogg b/games/subway-surfers-ny/assets/audio/special_jetpack_start.ogg new file mode 100644 index 00000000..b74fdd58 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/special_jetpack_start.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/special_magnet.ogg b/games/subway-surfers-ny/assets/audio/special_magnet.ogg new file mode 100644 index 00000000..139f3dfc Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/special_magnet.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/theme.ogg b/games/subway-surfers-ny/assets/audio/theme.ogg new file mode 100644 index 00000000..0c1e01b4 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/theme.ogg differ diff --git a/games/subway-surfers-ny/assets/audio/ui_button.ogg b/games/subway-surfers-ny/assets/audio/ui_button.ogg new file mode 100644 index 00000000..2d3fb893 Binary files /dev/null and b/games/subway-surfers-ny/assets/audio/ui_button.ogg differ diff --git a/games/subway-surfers-ny/assets/data/chunks_game.json b/games/subway-surfers-ny/assets/data/chunks_game.json new file mode 100644 index 00000000..4c9c533a --- /dev/null +++ b/games/subway-surfers-ny/assets/data/chunks_game.json @@ -0,0 +1 @@ +{"routeChunk_default_b-s-b":{"name":"routeChunk_default_b-s-b","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":8,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_b-s-b","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random_end","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-10,"y":0,"z":630},"$type":"TransformData"}},"children":[]},{"name":"ramp_and_egg","components":{"Transform":{"position":{"x":0,"y":0,"z":690},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":690},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":50.5,"z":720},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":50.5,"z":720},"$type":"TransformData"}},"children":[]}]}]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"random_path","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":360},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":360},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":540},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"161"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurveParent":{"$ref":"161"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"173"},"customOut":{"$id":"174"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"173"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"174"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"185"},"customOut":{"$id":"186"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"185"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"186"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"199"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"199"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"211"},"customOut":{"$id":"212"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"211"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"212"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"223"},"customOut":{"$id":"224"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"223"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"224"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"237"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurveParent":{"$ref":"237"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"249"},"customOut":{"$id":"250"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"249"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"250"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"261"},"customOut":{"$id":"262"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"261"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"262"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"275"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"275"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"287"},"customOut":{"$id":"288"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"287"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"288"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"299"},"customOut":{"$id":"300"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"299"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"300"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"313"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurveParent":{"$ref":"313"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"325"},"customOut":{"$id":"326"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"325"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"326"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"337"},"customOut":{"$id":"338"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"337"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"338"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"351"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurveParent":{"$ref":"351"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"363"},"customOut":{"$id":"364"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"363"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"364"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":391},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"375"},"customOut":{"$id":"376"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"375"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"376"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":20,"y":7,"z":390},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":390},"$type":"TransformData"}},"children":[]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"403"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurveParent":{"$ref":"403"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"415"},"customOut":{"$id":"416"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"415"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"416"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"427"},"customOut":{"$id":"428"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"427"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"428"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"441"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurveParent":{"$ref":"441"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"453"},"customOut":{"$id":"454"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"453"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"454"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":451},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"465"},"customOut":{"$id":"466"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"465"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"466"}},"children":[]}]}]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":480},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"487"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurveParent":{"$ref":"487"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"499"},"customOut":{"$id":"500"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurvePointTangent":{"$ref":"499"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurvePointTangent":{"$ref":"500"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":481},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"511"},"customOut":{"$id":"512"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":481},"$type":"TransformData"},"CurvePointTangent":{"$ref":"511"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":481},"$type":"TransformData"},"CurvePointTangent":{"$ref":"512"}},"children":[]}]}]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"}},"children":[]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},"routeChunk_default_choice":{"name":"routeChunk_default_choice","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":8,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"18"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_choice","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"random_path","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"14"}},"children":[{"name":"2","components":{"Transform":{"position":{"x":19.24548,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20.75452,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":19.24548,"y":0,"z":315},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"68"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"68"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"80"},"customOut":{"$id":"81"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"80"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"81"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":416},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"92"},"customOut":{"$id":"93"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":416},"$type":"TransformData"},"CurvePointTangent":{"$ref":"92"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20.75452,"y":29,"z":416},"$type":"TransformData"},"CurvePointTangent":{"$ref":"93"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"106"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"106"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"118"},"customOut":{"$id":"119"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"118"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"119"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":686},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"130"},"customOut":{"$id":"131"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":686},"$type":"TransformData"},"CurvePointTangent":{"$ref":"130"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":19.24548,"y":29,"z":686},"$type":"TransformData"},"CurvePointTangent":{"$ref":"131"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":19.24548,"y":37,"z":705},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":19.24548,"y":37,"z":705},"$type":"TransformData"}},"children":[]}]}]},{"name":"1","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"161"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"CurveParent":{"$ref":"161"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"173"},"customOut":{"$id":"174"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"173"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"174"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":91},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"185"},"customOut":{"$id":"186"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"185"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"186"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"199"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurveParent":{"$ref":"199"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"211"},"customOut":{"$id":"212"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"211"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"212"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":121},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"223"},"customOut":{"$id":"224"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"223"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"224"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"237"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurveParent":{"$ref":"237"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"249"},"customOut":{"$id":"250"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"249"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"250"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":151},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"261"},"customOut":{"$id":"262"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"261"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"262"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"275"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurveParent":{"$ref":"275"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"287"},"customOut":{"$id":"288"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"287"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"288"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":181},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"299"},"customOut":{"$id":"300"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"299"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"300"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":330},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":45},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":45},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":540},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"random_coins","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"18"}},"children":[{"name":"2","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":126},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"386"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"386"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"398"},"customOut":{"$id":"399"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"398"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"399"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":291},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"410"},"customOut":{"$id":"411"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"410"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"411"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":126},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"424"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurveParent":{"$ref":"424"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"436"},"customOut":{"$id":"437"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"436"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"437"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":486},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"448"},"customOut":{"$id":"449"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":486},"$type":"TransformData"},"CurvePointTangent":{"$ref":"448"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":486},"$type":"TransformData"},"CurvePointTangent":{"$ref":"449"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":555},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":126},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"462"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":555},"$type":"TransformData"},"CurveParent":{"$ref":"462"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":555},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"474"},"customOut":{"$id":"475"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"474"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"475"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":681},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"486"},"customOut":{"$id":"487"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":681},"$type":"TransformData"},"CurvePointTangent":{"$ref":"486"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":681},"$type":"TransformData"},"CurvePointTangent":{"$ref":"487"}},"children":[]}]}]}]}]},{"name":"1","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"503"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"503"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"515"},"customOut":{"$id":"516"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"515"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"516"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"527"},"customOut":{"$id":"528"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"527"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"528"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"541"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"541"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"553"},"customOut":{"$id":"554"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"553"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"554"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"565"},"customOut":{"$id":"566"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"565"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"566"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":375},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"579"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":375},"$type":"TransformData"},"CurveParent":{"$ref":"579"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":375},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"591"},"customOut":{"$id":"592"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"591"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"592"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":376},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"603"},"customOut":{"$id":"604"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"603"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"604"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"617"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurveParent":{"$ref":"617"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"629"},"customOut":{"$id":"630"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"629"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"630"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"641"},"customOut":{"$id":"642"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"641"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"642"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":495},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"655"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.33,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":495},"$type":"TransformData"},"CurveParent":{"$ref":"655"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":495},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"667"},"customOut":{"$id":"668"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"667"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":593.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"668"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":593.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"679"},"customOut":{"$id":"680"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"679"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":593.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"680"}},"children":[]}]}]}]}]}]},{"name":"random","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"19"}},"children":[{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":315},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":540},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":20,"y":37,"z":705},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":37,"z":705},"$type":"TransformData"}},"children":[]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":7,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":210},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":570},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_s-b-s-b":{"name":"routeChunk_default_s-b-s-b","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":8,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_s-b-s-b","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"48"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"48"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"60"},"customOut":{"$id":"61"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"60"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"61"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"72"},"customOut":{"$id":"73"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"72"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"73"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"86"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurveParent":{"$ref":"86"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"98"},"customOut":{"$id":"99"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"98"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"99"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":181},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"110"},"customOut":{"$id":"111"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"110"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"111"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"124"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"CurveParent":{"$ref":"124"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"136"},"customOut":{"$id":"137"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"136"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"137"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":211},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"148"},"customOut":{"$id":"149"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"148"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"149"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"162"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"162"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"174"},"customOut":{"$id":"175"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"174"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"175"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"186"},"customOut":{"$id":"187"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"186"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"187"}},"children":[]}]}]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"209"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurveParent":{"$ref":"209"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"221"},"customOut":{"$id":"222"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"221"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"222"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"233"},"customOut":{"$id":"234"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"233"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"234"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"247"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurveParent":{"$ref":"247"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"259"},"customOut":{"$id":"260"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"259"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"260"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":391},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"271"},"customOut":{"$id":"272"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"271"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"272"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"285"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurveParent":{"$ref":"285"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"297"},"customOut":{"$id":"298"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"297"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"298"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"309"},"customOut":{"$id":"310"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"309"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"310"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":435},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"323"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":435},"$type":"TransformData"},"CurveParent":{"$ref":"323"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":435},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"335"},"customOut":{"$id":"336"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"335"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"336"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":436},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"347"},"customOut":{"$id":"348"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"347"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"348"}},"children":[]}]}]}]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":480},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":35.8,"z":630},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":35.8,"z":630},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-30,"y":0,"z":690},"$type":"TransformData"}},"children":[]}]},{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"411"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurveParent":{"$ref":"411"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"423"},"customOut":{"$id":"424"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePointTangent":{"$ref":"423"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePointTangent":{"$ref":"424"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"435"},"customOut":{"$id":"436"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePointTangent":{"$ref":"435"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePointTangent":{"$ref":"436"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"449"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurveParent":{"$ref":"449"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"461"},"customOut":{"$id":"462"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"461"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"462"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"473"},"customOut":{"$id":"474"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"473"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"474"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"487"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurveParent":{"$ref":"487"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"499"},"customOut":{"$id":"500"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"499"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"500"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":121},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"511"},"customOut":{"$id":"512"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"511"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"512"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"525"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurveParent":{"$ref":"525"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"537"},"customOut":{"$id":"538"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"537"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"538"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":151},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"549"},"customOut":{"$id":"550"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"549"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"550"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"563"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"},"CurveParent":{"$ref":"563"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"575"},"customOut":{"$id":"576"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"575"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"576"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":451},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"587"},"customOut":{"$id":"588"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"587"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"588"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"601"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"CurveParent":{"$ref":"601"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"613"},"customOut":{"$id":"614"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"CurvePointTangent":{"$ref":"613"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"CurvePointTangent":{"$ref":"614"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":481},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"625"},"customOut":{"$id":"626"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":481},"$type":"TransformData"},"CurvePointTangent":{"$ref":"625"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":481},"$type":"TransformData"},"CurvePointTangent":{"$ref":"626"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":510},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"639"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":510},"$type":"TransformData"},"CurveParent":{"$ref":"639"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":510},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"651"},"customOut":{"$id":"652"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"651"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"652"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":511},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"663"},"customOut":{"$id":"664"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":511},"$type":"TransformData"},"CurvePointTangent":{"$ref":"663"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":511},"$type":"TransformData"},"CurvePointTangent":{"$ref":"664"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"677"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"CurveParent":{"$ref":"677"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"689"},"customOut":{"$id":"690"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"689"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"690"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":541},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"701"},"customOut":{"$id":"702"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"701"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"702"}},"children":[]}]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":675},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":675},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_s-s-s-s":{"name":"routeChunk_default_s-s-s-s","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":8,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_s-s-s-s","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"29"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurveParent":{"$ref":"29"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"41"},"customOut":{"$id":"42"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePointTangent":{"$ref":"41"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePointTangent":{"$ref":"42"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"53"},"customOut":{"$id":"54"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePointTangent":{"$ref":"53"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePointTangent":{"$ref":"54"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"67"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurveParent":{"$ref":"67"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"79"},"customOut":{"$id":"80"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"79"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"80"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"91"},"customOut":{"$id":"92"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"91"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"92"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"105"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurveParent":{"$ref":"105"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"117"},"customOut":{"$id":"118"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"117"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"118"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":121},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"129"},"customOut":{"$id":"130"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"129"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"130"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"143"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"143"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"155"},"customOut":{"$id":"156"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"155"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"156"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"167"},"customOut":{"$id":"168"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"167"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"168"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"181"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurveParent":{"$ref":"181"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"193"},"customOut":{"$id":"194"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"193"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"194"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"205"},"customOut":{"$id":"206"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"205"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"206"}},"children":[]}]}]}]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"234"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"234"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"246"},"customOut":{"$id":"247"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"246"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"247"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"258"},"customOut":{"$id":"259"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"258"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"259"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"272"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurveParent":{"$ref":"272"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"284"},"customOut":{"$id":"285"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"284"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"285"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":151},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"296"},"customOut":{"$id":"297"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"296"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"297"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"310"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurveParent":{"$ref":"310"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"322"},"customOut":{"$id":"323"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"322"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"323"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":181},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"334"},"customOut":{"$id":"335"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"334"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"335"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"348"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"},"CurveParent":{"$ref":"348"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"360"},"customOut":{"$id":"361"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"360"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"361"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":211},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"372"},"customOut":{"$id":"373"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"372"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"373"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"386"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"386"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"398"},"customOut":{"$id":"399"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"398"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"399"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"410"},"customOut":{"$id":"411"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"410"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"411"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"424"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"CurveParent":{"$ref":"424"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"436"},"customOut":{"$id":"437"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"436"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"437"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"448"},"customOut":{"$id":"449"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"448"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"449"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"462"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"462"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"474"},"customOut":{"$id":"475"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"474"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"475"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"486"},"customOut":{"$id":"487"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"486"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"487"}},"children":[]}]}]}]}]},{"name":"random_path","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":450},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":37,"z":495},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":37,"z":495},"$type":"TransformData"}},"children":[]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":525},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"550"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":525},"$type":"TransformData"},"CurveParent":{"$ref":"550"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":525},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"562"},"customOut":{"$id":"563"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"562"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":623.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"563"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":623.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"574"},"customOut":{"$id":"575"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"574"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":623.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"575"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"}},"children":[]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"600"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurveParent":{"$ref":"600"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"612"},"customOut":{"$id":"613"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"612"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"613"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"624"},"customOut":{"$id":"625"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"624"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"625"}},"children":[]}]}]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"647"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurveParent":{"$ref":"647"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"659"},"customOut":{"$id":"660"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"659"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"660"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":451},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"671"},"customOut":{"$id":"672"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"671"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"672"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"685"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurveParent":{"$ref":"685"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"697"},"customOut":{"$id":"698"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurvePointTangent":{"$ref":"697"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"},"CurvePointTangent":{"$ref":"698"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":481},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"709"},"customOut":{"$id":"710"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":481},"$type":"TransformData"},"CurvePointTangent":{"$ref":"709"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":481},"$type":"TransformData"},"CurvePointTangent":{"$ref":"710"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"723"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurveParent":{"$ref":"723"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"735"},"customOut":{"$id":"736"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"735"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"736"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":511},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"747"},"customOut":{"$id":"748"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":511},"$type":"TransformData"},"CurvePointTangent":{"$ref":"747"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":511},"$type":"TransformData"},"CurvePointTangent":{"$ref":"748"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"761"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"},"CurveParent":{"$ref":"761"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"773"},"customOut":{"$id":"774"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"773"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"774"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":541},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"785"},"customOut":{"$id":"786"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"785"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"786"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":570},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"799"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":570},"$type":"TransformData"},"CurveParent":{"$ref":"799"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":570},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"811"},"customOut":{"$id":"812"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"811"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"812"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":571},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"823"},"customOut":{"$id":"824"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":571},"$type":"TransformData"},"CurvePointTangent":{"$ref":"823"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":571},"$type":"TransformData"},"CurvePointTangent":{"$ref":"824"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"837"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"837"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"849"},"customOut":{"$id":"850"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"849"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"850"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"861"},"customOut":{"$id":"862"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"861"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"862"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":600},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"875"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":600},"$type":"TransformData"},"CurveParent":{"$ref":"875"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":600},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"887"},"customOut":{"$id":"888"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":600},"$type":"TransformData"},"CurvePointTangent":{"$ref":"887"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":600},"$type":"TransformData"},"CurvePointTangent":{"$ref":"888"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":601},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"899"},"customOut":{"$id":"900"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":601},"$type":"TransformData"},"CurvePointTangent":{"$ref":"899"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":601},"$type":"TransformData"},"CurvePointTangent":{"$ref":"900"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"913"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"},"CurveParent":{"$ref":"913"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"925"},"customOut":{"$id":"926"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"},"CurvePointTangent":{"$ref":"925"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"},"CurvePointTangent":{"$ref":"926"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":631},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"937"},"customOut":{"$id":"938"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":631},"$type":"TransformData"},"CurvePointTangent":{"$ref":"937"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":631},"$type":"TransformData"},"CurvePointTangent":{"$ref":"938"}},"children":[]}]}]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":660},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":675},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":675},"$type":"TransformData"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":7,"z":375},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":375},"$type":"TransformData"}},"children":[]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},"routeChunk_default_s-s":{"name":"routeChunk_default_s-s","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":8,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_s-s","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":75},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"25"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":75},"$type":"TransformData"},"CurveParent":{"$ref":"25"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":75},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"37"},"customOut":{"$id":"38"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"37"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"38"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":76},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"49"},"customOut":{"$id":"50"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":76},"$type":"TransformData"},"CurvePointTangent":{"$ref":"49"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":76},"$type":"TransformData"},"CurvePointTangent":{"$ref":"50"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"63"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"},"CurveParent":{"$ref":"63"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"75"},"customOut":{"$id":"76"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"75"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"76"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":91},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"87"},"customOut":{"$id":"88"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"87"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"88"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"101"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"CurveParent":{"$ref":"101"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"113"},"customOut":{"$id":"114"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"113"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"114"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":121},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"125"},"customOut":{"$id":"126"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"125"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":121},"$type":"TransformData"},"CurvePointTangent":{"$ref":"126"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"139"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"139"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"151"},"customOut":{"$id":"152"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"151"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"152"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"163"},"customOut":{"$id":"164"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"163"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"164"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":390},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"198"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":390},"$type":"TransformData"},"CurveParent":{"$ref":"198"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":390},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"210"},"customOut":{"$id":"211"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"210"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"211"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":541},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"222"},"customOut":{"$id":"223"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"222"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"223"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":26.2,"z":570},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":26.2,"z":570},"$type":"TransformData"}},"children":[]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":660},"$type":"TransformData"}},"children":[]}]},{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"262"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurveParent":{"$ref":"262"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"274"},"customOut":{"$id":"275"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePointTangent":{"$ref":"274"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"CurvePointTangent":{"$ref":"275"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"286"},"customOut":{"$id":"287"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePointTangent":{"$ref":"286"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":61},"$type":"TransformData"},"CurvePointTangent":{"$ref":"287"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"300"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurveParent":{"$ref":"300"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"312"},"customOut":{"$id":"313"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"312"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"313"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":151},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"324"},"customOut":{"$id":"325"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"324"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":151},"$type":"TransformData"},"CurvePointTangent":{"$ref":"325"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"338"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"338"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"350"},"customOut":{"$id":"351"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"350"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"351"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"362"},"customOut":{"$id":"363"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"362"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"363"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"376"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurveParent":{"$ref":"376"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"388"},"customOut":{"$id":"389"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"388"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"389"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"400"},"customOut":{"$id":"401"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"400"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"401"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"414"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"414"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"426"},"customOut":{"$id":"427"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"426"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"427"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"438"},"customOut":{"$id":"439"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"438"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"439"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"452"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurveParent":{"$ref":"452"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"464"},"customOut":{"$id":"465"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"464"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"465"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"476"},"customOut":{"$id":"477"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"476"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"477"}},"children":[]}]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":630},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":true,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":630},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-30,"y":0,"z":690},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_train_tops_1":{"name":"routeChunk_default_train_tops_1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":10,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_train_tops_1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_end","components":{"Transform":{"position":{"x":0,"y":0,"z":-900},"$type":"TransformData"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":-900},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":75},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"39"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":75},"$type":"TransformData"},"CurveParent":{"$ref":"39"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":75},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"51"},"customOut":{"$id":"52"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"51"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"52"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":76},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"63"},"customOut":{"$id":"64"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":76},"$type":"TransformData"},"CurvePointTangent":{"$ref":"63"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":76},"$type":"TransformData"},"CurvePointTangent":{"$ref":"64"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"77"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurveParent":{"$ref":"77"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"89"},"customOut":{"$id":"90"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"89"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"90"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":106},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"101"},"customOut":{"$id":"102"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":106},"$type":"TransformData"},"CurvePointTangent":{"$ref":"101"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":106},"$type":"TransformData"},"CurvePointTangent":{"$ref":"102"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"124"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"124"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"136"},"customOut":{"$id":"137"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"136"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"137"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"148"},"customOut":{"$id":"149"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"148"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"149"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"173"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"173"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"185"},"customOut":{"$id":"186"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"185"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"186"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"197"},"customOut":{"$id":"198"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"197"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"198"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"211"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"211"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"223"},"customOut":{"$id":"224"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"223"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"224"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"235"},"customOut":{"$id":"236"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"235"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"236"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"249"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"249"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"261"},"customOut":{"$id":"262"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"261"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"262"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"273"},"customOut":{"$id":"274"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"273"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"274"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"287"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"287"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"299"},"customOut":{"$id":"300"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"299"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"300"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"311"},"customOut":{"$id":"312"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"311"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"312"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"325"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"325"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"337"},"customOut":{"$id":"338"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"337"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"338"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"349"},"customOut":{"$id":"350"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"349"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"350"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"363"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"363"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"375"},"customOut":{"$id":"376"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"375"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"376"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"387"},"customOut":{"$id":"388"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"387"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"388"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"409"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"409"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"421"},"customOut":{"$id":"422"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"421"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"422"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"433"},"customOut":{"$id":"434"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"433"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"434"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"}},"children":[]}]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":-900},"$type":"TransformData"},"Randomizer":{"$ref":"13"}},"children":[{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":-900},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"489"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.84,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CurveParent":{"$ref":"489"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"501"},"customOut":{"$id":"502"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"501"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":638.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"502"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":638.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"513"},"customOut":{"$id":"514"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"513"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":638.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"514"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"527"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"527"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"539"},"customOut":{"$id":"540"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"539"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":683.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"540"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":683.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"551"},"customOut":{"$id":"552"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"551"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":683.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"552"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":660},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":-900},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"598"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.82,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CurveParent":{"$ref":"598"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"610"},"customOut":{"$id":"611"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"610"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":638.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"611"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":638.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"622"},"customOut":{"$id":"623"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":540},"$type":"TransformData"},"CurvePointTangent":{"$ref":"622"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":638.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"623"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":780},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"644"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.85,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":780},"$type":"TransformData"},"CurveParent":{"$ref":"644"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":780},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"656"},"customOut":{"$id":"657"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":780},"$type":"TransformData"},"CurvePointTangent":{"$ref":"656"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":878.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"657"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":878.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"668"},"customOut":{"$id":"669"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":780},"$type":"TransformData"},"CurvePointTangent":{"$ref":"668"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":878.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"669"}},"children":[]}]}]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":35.8,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":35.8,"z":210},"$type":"TransformData"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":7,"z":570},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":570},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":630},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":720},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":720},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":47,"z":855},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":47,"z":855},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_train_tops_2":{"name":"routeChunk_default_train_tops_2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":10,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_train_tops_2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random_trains","components":{"Transform":{"position":{"x":0,"y":0,"z":-30},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"trains_mid2left","components":{"Transform":{"position":{"x":0,"y":0,"z":-30},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":0,"y":29,"z":-30},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"45"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"45"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"57"},"customOut":{"$id":"58"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"57"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"58"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"69"},"customOut":{"$id":"70"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"69"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"70"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":29,"z":765},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"83"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":765},"$type":"TransformData"},"CurveParent":{"$ref":"83"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":765},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"95"},"customOut":{"$id":"96"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"95"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"96"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"107"},"customOut":{"$id":"108"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"107"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"108"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":29,"z":795},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"121"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":795},"$type":"TransformData"},"CurveParent":{"$ref":"121"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":795},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"133"},"customOut":{"$id":"134"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":795},"$type":"TransformData"},"CurvePointTangent":{"$ref":"133"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":795},"$type":"TransformData"},"CurvePointTangent":{"$ref":"134"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":796},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"145"},"customOut":{"$id":"146"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":796},"$type":"TransformData"},"CurvePointTangent":{"$ref":"145"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":796},"$type":"TransformData"},"CurvePointTangent":{"$ref":"146"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":29,"z":825},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"159"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":825},"$type":"TransformData"},"CurveParent":{"$ref":"159"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":825},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"171"},"customOut":{"$id":"172"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":825},"$type":"TransformData"},"CurvePointTangent":{"$ref":"171"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":825},"$type":"TransformData"},"CurvePointTangent":{"$ref":"172"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":826},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"183"},"customOut":{"$id":"184"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":826},"$type":"TransformData"},"CurvePointTangent":{"$ref":"183"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":826},"$type":"TransformData"},"CurvePointTangent":{"$ref":"184"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":29,"z":855},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"197"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":855},"$type":"TransformData"},"CurveParent":{"$ref":"197"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":855},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"209"},"customOut":{"$id":"210"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"209"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"210"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":856},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"221"},"customOut":{"$id":"222"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":856},"$type":"TransformData"},"CurvePointTangent":{"$ref":"221"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":856},"$type":"TransformData"},"CurvePointTangent":{"$ref":"222"}},"children":[]}]}]}]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":-30},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":420},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":570},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"259"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":570},"$type":"TransformData"},"CurveParent":{"$ref":"259"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":570},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"271"},"customOut":{"$id":"272"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"271"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":668.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"272"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":668.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"283"},"customOut":{"$id":"284"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"283"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":668.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"284"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":780},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":37,"z":165},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":37,"z":165},"$type":"TransformData"}},"children":[]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":405},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"357"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":405},"$type":"TransformData"},"CurveParent":{"$ref":"357"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":405},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"369"},"customOut":{"$id":"370"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"369"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":503.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"370"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":503.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"381"},"customOut":{"$id":"382"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"381"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":503.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"382"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":690},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":7,"z":855},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":855},"$type":"TransformData"}},"children":[]}]}]},{"name":"trains_sides2mid","components":{"Transform":{"position":{"x":0,"y":0,"z":-30},"$type":"TransformData"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":-30},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":150},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"462"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"462"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"474"},"customOut":{"$id":"475"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"474"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"475"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"486"},"customOut":{"$id":"487"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"486"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"487"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"500"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"500"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"512"},"customOut":{"$id":"513"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"512"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"513"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"524"},"customOut":{"$id":"525"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"524"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"525"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"538"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"538"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"550"},"customOut":{"$id":"551"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"550"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"551"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"562"},"customOut":{"$id":"563"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"562"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"563"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"576"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"576"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"588"},"customOut":{"$id":"589"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"588"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"589"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"600"},"customOut":{"$id":"601"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"600"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"601"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"614"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"614"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"626"},"customOut":{"$id":"627"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"626"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"627"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"638"},"customOut":{"$id":"639"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"638"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"639"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"652"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"652"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"664"},"customOut":{"$id":"665"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"664"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"665"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"676"},"customOut":{"$id":"677"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"676"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"677"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":420},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":420},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":37,"z":450},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":37,"z":450},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":600},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":660},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"748"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":660},"$type":"TransformData"},"CurveParent":{"$ref":"748"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":660},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"760"},"customOut":{"$id":"761"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":660},"$type":"TransformData"},"CurvePointTangent":{"$ref":"760"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":758.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"761"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":758.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"772"},"customOut":{"$id":"773"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":660},"$type":"TransformData"},"CurvePointTangent":{"$ref":"772"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":758.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"773"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":690},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":780},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":55,"z":870},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":55,"z":870},"$type":"TransformData"}},"children":[]}]}]}]}]},"routeChunk_default_tunnel_notrain":{"name":"routeChunk_default_tunnel_notrain","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":4,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Gates,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"7"},{"$id":"8"},{"$id":"9"},{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_tunnel_notrain","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random_tunnel","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"7"}},"children":[{"name":"mid","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_mid_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]}]},{"name":"left","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_left_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":64.60001,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":64.60001,"z":210},"$type":"TransformData"}},"children":[]}]}]},{"name":"sides","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_sides_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":75},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"86"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":75},"$type":"TransformData"},"CurveParent":{"$ref":"86"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":75},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"98"},"customOut":{"$id":"99"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"98"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"99"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":176},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"110"},"customOut":{"$id":"111"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"110"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"111"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":195},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":195},"$type":"TransformData"}},"children":[]}]}]}]},{"name":"right","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_right_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":30},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":64.60001,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":64.60001,"z":210},"$type":"TransformData"}},"children":[]}]}]}]}]},"Short2Tracks":{"name":"Short2Tracks","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"routeChunk_default_short_2_tracks_end","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_2_tracks_end","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":135},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":135},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[]}]},{"name":"routeChunk_default_short_2_tracks_mid_var_1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":10,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"45"},{"$id":"46"},{"$id":"47"},{"$id":"48"},{"$id":"49"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_2_tracks_mid_var_1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"pillars_short","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":38},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"70"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"70"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"82"},"customOut":{"$id":"83"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"82"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"83"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"94"},"customOut":{"$id":"95"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"94"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"95"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"108"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"108"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"120"},"customOut":{"$id":"121"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"120"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"121"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"132"},"customOut":{"$id":"133"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"132"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"133"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"146"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"146"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"158"},"customOut":{"$id":"159"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"158"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"159"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"170"},"customOut":{"$id":"171"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"170"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"171"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"184"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"184"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"196"},"customOut":{"$id":"197"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"196"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"197"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"208"},"customOut":{"$id":"209"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"208"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"209"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"222"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurveParent":{"$ref":"222"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"234"},"customOut":{"$id":"235"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"234"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"235"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"246"},"customOut":{"$id":"247"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"246"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"247"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":397},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":410},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"279"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"279"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"291"},"customOut":{"$id":"292"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"291"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"292"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"303"},"customOut":{"$id":"304"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"303"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"304"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"317"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurveParent":{"$ref":"317"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"329"},"customOut":{"$id":"330"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"329"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"330"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":616},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"341"},"customOut":{"$id":"342"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":616},"$type":"TransformData"},"CurvePointTangent":{"$ref":"341"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":616},"$type":"TransformData"},"CurvePointTangent":{"$ref":"342"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"355"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurveParent":{"$ref":"355"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"367"},"customOut":{"$id":"368"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"367"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"368"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":646},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"379"},"customOut":{"$id":"380"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":646},"$type":"TransformData"},"CurvePointTangent":{"$ref":"379"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":646},"$type":"TransformData"},"CurvePointTangent":{"$ref":"380"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"393"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurveParent":{"$ref":"393"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"405"},"customOut":{"$id":"406"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"405"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"406"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"417"},"customOut":{"$id":"418"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"417"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"418"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"431"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurveParent":{"$ref":"431"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"443"},"customOut":{"$id":"444"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"443"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"444"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"455"},"customOut":{"$id":"456"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"455"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"456"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"469"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"469"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"481"},"customOut":{"$id":"482"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"481"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"482"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"493"},"customOut":{"$id":"494"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"493"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"494"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":756},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":770},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"525"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"525"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"537"},"customOut":{"$id":"538"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"537"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"538"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"549"},"customOut":{"$id":"550"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"549"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"550"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"563"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"563"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"575"},"customOut":{"$id":"576"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"575"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"576"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"587"},"customOut":{"$id":"588"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"587"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"588"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"601"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurveParent":{"$ref":"601"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"613"},"customOut":{"$id":"614"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"613"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"614"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"625"},"customOut":{"$id":"626"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"625"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"626"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"639"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurveParent":{"$ref":"639"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"651"},"customOut":{"$id":"652"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurvePointTangent":{"$ref":"651"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurvePointTangent":{"$ref":"652"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":976},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"663"},"customOut":{"$id":"664"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":976},"$type":"TransformData"},"CurvePointTangent":{"$ref":"663"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":976},"$type":"TransformData"},"CurvePointTangent":{"$ref":"664"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"677"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurveParent":{"$ref":"677"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"689"},"customOut":{"$id":"690"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurvePointTangent":{"$ref":"689"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurvePointTangent":{"$ref":"690"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1006},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"701"},"customOut":{"$id":"702"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1006},"$type":"TransformData"},"CurvePointTangent":{"$ref":"701"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1006},"$type":"TransformData"},"CurvePointTangent":{"$ref":"702"}},"children":[]}]}]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"pillars_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"pillars_environment (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"pillars_environment (2)","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":10,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]}]},{"name":"routeChunk_default_short_2_tracks_mid_var_2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":10,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"741"},{"$id":"742"},{"$id":"743"},{"$id":"744"},{"$id":"745"},{"$id":"746"},{"$id":"747"},{"$id":"748"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_2_tracks_mid_var_2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"pillars_long","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"roof_setup","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"subway","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"roof","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"772"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurveParent":{"$ref":"772"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"784"},"customOut":{"$id":"785"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"784"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"785"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":361},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"796"},"customOut":{"$id":"797"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"796"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"797"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"810"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurveParent":{"$ref":"810"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"822"},"customOut":{"$id":"823"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"822"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"823"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":541},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"834"},"customOut":{"$id":"835"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"834"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"835"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"848"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurveParent":{"$ref":"848"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"860"},"customOut":{"$id":"861"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"860"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"861"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":721},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"872"},"customOut":{"$id":"873"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"872"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"873"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"886"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurveParent":{"$ref":"886"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"898"},"customOut":{"$id":"899"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"898"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"899"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":901},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"910"},"customOut":{"$id":"911"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":901},"$type":"TransformData"},"CurvePointTangent":{"$ref":"910"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":901},"$type":"TransformData"},"CurvePointTangent":{"$ref":"911"}},"children":[]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":251},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"942"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"942"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"954"},"customOut":{"$id":"955"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"954"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"955"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"966"},"customOut":{"$id":"967"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"966"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"967"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"980"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"980"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"992"},"customOut":{"$id":"993"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"992"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"993"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1004"},"customOut":{"$id":"1005"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1004"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1005"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1018"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurveParent":{"$ref":"1018"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1030"},"customOut":{"$id":"1031"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1030"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1031"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1042"},"customOut":{"$id":"1043"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1042"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1043"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1056"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurveParent":{"$ref":"1056"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1068"},"customOut":{"$id":"1069"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1068"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1069"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":406},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1080"},"customOut":{"$id":"1081"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1080"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1081"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":431},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1112"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurveParent":{"$ref":"1112"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1124"},"customOut":{"$id":"1125"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1124"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1125"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1136"},"customOut":{"$id":"1137"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1136"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1137"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1150"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurveParent":{"$ref":"1150"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1162"},"customOut":{"$id":"1163"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1162"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1163"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1174"},"customOut":{"$id":"1175"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1174"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1175"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1188"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurveParent":{"$ref":"1188"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1200"},"customOut":{"$id":"1201"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1200"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1201"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1212"},"customOut":{"$id":"1213"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1212"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1213"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1226"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"1226"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1238"},"customOut":{"$id":"1239"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1238"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1239"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1250"},"customOut":{"$id":"1251"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1250"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1251"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":611},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1282"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurveParent":{"$ref":"1282"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1294"},"customOut":{"$id":"1295"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1294"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1295"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1306"},"customOut":{"$id":"1307"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1306"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1307"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1320"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurveParent":{"$ref":"1320"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1332"},"customOut":{"$id":"1333"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1332"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1333"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1344"},"customOut":{"$id":"1345"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1344"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1345"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1358"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"1358"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1370"},"customOut":{"$id":"1371"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1370"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1371"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1382"},"customOut":{"$id":"1383"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1382"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1383"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1396"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurveParent":{"$ref":"1396"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1408"},"customOut":{"$id":"1409"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1408"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1409"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":766},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1420"},"customOut":{"$id":"1421"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1420"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1421"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":791},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":810},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1452"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurveParent":{"$ref":"1452"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1464"},"customOut":{"$id":"1465"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1464"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1465"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":856},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1476"},"customOut":{"$id":"1477"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":856},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1476"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":856},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1477"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1490"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"1490"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1502"},"customOut":{"$id":"1503"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1502"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1503"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1514"},"customOut":{"$id":"1515"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1514"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1515"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1528"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"1528"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1540"},"customOut":{"$id":"1541"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1540"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1541"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1552"},"customOut":{"$id":"1553"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1552"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1553"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1566"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurveParent":{"$ref":"1566"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1578"},"customOut":{"$id":"1579"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1578"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1579"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1590"},"customOut":{"$id":"1591"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1590"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1591"}},"children":[]}]}]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"station_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":8,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":10,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]}]},{"name":"routeChunk_default_short_2_tracks_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"1618"},{"$id":"1619"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_2_tracks_start","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":7,"z":165},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":165},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_ramp_2":{"name":"routeChunk_default_ramp_2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_ramp_2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":30},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":35.8,"z":120},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":35.8,"z":120},"$type":"TransformData"}},"children":[]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":36,"z":165},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":36,"z":165},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_short_1_track":{"name":"routeChunk_default_short_1_track","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":14,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"7"},{"$id":"8"},{"$id":"9"},{"$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_1_track","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"random_coins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":275},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"35"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"35"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"47"},"customOut":{"$id":"48"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"47"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"48"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"59"},"customOut":{"$id":"60"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"59"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"60"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":275},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"73"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"73"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"85"},"customOut":{"$id":"86"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"85"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"86"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":860},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"97"},"customOut":{"$id":"98"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"97"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"98"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":275},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"111"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"111"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"123"},"customOut":{"$id":"124"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"123"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"124"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"135"},"customOut":{"$id":"136"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"135"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"136"}},"children":[]}]}]}]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":275},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"152"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"152"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"164"},"customOut":{"$id":"165"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"164"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"165"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":860},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"176"},"customOut":{"$id":"177"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"176"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"177"}},"children":[]}]}]}]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":275},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"193"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"193"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"205"},"customOut":{"$id":"206"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"205"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"206"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"217"},"customOut":{"$id":"218"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"217"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"218"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":275},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"231"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"231"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"243"},"customOut":{"$id":"244"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"243"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":8.8,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"244"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"255"},"customOut":{"$id":"256"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"255"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":8.8,"z":860},"$type":"TransformData"},"CurvePointTangent":{"$ref":"256"}},"children":[]}]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":323},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"station_platforms_extended_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"}},"children":[]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":958},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"end_coins","components":{"Transform":{"position":{"x":0,"y":0,"z":990},"$type":"TransformData"}},"children":[{"name":"obstacle_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1080},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":0,"z":1080},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"311"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":1080},"$type":"TransformData"},"CurveParent":{"$ref":"311"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":1080},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"323"},"customOut":{"$id":"324"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1080},"$type":"TransformData"},"CurvePointTangent":{"$ref":"323"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":80,"z":1178.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"324"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":1178.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"335"},"customOut":{"$id":"336"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":80,"z":1080},"$type":"TransformData"},"CurvePointTangent":{"$ref":"335"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1178.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"336"}},"children":[]}]}]}]},{"name":"obstacle_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1110},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":0,"z":1110},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"356"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":1110},"$type":"TransformData"},"CurveParent":{"$ref":"356"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":1110},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"368"},"customOut":{"$id":"369"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":1110},"$type":"TransformData"},"CurvePointTangent":{"$ref":"368"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":80,"z":1208.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"369"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":1208.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"380"},"customOut":{"$id":"381"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":80,"z":1110},"$type":"TransformData"},"CurvePointTangent":{"$ref":"380"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":1208.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"381"}},"children":[]}]}]}]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"station_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Station,All","_density":""},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"start","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":0,"y":0,"z":-180.6776},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":29.32239},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"410"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":29.32239},"$type":"TransformData"},"CurveParent":{"$ref":"410"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":29.32239},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"422"},"customOut":{"$id":"423"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":29.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"422"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":29.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"423"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":30.32239},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"434"},"customOut":{"$id":"435"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":30.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"434"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":30.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"435"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":59.32239},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"448"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":59.32239},"$type":"TransformData"},"CurveParent":{"$ref":"448"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":59.32239},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"460"},"customOut":{"$id":"461"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":59.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"460"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":59.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"461"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":60.32239},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"472"},"customOut":{"$id":"473"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":60.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"472"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":60.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"473"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":89.32239},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"486"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":89.32239},"$type":"TransformData"},"CurveParent":{"$ref":"486"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":89.32239},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"498"},"customOut":{"$id":"499"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":89.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"498"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":89.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"499"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":90.32239},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"510"},"customOut":{"$id":"511"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":90.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"510"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":90.32239},"$type":"TransformData"},"CurvePointTangent":{"$ref":"511"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":119.3224},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":119.3224},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"533"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":119.3224},"$type":"TransformData"},"CurveParent":{"$ref":"533"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":119.3224},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"545"},"customOut":{"$id":"546"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":119.3224},"$type":"TransformData"},"CurvePointTangent":{"$ref":"545"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":119.3224},"$type":"TransformData"},"CurvePointTangent":{"$ref":"546"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":120.3224},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"557"},"customOut":{"$id":"558"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":120.3224},"$type":"TransformData"},"CurvePointTangent":{"$ref":"557"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":120.3224},"$type":"TransformData"},"CurvePointTangent":{"$ref":"558"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":149.3224},"$type":"TransformData"}},"children":[]},{"name":"obstacle_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":329.3224},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":0,"z":329.3224},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"586"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":329.3224},"$type":"TransformData"},"CurveParent":{"$ref":"586"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":329.3224},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"598"},"customOut":{"$id":"599"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":329.3224},"$type":"TransformData"},"CurvePointTangent":{"$ref":"598"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":80,"z":427.7094},"$type":"TransformData"},"CurvePointTangent":{"$ref":"599"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":427.7094},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"610"},"customOut":{"$id":"611"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":80,"z":329.3224},"$type":"TransformData"},"CurvePointTangent":{"$ref":"610"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":427.7094},"$type":"TransformData"},"CurvePointTangent":{"$ref":"611"}},"children":[]}]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":60},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":60},"$type":"TransformData"}},"children":[]}]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":1,"_blockCount":12,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":26.2,"z":495},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":26.2,"z":495},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1260},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_short_train_tops_moving":{"name":"routeChunk_default_short_train_tops_moving","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":12,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Epic,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"7"},{"$id":"8"},{"$id":"9"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$id":"11"},{"$id":"12"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_train_tops_moving","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":46},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":20,"y":0,"z":75.28589},"$type":"TransformData"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":20,"y":0,"z":-59.71411},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":75.28589},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":135.2859},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"62"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurveParent":{"$ref":"62"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"74"},"customOut":{"$id":"75"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"74"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":278.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"75"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":278.6729},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"86"},"customOut":{"$id":"87"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":180.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"86"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":278.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"87"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":255.2859},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":75.28589},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":135.2859},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":375.2859},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":375.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"132"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":375.2859},"$type":"TransformData"},"CurveParent":{"$ref":"132"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":375.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"144"},"customOut":{"$id":"145"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":375.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"144"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":473.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"145"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":473.6729},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"156"},"customOut":{"$id":"157"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":375.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"156"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":473.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"157"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":75.28589},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":20,"y":29,"z":75.28589},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":150.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"176"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":150.2859},"$type":"TransformData"},"CurveParent":{"$ref":"176"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":150.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"188"},"customOut":{"$id":"189"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":150.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"188"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":150.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"189"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":151.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"200"},"customOut":{"$id":"201"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":151.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"200"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":151.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"201"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"214"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurveParent":{"$ref":"214"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"226"},"customOut":{"$id":"227"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"226"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":180.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"227"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":181.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"238"},"customOut":{"$id":"239"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":181.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"238"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":181.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"239"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":210.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"252"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":210.2859},"$type":"TransformData"},"CurveParent":{"$ref":"252"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":210.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"264"},"customOut":{"$id":"265"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":210.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"264"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":210.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"265"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":211.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"276"},"customOut":{"$id":"277"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":211.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"276"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":211.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"277"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":240.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"290"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":240.2859},"$type":"TransformData"},"CurveParent":{"$ref":"290"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":240.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"302"},"customOut":{"$id":"303"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":240.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"302"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":240.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"303"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":241.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"314"},"customOut":{"$id":"315"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":241.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"314"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":241.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"315"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":270.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"328"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":270.2859},"$type":"TransformData"},"CurveParent":{"$ref":"328"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":270.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"340"},"customOut":{"$id":"341"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":270.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"340"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":270.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"341"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":271.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"352"},"customOut":{"$id":"353"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":271.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"352"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":271.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"353"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":300.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"366"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":300.2859},"$type":"TransformData"},"CurveParent":{"$ref":"366"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":300.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"378"},"customOut":{"$id":"379"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":300.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"378"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":300.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"379"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":301.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"390"},"customOut":{"$id":"391"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":301.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"390"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":301.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"391"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":330.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"404"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":330.2859},"$type":"TransformData"},"CurveParent":{"$ref":"404"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":330.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"416"},"customOut":{"$id":"417"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":330.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"416"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":330.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"417"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":331.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"428"},"customOut":{"$id":"429"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":331.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"428"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":331.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"429"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":360.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"442"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":360.2859},"$type":"TransformData"},"CurveParent":{"$ref":"442"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":360.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"454"},"customOut":{"$id":"455"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":360.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"454"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":360.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"455"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":361.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"466"},"customOut":{"$id":"467"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":361.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"466"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":361.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"467"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":390.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"480"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":390.2859},"$type":"TransformData"},"CurveParent":{"$ref":"480"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":390.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"492"},"customOut":{"$id":"493"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":390.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"492"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":390.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"493"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":391.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"504"},"customOut":{"$id":"505"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":391.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"504"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":391.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"505"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":135.2859},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":105.2859},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":225.2859},"$type":"TransformData"}},"children":[]}]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":401},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":-20,"y":0,"z":495.2859},"$type":"TransformData"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":0,"z":360.2859},"$type":"TransformData"},"Randomizer":{"$ref":"13"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":495.2859},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":555.2859},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"574"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurveParent":{"$ref":"574"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"586"},"customOut":{"$id":"587"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"586"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":698.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"587"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":698.6729},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"598"},"customOut":{"$id":"599"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":600.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"598"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":698.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"599"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":675.2859},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":495.2859},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":555.2859},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":795.2859},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":795.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"643"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":795.2859},"$type":"TransformData"},"CurveParent":{"$ref":"643"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":795.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"655"},"customOut":{"$id":"656"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":795.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"655"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":893.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"656"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":893.6729},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"667"},"customOut":{"$id":"668"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":795.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"667"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":893.6729},"$type":"TransformData"},"CurvePointTangent":{"$ref":"668"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":495.2859},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":29,"z":495.2859},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":570.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"687"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":570.2859},"$type":"TransformData"},"CurveParent":{"$ref":"687"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":570.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"699"},"customOut":{"$id":"700"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":570.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"699"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":570.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"700"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":571.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"711"},"customOut":{"$id":"712"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":571.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"711"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":571.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"712"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"725"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurveParent":{"$ref":"725"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"737"},"customOut":{"$id":"738"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"737"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":600.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"738"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":601.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"749"},"customOut":{"$id":"750"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":601.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"749"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":601.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"750"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":630.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"763"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":630.2859},"$type":"TransformData"},"CurveParent":{"$ref":"763"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":630.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"775"},"customOut":{"$id":"776"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":630.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"775"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":630.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"776"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":631.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"787"},"customOut":{"$id":"788"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":631.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"787"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":631.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"788"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":660.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"801"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":660.2859},"$type":"TransformData"},"CurveParent":{"$ref":"801"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":660.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"813"},"customOut":{"$id":"814"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":660.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"813"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":660.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"814"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":661.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"825"},"customOut":{"$id":"826"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":661.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"825"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":661.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"826"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":690.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"839"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":690.2859},"$type":"TransformData"},"CurveParent":{"$ref":"839"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":690.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"851"},"customOut":{"$id":"852"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":690.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"851"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":690.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"852"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":691.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"863"},"customOut":{"$id":"864"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":691.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"863"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":691.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"864"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":720.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"877"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":720.2859},"$type":"TransformData"},"CurveParent":{"$ref":"877"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":720.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"889"},"customOut":{"$id":"890"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":720.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"889"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":720.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"890"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":721.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"901"},"customOut":{"$id":"902"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":721.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"901"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":721.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"902"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":750.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"915"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":750.2859},"$type":"TransformData"},"CurveParent":{"$ref":"915"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":750.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"927"},"customOut":{"$id":"928"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":750.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"927"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":750.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"928"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":751.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"939"},"customOut":{"$id":"940"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":751.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"939"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":751.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"940"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":780.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"953"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":780.2859},"$type":"TransformData"},"CurveParent":{"$ref":"953"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":780.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"965"},"customOut":{"$id":"966"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":780.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"965"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":780.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"966"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":781.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"977"},"customOut":{"$id":"978"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":781.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"977"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":781.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"978"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":810.2859},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"991"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":810.2859},"$type":"TransformData"},"CurveParent":{"$ref":"991"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":810.2859},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1003"},"customOut":{"$id":"1004"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":810.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1003"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":810.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1004"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":811.2859},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1015"},"customOut":{"$id":"1016"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":811.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1015"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":811.2859},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1016"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":555.2859},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":525.2859},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":615.2859},"$type":"TransformData"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":7,"z":570},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":570},"$type":"TransformData"}},"children":[]}]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":820},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":20,"y":0,"z":915.2859},"$type":"TransformData"}},"children":[{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":975.2859},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_short_train_tops_moving_combined":{"name":"routeChunk_default_short_train_tops_moving_combined","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":12,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"},{"$id":"33"},{"$id":"34"},{"$id":"35"},{"$id":"36"},{"$id":"37"},{"$id":"38"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_train_tops_moving_combined","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_start_end","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":900},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"101"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"101"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"113"},"customOut":{"$id":"114"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"113"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"114"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1066},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"125"},"customOut":{"$id":"126"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"125"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"126"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":960},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":55,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":55,"z":210},"$type":"TransformData"}},"children":[]}]},{"name":"side","components":{"Transform":{"position":{"x":0,"y":0,"z":395.3984},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"trains_side_ground","components":{"Transform":{"position":{"x":0,"y":0,"z":395.3984},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":515.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":515.3984},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":665.3984},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":695.3984},"$type":"TransformData"}},"children":[]}]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":0,"z":395.3984},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":0,"z":260.3984},"$type":"TransformData"},"Randomizer":{"$ref":"23"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":455.3984},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"225"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurveParent":{"$ref":"225"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"237"},"customOut":{"$id":"238"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"237"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":598.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"238"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":598.7854},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"249"},"customOut":{"$id":"250"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"249"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":598.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"250"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":575.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":455.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":695.3984},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":695.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"294"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":695.3984},"$type":"TransformData"},"CurveParent":{"$ref":"294"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":695.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"306"},"customOut":{"$id":"307"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":695.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"306"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":793.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"307"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":793.7854},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"318"},"customOut":{"$id":"319"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":695.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"318"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":793.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"319"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":29,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":470.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"338"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":470.3984},"$type":"TransformData"},"CurveParent":{"$ref":"338"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":470.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"350"},"customOut":{"$id":"351"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":470.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"350"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":470.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"351"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":471.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"362"},"customOut":{"$id":"363"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":471.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"362"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":471.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"363"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"376"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurveParent":{"$ref":"376"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"388"},"customOut":{"$id":"389"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"388"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"389"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":501.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"400"},"customOut":{"$id":"401"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":501.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"400"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":501.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"401"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":530.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"414"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":530.3984},"$type":"TransformData"},"CurveParent":{"$ref":"414"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":530.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"426"},"customOut":{"$id":"427"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":530.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"426"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":530.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"427"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":531.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"438"},"customOut":{"$id":"439"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":531.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"438"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":531.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"439"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":560.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"452"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":560.3984},"$type":"TransformData"},"CurveParent":{"$ref":"452"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":560.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"464"},"customOut":{"$id":"465"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":560.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"464"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":560.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"465"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":561.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"476"},"customOut":{"$id":"477"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":561.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"476"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":561.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"477"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":590.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"490"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":590.3984},"$type":"TransformData"},"CurveParent":{"$ref":"490"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":590.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"502"},"customOut":{"$id":"503"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":590.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"502"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":590.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"503"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":591.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"514"},"customOut":{"$id":"515"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":591.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"514"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":591.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"515"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":620.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"528"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":620.3984},"$type":"TransformData"},"CurveParent":{"$ref":"528"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":620.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"540"},"customOut":{"$id":"541"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":620.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"540"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":620.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"541"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":621.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"552"},"customOut":{"$id":"553"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":621.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"552"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":621.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"553"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":650.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"566"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":650.3984},"$type":"TransformData"},"CurveParent":{"$ref":"566"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":650.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"578"},"customOut":{"$id":"579"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":650.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"578"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":650.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"579"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":651.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"590"},"customOut":{"$id":"591"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":651.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"590"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":651.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"591"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":680.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"604"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":680.3984},"$type":"TransformData"},"CurveParent":{"$ref":"604"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":680.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"616"},"customOut":{"$id":"617"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":680.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"616"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":680.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"617"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":681.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"628"},"customOut":{"$id":"629"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":681.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"628"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":681.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"629"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":710.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"642"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":710.3984},"$type":"TransformData"},"CurveParent":{"$ref":"642"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":710.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"654"},"customOut":{"$id":"655"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":710.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"654"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":710.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"655"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":711.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"666"},"customOut":{"$id":"667"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":711.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"666"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":711.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"667"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":455.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":425.3984},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":425.3984},"$type":"TransformData"}},"children":[]}]},{"name":"3 moving sides","components":{"Transform":{"position":{"x":0,"y":0,"z":395.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":454.3984},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":662.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"middle","components":{"Transform":{"position":{"x":0,"y":0,"z":448.5102},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"1 moving","components":{"Transform":{"position":{"x":0,"y":0,"z":13.31934},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":283.3193},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"3 moving coins","components":{"Transform":{"position":{"x":0,"y":0,"z":608.8612},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270.8612},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":418.8612},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"middle","components":{"Transform":{"position":{"x":0,"y":0,"z":895.1921},"$type":"TransformData"},"Randomizer":{"$ref":"12"}},"children":[{"name":"1 moving","components":{"Transform":{"position":{"x":0,"y":0,"z":460.0012},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":730.0012},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"3 moving coins","components":{"Transform":{"position":{"x":0,"y":0,"z":1055.543},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":717.543},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":865.543},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]}]},"routeChunk_default_short_train_tops_moving_multiple":{"name":"routeChunk_default_short_train_tops_moving_multiple","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":12,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_short_train_tops_moving_multiple","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":37,"z":165},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":37,"z":165},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":480},"$type":"TransformData"}},"children":[]}]},{"name":"trains_moving_sides","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":717},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":870},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"trains_moving_mid","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":382},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":632},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":829},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":55,"z":690},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":55,"z":690},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_4_units_3_tracks_b-s-b":{"name":"routeChunk_default_4_units_3_tracks_b-s-b","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":6,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_4_units_3_tracks_b-s-b","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"40"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"CurveParent":{"$ref":"40"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"52"},"customOut":{"$id":"53"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"52"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"53"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":181},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"64"},"customOut":{"$id":"65"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"64"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"65"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"78"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"CurveParent":{"$ref":"78"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"90"},"customOut":{"$id":"91"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"90"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"91"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":211},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"102"},"customOut":{"$id":"103"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"102"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"103"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"116"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"116"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"128"},"customOut":{"$id":"129"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"128"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"129"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"140"},"customOut":{"$id":"141"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"140"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"141"}},"children":[]}]}]}]}]},{"name":"coins_mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"157"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"157"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"169"},"customOut":{"$id":"170"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"169"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"170"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"181"},"customOut":{"$id":"182"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"181"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"182"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"195"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"CurveParent":{"$ref":"195"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"207"},"customOut":{"$id":"208"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"207"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"208"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"219"},"customOut":{"$id":"220"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"219"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"220"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"233"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"233"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"245"},"customOut":{"$id":"246"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"245"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"246"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"257"},"customOut":{"$id":"258"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"257"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"258"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"271"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurveParent":{"$ref":"271"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"283"},"customOut":{"$id":"284"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"283"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"284"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":331},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"295"},"customOut":{"$id":"296"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"295"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"296"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"309"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurveParent":{"$ref":"309"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"321"},"customOut":{"$id":"322"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"321"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"322"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"333"},"customOut":{"$id":"334"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"333"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"334"}},"children":[]}]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":300},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":55,"z":150},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":55,"z":150},"$type":"TransformData"}},"children":[]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":495},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":495},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-10,"y":0,"z":510},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_4_units_3_tracks_choice":{"name":"routeChunk_default_4_units_3_tracks_choice","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":6,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_4_units_3_tracks_choice","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"25"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"},"CurveParent":{"$ref":"25"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"37"},"customOut":{"$id":"38"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"},"CurvePointTangent":{"$ref":"37"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"},"CurvePointTangent":{"$ref":"38"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":131},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"49"},"customOut":{"$id":"50"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":131},"$type":"TransformData"},"CurvePointTangent":{"$ref":"49"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":131},"$type":"TransformData"},"CurvePointTangent":{"$ref":"50"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":135},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"92"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurveParent":{"$ref":"92"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"104"},"customOut":{"$id":"105"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"104"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"105"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":331},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"116"},"customOut":{"$id":"117"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"116"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"117"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":210},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":7,"z":330},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":330},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":420},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":465},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"187"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.9,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":465},"$type":"TransformData"},"CurveParent":{"$ref":"187"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":465},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"199"},"customOut":{"$id":"200"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":465},"$type":"TransformData"},"CurvePointTangent":{"$ref":"199"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":563.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"200"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":563.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"211"},"customOut":{"$id":"212"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":465},"$type":"TransformData"},"CurvePointTangent":{"$ref":"211"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":563.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"212"}},"children":[]}]}]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-10,"y":0,"z":510},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":20,"y":57,"z":555},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":57,"z":555},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_4_units_3_tracks_s-b-s-b":{"name":"routeChunk_default_4_units_3_tracks_s-b-s-b","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":6,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_4_units_3_tracks_s-b-s-b","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":15},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":76},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"43"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":15},"$type":"TransformData"},"CurveParent":{"$ref":"43"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":15},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"55"},"customOut":{"$id":"56"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":15},"$type":"TransformData"},"CurvePointTangent":{"$ref":"55"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":15},"$type":"TransformData"},"CurvePointTangent":{"$ref":"56"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"67"},"customOut":{"$id":"68"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"67"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":91},"$type":"TransformData"},"CurvePointTangent":{"$ref":"68"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"81"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":105},"$type":"TransformData"},"CurveParent":{"$ref":"81"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"93"},"customOut":{"$id":"94"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"93"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"94"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"105"},"customOut":{"$id":"106"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"105"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"106"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":75},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"139"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"139"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"151"},"customOut":{"$id":"152"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"151"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"152"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"163"},"customOut":{"$id":"164"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"163"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"164"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":345},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":345},"$type":"TransformData"}},"children":[]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":55,"z":540},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":55,"z":540},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_4_units_3_tracks_s-s-s-s":{"name":"routeChunk_default_4_units_3_tracks_s-s-s-s","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":6,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_4_units_3_tracks_s-s-s-s","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":30},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"33"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":30},"$type":"TransformData"},"CurveParent":{"$ref":"33"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":30},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"45"},"customOut":{"$id":"46"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":30},"$type":"TransformData"},"CurvePointTangent":{"$ref":"45"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":30},"$type":"TransformData"},"CurvePointTangent":{"$ref":"46"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":131},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"57"},"customOut":{"$id":"58"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":131},"$type":"TransformData"},"CurvePointTangent":{"$ref":"57"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":131},"$type":"TransformData"},"CurvePointTangent":{"$ref":"58"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":29,"z":90},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"71"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":90},"$type":"TransformData"},"CurveParent":{"$ref":"71"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":90},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"83"},"customOut":{"$id":"84"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"83"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"84"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"95"},"customOut":{"$id":"96"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"95"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"96"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":150},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"127"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurveParent":{"$ref":"127"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"139"},"customOut":{"$id":"140"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"139"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"140"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":371},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"151"},"customOut":{"$id":"152"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":371},"$type":"TransformData"},"CurvePointTangent":{"$ref":"151"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":371},"$type":"TransformData"},"CurvePointTangent":{"$ref":"152"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":420},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":35.8,"z":420},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":35.8,"z":420},"$type":"TransformData"}},"children":[]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":495},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":495},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_4_units_3_tracks_s-s":{"name":"routeChunk_default_4_units_3_tracks_s-s","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":4,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_4_units_3_tracks_s-s","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":7,"z":150},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":150},"$type":"TransformData"}},"children":[]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":51},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"62"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"62"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"74"},"customOut":{"$id":"75"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"74"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"75"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":216},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"86"},"customOut":{"$id":"87"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":216},"$type":"TransformData"},"CurvePointTangent":{"$ref":"86"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":216},"$type":"TransformData"},"CurvePointTangent":{"$ref":"87"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":315},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":315},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_epic_various":{"name":"routeChunk_default_epic_various","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":16,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"23"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"24"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"25"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"},{"$id":"33"},{"$id":"34"},{"$id":"35"},{"$id":"36"},{"$id":"37"},{"$id":"38"},{"$id":"39"},{"$id":"40"},{"$id":"41"},{"$id":"42"},{"$id":"43"},{"$id":"44"},{"$id":"45"},{"$id":"46"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_epic_various","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"Randomizer","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"roofRun","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":451},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":605},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":832},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":990},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"groundRunDoubleTrains","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"23"}},"children":[{"name":"train double","components":{"Transform":{"position":{"x":0,"y":0,"z":145.1655},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.667267},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.667267},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"157"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.667267},"$type":"TransformData"},"CurveParent":{"$ref":"157"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.667267},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"169"},"customOut":{"$id":"170"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.667267},"$type":"TransformData"},"CurvePointTangent":{"$ref":"169"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.667267},"$type":"TransformData"},"CurvePointTangent":{"$ref":"170"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.667267},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"181"},"customOut":{"$id":"182"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.667267},"$type":"TransformData"},"CurvePointTangent":{"$ref":"181"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.667267},"$type":"TransformData"},"CurvePointTangent":{"$ref":"182"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.33273},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"195"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":25.33273},"$type":"TransformData"},"CurveParent":{"$ref":"195"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.33273},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"207"},"customOut":{"$id":"208"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":25.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"207"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":25.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"208"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":26.33273},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"219"},"customOut":{"$id":"220"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":26.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"219"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":26.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"220"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.33273},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"233"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":55.33273},"$type":"TransformData"},"CurveParent":{"$ref":"233"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.33273},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"245"},"customOut":{"$id":"246"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":55.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"245"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":55.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"246"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":56.33273},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"257"},"customOut":{"$id":"258"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":56.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"257"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":56.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"258"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.33273},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"271"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":85.33273},"$type":"TransformData"},"CurveParent":{"$ref":"271"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.33273},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"283"},"customOut":{"$id":"284"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":85.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"283"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":85.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"284"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":86.33273},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"295"},"customOut":{"$id":"296"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":86.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"295"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":86.33273},"$type":"TransformData"},"CurvePointTangent":{"$ref":"296"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.3327},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"309"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":115.3327},"$type":"TransformData"},"CurveParent":{"$ref":"309"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.3327},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"321"},"customOut":{"$id":"322"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":115.3327},"$type":"TransformData"},"CurvePointTangent":{"$ref":"321"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":115.3327},"$type":"TransformData"},"CurvePointTangent":{"$ref":"322"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":116.3327},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"333"},"customOut":{"$id":"334"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":116.3327},"$type":"TransformData"},"CurvePointTangent":{"$ref":"333"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":116.3327},"$type":"TransformData"},"CurvePointTangent":{"$ref":"334"}},"children":[]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":137.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":137.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train double close","components":{"Transform":{"position":{"x":0,"y":0,"z":145.1655},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"371"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurveParent":{"$ref":"371"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"383"},"customOut":{"$id":"384"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"383"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"384"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"395"},"customOut":{"$id":"396"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"395"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"396"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"409"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurveParent":{"$ref":"409"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"421"},"customOut":{"$id":"422"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"421"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"422"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"433"},"customOut":{"$id":"434"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"433"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"434"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"447"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurveParent":{"$ref":"447"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"459"},"customOut":{"$id":"460"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"459"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"460"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"471"},"customOut":{"$id":"472"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"471"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"472"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"485"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurveParent":{"$ref":"485"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"497"},"customOut":{"$id":"498"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"497"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"498"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"509"},"customOut":{"$id":"510"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"509"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"510"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"523"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurveParent":{"$ref":"523"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"535"},"customOut":{"$id":"536"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"535"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"536"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"547"},"customOut":{"$id":"548"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"547"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"548"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":118.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":2,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":137.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":145.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"586"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurveParent":{"$ref":"586"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"598"},"customOut":{"$id":"599"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"598"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"599"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"610"},"customOut":{"$id":"611"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"610"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"611"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"624"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurveParent":{"$ref":"624"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"636"},"customOut":{"$id":"637"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"636"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"637"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"648"},"customOut":{"$id":"649"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"648"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"649"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"662"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurveParent":{"$ref":"662"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"674"},"customOut":{"$id":"675"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"674"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"675"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"686"},"customOut":{"$id":"687"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"686"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"687"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"700"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurveParent":{"$ref":"700"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"712"},"customOut":{"$id":"713"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"712"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"713"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"724"},"customOut":{"$id":"725"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"724"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"725"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"738"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurveParent":{"$ref":"738"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"750"},"customOut":{"$id":"751"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"750"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"751"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"762"},"customOut":{"$id":"763"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"762"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"763"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":137.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":285.5849},"$type":"TransformData"},"Randomizer":{"$ref":"24"}},"children":[{"name":"train double","components":{"Transform":{"position":{"x":0,"y":0,"z":430.7503},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":280.9176},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":280.9176},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"797"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":280.9176},"$type":"TransformData"},"CurveParent":{"$ref":"797"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":280.9176},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"809"},"customOut":{"$id":"810"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":280.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"809"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":280.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"810"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":2819176},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"821"},"customOut":{"$id":"822"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":2819176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"821"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":2819176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"822"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":310.9176},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"835"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":310.9176},"$type":"TransformData"},"CurveParent":{"$ref":"835"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":310.9176},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"847"},"customOut":{"$id":"848"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":310.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"847"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":310.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"848"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":3119176},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"859"},"customOut":{"$id":"860"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":3119176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"859"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":3119176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"860"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":340.9176},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"873"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":340.9176},"$type":"TransformData"},"CurveParent":{"$ref":"873"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":340.9176},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"885"},"customOut":{"$id":"886"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":340.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"885"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":340.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"886"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":3419176},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"897"},"customOut":{"$id":"898"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":3419176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"897"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":3419176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"898"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":370.9176},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"911"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":370.9176},"$type":"TransformData"},"CurveParent":{"$ref":"911"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":370.9176},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"923"},"customOut":{"$id":"924"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":370.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"923"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":370.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"924"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":3719176},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"935"},"customOut":{"$id":"936"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":3719176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"935"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":3719176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"936"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":400.9176},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"949"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":400.9176},"$type":"TransformData"},"CurveParent":{"$ref":"949"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":400.9176},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"961"},"customOut":{"$id":"962"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":400.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"961"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":400.9176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"962"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":4019176},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"973"},"customOut":{"$id":"974"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":4019176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"973"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":4019176},"$type":"TransformData"},"CurvePointTangent":{"$ref":"974"}},"children":[]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":422.7503},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":422.7503},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train double close","components":{"Transform":{"position":{"x":0,"y":0,"z":430.7503},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1010"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1010"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1022"},"customOut":{"$id":"1023"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1022"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1023"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":281.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1034"},"customOut":{"$id":"1035"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":281.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1034"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":281.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1035"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1048"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1048"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1060"},"customOut":{"$id":"1061"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1060"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1061"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":311.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1072"},"customOut":{"$id":"1073"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":311.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1072"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":311.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1073"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1086"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1086"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1098"},"customOut":{"$id":"1099"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1098"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1099"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":341.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1110"},"customOut":{"$id":"1111"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":341.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1110"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":341.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1111"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1124"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1124"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1136"},"customOut":{"$id":"1137"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1136"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1137"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":371.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1148"},"customOut":{"$id":"1149"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":371.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1148"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":371.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1149"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1162"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1162"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1174"},"customOut":{"$id":"1175"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1174"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1175"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":401.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1186"},"customOut":{"$id":"1187"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":401.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1186"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":401.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1187"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":403.7503},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":2,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":422.7503},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":430.7503},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1225"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1225"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1237"},"customOut":{"$id":"1238"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1237"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":280.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1238"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":281.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1249"},"customOut":{"$id":"1250"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":281.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1249"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":281.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1250"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1263"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1263"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1275"},"customOut":{"$id":"1276"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1275"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":310.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1276"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":311.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1287"},"customOut":{"$id":"1288"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":311.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1287"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":311.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1288"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1301"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1301"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1313"},"customOut":{"$id":"1314"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1313"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":340.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1314"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":341.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1325"},"customOut":{"$id":"1326"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":341.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1325"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":341.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1326"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1339"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1339"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1351"},"customOut":{"$id":"1352"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1351"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":370.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1352"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":371.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1363"},"customOut":{"$id":"1364"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":371.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1363"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":371.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1364"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1377"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurveParent":{"$ref":"1377"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1389"},"customOut":{"$id":"1390"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1389"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":400.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1390"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":401.7503},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1401"},"customOut":{"$id":"1402"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":401.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1401"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":401.7503},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1402"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":422.7503},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":576.1245},"$type":"TransformData"},"Randomizer":{"$ref":"25"}},"children":[{"name":"train double","components":{"Transform":{"position":{"x":0,"y":0,"z":721.29},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":571.4573},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":571.4573},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1436"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":571.4573},"$type":"TransformData"},"CurveParent":{"$ref":"1436"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":571.4573},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1448"},"customOut":{"$id":"1449"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":571.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1448"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":571.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1449"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":572.4573},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1460"},"customOut":{"$id":"1461"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":572.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1460"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":572.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1461"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":601.4573},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1474"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":601.4573},"$type":"TransformData"},"CurveParent":{"$ref":"1474"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":601.4573},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1486"},"customOut":{"$id":"1487"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":601.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1486"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":601.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1487"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":602.4573},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1498"},"customOut":{"$id":"1499"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":602.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1498"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":602.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1499"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":631.4573},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1512"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":631.4573},"$type":"TransformData"},"CurveParent":{"$ref":"1512"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":631.4573},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1524"},"customOut":{"$id":"1525"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":631.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1524"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":631.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1525"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":632.4573},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1536"},"customOut":{"$id":"1537"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":632.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1536"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":632.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1537"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":661.4573},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1550"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":661.4573},"$type":"TransformData"},"CurveParent":{"$ref":"1550"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":661.4573},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1562"},"customOut":{"$id":"1563"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":661.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1562"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":661.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1563"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":662.4573},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1574"},"customOut":{"$id":"1575"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":662.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1574"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":662.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1575"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":691.4573},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1588"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":691.4573},"$type":"TransformData"},"CurveParent":{"$ref":"1588"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":691.4573},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1600"},"customOut":{"$id":"1601"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":691.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1600"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":691.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1601"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":692.4573},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1612"},"customOut":{"$id":"1613"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":692.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1612"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":692.4573},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1613"}},"children":[]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":713.29},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":713.29},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train double close","components":{"Transform":{"position":{"x":0,"y":0,"z":721.29},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1649"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurveParent":{"$ref":"1649"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1661"},"customOut":{"$id":"1662"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1661"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1662"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":572.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1673"},"customOut":{"$id":"1674"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":572.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1673"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":572.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1674"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1687"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurveParent":{"$ref":"1687"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1699"},"customOut":{"$id":"1700"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1699"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1700"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":602.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1711"},"customOut":{"$id":"1712"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":602.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1711"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":602.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1712"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1725"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurveParent":{"$ref":"1725"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1737"},"customOut":{"$id":"1738"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1737"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1738"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":632.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1749"},"customOut":{"$id":"1750"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":632.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1749"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":632.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1750"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1763"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurveParent":{"$ref":"1763"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1775"},"customOut":{"$id":"1776"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1775"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1776"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":662.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1787"},"customOut":{"$id":"1788"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":662.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1787"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":662.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1788"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1801"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurveParent":{"$ref":"1801"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1813"},"customOut":{"$id":"1814"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1813"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1814"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":692.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1825"},"customOut":{"$id":"1826"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":692.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1825"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":692.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1826"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":694.29},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":2,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":713.29},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":721.29},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1864"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurveParent":{"$ref":"1864"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1876"},"customOut":{"$id":"1877"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1876"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":571.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1877"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":572.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1888"},"customOut":{"$id":"1889"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":572.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1888"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":572.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1889"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1902"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurveParent":{"$ref":"1902"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1914"},"customOut":{"$id":"1915"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1914"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":601.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1915"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":602.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1926"},"customOut":{"$id":"1927"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":602.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1926"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":602.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1927"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1940"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurveParent":{"$ref":"1940"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1952"},"customOut":{"$id":"1953"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1952"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":631.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1953"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":632.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1964"},"customOut":{"$id":"1965"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":632.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1964"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":632.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1965"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1978"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurveParent":{"$ref":"1978"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1990"},"customOut":{"$id":"1991"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1990"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":661.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1991"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":662.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2002"},"customOut":{"$id":"2003"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":662.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2002"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":662.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2003"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2016"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurveParent":{"$ref":"2016"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2028"},"customOut":{"$id":"2029"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2028"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":691.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2029"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":692.29},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2040"},"customOut":{"$id":"2041"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":692.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2040"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":692.29},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2041"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":713.29},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":861.6984},"$type":"TransformData"},"Randomizer":{"$ref":"26"}},"children":[{"name":"train double","components":{"Transform":{"position":{"x":0,"y":0,"z":1006.864},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0311},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0311},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2075"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0311},"$type":"TransformData"},"CurveParent":{"$ref":"2075"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0311},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2087"},"customOut":{"$id":"2088"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2087"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2088"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":858.0311},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2099"},"customOut":{"$id":"2100"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":858.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2099"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":858.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2100"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0311},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2113"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0311},"$type":"TransformData"},"CurveParent":{"$ref":"2113"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0311},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2125"},"customOut":{"$id":"2126"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2125"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2126"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":888.0311},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2137"},"customOut":{"$id":"2138"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":888.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2137"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":888.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2138"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0311},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2151"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0311},"$type":"TransformData"},"CurveParent":{"$ref":"2151"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0311},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2163"},"customOut":{"$id":"2164"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2163"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2164"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":918.0311},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2175"},"customOut":{"$id":"2176"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":918.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2175"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":918.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2176"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0311},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2189"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0311},"$type":"TransformData"},"CurveParent":{"$ref":"2189"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0311},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2201"},"customOut":{"$id":"2202"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2201"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2202"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":948.0311},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2213"},"customOut":{"$id":"2214"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":948.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2213"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":948.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2214"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0311},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2227"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0311},"$type":"TransformData"},"CurveParent":{"$ref":"2227"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0311},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2239"},"customOut":{"$id":"2240"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2239"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2240"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":978.0311},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2251"},"customOut":{"$id":"2252"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":978.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2251"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":978.0311},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2252"}},"children":[]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":998.8638},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":998.8638},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train double close","components":{"Transform":{"position":{"x":0,"y":0,"z":1006.864},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2288"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2288"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2300"},"customOut":{"$id":"2301"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2300"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2301"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":857.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2312"},"customOut":{"$id":"2313"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":857.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2312"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":857.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2313"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2326"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2326"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2338"},"customOut":{"$id":"2339"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2338"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2339"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":887.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2350"},"customOut":{"$id":"2351"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":887.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2350"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":887.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2351"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2364"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2364"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2376"},"customOut":{"$id":"2377"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2376"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2377"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":917.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2388"},"customOut":{"$id":"2389"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":917.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2388"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":917.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2389"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2402"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2402"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2414"},"customOut":{"$id":"2415"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2414"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2415"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":947.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2426"},"customOut":{"$id":"2427"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":947.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2426"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":947.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2427"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2440"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2440"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2452"},"customOut":{"$id":"2453"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2452"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2453"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":977.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2464"},"customOut":{"$id":"2465"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":977.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2464"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":977.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2465"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":979.8638},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":2,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":998.8638},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":1006.864},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2503"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2503"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2515"},"customOut":{"$id":"2516"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2515"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":856.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2516"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":857.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2527"},"customOut":{"$id":"2528"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":857.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2527"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":857.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2528"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2541"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2541"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2553"},"customOut":{"$id":"2554"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2553"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2554"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":887.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2565"},"customOut":{"$id":"2566"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":887.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2565"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":887.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2566"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2579"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2579"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2591"},"customOut":{"$id":"2592"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2591"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":916.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2592"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":917.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2603"},"customOut":{"$id":"2604"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":917.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2603"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":917.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2604"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2617"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2617"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2629"},"customOut":{"$id":"2630"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2629"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":946.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2630"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":947.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2641"},"customOut":{"$id":"2642"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":947.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2641"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":947.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2642"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2655"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurveParent":{"$ref":"2655"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2667"},"customOut":{"$id":"2668"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2667"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":976.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2668"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":977.8638},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2679"},"customOut":{"$id":"2680"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":977.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2679"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":977.8638},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2680"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":998.8638},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]}]}]},{"name":"endCoins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"endCoins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2709"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurveParent":{"$ref":"2709"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2721"},"customOut":{"$id":"2722"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2721"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2722"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2733"},"customOut":{"$id":"2734"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2733"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2734"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2747"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurveParent":{"$ref":"2747"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2759"},"customOut":{"$id":"2760"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2759"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2760"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1391},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2771"},"customOut":{"$id":"2772"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2771"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2772"}},"children":[]}]}]}]}]},{"name":"endCoins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2792"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurveParent":{"$ref":"2792"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2804"},"customOut":{"$id":"2805"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2804"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2805"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":1246},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2816"},"customOut":{"$id":"2817"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1246},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2816"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1246},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2817"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2830"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurveParent":{"$ref":"2830"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2842"},"customOut":{"$id":"2843"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2842"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2843"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":1261},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2854"},"customOut":{"$id":"2855"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2854"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2855"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2868"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurveParent":{"$ref":"2868"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2880"},"customOut":{"$id":"2881"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2880"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2881"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":1291},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2892"},"customOut":{"$id":"2893"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2892"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2893"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2906"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurveParent":{"$ref":"2906"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2918"},"customOut":{"$id":"2919"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2918"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2919"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":1306},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2930"},"customOut":{"$id":"2931"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1306},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2930"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1306},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2931"}},"children":[]}]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2944"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurveParent":{"$ref":"2944"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2956"},"customOut":{"$id":"2957"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2956"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2957"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1141},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2968"},"customOut":{"$id":"2969"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1141},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2968"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1141},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2969"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2982"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurveParent":{"$ref":"2982"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2994"},"customOut":{"$id":"2995"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2994"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2995"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1171},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"3006"},"customOut":{"$id":"3007"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1171},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3006"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1171},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3007"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"3020"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurveParent":{"$ref":"3020"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"3032"},"customOut":{"$id":"3033"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3032"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3033"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1201},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"3044"},"customOut":{"$id":"3045"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1201},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3044"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1201},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3045"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"3058"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurveParent":{"$ref":"3058"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"3070"},"customOut":{"$id":"3071"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3070"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3071"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1231},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"3082"},"customOut":{"$id":"3083"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1231},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3082"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1231},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3083"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"3096"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurveParent":{"$ref":"3096"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"3108"},"customOut":{"$id":"3109"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3108"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3109"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1321},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"3120"},"customOut":{"$id":"3121"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1321},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3120"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1321},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3121"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"3134"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurveParent":{"$ref":"3134"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"3146"},"customOut":{"$id":"3147"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3146"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3147"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1351},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"3158"},"customOut":{"$id":"3159"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1351},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3158"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1351},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3159"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"3172"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurveParent":{"$ref":"3172"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"3184"},"customOut":{"$id":"3185"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3184"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3185"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1381},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"3196"},"customOut":{"$id":"3197"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1381},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3196"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1381},"$type":"TransformData"},"CurvePointTangent":{"$ref":"3197"}},"children":[]}]}]}]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"epic_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Epic,All","_density":""},"_blockCount":12,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":7,"z":45},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":45},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-10,"y":0,"z":1260},"$type":"TransformData"}},"children":[]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":1350},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":1410},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":1410},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_fallback":{"name":"routeChunk_default_fallback","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_fallback","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[]},"routeChunk_default_jetpack_landing":{"name":"routeChunk_default_jetpack_landing","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":4,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_jetpack_landing","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[]},"routeChunk_default_no_gameplay_1":{"name":"routeChunk_default_no_gameplay_1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":8,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"9"},{"$id":"10"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_no_gameplay_1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_5_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},"routeChunk_default_no_gameplay_2":{"name":"routeChunk_default_no_gameplay_2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":12,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"9"},{"$id":"10"},{"$id":"11"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_no_gameplay_2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_5_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":810},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},"routeChunk_default_no_gameplay_epic":{"name":"routeChunk_default_no_gameplay_epic","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":12,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Epic,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"7"},{"$id":"8"},{"$id":"9"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_no_gameplay_epic","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_5_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":390},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":810},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},"routeChunk_default_start1":{"name":"routeChunk_default_start1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":4,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"9"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$id":"11"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_start1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"random_coins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"39"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"39"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"51"},"customOut":{"$id":"52"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"51"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"52"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"63"},"customOut":{"$id":"64"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"63"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"64"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"77"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"77"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"89"},"customOut":{"$id":"90"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"89"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"90"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"101"},"customOut":{"$id":"102"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"101"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"102"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"115"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"115"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"127"},"customOut":{"$id":"128"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"127"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"128"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"139"},"customOut":{"$id":"140"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"139"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"140"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"153"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"153"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"165"},"customOut":{"$id":"166"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"165"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"166"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"177"},"customOut":{"$id":"178"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"177"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"178"}},"children":[]}]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"191"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"191"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"203"},"customOut":{"$id":"204"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"203"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"204"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"215"},"customOut":{"$id":"216"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"215"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"216"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"229"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"229"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"241"},"customOut":{"$id":"242"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"241"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"242"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"253"},"customOut":{"$id":"254"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"253"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"254"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"267"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"267"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"279"},"customOut":{"$id":"280"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"279"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"280"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"291"},"customOut":{"$id":"292"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"291"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"292"}},"children":[]}]}]}]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"308"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"308"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"320"},"customOut":{"$id":"321"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"320"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"321"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":326},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"332"},"customOut":{"$id":"333"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":326},"$type":"TransformData"},"CurvePointTangent":{"$ref":"332"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":326},"$type":"TransformData"},"CurvePointTangent":{"$ref":"333"}},"children":[]}]}]}]}]},{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"349"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurveParent":{"$ref":"349"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"361"},"customOut":{"$id":"362"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"361"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"CurvePointTangent":{"$ref":"362"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":191},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"373"},"customOut":{"$id":"374"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":191},"$type":"TransformData"},"CurvePointTangent":{"$ref":"373"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":191},"$type":"TransformData"},"CurvePointTangent":{"$ref":"374"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"387"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"387"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"399"},"customOut":{"$id":"400"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"399"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"400"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":356},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"411"},"customOut":{"$id":"412"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":356},"$type":"TransformData"},"CurvePointTangent":{"$ref":"411"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":356},"$type":"TransformData"},"CurvePointTangent":{"$ref":"412"}},"children":[]}]}]}]}]}]},{"name":"environment_constraints","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Empty,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"},"EnvironmentBase":{"_type":"Empty","_numTracks":3,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"train_sub_2_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":60},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_start2":{"name":"routeChunk_default_start2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":4,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"9"},{"$id":"10"},{"$id":"11"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"12"},{"$id":"13"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"14"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_start2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"9"}},"children":[{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"12"}},"children":[{"name":"coins_2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"42"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"42"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"54"},"customOut":{"$id":"55"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"54"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"55"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"66"},"customOut":{"$id":"67"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"66"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"67"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"80"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"80"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"92"},"customOut":{"$id":"93"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"92"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"93"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"104"},"customOut":{"$id":"105"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"104"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"105"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":180},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"118"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":180},"$type":"TransformData"},"CurveParent":{"$ref":"118"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":180},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"130"},"customOut":{"$id":"131"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"130"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":180},"$type":"TransformData"},"CurvePointTangent":{"$ref":"131"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":181},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"142"},"customOut":{"$id":"143"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"142"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"143"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"156"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"156"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"168"},"customOut":{"$id":"169"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"168"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"169"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"180"},"customOut":{"$id":"181"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"180"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"181"}},"children":[]}]}]}]}]},{"name":"coins_1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"197"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"197"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"209"},"customOut":{"$id":"210"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"209"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"210"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"221"},"customOut":{"$id":"222"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"221"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"222"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"235"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"235"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"247"},"customOut":{"$id":"248"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"247"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"248"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"259"},"customOut":{"$id":"260"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"259"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"260"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"273"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"273"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"285"},"customOut":{"$id":"286"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"285"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"286"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"297"},"customOut":{"$id":"298"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"297"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"298"}},"children":[]}]}]}]}]}]},{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"315"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"315"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"327"},"customOut":{"$id":"328"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"327"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"328"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"339"},"customOut":{"$id":"340"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"339"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"340"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"353"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"353"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"365"},"customOut":{"$id":"366"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"365"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"366"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"377"},"customOut":{"$id":"378"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"377"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"378"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"391"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"391"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"403"},"customOut":{"$id":"404"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"403"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"404"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"415"},"customOut":{"$id":"416"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"415"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"416"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"429"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"429"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"441"},"customOut":{"$id":"442"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"441"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"442"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"453"},"customOut":{"$id":"454"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"453"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"454"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"467"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"467"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"479"},"customOut":{"$id":"480"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"479"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"480"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"491"},"customOut":{"$id":"492"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"491"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"492"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"505"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"505"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"517"},"customOut":{"$id":"518"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"517"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"518"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"529"},"customOut":{"$id":"530"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"529"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"530"}},"children":[]}]}]}]}]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"random","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"14"}},"children":[{"name":"coins_2","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"563"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"563"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"575"},"customOut":{"$id":"576"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"575"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"576"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"587"},"customOut":{"$id":"588"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"587"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20.04517,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"588"}},"children":[]}]}]}]}]},{"name":"coins_1","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"604"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"604"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"616"},"customOut":{"$id":"617"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"616"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"617"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"628"},"customOut":{"$id":"629"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"628"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-0.04516602,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"629"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"642"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"642"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"654"},"customOut":{"$id":"655"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"654"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"655"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"666"},"customOut":{"$id":"667"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"666"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10.04517,"y":0,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"667"}},"children":[]}]}]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"680"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"680"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"692"},"customOut":{"$id":"693"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"692"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"693"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"704"},"customOut":{"$id":"705"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"704"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"705"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"718"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"718"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"730"},"customOut":{"$id":"731"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"730"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"731"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"742"},"customOut":{"$id":"743"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"742"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"743"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-10,"y":0,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"756"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-10,"y":0,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"756"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-10,"y":0,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"768"},"customOut":{"$id":"769"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"768"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"769"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-10,"y":0,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"780"},"customOut":{"$id":"781"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-10,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"780"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-10,"y":0,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"781"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"794"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"794"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"806"},"customOut":{"$id":"807"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"806"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"807"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"818"},"customOut":{"$id":"819"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"818"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"819"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"832"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"832"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"844"},"customOut":{"$id":"845"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"844"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"845"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"856"},"customOut":{"$id":"857"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"856"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"857"}},"children":[]}]}]}]}]}]},{"name":"environment_constraints","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Empty,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"},"EnvironmentBase":{"_type":"Empty","_numTracks":3,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"train_sub_2_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":60},"$type":"TransformData"}},"children":[]}]},"Default1Track":{"name":"Default1Track","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"routeChunk_default_1_track_end","components":{"Transform":{"position":{"x":0,"y":0,"z":1620},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_1_track_end","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"end","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"}},"children":[{"name":"endtrain","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1620},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"blocker_jump_standard_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1620},"$type":"TransformData"}},"children":[]},{"name":"blocker_jump_standard_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1620},"$type":"TransformData"}},"children":[]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":1710},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":1725},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":1725},"$type":"TransformData"}},"children":[]}]}]}]},{"name":"routeChunk_default_1_track_mid_var_1","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":14,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"83"},{"$id":"84"},{"$id":"85"},{"$id":"86"},{"$id":"87"},{"$id":"88"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_1_track_mid_var_1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":1,"_blockCount":14,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":492},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":719},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"station_platforms_extended_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"}},"children":[]},{"name":"random_coins","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":720},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"138"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":720},"$type":"TransformData"},"CurveParent":{"$ref":"138"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":720},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"150"},"customOut":{"$id":"151"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":720},"$type":"TransformData"},"CurvePointTangent":{"$ref":"150"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":720},"$type":"TransformData"},"CurvePointTangent":{"$ref":"151"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":721},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"162"},"customOut":{"$id":"163"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"162"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"163"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":750},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"176"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":750},"$type":"TransformData"},"CurveParent":{"$ref":"176"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":750},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"188"},"customOut":{"$id":"189"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"188"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"189"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":751},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"200"},"customOut":{"$id":"201"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":751},"$type":"TransformData"},"CurvePointTangent":{"$ref":"200"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":751},"$type":"TransformData"},"CurvePointTangent":{"$ref":"201"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":780},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"214"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":780},"$type":"TransformData"},"CurveParent":{"$ref":"214"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":780},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"226"},"customOut":{"$id":"227"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":780},"$type":"TransformData"},"CurvePointTangent":{"$ref":"226"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":780},"$type":"TransformData"},"CurvePointTangent":{"$ref":"227"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":781},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"238"},"customOut":{"$id":"239"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":781},"$type":"TransformData"},"CurvePointTangent":{"$ref":"238"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":781},"$type":"TransformData"},"CurvePointTangent":{"$ref":"239"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":810},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"252"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":810},"$type":"TransformData"},"CurveParent":{"$ref":"252"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":810},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"264"},"customOut":{"$id":"265"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":810},"$type":"TransformData"},"CurvePointTangent":{"$ref":"264"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":810},"$type":"TransformData"},"CurvePointTangent":{"$ref":"265"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":811},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"276"},"customOut":{"$id":"277"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":811},"$type":"TransformData"},"CurvePointTangent":{"$ref":"276"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":811},"$type":"TransformData"},"CurvePointTangent":{"$ref":"277"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":840},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"290"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":840},"$type":"TransformData"},"CurveParent":{"$ref":"290"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":840},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"302"},"customOut":{"$id":"303"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":840},"$type":"TransformData"},"CurvePointTangent":{"$ref":"302"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":840},"$type":"TransformData"},"CurvePointTangent":{"$ref":"303"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":841},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"314"},"customOut":{"$id":"315"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":841},"$type":"TransformData"},"CurvePointTangent":{"$ref":"314"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":841},"$type":"TransformData"},"CurvePointTangent":{"$ref":"315"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":870},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"328"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":870},"$type":"TransformData"},"CurveParent":{"$ref":"328"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":870},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"340"},"customOut":{"$id":"341"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":870},"$type":"TransformData"},"CurvePointTangent":{"$ref":"340"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":870},"$type":"TransformData"},"CurvePointTangent":{"$ref":"341"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":871},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"352"},"customOut":{"$id":"353"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":871},"$type":"TransformData"},"CurvePointTangent":{"$ref":"352"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":871},"$type":"TransformData"},"CurvePointTangent":{"$ref":"353"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":900},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"366"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":900},"$type":"TransformData"},"CurveParent":{"$ref":"366"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":900},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"378"},"customOut":{"$id":"379"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":900},"$type":"TransformData"},"CurvePointTangent":{"$ref":"378"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":900},"$type":"TransformData"},"CurvePointTangent":{"$ref":"379"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":901},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"390"},"customOut":{"$id":"391"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":901},"$type":"TransformData"},"CurvePointTangent":{"$ref":"390"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":901},"$type":"TransformData"},"CurvePointTangent":{"$ref":"391"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":930},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"404"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":930},"$type":"TransformData"},"CurveParent":{"$ref":"404"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":930},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"416"},"customOut":{"$id":"417"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":930},"$type":"TransformData"},"CurvePointTangent":{"$ref":"416"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":930},"$type":"TransformData"},"CurvePointTangent":{"$ref":"417"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":931},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"428"},"customOut":{"$id":"429"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":931},"$type":"TransformData"},"CurvePointTangent":{"$ref":"428"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":931},"$type":"TransformData"},"CurvePointTangent":{"$ref":"429"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":960},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"442"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":960},"$type":"TransformData"},"CurveParent":{"$ref":"442"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":960},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"454"},"customOut":{"$id":"455"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":960},"$type":"TransformData"},"CurvePointTangent":{"$ref":"454"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":960},"$type":"TransformData"},"CurvePointTangent":{"$ref":"455"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":961},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"466"},"customOut":{"$id":"467"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":961},"$type":"TransformData"},"CurvePointTangent":{"$ref":"466"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":961},"$type":"TransformData"},"CurvePointTangent":{"$ref":"467"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":990},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"480"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":990},"$type":"TransformData"},"CurveParent":{"$ref":"480"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":990},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"492"},"customOut":{"$id":"493"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":990},"$type":"TransformData"},"CurvePointTangent":{"$ref":"492"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":990},"$type":"TransformData"},"CurvePointTangent":{"$ref":"493"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":991},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"504"},"customOut":{"$id":"505"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":991},"$type":"TransformData"},"CurvePointTangent":{"$ref":"504"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":991},"$type":"TransformData"},"CurvePointTangent":{"$ref":"505"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":1020},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"518"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":1020},"$type":"TransformData"},"CurveParent":{"$ref":"518"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":1020},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"530"},"customOut":{"$id":"531"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":1020},"$type":"TransformData"},"CurvePointTangent":{"$ref":"530"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":1020},"$type":"TransformData"},"CurvePointTangent":{"$ref":"531"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":1021},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"542"},"customOut":{"$id":"543"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":1021},"$type":"TransformData"},"CurvePointTangent":{"$ref":"542"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":1021},"$type":"TransformData"},"CurvePointTangent":{"$ref":"543"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":10,"z":1050},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"556"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":10,"z":1050},"$type":"TransformData"},"CurveParent":{"$ref":"556"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":10,"z":1050},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"568"},"customOut":{"$id":"569"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":1050},"$type":"TransformData"},"CurvePointTangent":{"$ref":"568"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":1050},"$type":"TransformData"},"CurvePointTangent":{"$ref":"569"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":10,"z":1051},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"580"},"customOut":{"$id":"581"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":10,"z":1051},"$type":"TransformData"},"CurvePointTangent":{"$ref":"580"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":10,"z":1051},"$type":"TransformData"},"CurvePointTangent":{"$ref":"581"}},"children":[]}]}]}]}]},{"name":"random_coins","components":{"Transform":{"position":{"x":0,"y":0,"z":1175.177},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"obstacle_group_group","components":{"Transform":{"position":{"x":0,"y":0,"z":1265.177},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":0,"z":1265.177},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"607"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1265.177},"$type":"TransformData"},"CurveParent":{"$ref":"607"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1265.177},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"619"},"customOut":{"$id":"620"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1265.177},"$type":"TransformData"},"CurvePointTangent":{"$ref":"619"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":80,"z":1363.564},"$type":"TransformData"},"CurvePointTangent":{"$ref":"620"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1363.564},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"631"},"customOut":{"$id":"632"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":80,"z":1265.177},"$type":"TransformData"},"CurvePointTangent":{"$ref":"631"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1363.564},"$type":"TransformData"},"CurvePointTangent":{"$ref":"632"}},"children":[]}]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1261},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"random_coins","components":{"Transform":{"position":{"x":0,"y":0,"z":1407.424},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"obstacle_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1467.424},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":0,"z":1467.424},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"667"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1467.424},"$type":"TransformData"},"CurveParent":{"$ref":"667"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1467.424},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"679"},"customOut":{"$id":"680"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1467.424},"$type":"TransformData"},"CurvePointTangent":{"$ref":"679"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":80,"z":1565.811},"$type":"TransformData"},"CurvePointTangent":{"$ref":"680"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1565.811},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"691"},"customOut":{"$id":"692"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":80,"z":1467.424},"$type":"TransformData"},"CurvePointTangent":{"$ref":"691"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1565.811},"$type":"TransformData"},"CurvePointTangent":{"$ref":"692"}},"children":[]}]}]}]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"}},"children":[{"name":"high_filler","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Fillers,All","_density":"High,All"},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"station_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Station,All","_density":""},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"high_filler","components":{"Transform":{"position":{"x":0,"y":0,"z":1260},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Fillers,All","_density":"High,All"},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]}]},{"name":"routeChunk_default_1_track_mid_var_2","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":14,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"726"},{"$id":"727"},{"$id":"728"},{"$id":"729"},{"$id":"730"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_1_track_mid_var_2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":1,"_blockCount":14,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":461},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"station_platforms_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"763"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"763"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"775"},"customOut":{"$id":"776"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"775"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"776"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"787"},"customOut":{"$id":"788"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"787"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"788"}},"children":[]}]}]}]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":967},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1080},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"station_platforms_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1260},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"830"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurveParent":{"$ref":"830"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"842"},"customOut":{"$id":"843"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurvePointTangent":{"$ref":"842"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurvePointTangent":{"$ref":"843"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1426},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"854"},"customOut":{"$id":"855"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1426},"$type":"TransformData"},"CurvePointTangent":{"$ref":"854"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1426},"$type":"TransformData"},"CurvePointTangent":{"$ref":"855"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":1530},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":1530},"$type":"TransformData"}},"children":[]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"}},"children":[{"name":"high_filler","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Fillers,All","_density":"High,All"},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"station","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Station,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"high_filler","components":{"Transform":{"position":{"x":0,"y":0,"z":900},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Fillers,All","_density":"High,All"},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"station","components":{"Transform":{"position":{"x":0,"y":0,"z":1260},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Station,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]}]},{"name":"routeChunk_default_1_track_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":4,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"912"},{"$id":"913"},{"$id":"914"},{"$id":"915"},{"$id":"916"},{"$id":"917"},{"$id":"918"},{"$id":"919"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_1_track_start","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"912"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"946"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"946"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"958"},"customOut":{"$id":"959"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"958"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"959"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"970"},"customOut":{"$id":"971"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"970"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"971"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"984"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"984"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"996"},"customOut":{"$id":"997"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"996"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"997"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1008"},"customOut":{"$id":"1009"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1008"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1009"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1022"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"1022"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1034"},"customOut":{"$id":"1035"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1034"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1035"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1046"},"customOut":{"$id":"1047"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1046"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1047"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1060"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"1060"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1072"},"customOut":{"$id":"1073"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1072"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1073"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1084"},"customOut":{"$id":"1085"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1084"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1085"}},"children":[]}]}]}]},{"name":"obstacle_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1105"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurveParent":{"$ref":"1105"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1117"},"customOut":{"$id":"1118"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1117"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":80,"z":608.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1118"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":608.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1129"},"customOut":{"$id":"1130"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":80,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1129"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":608.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1130"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":7,"z":510},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":510},"$type":"TransformData"}},"children":[]}]}]},{"name":"group","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1170"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"1170"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1182"},"customOut":{"$id":"1183"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1182"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1183"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1194"},"customOut":{"$id":"1195"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1194"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1195"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1208"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"1208"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1220"},"customOut":{"$id":"1221"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1220"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1221"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1232"},"customOut":{"$id":"1233"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1232"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1233"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1246"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"1246"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1258"},"customOut":{"$id":"1259"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1258"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1259"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1270"},"customOut":{"$id":"1271"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1270"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1271"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1284"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"1284"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1296"},"customOut":{"$id":"1297"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1296"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1297"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1308"},"customOut":{"$id":"1309"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1308"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1309"}},"children":[]}]}]}]},{"name":"obstacle_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":510},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":0,"z":510},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1329"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":510},"$type":"TransformData"},"CurveParent":{"$ref":"1329"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":510},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1341"},"customOut":{"$id":"1342"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1341"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":80,"z":608.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1342"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":608.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1353"},"customOut":{"$id":"1354"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":80,"z":510},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1353"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":608.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1354"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":7,"z":510},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":510},"$type":"TransformData"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"blockers","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"}},"children":[]}]}]}]},"Default2Tracks":{"name":"Default2Tracks","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"routeChunk_default_2_tracks_end","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_2_tracks_end","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-10,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":105},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":105},"$type":"TransformData"}},"children":[]}]}]},{"name":"routeChunk_default_2_tracks_mid_var_1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":16,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"50"},{"$id":"51"},{"$id":"52"},{"$id":"53"},{"$id":"54"},{"$id":"55"},{"$id":"56"},{"$id":"57"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_2_tracks_mid_var_1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"pillar_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"pillar_environment (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"pillar_environment (2)","components":{"Transform":{"position":{"x":0,"y":0,"z":720},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]},{"name":"pillar_environment (3)","components":{"Transform":{"position":{"x":0,"y":0,"z":1080},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":16,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"pillars_short","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"98"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-135},"$type":"TransformData"},"CurveParent":{"$ref":"98"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"110"},"customOut":{"$id":"111"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"110"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"111"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-134},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"122"},"customOut":{"$id":"123"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-134},"$type":"TransformData"},"CurvePointTangent":{"$ref":"122"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-134},"$type":"TransformData"},"CurvePointTangent":{"$ref":"123"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"136"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-105},"$type":"TransformData"},"CurveParent":{"$ref":"136"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"148"},"customOut":{"$id":"149"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"148"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"149"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-104},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"160"},"customOut":{"$id":"161"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-104},"$type":"TransformData"},"CurvePointTangent":{"$ref":"160"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-104},"$type":"TransformData"},"CurvePointTangent":{"$ref":"161"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-75},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"174"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-75},"$type":"TransformData"},"CurveParent":{"$ref":"174"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-75},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"186"},"customOut":{"$id":"187"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"186"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-75},"$type":"TransformData"},"CurvePointTangent":{"$ref":"187"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-74},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"198"},"customOut":{"$id":"199"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-74},"$type":"TransformData"},"CurvePointTangent":{"$ref":"198"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-74},"$type":"TransformData"},"CurvePointTangent":{"$ref":"199"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-45},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"212"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-45},"$type":"TransformData"},"CurveParent":{"$ref":"212"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-45},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"224"},"customOut":{"$id":"225"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-45},"$type":"TransformData"},"CurvePointTangent":{"$ref":"224"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-45},"$type":"TransformData"},"CurvePointTangent":{"$ref":"225"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-44},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"236"},"customOut":{"$id":"237"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-44},"$type":"TransformData"},"CurvePointTangent":{"$ref":"236"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-44},"$type":"TransformData"},"CurvePointTangent":{"$ref":"237"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-15},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"250"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-15},"$type":"TransformData"},"CurveParent":{"$ref":"250"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-15},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"262"},"customOut":{"$id":"263"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-15},"$type":"TransformData"},"CurvePointTangent":{"$ref":"262"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-15},"$type":"TransformData"},"CurvePointTangent":{"$ref":"263"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-14},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"274"},"customOut":{"$id":"275"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-14},"$type":"TransformData"},"CurvePointTangent":{"$ref":"274"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-14},"$type":"TransformData"},"CurvePointTangent":{"$ref":"275"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":39},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (3)","components":{"Transform":{"position":{"x":0,"y":0,"z":50},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"308"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"308"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"320"},"customOut":{"$id":"321"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"320"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"321"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"332"},"customOut":{"$id":"333"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"332"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"333"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"346"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"346"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"358"},"customOut":{"$id":"359"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"358"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"359"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"370"},"customOut":{"$id":"371"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"370"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"371"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"384"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"384"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"396"},"customOut":{"$id":"397"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"396"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"397"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"408"},"customOut":{"$id":"409"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"408"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"409"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"422"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"422"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"434"},"customOut":{"$id":"435"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"434"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"435"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"446"},"customOut":{"$id":"447"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"446"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"447"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"460"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"460"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"472"},"customOut":{"$id":"473"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"472"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"473"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"484"},"customOut":{"$id":"485"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"484"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"485"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"498"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"498"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"510"},"customOut":{"$id":"511"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"510"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"511"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"522"},"customOut":{"$id":"523"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"522"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"523"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"536"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"536"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"548"},"customOut":{"$id":"549"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"548"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"549"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"560"},"customOut":{"$id":"561"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"560"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"561"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"574"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"574"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"586"},"customOut":{"$id":"587"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"586"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"587"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"598"},"customOut":{"$id":"599"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"598"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"599"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":398},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":410},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"630"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurveParent":{"$ref":"630"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"642"},"customOut":{"$id":"643"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"642"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"643"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"654"},"customOut":{"$id":"655"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"654"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"655"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"668"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurveParent":{"$ref":"668"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"680"},"customOut":{"$id":"681"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"680"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"681"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"692"},"customOut":{"$id":"693"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"692"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"693"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"706"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurveParent":{"$ref":"706"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"718"},"customOut":{"$id":"719"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"718"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"719"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"730"},"customOut":{"$id":"731"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePointTangent":{"$ref":"730"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePointTangent":{"$ref":"731"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"744"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"744"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"756"},"customOut":{"$id":"757"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"756"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"757"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"768"},"customOut":{"$id":"769"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"768"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"769"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"782"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurveParent":{"$ref":"782"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"794"},"customOut":{"$id":"795"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"794"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"795"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":616},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"806"},"customOut":{"$id":"807"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":616},"$type":"TransformData"},"CurvePointTangent":{"$ref":"806"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":616},"$type":"TransformData"},"CurvePointTangent":{"$ref":"807"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"820"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurveParent":{"$ref":"820"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"832"},"customOut":{"$id":"833"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"832"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"833"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":646},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"844"},"customOut":{"$id":"845"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":646},"$type":"TransformData"},"CurvePointTangent":{"$ref":"844"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":646},"$type":"TransformData"},"CurvePointTangent":{"$ref":"845"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"858"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurveParent":{"$ref":"858"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"870"},"customOut":{"$id":"871"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"870"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"871"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"882"},"customOut":{"$id":"883"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"882"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"883"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"896"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurveParent":{"$ref":"896"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"908"},"customOut":{"$id":"909"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"908"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"909"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"920"},"customOut":{"$id":"921"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"920"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"921"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":758},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":770},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"952"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"952"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"964"},"customOut":{"$id":"965"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"964"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"965"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"976"},"customOut":{"$id":"977"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"976"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"977"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"990"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"990"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1002"},"customOut":{"$id":"1003"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1002"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1003"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1014"},"customOut":{"$id":"1015"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1014"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1015"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1028"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurveParent":{"$ref":"1028"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1040"},"customOut":{"$id":"1041"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1040"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1041"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1052"},"customOut":{"$id":"1053"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1052"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1053"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1066"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurveParent":{"$ref":"1066"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1078"},"customOut":{"$id":"1079"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1078"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1079"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":976},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1090"},"customOut":{"$id":"1091"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":976},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1090"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":976},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1091"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1104"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurveParent":{"$ref":"1104"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1116"},"customOut":{"$id":"1117"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1116"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1005},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1117"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1006},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1128"},"customOut":{"$id":"1129"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1006},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1128"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1006},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1129"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1142"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurveParent":{"$ref":"1142"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1154"},"customOut":{"$id":"1155"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1154"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1155"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1166"},"customOut":{"$id":"1167"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1166"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1167"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1180"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurveParent":{"$ref":"1180"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1192"},"customOut":{"$id":"1193"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1192"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1193"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1066},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1204"},"customOut":{"$id":"1205"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1204"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1205"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1118},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (2)","components":{"Transform":{"position":{"x":0,"y":0,"z":1130},"$type":"TransformData"}},"children":[]}]}]},{"name":"routeChunk_default_2_tracks_mid_var_2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":16,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"1237"},{"$id":"1238"},{"$id":"1239"},{"$id":"1240"},{"$id":"1241"},{"$id":"1242"},{"$id":"1243"},{"$id":"1244"},{"$id":"1245"},{"$id":"1246"},{"$id":"1247"},{"$id":"1248"},{"$id":"1249"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_2_tracks_mid_var_2","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"pillars_long","components":{"Transform":{"position":{"x":0,"y":0,"z":-180},"$type":"TransformData"}},"children":[{"name":"roof_setup","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":30},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1263"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":30},"$type":"TransformData"},"CurveParent":{"$ref":"1263"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":30},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1275"},"customOut":{"$id":"1276"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":30},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1275"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":30},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1276"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":181},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1287"},"customOut":{"$id":"1288"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1287"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":181},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1288"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1301"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurveParent":{"$ref":"1301"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1313"},"customOut":{"$id":"1314"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1313"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1314"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":361},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1325"},"customOut":{"$id":"1326"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1325"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1326"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1339"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurveParent":{"$ref":"1339"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1351"},"customOut":{"$id":"1352"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1351"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1352"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":541},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1363"},"customOut":{"$id":"1364"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1363"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":541},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1364"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1377"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurveParent":{"$ref":"1377"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1389"},"customOut":{"$id":"1390"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1389"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":570},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1390"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":721},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1401"},"customOut":{"$id":"1402"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1401"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1402"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1415"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurveParent":{"$ref":"1415"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1427"},"customOut":{"$id":"1428"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1427"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1428"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":901},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1439"},"customOut":{"$id":"1440"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":901},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1439"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":901},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1440"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":930},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1453"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":930},"$type":"TransformData"},"CurveParent":{"$ref":"1453"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":930},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1465"},"customOut":{"$id":"1466"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":930},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1465"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":930},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1466"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":1081},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1477"},"customOut":{"$id":"1478"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":1081},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1477"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":1081},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1478"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":1110},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1491"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":1110},"$type":"TransformData"},"CurveParent":{"$ref":"1491"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":1110},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1503"},"customOut":{"$id":"1504"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":1110},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1503"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":1110},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1504"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":1261},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1515"},"customOut":{"$id":"1516"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1515"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1516"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":91,"z":1290},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1529"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":91,"z":1290},"$type":"TransformData"},"CurveParent":{"$ref":"1529"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":91,"z":1290},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1541"},"customOut":{"$id":"1542"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1541"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1542"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":91,"z":1441},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1553"},"customOut":{"$id":"1554"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":91,"z":1441},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1553"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":91,"z":1441},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1554"}},"children":[]}]}]}]}]},{"name":"pillar_group_place (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1575"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"1575"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1587"},"customOut":{"$id":"1588"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1587"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1588"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1599"},"customOut":{"$id":"1600"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1599"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":136},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1600"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1613"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"1613"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1625"},"customOut":{"$id":"1626"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1625"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1626"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1637"},"customOut":{"$id":"1638"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1637"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":166},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1638"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1651"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"1651"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1663"},"customOut":{"$id":"1664"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1663"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1664"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1675"},"customOut":{"$id":"1676"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1675"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":196},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1676"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1689"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurveParent":{"$ref":"1689"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1701"},"customOut":{"$id":"1702"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1701"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":225},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1702"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1713"},"customOut":{"$id":"1714"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1713"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":226},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1714"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":251},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (4)","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1745"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"1745"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1757"},"customOut":{"$id":"1758"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1757"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1758"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1769"},"customOut":{"$id":"1770"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1769"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1770"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1783"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"1783"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1795"},"customOut":{"$id":"1796"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1795"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1796"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1807"},"customOut":{"$id":"1808"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1807"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":346},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1808"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1821"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurveParent":{"$ref":"1821"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1833"},"customOut":{"$id":"1834"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1833"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1834"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1845"},"customOut":{"$id":"1846"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1845"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":376},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1846"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1859"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurveParent":{"$ref":"1859"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1871"},"customOut":{"$id":"1872"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1871"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1872"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":406},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1883"},"customOut":{"$id":"1884"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1883"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1884"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":431},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":450},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1915"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurveParent":{"$ref":"1915"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1927"},"customOut":{"$id":"1928"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1927"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":495},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1928"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1939"},"customOut":{"$id":"1940"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1939"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1940"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1953"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurveParent":{"$ref":"1953"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1965"},"customOut":{"$id":"1966"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1965"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1966"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1977"},"customOut":{"$id":"1978"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1977"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1978"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1991"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurveParent":{"$ref":"1991"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2003"},"customOut":{"$id":"2004"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2003"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2004"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2015"},"customOut":{"$id":"2016"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2015"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":556},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2016"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2029"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"2029"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2041"},"customOut":{"$id":"2042"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2041"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2042"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2053"},"customOut":{"$id":"2054"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2053"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2054"}},"children":[]}]}]}]},{"name":"pillar_group_place (3)","components":{"Transform":{"position":{"x":0,"y":0,"z":630},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2075"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurveParent":{"$ref":"2075"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2087"},"customOut":{"$id":"2088"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2087"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":675},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2088"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2099"},"customOut":{"$id":"2100"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2099"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":676},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2100"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2113"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurveParent":{"$ref":"2113"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2125"},"customOut":{"$id":"2126"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2125"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":705},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2126"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2137"},"customOut":{"$id":"2138"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2137"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":706},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2138"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2151"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"2151"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2163"},"customOut":{"$id":"2164"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2163"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2164"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2175"},"customOut":{"$id":"2176"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2175"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2176"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2189"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurveParent":{"$ref":"2189"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2201"},"customOut":{"$id":"2202"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2201"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2202"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":766},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2213"},"customOut":{"$id":"2214"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2213"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2214"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":791},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (5)","components":{"Transform":{"position":{"x":0,"y":0,"z":810},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2245"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurveParent":{"$ref":"2245"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2257"},"customOut":{"$id":"2258"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2257"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2258"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":856},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2269"},"customOut":{"$id":"2270"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":856},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2269"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":856},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2270"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2283"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"2283"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2295"},"customOut":{"$id":"2296"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2295"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2296"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2307"},"customOut":{"$id":"2308"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2307"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2308"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2321"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"2321"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2333"},"customOut":{"$id":"2334"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2333"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2334"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2345"},"customOut":{"$id":"2346"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2345"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":916},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2346"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2359"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurveParent":{"$ref":"2359"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2371"},"customOut":{"$id":"2372"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2371"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2372"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2383"},"customOut":{"$id":"2384"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2383"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":946},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2384"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":971},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (7)","components":{"Transform":{"position":{"x":0,"y":0,"z":990},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2415"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurveParent":{"$ref":"2415"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2427"},"customOut":{"$id":"2428"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2427"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2428"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2439"},"customOut":{"$id":"2440"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2439"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2440"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2453"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurveParent":{"$ref":"2453"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2465"},"customOut":{"$id":"2466"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2465"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1065},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2466"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1066},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2477"},"customOut":{"$id":"2478"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2477"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2478"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1095},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2491"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1095},"$type":"TransformData"},"CurveParent":{"$ref":"2491"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1095},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2503"},"customOut":{"$id":"2504"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1095},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2503"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1095},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2504"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1096},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2515"},"customOut":{"$id":"2516"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1096},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2515"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1096},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2516"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1125},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2529"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1125},"$type":"TransformData"},"CurveParent":{"$ref":"2529"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1125},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2541"},"customOut":{"$id":"2542"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1125},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2541"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1125},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2542"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1126},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2553"},"customOut":{"$id":"2554"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1126},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2553"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1126},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2554"}},"children":[]}]}]}]},{"name":"pillar_group_place (6)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"}},"children":[]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1215},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2575"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1215},"$type":"TransformData"},"CurveParent":{"$ref":"2575"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1215},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2587"},"customOut":{"$id":"2588"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1215},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2587"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1215},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2588"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1216},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2599"},"customOut":{"$id":"2600"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1216},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2599"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1216},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2600"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1245},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2613"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1245},"$type":"TransformData"},"CurveParent":{"$ref":"2613"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1245},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2625"},"customOut":{"$id":"2626"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1245},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2625"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1245},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2626"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1246},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2637"},"customOut":{"$id":"2638"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1246},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2637"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1246},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2638"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2651"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurveParent":{"$ref":"2651"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2663"},"customOut":{"$id":"2664"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2663"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1275},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2664"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1276},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2675"},"customOut":{"$id":"2676"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1276},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2675"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1276},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2676"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1305},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2689"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1305},"$type":"TransformData"},"CurveParent":{"$ref":"2689"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1305},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2701"},"customOut":{"$id":"2702"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1305},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2701"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1305},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2702"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1306},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2713"},"customOut":{"$id":"2714"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1306},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2713"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1306},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2714"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1331},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"pillar_group_place (2)","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"}},"children":[]}]},{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":16,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"pillars_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Pillars,All","_density":""},"_blockCount":16,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]}]},{"name":"routeChunk_default_2_tracks_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"2758"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_2_tracks_start","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"environment_base","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":26.2,"z":120},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":26.2,"z":120},"$type":"TransformData"}},"children":[]}]}]}]},"routeChunk_default_epic":{"name":"routeChunk_default_epic","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":false,"_blockCount":16,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"9"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_epic","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"endCoins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"9"}},"children":[{"name":"endCoins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"37"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurveParent":{"$ref":"37"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"49"},"customOut":{"$id":"50"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"49"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"50"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"61"},"customOut":{"$id":"62"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"61"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"62"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"75"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurveParent":{"$ref":"75"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"87"},"customOut":{"$id":"88"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"87"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"88"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1391},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"99"},"customOut":{"$id":"100"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"99"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"100"}},"children":[]}]}]}]}]},{"name":"endCoins","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"120"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurveParent":{"$ref":"120"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"132"},"customOut":{"$id":"133"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurvePointTangent":{"$ref":"132"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1245},"$type":"TransformData"},"CurvePointTangent":{"$ref":"133"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":1246},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"144"},"customOut":{"$id":"145"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1246},"$type":"TransformData"},"CurvePointTangent":{"$ref":"144"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1246},"$type":"TransformData"},"CurvePointTangent":{"$ref":"145"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"158"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurveParent":{"$ref":"158"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"170"},"customOut":{"$id":"171"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurvePointTangent":{"$ref":"170"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1260},"$type":"TransformData"},"CurvePointTangent":{"$ref":"171"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":1261},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"182"},"customOut":{"$id":"183"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"182"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"183"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"196"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurveParent":{"$ref":"196"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"208"},"customOut":{"$id":"209"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"208"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"209"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":1291},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"220"},"customOut":{"$id":"221"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"220"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"221"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"234"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurveParent":{"$ref":"234"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"246"},"customOut":{"$id":"247"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurvePointTangent":{"$ref":"246"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1305},"$type":"TransformData"},"CurvePointTangent":{"$ref":"247"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":10,"y":0,"z":1306},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"258"},"customOut":{"$id":"259"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":10,"y":0,"z":1306},"$type":"TransformData"},"CurvePointTangent":{"$ref":"258"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":10,"y":0,"z":1306},"$type":"TransformData"},"CurvePointTangent":{"$ref":"259"}},"children":[]}]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"272"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurveParent":{"$ref":"272"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"284"},"customOut":{"$id":"285"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurvePointTangent":{"$ref":"284"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1140},"$type":"TransformData"},"CurvePointTangent":{"$ref":"285"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1141},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"296"},"customOut":{"$id":"297"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1141},"$type":"TransformData"},"CurvePointTangent":{"$ref":"296"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1141},"$type":"TransformData"},"CurvePointTangent":{"$ref":"297"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"310"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurveParent":{"$ref":"310"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"322"},"customOut":{"$id":"323"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"322"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"323"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1171},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"334"},"customOut":{"$id":"335"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1171},"$type":"TransformData"},"CurvePointTangent":{"$ref":"334"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1171},"$type":"TransformData"},"CurvePointTangent":{"$ref":"335"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"348"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurveParent":{"$ref":"348"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"360"},"customOut":{"$id":"361"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurvePointTangent":{"$ref":"360"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1200},"$type":"TransformData"},"CurvePointTangent":{"$ref":"361"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1201},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"372"},"customOut":{"$id":"373"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1201},"$type":"TransformData"},"CurvePointTangent":{"$ref":"372"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1201},"$type":"TransformData"},"CurvePointTangent":{"$ref":"373"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"386"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurveParent":{"$ref":"386"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"398"},"customOut":{"$id":"399"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurvePointTangent":{"$ref":"398"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1230},"$type":"TransformData"},"CurvePointTangent":{"$ref":"399"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1231},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"410"},"customOut":{"$id":"411"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1231},"$type":"TransformData"},"CurvePointTangent":{"$ref":"410"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1231},"$type":"TransformData"},"CurvePointTangent":{"$ref":"411"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"424"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurveParent":{"$ref":"424"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"436"},"customOut":{"$id":"437"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurvePointTangent":{"$ref":"436"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1320},"$type":"TransformData"},"CurvePointTangent":{"$ref":"437"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1321},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"448"},"customOut":{"$id":"449"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1321},"$type":"TransformData"},"CurvePointTangent":{"$ref":"448"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1321},"$type":"TransformData"},"CurvePointTangent":{"$ref":"449"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"462"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurveParent":{"$ref":"462"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"474"},"customOut":{"$id":"475"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurvePointTangent":{"$ref":"474"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1350},"$type":"TransformData"},"CurvePointTangent":{"$ref":"475"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1351},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"486"},"customOut":{"$id":"487"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1351},"$type":"TransformData"},"CurvePointTangent":{"$ref":"486"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1351},"$type":"TransformData"},"CurvePointTangent":{"$ref":"487"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"500"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurveParent":{"$ref":"500"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"512"},"customOut":{"$id":"513"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurvePointTangent":{"$ref":"512"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1380},"$type":"TransformData"},"CurvePointTangent":{"$ref":"513"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1381},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"524"},"customOut":{"$id":"525"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1381},"$type":"TransformData"},"CurvePointTangent":{"$ref":"524"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1381},"$type":"TransformData"},"CurvePointTangent":{"$ref":"525"}},"children":[]}]}]}]}]}]},{"name":"Randomizer","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"roofRun","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":240},"$type":"TransformData"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":451},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":605},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":832},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":990},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"groundRun","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":145.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"636"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurveParent":{"$ref":"636"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"648"},"customOut":{"$id":"649"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"648"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-4.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"649"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"660"},"customOut":{"$id":"661"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"660"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":-3.834534},"$type":"TransformData"},"CurvePointTangent":{"$ref":"661"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"674"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurveParent":{"$ref":"674"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"686"},"customOut":{"$id":"687"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"686"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":25.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"687"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"698"},"customOut":{"$id":"699"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"698"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":26.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"699"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"712"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurveParent":{"$ref":"712"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"724"},"customOut":{"$id":"725"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"724"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":55.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"725"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"736"},"customOut":{"$id":"737"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"736"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":56.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"737"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"750"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurveParent":{"$ref":"750"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"762"},"customOut":{"$id":"763"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"762"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":85.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"763"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"774"},"customOut":{"$id":"775"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"774"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":86.16547},"$type":"TransformData"},"CurvePointTangent":{"$ref":"775"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"788"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurveParent":{"$ref":"788"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"800"},"customOut":{"$id":"801"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"800"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":115.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"801"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"812"},"customOut":{"$id":"813"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"812"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":116.1655},"$type":"TransformData"},"CurvePointTangent":{"$ref":"813"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":137.1655},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":432.2206},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":282.2206},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"842"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":282.2206},"$type":"TransformData"},"CurveParent":{"$ref":"842"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":282.2206},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"854"},"customOut":{"$id":"855"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":282.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"854"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":282.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"855"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":283.2206},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"866"},"customOut":{"$id":"867"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":283.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"866"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":283.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"867"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":312.2206},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"880"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":312.2206},"$type":"TransformData"},"CurveParent":{"$ref":"880"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":312.2206},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"892"},"customOut":{"$id":"893"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":312.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"892"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":312.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"893"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":313.2206},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"904"},"customOut":{"$id":"905"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":313.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"904"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":313.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"905"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":342.2206},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"918"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":342.2206},"$type":"TransformData"},"CurveParent":{"$ref":"918"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":342.2206},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"930"},"customOut":{"$id":"931"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":342.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"930"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":342.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"931"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":343.2206},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"942"},"customOut":{"$id":"943"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":343.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"942"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":343.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"943"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":372.2206},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"956"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":372.2206},"$type":"TransformData"},"CurveParent":{"$ref":"956"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":372.2206},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"968"},"customOut":{"$id":"969"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":372.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"968"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":372.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"969"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":373.2206},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"980"},"customOut":{"$id":"981"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":373.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"980"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":373.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"981"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":402.2206},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"994"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":402.2206},"$type":"TransformData"},"CurveParent":{"$ref":"994"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":402.2206},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1006"},"customOut":{"$id":"1007"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":402.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1006"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":402.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1007"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":403.2206},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1018"},"customOut":{"$id":"1019"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":403.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1018"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":403.2206},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1019"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":423.2206},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":719.3317},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":569.3317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1047"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":569.3317},"$type":"TransformData"},"CurveParent":{"$ref":"1047"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":569.3317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1059"},"customOut":{"$id":"1060"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":569.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1059"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":569.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1060"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":570.3317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1071"},"customOut":{"$id":"1072"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":570.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1071"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":570.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1072"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":599.3317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1085"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":599.3317},"$type":"TransformData"},"CurveParent":{"$ref":"1085"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":599.3317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1097"},"customOut":{"$id":"1098"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":599.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1097"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":599.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1098"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":600.3317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1109"},"customOut":{"$id":"1110"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":600.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1109"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":600.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1110"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":629.3317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1123"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":629.3317},"$type":"TransformData"},"CurveParent":{"$ref":"1123"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":629.3317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1135"},"customOut":{"$id":"1136"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":629.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1135"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":629.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1136"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":630.3317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1147"},"customOut":{"$id":"1148"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":630.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1147"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":630.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1148"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":659.3317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1161"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":659.3317},"$type":"TransformData"},"CurveParent":{"$ref":"1161"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":659.3317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1173"},"customOut":{"$id":"1174"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":659.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1173"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":659.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1174"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":660.3317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1185"},"customOut":{"$id":"1186"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":660.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1185"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":660.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1186"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":689.3317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1199"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":689.3317},"$type":"TransformData"},"CurveParent":{"$ref":"1199"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":689.3317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1211"},"customOut":{"$id":"1212"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":689.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1211"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":689.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1212"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":690.3317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1223"},"customOut":{"$id":"1224"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":690.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1223"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":690.3317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1224"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":712.3317},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"train 1","components":{"Transform":{"position":{"x":0,"y":0,"z":1007.032},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1252"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0317},"$type":"TransformData"},"CurveParent":{"$ref":"1252"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1264"},"customOut":{"$id":"1265"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1264"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":857.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1265"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":858.0317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1276"},"customOut":{"$id":"1277"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":858.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1276"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":858.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1277"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1290"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0317},"$type":"TransformData"},"CurveParent":{"$ref":"1290"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1302"},"customOut":{"$id":"1303"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1302"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":887.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1303"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":888.0317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1314"},"customOut":{"$id":"1315"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":888.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1314"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":888.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1315"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1328"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0317},"$type":"TransformData"},"CurveParent":{"$ref":"1328"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1340"},"customOut":{"$id":"1341"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1340"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":917.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1341"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":918.0317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1352"},"customOut":{"$id":"1353"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":918.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1352"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":918.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1353"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1366"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0317},"$type":"TransformData"},"CurveParent":{"$ref":"1366"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1378"},"customOut":{"$id":"1379"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1378"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":947.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1379"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":948.0317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1390"},"customOut":{"$id":"1391"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":948.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1390"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":948.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1391"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0317},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1404"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0317},"$type":"TransformData"},"CurveParent":{"$ref":"1404"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0317},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1416"},"customOut":{"$id":"1417"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1416"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":977.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1417"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":978.0317},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1428"},"customOut":{"$id":"1429"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":978.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1428"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":978.0317},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1429"}},"children":[]}]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":999.0317},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":2,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"epic_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Epic,All","_density":""},"_blockCount":12,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":7,"z":30},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":30},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":-10,"y":0,"z":1260},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":20,"y":7,"z":1410},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":1410},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_ramp_1":{"name":"routeChunk_default_ramp_1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_ramp_1","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random_trains","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":56,"z":195},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":56,"z":195},"$type":"TransformData"}},"children":[]}]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":7,"z":30},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":30},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_train_tops_moving":{"name":"routeChunk_default_train_tops_moving","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":20,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"15"},{"$id":"16"},{"$id":"17"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"18"},{"$id":"19"},{"$id":"20"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"21"},{"$id":"22"},{"$id":"23"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"},{"$id":"33"},{"$id":"34"},{"$id":"35"},{"$id":"36"},{"$id":"37"},{"$id":"38"},{"$id":"39"},{"$id":"40"},{"$id":"41"},{"$id":"42"},{"$id":"43"},{"$id":"44"},{"$id":"45"},{"$id":"46"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_train_tops_moving","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":106},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":0,"z":135},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"15"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"83"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"83"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"95"},"customOut":{"$id":"96"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"95"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":338.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"96"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":338.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"107"},"customOut":{"$id":"108"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"107"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":338.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"108"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":315},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":435},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"153"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurveParent":{"$ref":"153"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"165"},"customOut":{"$id":"166"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"165"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":533.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"166"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":533.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"177"},"customOut":{"$id":"178"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"177"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":533.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"178"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":135},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":20,"y":29,"z":135},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":210},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"197"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":210},"$type":"TransformData"},"CurveParent":{"$ref":"197"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":210},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"209"},"customOut":{"$id":"210"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"209"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":210},"$type":"TransformData"},"CurvePointTangent":{"$ref":"210"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":211},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"221"},"customOut":{"$id":"222"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"221"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":211},"$type":"TransformData"},"CurvePointTangent":{"$ref":"222"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"235"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurveParent":{"$ref":"235"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"247"},"customOut":{"$id":"248"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"247"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":240},"$type":"TransformData"},"CurvePointTangent":{"$ref":"248"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":241},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"259"},"customOut":{"$id":"260"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"259"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":241},"$type":"TransformData"},"CurvePointTangent":{"$ref":"260"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":270},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"273"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":270},"$type":"TransformData"},"CurveParent":{"$ref":"273"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":270},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"285"},"customOut":{"$id":"286"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"285"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":270},"$type":"TransformData"},"CurvePointTangent":{"$ref":"286"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":271},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"297"},"customOut":{"$id":"298"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"297"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":271},"$type":"TransformData"},"CurvePointTangent":{"$ref":"298"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":300},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"311"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":300},"$type":"TransformData"},"CurveParent":{"$ref":"311"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":300},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"323"},"customOut":{"$id":"324"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"323"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":300},"$type":"TransformData"},"CurvePointTangent":{"$ref":"324"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":301},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"335"},"customOut":{"$id":"336"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"335"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":301},"$type":"TransformData"},"CurvePointTangent":{"$ref":"336"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":330},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"349"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":330},"$type":"TransformData"},"CurveParent":{"$ref":"349"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":330},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"361"},"customOut":{"$id":"362"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"361"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":330},"$type":"TransformData"},"CurvePointTangent":{"$ref":"362"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":331},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"373"},"customOut":{"$id":"374"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"373"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":331},"$type":"TransformData"},"CurvePointTangent":{"$ref":"374"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":360},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"387"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":360},"$type":"TransformData"},"CurveParent":{"$ref":"387"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":360},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"399"},"customOut":{"$id":"400"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"399"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":360},"$type":"TransformData"},"CurvePointTangent":{"$ref":"400"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":361},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"411"},"customOut":{"$id":"412"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"411"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":361},"$type":"TransformData"},"CurvePointTangent":{"$ref":"412"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":390},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"425"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":390},"$type":"TransformData"},"CurveParent":{"$ref":"425"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":390},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"437"},"customOut":{"$id":"438"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"437"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":390},"$type":"TransformData"},"CurvePointTangent":{"$ref":"438"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":391},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"449"},"customOut":{"$id":"450"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"449"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":391},"$type":"TransformData"},"CurvePointTangent":{"$ref":"450"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":420},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"463"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":420},"$type":"TransformData"},"CurveParent":{"$ref":"463"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":420},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"475"},"customOut":{"$id":"476"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"475"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":420},"$type":"TransformData"},"CurvePointTangent":{"$ref":"476"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":421},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"487"},"customOut":{"$id":"488"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"487"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":421},"$type":"TransformData"},"CurvePointTangent":{"$ref":"488"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":450},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"501"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":450},"$type":"TransformData"},"CurveParent":{"$ref":"501"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":450},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"513"},"customOut":{"$id":"514"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"513"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"514"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":451},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"525"},"customOut":{"$id":"526"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"525"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":451},"$type":"TransformData"},"CurvePointTangent":{"$ref":"526"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":195},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":165},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":210},"$type":"TransformData"}},"children":[]}]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"}},"children":[]}]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":461},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":0,"z":555},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"Randomizer":{"$ref":"18"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":555},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":615},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"610"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurveParent":{"$ref":"610"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"622"},"customOut":{"$id":"623"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurvePointTangent":{"$ref":"622"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":758.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"623"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":758.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"634"},"customOut":{"$id":"635"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":660},"$type":"TransformData"},"CurvePointTangent":{"$ref":"634"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":758.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"635"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":735},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":555},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":615},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":855},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":855},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"679"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":855},"$type":"TransformData"},"CurveParent":{"$ref":"679"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":855},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"691"},"customOut":{"$id":"692"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"691"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":953.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"692"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":953.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"703"},"customOut":{"$id":"704"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":855},"$type":"TransformData"},"CurvePointTangent":{"$ref":"703"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":953.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"704"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":555},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":29,"z":555},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":630},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"723"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":630},"$type":"TransformData"},"CurveParent":{"$ref":"723"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":630},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"735"},"customOut":{"$id":"736"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":630},"$type":"TransformData"},"CurvePointTangent":{"$ref":"735"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":630},"$type":"TransformData"},"CurvePointTangent":{"$ref":"736"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":631},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"747"},"customOut":{"$id":"748"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":631},"$type":"TransformData"},"CurvePointTangent":{"$ref":"747"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":631},"$type":"TransformData"},"CurvePointTangent":{"$ref":"748"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"761"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurveParent":{"$ref":"761"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"773"},"customOut":{"$id":"774"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurvePointTangent":{"$ref":"773"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":660},"$type":"TransformData"},"CurvePointTangent":{"$ref":"774"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":661},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"785"},"customOut":{"$id":"786"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":661},"$type":"TransformData"},"CurvePointTangent":{"$ref":"785"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":661},"$type":"TransformData"},"CurvePointTangent":{"$ref":"786"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":690},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"799"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":690},"$type":"TransformData"},"CurveParent":{"$ref":"799"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":690},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"811"},"customOut":{"$id":"812"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":690},"$type":"TransformData"},"CurvePointTangent":{"$ref":"811"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":690},"$type":"TransformData"},"CurvePointTangent":{"$ref":"812"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":691},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"823"},"customOut":{"$id":"824"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":691},"$type":"TransformData"},"CurvePointTangent":{"$ref":"823"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":691},"$type":"TransformData"},"CurvePointTangent":{"$ref":"824"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":720},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"837"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":720},"$type":"TransformData"},"CurveParent":{"$ref":"837"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":720},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"849"},"customOut":{"$id":"850"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":720},"$type":"TransformData"},"CurvePointTangent":{"$ref":"849"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":720},"$type":"TransformData"},"CurvePointTangent":{"$ref":"850"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":721},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"861"},"customOut":{"$id":"862"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"861"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":721},"$type":"TransformData"},"CurvePointTangent":{"$ref":"862"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":750},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"875"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":750},"$type":"TransformData"},"CurveParent":{"$ref":"875"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":750},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"887"},"customOut":{"$id":"888"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"887"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":750},"$type":"TransformData"},"CurvePointTangent":{"$ref":"888"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":751},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"899"},"customOut":{"$id":"900"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":751},"$type":"TransformData"},"CurvePointTangent":{"$ref":"899"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":751},"$type":"TransformData"},"CurvePointTangent":{"$ref":"900"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":780},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"913"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":780},"$type":"TransformData"},"CurveParent":{"$ref":"913"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":780},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"925"},"customOut":{"$id":"926"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":780},"$type":"TransformData"},"CurvePointTangent":{"$ref":"925"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":780},"$type":"TransformData"},"CurvePointTangent":{"$ref":"926"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":781},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"937"},"customOut":{"$id":"938"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":781},"$type":"TransformData"},"CurvePointTangent":{"$ref":"937"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":781},"$type":"TransformData"},"CurvePointTangent":{"$ref":"938"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":810},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"951"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":810},"$type":"TransformData"},"CurveParent":{"$ref":"951"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":810},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"963"},"customOut":{"$id":"964"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":810},"$type":"TransformData"},"CurvePointTangent":{"$ref":"963"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":810},"$type":"TransformData"},"CurvePointTangent":{"$ref":"964"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":811},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"975"},"customOut":{"$id":"976"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":811},"$type":"TransformData"},"CurvePointTangent":{"$ref":"975"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":811},"$type":"TransformData"},"CurvePointTangent":{"$ref":"976"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":840},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"989"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":840},"$type":"TransformData"},"CurveParent":{"$ref":"989"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":840},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1001"},"customOut":{"$id":"1002"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":840},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1001"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":840},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1002"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":841},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1013"},"customOut":{"$id":"1014"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":841},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1013"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":841},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1014"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":870},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1027"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":870},"$type":"TransformData"},"CurveParent":{"$ref":"1027"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":870},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1039"},"customOut":{"$id":"1040"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":870},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1039"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":870},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1040"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":871},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1051"},"customOut":{"$id":"1052"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":871},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1051"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":871},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1052"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":615},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":675},"$type":"TransformData"}},"children":[]}]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":879},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":20,"y":0,"z":840},"$type":"TransformData"},"Randomizer":{"$ref":"21"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":975},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1035},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1119"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurveParent":{"$ref":"1119"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1131"},"customOut":{"$id":"1132"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1131"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":1178.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1132"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1178.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1143"},"customOut":{"$id":"1144"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":1080},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1143"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1178.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1144"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1155},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":975},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1035},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1275},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":1275},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1188"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1275},"$type":"TransformData"},"CurveParent":{"$ref":"1188"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1275},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1200"},"customOut":{"$id":"1201"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1275},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1200"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":1373.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1201"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1373.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1212"},"customOut":{"$id":"1213"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":1275},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1212"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1373.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1213"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":20,"y":0,"z":975},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":20,"y":29,"z":975},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1050},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1232"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1050},"$type":"TransformData"},"CurveParent":{"$ref":"1232"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1050},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1244"},"customOut":{"$id":"1245"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1050},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1244"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1050},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1245"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1051},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1256"},"customOut":{"$id":"1257"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1051},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1256"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1051},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1257"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1270"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurveParent":{"$ref":"1270"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1282"},"customOut":{"$id":"1283"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1282"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1080},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1283"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1081},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1294"},"customOut":{"$id":"1295"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1081},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1294"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1081},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1295"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1110},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1308"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1110},"$type":"TransformData"},"CurveParent":{"$ref":"1308"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1110},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1320"},"customOut":{"$id":"1321"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1110},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1320"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1110},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1321"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1111},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1332"},"customOut":{"$id":"1333"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1111},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1332"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1111},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1333"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1140},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1346"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1140},"$type":"TransformData"},"CurveParent":{"$ref":"1346"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1140},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1358"},"customOut":{"$id":"1359"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1140},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1358"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1140},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1359"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1141},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1370"},"customOut":{"$id":"1371"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1141},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1370"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1141},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1371"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1170},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1384"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1170},"$type":"TransformData"},"CurveParent":{"$ref":"1384"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1170},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1396"},"customOut":{"$id":"1397"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1396"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1170},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1397"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1171},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1408"},"customOut":{"$id":"1409"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1171},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1408"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1171},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1409"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1200},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1422"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1200},"$type":"TransformData"},"CurveParent":{"$ref":"1422"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1200},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1434"},"customOut":{"$id":"1435"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1200},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1434"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1200},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1435"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1201},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1446"},"customOut":{"$id":"1447"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1201},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1446"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1201},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1447"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1230},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1460"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1230},"$type":"TransformData"},"CurveParent":{"$ref":"1460"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1230},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1472"},"customOut":{"$id":"1473"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1230},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1472"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1230},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1473"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1231},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1484"},"customOut":{"$id":"1485"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1231},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1484"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1231},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1485"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1260},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1498"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1260},"$type":"TransformData"},"CurveParent":{"$ref":"1498"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1260},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1510"},"customOut":{"$id":"1511"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1260},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1510"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1260},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1511"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1261},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1522"},"customOut":{"$id":"1523"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1522"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1261},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1523"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":20,"y":29,"z":1290},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1536"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1290},"$type":"TransformData"},"CurveParent":{"$ref":"1536"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1290},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1548"},"customOut":{"$id":"1549"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1548"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1290},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1549"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1291},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1560"},"customOut":{"$id":"1561"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1560"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1291},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1561"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1035},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":-20,"y":7,"z":990},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":990},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1005},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1035},"$type":"TransformData"}},"children":[]}]},{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1301},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":0,"z":1395},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":0,"z":1260},"$type":"TransformData"},"Randomizer":{"$ref":"24"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":1395},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1455},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1642"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurveParent":{"$ref":"1642"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1654"},"customOut":{"$id":"1655"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1654"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":1598.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1655"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1598.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1666"},"customOut":{"$id":"1667"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":1500},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1666"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1598.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1667"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1575},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":1395},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1455},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1695},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1695},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1711"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1695},"$type":"TransformData"},"CurveParent":{"$ref":"1711"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1695},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1723"},"customOut":{"$id":"1724"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1695},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1723"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":1793.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1724"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1793.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1735"},"customOut":{"$id":"1736"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":1695},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1735"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1793.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1736"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":0,"z":1395},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":29,"z":1395},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1470},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1755"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1470},"$type":"TransformData"},"CurveParent":{"$ref":"1755"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1470},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1767"},"customOut":{"$id":"1768"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1470},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1767"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1470},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1768"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1471},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1779"},"customOut":{"$id":"1780"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1471},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1779"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1471},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1780"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1793"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurveParent":{"$ref":"1793"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1805"},"customOut":{"$id":"1806"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1805"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1500},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1806"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1501},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1817"},"customOut":{"$id":"1818"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1501},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1817"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1501},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1818"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1530},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1831"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1530},"$type":"TransformData"},"CurveParent":{"$ref":"1831"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1530},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1843"},"customOut":{"$id":"1844"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1530},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1843"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1530},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1844"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1531},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1855"},"customOut":{"$id":"1856"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1531},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1855"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1531},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1856"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1560},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1869"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1560},"$type":"TransformData"},"CurveParent":{"$ref":"1869"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1560},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1881"},"customOut":{"$id":"1882"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1560},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1881"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1560},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1882"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1561},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1893"},"customOut":{"$id":"1894"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1561},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1893"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1561},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1894"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1590},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1907"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1590},"$type":"TransformData"},"CurveParent":{"$ref":"1907"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1590},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1919"},"customOut":{"$id":"1920"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1590},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1919"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1590},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1920"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1591},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1931"},"customOut":{"$id":"1932"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1591},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1931"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1591},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1932"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1620},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1945"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1620},"$type":"TransformData"},"CurveParent":{"$ref":"1945"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1620},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1957"},"customOut":{"$id":"1958"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1620},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1957"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1620},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1958"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1621},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1969"},"customOut":{"$id":"1970"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1621},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1969"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1621},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1970"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1650},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1983"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1650},"$type":"TransformData"},"CurveParent":{"$ref":"1983"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1650},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1995"},"customOut":{"$id":"1996"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1650},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1995"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1650},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1996"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1651},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2007"},"customOut":{"$id":"2008"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1651},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2007"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1651},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2008"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1680},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2021"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1680},"$type":"TransformData"},"CurveParent":{"$ref":"2021"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1680},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2033"},"customOut":{"$id":"2034"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1680},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2033"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1680},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2034"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1681},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2045"},"customOut":{"$id":"2046"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1681},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2045"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1681},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2046"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1710},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2059"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1710},"$type":"TransformData"},"CurveParent":{"$ref":"2059"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1710},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2071"},"customOut":{"$id":"2072"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1710},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2071"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1710},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2072"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1711},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2083"},"customOut":{"$id":"2084"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1711},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2083"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1711},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2084"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1455},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1425},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1425},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":1530},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_train_tops_moving_combined":{"name":"routeChunk_default_train_tops_moving_combined","components":{"Transform":{"position":{"x":0,"y":413.3,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":20,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"12"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"13"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"14"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"},{"$id":"33"},{"$id":"34"},{"$id":"35"},{"$id":"36"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"37"},{"$id":"38"},{"$id":"39"},{"$id":"40"},{"$id":"41"},{"$id":"42"},{"$id":"43"},{"$id":"44"},{"$id":"45"},{"$id":"46"},{"$id":"47"},{"$id":"48"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"49"},{"$id":"50"},{"$id":"51"},{"$id":"52"},{"$id":"53"},{"$id":"54"},{"$id":"55"},{"$id":"56"},{"$id":"57"},{"$id":"58"},{"$id":"59"},{"$id":"60"},{"$id":"61"},{"$id":"62"},{"$id":"63"},{"$id":"64"},{"$id":"65"},{"$id":"66"},{"$id":"67"},{"$id":"68"},{"$id":"69"},{"$id":"70"},{"$id":"71"},{"$id":"72"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_train_tops_moving_combined","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_start","components":{"Transform":{"position":{"x":0,"y":413.3,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":60},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":439.5,"z":105},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":439.5,"z":105},"$type":"TransformData"}},"children":[]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":120},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":120},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":150},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":442.3,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"146"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":442.3,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"146"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":442.3,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"158"},"customOut":{"$id":"159"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":442.3,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"158"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":442.3,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"159"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":442.3,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"170"},"customOut":{"$id":"171"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":442.3,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"170"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":442.3,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"171"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":195},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"184"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":195},"$type":"TransformData"},"CurveParent":{"$ref":"184"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":195},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"196"},"customOut":{"$id":"197"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"196"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":195},"$type":"TransformData"},"CurvePointTangent":{"$ref":"197"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":296},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"208"},"customOut":{"$id":"209"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":296},"$type":"TransformData"},"CurvePointTangent":{"$ref":"208"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":296},"$type":"TransformData"},"CurvePointTangent":{"$ref":"209"}},"children":[]}]}]}]}]},{"name":"side","components":{"Transform":{"position":{"x":0,"y":413.3,"z":395.3984},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"trains_side_ground","components":{"Transform":{"position":{"x":0,"y":413.3,"z":395.3984},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":515.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":515.3984},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":665.3984},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":695.3984},"$type":"TransformData"}},"children":[]}]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":413.3,"z":395.3984},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":260.3984},"$type":"TransformData"},"Randomizer":{"$ref":"25"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":455.3984},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"284"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurveParent":{"$ref":"284"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"296"},"customOut":{"$id":"297"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"296"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":598.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"297"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":598.7854},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"308"},"customOut":{"$id":"309"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"308"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":598.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"309"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":575.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":455.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":695.3984},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":695.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"353"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":695.3984},"$type":"TransformData"},"CurveParent":{"$ref":"353"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":695.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"365"},"customOut":{"$id":"366"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":695.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"365"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":793.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"366"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":793.7854},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"377"},"customOut":{"$id":"378"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":695.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"377"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":793.7854},"$type":"TransformData"},"CurvePointTangent":{"$ref":"378"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":395.3984},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":470.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"397"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":470.3984},"$type":"TransformData"},"CurveParent":{"$ref":"397"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":470.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"409"},"customOut":{"$id":"410"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":470.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"409"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":470.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"410"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":471.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"421"},"customOut":{"$id":"422"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":471.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"421"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":471.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"422"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"435"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurveParent":{"$ref":"435"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"447"},"customOut":{"$id":"448"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"447"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":500.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"448"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":501.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"459"},"customOut":{"$id":"460"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":501.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"459"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":501.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"460"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":530.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"473"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":530.3984},"$type":"TransformData"},"CurveParent":{"$ref":"473"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":530.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"485"},"customOut":{"$id":"486"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":530.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"485"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":530.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"486"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":531.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"497"},"customOut":{"$id":"498"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":531.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"497"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":531.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"498"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":560.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"511"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":560.3984},"$type":"TransformData"},"CurveParent":{"$ref":"511"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":560.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"523"},"customOut":{"$id":"524"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":560.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"523"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":560.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"524"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":561.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"535"},"customOut":{"$id":"536"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":561.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"535"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":561.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"536"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":590.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"549"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":590.3984},"$type":"TransformData"},"CurveParent":{"$ref":"549"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":590.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"561"},"customOut":{"$id":"562"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":590.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"561"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":590.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"562"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":591.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"573"},"customOut":{"$id":"574"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":591.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"573"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":591.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"574"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":620.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"587"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":620.3984},"$type":"TransformData"},"CurveParent":{"$ref":"587"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":620.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"599"},"customOut":{"$id":"600"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":620.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"599"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":620.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"600"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":621.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"611"},"customOut":{"$id":"612"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":621.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"611"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":621.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"612"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":650.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"625"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":650.3984},"$type":"TransformData"},"CurveParent":{"$ref":"625"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":650.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"637"},"customOut":{"$id":"638"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":650.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"637"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":650.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"638"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":651.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"649"},"customOut":{"$id":"650"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":651.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"649"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":651.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"650"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":680.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"663"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":680.3984},"$type":"TransformData"},"CurveParent":{"$ref":"663"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":680.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"675"},"customOut":{"$id":"676"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":680.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"675"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":680.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"676"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":681.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"687"},"customOut":{"$id":"688"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":681.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"687"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":681.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"688"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":710.3984},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"701"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":710.3984},"$type":"TransformData"},"CurveParent":{"$ref":"701"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":710.3984},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"713"},"customOut":{"$id":"714"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":710.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"713"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":710.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"714"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":711.3984},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"725"},"customOut":{"$id":"726"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":711.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"725"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":711.3984},"$type":"TransformData"},"CurvePointTangent":{"$ref":"726"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":455.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":425.3984},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":425.3984},"$type":"TransformData"}},"children":[]}]},{"name":"3 moving sides","components":{"Transform":{"position":{"x":0,"y":413.3,"z":395.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":454.3984},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":662.3984},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"middle","components":{"Transform":{"position":{"x":0,"y":413.3,"z":448.5102},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"1 moving","components":{"Transform":{"position":{"x":0,"y":413.3,"z":13.31934},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":283.3193},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"3 moving coins","components":{"Transform":{"position":{"x":0,"y":413.3,"z":608.8612},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":270.8612},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":418.8612},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"side","components":{"Transform":{"position":{"x":0,"y":413.3,"z":842.0803},"$type":"TransformData"},"Randomizer":{"$ref":"12"}},"children":[{"name":"trains_side_ground","components":{"Transform":{"position":{"x":0,"y":413.3,"z":842.0803},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":962.0803},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":962.0803},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":1112.08},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":1142.08},"$type":"TransformData"}},"children":[]}]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":413.3,"z":842.0803},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":707.0803},"$type":"TransformData"},"Randomizer":{"$ref":"37"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":842.0803},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":902.0803},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"888"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurveParent":{"$ref":"888"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"900"},"customOut":{"$id":"901"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"900"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1045.467},"$type":"TransformData"},"CurvePointTangent":{"$ref":"901"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1045.467},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"912"},"customOut":{"$id":"913"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":947.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"912"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1045.467},"$type":"TransformData"},"CurvePointTangent":{"$ref":"913"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1022.08},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":842.0803},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":902.0803},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1142.08},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1142.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"957"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1142.08},"$type":"TransformData"},"CurveParent":{"$ref":"957"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1142.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"969"},"customOut":{"$id":"970"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1142.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"969"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1240.467},"$type":"TransformData"},"CurvePointTangent":{"$ref":"970"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1240.467},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"981"},"customOut":{"$id":"982"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1142.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"981"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1240.467},"$type":"TransformData"},"CurvePointTangent":{"$ref":"982"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":842.0803},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":842.0803},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":917.0803},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1001"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":917.0803},"$type":"TransformData"},"CurveParent":{"$ref":"1001"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":917.0803},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1013"},"customOut":{"$id":"1014"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":917.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1013"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":917.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1014"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":918.0803},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1025"},"customOut":{"$id":"1026"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":918.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1025"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":918.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1026"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1039"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurveParent":{"$ref":"1039"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1051"},"customOut":{"$id":"1052"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1051"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":947.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1052"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":948.0803},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1063"},"customOut":{"$id":"1064"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":948.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1063"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":948.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1064"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":977.0803},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1077"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":977.0803},"$type":"TransformData"},"CurveParent":{"$ref":"1077"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":977.0803},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1089"},"customOut":{"$id":"1090"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":977.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1089"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":977.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1090"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":978.0803},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1101"},"customOut":{"$id":"1102"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":978.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1101"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":978.0803},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1102"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1007.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1115"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1007.08},"$type":"TransformData"},"CurveParent":{"$ref":"1115"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1007.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1127"},"customOut":{"$id":"1128"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1007.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1127"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1007.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1128"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1008.08},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1139"},"customOut":{"$id":"1140"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1008.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1139"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1008.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1140"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1037.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1153"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1037.08},"$type":"TransformData"},"CurveParent":{"$ref":"1153"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1037.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1165"},"customOut":{"$id":"1166"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1037.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1165"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1037.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1166"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1038.08},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1177"},"customOut":{"$id":"1178"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1038.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1177"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1038.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1178"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1067.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1191"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1067.08},"$type":"TransformData"},"CurveParent":{"$ref":"1191"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1067.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1203"},"customOut":{"$id":"1204"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1067.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1203"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1067.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1204"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1068.08},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1215"},"customOut":{"$id":"1216"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1068.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1215"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1068.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1216"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1097.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1229"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1097.08},"$type":"TransformData"},"CurveParent":{"$ref":"1229"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1097.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1241"},"customOut":{"$id":"1242"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1097.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1241"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1097.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1242"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1098.08},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1253"},"customOut":{"$id":"1254"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1098.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1253"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1098.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1254"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1127.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1267"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1127.08},"$type":"TransformData"},"CurveParent":{"$ref":"1267"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1127.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1279"},"customOut":{"$id":"1280"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1127.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1279"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1127.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1280"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1128.08},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1291"},"customOut":{"$id":"1292"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1128.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1291"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1128.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1292"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1157.08},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1305"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1157.08},"$type":"TransformData"},"CurveParent":{"$ref":"1305"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1157.08},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1317"},"customOut":{"$id":"1318"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1157.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1317"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1157.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1318"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1158.08},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1329"},"customOut":{"$id":"1330"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1158.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1329"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1158.08},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1330"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":902.0803},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":872.0803},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":872.0803},"$type":"TransformData"}},"children":[]}]},{"name":"3 moving sides","components":{"Transform":{"position":{"x":0,"y":413.3,"z":842.0803},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":901.0803},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1109.08},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"middle","components":{"Transform":{"position":{"x":0,"y":413.3,"z":895.1921},"$type":"TransformData"},"Randomizer":{"$ref":"13"}},"children":[{"name":"1 moving","components":{"Transform":{"position":{"x":0,"y":413.3,"z":460.0012},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":730.0012},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"3 moving coins","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1055.543},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":717.543},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":865.543},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"side","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1290.069},"$type":"TransformData"},"Randomizer":{"$ref":"14"}},"children":[{"name":"trains_side_ground","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1290.069},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":1410.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1410.069},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":1590.069},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":1620.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"trains_side","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1290.069},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"randomizer","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1155.069},"$type":"TransformData"},"Randomizer":{"$ref":"49"}},"children":[{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1290.069},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1350.069},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1490"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurveParent":{"$ref":"1490"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1502"},"customOut":{"$id":"1503"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1502"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1493.456},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1503"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1493.456},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1514"},"customOut":{"$id":"1515"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1395.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1514"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1493.456},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1515"}},"children":[]}]}]}]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1470.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1290.069},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1350.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1590.069},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1590.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1559"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.8,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1590.069},"$type":"TransformData"},"CurveParent":{"$ref":"1559"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1590.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1571"},"customOut":{"$id":"1572"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1590.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1571"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1688.456},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1572"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1688.456},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1583"},"customOut":{"$id":"1584"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":522.3,"z":1590.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1583"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1688.456},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1584"}},"children":[]}]}]}]}]},{"name":"group","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1290.069},"$type":"TransformData"}},"children":[{"name":"coins","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1290.069},"$type":"TransformData"}},"children":[{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1365.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1603"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1365.069},"$type":"TransformData"},"CurveParent":{"$ref":"1603"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1365.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1615"},"customOut":{"$id":"1616"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1365.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1615"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1365.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1616"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1366.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1627"},"customOut":{"$id":"1628"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1366.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1627"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1366.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1628"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1641"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurveParent":{"$ref":"1641"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1653"},"customOut":{"$id":"1654"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1653"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1395.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1654"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1396.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1665"},"customOut":{"$id":"1666"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1396.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1665"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1396.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1666"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1425.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1679"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1425.069},"$type":"TransformData"},"CurveParent":{"$ref":"1679"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1425.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1691"},"customOut":{"$id":"1692"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1425.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1691"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1425.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1692"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1426.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1703"},"customOut":{"$id":"1704"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1426.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1703"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1426.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1704"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1455.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1717"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1455.069},"$type":"TransformData"},"CurveParent":{"$ref":"1717"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1455.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1729"},"customOut":{"$id":"1730"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1455.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1729"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1455.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1730"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1456.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1741"},"customOut":{"$id":"1742"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1456.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1741"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1456.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1742"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1485.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1755"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1485.069},"$type":"TransformData"},"CurveParent":{"$ref":"1755"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1485.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1767"},"customOut":{"$id":"1768"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1485.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1767"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1485.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1768"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1486.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1779"},"customOut":{"$id":"1780"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1486.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1779"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1486.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1780"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1515.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1793"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1515.069},"$type":"TransformData"},"CurveParent":{"$ref":"1793"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1515.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1805"},"customOut":{"$id":"1806"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1515.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1805"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1515.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1806"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1516.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1817"},"customOut":{"$id":"1818"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1516.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1817"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1516.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1818"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1545.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1831"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1545.069},"$type":"TransformData"},"CurveParent":{"$ref":"1831"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1545.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1843"},"customOut":{"$id":"1844"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1545.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1843"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1545.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1844"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1546.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1855"},"customOut":{"$id":"1856"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1546.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1855"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1546.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1856"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1575.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1869"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1575.069},"$type":"TransformData"},"CurveParent":{"$ref":"1869"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1575.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1881"},"customOut":{"$id":"1882"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1575.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1881"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1575.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1882"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1576.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1893"},"customOut":{"$id":"1894"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1576.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1893"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1576.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1894"}},"children":[]}]}]}]},{"name":"Coin (Single)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1605.069},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":1},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1907"},"_scaleMode":"NoScale","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1605.069},"$type":"TransformData"},"CurveParent":{"$ref":"1907"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1605.069},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1919"},"customOut":{"$id":"1920"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1605.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1919"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1605.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1920"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1606.069},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1931"},"customOut":{"$id":"1932"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1606.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1931"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":442.3,"z":1606.069},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1932"}},"children":[]}]}]}]}]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1350.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1320.069},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":20,"y":413.3,"z":1320.069},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":413.3,"z":1740.069},"$type":"TransformData"}},"children":[]}]},{"name":"3 moving sides","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1290.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1349.069},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1557.069},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"middle","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1343.181},"$type":"TransformData"},"Randomizer":{"$ref":"15"}},"children":[{"name":"1 moving","components":{"Transform":{"position":{"x":0,"y":413.3,"z":907.9899},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1177.99},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"3 moving coins","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1503.532},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1165.532},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":413.3,"z":1313.532},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]}]},"routeChunk_default_train_tops_moving_multiple":{"name":"routeChunk_default_train_tops_moving_multiple","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":20,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_train_tops_moving_multiple","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"trains_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":37,"z":165},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":37,"z":165},"$type":"TransformData"}},"children":[]}]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":270},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"trains_moving_sides","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"}},"children":[{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":660},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1060},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1460},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"trains_moving_mid","components":{"Transform":{"position":{"x":0,"y":0,"z":120},"$type":"TransformData"}},"children":[{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":382},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":575},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":772},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":975},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1175},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]},{"name":"trains_3_moving_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1375},"$type":"TransformData"},"MovingTrainPlaceholder":{"_speed":0.5,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":0,"y":55,"z":210},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":55,"z":210},"$type":"TransformData"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":1530},"$type":"TransformData"}},"children":[]}]},"routeChunk_default_tunnel":{"name":"routeChunk_default_tunnel","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":6,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"9"},{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_tunnel","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random_tunnel","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"9"}},"children":[{"name":"sides","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_sides_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"Mirror","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"46"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurveParent":{"$ref":"46"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"58"},"customOut":{"$id":"59"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"58"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"CurvePointTangent":{"$ref":"59"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":221},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"70"},"customOut":{"$id":"71"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":221},"$type":"TransformData"},"CurvePointTangent":{"$ref":"70"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":221},"$type":"TransformData"},"CurvePointTangent":{"$ref":"71"}},"children":[]}]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":-20,"y":7,"z":150},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":-20,"y":7,"z":150},"$type":"TransformData"}},"children":[]}]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":309},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"right","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_right_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":30},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":64.60001,"z":225},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":64.60001,"z":225},"$type":"TransformData"}},"children":[]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":309},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"mid","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_mid_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":309},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]},{"name":"left","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_left_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":30},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Medium)","components":{"Transform":{"position":{"x":20,"y":64.60001,"z":225},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Medium","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":64.60001,"z":225},"$type":"TransformData"}},"children":[]}]},{"name":"trains_3_moving_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":309},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"},"MovingTrainPlaceholder":{"_speed":1,"$type":"SYBO.Subway.Placeholders.MovingTrainPlaceholder"}},"children":[]}]}]},{"name":"environment","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates_environment","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Gates,All","_density":""},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":480},"$type":"TransformData"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":510},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":510},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_bonus_long":{"name":"routeChunk_default_bonus_long","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":14,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"15"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"16"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"17"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"18"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"19"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"},{"$id":"33"},{"$id":"34"},{"$id":"35"},{"$id":"36"},{"$id":"37"},{"$id":"38"},{"$id":"39"},{"$id":"40"},{"$id":"41"},{"$id":"42"},{"$id":"43"},{"$id":"44"},{"$id":"45"},{"$id":"46"},{"$id":"47"},{"$id":"48"},{"$id":"49"},{"$id":"50"},{"$id":"51"},{"$id":"52"},{"$id":"53"},{"$id":"54"},{"$id":"55"},{"$id":"56"},{"$id":"57"},{"$id":"58"},{"$id":"59"},{"$id":"60"},{"$id":"61"},{"$id":"62"},{"$id":"63"},{"$id":"64"},{"$id":"65"},{"$id":"66"},{"$id":"67"},{"$id":"68"},{"$id":"69"},{"$id":"70"},{"$id":"71"},{"$id":"72"},{"$id":"73"},{"$id":"74"},{"$id":"75"},{"$id":"76"},{"$id":"77"},{"$id":"78"},{"$id":"79"},{"$id":"80"},{"$id":"81"},{"$id":"82"},{"$id":"83"},{"$id":"84"},{"$id":"85"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_bonus_long","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random_start","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Randomizer":{"$ref":"10"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"}},"children":[]},{"name":"blocker_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"ground_run","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"ground","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Randomizer":{"$ref":"15"}},"children":[{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"138"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"138"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"150"},"customOut":{"$id":"151"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"150"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"151"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":436},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"162"},"customOut":{"$id":"163"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"162"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"163"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"176"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"176"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"188"},"customOut":{"$id":"189"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"188"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"189"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":436},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"200"},"customOut":{"$id":"201"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"200"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"201"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"214"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"214"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"226"},"customOut":{"$id":"227"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"226"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"227"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":436},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"238"},"customOut":{"$id":"239"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"238"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"239"}},"children":[]}]}]}]}]},{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"278"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"278"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"290"},"customOut":{"$id":"291"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"290"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"291"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":436},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"302"},"customOut":{"$id":"303"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"302"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"303"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"4","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"329"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurveParent":{"$ref":"329"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"341"},"customOut":{"$id":"342"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"341"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":285},"$type":"TransformData"},"CurvePointTangent":{"$ref":"342"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":436},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"353"},"customOut":{"$id":"354"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"353"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":436},"$type":"TransformData"},"CurvePointTangent":{"$ref":"354"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":20,"y":7,"z":240},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":240},"$type":"TransformData"}},"children":[]}]},{"name":"ground","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"Randomizer":{"$ref":"16"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":660},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":660},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"4","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"421"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"421"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"433"},"customOut":{"$id":"434"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"433"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"434"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"445"},"customOut":{"$id":"446"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"445"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"446"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":660},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"472"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"472"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"484"},"customOut":{"$id":"485"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"484"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"485"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"496"},"customOut":{"$id":"497"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"496"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"497"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":660},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"523"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"523"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"535"},"customOut":{"$id":"536"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"535"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"536"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"547"},"customOut":{"$id":"548"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"547"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"548"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"561"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"561"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"573"},"customOut":{"$id":"574"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"573"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"574"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"585"},"customOut":{"$id":"586"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"585"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"586"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"599"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurveParent":{"$ref":"599"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"611"},"customOut":{"$id":"612"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"611"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":585},"$type":"TransformData"},"CurvePointTangent":{"$ref":"612"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"623"},"customOut":{"$id":"624"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"623"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":736},"$type":"TransformData"},"CurvePointTangent":{"$ref":"624"}},"children":[]}]}]}]}]}]},{"name":"ground","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"},"Randomizer":{"$ref":"17"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":960},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":960},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"4","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"667"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"667"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"679"},"customOut":{"$id":"680"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"679"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"680"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"691"},"customOut":{"$id":"692"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"691"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"692"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":960},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"718"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"718"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"730"},"customOut":{"$id":"731"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"730"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"731"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"742"},"customOut":{"$id":"743"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"742"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"743"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":960},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"769"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"769"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"781"},"customOut":{"$id":"782"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"781"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"782"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"793"},"customOut":{"$id":"794"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"793"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"794"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"807"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"807"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"819"},"customOut":{"$id":"820"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"819"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"820"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"831"},"customOut":{"$id":"832"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"831"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"832"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"845"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurveParent":{"$ref":"845"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"857"},"customOut":{"$id":"858"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"857"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":885},"$type":"TransformData"},"CurvePointTangent":{"$ref":"858"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":1036},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"869"},"customOut":{"$id":"870"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"869"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":1036},"$type":"TransformData"},"CurvePointTangent":{"$ref":"870"}},"children":[]}]}]}]}]}]}]},{"name":"roof_run","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"start","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":240},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":37,"z":285},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":37,"z":285},"$type":"TransformData"}},"children":[]}]}]},{"name":"roof","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Randomizer":{"$ref":"18"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"959"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"959"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"971"},"customOut":{"$id":"972"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"971"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"972"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":466},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"983"},"customOut":{"$id":"984"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":466},"$type":"TransformData"},"CurvePointTangent":{"$ref":"983"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":466},"$type":"TransformData"},"CurvePointTangent":{"$ref":"984"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"997"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"997"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1009"},"customOut":{"$id":"1010"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1009"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":443.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1010"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":443.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1021"},"customOut":{"$id":"1022"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1021"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":443.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1022"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":390},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":510},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":525},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1061"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.7,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":525},"$type":"TransformData"},"CurveParent":{"$ref":"1061"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":525},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1073"},"customOut":{"$id":"1074"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1073"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":623.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1074"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":623.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1085"},"customOut":{"$id":"1086"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":525},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1085"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":623.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1086"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":540},"$type":"TransformData"}},"children":[]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1141"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"1141"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1153"},"customOut":{"$id":"1154"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1153"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1154"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":466},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1165"},"customOut":{"$id":"1166"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":466},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1165"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":466},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1166"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1179"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurveParent":{"$ref":"1179"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1191"},"customOut":{"$id":"1192"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1191"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1192"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1203"},"customOut":{"$id":"1204"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1203"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1204"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":465},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1217"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":465},"$type":"TransformData"},"CurveParent":{"$ref":"1217"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":465},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1229"},"customOut":{"$id":"1230"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":465},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1229"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":563.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1230"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":563.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1241"},"customOut":{"$id":"1242"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":465},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1241"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":563.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1242"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":510},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":540},"$type":"TransformData"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":270},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":300},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1304"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"1304"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1316"},"customOut":{"$id":"1317"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1316"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1317"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":496},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1328"},"customOut":{"$id":"1329"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1328"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1329"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":435},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1342"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":435},"$type":"TransformData"},"CurveParent":{"$ref":"1342"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":435},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1354"},"customOut":{"$id":"1355"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1354"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":533.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1355"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":533.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1366"},"customOut":{"$id":"1367"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1366"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":533.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1367"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1380"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurveParent":{"$ref":"1380"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1392"},"customOut":{"$id":"1393"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1392"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1393"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":586},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1404"},"customOut":{"$id":"1405"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1404"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":586},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1405"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":510},"$type":"TransformData"}},"children":[]}]}]},{"name":"roof","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"Randomizer":{"$ref":"19"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":570},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1469"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurveParent":{"$ref":"1469"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1481"},"customOut":{"$id":"1482"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1481"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1482"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1493"},"customOut":{"$id":"1494"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1493"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1494"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1507"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurveParent":{"$ref":"1507"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1519"},"customOut":{"$id":"1520"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1519"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":743.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1520"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":743.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1531"},"customOut":{"$id":"1532"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1531"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":743.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1532"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":690},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":720},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":810},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":825},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1571"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.7,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":825},"$type":"TransformData"},"CurveParent":{"$ref":"1571"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":825},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1583"},"customOut":{"$id":"1584"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":825},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1583"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":923.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1584"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":923.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1595"},"customOut":{"$id":"1596"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":825},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1595"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":923.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1596"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":840},"$type":"TransformData"}},"children":[]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":570},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1651"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurveParent":{"$ref":"1651"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1663"},"customOut":{"$id":"1664"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1663"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":615},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1664"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1675"},"customOut":{"$id":"1676"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1675"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":766},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1676"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1689"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"1689"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1701"},"customOut":{"$id":"1702"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1701"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1702"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1713"},"customOut":{"$id":"1714"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1713"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1714"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":765},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1727"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":765},"$type":"TransformData"},"CurveParent":{"$ref":"1727"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":765},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1739"},"customOut":{"$id":"1740"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1739"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":863.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1740"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":863.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1751"},"customOut":{"$id":"1752"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":765},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1751"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":863.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1752"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":810},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":840},"$type":"TransformData"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":480},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":570},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":600},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1814"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurveParent":{"$ref":"1814"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1826"},"customOut":{"$id":"1827"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1826"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":645},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1827"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":796},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1838"},"customOut":{"$id":"1839"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":796},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1838"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":796},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1839"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1852"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"1852"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1864"},"customOut":{"$id":"1865"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1864"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":833.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1865"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":833.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1876"},"customOut":{"$id":"1877"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1876"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":833.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1877"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1890"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurveParent":{"$ref":"1890"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1902"},"customOut":{"$id":"1903"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1902"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":735},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1903"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":886},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1914"},"customOut":{"$id":"1915"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1914"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":886},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1915"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":810},"$type":"TransformData"}},"children":[]}]}]},{"name":"roof","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"},"Randomizer":{"$ref":"20"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":870},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":900},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":900},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1979"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"1979"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1991"},"customOut":{"$id":"1992"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1991"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1992"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":1066},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2003"},"customOut":{"$id":"2004"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2003"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2004"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2017"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurveParent":{"$ref":"2017"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2029"},"customOut":{"$id":"2030"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2029"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":1043.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2030"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1043.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2041"},"customOut":{"$id":"2042"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2041"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1043.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2042"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":990},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1020},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1110},"$type":"TransformData"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":1125},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2081"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.7,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1125},"$type":"TransformData"},"CurveParent":{"$ref":"2081"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1125},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2093"},"customOut":{"$id":"2094"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1125},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2093"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":1223.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2094"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1223.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2105"},"customOut":{"$id":"2106"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":1125},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2105"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1223.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2106"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1140},"$type":"TransformData"}},"children":[]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":870},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":900},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":900},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2161"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurveParent":{"$ref":"2161"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2173"},"customOut":{"$id":"2174"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2173"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":915},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2174"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":1066},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2185"},"customOut":{"$id":"2186"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2185"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":1066},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2186"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2199"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurveParent":{"$ref":"2199"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2211"},"customOut":{"$id":"2212"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2211"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2212"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1186},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2223"},"customOut":{"$id":"2224"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1186},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2223"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1186},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2224"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1065},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2237"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":1065},"$type":"TransformData"},"CurveParent":{"$ref":"2237"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1065},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2249"},"customOut":{"$id":"2250"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1065},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2249"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":1163.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2250"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1163.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2261"},"customOut":{"$id":"2262"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":1065},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2261"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1163.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2262"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1110},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1140},"$type":"TransformData"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":780},"$type":"TransformData"}},"children":[{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":870},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":900},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":900},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2324"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurveParent":{"$ref":"2324"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2336"},"customOut":{"$id":"2337"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2336"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":945},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2337"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":1096},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2348"},"customOut":{"$id":"2349"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":1096},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2348"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":1096},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2349"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":1035},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2362"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":1035},"$type":"TransformData"},"CurveParent":{"$ref":"2362"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":1035},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2374"},"customOut":{"$id":"2375"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2374"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":1133.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2375"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":1133.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2386"},"customOut":{"$id":"2387"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2386"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":1133.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2387"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"2400"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurveParent":{"$ref":"2400"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"2412"},"customOut":{"$id":"2413"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2412"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1035},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2413"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":1186},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"2424"},"customOut":{"$id":"2425"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":1186},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2424"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":1186},"$type":"TransformData"},"CurvePointTangent":{"$ref":"2425"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1080},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1110},"$type":"TransformData"}},"children":[]}]}]}]}]}]},"routeChunk_default_bonus_short":{"name":"routeChunk_default_bonus_short","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":6,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"},{"_type":"Tube,All","_density":""}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$type":"SYBO.Subway.Level.Randomizer","$id":"10"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"11"},{"$type":"SYBO.Subway.Level.Randomizer","$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"},{"$id":"33"},{"$id":"34"},{"$id":"35"},{"$id":"36"},{"$id":"37"},{"$id":"38"},{"$id":"39"},{"$id":"40"},{"$id":"41"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_bonus_short","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"random","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"10"}},"children":[{"name":"ground_run","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"ground","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"11"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"81"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"81"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"93"},"customOut":{"$id":"94"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"93"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"94"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":496},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"105"},"customOut":{"$id":"106"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"105"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":496},"$type":"TransformData"},"CurvePointTangent":{"$ref":"106"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":375},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"129"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":375},"$type":"TransformData"},"CurveParent":{"$ref":"129"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":375},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"141"},"customOut":{"$id":"142"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"141"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"142"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":526},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"153"},"customOut":{"$id":"154"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"153"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"154"}},"children":[]}]}]}]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"170"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurveParent":{"$ref":"170"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"182"},"customOut":{"$id":"183"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"182"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"183"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"194"},"customOut":{"$id":"195"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"194"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"195"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"208"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":105},"$type":"TransformData"},"CurveParent":{"$ref":"208"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"220"},"customOut":{"$id":"221"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"220"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"221"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"232"},"customOut":{"$id":"233"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"232"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"233"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"246"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurveParent":{"$ref":"246"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"258"},"customOut":{"$id":"259"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"258"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"259"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"270"},"customOut":{"$id":"271"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"270"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"271"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":420},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":420},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":420},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"317"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurveParent":{"$ref":"317"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"329"},"customOut":{"$id":"330"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"329"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":105},"$type":"TransformData"},"CurvePointTangent":{"$ref":"330"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"341"},"customOut":{"$id":"342"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"341"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":256},"$type":"TransformData"},"CurvePointTangent":{"$ref":"342"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":0,"z":315},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"365"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":0,"z":315},"$type":"TransformData"},"CurveParent":{"$ref":"365"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":0,"z":315},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"377"},"customOut":{"$id":"378"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"377"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":315},"$type":"TransformData"},"CurvePointTangent":{"$ref":"378"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":0,"z":466},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"389"},"customOut":{"$id":"390"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":0,"z":466},"$type":"TransformData"},"CurvePointTangent":{"$ref":"389"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":0,"z":466},"$type":"TransformData"},"CurvePointTangent":{"$ref":"390"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":0,"z":375},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"403"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":0,"z":375},"$type":"TransformData"},"CurveParent":{"$ref":"403"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":0,"z":375},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"415"},"customOut":{"$id":"416"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"415"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":375},"$type":"TransformData"},"CurvePointTangent":{"$ref":"416"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":0,"z":526},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"427"},"customOut":{"$id":"428"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"427"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":0,"z":526},"$type":"TransformData"},"CurvePointTangent":{"$ref":"428"}},"children":[]}]}]}]},{"name":"blocker_w_coins_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":420},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]}]}]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":7,"z":60},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":7,"z":60},"$type":"TransformData"}},"children":[]}]}]},{"name":"roof_run","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"end","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"471"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurveParent":{"$ref":"471"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"483"},"customOut":{"$id":"484"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"483"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":503.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"484"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":503.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"495"},"customOut":{"$id":"496"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":405},"$type":"TransformData"},"CurvePointTangent":{"$ref":"495"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":503.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"496"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":0,"z":435},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":101},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"509"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":0,"z":435},"$type":"TransformData"},"CurveParent":{"$ref":"509"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":0,"z":435},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"521"},"customOut":{"$id":"522"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"521"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":435},"$type":"TransformData"},"CurvePointTangent":{"$ref":"522"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":0,"z":536},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"533"},"customOut":{"$id":"534"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":0,"z":536},"$type":"TransformData"},"CurvePointTangent":{"$ref":"533"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":0,"z":536},"$type":"TransformData"},"CurvePointTangent":{"$ref":"534"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":450},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"547"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.5,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":450},"$type":"TransformData"},"CurveParent":{"$ref":"547"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":450},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"559"},"customOut":{"$id":"560"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"559"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":548.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"560"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":548.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"571"},"customOut":{"$id":"572"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":450},"$type":"TransformData"},"CurvePointTangent":{"$ref":"571"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":548.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"572"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":480},"$type":"TransformData"}},"children":[]}]},{"name":"start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":60},"$type":"TransformData"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":false,"right":true},"$type":"RandomizeOffset"}},"children":[]},{"name":"PickupSpawnPoint(Easy)","components":{"Transform":{"position":{"x":0,"y":37,"z":105},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"Normal","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"OnGround","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":0,"y":37,"z":105},"$type":"TransformData"}},"children":[]}]}]},{"name":"roof","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Randomizer":{"$ref":"12"}},"children":[{"name":"3","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"675"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"675"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"687"},"customOut":{"$id":"688"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"687"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"688"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"699"},"customOut":{"$id":"700"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"699"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"700"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"713"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"713"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"725"},"customOut":{"$id":"726"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"725"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":263.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"726"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":263.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"737"},"customOut":{"$id":"738"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"737"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":263.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"738"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":330},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"781"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.7,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurveParent":{"$ref":"781"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"793"},"customOut":{"$id":"794"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"793"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":109,"z":443.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"794"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":443.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"805"},"customOut":{"$id":"806"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":109,"z":345},"$type":"TransformData"},"CurvePointTangent":{"$ref":"805"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":443.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"806"}},"children":[]}]}]}]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"}},"children":[]}]},{"name":"2","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Mirror":{"$type":"Mirror"}},"children":[{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"859"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurveParent":{"$ref":"859"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"871"},"customOut":{"$id":"872"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"871"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":135},"$type":"TransformData"},"CurvePointTangent":{"$ref":"872"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":286},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"883"},"customOut":{"$id":"884"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"883"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":286},"$type":"TransformData"},"CurvePointTangent":{"$ref":"884"}},"children":[]}]}]}]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"897"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"897"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"909"},"customOut":{"$id":"910"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"909"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":109,"z":263.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"910"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":263.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"921"},"customOut":{"$id":"922"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":109,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"921"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":263.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"922"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":210},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":240},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"955"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"955"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"967"},"customOut":{"$id":"968"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"967"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"968"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"979"},"customOut":{"$id":"980"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"979"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"980"}},"children":[]}]}]}]}]},{"name":"1","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Jump Curve)","components":{"Transform":{"position":{"x":0,"y":29,"z":150},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":true,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":98.38699},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1024"},"_scaleMode":"PreserveSpacing","_spacingMode":"NonStraight","_curveOffset":0.1,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":0,"y":29,"z":150},"$type":"TransformData"},"CurveParent":{"$ref":"1024"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":0,"y":29,"z":150},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1036"},"customOut":{"$id":"1037"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":29,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1036"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":109,"z":248.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1037"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":0,"y":29,"z":248.387},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1048"},"customOut":{"$id":"1049"},"weight":1,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":0,"y":109,"z":150},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1048"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":0,"y":29,"z":248.387},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1049"}},"children":[]}]}]}]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1062"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurveParent":{"$ref":"1062"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1074"},"customOut":{"$id":"1075"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1074"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":165},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1075"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":-20,"y":29,"z":316},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1086"},"customOut":{"$id":"1087"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":-20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1086"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":-20,"y":29,"z":316},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1087"}},"children":[]}]}]}]},{"name":"train_ramp_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":180},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":210},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"Coins (Line)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CoinCurve":{"_curveParent":{"_disableGizmos":false,"color":{"r":1,"g":0,"b":0,"a":1},"_cachedCurve":{"MinCoords":{"x":0,"y":0,"z":0},"MaxCoords":{"x":0,"y":0,"z":151},"MinTime":0,"MaxTime":1},"_forceLinearZ":true,"$id":"1120"},"_scaleMode":"NoScale","_spacingMode":"Straight","_curveOffset":0,"_coinIndexToSkip":-1,"_redistributeAlongCurveOnSpeedChange":true,"_debugIsMovingTrain":false,"$type":"SYBO.Subway.Coins.CoinCurve"}},"children":[{"name":"CurveParent","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurveParent":{"$ref":"1120"}},"children":[{"name":"CurvePoint (0)","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePoint":{"t":0,"smoothTangents":false,"customIn":{"$id":"1132"},"customOut":{"$id":"1133"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1132"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":255},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1133"}},"children":[]}]},{"name":"CurvePoint (1)","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePoint":{"t":1,"smoothTangents":false,"customIn":{"$id":"1144"},"customOut":{"$id":"1145"},"weight":20,"$type":"CurvePoint"}},"children":[{"name":"In","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1144"}},"children":[]},{"name":"Out","components":{"Transform":{"position":{"x":20,"y":29,"z":406},"$type":"TransformData"},"CurvePointTangent":{"$ref":"1145"}},"children":[]}]}]}]}]}]}]}]}]},"routeChunk_default_pogostick_start":{"name":"routeChunk_default_pogostick_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":true,"_blockCount":2,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"Low,All"},{"_type":"Fillers,All","_density":"Medium,All"},{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_pogostick_start","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"PickupSpawnPoint(DynamicPogoStick)","components":{"Transform":{"position":{"x":20,"y":7,"z":90},"$type":"TransformData"},"PickupSpawnPoint":{"ContainingRoute":null,"_pickupParent":{},"__spawnPointMode":"WillForcePickupType","__forceSpawnPickupType":"PogoStick","_spawnPointDifficulty":"Easy","_spawnPointHeight":"","$type":"SYBO.Subway.Pickups.PickupSpawnPoint"},"RandomizeOffset":{"randomOffsets":{"left":true,"mid":true,"right":true},"$type":"RandomizeOffset"}},"children":[{"name":"PickupParent","components":{"Transform":{"position":{"x":20,"y":7,"z":90},"$type":"TransformData"}},"children":[]}]}]},"routeChunk_default_tutorial":{"name":"routeChunk_default_tutorial","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"RouteChunk":{"_isRepeatableInSections":false,"_blockCount":34,"_generateEnvironment":true,"_generateEnvironmentBase":true,"_limitedAllowedEnvironmentKinds":[{"_type":"Fillers,All","_density":"High,All"}],"_trackObjects":[],"_forcedEnvironmentBases":[],"_forcedEnvironments":[],"_selectors":[{"$id":"7"},{"$id":"8"},{"$id":"9"},{"$id":"10"},{"$id":"11"},{"$id":"12"},{"$id":"13"},{"$id":"14"},{"$id":"15"},{"$id":"16"},{"$id":"17"},{"$id":"18"},{"$id":"19"},{"$id":"20"},{"$id":"21"},{"$id":"22"},{"$id":"23"},{"$id":"24"},{"$id":"25"},{"$id":"26"},{"$id":"27"},{"$id":"28"},{"$id":"29"},{"$id":"30"},{"$id":"31"},{"$id":"32"}],"_routeTransitionTrigger":null,"Previous":null,"Next":null,"_reportedName":"default_tutorial","PreviewEnvironmentIndex":0,"$type":"SYBO.Subway.Routes.RouteChunk"}},"children":[{"name":"obstacles","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"train_sub_1_gen_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":90},"$type":"TransformData"}},"children":[]},{"name":"blocker_jump_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"}},"children":[]},{"name":"blocker_jump_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":540},"$type":"TransformData"}},"children":[]},{"name":"blocker_roll_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":900},"$type":"TransformData"}},"children":[]},{"name":"blocker_roll_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1080},"$type":"TransformData"}},"children":[]},{"name":"train_sub_1_gen_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1290},"$type":"TransformData"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1320},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1500},"$type":"TransformData"}},"children":[]},{"name":"trains_5_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1680},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"trains_1_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":1800},"$type":"TransformData"}},"children":[]},{"name":"trains_3_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1980},"$type":"TransformData"},"RandomizeOffset":{"randomOffsets":{"left":false,"mid":false,"right":false},"$type":"RandomizeOffset"}},"children":[]},{"name":"gates_mid_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":2520},"$type":"TransformData"}},"children":[]}]},{"name":"Ground","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"Trigger_up","components":{"Transform":{"position":{"x":0,"y":0,"z":203.0626},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":0,"time":1,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_up","components":{"Transform":{"position":{"x":0,"y":0,"z":413.0626},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":0,"time":0.75,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_down","components":{"Transform":{"position":{"x":0,"y":0,"z":763.0626},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":180,"time":0.75,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_down","components":{"Transform":{"position":{"x":0,"y":0,"z":963.0626},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":180,"time":0.65,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_good","components":{"Transform":{"position":{"x":0,"y":0,"z":1091.433},"$type":"TransformData"},"TutorialEvent":{"displayText":true,"tutorialText":"FreshMoves","displayMesh":false,"direction":0,"time":1,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_left","components":{"Transform":{"position":{"x":0,"y":0,"z":1343.063},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":90,"time":1,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_right","components":{"Transform":{"position":{"x":0,"y":0,"z":1523.063},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":-90,"time":0.5,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_right","components":{"Transform":{"position":{"x":0,"y":0,"z":1643.063},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":-90,"time":0.5,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_left","components":{"Transform":{"position":{"x":0,"y":0,"z":1823.063},"$type":"TransformData"},"TutorialEvent":{"displayText":false,"tutorialText":"None","displayMesh":true,"direction":90,"time":0.6,"endTutorial":false,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_hoverboard","components":{"Transform":{"position":{"x":0,"y":0,"z":2195},"$type":"TransformData"},"TutorialEvent":{"displayText":true,"tutorialText":"DoubleTap","displayMesh":false,"direction":0,"time":1,"endTutorial":false,"allowHoverboard":true,"$type":"TutorialEvent"}},"children":[]},{"name":"Trigger_finished","components":{"Transform":{"position":{"x":0,"y":0,"z":2574.015},"$type":"TransformData"},"TutorialEvent":{"displayText":true,"tutorialText":"YouRock","displayMesh":false,"direction":0,"time":1,"endTutorial":true,"allowHoverboard":false,"$type":"TutorialEvent"}},"children":[]}]},{"name":"obstacles_trains_start","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"collider stumble","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"collider stumble","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":120},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":180},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":300},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":360},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":480},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":540},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":660},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":720},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":840},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":900},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1020},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":20,"y":0,"z":1080},"$type":"TransformData"}},"children":[]},{"name":"trains_3_gen_group_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":1200},"$type":"TransformData"}},"children":[]}]},{"name":"base_environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"2_tracks","components":{"Transform":{"position":{"x":0,"y":0,"z":360},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]},{"name":"2_tracks","components":{"Transform":{"position":{"x":0,"y":0,"z":900},"$type":"TransformData"},"EnvironmentBase":{"_type":"Tracks","_numTracks":2,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]}]},{"name":"environments","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"gates","components":{"Transform":{"position":{"x":0,"y":0,"z":2520},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Gates,All","_density":""},"_blockCount":4,"$type":"SYBO.Subway.Level.Environment"}},"children":[]}]},{"name":"checkpoints","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"checkpoint_1","components":{"Transform":{"position":{"x":0,"y":0,"z":41},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]},{"name":"checkpoint_2","components":{"Transform":{"position":{"x":0,"y":0,"z":380},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]},{"name":"checkpoint_3","components":{"Transform":{"position":{"x":0,"y":0,"z":560},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]},{"name":"checkpoint_4","components":{"Transform":{"position":{"x":0,"y":0,"z":918},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]},{"name":"checkpoint_5","components":{"Transform":{"position":{"x":0,"y":0,"z":1104},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]},{"name":"checkpoint_6","components":{"Transform":{"position":{"x":0,"y":0,"z":1576},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]},{"name":"checkpoint_7","components":{"Transform":{"position":{"x":0,"y":0,"z":2182},"$type":"TransformData"},"CharacterCollisionTrigger":{"$type":"SYBO.Subway.Level.CharacterCollisionTrigger"},"CheckpointTrigger":{"$type":"SYBO.Subway.Level.CheckpointTrigger"}},"children":[]}]},{"name":"environment_constraints","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"},"Environment":{"_environmentKind":{"_type":"Empty,All","_density":""},"_blockCount":2,"$type":"SYBO.Subway.Level.Environment"},"EnvironmentBase":{"_type":"Empty","_numTracks":3,"_blockCount":2,"$type":"SYBO.Subway.Level.EnvironmentBase"}},"children":[]}]}} \ No newline at end of file diff --git a/games/subway-surfers-ny/assets/data/chunks_idle.json b/games/subway-surfers-ny/assets/data/chunks_idle.json new file mode 100644 index 00000000..60d697fa --- /dev/null +++ b/games/subway-surfers-ny/assets/data/chunks_idle.json @@ -0,0 +1 @@ +{"intro":{"name":"intro","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"high_tracks3_high_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":-180},"$type":"TransformData"}},"children":[]},{"name":"bag_place","components":{"Transform":{"position":{"x":0.141,"y":0.604,"z":-18.326},"$type":"TransformData"}},"children":[]},{"name":"Ground","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"trains","components":{"Transform":{"position":{"x":-20,"y":0,"z":0},"$type":"TransformData"}},"children":[{"name":"train_sub_1_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":-30},"$type":"TransformData"}},"children":[]},{"name":"train_start_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":-30},"$type":"TransformData"}},"children":[]},{"name":"train_sub_1_place","components":{"Transform":{"position":{"x":-20,"y":0,"z":30},"$type":"TransformData"}},"children":[]}]},{"name":"high_tracks3_high_group_place","components":{"Transform":{"position":{"x":0,"y":0,"z":0},"$type":"TransformData"}},"children":[]},{"name":"lightSignal_group_place","components":{"Transform":{"position":{"x":10,"y":0,"z":0},"$type":"TransformData"}},"children":[]}]}} \ No newline at end of file diff --git a/games/subway-surfers-ny/assets/data/config.json b/games/subway-surfers-ny/assets/data/config.json new file mode 100644 index 00000000..5beca2d0 --- /dev/null +++ b/games/subway-surfers-ny/assets/data/config.json @@ -0,0 +1,21 @@ +{ + "lang": "en", + "bundlepath": " ", + "env": "1103_seoul", + "env_builtin": "1103_seoul", + "char": "jake", + "loading_en": "loading", + "loading_pt-br": "carregando", + "revivals": 3, + "reviveTimeout": 6, + "pokiSdkDebug": false, + "commercials": false, + "rewardedBreaks": false, + "rewardedBreaksMobile": false, + "autoload": false, + "leaderboards": false, + "useDefaultPrompt": false, + "vconsole": false, + "monitor": false, + "maxNicknameChars": 15 +} \ No newline at end of file diff --git a/games/subway-surfers-ny/assets/data/strings_en.json b/games/subway-surfers-ny/assets/data/strings_en.json new file mode 100644 index 00000000..388fc6e9 --- /dev/null +++ b/games/subway-surfers-ny/assets/data/strings_en.json @@ -0,0 +1,53 @@ +{ + "STR_L_HTML5": "This game uses HTML5. If it loads but does not run, please update your web browser", + "menu": "Menu", + "toprun": "Top Run", + "highscores": "High Scores", + "collect": "Collect", + "characters": "Characters", + "boards": "Boards", + "awards": "Awards", + "boosts": "Boosts", + "free_stuff": "Free Stuff", + "store": "Store", + "resume": "Resume", + "play": "Play", + "pause": "Pause", + "gameover": "Game Over", + "wip": "(WIP)", + "free": "Free!", + "save_me": "Save me!", + + "leaderboards": "Leaderboards", + "score": "Score", + "coins": "Coins", + "high_score": "High Score", + "new_high_score": "New High Score!", + "settings": "Settings", + "tap_to_play": "Tap to play", + "tap_to_play_desktop": "Press space to play", + "nickname_prompt": "Set your nickname", + "ok": "OK", + "cancel": "Cancel", + + "sound": "Sound", + "on": "On", + "off": "Off", + "nickname": "Nickname", + + "tutorial_good": "Fresh Moves!", + "tutorial_hoverboard": "Double Tap for\nHoverboard", + "tutorial_hoverboard_desktop": "Press Space for\nHoverboard", + "tutorial_finished": "You rock! Now GO!", + "tutorial_up": "Swipe Up", + "tutorial_up_desktop": "Press Arrow Key Up", + "tutorial_down": "Swipe Down", + "tutorial_down_desktop": "Press Arrow Key Down", + "tutorial_left": "Swipe Left", + "tutorial_left_desktop": "Press Arrow Key Left", + "tutorial_right": "Swipe Right", + "tutorial_right_desktop": "Press Arrow Key Right", + + "privacy_policy": "More games", + "privacy_policy_link": "https://zazgames.com/" +} diff --git a/games/subway-surfers-ny/assets/font/lilita-one.css b/games/subway-surfers-ny/assets/font/lilita-one.css new file mode 100644 index 00000000..a2bca916 --- /dev/null +++ b/games/subway-surfers-ny/assets/font/lilita-one.css @@ -0,0 +1,6 @@ +@font-face { + font-family: 'Lilita One'; + src: url('lilita-one.woff2') format('woff2'), url('lilita-one.woff') format('woff'); + font-weight: normal; + font-style: normal; +} \ No newline at end of file diff --git a/games/subway-surfers-ny/assets/font/lilita-one.woff2 b/games/subway-surfers-ny/assets/font/lilita-one.woff2 new file mode 100644 index 00000000..22253895 Binary files /dev/null and b/games/subway-surfers-ny/assets/font/lilita-one.woff2 differ diff --git a/games/subway-surfers-ny/assets/font/titan-one.css b/games/subway-surfers-ny/assets/font/titan-one.css new file mode 100644 index 00000000..4ab96a7f --- /dev/null +++ b/games/subway-surfers-ny/assets/font/titan-one.css @@ -0,0 +1,6 @@ +@font-face { + font-family: 'Titan One'; + src: url('titan-one.woff2') format('woff2'), url('titan-one.woff') format('woff'); + font-weight: normal; + font-style: normal; +} \ No newline at end of file diff --git a/games/subway-surfers-ny/assets/font/titan-one.woff2 b/games/subway-surfers-ny/assets/font/titan-one.woff2 new file mode 100644 index 00000000..78ce40f6 Binary files /dev/null and b/games/subway-surfers-ny/assets/font/titan-one.woff2 differ diff --git a/games/subway-surfers-ny/assets/game/board_new_york.fbx b/games/subway-surfers-ny/assets/game/board_new_york.fbx new file mode 100644 index 00000000..6e0b3e04 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/board_new_york.fbx differ diff --git a/games/subway-surfers-ny/assets/game/board_new_york01.fbx b/games/subway-surfers-ny/assets/game/board_new_york01.fbx new file mode 100644 index 00000000..ca6631db Binary files /dev/null and b/games/subway-surfers-ny/assets/game/board_new_york01.fbx differ diff --git a/games/subway-surfers-ny/assets/game/board_new_york_tex_mip.png b/games/subway-surfers-ny/assets/game/board_new_york_tex_mip.png new file mode 100644 index 00000000..e05fe027 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/board_new_york_tex_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/effects_tex_mip.png b/games/subway-surfers-ny/assets/game/effects_tex_mip.png new file mode 100644 index 00000000..617bc61a Binary files /dev/null and b/games/subway-surfers-ny/assets/game/effects_tex_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/enemies_mip.png b/games/subway-surfers-ny/assets/game/enemies_mip.png new file mode 100644 index 00000000..8a766291 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/enemies_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/environment.fbx b/games/subway-surfers-ny/assets/game/environment.fbx new file mode 100644 index 00000000..5d2fe780 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/environment.fbx differ diff --git a/games/subway-surfers-ny/assets/game/halo_mip.png b/games/subway-surfers-ny/assets/game/halo_mip.png new file mode 100644 index 00000000..1ebdc334 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/halo_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/jetpackSmoke_mip.png b/games/subway-surfers-ny/assets/game/jetpackSmoke_mip.png new file mode 100644 index 00000000..c6d04603 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/jetpackSmoke_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/model_avatar_catch.fbx b/games/subway-surfers-ny/assets/game/model_avatar_catch.fbx new file mode 100644 index 00000000..d09dde88 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_avatar_catch.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_avatar_movement.fbx b/games/subway-surfers-ny/assets/game/model_avatar_movement.fbx new file mode 100644 index 00000000..a7f8134a Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_avatar_movement.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_avatar_powerup_jet_pack.fbx b/games/subway-surfers-ny/assets/game/model_avatar_powerup_jet_pack.fbx new file mode 100644 index 00000000..ce4f3062 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_avatar_powerup_jet_pack.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_avatar_powerup_pogostick.fbx b/games/subway-surfers-ny/assets/game/model_avatar_powerup_pogostick.fbx new file mode 100644 index 00000000..f3a82388 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_avatar_powerup_pogostick.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_avatar_start.fbx b/games/subway-surfers-ny/assets/game/model_avatar_start.fbx new file mode 100644 index 00000000..20cff1fb Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_avatar_start.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_dog_catch.fbx b/games/subway-surfers-ny/assets/game/model_dog_catch.fbx new file mode 100644 index 00000000..6f8d490d Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_dog_catch.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_dog_movement.fbx b/games/subway-surfers-ny/assets/game/model_dog_movement.fbx new file mode 100644 index 00000000..a4581224 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_dog_movement.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_guard_catch.fbx b/games/subway-surfers-ny/assets/game/model_guard_catch.fbx new file mode 100644 index 00000000..dbfe3142 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_guard_catch.fbx differ diff --git a/games/subway-surfers-ny/assets/game/model_guard_movement.fbx b/games/subway-surfers-ny/assets/game/model_guard_movement.fbx new file mode 100644 index 00000000..c7f538cd Binary files /dev/null and b/games/subway-surfers-ny/assets/game/model_guard_movement.fbx differ diff --git a/games/subway-surfers-ny/assets/game/ocean_mip.png b/games/subway-surfers-ny/assets/game/ocean_mip.png new file mode 100644 index 00000000..f6920ea6 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/ocean_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/props.fbx b/games/subway-surfers-ny/assets/game/props.fbx new file mode 100644 index 00000000..a4e9ac80 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/props.fbx differ diff --git a/games/subway-surfers-ny/assets/game/shadow_mip.png b/games/subway-surfers-ny/assets/game/shadow_mip.png new file mode 100644 index 00000000..ee689efb Binary files /dev/null and b/games/subway-surfers-ny/assets/game/shadow_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/spraySplash_mip.png b/games/subway-surfers-ny/assets/game/spraySplash_mip.png new file mode 100644 index 00000000..fd2e66a9 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/spraySplash_mip.png differ diff --git a/games/subway-surfers-ny/assets/game/trains.fbx b/games/subway-surfers-ny/assets/game/trains.fbx new file mode 100644 index 00000000..2e295965 Binary files /dev/null and b/games/subway-surfers-ny/assets/game/trains.fbx differ diff --git a/games/subway-surfers-ny/assets/idle/environment_idle.fbx b/games/subway-surfers-ny/assets/idle/environment_idle.fbx new file mode 100644 index 00000000..be83da77 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/environment_idle.fbx differ diff --git a/games/subway-surfers-ny/assets/idle/environment_tex_mip.png b/games/subway-surfers-ny/assets/idle/environment_tex_mip.png new file mode 100644 index 00000000..96d97998 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/environment_tex_mip.png differ diff --git a/games/subway-surfers-ny/assets/idle/jake_tex_mip.png b/games/subway-surfers-ny/assets/idle/jake_tex_mip.png new file mode 100644 index 00000000..38f382f4 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/jake_tex_mip.png differ diff --git a/games/subway-surfers-ny/assets/idle/model_avatar_idle_paint.fbx b/games/subway-surfers-ny/assets/idle/model_avatar_idle_paint.fbx new file mode 100644 index 00000000..974c1842 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/model_avatar_idle_paint.fbx differ diff --git a/games/subway-surfers-ny/assets/idle/props_start.fbx b/games/subway-surfers-ny/assets/idle/props_start.fbx new file mode 100644 index 00000000..80b84100 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/props_start.fbx differ diff --git a/games/subway-surfers-ny/assets/idle/props_tex_mip.png b/games/subway-surfers-ny/assets/idle/props_tex_mip.png new file mode 100644 index 00000000..0c743a69 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/props_tex_mip.png differ diff --git a/games/subway-surfers-ny/assets/idle/train_start_mip.png b/games/subway-surfers-ny/assets/idle/train_start_mip.png new file mode 100644 index 00000000..09547b14 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/train_start_mip.png differ diff --git a/games/subway-surfers-ny/assets/idle/trains_start.fbx b/games/subway-surfers-ny/assets/idle/trains_start.fbx new file mode 100644 index 00000000..87216076 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/trains_start.fbx differ diff --git a/games/subway-surfers-ny/assets/idle/trains_tex_mip.png b/games/subway-surfers-ny/assets/idle/trains_tex_mip.png new file mode 100644 index 00000000..7c3f9208 Binary files /dev/null and b/games/subway-surfers-ny/assets/idle/trains_tex_mip.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_00_brody.png b/games/subway-surfers-ny/assets/placeholder/icon_00_brody.png new file mode 100644 index 00000000..950f7283 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_00_brody.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_01_tagbot.png b/games/subway-surfers-ny/assets/placeholder/icon_01_tagbot.png new file mode 100644 index 00000000..2fd4c253 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_01_tagbot.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_02_tasha.png b/games/subway-surfers-ny/assets/placeholder/icon_02_tasha.png new file mode 100644 index 00000000..d8191fe5 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_02_tasha.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_03_ninja.png b/games/subway-surfers-ny/assets/placeholder/icon_03_ninja.png new file mode 100644 index 00000000..60fa536f Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_03_ninja.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_04_lucy.png b/games/subway-surfers-ny/assets/placeholder/icon_04_lucy.png new file mode 100644 index 00000000..c918f7c9 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_04_lucy.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_05_king.png b/games/subway-surfers-ny/assets/placeholder/icon_05_king.png new file mode 100644 index 00000000..8b2f135a Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_05_king.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_07_yutani.png b/games/subway-surfers-ny/assets/placeholder/icon_07_yutani.png new file mode 100644 index 00000000..ceaa4b46 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_07_yutani.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_08_spike.png b/games/subway-surfers-ny/assets/placeholder/icon_08_spike.png new file mode 100644 index 00000000..5191a287 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_08_spike.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_09_fresh.png b/games/subway-surfers-ny/assets/placeholder/icon_09_fresh.png new file mode 100644 index 00000000..5c5f616d Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_09_fresh.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_11_tricky.png b/games/subway-surfers-ny/assets/placeholder/icon_11_tricky.png new file mode 100644 index 00000000..4ff05146 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_11_tricky.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/icon_friend.png b/games/subway-surfers-ny/assets/placeholder/icon_friend.png new file mode 100644 index 00000000..87929c87 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/icon_friend.png differ diff --git a/games/subway-surfers-ny/assets/placeholder/jake.png b/games/subway-surfers-ny/assets/placeholder/jake.png new file mode 100644 index 00000000..5d963eb0 Binary files /dev/null and b/games/subway-surfers-ny/assets/placeholder/jake.png differ diff --git a/games/subway-surfers-ny/assets/preload/splash_mip.png b/games/subway-surfers-ny/assets/preload/splash_mip.png new file mode 100644 index 00000000..00ed83ff Binary files /dev/null and b/games/subway-surfers-ny/assets/preload/splash_mip.png differ diff --git a/games/subway-surfers-ny/assets/ui/ui.json b/games/subway-surfers-ny/assets/ui/ui.json new file mode 100644 index 00000000..263a2688 --- /dev/null +++ b/games/subway-surfers-ny/assets/ui/ui.json @@ -0,0 +1,1191 @@ +{ + "frames": { + "base_blurry.png": { + "frame": { + "x": 2, + "y": 2, + "w": 512, + "h": 90 + }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 512, + "h": 90 + }, + "sourceSize": { + "w": 512, + "h": 90 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "scoreboard.png": { + "frame": { + "x": 2, + "y": 96, + "w": 319, + "h": 180 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 319, + "h": 180 + }, + "sourceSize": { + "w": 320, + "h": 185 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "base_long.png": { + "frame": { + "x": 2, + "y": 280, + "w": 300, + "h": 80 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 300, + "h": 80 + }, + "sourceSize": { + "w": 302, + "h": 82 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "tutorial_arrow.png": { + "frame": { + "x": 2, + "y": 364, + "w": 256, + "h": 264 + }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 256, + "h": 264 + }, + "sourceSize": { + "w": 256, + "h": 264 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "front_icon_top_run.png": { + "frame": { + "x": 262, + "y": 364, + "w": 260, + "h": 171 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 260, + "h": 171 + }, + "sourceSize": { + "w": 260, + "h": 174 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "front_icon_mytour.png": { + "frame": { + "x": 518, + "y": 2, + "w": 227, + "h": 125 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 227, + "h": 125 + }, + "sourceSize": { + "w": 228, + "h": 126 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "front_icon_shop.png": { + "frame": { + "x": 325, + "y": 131, + "w": 190, + "h": 151 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 190, + "h": 151 + }, + "sourceSize": { + "w": 194, + "h": 154 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "front_icon_me.png": { + "frame": { + "x": 519, + "y": 131, + "w": 133, + "h": 168 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 133, + "h": 168 + }, + "sourceSize": { + "w": 136, + "h": 172 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "clock_base.png": { + "frame": { + "x": 656, + "y": 131, + "w": 111, + "h": 108 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 111, + "h": 108 + }, + "sourceSize": { + "w": 112, + "h": 109 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_tv.png": { + "frame": { + "x": 656, + "y": 243, + "w": 83, + "h": 102 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 83, + "h": 102 + }, + "sourceSize": { + "w": 86, + "h": 106 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "btn_base.png": { + "frame": { + "x": 526, + "y": 303, + "w": 100, + "h": 100 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 100, + "h": 100 + }, + "sourceSize": { + "w": 102, + "h": 102 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "base_short.png": { + "frame": { + "x": 630, + "y": 349, + "w": 100, + "h": 80 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 100, + "h": 80 + }, + "sourceSize": { + "w": 102, + "h": 82 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "box_fill_green.png": { + "frame": { + "x": 526, + "y": 407, + "w": 55, + "h": 85 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 55, + "h": 85 + }, + "sourceSize": { + "w": 55, + "h": 86 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "btn_close.png": { + "frame": { + "x": 526, + "y": 496, + "w": 78, + "h": 82 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 3, + "y": 2, + "w": 78, + "h": 82 + }, + "sourceSize": { + "w": 83, + "h": 86 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "clock_fill.png": { + "frame": { + "x": 262, + "y": 539, + "w": 82, + "h": 82 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 82, + "h": 82 + }, + "sourceSize": { + "w": 82, + "h": 84 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_piggy.png": { + "frame": { + "x": 348, + "y": 539, + "w": 81, + "h": 62 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 2, + "w": 81, + "h": 62 + }, + "sourceSize": { + "w": 84, + "h": 64 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "box_border_grey.png": { + "frame": { + "x": 433, + "y": 539, + "w": 76, + "h": 77 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 76, + "h": 77 + }, + "sourceSize": { + "w": 78, + "h": 78 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_high_scores.png": { + "frame": { + "x": 585, + "y": 433, + "w": 77, + "h": 59 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 4, + "w": 77, + "h": 59 + }, + "sourceSize": { + "w": 80, + "h": 64 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "diagonal.png": { + "frame": { + "x": 306, + "y": 286, + "w": 74, + "h": 74 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 74, + "h": 74 + }, + "sourceSize": { + "w": 77, + "h": 78 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_daily_challenge.png": { + "frame": { + "x": 384, + "y": 286, + "w": 73, + "h": 60 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 73, + "h": 60 + }, + "sourceSize": { + "w": 76, + "h": 62 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "box_fill_orange.png": { + "frame": { + "x": 461, + "y": 286, + "w": 41, + "h": 69 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 41, + "h": 69 + }, + "sourceSize": { + "w": 43, + "h": 71 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_top_run.png": { + "frame": { + "x": 666, + "y": 433, + "w": 48, + "h": 69 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 3, + "w": 48, + "h": 69 + }, + "sourceSize": { + "w": 50, + "h": 72 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_back.png": { + "frame": { + "x": 608, + "y": 506, + "w": 69, + "h": 60 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 69, + "h": 60 + }, + "sourceSize": { + "w": 76, + "h": 68 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_awards.png": { + "frame": { + "x": 681, + "y": 506, + "w": 65, + "h": 69 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 3, + "w": 65, + "h": 69 + }, + "sourceSize": { + "w": 68, + "h": 72 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "box_border_grey_small.png": { + "frame": { + "x": 348, + "y": 605, + "w": 68, + "h": 68 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 68, + "h": 68 + }, + "sourceSize": { + "w": 71, + "h": 71 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_upgrades.png": { + "frame": { + "x": 262, + "y": 625, + "w": 68, + "h": 62 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 2, + "w": 68, + "h": 62 + }, + "sourceSize": { + "w": 72, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "base_item.png": { + "frame": { + "x": 608, + "y": 570, + "w": 68, + "h": 68 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 68, + "h": 68 + }, + "sourceSize": { + "w": 70, + "h": 70 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_coins.png": { + "frame": { + "x": 513, + "y": 582, + "w": 68, + "h": 66 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 68, + "h": 66 + }, + "sourceSize": { + "w": 72, + "h": 68 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_boards.png": { + "frame": { + "x": 420, + "y": 620, + "w": 67, + "h": 63 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 2, + "w": 67, + "h": 63 + }, + "sourceSize": { + "w": 70, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_item_jetpack.png": { + "frame": { + "x": 680, + "y": 579, + "w": 61, + "h": 66 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 61, + "h": 66 + }, + "sourceSize": { + "w": 62, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_item_multiplier.png": { + "frame": { + "x": 2, + "y": 632, + "w": 65, + "h": 66 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 65, + "h": 66 + }, + "sourceSize": { + "w": 66, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_weekly_hunt.png": { + "frame": { + "x": 71, + "y": 632, + "w": 62, + "h": 65 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 62, + "h": 65 + }, + "sourceSize": { + "w": 66, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_user.png": { + "frame": { + "x": 718, + "y": 433, + "w": 50, + "h": 64 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 50, + "h": 64 + }, + "sourceSize": { + "w": 51, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_characters.png": { + "frame": { + "x": 137, + "y": 632, + "w": 47, + "h": 64 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 3, + "w": 47, + "h": 64 + }, + "sourceSize": { + "w": 50, + "h": 68 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_house.png": { + "frame": { + "x": 188, + "y": 632, + "w": 62, + "h": 63 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 62, + "h": 63 + }, + "sourceSize": { + "w": 72, + "h": 74 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_item_hoverboard.png": { + "frame": { + "x": 585, + "y": 642, + "w": 62, + "h": 37 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 3, + "y": 2, + "w": 62, + "h": 37 + }, + "sourceSize": { + "w": 69, + "h": 40 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_collect_coins.png": { + "frame": { + "x": 334, + "y": 677, + "w": 52, + "h": 62 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 3, + "y": 3, + "w": 52, + "h": 62 + }, + "sourceSize": { + "w": 56, + "h": 66 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_white_missions.png": { + "frame": { + "x": 254, + "y": 691, + "w": 62, + "h": 58 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 62, + "h": 58 + }, + "sourceSize": { + "w": 66, + "h": 59 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_info.png": { + "frame": { + "x": 734, + "y": 349, + "w": 29, + "h": 60 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 5, + "w": 29, + "h": 60 + }, + "sourceSize": { + "w": 37, + "h": 71 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_settings.png": { + "frame": { + "x": 188, + "y": 699, + "w": 57, + "h": 58 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 57, + "h": 58 + }, + "sourceSize": { + "w": 59, + "h": 60 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_coin_large.png": { + "frame": { + "x": 71, + "y": 701, + "w": 58, + "h": 58 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 58, + "h": 58 + }, + "sourceSize": { + "w": 64, + "h": 64 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_item_sneakers.png": { + "frame": { + "x": 2, + "y": 702, + "w": 57, + "h": 58 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 57, + "h": 58 + }, + "sourceSize": { + "w": 58, + "h": 58 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_item_magnet.png": { + "frame": { + "x": 137, + "y": 700, + "w": 47, + "h": 57 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 47, + "h": 57 + }, + "sourceSize": { + "w": 49, + "h": 58 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_sound.png": { + "frame": { + "x": 491, + "y": 652, + "w": 57, + "h": 45 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 57, + "h": 45 + }, + "sourceSize": { + "w": 59, + "h": 48 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_key.png": { + "frame": { + "x": 390, + "y": 687, + "w": 36, + "h": 52 + }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 36, + "h": 52 + }, + "sourceSize": { + "w": 36, + "h": 52 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_coin.png": { + "frame": { + "x": 430, + "y": 687, + "w": 44, + "h": 43 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 44, + "h": 43 + }, + "sourceSize": { + "w": 52, + "h": 50 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_pause.png": { + "frame": { + "x": 743, + "y": 243, + "w": 32, + "h": 38 + }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 38 + }, + "sourceSize": { + "w": 32, + "h": 38 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "item_duration_bar.png": { + "frame": { + "x": 630, + "y": 303, + "w": 11, + "h": 34 + }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 11, + "h": 34 + }, + "sourceSize": { + "w": 11, + "h": 34 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + }, + "icon_star.png": { + "frame": { + "x": 743, + "y": 285, + "w": 29, + "h": 29 + }, + "rotated": false, + "trimmed": true, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 29, + "h": 29 + }, + "sourceSize": { + "w": 40, + "h": 38 + }, + "pivot": { + "x": 0.5, + "y": 0.5 + } + } + }, + "meta": { + "app": "http://github.com/odrick/free-tex-packer-core", + "version": "0.2.0", + "image": "ui.png", + "format": "RGBA8888", + "size": { + "w": 777, + "h": 762 + }, + "scale": 1 + } +} diff --git a/games/subway-surfers-ny/assets/ui/ui.png b/games/subway-surfers-ny/assets/ui/ui.png new file mode 100644 index 00000000..ac680ac4 Binary files /dev/null and b/games/subway-surfers-ny/assets/ui/ui.png differ diff --git a/games/subway-surfers-ny/index.html b/games/subway-surfers-ny/index.html new file mode 100644 index 00000000..15e8e21b --- /dev/null +++ b/games/subway-surfers-ny/index.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + Subway Surfers New York + + + + + +
+ + + + diff --git a/games/subway-surfers-ny/js/boot.js b/games/subway-surfers-ny/js/boot.js new file mode 100644 index 00000000..e24689b5 --- /dev/null +++ b/games/subway-surfers-ny/js/boot.js @@ -0,0 +1,122 @@ +! function(t) { + var a = {}; + + function __webpack_require__(e) { + if (a[e]) return a[e].exports; + var n = a[e] = { + i: e, + l: !1, + exports: {} + }; + return t[e].call(n.exports, n, n.exports, __webpack_require__), n.l = !0, n.exports + } + __webpack_require__.m = t, __webpack_require__.c = a, __webpack_require__.d = function(e, n, t) { + __webpack_require__.o(e, n) || Object.defineProperty(e, n, { + enumerable: !0, + get: t + }) + }, __webpack_require__.r = function(e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(e, "__esModule", { + value: !0 + }) + }, __webpack_require__.t = function(n, e) { + if (1 & e && (n = __webpack_require__(n)), 8 & e) return n; + if (4 & e && "object" == typeof n && n && n.__esModule) return n; + var t = Object.create(null); + if (__webpack_require__.r(t), Object.defineProperty(t, "default", { + enumerable: !0, + value: n + }), 2 & e && "string" != typeof n) + for (var a in n) __webpack_require__.d(t, a, function(e) { + return n[e] + }.bind(null, a)); + return t + }, __webpack_require__.n = function(e) { + var n = e && e.__esModule ? function() { + return e.default + } : function() { + return e + }; + return __webpack_require__.d(n, "a", n), n + }, __webpack_require__.o = function(e, n) { + return Object.prototype.hasOwnProperty.call(e, n) + }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 486) +}({ + 486: function(e, n, t) { + function pathJoin() { + for (var e = arguments.length, n = new Array(e), t = 0; t < e; t++) n[t] = arguments[t]; + return n.join("/") + } + + function loadJson(e, n, t) { + var a = new XMLHttpRequest; + a.addEventListener("load", function() { + var e = JSON.parse(this.responseText); + n && n(e) + }), a.open("GET", e + "?v=1gefx1jwdk0gj12hb"), a.send() + } + + function loadScript(e, n) { + try { + var t = document.createElement("script"); + n && (t.onload = n), t.src = e + "?v=1gefx1jwdk0gj12hb", document.head.appendChild(t) + } catch (e) {} + } + + function loadFont(e, n) { + var t = document.createElement("link"); + t.rel = "stylesheet", t.type = "text/css", t.href = e + "?v=1gefx1jwdk0gj12hb", t.media = "all", document.head.appendChild(t); + var a = document.createElement("div"); + a.className = "fontcache", a.style = 'font-family: "' + n + '";', a.textContent = ".", document.body.appendChild(a) + } + + function initApp(e) { + var n, t, a; + n = e.meta, t = pathJoin(n.path, n.splash), (a = document.querySelector("#og-game-holder")).style.backgroundColor = n.color, a.style.backgroundImage = 'url("' + t + '?v=1gefx1jwdk0gj12hb"")', loadFont("assets/font/lilita-one.css", "Lilita One"), loadFont("assets/font/titan-one.css", "Titan One"), window.sharedAppData.config.leaderboards && loadScript("js/leaderboard.js"), window.sharedAppData.config.vconsole && loadScript("https://cdnjs.cloudflare.com/ajax/libs/vConsole/3.3.0/vconsole.min.js"), loadScript("js/inflate.min.js"), loadScript("js/vendor.js"), loadScript("js/main.js") + } + console.log = function() { + return null + }, console.warn = function() { + return null + }, window.GAME_CONFIG || (window.GAME_CONFIG = { + fastplay: !1 + }), loadJson("assets/data/config.json", function(t) { + var e, n, a, o = function() { + var e = location.search.slice(location.search.indexOf("?") + 1).split("&"), + n = {}; + for (var t in e) { + var a = e[t].split("="), + o = a[0], + r = a[1]; + void 0 !== r && ("true" !== r && "false" !== r || (r = "true" === r), n[o] = "string" == typeof r && r.match(/^[-.0-9]+$/) ? parseFloat(r) : r) + } + return n + }(); + for (var r in t.pokiSdkDebug = !1, window.GAME_CONFIG) t[r] = window.GAME_CONFIG[r]; + for (var r in o) t[r] = o[r]; + window.sharedAppData = { + config: t, + bundle: { + meta: { + path: "./", + color: "#ffa4cd", + splash: "/assets/preload/splash_mip.png" + } + } + }, e = t.pokiSdkDebug, n = function(e) { + if (void 0 === t.adBlocking && (t.adBlocking = e), t.bundlepath && t.env !== t.env_builtin) { + var n = pathJoin(t.bundlepath, t.env); + loadJson(pathJoin(n, "manifest.json"), function(e) { + e.meta.path = n, window.sharedAppData.bundle = e, initApp(window.sharedAppData.bundle) + }) + } else initApp(window.sharedAppData.bundle) + }, (a = window.Tabouzigtsdk) ? (a.init().then(function() { + a.gameLoadingStart(), n(!1) + }).catch(function() { + a.gameLoadingStart(), n(!0) + }), a.setDebug(e)) : n(!0) + }) + } +}); \ No newline at end of file diff --git a/games/subway-surfers-ny/js/games_lib/ludiAdapter.js b/games/subway-surfers-ny/js/games_lib/ludiAdapter.js new file mode 100644 index 00000000..3a8eae59 --- /dev/null +++ b/games/subway-surfers-ny/js/games_lib/ludiAdapter.js @@ -0,0 +1,57 @@ +var myDataLayer = function() { + var arr = []; + + + return arr; +}; + +var dataLayer = new myDataLayer; +var enableADS = parent.enableADS; +var productKey = parent.productKey; +var productTitle = parent.productTitle; +if (parent.AdsState) { + var AdsState = parent.AdsState; +} +if (parent.adsContainer) { + var adsContainer = parent.adsContainer; +} + +if (parent.adsCurrentState) { + var adsCurrentState = parent.adsCurrentState; +} + +var playAds = function() { + //parent.playAds(); + sdk.showBanner(); +} +var getReferrer = function() { + return parent.getReferrer(); +} + +var show_freeFrame = function() { + //return parent.playAds(); + sdk.showBanner(); +} +var show_freeFrame_Loc = function(l) { + //return parent.playAds(); + sdk.showBanner(); +} +var o_setDisplayRewardAds = function(v) { + //return parent.o_setDisplayRewardAds(v); + sdk.showBanner(); +} +var ora_isDisplayingReward = function(v) { + //return parent.ora_isDisplayingReward(v); + sdk.showBanner(); +} +var ora_getPayloadAmount = function() { + return parent.ora_getPayloadAmount(); +} +var isAdsComplete = function() { + return parent.isAdsComplete(); +} +var myConsoleLog = function() { + return parent.myConsoleLog(); +} + +var isShowAdScreen = false; \ No newline at end of file diff --git a/games/subway-surfers-ny/js/inflate.min.js b/games/subway-surfers-ny/js/inflate.min.js new file mode 100644 index 00000000..33067ae9 --- /dev/null +++ b/games/subway-surfers-ny/js/inflate.min.js @@ -0,0 +1,358 @@ +/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */ +(function() { + 'use strict'; + var l = void 0, + aa = this; + + function r(c, d) { + var a = c.split("."), + b = aa; + !(a[0] in b) && b.execScript && b.execScript("var " + a[0]); + for (var e; a.length && (e = a.shift());) !a.length && d !== l ? b[e] = d : b = b[e] ? b[e] : b[e] = {} + }; + var t = "undefined" !== typeof Uint8Array && "undefined" !== typeof Uint16Array && "undefined" !== typeof Uint32Array && "undefined" !== typeof DataView; + + function v(c) { + var d = c.length, + a = 0, + b = Number.POSITIVE_INFINITY, + e, f, g, h, k, m, n, p, s, x; + for (p = 0; p < d; ++p) c[p] > a && (a = c[p]), c[p] < b && (b = c[p]); + e = 1 << a; + f = new(t ? Uint32Array : Array)(e); + g = 1; + h = 0; + for (k = 2; g <= a;) { + for (p = 0; p < d; ++p) + if (c[p] === g) { + m = 0; + n = h; + for (s = 0; s < g; ++s) m = m << 1 | n & 1, n >>= 1; + x = g << 16 | p; + for (s = m; s < e; s += k) f[s] = x; + ++h + }++g; + h <<= 1; + k <<= 1 + } + return [f, a, b] + }; + + function w(c, d) { + this.g = []; + this.h = 32768; + this.d = this.f = this.a = this.l = 0; + this.input = t ? new Uint8Array(c) : c; + this.m = !1; + this.i = y; + this.r = !1; + if (d || !(d = {})) d.index && (this.a = d.index), d.bufferSize && (this.h = d.bufferSize), d.bufferType && (this.i = d.bufferType), d.resize && (this.r = d.resize); + switch (this.i) { + case A: + this.b = 32768; + this.c = new(t ? Uint8Array : Array)(32768 + this.h + 258); + break; + case y: + this.b = 0; + this.c = new(t ? Uint8Array : Array)(this.h); + this.e = this.z; + this.n = this.v; + this.j = this.w; + break; + default: + throw Error("invalid inflate mode"); + } + } + var A = 0, + y = 1, + B = { + t: A, + s: y + }; + w.prototype.k = function() { + for (; !this.m;) { + var c = C(this, 3); + c & 1 && (this.m = !0); + c >>>= 1; + switch (c) { + case 0: + var d = this.input, + a = this.a, + b = this.c, + e = this.b, + f = d.length, + g = l, + h = l, + k = b.length, + m = l; + this.d = this.f = 0; + if (a + 1 >= f) throw Error("invalid uncompressed block header: LEN"); + g = d[a++] | d[a++] << 8; + if (a + 1 >= f) throw Error("invalid uncompressed block header: NLEN"); + h = d[a++] | d[a++] << 8; + if (g === ~h) throw Error("invalid uncompressed block header: length verify"); + if (a + g > d.length) throw Error("input buffer is broken"); + switch (this.i) { + case A: + for (; e + + g > b.length;) { + m = k - e; + g -= m; + if (t) b.set(d.subarray(a, a + m), e), e += m, a += m; + else + for (; m--;) b[e++] = d[a++]; + this.b = e; + b = this.e(); + e = this.b + } + break; + case y: + for (; e + g > b.length;) b = this.e({ + p: 2 + }); + break; + default: + throw Error("invalid inflate mode"); + } + if (t) b.set(d.subarray(a, a + g), e), e += g, a += g; + else + for (; g--;) b[e++] = d[a++]; + this.a = a; + this.b = e; + this.c = b; + break; + case 1: + this.j(ba, ca); + break; + case 2: + for (var n = C(this, 5) + 257, p = C(this, 5) + 1, s = C(this, 4) + 4, x = new(t ? Uint8Array : Array)(D.length), S = l, T = l, U = l, u = l, M = l, F = l, z = l, q = l, V = l, q = 0; q < s; ++q) x[D[q]] = + C(this, 3); + if (!t) { + q = s; + for (s = x.length; q < s; ++q) x[D[q]] = 0 + } + S = v(x); + u = new(t ? Uint8Array : Array)(n + p); + q = 0; + for (V = n + p; q < V;) switch (M = E(this, S), M) { + case 16: + for (z = 3 + C(this, 2); z--;) u[q++] = F; + break; + case 17: + for (z = 3 + C(this, 3); z--;) u[q++] = 0; + F = 0; + break; + case 18: + for (z = 11 + C(this, 7); z--;) u[q++] = 0; + F = 0; + break; + default: + F = u[q++] = M + } + T = t ? v(u.subarray(0, n)) : v(u.slice(0, n)); + U = t ? v(u.subarray(n)) : v(u.slice(n)); + this.j(T, U); + break; + default: + throw Error("unknown BTYPE: " + c); + } + } + return this.n() + }; + var G = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], + D = t ? new Uint16Array(G) : G, + H = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258], + I = t ? new Uint16Array(H) : H, + J = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0], + K = t ? new Uint8Array(J) : J, + L = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577], + da = t ? new Uint16Array(L) : L, + ea = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, + 13, 13 + ], + N = t ? new Uint8Array(ea) : ea, + O = new(t ? Uint8Array : Array)(288), + P, fa; + P = 0; + for (fa = O.length; P < fa; ++P) O[P] = 143 >= P ? 8 : 255 >= P ? 9 : 279 >= P ? 7 : 8; + var ba = v(O), + Q = new(t ? Uint8Array : Array)(30), + R, ga; + R = 0; + for (ga = Q.length; R < ga; ++R) Q[R] = 5; + var ca = v(Q); + + function C(c, d) { + for (var a = c.f, b = c.d, e = c.input, f = c.a, g = e.length, h; b < d;) { + if (f >= g) throw Error("input buffer is broken"); + a |= e[f++] << b; + b += 8 + } + h = a & (1 << d) - 1; + c.f = a >>> d; + c.d = b - d; + c.a = f; + return h + } + + function E(c, d) { + for (var a = c.f, b = c.d, e = c.input, f = c.a, g = e.length, h = d[0], k = d[1], m, n; b < k && !(f >= g);) a |= e[f++] << b, b += 8; + m = h[a & (1 << k) - 1]; + n = m >>> 16; + if (n > b) throw Error("invalid code length: " + n); + c.f = a >> n; + c.d = b - n; + c.a = f; + return m & 65535 + } + w.prototype.j = function(c, d) { + var a = this.c, + b = this.b; + this.o = c; + for (var e = a.length - 258, f, g, h, k; 256 !== (f = E(this, c));) + if (256 > f) b >= e && (this.b = b, a = this.e(), b = this.b), a[b++] = f; + else { + g = f - 257; + k = I[g]; + 0 < K[g] && (k += C(this, K[g])); + f = E(this, d); + h = da[f]; + 0 < N[f] && (h += C(this, N[f])); + b >= e && (this.b = b, a = this.e(), b = this.b); + for (; k--;) a[b] = a[b++ - h] + } + for (; 8 <= this.d;) this.d -= 8, this.a--; + this.b = b + }; + w.prototype.w = function(c, d) { + var a = this.c, + b = this.b; + this.o = c; + for (var e = a.length, f, g, h, k; 256 !== (f = E(this, c));) + if (256 > f) b >= e && (a = this.e(), e = a.length), a[b++] = f; + else { + g = f - 257; + k = I[g]; + 0 < K[g] && (k += C(this, K[g])); + f = E(this, d); + h = da[f]; + 0 < N[f] && (h += C(this, N[f])); + b + k > e && (a = this.e(), e = a.length); + for (; k--;) a[b] = a[b++ - h] + } + for (; 8 <= this.d;) this.d -= 8, this.a--; + this.b = b + }; + w.prototype.e = function() { + var c = new(t ? Uint8Array : Array)(this.b - 32768), + d = this.b - 32768, + a, b, e = this.c; + if (t) c.set(e.subarray(32768, c.length)); + else { + a = 0; + for (b = c.length; a < b; ++a) c[a] = e[a + 32768] + } + this.g.push(c); + this.l += c.length; + if (t) e.set(e.subarray(d, d + 32768)); + else + for (a = 0; 32768 > a; ++a) e[a] = e[d + a]; + this.b = 32768; + return e + }; + w.prototype.z = function(c) { + var d, a = this.input.length / this.a + 1 | 0, + b, e, f, g = this.input, + h = this.c; + c && ("number" === typeof c.p && (a = c.p), "number" === typeof c.u && (a += c.u)); + 2 > a ? (b = (g.length - this.a) / this.o[2], f = 258 * (b / 2) | 0, e = f < h.length ? h.length + f : h.length << 1) : e = h.length * a; + t ? (d = new Uint8Array(e), d.set(h)) : d = h; + return this.c = d + }; + w.prototype.n = function() { + var c = 0, + d = this.c, + a = this.g, + b, e = new(t ? Uint8Array : Array)(this.l + (this.b - 32768)), + f, g, h, k; + if (0 === a.length) return t ? this.c.subarray(32768, this.b) : this.c.slice(32768, this.b); + f = 0; + for (g = a.length; f < g; ++f) { + b = a[f]; + h = 0; + for (k = b.length; h < k; ++h) e[c++] = b[h] + } + f = 32768; + for (g = this.b; f < g; ++f) e[c++] = d[f]; + this.g = []; + return this.buffer = e + }; + w.prototype.v = function() { + var c, d = this.b; + t ? this.r ? (c = new Uint8Array(d), c.set(this.c.subarray(0, d))) : c = this.c.subarray(0, d) : (this.c.length > d && (this.c.length = d), c = this.c); + return this.buffer = c + }; + + function W(c, d) { + var a, b; + this.input = c; + this.a = 0; + if (d || !(d = {})) d.index && (this.a = d.index), d.verify && (this.A = d.verify); + a = c[this.a++]; + b = c[this.a++]; + switch (a & 15) { + case ha: + this.method = ha; + break; + default: + throw Error("unsupported compression method"); + } + if (0 !== ((a << 8) + b) % 31) throw Error("invalid fcheck flag:" + ((a << 8) + b) % 31); + if (b & 32) throw Error("fdict flag is not supported"); + this.q = new w(c, { + index: this.a, + bufferSize: d.bufferSize, + bufferType: d.bufferType, + resize: d.resize + }) + } + W.prototype.k = function() { + var c = this.input, + d, a; + d = this.q.k(); + this.a = this.q.a; + if (this.A) { + a = (c[this.a++] << 24 | c[this.a++] << 16 | c[this.a++] << 8 | c[this.a++]) >>> 0; + var b = d; + if ("string" === typeof b) { + var e = b.split(""), + f, g; + f = 0; + for (g = e.length; f < g; f++) e[f] = (e[f].charCodeAt(0) & 255) >>> 0; + b = e + } + for (var h = 1, k = 0, m = b.length, n, p = 0; 0 < m;) { + n = 1024 < m ? 1024 : m; + m -= n; + do h += b[p++], k += h; while (--n); + h %= 65521; + k %= 65521 + } + if (a !== (k << 16 | h) >>> 0) throw Error("invalid adler-32 checksum"); + } + return d + }; + var ha = 8; + r("Zlib.Inflate", W); + r("Zlib.Inflate.prototype.decompress", W.prototype.k); + var X = { + ADAPTIVE: B.s, + BLOCK: B.t + }, + Y, Z, $, ia; + if (Object.keys) Y = Object.keys(X); + else + for (Z in Y = [], $ = 0, X) Y[$++] = Z; + $ = 0; + for (ia = Y.length; $ < ia; ++$) Z = Y[$], r("Zlib.Inflate.BufferType." + Z, X[Z]); +}).call(this); \ No newline at end of file diff --git a/games/subway-surfers-ny/js/main.js b/games/subway-surfers-ny/js/main.js new file mode 100644 index 00000000..4cd9ff3f --- /dev/null +++ b/games/subway-surfers-ny/js/main.js @@ -0,0 +1,13254 @@ +!(function (h) { + function webpackJsonpCallback(t) { + for (var e, i, n = t[0], o = t[1], s = t[2], a = 0, r = []; a < n.length; a++) (i = n[a]), d[i] && r.push(d[i][0]), (d[i] = 0); + for (e in o) Object.prototype.hasOwnProperty.call(o, e) && (h[e] = o[e]); + for (c && c(t); r.length; ) r.shift()(); + return l.push.apply(l, s || []), checkDeferredModules(); + } + + function checkDeferredModules() { + for (var t, e = 0; e < l.length; e++) { + for (var i = l[e], n = !0, o = 1; o < i.length; o++) { + var s = i[o]; + 0 !== d[s] && (n = !1); + } + n && (l.splice(e--, 1), (t = __webpack_require__((__webpack_require__.s = i[0])))); + } + return t; + } + var i = {}, + d = { + 1: 0, + }, + l = []; + + function __webpack_require__(t) { + if (i[t]) return i[t].exports; + var e = (i[t] = { + i: t, + l: !1, + exports: {}, + }); + return h[t].call(e.exports, e, e.exports, __webpack_require__), (e.l = !0), e.exports; + } + (__webpack_require__.m = h), + (__webpack_require__.c = i), + (__webpack_require__.d = function (t, e, i) { + __webpack_require__.o(t, e) || + Object.defineProperty(t, e, { + enumerable: !0, + get: i, + }); + }), + (__webpack_require__.r = function (t) { + "undefined" != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(t, Symbol.toStringTag, { + value: "Module", + }), + Object.defineProperty(t, "__esModule", { + value: !0, + }); + }), + (__webpack_require__.t = function (e, t) { + if ((1 & t && (e = __webpack_require__(e)), 8 & t)) return e; + if (4 & t && "object" == typeof e && e && e.__esModule) return e; + var i = Object.create(null); + if ( + (__webpack_require__.r(i), + Object.defineProperty(i, "default", { + enumerable: !0, + value: e, + }), + 2 & t && "string" != typeof e) + ) + for (var n in e) + __webpack_require__.d( + i, + n, + function (t) { + return e[t]; + }.bind(null, n) + ); + return i; + }), + (__webpack_require__.n = function (t) { + var e = + t && t.__esModule + ? function () { + return t["default"]; + } + : function () { + return t; + }; + return __webpack_require__.d(e, "a", e), e; + }), + (__webpack_require__.o = function (t, e) { + return Object.prototype.hasOwnProperty.call(t, e); + }), + (__webpack_require__.p = ""); + var t = (this.webpackJsonp = this.webpackJsonp || []), + e = t.push.bind(t); + (t.push = webpackJsonpCallback), (t = t.slice()); + for (var n = 0; n < t.length; n++) webpackJsonpCallback(t[n]); + var c = e; + l.push([199, 2]), checkDeferredModules(); + })({ + 127: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + easy: i(430), + expert: i(439), + normal: i(446), + hard: i(455), + main: i(462), + special: i(468), + }); + }, + 129: function (t, e) { + t.exports = + "//precision highp float;\nvarying vec2 vUvs;\n\nuniform sampler2D diffuse;\nvarying vec3 vNormal;\nvarying float vLight;\nvarying vec3 vPosition;\nvarying vec3 vView;\n\nvoid main()\n{\n\t// vec3 p = vec3(vView * vPosition);\n\t// vec3 v = normalize(-p);\n\t// float vdn = 1.0 - max(dot(v, vNormal), 0.0); \n\n // // gl_FragColor = texture2D(diffuse, vec2(vUvs.x, 1.-vUvs.y));//directionalLightWeighting;\n // // gl_FragColor.rgb = mix(gl_FragColor.rgb*vLight, gl_FragColor.rgb, 0.7);\n\n // if (vdn <= 1.0) {\n // \tgl_FragColor.rgb = vec3(0, 0, 0);\n\t// } else {\n\t// \tgl_FragColor.rgb = vec3(1, 1, 1);\t\n\t// }\n \n vec3 nn = normalize(vNormal);\n vec3 light_dir = normalize(vPosition);\n vec3 eye_dir = normalize(-vPosition);\n vec3 reflect_dir = normalize(reflect(light_dir, nn));\n\t\n float spec = max(dot(reflect_dir, eye_dir), 0.0);\n\tfloat diffuse = max(dot(-light_dir, nn), 0.0);\n\n float intensity = 0.6 * diffuse + 0.4 * spec;\n\n \tif (intensity > 0.9) {\n \t\tintensity = 1.1;\n \t}\n \telse if (intensity > 0.5) {\n \t\tintensity = 0.7;\n \t}\n \telse {\n \t\tintensity = 0.0;\n \t}\n\n \t// gl_FragColor = texture2D(diffuse, vec2(vUvs.x, 1.-vUvs.y));\n \t// vec3 col = mix(gl_FragColor.rgb*vLight, gl_FragColor.rgb, 0.7);\n \tgl_FragColor.rgb = vec3(1, 1, 1) * intensity;\n \n}\n"; + }, + 130: function (t, e) { + t.exports = + "\nattribute vec3 position;\nattribute vec3 normals;\nattribute vec4 bone_indices;\nattribute vec2 uvs;\n\nattribute vec4 weights;\n\nvarying vec2 vUvs;\nvarying vec3 vNormal;\nvarying float vLight;\nvarying vec3 vPosition;\nvarying vec3 vView;\n\nuniform mat4 view;\nuniform mat4 model;\nuniform mat3 normal;\nuniform mat4 projection;\n\nuniform mat4 bones[26];\n\nvoid main() {\n\n\tvUvs = uvs;\n\n\tvec4 outPosition = vec4(0.0);\n\tvec4 originalPosition = vec4(position, 1.);\n\n\tmat4 boneMatrix = mat4(0.0);\n\n\tboneMatrix += bones[int(bone_indices.x)] * weights.x;\n\tboneMatrix += bones[int(bone_indices.y)] * weights.y;\n\tboneMatrix += bones[int(bone_indices.z)] * weights.z;\n\tboneMatrix += bones[int(bone_indices.w)] * weights.w;\n\t// vNormal = normalize( normal * (vec4(boneMatrix * vec4(normals,0.0)).xyz) );\n\n\tvec3 transformedNormal = normalize( normal * (vec4(boneMatrix * vec4(normals,0.0)).xyz) );\n\tvNormal = transformedNormal;\n\tvPosition = position;\n\n\tvec3 p;\n\tvView = vec3(view * vec4(p, 0.0));\n\n\t// no light for now\n\t// vLight = max(dot(transformedNormal, vec3(0.0, 0.0,1.0)), 0.0);\n\tvLight = 1.0;\n\n gl_Position = projection * view * model * boneMatrix * originalPosition;\n}\n"; + }, + 132: function (t) { + t.exports = { + default: { + image: {}, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: {}, + }, + audio: { + image: {}, + fonts: {}, + audio: { + "audio/guard_catch": { + mp3: "audio/guard_catch.mp3", + ogg: "audio/guard_catch.ogg", + }, + "audio/guard_proximity": { + mp3: "audio/guard_proximity.mp3", + ogg: "audio/guard_proximity.ogg", + }, + "audio/guard_start": { + mp3: "audio/guard_start.mp3", + ogg: "audio/guard_start.ogg", + }, + "audio/hero_death": { + mp3: "audio/hero_death.mp3", + ogg: "audio/hero_death.ogg", + }, + "audio/hero_death_hitcam": { + mp3: "audio/hero_death_hitcam.mp3", + ogg: "audio/hero_death_hitcam.ogg", + }, + "audio/hero_dodge": { + mp3: "audio/hero_dodge.mp3", + ogg: "audio/hero_dodge.ogg", + }, + "audio/hero_foot_l": { + mp3: "audio/hero_foot_l.mp3", + ogg: "audio/hero_foot_l.ogg", + }, + "audio/hero_foot_r": { + mp3: "audio/hero_foot_r.mp3", + ogg: "audio/hero_foot_r.ogg", + }, + "audio/hero_hoverboard_crash": { + mp3: "audio/hero_hoverboard_crash.mp3", + ogg: "audio/hero_hoverboard_crash.ogg", + }, + "audio/hero_jump": { + mp3: "audio/hero_jump.mp3", + ogg: "audio/hero_jump.ogg", + }, + "audio/hero_revive": { + mp3: "audio/hero_revive.mp3", + ogg: "audio/hero_revive.ogg", + }, + "audio/hero_roll": { + mp3: "audio/hero_roll.mp3", + ogg: "audio/hero_roll.ogg", + }, + "audio/hero_sneakers_foot_l": { + mp3: "audio/hero_sneakers_foot_l.mp3", + ogg: "audio/hero_sneakers_foot_l.ogg", + }, + "audio/hero_sneakers_foot_r": { + mp3: "audio/hero_sneakers_foot_r.mp3", + ogg: "audio/hero_sneakers_foot_r.ogg", + }, + "audio/hero_sneakers_jump": { + mp3: "audio/hero_sneakers_jump.mp3", + ogg: "audio/hero_sneakers_jump.ogg", + }, + "audio/hero_stumble": { + mp3: "audio/hero_stumble.mp3", + ogg: "audio/hero_stumble.ogg", + }, + "audio/pickup_coin": { + mp3: "audio/pickup_coin.mp3", + ogg: "audio/pickup_coin.ogg", + }, + "audio/pickup_powerup": { + mp3: "audio/pickup_powerup.mp3", + ogg: "audio/pickup_powerup.ogg", + }, + "audio/special_jetpack": { + mp3: "audio/special_jetpack.mp3", + ogg: "audio/special_jetpack.ogg", + }, + "audio/special_jetpack_start": { + mp3: "audio/special_jetpack_start.mp3", + ogg: "audio/special_jetpack_start.ogg", + }, + "audio/special_magnet": { + mp3: "audio/special_magnet.mp3", + ogg: "audio/special_magnet.ogg", + }, + "audio/theme": { + mp3: "audio/theme.mp3", + ogg: "audio/theme.ogg", + }, + "audio/ui_button": { + mp3: "audio/ui_button.mp3", + ogg: "audio/ui_button.ogg", + }, + }, + model: {}, + json: {}, + animate: {}, + misc: {}, + }, + data: { + image: {}, + fonts: {}, + audio: {}, + model: {}, + json: { + "data/config": { + default: "data/config.json", + }, + "data/strings_en": { + default: "data/strings_en.json", + }, + "data/strings_pt-br": { + default: "data/strings_pt-br.json", + }, + }, + animate: {}, + misc: {}, + }, + chunks_game: { + image: {}, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: { + "data/chunks_game": { + tags: { + manifest: !0, + }, + default: "data/chunks_game.json", + }, + }, + }, + chunks_idle: { + image: {}, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: { + "data/chunks_idle": { + tags: { + manifest: !0, + }, + default: "data/chunks_idle.json", + }, + }, + }, + font: { + image: {}, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: { + "font/lilita-one": { + default: "font/lilita-one.css", + }, + "font/lilita-one-1": { + default: "font/lilita-one.woff", + }, + "font/lilita-one-2": { + default: "font/lilita-one.woff2", + }, + "font/titan-one": { + default: "font/titan-one.css", + }, + "font/titan-one-1": { + default: "font/titan-one.woff", + }, + "font/titan-one-2": { + default: "font/titan-one.woff2", + }, + }, + }, + game: { + image: { + "game/board_new_york_tex": { + default: "game/board_new_york_tex.png", + low: "game/board_new_york_tex_mip.png", + }, + "game/effects_tex": { + default: "game/effects_tex.png", + low: "game/effects_tex_mip.png", + }, + "game/enemies": { + default: "game/enemies.png", + low: "game/enemies_mip.png", + }, + "game/halo": { + default: "game/halo.png", + low: "game/halo_mip.png", + }, + "game/jetpackSmoke": { + default: "game/jetpackSmoke.png", + low: "game/jetpackSmoke_mip.png", + }, + "game/ocean": { + default: "game/ocean.png", + low: "game/ocean_mip.png", + }, + "game/shadow": { + default: "game/shadow.png", + low: "game/shadow_mip.png", + }, + "game/spraySplash": { + default: "game/spraySplash.png", + low: "game/spraySplash_mip.png", + }, + }, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: { + "game/board_new_york": { + default: "game/board_new_york.fbx", + }, + "game/board_new_york01": { + default: "game/board_new_york01.fbx", + }, + "game/environment": { + default: "game/environment.fbx", + }, + "game/model_avatar_catch": { + default: "game/model_avatar_catch.fbx", + }, + "game/model_avatar_movement": { + default: "game/model_avatar_movement.fbx", + }, + "game/model_avatar_powerup_jet_pack": { + default: "game/model_avatar_powerup_jet_pack.fbx", + }, + "game/model_avatar_powerup_pogostick": { + default: "game/model_avatar_powerup_pogostick.fbx", + }, + "game/model_avatar_start": { + default: "game/model_avatar_start.fbx", + }, + "game/model_dog_catch": { + default: "game/model_dog_catch.fbx", + }, + "game/model_dog_movement": { + default: "game/model_dog_movement.fbx", + }, + "game/model_guard_catch": { + default: "game/model_guard_catch.fbx", + }, + "game/model_guard_movement": { + default: "game/model_guard_movement.fbx", + }, + "game/props": { + default: "game/props.fbx", + }, + "game/trains": { + default: "game/trains.fbx", + }, + }, + }, + idle: { + image: { + "idle/environment_tex": { + default: "idle/environment_tex.png", + low: "idle/environment_tex_mip.png", + }, + "idle/jake_tex": { + default: "idle/jake_tex.png", + low: "idle/jake_tex_mip.png", + }, + "idle/props_tex": { + default: "idle/props_tex.png", + low: "idle/props_tex_mip.png", + }, + "idle/train_start": { + default: "idle/train_start.png", + low: "idle/train_start_mip.png", + }, + "idle/trains_tex": { + default: "idle/trains_tex.png", + low: "idle/trains_tex_mip.png", + }, + }, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: { + "idle/environment_idle": { + default: "idle/environment_idle.fbx", + }, + "idle/model_avatar_idle_paint": { + default: "idle/model_avatar_idle_paint.fbx", + }, + "idle/props_start": { + default: "idle/props_start.fbx", + }, + "idle/trains_start": { + default: "idle/trains_start.fbx", + }, + }, + }, + placeholder: { + image: { + "placeholder/box_base": { + default: "placeholder/box_base.png", + }, + "placeholder/icon_00_brody": { + default: "placeholder/icon_00_brody.png", + }, + "placeholder/icon_01_tagbot": { + default: "placeholder/icon_01_tagbot.png", + }, + "placeholder/icon_02_tasha": { + default: "placeholder/icon_02_tasha.png", + }, + "placeholder/icon_03_ninja": { + default: "placeholder/icon_03_ninja.png", + }, + "placeholder/icon_04_lucy": { + default: "placeholder/icon_04_lucy.png", + }, + "placeholder/icon_05_king": { + default: "placeholder/icon_05_king.png", + }, + "placeholder/icon_06_frizzy": { + default: "placeholder/icon_06_frizzy.png", + }, + "placeholder/icon_07_yutani": { + default: "placeholder/icon_07_yutani.png", + }, + "placeholder/icon_08_spike": { + default: "placeholder/icon_08_spike.png", + }, + "placeholder/icon_09_fresh": { + default: "placeholder/icon_09_fresh.png", + }, + "placeholder/icon_10_jake": { + default: "placeholder/icon_10_jake.png", + }, + "placeholder/icon_11_tricky": { + default: "placeholder/icon_11_tricky.png", + }, + "placeholder/icon_friend": { + default: "placeholder/icon_friend.png", + }, + "placeholder/jake": { + default: "placeholder/jake.png", + }, + }, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: {}, + }, + preload: { + image: { + "preload/splash": { + tags: { + quant: !0, + }, + default: "preload/splash.png", + low: "preload/splash_mip.png", + }, + }, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: {}, + }, + ui: { + image: { + "ui/ui": { + tags: { + fix: !0, + tps: !0, + manifest: !0, + }, + default: "ui/ui.json", + }, + }, + fonts: {}, + audio: {}, + model: {}, + json: {}, + animate: {}, + misc: {}, + }, + }; + }, + 186: function (t, e) { + t.exports = + "\nattribute vec3 position;\nattribute vec3 normals;\nattribute vec2 uvs;\n\nuniform mat4 projection;\nuniform mat4 view;\n\nvarying vec3 vNormal;\nvarying vec3 vPosition;\nvarying vec4 vScreenPosition;\n\n#ifdef INSTANCING\n\tattribute vec3 i_mat1;\n\tattribute vec3 i_mat2;\n\tattribute vec3 i_mat3;\n\tattribute vec3 i_mat4;\n attribute vec3 i_norm1;\n\tattribute vec3 i_norm2;\n\tattribute vec3 i_norm3;\n#else\n uniform mat4 model;\n uniform mat3 normal;\n#endif\n\n#if defined( MAP ) || defined( EMISSIVE_MAP ) || defined( OCCLUSION_MAP )\n\tvarying vec2 vUv;\n uniform vec4 uMapFrame;\n#endif\n\n#ifdef FOG\n uniform float uFogDistance;\n uniform float uFogDensity;\n varying float vFogFactor;\n uniform vec3 uFogColor;\n varying vec3 vFogColor;\n#endif\n\n\n#ifdef BEND\n\nuniform vec2 uBend;\n\nvec4 bend(vec4 pos) {\n float dx = uBend.x;\n float dy = uBend.y;\n float z_sqr = pos.w * pos.w;\n\tpos.x = pos.x + z_sqr * dx;\n\tpos.y = pos.y + z_sqr * dy;\n\treturn pos;\n}\n\n#endif\n\n#HOOK_VERTEX_START\n\nvoid main() {\n\t\n#if defined( MAP ) || defined( EMISSIVE_MAP )\n\tvUv = (uvs * uMapFrame.zw ) + uMapFrame.xy;\n#endif\n\n#ifdef INSTANCING\n mat4 model = mat4(vec4(i_mat1, 0.), \n vec4(i_mat2, 0.), \n vec4(i_mat3, 0.), \n vec4(i_mat4, 1.));\n\n mat3 normal = mat3(i_norm1, \n i_norm2, \n i_norm3);\n#endif\n\n vec3 transformed = position;\n\n vNormal = normalize( normal * normals);\n \n #HOOK_VERTEX_MAIN\n\n\tvec4 worldPosition = model * vec4(transformed, 1.0);\n\tvec4 worldViewPosition = projection * view * worldPosition;\n // clamp z position?\n // worldViewPosition.z = mod(worldViewPosition.z, 3000.0);\n vPosition = worldPosition.xyz;\n vScreenPosition = worldViewPosition;\n \n \n#ifdef BEND\n gl_Position = bend(worldViewPosition);\n#else\n gl_Position = worldViewPosition;\n#endif \n\n#ifdef FOG\n float depth = worldViewPosition.z - uFogDistance;\n vFogFactor = clamp(depth / uFogDistance, 0.0, 1.0);\n vFogColor = uFogColor;\n#endif\n\n\t#HOOK_VERTEX_END\n\n}"; + }, + 187: function (t, e) { + t.exports = + "uniform vec3 uGlobalAmbient;\nuniform float uOpacity;\nuniform vec3 uAmbiantLight;\n\nvarying vec3 vNormal;\nvarying vec3 vPosition;\nvarying vec4 vScreenPosition;\n\n#ifdef COLOR\nuniform vec3 uColor;\n#endif\n\n#ifdef OCCLUSION_MAP\nuniform sampler2D uOcclusionMap;\n#endif\n\n#if defined( MAP ) || defined( EMISSIVE_MAP ) || defined( OCCLUSION_MAP )\nvarying vec2 vUv;\n#endif\n\n#ifdef MAP\nuniform sampler2D uMap;\n#endif\n\n#ifdef FOG\nvarying float vFogFactor;\nvarying vec3 vFogColor;\n#endif\n\n#HOOK_LIGHT_UNIFROMS\n\nvec3 gammaCorrectInput(vec3 color) {\n return pow(color, vec3(2.2));\n}\n\nfloat gammaCorrectInput(float color) {\n return pow(color, 2.2);\n}\n\nvec4 gammaCorrectInput(vec4 color) {\n return vec4(pow(color.rgb, vec3(2.2)), color.a);\n}\n\nvec3 gammaCorrectOutput(vec3 color) {\n color += vec3(0.0000001);\n return pow(color, vec3(0.45));\n}\n\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n vec4 rgba = texture2D(tex, uv);\n rgba.rgb = gammaCorrectInput(rgba.rgb);\n return rgba;\n}\n\n\n#HOOK_FRAGMENT_START\n\nvoid main() {\n vec4 finalColor = vec4(0.0, 0.0, 0.0, uOpacity);\n vec4 diffuseColor = vec4(1.0, 1.0, 1.0, uOpacity);\n\n#ifdef COLOR\n diffuseColor.rgb *= uColor;\n#endif\n\n#ifdef MAP\n // diffuseColor *= texture2DSRGB(uMap, vUv);\n diffuseColor *= texture2D(uMap, vUv);\n#endif\n\n #HOOK_LIGHT;\n\n finalColor.rgb = diffuseColor.rgb;\n finalColor *= diffuseColor.a;\n \n #HOOK_FRAGMENT_MAIN\n\n \n gl_FragColor = vec4(finalColor.rgb * finalColor.a, finalColor.a);\n \n #HOOK_FRAGMENT_END\n\n#ifdef FOG\n // FORCING FOG COLOR TO PREVENT A BUG WHERE SOME RED FOG OBJECT WHERE SHOWING UP \n gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(0.388, 0.698, 1.0), vFogFactor);\n#endif\n\n // gl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n\n\n#ifdef RAILS\n if (vPosition.y < 1.2) return;\n\n float reflWidth = 1.5;\n float railDist = 7.0;\n float laneWidth = 20.0;\n vec3 reflColor = vec3(1.0, 1.0, 1.0);\n float reflFactor = abs(vScreenPosition.z - 100.0) * 0.02;\n if (reflFactor < 0.0) reflFactor = 0.0;\n if (reflFactor > 1.0) return;\n\n\n // Middle lane\n if (vPosition.x > -4.0 && vPosition.x < -2.5) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n } else if (vPosition.x > 2.5 && vPosition.x < 4.0) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n }\n\n // Left lane\n if (vPosition.x > -4.0 - laneWidth && vPosition.x < -2.5 - laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n } else if (vPosition.x > 2.5 - laneWidth && vPosition.x < 4.0 - laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n }\n\n // Right lane\n if (vPosition.x > -4.0 + laneWidth && vPosition.x < -2.5 + laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n } else if (vPosition.x > 2.5 + laneWidth && vPosition.x < 4.0 + laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n }\n#endif\n}\n"; + }, + 188: function (t, e) { + t.exports = + "attribute vec3 position;\nattribute vec3 normals;\nattribute vec2 uvs;\n\nuniform mat4 projection;\nuniform mat4 view;\nuniform mat4 model;\nuniform mat3 normal;\n\n#if defined( MAP ) || defined( EMISSIVE_MAP ) || defined( OCCLUSION_MAP )\nvarying vec2 vUv;\nuniform vec4 uMapFrame;\n#endif\n\n\n#HOOK_VERTEX_START\n\nvoid main() {\n\t\n#if defined( MAP ) || defined( EMISSIVE_MAP )\n\t//vUv = uvs;\n\tvUv = (uvs * uMapFrame.zw ) + uMapFrame.xy;\n#endif\n \n #HOOK_VERTEX_MAIN\n\t\n vec4 worldPosition = model * vec4(position, 1.0);\n\tvec4 worldViewPosition = projection * view * worldPosition;\n\tgl_Position = worldViewPosition;\n\t\n #HOOK_VERTEX_END\n}"; + }, + 189: function (t, e) { + t.exports = + "#ifdef COLOR\nuniform vec3 uColor;\n#endif\n\n#if defined( MAP ) || defined( EMISSIVE_MAP ) || defined( OCCLUSION_MAP )\nvarying vec2 vUv;\n#endif\n\n#ifdef MAP\nuniform sampler2D uMap;\n#endif\n\nvoid main() {\n gl_FragColor = texture2D(uMap, vUv);\n gl_FragColor.rgb *= uColor.rgb;\n}\n"; + }, + 190: function (t, e) { + t.exports = + "\nattribute vec3 position;\nattribute vec3 normals;\nattribute vec2 uvs;\n\nuniform mat4 projection;\nuniform mat4 view;\n\n\n\nvarying vec3 vNormal;\nvarying vec3 vPosition;\nvarying vec4 vScreenPosition;\n\nuniform float uTime;\nvarying float vTime;\n\n\n#ifdef INSTANCING\n\tattribute vec3 i_mat1;\n\tattribute vec3 i_mat2;\n\tattribute vec3 i_mat3;\n\tattribute vec3 i_mat4;\n\n attribute vec3 i_norm1;\n\tattribute vec3 i_norm2;\n\tattribute vec3 i_norm3;\n\n#else\n uniform mat4 model;\n uniform mat3 normal;\n#endif\n\n#if defined( MAP ) || defined( EMISSIVE_MAP ) || defined( OCCLUSION_MAP )\n\tvarying vec2 vUv;\n uniform vec4 uMapFrame;\n#endif\n\n#define FOG\n\n#ifdef FOG\n uniform float uFogDistance;\n uniform float uFogDensity;\n varying float vFogFactor;\n uniform vec3 uFogColor;\n varying vec3 vFogColor;\n#endif\n\n\n\n#HOOK_VERTEX_START\n\nuniform vec2 uBend;\nvec4 bend(vec4 pos) {\n // hardcoding values just for testing\n // float dx = -0.001;\n // float dy = -0.0003;\n float dx = uBend.x;\n float dy = uBend.y;\n float z_sqr = pos.w * pos.w;\n\tpos.x = pos.x + z_sqr * dx;\n\tpos.y = pos.y + z_sqr * dy;\n\treturn pos;\n}\n\nvec4 wave(vec4 pos, float t) {\n pos.y += sin(pos.z*0.05) * cos(pos.x*0.05) * 5.0 + 5.0;\n\treturn pos;\n}\n\nvoid main() {\n #if defined( MAP ) || defined( EMISSIVE_MAP )\n\t//vUv = uvs;\n\tvUv = (uvs * uMapFrame.zw ) + uMapFrame.xy;\n \n\t#endif\n\n #ifdef INSTANCING\n\n mat4 model = mat4(vec4(i_mat1, 0.), \n vec4(i_mat2, 0.), \n vec4(i_mat3, 0.), \n vec4(i_mat4, 1.));\n\n mat3 normal = mat3(i_norm1, \n i_norm2, \n i_norm3);\n\n #endif\n\n vec3 transformed = position;\n\n vNormal = normalize( normal * normals);\n \n #HOOK_VERTEX_MAIN\n\n\tvec4 worldPosition = model * vec4(transformed, 1.0);\n\tvec4 worldViewPosition = projection * view * worldPosition;\n vPosition = worldPosition.xyz;\n vTime = worldPosition.z * 0.1;\n \n // clamp z position?\n // worldViewPosition.z = mod(worldViewPosition.z, 3000.0);\n\n vScreenPosition = worldViewPosition;\n\n\t// gl_Position = worldViewPosition;\n worldViewPosition = wave(worldViewPosition, uTime);\n gl_Position = bend(worldViewPosition);\n\n\t#ifdef FOG\n // float depth = worldViewPosition.z - uFogDistance;\n // vFogFactor = exp(-depth * uFogDensity);\n // vFogFactor = clamp(vFogFactor, 0.0, 1.0);\n // vFogColor = uFogColor;\n float depth = worldViewPosition.z - uFogDistance;\n vFogFactor = clamp(depth / uFogDistance, 0.0, 1.0);\n vFogColor = uFogColor;\n #endif\n\n\t#HOOK_VERTEX_END\n\n}"; + }, + 191: function (t, e) { + t.exports = + "\n\nuniform vec3 uGlobalAmbient;\n\nuniform float uOpacity;\n\nuniform vec3 uAmbiantLight;\n\nvarying vec3 vNormal;\nvarying vec3 vPosition;\nvarying vec4 vScreenPosition;\n\n#ifdef COLOR\nuniform vec3 uColor;\n#endif\n\n#ifdef OCCLUSION_MAP\nuniform sampler2D uOcclusionMap;\n#endif\n\n#if defined( MAP ) || defined( EMISSIVE_MAP ) || defined( OCCLUSION_MAP )\nvarying vec2 vUv;\n#endif\n\n#ifdef MAP\nuniform sampler2D uMap;\n#endif\n\n// #define FOG\n\n#ifdef FOG\n varying float vFogFactor;\n varying vec3 vFogColor;\n#endif\n\nvarying float vTime;\n\n#HOOK_LIGHT_UNIFROMS\n\n/** \n gamma stuff!\n*/\nvec3 gammaCorrectInput(vec3 color) {\n return pow(color, vec3(2.2));\n}\n\nfloat gammaCorrectInput(float color) {\n return pow(color, 2.2);\n}\n\nvec4 gammaCorrectInput(vec4 color) {\n return vec4(pow(color.rgb, vec3(2.2)), color.a);\n}\n\nvec3 gammaCorrectOutput(vec3 color) {\n color += vec3(0.0000001);\n return pow(color, vec3(0.45));\n}\n\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n vec4 rgba = texture2D(tex, uv);\n rgba.rgb = gammaCorrectInput(rgba.rgb);\n return rgba;\n}\n\n\nfloat diffuse(vec3 N, vec3 L) {\n\treturn max(dot(N, L), 0.0);\n}\n\nvec3 diffuseLighting(vec3 N, vec3 L, vec3 C) {\n\treturn diffuse(N, L) * C;\n}\n\n/// speculer lights...\nuniform vec3 uSpecular;\n\n#ifdef SHININESS_FLOAT\n uniform float uShininess;\n#endif\n\n#ifdef SHININESS_MAP\n uniform sampler2D uShininessMap;\n#endif\n\n// we write the specular to here..\nfloat dShininess;\n\n// glosyness..\nvoid getShininess() {\n dShininess = 1.0;\n #ifdef SHININESS_FLOAT\n dShininess *= uShininess;\n #endif\n #ifdef SHININESS_MAP\n dShininess *= texture2D(uShininessMap, vUv).r;\n #endif\n \n //IOS hack.. \n dShininess += 0.0000001;\n}\n\n/// emissive lights...\n#ifdef EMISSIVE_FLOAT\n uniform float uEmissive;\n#endif\n\n#ifdef EMISSIVE_COLOR\n uniform vec3 uEmissiveColor;\n#endif\n\n#ifdef EMISSIVE_MAP\n uniform sampler2D uEmissiveMap;\n#endif\n\n// we write the specular to here..\nvec3 dEmissive;\n\n// glosyness..\nvec3 getEmission() {\n vec3 emission = vec3(1.);\n\n #ifdef EMISSIVE_FLOAT\n emission *= uEmissive;\n #endif\n\n #ifdef EMISSIVE_COLOR\n emission *= uEmissiveColor;\n #endif\n \n #ifdef EMISSIVE_MAP\n emission *= texture2D(uEmissiveMap, vUv).rgb;\n #endif\n \n return emission;\n}\n\nvec3 specularLighting(vec3 N, vec3 L, vec3 V) \n{\n vec3 R = reflect(-L, N); // Reflected light vector\n\n float specular = pow(max(dot(R, -V), 0.0), dShininess + 0.0001);\n \n return specular * uSpecular;\n}\n\n#define saturate(a) clamp( a, 0.0, 1.0 )\n\n\n#HOOK_FRAGMENT_START\n\nvoid main() {\n vec4 finalColor = vec4(0.0,0.0,0.0, uOpacity);\n vec4 diffuseColor = vec4(1., 1., 1., uOpacity);\n\n\n #ifdef COLOR\n diffuseColor.rgb *= uColor;\n #endif\n\n #ifdef MAP\n diffuseColor *= texture2DSRGB(uMap, vec2(vUv.x, vUv.y + sin(vScreenPosition.z* 0.0005) * 0.5));\n \n #endif\n\n #ifdef OCCLUSION_MAP\n diffuseColor *= texture2DSRGB(uOcclusionMap, vUv);\n #endif\n\n vec3 lighting = vec3(0.0);\n vec3 specular = vec3(0.0);\n\n lighting += uGlobalAmbient;\n\n vec3 N = normalize(vNormal);\n vec3 V = normalize(-vPosition);\n \n // some temp variables \n vec3 L;\n vec3 lightDirection;\n float attenuation;\n float dist;\n\n getShininess();\n // do lighting..\n #HOOK_LIGHT;\n\n finalColor.rgb = diffuseColor.rgb * lighting;// + uEmissive;\n\n /// finalColor.rgb += specular;//mix(finalColor.rgb, specularLighting, )\n finalColor *= diffuseColor.a;\n \n #HOOK_FRAGMENT_MAIN\n\n \n #ifdef EMISSIVE\n\n finalColor.rgb += getEmission();\n\n #endif\n\n gl_FragColor = vec4(finalColor.rgb * finalColor.a, finalColor.a);\n \n #HOOK_FRAGMENT_END\n\n #ifdef FOG\n // gl_FragColor.rgb = mix(vec3(0.388, 0.698, 1.0), gl_FragColor.rgb, vFogFactor);\n // gl_FragColor.rgb = mix(gl_FragColor.rgb, vFogColor, vFogFactor);\n // FORCING FOG COLOR TO PREVENT A BUG WHERE SOME RED FOG OBJECT WHERE SHOWING UP \n gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(0.388, 0.698, 1.0), vFogFactor);\n #endif\n\n gl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n\n\n #ifdef RAILS\n if (vPosition.y < 1.2) return;\n\n float reflWidth = 1.5;\n float railDist = 7.0;\n float laneWidth = 20.0;\n vec3 reflColor = vec3(1.0, 1.0, 1.0);\n float reflFactor = abs(vScreenPosition.z - 100.0) * 0.02;\n if (reflFactor < 0.0) reflFactor = 0.0;\n if (reflFactor > 1.0) return;\n\n\n // Middle lane\n if (vPosition.x > -4.0 && vPosition.x < -2.5) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n } else if (vPosition.x > 2.5 && vPosition.x < 4.0) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n }\n\n // Left lane\n if (vPosition.x > -4.0 - laneWidth && vPosition.x < -2.5 - laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n } else if (vPosition.x > 2.5 - laneWidth && vPosition.x < 4.0 - laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n }\n\n // Right lane\n if (vPosition.x > -4.0 + laneWidth && vPosition.x < -2.5 + laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n } else if (vPosition.x > 2.5 + laneWidth && vPosition.x < 4.0 + laneWidth) {\n gl_FragColor.rgb = mix(reflColor, gl_FragColor.rgb, reflFactor);\n }\n #endif\n}\n"; + }, + 199: function (t, e, i) { + i(200), (t.exports = i(487)); + }, + 430: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + default_train_tops_2: i(431), + "route_section_default_s-s": i(432), + "default_b-s-b": i(433), + "default_s-b-s-b": i(434), + "default_s-s-s-s": i(435), + default_tunnel_notrain: i(436), + default_choice: i(437), + default_train_tops_1: i(438), + }); + }, + 431: function (t) { + t.exports = { + name: "route_section_default_train_tops_2", + start: [], + mid: ["routeChunk_default_train_tops_2"], + end: [], + }; + }, + 432: function (t) { + t.exports = { + name: "route_section_default_s-s", + start: [], + mid: ["routeChunk_default_s-s"], + end: [], + }; + }, + 433: function (t) { + t.exports = { + name: "route_section_default_b-s-b", + start: [], + mid: ["routeChunk_default_b-s-b"], + end: [], + }; + }, + 434: function (t) { + t.exports = { + name: "route_section_default_s-b-s-b", + start: [], + mid: ["routeChunk_default_s-b-s-b"], + end: [], + }; + }, + 435: function (t) { + t.exports = { + name: "route_section_default_s-s-s-s", + start: [], + mid: ["routeChunk_default_s-s-s-s"], + end: [], + }; + }, + 436: function (t) { + t.exports = { + name: "route_section_default_tunnel_notrain", + start: [], + mid: ["routeChunk_default_tunnel_notrain"], + end: [], + }; + }, + 437: function (t) { + t.exports = { + name: "route_section_default_choice", + start: [], + mid: ["routeChunk_default_choice"], + end: [], + }; + }, + 438: function (t) { + t.exports = { + name: "route_section_default_train_tops_1", + start: [], + mid: ["routeChunk_default_train_tops_1"], + end: [], + }; + }, + 439: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + default_short_train_tops_moving_multiple: i(440), + default_short_2_tracks: i(441), + default_short_train_tops_moving: i(442), + default_ramp_2: i(443), + default_short_train_tops_moving_combined: i(444), + default_short_1_track: i(445), + }); + }, + 440: function (t) { + t.exports = { + name: "route_section_default_short_train_tops_moving_multiple", + start: [], + mid: ["routeChunk_short_train_tops_moving_multiple"], + end: [], + }; + }, + 441: function (t) { + t.exports = { + name: "route_section_default_short_2_tracks", + start: ["routeChunk_short_2_tracks_start"], + mid: ["routeChunk_short_2_tracks_mid_var_1", "routeChunk_short_2_tracks_mid_var_2"], + end: ["routeChunk_short_2_tracks_end"], + }; + }, + 442: function (t) { + t.exports = { + name: "route_section_default_short_train_tops_moving", + start: [], + mid: ["routeChunk_short_train_tops_moving"], + end: [], + }; + }, + 443: function (t) { + t.exports = { + name: "route_section_default_ramp_2", + start: [], + mid: ["routeChunk_ramp_2"], + end: [], + }; + }, + 444: function (t) { + t.exports = { + name: "route_section_default_short_train_tops_moving_combined", + start: [], + mid: ["routeChunk_short_train_tops_moving_combined"], + end: [], + }; + }, + 445: function (t) { + t.exports = { + name: "route_section_default_short_1_track", + start: [], + mid: ["routeChunk_short_1_track"], + end: [], + }; + }, + 446: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + default_train_tops_moving: i(447), + default_epic: i(448), + default_train_tops_moving_multiple: i(449), + default_2_tracks: i(450), + default_ramp_1: i(451), + default_tunnel: i(452), + default_train_tops_moving_combined: i(453), + default_1_track: i(454), + }); + }, + 447: function (t) { + t.exports = { + name: "route_section_default_train_tops_moving", + start: [], + mid: ["routeChunk_default_train_tops_moving"], + end: [], + }; + }, + 448: function (t) { + t.exports = { + name: "route_section_default_epic", + start: [], + mid: ["routeChunk_default_epic"], + end: [], + }; + }, + 449: function (t) { + t.exports = { + name: "route_section_default_train_tops_moving_multiple", + start: [], + mid: ["routeChunk_default_train_tops_moving_multiple"], + end: [], + }; + }, + 450: function (t) { + t.exports = { + name: "route_section_default_2_tracks", + start: ["routeChunk_default_2_tracks_start"], + mid: ["routeChunk_default_2_tracks_mid_var_1", "routeChunk_default_2_tracks_mid_var_2"], + end: ["routeChunk_default_2_tracks_end"], + }; + }, + 451: function (t) { + t.exports = { + name: "route_section_default_ramp_1", + start: [], + mid: ["routeChunk_default_ramp_1"], + end: [], + }; + }, + 452: function (t) { + t.exports = { + name: "route_section_default_tunnel", + start: [], + mid: ["routeChunk_default_tunnel"], + end: [], + }; + }, + 453: function (t) { + t.exports = { + name: "route_section_default_train_tops_moving_combined", + start: [], + mid: ["routeChunk_default_train_tops_moving_combined"], + end: [], + }; + }, + 454: function (t) { + t.exports = { + name: "route_section_default_1_track", + start: [], + mid: ["routeChunk_short_1_track"], + end: [], + ignored_start: ["routeChunk_default_1_track_start"], + ignored_mid: ["routeChunk_default_1_track_mid_var_1", "routeChunk_default_1_track_mid_var_2"], + ignored_end: ["routeChunk_default_1_track_end"], + }; + }, + 455: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + default_4_units_3_tracks_choice: i(456), + "default_4_units_3_tracks_s-b-s-b": i(457), + "default_4_units_3_tracks_b-s-b": i(458), + default_epic_various: i(459), + "default_4_units_3_tracks_s-s": i(460), + "default_4_units_3_tracks_s-s-s-s": i(461), + }); + }, + 456: function (t) { + t.exports = { + name: "route_section_default_4_units_3_tracks_choice", + start: [], + mid: ["routeChunk_4_units_3_tracks_choice"], + end: [], + }; + }, + 457: function (t) { + t.exports = { + name: "route_section_default_4_units_3_tracks_s-b-s-b", + start: [], + mid: ["routeChunk_4_units_3_tracks_s-b-s-b"], + end: [], + }; + }, + 458: function (t) { + t.exports = { + name: "route_section_default_4_units_3_tracks_b-s-b", + start: [], + mid: ["routeChunk_4_units_3_tracks_b-s-b"], + end: [], + }; + }, + 459: function (t) { + t.exports = { + name: "route_section_default_epic_various", + start: [], + mid: ["routeChunk_epic_various"], + end: [], + }; + }, + 460: function (t) { + t.exports = { + name: "route_section_default_4_units_3_tracks_s-s", + start: [], + mid: ["routeChunk_4_units_3_tracks_s-s"], + end: [], + }; + }, + 461: function (t) { + t.exports = { + name: "route_section_default_4_units_3_tracks_s-s-s-s", + start: [], + mid: ["routeChunk_4_units_3_tracks_s-s-s-s"], + end: [], + }; + }, + 462: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + default_start: i(463), + default_fallback: i(464), + default_start_short: i(465), + default_jetpack_landing: i(466), + default_no_gameplay: i(467), + }); + }, + 463: function (t) { + t.exports = { + name: "routeSection_default_start", + start: [], + mid: ["routeChunk_default_start1", "routeChunk_default_start2"], + end: [], + }; + }, + 464: function (t) { + t.exports = { + name: "routeSection_default_fallback", + start: [], + mid: ["routeChunk_default_fallback"], + end: [], + }; + }, + 465: function (t) { + t.exports = { + name: "routeSection_default_start_short", + start: [], + mid: ["routeChunk_default_fallback"], + end: [], + }; + }, + 466: function (t) { + t.exports = { + name: "routeSection_default_jetpack_landing", + start: [], + mid: ["routeChunk_default_jetpack_landing"], + end: [], + }; + }, + 467: function (t) { + t.exports = { + name: "routeSection_default_no_gameplay", + start: [], + mid: ["routeChunk_default_no_gameplay_1", "routeChunk_default_no_gameplay_2", "routeChunk_default_no_gameplay_epic"], + end: [], + }; + }, + 468: function (t, e, i) { + "use strict"; + i.r(e), + (e["default"] = { + tutorial: i(469), + default_bonus_short: i(470), + default_bonus_long: i(471), + default_pogostick_start: i(472), + }); + }, + 469: function (t) { + t.exports = { + name: "routeSection_tutorial", + start: [], + mid: ["routeChunk_tutorial"], + end: [], + }; + }, + 470: function (t) { + t.exports = { + name: "routeSection_default_bonus_short", + start: [], + mid: ["routeChunk_bonus_short"], + end: [], + }; + }, + 471: function (t) { + t.exports = { + name: "routeSection_default_bonus_long", + start: [], + mid: ["routeChunk_bonus_long"], + end: [], + }; + }, + 472: function (t) { + t.exports = { + name: "routeSection_default_pogostick_start", + start: [], + mid: ["routeChunk_default_pogostick_start"], + end: [], + }; + }, + 475: function (t) { + t.exports = { + file: "model_avatar_idle_paint.fbx", + texture: "jake_tex", + fps: 24, + clips: { + idle: [1, 220], + }, + }; + }, + 476: function (t) { + t.exports = { + file: "model_avatar_powerup_jet_pack.fbx", + texture: "jake_tex", + fps: 25, + clips: { + Jetpack_forward: [1, 12], + Jetpack_BarrelRoll_right: [20, 30], + Jetpack_BarrelRoll_left: [40, 50], + Jetpack_changeLane_left: [60, 70], + Jetpack_changeLane_right: [80, 90], + Jetpack_forward_2: [100, 123], + Double_Headstart: [130, 172], + Triple_Headstart: [202, 242], + }, + }; + }, + 477: function (t) { + t.exports = { + file: "model_avatar_movement.fbx", + texture: "jake_tex", + fps: 24, + clips: { + run: [-53, -6], + dodgeLeft: [200, 212], + dodgeRight: [230, 242], + jump: [87, 103], + hangtime: [106, 118], + landing: [120, 124], + roll: [151, 164], + death_bounce: [400, 416], + hold_magnet: [280, 281], + h_run: [514, 538, 1], + h_jump: [551, 553], + h_hangtime: [556, 568], + h_landing: [570, 578], + h_roll: [581, 594], + introRun: [-50, -21], + stumbleCornerLeft: [311, 330], + stumbleCornerRight: [291, 311], + stumble: [335, 355], + stumbleSideRight: [362, 372], + stumbleSideLeft: [382, 392], + death_upper: [420, 428], + death_lower: [440, 452], + death_movingTrain: [460, 495], + h_left: [610, 623], + h_right: [640, 653], + superRun: [740, 760], + h_Grind1: [670, 684], + h_Grind2: [700, 720], + h_skate_on: [770, 781], + h_Grind1_land: [661, 670], + h_Grind2_land: [691, 700], + h_jump2_kickflip_flip: [800, 820], + h_jump3_bs360grab: [830, 850], + h_jump4_360_flip: [866, 889], + h_Grind3: [923, 943], + h_Grind3_land: [904, 923], + run2: [960, 970], + run3: [1e3, 1010], + h_jump5_Impossible_flip: [1400, 1423], + h_jump6_nollie: [1430, 1457], + h_jump7_heelflip_flip: [1500, 1524], + h_jump8_pop_shuvit_flip: [1560, 1583], + h_jump9_fs360grab: [1600, 1628], + h_jump10_heel360_flip: [1650, 1674], + h_jump11_fs_salto: [1690, 1718], + jump_salto: [1300, 1324], + run4_long: [1070, 1180], + jump2: [60, 78], + hangtime2: [65, 78], + landing2: [78, 84], + jump3: [1720, 1738], + hangtime3: [1725, 1738], + landing3: [1739, 1744], + stumble_low: [1200, 1215], + IconJump: [63, 63.1], + IconRoll: [154, 154.1], + _run_06_old: [1, 11], + DoubleJump_Jump: [1750, 1754], + DoubleJump_Hangtime_01_star: [1756, 1778], + DoubleJump_Hangtime_02_BackFlip: [1780, 1802], + DoubleJump_Hangtime_03_360: [1805, 1831], + run_HighScore_main: [1950, 1989], + run_HighScore_hatadjust: [2005, 2044], + run_HighScore_xianHat: [2060, 2099], + run_HighScore_Yutani: [2110, 2149], + run_HighScore_Ninja: [2160, 2199], + run_HighScore_Tagbot: [2210, 2249], + run_HighScore_VeniceMain: [2260, 2299], + run_HighScore_HolidayMainandOutfit1: [2310, 2349], + run_HighScore_MexicoOutfit1: [2360, 2399], + }, + }; + }, + 478: function (t) { + t.exports = { + file: "model_avatar_catch.fbx", + texture: "jake_tex", + fps: 25, + offset: 0, + clips: { + Avatar_Catch_Shoulder: [300, 400], + Avatar_Catch_Right_Pickup: [150, 248], + Avatar_Catch_Left_Pickup: [2, 100], + }, + }; + }, + 479: function (t) { + t.exports = { + file: "model_avatar_powerup_pogostick.fbx", + texture: "jake_tex", + fps: 25, + offset: 0, + clips: { + pogostick_SpinMove: [1, 50], + pogostick_kicking: [60, 76], + pogostick_Hangtime_kick: [82, 102], + pogostick_ChangeLane_right: [120, 126], + pogostick_ChangeLane_left: [132, 138], + pogostick_Hangtime_flying: [150, 183], + pogostick_Hangtime_front_flip1: [200, 233], + }, + }; + }, + 480: function (t) { + t.exports = { + file: "model_avatar_start.fbx", + texture: "jake_tex", + fps: 24, + clips: { + start_run: [7, 53], + }, + }; + }, + 481: function (t) { + t.exports = { + file: "model_guard_movement.fbx", + texture: "enemies", + fps: 25, + offset: 51, + clips: { + Guard_run: [1, 13], + Guard_grap_after: [24, 48], + Guard_jump: [52, 75], + Guard_hangtime: [59, 65], + Guard_landing: [71, 77], + Guard_dodgeRight: [80, 93], + Guard_dodgeLeft: [100, 113], + Guard_whistle: [125, 149], + Guard_death_movingTrain: [173, 210], + Guard_playIntro: [-50, -21], + Guard_roll: [220, 228], + }, + }; + }, + 482: function (t) { + t.exports = { + file: "model_guard_catch.fbx", + texture: "enemies", + fps: 25, + offset: 0, + clips: { + Guard_Catch_Shoulder: [300, 400], + Guard_Catch_Right_Pickup: [150, 248], + Guard_Catch_Left_Pickup: [2, 100], + }, + }; + }, + 483: function (t) { + t.exports = { + file: "model_dog_movement.fbx", + texture: "enemies", + fps: 25, + offset: 50, + clips: { + Dog_run: [1, 14], + "Dog_Fast Run": [20, 40], + "Dog_Run offset": [-6, 6], + Dog_jump: [52, 75], + Dog_hangtime: [37, 46], + Dog_landing: [46, 51], + Dog_dodgeRight: [80, 93], + Dog_dodgeLeft: [100, 113], + Dog_whistle: [125, 149], + Dog_death_movingTrain: [173, 210], + Dog_playIntro: [-50, -21], + Dog_Bite_After: [220, 228], + }, + }; + }, + 484: function (t) { + t.exports = { + file: "model_dog_catch.fbx", + texture: "enemies", + fps: 25, + offset: 0, + clips: { + Dog_Catch_Shoulder: [300, 400], + Dog_Catch_Right: [150, 248], + Dog_Catch_Left: [2, 100], + }, + }; + }, + 487: function (t, e, i) { + "use strict"; + i.r(e); + var c = i(0), + a = i(133), + r = i(21), + h = i(184), + d = i(14), + n = i(12), + l = i.n(n), + o = i(185), + s = i.n(o), + u = i(126), + p = i.n(u), + m = i(13), + f = i.n(m), + g = (function () { + function Platform() {} + return ( + (Platform.getUrlParams = function () { + var t = location.search, + e = {}, + i = t.slice(t.indexOf("?") + 1).split("&"), + n = Array.isArray(i), + o = 0; + for (i = n ? i : i[Symbol.iterator](); ; ) { + var s; + if (n) { + if (o >= i.length) break; + s = i[o++]; + } else { + if ((o = i.next()).done) break; + s = o.value; + } + var a = s.split("="), + r = a[0], + h = a[1]; + void 0 !== h && (("true" !== h && "false" !== h) || (h = "true" === h), (e[r] = "string" == typeof h && h.match(/^[-.0-9]+$/) ? parseFloat(h) : h)); + } + return e; + }), + (Platform.getUrlParam = function (t, e) { + var i = this.getUrlParams(); + return void 0 !== i[t] ? i[t] : e; + }), + Platform + ); + })(), + B = new ((function () { + function Config() { + (this.fps = 60), + (this.frameSkip = 0), + (this.ticker = !1), + (this.smoothDelta = !0), + (this.deltaCap = 5), + (this.frameByFrame = 0), + (this.culling = !0), + (this.fixedPhysicsSteps = 0), + (this.vertp = ""), + (this.fragp = ""), + (this.maxViewportScale = 1.75), + (this.debug = !1), + (this.monitor = !1), + (this.blocks = !1), + (this.models = !0), + (this.routeSection = ""), + (this.timeScale = 1), + (this.forceTube = !1), + (this.optm = !1), + (this.god = !1), + (this.freejump = !1), + (this.shortcuts = !1), + (this.laneWidth = 20), + (this.blockSize = 90), + (this.visibleMaxDistance = 1e3), + (this.visibleMinDistance = -500), + (this.fog = !0), + (this.bend = !0), + (this.bendX = -65e-5), + (this.bendY = -3e-4), + (this.fillers = !0), + (this.ground = !0), + (this.speed = 0), + (this.speedProgr = 0.25), + (this.speedProgrInterval = 500), + (this.maxSpeed = 5), + (this.gravity = 0.055), + (this.cameraFov = 68), + (this.cameraPosX = 0), + (this.cameraPosY = 33.8), + (this.cameraPosZ = 33), + (this.cameraModX = 0.75), + (this.cameraRotX = -0.375), + (this.cameraRotY = 0), + (this.cameraRotZ = 0), + (this.mobile = !1), + (this.env = "191_new_york"), + (this.volume = 0.5), + (this.theme = !0), + (this.fastplay = !1), + (this.autoload = !1), + (this.workers = 1), + (this.section = "title"), + (this.tutorial = !1), + (this.intro = !0), + (this.loadAll = !0), + this.override(window.GAME_CONFIG), + this.override(g.getUrlParams()); + } + return ( + (Config.prototype.override = function (t) { + if (t) for (var e in this) void 0 !== t[e] && ((this[e] = t[e]), "debug" === e && ((this.monitor = this.debug), (this.shortcuts = this.debug))); + }), + Config + ); + })())(), + y = i(3), + v = i.n(y), + _ = i(92), + b = i.n(_), + w = i(93), + k = i.n(w), + x = i(45), + C = i.n(x), + S = i(37), + z = i.n(S), + T = i(186), + P = i.n(T), + M = i(187), + E = i.n(M); + var O = (function (n) { + var t, e; + + function PhongBendMaterial(t, e) { + void 0 === t && (t = {}), void 0 === e && (e = {}); + var i = [e.fog ? "#define FOG" : "", e.rails ? "#define RAILS" : "", "#define BEND"]; + return (t.uniforms = PhongBendMaterial.unformGroup()), n.call(this, t, P.a, E.a, i, e.rails ? "phong-rails" : "phong") || this; + } + return ( + (e = n), + ((t = PhongBendMaterial).prototype = Object.create(e.prototype)), + ((t.prototype.constructor = t).__proto__ = e), + (PhongBendMaterial.unformGroup = function () { + return ( + this._uniformGroup || + (this._uniformGroup = new c.UniformGroup( + { + uTime: 0, + uBend: new Float32Array([0, 0]), + uFogDensity: 0.008, + uFogDistance: 450, + uFogColor: new Float32Array([0.388, 0.698, 1]), + }, + !1 + )), + this._uniformGroup.uniforms + ); + }), + PhongBendMaterial + ); + })(z.a); + var R = (function (i) { + var t, e; + + function PhongBendRailsMaterial(t, e) { + return ( + void 0 === t && (t = {}), + void 0 === e && (e = {}), + Object.assign(e, { + rails: !0, + }), + i.call(this, t, e) || this + ); + } + return (e = i), ((t = PhongBendRailsMaterial).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), PhongBendRailsMaterial; + })(O); + var I = (function (r) { + var t, e; + + function RampGeometry(t, e, i) { + var n; + void 0 === t && (t = 1), void 0 === e && (e = 1), void 0 === i && (i = 1), (n = r.call(this) || this); + var o = new Float32Array([ + -0.5, + -0.5, + 0.5, + 0.5, + -0.5, + 0.5, + 0.5, + 0.5, + 0.5, + -0.5, + 0.5, + 0.5, + -0.5, + -0.5, + -0.5, + -0.5, + 0.5, + -0.5, + 0.5, + 0.5, + -0.5, + 0.5, + -0.5, + -0.5, + -0.5, + 0.5, + -0.5, + -0.5, + -0.5, + 0.5, + 0.5, + -0.5, + 0.5, + 0.5, + 0.5, + -0.5, + -0.5, + -0.5, + -0.5, + 0.5, + -0.5, + -0.5, + 0.5, + -0.5, + 0.5, + -0.5, + -0.5, + 0.5, + 0.5, + -0.5, + -0.5, + 0.5, + 0.5, + -0.5, + 0.5, + 0.5, + 0.5, + 0.5, + -0.5, + 0.5, + -0.5, + -0.5, + -0.5, + -0.5, + -0.5, + 0.5, + -0.5, + 0.5, + 0.5, + -0.5, + 0.5, + -0.5, + ]), + s = new Float32Array([ + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + -1, + 0, + 0, + ]), + a = new Uint16Array([0, 0, 0, 0, 0, 0, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 19, 0, 0, 0, 20, 21, 23, 0, 0, 0]); + return n.addAttribute("position", o, 3), n.addAttribute("normals", s, 3), n.addIndex(a), n; + } + return (e = r), ((t = RampGeometry).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), RampGeometry; + })(c.Geometry), + L = (function () { + function Random() {} + return ( + (Random.color = function () { + return Math.floor(16777215 * Math.random()); + }), + (Random.range = function (t, e, i) { + void 0 === i && (i = !1); + var n = t + (e - t) * Math.random(); + return i ? Math.floor(n) : n; + }), + (Random.pick = function () { + for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; + return e[Math.floor(Math.random() * e.length)]; + }), + (Random.item = function (t) { + if (Array.isArray(t)) return t[Math.floor(Math.random() * t.length)]; + var e = Object.keys(t); + return t[e[Math.floor(Math.random() * e.length)]]; + }), + Random + ); + })(), + j = i(188), + F = i.n(j), + A = i(189), + D = i.n(A); + var G = (function (i) { + var t, e; + + function ParticleMaterial(t, e) { + void 0 === t && (t = {}), void 0 === e && (e = {}); + return (t.uniforms = {}), i.call(this, t, F.a, D.a, [], "particle") || this; + } + return (e = i), ((t = ParticleMaterial).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), ParticleMaterial; + })(z.a), + N = O, + X = null, + Y = { + "environment.fbx": "environment_tex", + "environment_start.fbx": "environment_tex", + "environment_idle.fbx": "environment_tex", + "trains.fbx": "trains_tex", + "trains_start.fbx": "trains_tex", + "model_dog.fbx": "enemies", + "model_guard.fbx": "enemies", + "board_new_york.fbx": "board_new_york_tex", + "avatar_jake.fbx": "jake_tex", + "model_avatar-movement.fbx": "jake_tex", + "props.fbx": "props_tex", + "props_start.fbx": "props_tex", + }, + H = (function () { + function Model() {} + return ( + (Model.box = function (t, e, i) { + void 0 === e && (e = L.color()), void 0 === i && (i = 1); + var n = new c.State(); + (n.blend = i < 1), (n.depthTest = !0); + var o = new b.a(t.width, t.height, t.depth, 1, 1, 64), + s = new N( + { + color: e, + opacity: i, + }, + { + fog: B.fog, + } + ); + return new v.a({ + geometry: o, + material: s, + state: n, + }); + }), + (Model.ramp = function (t, e, i) { + void 0 === e && (e = L.color()), void 0 === i && (i = 1); + var n = new c.State(); + (n.blend = i < 1), (n.depthTest = !0); + var o = new I(1, 1, 1), + s = new N( + { + color: e, + opacity: i, + }, + { + fog: B.fog, + } + ); + return new v.a({ + geometry: o, + material: s, + state: n, + }); + }), + (Model.plane = function (t, e, i, n, o) { + void 0 === i && (i = 1); + var s = new c.State(); + (s.blend = i < 1), (s.depthTest = !0), o && (s.blendMode = o); + var a = this.getTexture(n); + if (!a) throw new Error("Map not found for " + mapFile); + var r = new k.a(t, e, 4, 4), + h = new N( + { + map: a, + opacity: i, + }, + { + fog: B.fog, + } + ); + return new v.a({ + geometry: r, + material: h, + state: s, + }); + }), + (Model.particle = function (t, e, i, n, o) { + void 0 === i && (i = 1); + var s = new c.State(); + (s.blend = !0), (s.depthTest = !1), o && (s.blendMode = o); + var a = this.getTexture(n); + if (!a) throw new Error("Map not found for " + mapFile); + var r = new k.a(t, e, 4, 4), + h = new G({ + map: a, + opacity: i, + }); + return new v.a({ + geometry: r, + material: h, + state: s, + }); + }), + (Model.particleMesh = function (t, e, i, n) { + void 0 === i && (i = 1), void 0 === n && (n = 0); + var o = new c.State(); + (o.blend = !0), (o.depthTest = !1), (o.blendMode = n); + var s = this.getTexture(e); + if (!s) throw new Error("Map not found for " + mapFile); + var a = new G({ + map: s, + opacity: i, + }), + r = this.getEntity(t).view3d.geometry; + return new v.a({ + geometry: r, + material: a, + state: o, + }); + }), + (Model.tint = function (t, e) { + t.view3d && t.view3d.material && (t.view3d.material.color = e); + for (var i = this.entityChildren(t), n = i.length; n--; ) { + var o = i[n]; + this.tint(o, e); + } + }), + (Model.normalizeName = function (t) { + return t.replace("\0", " "); + }), + (Model.cloneEntity = function (t) { + if (!t) throw new Error("Invalid entity to clone"); + var e = t.view3d.geometry, + i = t.view3d.material, + n = t.view3d.state; + return new v.a({ + geometry: e, + material: i, + state: n, + }); + }), + (Model.entityChildren = function (t) { + return (t.container && t.container.children ? t.container.children : []).slice(0); + }), + (Model.findFileName = function (t) { + var e = t.split("/"); + for (var i in e) if (e[i].endsWith(".fbx")) return e[i]; + return ""; + }), + (Model.findScene = function (t) { + if (!t) throw new Error("Scene name is empty"); + if (c.sceneCache[t]) return c.sceneCache[t]; + for (var e in c.sceneCache) if (e.endsWith(t)) return c.sceneCache[e]; + return null; + }), + (Model.getScene = function (t) { + var e = this.findScene(t); + if (!e) throw new Error("Scene not found: " + t); + return e; + }), + (Model.hasScene = function (t) { + for (var e in c.sceneCache) if (e.match(t)) return !0; + return !1; + }), + (Model.whichScene = function () { + for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; + for (var n in e) if (this.findEntity(e[n])) return e[n]; + return null; + }), + (Model.forEach = function (t, e) { + e(t); + for (var i = this.entityChildren(t), n = i.length; n--; ) this.forEach(i[n], e); + }), + (Model.applyTexture = function (t, e, i) { + if ((void 0 === i && (i = !0), t.view3d && t.view3d.material)) + if (i) { + var n = !!t.__path.match("track"), + o = this.getTexture(e), + s = new N( + { + map: o, + }, + { + fog: B.fog, + rails: n, + } + ); + t.view3d.material = s; + } else t.view3d.material.map = this.getTexture(e); + for (var a = this.entityChildren(t), r = a.length; r--; ) this.applyTexture(a[r], e, i); + }), + (Model.getTexture = function (t) { + var e = c.utils.TextureCache[t]; + if (!e) { + var i = c.utils.TextureCache; + for (var n in i) + if (n.match(t)) { + e = i[n]; + break; + } + } + if (!e) throw new Error("Texture not found for " + t); + return "ocean" === t && (e.baseTexture.wrapMode = c.WRAP_MODES.REPEAT), e; + }), + (Model.entityMap = function (t, e, i, n) { + void 0 === t && (t = null), void 0 === e && (e = {}), void 0 === i && (i = ""), void 0 === n && (n = 4), t && t.pixiTree && (t = t.pixiTree); + var o = t ? this.entityChildren(t) : c.sceneCache, + s = o === c.sceneCache; + for (var a in ((n -= 1), o)) { + var r = o[a].pixiTree || o[a]; + if (s) { + var h = a.match(/\?v=/) ? a.replace(/(\?v\=.+)/, "") : a; + (o[h] = o[a]), (a = h); + } + var d = this.normalizeName(t && r.__name ? r.__name : a), + l = i + "/" + d; + (r.__path = l), (r.__file = this.findFileName(l)), (r.__name = d), (r.__scene = r.__file ? this.findScene(r.__file) : null), (e[l] = r), n && this.entityMap(r, e, l, n); + } + return e; + }), + (Model.cachedEntityMap = function () { + return X || (X = this.refreshCache()), X; + }), + (Model.refreshCache = function () { + X = this.entityMap(null, {}, "", 5); + }), + (Model.findEntity = function (t, e, i) { + if ((void 0 === i && (i = 4), !t)) throw new Error("A path must be provided"); + var n = e ? this.entityMap(e, {}, "", i) : this.cachedEntityMap(); + if (n[t]) return n[t]; + for (var o in n) if (o.endsWith(t) && !o.match("_old")) return n[o]; + return null; + }), + (Model.getEntity = function (t, e) { + if ((void 0 === e && (e = ""), !t)) throw new Error("A path must be provided"); + var i = this.findEntity(t); + if (!i) throw new Error("Entity not found: " + t); + if (e) this.applyTexture(i, e); + else { + var n = Y[i.__file]; + if (!n) throw new Error("Texture not found for entity: " + i.name + " file: " + i.__file); + n && this.applyTexture(i, n); + } + return i; + }), + (Model.getEntityClone = function (t, e, i, n) { + if ((void 0 === e && (e = ""), void 0 === i && (i = !0), void 0 === n && (n = null), !i)) { + var o = n || C.a, + s = "string" == typeof t ? this.getEntity(t, e) : t, + a = s.view3d.geometry, + r = new o({ + map: s.view3d.material.map, + }), + h = s.view3d.state; + return new v.a({ + geometry: a, + material: r, + state: h, + }); + } + var d = this.getEntity(t, e); + if (!d) throw new Error("Entity not found by name: " + t); + return B.culling || (d.view3d.state.culling = !1), this.cloneEntity(d); + }), + (Model.getEntityCloneBlend = function (t, e, i, n) { + void 0 === e && (e = ""), void 0 === i && (i = 1), void 0 === n && (n = 0); + var o = this.getEntity(t, e), + s = o.view3d.geometry, + a = o.view3d.material; + a.opacity = i; + var r = o.view3d.state; + return ( + (r.blend = i < 1), + (r.depthTest = !0), + n && (r.blendMode = n), + new v.a({ + geometry: s, + material: a, + state: r, + }) + ); + }), + (Model.getEntityCloneColor = function (t, e, i) { + void 0 === i && (i = !0); + var n = i ? N : C.a, + o = this.getEntity(t); + if (!o) throw new Error("Entity not found: " + t); + var s = o.view3d.geometry, + a = new n( + { + color: e, + }, + { + fog: B.fog, + } + ), + r = o.view3d.state; + return new v.a({ + geometry: s, + material: a, + state: r, + }); + }), + (Model.getEntityCloneOpaque = function (t, e, i) { + void 0 === e && (e = ""), void 0 === i && (i = !0); + var n = i ? N : C.a, + o = "string" == typeof t ? this.getEntity(t) : t; + e || (e = Y[o.__file]); + var s = this.getTexture(e); + if (!o) throw new Error("Entity not found: " + t); + var a = o.view3d.geometry, + r = new n( + { + map: s, + }, + { + fog: B.fog, + } + ), + h = o.view3d.state; + return new v.a({ + geometry: a, + material: r, + state: h, + }); + }), + Model + ); + })(), + U = i(4), + V = (function () { + function Math2() {} + return ( + (Math2.oldLerp = function (t, e, i, n, o) { + return void 0 === n && (n = 0), void 0 === o && (o = 0), n && e - n <= t && t <= e + n ? e : t * (1 - i) + e * i; + }), + (Math2.lerp = function (t, e, i, n) { + return void 0 === n && (n = 0), n && e - n <= t && t <= e + n ? e : t + (e - t) * (i < 0 ? 0 : 1 < i ? 1 : i); + }), + (Math2.lerpCap = function (t, e, i, n, o) { + if ((void 0 === n && (n = 0), void 0 === o && (o = 0), n && e - n <= t && t <= e + n)) return e; + var s = (i < 0 ? 0 : 1 < i ? 1 : i) * (e - t); + return o && (s = this.clamp(s, -o, o)), t + s; + }), + (Math2.clamp = function (t, e, i) { + return void 0 === e && (e = 0), void 0 === i && (i = 1), t < e ? e : i < t ? i : t; + }), + (Math2.sign = function (t, e) { + return void 0 === e && (e = !1), e ? (t < 0 ? -1 : 0 < t ? 1 : 0) : t < 0 ? -1 : 1; + }), + (Math2.ease = function (t, e, i, n) { + var o = -(t - e) * i; + return n ? this.clamp(o, -n, n) : o; + }), + (Math2.lerpVec3 = function (t, e, i, n, o) { + return void 0 === o && (o = 0), (t.x = this.lerp(e.x, i.x, n, o)), (t.y = this.lerp(e.y, i.y, n, o)), (t.z = this.lerp(e.z, i.z, n, o)), t; + }), + (Math2.smoothStep = function (t, e, i) { + return (i = this.clamp((i - t) / (e - t), 0, 1)) * i * (3 - 2 * i); + }), + (Math2.smoothDamp = function (t, e, i, n, o, s) { + var a = 2 / (n = Math.max(1e-4, n)), + r = a * s, + h = 1 / (1 + r + 0.479999989271164 * r * r + 0.234999999403954 * r * r * r), + d = t - e, + l = e, + c = o * n, + u = this.clamp(d, -c, c), + p = (i + a * u) * s; + i = (i - a * p) * h; + var m = (e = t - u) + (u + p) * h; + return 0 < l - t == l < m && (i = ((m = l) - l) / s), m; + }), + Math2 + ); + })(); + + function _defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + (V.PI_HALF = 0.5 * Math.PI), (V.PI_QUARTER = 0.25 * Math.PI), (V.PI_DOUBLE = 2 * Math.PI), (V.DEG_TO_RAD = 0.0174533); + var q = (function () { + function Vector3(t, e, i) { + void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), (this.vec = U.vec3.create()), (this.x = t), (this.y = e), (this.z = i); + } + var t, + e, + i, + n = Vector3.prototype; + return ( + (n.reset = function (t, e, i) { + void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), (this.vec[0] = t), (this.vec[1] = e), (this.vec[2] = i); + }), + (n.copy = function (t) { + (this.vec[0] = t.vec[0]), (this.vec[1] = t.vec[1]), (this.vec[2] = t.vec[2]); + }), + (n.clone = function () { + return new Vector3(this.vec[0], this.vec[1], this.vec[2]); + }), + (n.distance = function (t) { + return U.vec3.distance(this.vec, t.vec); + }), + (n.magnitude = function () { + return U.vec3.length(this.vec); + }), + (n.add = function (t) { + U.vec3.add(this.vec, this.vec, t.vec); + }), + (n.subtract = function (t) { + U.vec3.add(this.vec, this.vec, t.vec); + }), + (n.lerp = function (t, e, i, n) { + void 0 === i && (i = 0), void 0 === n && (n = 0), -1 !== e ? V.lerpVec3(this, this, t, e, i, n) : this.copy(t); + }), + (t = Vector3), + (e = [ + { + key: "x", + get: function () { + return this.vec[0]; + }, + set: function (t) { + this.vec[0] = t; + }, + }, + { + key: "y", + get: function () { + return this.vec[1]; + }, + set: function (t) { + this.vec[1] = t; + }, + }, + { + key: "z", + get: function () { + return this.vec[2]; + }, + set: function (t) { + this.vec[2] = t; + }, + }, + ]) && _defineProperties(t.prototype, e), + i && _defineProperties(t, i), + Vector3 + ); + })(); + + function CameraSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function CameraSystem_createClass(t, e, i) { + return e && CameraSystem_defineProperties(t.prototype, e), i && CameraSystem_defineProperties(t, i), t; + } + + function _assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + + function CameraSystem_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + (q.UP = new q(0, 1, 0)), (q.RIGHT = new q(1, 0, 0)), (q.FORWARD = new q(0, 0, -1)), (q.DOWN = new q(0, -1, 0)), (q.LEFT = new q(-1, 0, 0)), (q.BACK = new q(0, 0, 1)), (q.ZERO = new q(0, 0, 0)), (q.ONE = new q(1, 1, 1)); + var W = (function (n) { + function CameraSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).game = t.game), + i.game.onIdle.add(_assertThisInitialized(i)), + i.game.onRun.add(_assertThisInitialized(i)), + i.game.onEnterTunnel.add(_assertThisInitialized(i)), + i.game.onExitTunnel.add(_assertThisInitialized(i)), + i + ); + } + CameraSystem_inheritsLoose(CameraSystem, n); + var t = CameraSystem.prototype; + return ( + (t.idle = function () { + this.rig && this.rig.reset(), (this.running = !1), (this._shakePower = 0), (this.tunnel = !1); + }), + (t.run = function () { + this.rig && this.rig.resetLevel("_tunnel"), (this.running = !0), (this.tunnel = !1); + }), + (t.enterTunnel = function () { + this.tunnel = !0; + }), + (t.exitTunnel = function () { + this.tunnel = !1; + }), + (t.setup = function () { + this.rig || + ((this.rig = new Z(this.game.view3d.camera)), + this.game.addChild(this.rig), + (this.game.view3d.camera.x = 0), + (this.game.view3d.camera.y = 0), + (this.game.view3d.camera.z = 0), + (this.game.view3d.camera.rx = 0), + (this.game.view3d.camera.ry = 0), + (this.game.view3d.camera.rz = 0), + (this.game.view3d.camera.camera.near = 3), + (this.game.view3d.camera.camera.far = 1e3)); + }), + (t.update = function (t) { + this.rig || this.setup(), this.running ? this.updateRunning(t) : this.updateIdle(t); + }), + (t.updateIdle = function (t) { + this._controlled || + ((this.rig.idleX = -21.94232), + (this.rig.idleY = -13.06444), + (this.rig.idleZ = 11.95625), + (this.rig.idleRotX = 16.37991 * V.DEG_TO_RAD), + (this.rig.idleRotY = 59.09998 * V.DEG_TO_RAD), + (this.rig.mainX = 0), + (this.rig.mainY = B.cameraPosY), + (this.rig.mainZ = B.cameraPosZ), + (this.rig.mainRotX = B.cameraRotX), + (this.rig.mainRotY = 0), + (this.rig.fov = 71.99513)); + }), + (t.updateRunning = function (t) { + if ((this._animating && this.updateAnimation(t), !this._controlled)) { + (this.rig.idleX = 0), (this.rig.idleY = 0), (this.rig.idleZ = 0), (this.rig.idleRotX = 0), (this.rig.idleRotY = 0); + var e = this.game.stats.x * B.cameraModX; + this.rig.mainX = V.lerp(this.rig.mainX, e, 0.3 * t); + var i = this.game.hero.player.cameraY + B.cameraPosY; + B.cameraRotX; + (this.rig.mainY = V.lerp(this.rig.mainY, i, 0.3 * t)), + (this.rig.mainZ = this.game.stats.z + B.cameraPosZ), + (this.rig.mainRotX = V.lerp(this.rig.mainRotX, B.cameraRotX, 0.1 * t)), + (this.rig.mainRotY = 0), + (this.rig.fov = B.cameraFov); + } + this.updateTunnel(t), this.updateShake(t); + }), + (t.updateTunnel = function (t) { + var e = this.tunnel, + i = this.rig._tunnel; + if (e || 0 !== i.rx || 0 !== this.rig.y) { + var n = -4.621953 * V.DEG_TO_RAD, + o = e ? B.cameraPosY - 18.30177 : 0, + s = e ? B.cameraRotX - n : 0, + a = 0.25 * this.game.stats.speed + 0.5; + (i.y = V.smoothDamp(i.y, -o, 0, 0.2, 1.2 * a, t)), (i.rx = V.smoothDamp(i.rx, -s, 0, 0.05, 0.1 * a, t)); + } + }), + (t.updateShake = function (t) { + var e = this.rig; + (this._shakePower || 0 !== e.x || 0 !== this.rig.y) && + ((e.y = L.range(-this._shakePower, this._shakePower)), (e.x = L.range(-this._shakePower, this._shakePower)), (this._shakePower -= 0.5 * t), this._shakePower < 0 && (this._shakePower = 0)); + }), + (t.takeControl = function () { + return (this._controlled = !0), this.rig; + }), + (t.releaseControl = function () { + this._controlled = !1; + }), + (t.shake = function (t) { + this._shakePower = t; + }), + (t.animate = function (t, e, i, n) { + for (var o in ((this._controlled = !0), (this._animating = !0), this._animStart || (this._animStart = {}), this._animEnd || (this._animEnd = {}), (this._animCurve = i), (this._animTime = e), t)) + (this._animStart[o] = this.rig[o]), (this._animEnd[o] = t[o]); + }), + (t.updateAnimation = function (t) {}), + (t.animateEnd = function () { + (this._controlled = !1), (this._animating = !1); + }), + (t.rigProps = function (t) { + return Object.assign( + { + idleX: this.rig.idleX, + idleY: this.rig.idleY, + idleZ: this.rig.idleZ, + idleRotX: this.rig.idleRotX, + idleRotY: this.rig.idleRotY, + mainX: this.rig.mainX, + mainY: this.rig.mainY, + mainZ: this.rig.mainZ, + mainRotX: this.rig.mainRotX, + mainRotY: this.rig.mainRotY, + }, + t + ); + }), + CameraSystem_createClass(CameraSystem, [ + { + key: "profile", + get: function () { + return ( + this._profile || (this._profile = {}), + this.rig && + ((this._profile.idleX = this.rig.idleX), + (this._profile.idleY = this.rig.idleY), + (this._profile.idleZ = this.rig.idleZ), + (this._profile.idleRotX = this.rig.idleRotX), + (this._profile.idleRotY = this.rig.idleRotY), + (this._profile.mainX = this.rig.mainX), + (this._profile.mainY = this.rig.mainY), + (this._profile.mainZ = this.rig.mainZ), + (this._profile.mainRotX = this.rig.mainRotX), + (this._profile.mainRotY = this.rig.mainRotY), + (this._profile.fov = this.game.view3d.camera.camera.fov), + (this._profile.near = this.game.view3d.camera.camera.near), + (this._profile.far = this.game.view3d.camera.camera.far)), + this._profile + ); + }, + }, + ]), + CameraSystem + ); + })(f.a), + Z = (function (s) { + function CameraRig(t) { + var e; + void 0 === t && (t = null), ((e = s.call(this) || this).camera = t), (e.levels = ["_idle", "_idleRotY", "_idleRotX", "_main", "_mainRotY", "_mainRotX", "_tunnel"]); + var i = _assertThisInitialized(e); + for (var n in e.levels) { + var o = new v.a(); + (e[e.levels[n]] = o), i.addChild(o), (i = o), t && o.addChild(t); + } + return e; + } + CameraSystem_inheritsLoose(CameraRig, s); + var t = CameraRig.prototype; + return ( + (t.reset = function () { + for (var t in this.levels) this.resetLevel(this.levels[t]); + }), + (t.resetLevel = function (t) { + var e = this[t]; + (e.x = 0), (e.y = 0), (e.z = 0), (e.rx = 0), (e.ry = 0); + }), + (t.resetIdle = function () { + this.resetLevel("_idle"); + }), + CameraSystem_createClass(CameraRig, [ + { + key: "fov", + get: function () { + return this.camera.camera.fov; + }, + set: function (t) { + this.camera.camera.fov = t; + }, + }, + { + key: "idleX", + get: function () { + return this._idle.x; + }, + set: function (t) { + this._idle.x = t; + }, + }, + { + key: "idleY", + get: function () { + return this._idle.y; + }, + set: function (t) { + this._idle.y = t; + }, + }, + { + key: "idleZ", + get: function () { + return this._idle.z; + }, + set: function (t) { + this._idle.z = t; + }, + }, + { + key: "idleRotX", + get: function () { + return this._idleRotX.rx; + }, + set: function (t) { + this._idleRotX.rx = t; + }, + }, + { + key: "idleRotY", + get: function () { + return this._idleRotY.ry; + }, + set: function (t) { + this._idleRotY.ry = t; + }, + }, + { + key: "mainX", + get: function () { + return this._main.x; + }, + set: function (t) { + this._main.x = t; + }, + }, + { + key: "mainY", + get: function () { + return this._main.y; + }, + set: function (t) { + this._main.y = t; + }, + }, + { + key: "mainZ", + get: function () { + return this._main.z; + }, + set: function (t) { + this._main.z = t; + }, + }, + { + key: "mainRotX", + get: function () { + return this._mainRotX.rx; + }, + set: function (t) { + this._mainRotX.rx = t; + }, + }, + { + key: "mainRotY", + get: function () { + return this._mainRotY.ry; + }, + set: function (t) { + this._mainRotY.ry = t; + }, + }, + ]), + CameraRig + ); + })(v.a); + var K = i(5), + J = i.n(K); + + function Box_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Q = (function () { + function Box(t, e, i) { + void 0 === t && (t = 1), void 0 === e && (e = 1), void 0 === i && (i = 1), (this.size = new q(t, e, i)), (this.center = new q(0, 0, 0)); + } + var t, + e, + i, + n = Box.prototype; + return ( + (n.copy = function (t) { + this.size.copy(t.size), this.center.copy(t.center); + }), + (n.resize = function (t, e, i) { + void 0 === t && (t = 1), void 0 === e && (e = 1), void 0 === i && (i = 1), (this.size.x = t), (this.size.y = e), (this.size.z = i); + }), + (n.reposition = function (t, e, i) { + void 0 === t && (t = 1), void 0 === e && (e = 1), void 0 === i && (i = 1), (this.center.x = t), (this.center.y = e), (this.center.z = i); + }), + (n.hitTest = function (t, e) { + void 0 === e && (e = null); + var i = this.left <= t.right && this.right >= t.left, + n = this.bottom <= t.top && this.top >= t.bottom, + o = this.front <= t.back && this.back >= t.front; + if (!(i && n && o)) return null; + var s = e; + s || (this._intersection || (this._intersection = new Box()), (s = this._intersection)); + var a = Math.max(this.left, t.left), + r = Math.min(this.right, t.right), + h = Math.max(this.bottom, t.bottom), + d = Math.min(this.top, t.top), + l = Math.max(this.front, t.front), + c = Math.min(this.back, t.back); + return (s.size.x = r - a), (s.size.y = d - h), (s.size.z = c - l), (s.center.x = a + 0.5 * s.size.x), (s.center.y = h + 0.5 * s.size.y), (s.center.z = c - 0.5 * s.size.z), s; + }), + (t = Box), + (e = [ + { + key: "x", + get: function () { + return this.center.x; + }, + set: function (t) { + this.center.x = t; + }, + }, + { + key: "y", + get: function () { + return this.center.y; + }, + set: function (t) { + this.center.y = t; + }, + }, + { + key: "z", + get: function () { + return this.center.z; + }, + set: function (t) { + this.center.z = t; + }, + }, + { + key: "left", + get: function () { + return this.center.x - 0.5 * this.size.x; + }, + set: function (t) { + this.center.x = t + 0.5 * this.size.x; + }, + }, + { + key: "right", + get: function () { + return this.center.x + 0.5 * this.size.x; + }, + set: function (t) { + this.center.x = t - 0.5 * this.size.x; + }, + }, + { + key: "top", + get: function () { + return this.center.y + 0.5 * this.size.y; + }, + set: function (t) { + this.center.y = t - 0.5 * this.size.y; + }, + }, + { + key: "bottom", + get: function () { + return this.center.y - 0.5 * this.size.y; + }, + set: function (t) { + this.center.y = t + 0.5 * this.size.y; + }, + }, + { + key: "front", + get: function () { + return this.center.z - 0.5 * this.size.z; + }, + set: function (t) { + this.center.z = t + 0.5 * this.size.z; + }, + }, + { + key: "back", + get: function () { + return 0.5 * this.size.z + this.center.z; + }, + set: function (t) { + this.center.z = t - 0.5 * this.size.z; + }, + }, + { + key: "width", + get: function () { + return this.size.x; + }, + set: function (t) { + this.size.x = t; + }, + }, + { + key: "height", + get: function () { + return this.size.y; + }, + set: function (t) { + this.size.y = t; + }, + }, + { + key: "depth", + get: function () { + return this.size.z; + }, + set: function (t) { + this.size.z = t; + }, + }, + ]) && Box_defineProperties(t.prototype, e), + i && Box_defineProperties(t, i), + Box + ); + })(), + $ = (function () { + function Collision() { + (this.act = null), (this.pas = null), (this.hit = new Q()), (this.flags = Collision.NONE); + } + return ( + (Collision.prototype.reset = function () { + (this.act = null), (this.pas = null), (this.flags = Collision.NONE); + }), + Collision + ); + })(); + ($.NONE = 0), ($.LEFT = 4), ($.TOP = 8), ($.RIGHT = 16), ($.BOTTOM = 32), ($.FRONT = 64), ($.BACK = 128), ($.INSIDE = 256), ($.SLOPE = 512); + var tt = i(8), + et = i.n(tt); + + function Body_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var it = (function (n) { + var t, e; + + function Body(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).trigger = e.trigger || !1), + (i.ghost = e.ghost || !1), + (i.deco = e.deco || !1), + (i.movable = e.movable || !1), + (i.box = new Q(1, 1, 1)), + (i.origin = new Q(1, 1, 1)), + (i.velocity = new q()), + (i.sensor = e.sensor ? new Q(0.2, 100, 1) : null), + (i.ground = 0), + (i.groundBefore = 0), + (i.groundChangeTolerance = 0), + (i.colliding = []), + (i.triggering = []), + B.blocks && !e.noView && i.drawView(), + (i.onCollisionEnter = new et.a("onCollisionEnter", 1)), + (i.onCollisionExit = new et.a("onCollisionExit", 1)), + (i.onTriggerEnter = new et.a("onTriggerEnter", 1)), + (i.onTriggerExit = new et.a("onTriggerExit", 1)), + (t.z = 9999), + i + ); + } + (e = n), ((t = Body).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Body.prototype; + return ( + (a.reset = function () { + (this.ground = 0), (this.colliding = []), (this.triggering = []), this.origin.copy(this.box), this.velocity.reset(), this.resetGroundChangeTolerance(); + }), + (a.drawView = function () { + this.view || + (this.entity.ramp ? (this.view = H.ramp(this.box, this.data.boxColor, 0.75)) : (this.view = H.box(this.box, this.data.boxColor, 0.75)), + this.entity.addChild(this.view), + this.sensor && ((this.sensorView = H.box(this.sensor, this.data.boxColor, 0.5)), (this.sensorView.y = -50), this.entity.addChild(this.sensorView))); + }), + (a.render = function () { + (this.entity.transform.position.x = this.box.center.x), + (this.entity.transform.position.y = this.box.center.y), + (this.entity.transform.position.z = this.box.center.z), + this.view && ((this.view.scale.x = this.box.size.x), (this.view.scale.y = this.box.size.y), (this.view.scale.z = this.box.size.z)), + !B.models && this.entity.model && (this.entity.model.active = !1); + }), + (a.matchEntityPosition = function () { + (this.entity.x = this.box.center.x), (this.entity.y = this.box.center.y), (this.entity.z = this.box.center.z); + }), + (a.move = function (t) { + (this.origin.center.x = this.box.center.x), + (this.origin.center.y = this.box.center.y), + (this.origin.center.z = this.box.center.z), + (this.origin.size.x = this.box.size.x), + (this.origin.size.y = this.box.size.y), + (this.origin.size.z = this.box.size.z), + (this.box.center.z += this.velocity.z * t), + (this.box.center.x += this.velocity.x * t), + (this.box.center.y += this.velocity.y * t), + this.box.bottom <= this.ground && !this.ghost && ((this.box.bottom = this.ground), (this.velocity.y = 0)), + this.sensor && ((this.sensor.x = this.box.x), (this.sensor.y = this.box.y - 50), (this.sensor.z = this.box.z)), + this.groundChangeTolerance && ((this.groundChangeTolerance -= t), this.groundChangeTolerance < 0 && (this.groundChangeTolerance = 0)); + }), + (a.onCollision = function (t) { + t.flags & $.RIGHT && ((this.velocity.x = 0), (this.lane -= 1)), + t.flags & $.LEFT && ((this.velocity.x = 0), (this.lane += 1)), + t.flags & $.FRONT && (this.velocity.z = 0), + t.flags & $.BOTTOM && (this.velocity.y = 0), + t.flags & $.TOP && (this.velocity.y = 0); + }), + (a.triggerEnter = function (t, e) { + this.onTriggerEnter.dispatch(t); + }), + (a.triggerExit = function (t, e) { + this.onTriggerExit.dispatch(t); + }), + (a.collisionEnter = function (t, e) { + (e.flags & $.LEFT || e.flags & $.RIGHT) && (this.velocity.x = 0), + (e.flags & $.TOP || e.flags & $.BOTTOM) && (this.velocity.y = 0), + (e.flags & $.FRONT || e.flags & $.BACK) && (this.velocity.z = 0), + this.onCollisionEnter.dispatch(e); + }), + (a.collisionExit = function (t, e) { + this.onCollisionExit.dispatch(e); + }), + (a.isColliding = function (t) { + return 0 <= this.colliding.indexOf(t); + }), + (a.isTrigering = function (t) { + return 0 <= this.colliding.indexOf(t); + }), + (a.resetGroundChangeTolerance = function () { + this.groundChangeTolerance = 0; + }), + (i = Body), + (o = [ + { + key: "ascending", + get: function () { + return this.origin.y < this.box.y; + }, + }, + { + key: "descending", + get: function () { + return this.origin.y > this.box.y; + }, + }, + { + key: "hangtime", + get: function () { + var t = -0.2 < this.velocity.y && this.velocity.y < 0.2; + return !this.landed && t; + }, + }, + { + key: "airborne", + get: function () { + return !this.landed; + }, + }, + { + key: "stable", + get: function () { + return this.origin.y === this.box.y; + }, + }, + { + key: "landed", + get: function () { + return this.bottom <= this.ground + 1 && !this.ghost; + }, + }, + { + key: "moving", + get: function () { + return 0 !== this.velocity.x || 0 !== this.velocity.y || 0 !== this.velocity.z; + }, + }, + { + key: "dodging", + get: function () { + var t = this.velocity.x; + return t < -0.25 ? -1 : 0.25 < t ? 1 : 0; + }, + }, + { + key: "canJump", + get: function () { + return !!this.groundChangeTolerance || this.landed; + }, + }, + { + key: "x", + get: function () { + return this.box.center.x; + }, + set: function (t) { + this.box.center.x = t; + }, + }, + { + key: "y", + get: function () { + return this.box.center.y; + }, + set: function (t) { + this.box.center.y = t; + }, + }, + { + key: "z", + get: function () { + return this.box.center.z; + }, + set: function (t) { + this.box.center.z = t; + }, + }, + { + key: "left", + get: function () { + return this.box.left; + }, + set: function (t) { + this.box.left = t; + }, + }, + { + key: "right", + get: function () { + return this.box.right; + }, + set: function (t) { + this.box.right = t; + }, + }, + { + key: "top", + get: function () { + return this.box.top; + }, + set: function (t) { + this.box.top = t; + }, + }, + { + key: "bottom", + get: function () { + return this.box.bottom; + }, + set: function (t) { + this.box.bottom = t; + }, + }, + { + key: "front", + get: function () { + return this.box.front; + }, + set: function (t) { + this.box.front = t; + }, + }, + { + key: "back", + get: function () { + return this.box.back; + }, + set: function (t) { + this.box.back = t; + }, + }, + { + key: "width", + get: function () { + return this.box.size.x; + }, + set: function (t) { + this.box.size.x = t; + }, + }, + { + key: "height", + get: function () { + return this.box.size.y; + }, + set: function (t) { + this.box.size.y = t; + }, + }, + { + key: "depth", + get: function () { + return this.box.size.z; + }, + set: function (t) { + this.box.size.z = t; + }, + }, + { + key: "center", + get: function () { + return this.box.center; + }, + }, + { + key: "size", + get: function () { + return this.box.size; + }, + }, + { + key: "phx", + get: function () { + return this.box.center.x; + }, + set: function (t) { + var e = t - this.box.center.x; + this.velocity.x = e; + }, + }, + { + key: "phy", + get: function () { + return this.center.y; + }, + set: function (t) { + var e = t - this.box.center.y; + this.velocity.y = e; + }, + }, + { + key: "phz", + get: function () { + return this.center.z; + }, + set: function (t) { + var e = t - this.box.center.z; + this.velocity.z = e; + }, + }, + ]) && Body_defineProperties(i.prototype, o), + s && Body_defineProperties(i, s), + Body + ); + })(J.a); + var nt = { + speed: 0, + }, + ot = (function (n) { + var t, e; + + function Movable(t, e) { + var i; + return void 0 === e && (e = {}), (e = Object.assign({}, nt, e)), ((i = n.call(this, t, e) || this).speed = e.speed), (i.lastDest = null), i; + } + (e = n), ((t = Movable).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Movable.prototype; + return ( + (i.reset = function () { + (this.speed = 0), (this.entity.body.movable = !1), this.entity.body.velocity.reset(); + }), + (i.update = function (t) { + if (!this.entity.game.hero.player.dead && this.speed && this.entity.active) { + null !== this.lastDest && ((this.entity.body.back = this.lastDest), (this.entity.body.origin.back = this.lastDest)); + var e = this.target - this.entity.game.stats.z, + i = this.origin + e * this.speed, + n = i - this.entity.body.back; + (this.entity.body.velocity.z = n), (this.lastDest = i); + } + }), + (i.run = function (t, e) { + (this.speed = t), (this.origin = this.entity.body.back), (this.target = e), (this.lastDest = this.origin), (this.entity.body.movable = 0 < this.speed); + }), + Movable + ); + })(J.a); + var st = (function (n) { + var t, e; + + function Collectible(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).entity.body.solid = !1), i; + } + (e = n), ((t = Collectible).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Collectible.prototype; + return ( + (i.reset = function () { + (this.entity.active = !0), (this.collected = !1); + }), + (i.collect = function (t) { + this.collected || + ((this.collected = !0), + (this.entity.active = !1), + this.entity.body && ((this.entity.body.movable = 0), this.entity.body.velocity.reset()), + this.entity.attractable && (this.entity.attractable.attracted = !1), + this.entity.onCollect && this.entity.onCollect(t)); + }), + Collectible + ); + })(J.a); + var at = (function (n) { + var t, e; + + function Attractable(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).startPosition = new q()), (i.endPosition = new q()), i.reset(), i; + } + (e = n), ((t = Attractable).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Attractable.prototype; + return ( + (i.reset = function () { + (this.speedX = L.range(0.001, 0.005)), (this.speedY = L.range(0.001, 0.005)), (this.speedZ = L.range(0.001, 0.005)), (this.attracted = !1), (this.entity.body.movable = !1); + }), + (i.update = function (t) { + if (this.entity.game && this.entity.active) { + var e = this.entity.game.hero; + if ((this.attracted && this.entity.game.state !== pn.RUNNING && ((this.attracted = !1), (this.entity.active = !1)), this.attracted && this.attractionUpdate(t), !this.attracted && this.entity.game.state === pn.RUNNING)) + if (e.magnet.isOn()) this.entity.body.center.distance(e.body.center) < 110 && this.attractionStart(); + else if (e.sneakers.isOn()) { + var i = Math.abs(this.entity.body.x - e.body.x), + n = e.body.y - this.entity.body.y, + o = Math.abs(e.body.z - this.entity.body.z); + e.body.airborne && i < 10 && 0 < n && n < 50 && o < 50 && this.attractionStart(); + } + } + }), + (i.attractionStart = function () { + (this.attracted = !0), this.entity.movable && this.entity.movable.reset(); + var t = this.entity.game.hero; + (this.entity.body.movable = !0), + (this.entity.body.ghost = !0), + (this.startPosition.x = this.entity.body.x), + (this.startPosition.y = this.entity.body.y), + (this.startPosition.z = this.entity.body.z), + (this.endPosition.x = t.body.x), + (this.endPosition.y = t.body.y), + (this.endPosition.z = t.body.z + t.body.velocity.z); + var e = this.startPosition.distance(this.endPosition); + (this.duration = 0.2 * e), this.duration < 4 && (this.duration = 4), (this.time = 0); + }), + (i.attractionUpdate = function (t) { + var e = this.entity.game.hero, + i = this.time / this.duration; + (this.endPosition.x = e.body.x), (this.endPosition.y = e.body.y), (this.endPosition.z = e.body.z + 2 * e.body.velocity.z), V.lerpVec3(this.entity.body, this.startPosition, this.endPosition, i * i), (this.time += t); + }), + (i.updateAttraction2 = function (t) { + var e = -hero.body.velocity.z, + i = (hero.body.velocity.y, this.entity.body.x - hero.body.x), + n = this.entity.body.y - hero.body.y, + o = this.entity.body.z - hero.body.z; + (this.entity.body.velocity.x = -i * this.speedX), + (this.entity.body.velocity.y = -n * this.speedY), + (this.entity.body.velocity.z = -o * this.speedZ), + (this.speedX = V.clamp(this.speedX + 0.003 * e, 0, 2)), + (this.speedY = V.clamp(this.speedY + 0.003 * e, 0, 2)), + (this.speedZ = V.clamp(this.speedZ + 0.003, 0, 2)), + this.entity.body.z >= hero.body.z - 1 && + ((this.entity.body.x = hero.body.x), + (this.entity.body.y = hero.body.y), + (this.entity.body.z = hero.body.z), + (this.entity.body.velocity.x = 0), + (this.entity.body.velocity.y = 0), + (this.entity.body.velocity.z = 0), + (this.attracted = !1), + (this.entity.body.movable = !1), + (this.entity.body.ghost = !1)); + }), + Attractable + ); + })(J.a); + var rt = { + rotationSpeed: 0.1, + }, + ht = 1, + dt = (function (n) { + var t, e; + + function Floating(t, e) { + var i; + return void 0 === e && (e = {}), (e = Object.assign({}, rt, e)), ((i = n.call(this, t, e) || this).startingRot = null), (i.index = null), i; + } + (e = n), ((t = Floating).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Floating.prototype; + return ( + (i.reset = function () { + (this.startingRot = null), (this.index = ht++); + }), + (i.update = function (t) { + this.entity.model && (null === this.startingRot && ((this.startingRot = 0.4 * ht++), (this.entity.model.ry = this.startingRot)), (this.entity.model.ry -= t * this.data.rotationSpeed)); + }), + Floating + ); + })(J.a); + var lt = (function (n) { + var t, e; + + function Shine(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).view = H.plane(15, 15, 0.9, "halo_mip.png", 1)), + (i.view.view3d.state.blend = !0), + (i.view.view3d.state.depthTest = !0), + (i.view.view3d.orderBias = 999), + (i.view.z = -1.2), + t.addChild(i.view), + i + ); + } + return ( + (e = n), + ((t = Shine).prototype = Object.create(e.prototype)), + ((t.prototype.constructor = t).__proto__ = e), + (Shine.prototype.update = function (t) { + var e = this.entity.game.hero.body, + i = this.entity.body.z - e.z, + n = 1 - V.clamp(-i / 500); + this.view.scale.set(1.1 * n); + }), + Shine + ); + })(J.a); + var ct = { + type: "coin", + }, + ut = (function (n) { + var t, e; + + function Pop(t, e) { + var i; + return void 0 === e && (e = {}), (e = Object.assign({}, ct, e)), ((i = n.call(this, t, e) || this).view = H.getEntityCloneBlend("/star7", "effects_tex", 0.9, 3)), (i.view.rotation.y = Math.PI), (i.duration = 8), i.reset(), i; + } + (e = n), ((t = Pop).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Pop.prototype; + return ( + (i.reset = function () { + this.view.parent && this.entity.removeChild(this.view), (this.view.active = !1), this.view.scale.set(0), (this.count = 0); + }), + (i.update = function (t) { + if (this.count) { + this.count -= t; + var e = 0.5 + 0.75 * (1 - this.count / this.duration); + this.view.scale.set(e), this.count <= 0 && this.reset(); + } + }), + (i.play = function () { + (this.view.rotation.z = V.PI_DOUBLE * Math.random()), (this.count = this.duration), (this.view.active = !0), this.view.scale.set(0.5), this.entity.addChild(this.view); + }), + Pop + ); + })(J.a); + var pt = (function (e) { + var t, i; + + function Coin() { + var t; + return ( + (t = e.call(this) || this).add(it, { + ghost: !0, + boxColor: 16776960, + }), + t.add(at), + t.add(ot), + t.add(st), + t.add(dt, { + rotationSpeed: 0.06, + }), + B.optm || t.add(lt), + (t.body.width = 10), + (t.body.height = 10), + (t.body.depth = 10), + (t.trigger = 0), + (t.speed = 0), + t + ); + } + (i = e), ((t = Coin).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i); + var n = Coin.prototype; + return ( + (n.createView = function () { + this.model || ((this.model = H.getEntityCloneOpaque("/currency/currency_coin", "props_tex")), this.addChild(this.model)); + }), + (n.reset = function (t) { + this.movable.reset(), this.body.velocity.reset(), this.attractable.reset(), (this.body.movable = !1), (this.active = !0); + }), + (n.update = function (t) { + this.body.movable && this.game && (heroBody.z <= this.trigger ? (this.body.velocity.z = this.speed) : (this.body.velocity.z = 0)); + }), + (n.init = function () { + this.createView(), this.movable.reset(), this.attractable.reset(), this.body.velocity.reset(), (this.body.movable = !1), (this.active = !0); + }), + (n.onCollect = function (t) { + (this.game.stats.coins += 1), + this.game.sfx.play("pickup_coin", { + volume: 0.5, + }), + this.game.hero.pop.play(); + }), + Coin + ); + })(v.a); + + function Train_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + (pt.cache = function (t, e) { + void 0 === e && (e = 50), t.pool.prepopulate(pt, amout); + }), + (pt.match = function (t) { + return !!t.name.match(/Coin \(/) || !!t.name.match(/Coins \(/); + }), + (pt.factory = function (t, e, i) { + if (e.name.match(/Line/)) { + if (50 < e.components.Transform.position.y) return; + for (var n = e.components.CoinCurve._curveOffset, o = e.components.CoinCurve._curveParent._cachedCurve.MaxCoords.z, s = o * n, a = o / 5, r = 0; r < 5; r++) { + var h = pt.spawnCoin(t, e, i), + d = r * a - s; + (h.body.z -= d), (h.arc = !1); + } + } else e.name.match(/Jump Curve/) ? pt.spawnJumpCurve(t, e, i) : pt.spawnCoin(t, e, i); + }), + (pt.spawnCoin = function (t, e, i) { + var n = t.game.pool.get(pt), + o = e.components.Transform.position.x, + s = e.components.Transform.position.y, + a = e.components.Transform.position.z; + return ( + (n.body.x = o), + (n.body.bottom = s), + (n.body.z = t.z - a), + i.px && (n.body.x = i.px), + i.offsetX && (n.body.x = i.offsetX), + i.flip && (n.body.x *= -1), + 150 < n.body.bottom && (n.body.bottom = 29), + n.init(e), + i.py && (n.body.bottom = i.py), + i.bottom && (n.body.bottom = i.bottom), + (n.arc = !1), + t.game.addChild(n), + n + ); + }), + (pt.spawnLine = function (t, e, i, n, o) { + void 0 === o && (o = 5); + for (var s = 29 * o * 0.5 - 15, a = 0; a < o; a++) { + var r = t.game.pool.get(pt); + (r.body.z = n - 30 * a + s), (r.body.bottom = i), (r.body.x = e), r.init(), (r.arc = !1), t.game.addChild(r); + } + }), + (pt.spawnCurve = function (t, e, i, n) { + for (var o = 50 * t.game.stats.speed, s = Math.floor(o / 13), a = o / s, r = (a - 1) * s * 0.5 - 0.5 * a, h = Math.PI / (s - 1), d = 0; d < s; d++) { + var l = t.game.pool.get(pt); + (l.body.z = n - d * a + r), (l.body.bottom = i + 22 * Math.sin(h * d)), (l.body.x = e), l.init(), (l.arc = !0), t.game.addChild(l); + } + }), + (pt.spawnJumpCurve = function (t, e, i) { + for (var n = 50 * t.game.stats.speed, o = Math.floor(n / 14), s = e.components.CoinCurve ? e.components.CoinCurve._curveOffset : 0.5, a = n / o, r = Math.PI / o, h = n * s, d = 0; d < o; d++) { + var l = pt.spawnCoin(t, e, i), + c = d * a - h, + u = 22 * Math.sin(r * d); + (l.body.bottom += u), (l.body.z -= c), (l.arc = !0); + } + }); + var mt = (function (e) { + function Train() { + var t; + return ( + (t = e.call(this) || this).add(it, { + boxColor: 16711680, + }), + t.add(ot, { + speed: 0, + }), + (t.body.width = 18), + (t.body.height = 29), + (t.body.depth = 58), + t + ); + } + Train_inheritsLoose(Train, e); + var t = Train.prototype; + return ( + (t.reset = function (t) { + this.body.velocity.reset(); + }), + (t.clean = function (t) { + for (var e = this.wagons.length; e--; ) { + var i = this.wagons[e]; + t.game.pool["return"](i), this.removeChild(i); + } + }), + Train + ); + })(v.a), + ft = (function (e) { + function TrainStandard() { + var t; + return ((t = e.call(this) || this).model = H.getEntityClone("train_standard")), (t.model.y = 0.5 * -t.body.height), (t.model.ry = Math.PI), t.addChild(t.model), t; + } + return Train_inheritsLoose(TrainStandard, e), TrainStandard; + })(mt), + gt = (function (e) { + function TrainCargo() { + var t; + return ((t = e.call(this) || this).model = H.getEntityClone("train_cargo")), (t.model.y = 0.5 * -t.body.height), (t.model.ry = Math.PI), t.addChild(t.model), t; + } + return Train_inheritsLoose(TrainCargo, e), TrainCargo; + })(mt), + yt = (function (e) { + function TrainSub() { + var t; + return ((t = e.call(this) || this).model = H.getEntityClone("train_sub")), (t.model.y = 0.5 * -t.body.height), (t.model.ry = Math.PI), t.addChild(t.model), t; + } + return Train_inheritsLoose(TrainSub, e), TrainSub; + })(mt), + vt = [ft, gt, yt]; + + function Blocker_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + (mt.factory = function (t, e, i) { + var n = null; + n = e.name.match("sub") ? yt : e.name.match("cargo") ? gt : e.name.match("standard") ? ft : L.pick.apply(L, vt); + for (var o = t.name.match("intro") ? "z" : "back", s = parseInt(e.name.match(/_(\d)_/)[1]), a = e.name.match(/coins/), r = 60 * s, h = s, d = 0, l = Number.NEGATIVE_INFINITY, c = 0, u = null; h--; ) { + ((u = t.game.pool.get(n)).chunk = t), (c = ue.get(e, "components.MovingTrainPlaceholder._speed", 0)); + var p = e.components.Transform.position.x, + m = e.components.Transform.position.z, + f = 60 * h; + (u.body.x = null !== i.offsetX ? i.offsetX : p), (u.body.bottom = 0); + var g = t.z - m - f; + (u.body[o] = g), d || (d = u.body[o] + 0.6 * r + 30), i.flip && (u.body.x *= -1), u.movable.run(c, d), t.game.addChild(u), u.body.back > l && (l = u.body.back); + } + if (a) + for (var y = Math.ceil(1.1 * s), v = l - 50, _ = 0; _ < y; _++) { + var b = pt.spawnCoin(t, e, i); + (b.body.x = u.body.x), (b.body.bottom = 29), (b.body.z = v - 30 * _), b.movable.run(c, d); + } + }), + (mt.cache = function (t, e) { + void 0 === e && (e = 10), t.pool.prepopulate(ft, amout), t.pool.prepopulate(gt, amout), t.pool.prepopulate(yt, amout); + }); + var _t = (function (e) { + function Blocker() { + var t; + return ( + (t = e.call(this) || this).add(it, { + ghost: !0, + }), + (t.body.width = 16), + (t.body.height = 26), + (t.body.depth = 1), + (t.model = null), + t + ); + } + return ( + Blocker_inheritsLoose(Blocker, e), + (Blocker.prototype.init = function (t, e) { + (this.model.ry = Math.PI), (this.model.z = -5), this.addChild(this.model); + }), + Blocker + ); + })(v.a), + bt = (function (i) { + function BlockerJump() { + var t; + return ((t = i.call(this) || this).model = H.getEntityCloneOpaque("/blocker_jump", "environment_tex")), t; + } + return ( + Blocker_inheritsLoose(BlockerJump, i), + (BlockerJump.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), (this.body.height = 26); + }), + BlockerJump + ); + })(_t), + wt = { + jump: bt, + roll: (function (i) { + function BlockerRoll() { + var t; + return ((t = i.call(this) || this).model = H.getEntityCloneOpaque("/blocker_roll", "environment_tex")), t; + } + return ( + Blocker_inheritsLoose(BlockerRoll, i), + (BlockerRoll.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), (this.body.height = 19), (this.body.bottom = 10), (this.model.y = -this.body.height / 2 - this.body.bottom); + }), + BlockerRoll + ); + })(_t), + standard: (function (i) { + function BlockerStandard() { + var t; + return ((t = i.call(this) || this).model = H.getEntityCloneOpaque("/blocker_standard", "environment_tex")), t; + } + return ( + Blocker_inheritsLoose(BlockerStandard, i), + (BlockerStandard.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), (this.body.height = 4), (this.body.bottom = 10), (this.model.y = -this.body.height / 2 - this.body.bottom); + }), + BlockerStandard + ); + })(_t), + }; + + function Ramp_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + _t.factory = function (t, e, i) { + var n = L.pick.apply(L, Object.keys(wt)); + e.name.match("jump") && (n = "jump"), e.name.match("roll") && (n = "roll"); + var o = wt[n], + s = t.game.pool.get(o), + a = e.components.Transform.position.x, + r = e.components.Transform.position.z; + (s.body.front = t.z - r), + (s.body.x = a), + i.offsetX && (s.body.x = i.offsetX), + i.flip && (s.body.x *= -1), + s.init(t, e), + t.game.addChild(s), + e.name.match("w_coins") && (o === bt ? pt.spawnCurve(t, s.body.x, 0, s.body.z) : pt.spawnLine(t, s.body.x, 0, s.body.z)); + }; + var kt = (function (e) { + function Ramp() { + var t; + return ( + ((t = e.call(this) || this).ramp = !0), + t.add(it), + (t.body.width = 18), + (t.body.height = 29), + (t.body.depth = 70), + (t.model = H.getEntityClone("/train_ramp")), + (t.model.position.y = 0.5 * -t.body.height), + (t.model.rotation.y = Math.PI), + (t.model.z = -8), + t.addChild(t.model), + t + ); + } + return ( + Ramp_inheritsLoose(Ramp, e), + (Ramp.prototype.init = function (t, e, i) { + var n = e.components.Transform.position.x, + o = e.components.Transform.position.z; + (this.body.x = n), (this.body.bottom = 0), (this.body.z = t.z - o + 6), i.offsetX && (this.body.x = i.offsetX), i.flip && (this.body.x *= -1); + var s = t.game.pool.get(xt); + s.reset(), (s.body.width = 0.2), (s.body.height = this.body.height), (s.body.depth = 0.7 * this.body.depth), (s.body.x = this.body.left), (s.body.y = this.body.y), (s.body.z = this.body.z), t.game.addChild(s); + var a = t.game.pool.get(xt); + a.reset(), (a.body.width = 0.2), (a.body.height = this.body.height), (a.body.depth = 0.7 * this.body.depth), (a.body.x = this.body.right), (a.body.y = this.body.y), (a.body.z = this.body.z), t.game.addChild(a); + }), + Ramp + ); + })(v.a), + xt = (function (e) { + function Side() { + var t; + return (t = e.call(this) || this).add(it), t; + } + return ( + Ramp_inheritsLoose(Side, e), + (Side.prototype.reset = function () { + (this.body.deco = !1), this.body.box.size.reset(), this.body.box.center.reset(); + }), + Side + ); + })(v.a); + var Ct = (function (e) { + var t, i; + + function LightSignal() { + var t; + return ( + (t = e.call(this) || this).add(it, { + ghost: !0, + soft: !0, + }), + (t.body.width = 4), + (t.body.height = 42), + (t.body.depth = 4), + (t.model = H.getEntityClone("/lightSignal")), + (t.model.ry = Math.PI), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return ( + (i = e), + ((t = LightSignal).prototype = Object.create(i.prototype)), + ((t.prototype.constructor = t).__proto__ = i), + (LightSignal.prototype.init = function (t, e, i) { + (this.body.x = e.components.Transform.position.x), i.flip && (this.body.x *= -1), (this.body.bottom = 0), (this.body.z = t.z - e.components.Transform.position.z); + }), + LightSignal + ); + })(v.a), + St = (function () { + function Curve() {} + return ( + (Curve.calculateJumpVerticalSpeed = function (t, e) { + if (t < 0) throw new Error("Jump height cannot be negative"); + return Math.sqrt(2 * t * e); + }), + (Curve.calculateJumpLength = function (t, e, i) { + return (2 * t * this.calculateJumpVerticalSpeed(e)) / i; + }), + (Curve.linear = function (t) { + return t; + }), + (Curve.expoIn = function (t) { + return 0 === t ? t : Math.pow(2, 10 * (t - 1)); + }), + (Curve.expoOut = function (t) { + return 1 === t ? t : 1 - Math.pow(2, -10 * t); + }), + (Curve.expoInOut = function (t) { + return 0 === t || 1 === t ? t : t < 0.5 ? 0.5 * Math.pow(2, 20 * t - 10) : -0.5 * Math.pow(2, 10 - 20 * t) + 1; + }), + (Curve.sineIn = function (t) { + var e = Math.cos(t * Math.PI * 0.5); + return Math.abs(e) < 1e-14 ? 1 : 1 - e; + }), + (Curve.sineOut = function (t) { + return Math.sin((t * Math.PI) / 2); + }), + (Curve.sineInOut = function (t) { + return -0.5 * (Math.cos(Math.PI * t) - 1); + }), + (Curve.quadIn = function (t) { + return t * t; + }), + (Curve.quadOut = function (t) { + return -t * (t - 2); + }), + (Curve.quadInOut = function (t) { + return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1); + }), + (Curve.quartIn = function (t) { + return Math.pow(t, 4); + }), + (Curve.quartOut = function (t) { + return Math.pow(t - 1, 3) * (1 - t) + 1; + }), + (Curve.quartInOut = function (t) { + return t < 0.5 ? 8 * Math.pow(t, 4) : -8 * Math.pow(t - 1, 4) + 1; + }), + (Curve.quintIn = function (t) { + return t * t * t * t * t; + }), + (Curve.quintOut = function (t) { + return --t * t * t * t * t + 1; + }), + (Curve.quintInOut = function (t) { + return (t *= 2) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2); + }), + (Curve.backInOut = function (t) { + var e = 2.5949095; + return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * 0.5 : 0.5 * ((t -= 2) * t * ((e + 1) * t + e) + 2); + }), + (Curve.backIn = function (t) { + return t * t * (2.70158 * t - 1.70158); + }), + (Curve.backOut = function (t) { + return --t * t * (2.70158 * t + 1.70158) + 1; + }), + (Curve.circInOut = function (t) { + return (t *= 2) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1); + }), + (Curve.circIn = function (t) { + return 1 - Math.sqrt(1 - t * t); + }), + (Curve.circOut = function (t) { + return Math.sqrt(1 - --t * t); + }), + (Curve.elasticOut = function (t) { + return Math.sin((-13 * (t + 1) * Math.PI) / 2) * Math.pow(2, -10 * t) + 1; + }), + (Curve.elasticIn = function (t) { + return Math.sin((13 * t * Math.PI) / 2) * Math.pow(2, 10 * (t - 1)); + }), + (Curve.elasticInOut = function (t) { + return t < 0.5 ? 0.5 * Math.sin(((13 * Math.PI) / 2) * 2 * t) * Math.pow(2, 10 * (2 * t - 1)) : 0.5 * Math.sin(((-13 * Math.PI) / 2) * (2 * t - 1 + 1)) * Math.pow(2, -10 * (2 * t - 1)) + 1; + }), + Curve + ); + })(); + var zt = (function (n) { + var t, e; + + function Halo(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).view = new v.a()), + (i.halo = H.getEntityCloneBlend("/powBoost", "effects_tex", 0.95, 1)), + i.view.addChild(i.halo), + (i.view.z = -3), + (i.view.ry = Math.PI), + t.addChild(i.view), + i.reset(), + i + ); + } + (e = n), ((t = Halo).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Halo.prototype; + return ( + (i.reset = function () { + (this.scaleStart = 0), (this.scaleEnd = 1), (this.maxDistance = 500), (this.rotationSpeed = -0.03); + }), + (i.update = function (t) { + this.updateHaloScale(), this.updateViewScale(), this.rotationSpeed && (this.halo.rotation.z += t * this.rotationSpeed); + }), + (i.updateHaloScale = function (t) { + var e = this.entity.game.stats.z + 20 - this.entity.body.z, + i = 1.5 + 0.5 * Math.sin(0.03 * e); + this.halo.scale.set(i); + }), + (i.updateViewScale = function () { + var t = this.entity.game.stats.z - 10 - this.entity.body.z, + e = 1 - V.clamp(t / this.maxDistance), + i = St.backOut(e), + n = this.scaleStart + (this.scaleEnd - this.scaleStart) * i; + this.view.scale.set(n); + }), + Halo + ); + })(J.a); + + function Pickup_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var Tt = (function (e) { + function Pickup() { + var t; + return ( + (t = e.call(this) || this).add(it, { + ghost: !0, + }), + t.add(st), + t.add(dt, { + rotationSpeed: -0.03, + }), + t.add(zt, { + type: "rays", + }), + (t.body.width = 12), + (t.body.height = 12), + (t.body.depth = 12), + t + ); + } + Pickup_inheritsLoose(Pickup, e); + var t = Pickup.prototype; + return ( + (t.init = function (t, e) { + this.addChild(this.model); + }), + (t.onCollect = function (t) { + !!this.game.hero[this.type] && this.game.hero[this.type].turnOn(), + "key" === this.type && (this.game.stats.keys += 1), + "jetpack" !== this.type && this.game.sfx.play("pickup_powerup"), + this.game.hero.popPickup && this.game.hero.popPickup.play(); + }), + Pickup + ); + })(v.a), + Pt = (function (e) { + function PickupJetpack() { + var t; + return ((t = e.call(this) || this).type = "jetpack"), (t.model = H.getEntityCloneOpaque("/powerups_jetpack", "props_tex")), t.model.scale.set(1.5), t; + } + return Pickup_inheritsLoose(PickupJetpack, e), PickupJetpack; + })(Tt), + Mt = (function (e) { + function PickupPogo() { + var t; + return ((t = e.call(this) || this).type = "pogo"), (t.model = H.getEntityCloneOpaque("/powerups_rocketPogo", "props_tex")), t.model.scale.set(1.75), t; + } + return Pickup_inheritsLoose(PickupPogo, e), PickupPogo; + })(Tt), + Et = (function (e) { + function PickupMagnet() { + var t; + return ((t = e.call(this) || this).type = "magnet"), (t.model = H.getEntityCloneOpaque("/powerups_coinMagnet", "props_tex")), t.model.scale.set(1.5), t; + } + return Pickup_inheritsLoose(PickupMagnet, e), PickupMagnet; + })(Tt), + Ot = (function (e) { + function PickupSneakers() { + var t; + return ((t = e.call(this) || this).type = "sneakers"), (t.model = H.getEntityCloneOpaque("/powerups_superSneakers", "props_tex")), t.model.scale.set(1.5), t; + } + return Pickup_inheritsLoose(PickupSneakers, e), PickupSneakers; + })(Tt), + Rt = (function (e) { + function PickupMultiplier() { + var t; + return ((t = e.call(this) || this).type = "multiplier"), (t.model = H.getEntityCloneOpaque("/powerups_2xMultiplier", "props_tex")), t.model.scale.set(1.5), t; + } + return Pickup_inheritsLoose(PickupMultiplier, e), PickupMultiplier; + })(Tt), + It = (function (e) { + function PickupLetter() { + var t; + return ((t = e.call(this) || this).type = "letter"), (t.model = H.getEntityCloneOpaque("/letters/A", "props_tex")), t.model.scale.set(1.5), t; + } + return Pickup_inheritsLoose(PickupLetter, e), PickupLetter; + })(Tt), + Lt = (function (n) { + function PickupMysteryBox() { + var t; + ((t = n.call(this) || this).type = "mysteryBox"), (t.model = new v.a()), (t.base = H.getEntityCloneOpaque("/mysteryBox_base/mysteryBox_base_default", "props_tex")), t.model.addChild(t.base); + var e = H.getEntity("/containers/mysteryBox_base/mysteryBox_lid"), + i = H.findEntity("mysteryBox_lid_default", e); + return (t.lid = H.getEntityCloneOpaque(i, "props_tex")), (t.lid.x = 0.8), (t.lid.z = -0.8), t.model.addChild(t.lid), t; + } + return Pickup_inheritsLoose(PickupMysteryBox, n), PickupMysteryBox; + })(Tt), + jt = (function (e) { + function PickupKey() { + var t; + return ((t = e.call(this) || this).type = "key"), (t.model = H.getEntityCloneOpaque("/currency_key", "props_tex")), t.model.scale.set(1.5), t; + } + return Pickup_inheritsLoose(PickupKey, e), PickupKey; + })(Tt), + Ft = { + jetpack: Pt, + pogo: Mt, + magnet: Et, + sneakers: Ot, + multiplier: Rt, + letter: It, + key: jt, + mysteryBox: Lt, + }, + At = [Rt, jt, Lt], + Dt = [Rt, Pt, Et, Ot], + Gt = { + Jetpack: Pt, + PogoStick: Mt, + CoinMagnet: Et, + SuperSneakers: Ot, + CoinMultiplier: Rt, + }; + (Tt.match = function (t) { + return !!t.name.match(/PickupSpawn/); + }), + (Tt.factory = function (t, e, i) { + if (!t.envTube) { + var n = t.z - e.components.Transform.position.z, + o = null, + s = ue.get(e, "components.PickupSpawnPoint.__spawnPointMode", ""), + a = ue.get(e, "components.PickupSpawnPoint.__forceSpawnPickupType", ""); + if ("WillForcePickupType" === s) o = Gt[a]; + else { + if (!t.game.route.canSpawn("pickup", n)) return; + var r = ue.get(e, "components.PickupSpawnPoint._spawnPointDifficulty", "Hard"); + if ( + L.range(0, 1) >= + { + Hard: 0.1, + Medium: 0.5, + Easy: 0.8, + }[r] + ) + return; + o = "Easy" === r ? L.item(At) : L.item(Dt); + } + if (o && o !== Lt && o !== jt && (o !== Pt || t.game.route.canSpawn("jetpack", n))) { + var h = t.game.pool.get(o), + d = e.components.Transform.position.x, + l = e.components.Transform.position.y; + (h.body.z = n), + (h.body.x = null !== i.offsetX ? i.offsetX : d), + (h.body.y = l), + i.flip && (h.body.x *= -1), + h.init(t, e), + t.game.addChild(h), + t.game.route.setSpawn("pickup", n - 2700), + o === Pt && t.game.route.setSpawn("jetpack", n - 4e3); + } + } + }), + (Tt.spawn = function (t, e) { + var i = e || Object.keys(Ft), + n = L.pick.apply(L, i), + o = Ft[n], + s = t.pool.get(o); + return s.init(), t.addChild(s), s; + }); + var Bt = {}, + Nt = Bt; + B.ground + ? ((Bt.newTrack = function () { + return H.getEntityClone("/track"); + }), + (Bt.newTrackShadowStart = function () { + return H.getEntityClone("/track_shadow_start"); + }), + (Bt.newTrackShadowMid = function () { + return H.getEntityClone("/track_shadow_mid"); + }), + (Bt.newTrackShadowEnd = function () { + return H.getEntityClone("/track_shadow_end"); + }), + (Bt.newTrackShadowShortStart = function () { + return H.getEntityClone("/track_shadow_short_start"); + }), + (Bt.newTrackShadowShortEnd = function () { + return H.getEntityClone("/track_shadow_short_end"); + }), + (Bt.newGround = function () { + return H.getEntityClone("/ground"); + }), + (Bt.newGroundShadowStart = function () { + return H.getEntityClone("/ground_shadow_start"); + }), + (Bt.newGroundShadowMid = function () { + return H.getEntityClone("/ground_shadow_mid"); + }), + (Bt.newGroundShadowEnd = function () { + return H.getEntityClone("/ground_shadow_mid"); + }), + (Bt.newGroundShadowShortStart = function () { + return H.getEntityClone("/ground_shadow_short_start"); + }), + (Bt.newGroundShadowShortEnd = function () { + return H.getEntityClone("/ground_shadow_short_end"); + }), + (Bt.newGates = function () { + return H.getEntityClone("track_gates"); + }), + (Bt.newGatesShadow = function () { + return H.getEntityClone("track_gates_shadows"); + })) + : ((Bt.newTrack = function () { + return new v.a(); + }), + (Bt.newTrackShadowStart = function () { + return new v.a(); + }), + (Bt.newTrackShadowMid = function () { + return new v.a(); + }), + (Bt.newTrackShadowEnd = function () { + return new v.a(); + }), + (Bt.newTrackShadowShortStart = function () { + return new v.a(); + }), + (Bt.newTrackShadowShortEnd = function () { + return new v.a(); + }), + (Bt.newGround = function () { + return new v.a(); + }), + (Bt.newGroundShadowStart = function () { + return new v.a(); + }), + (Bt.newGroundShadowMid = function () { + return new v.a(); + }), + (Bt.newGroundShadowEnd = function () { + return new v.a(); + }), + (Bt.newGroundShadowShortStart = function () { + return new v.a(); + }), + (Bt.newGroundShadowShortEnd = function () { + return new v.a(); + }), + (Bt.newGates = function () { + return new v.a(); + }), + (Bt.newGatesShadow = function () { + return new v.a(); + })), + (Bt.spawn = function (t, e) { + void 0 === e && (e = {}), e.z || (e.z = t.z), e.l || (e.l = Bt.newTrack), e.m || (e.m = e.l), e.r || (e.r = e.m); + var i = t.game.pool.get(e.l); + t.game.addChild(i), (i.x = -B.laneWidth), (i.y = 0), (i.z = e.z), (i.ry = Math.PI); + var n = t.game.pool.get(e.m); + t.game.addChild(n), (n.x = 0), (n.y = 0), (n.z = e.z), (n.ry = Math.PI); + var o = t.game.pool.get(e.r); + t.game.addChild(o), (o.x = B.laneWidth), (o.y = 0), (o.z = e.z), (o.ry = Math.PI); + }), + (Bt.spawnGates = function (t, e) { + if ((void 0 === e && (e = {}), !t.name.match("tutorial"))) { + e.z || (e.z = t.z); + var i = t.game.pool.get(Bt.newGates); + t.game.addChild(i), (i.x = 0), (i.y = 0), (i.z = e.z), (i.ry = Math.PI); + } + }), + (Bt.mount = function (t) { + if ("intro" === t.name) { + for (var e = 0; e < 1; e++) + if (!t.floors[e]) { + var i = 2 * B.blockSize, + n = Bt.newTrack, + o = Bt.newTrack, + s = Bt.newTrack; + Bt.spawn(t, { + z: i, + l: n, + m: o, + r: s, + }); + } + } else if (t.name.match("default_short_1_track")) { + for (var a = t.blocks / 2, r = 0; r < a; r++) + if (!t.floors[r]) { + var h = 0 < r, + d = t.z - r * B.blockSize * 2, + l = h ? Bt.newGround : Bt.newTrack, + c = Bt.newTrack, + u = h ? Bt.newGround : Bt.newTrack; + Bt.spawn(t, { + z: d, + l: l, + m: c, + r: u, + }), + (t.floors[r] = !0); + } + } else if (t.name.match("default_1_track")) { + for (var p = t.blocks / 2, m = 0; m < p; m++) + if (!t.floors[m]) { + var f = t.name.match("_mid"), + g = t.z - m * B.blockSize * 2, + y = f ? Bt.newGround : Bt.newTrack, + v = Bt.newTrack, + _ = f ? Bt.newGround : Bt.newTrack; + Bt.spawn(t, { + z: g, + l: y, + m: v, + r: _, + }), + (t.floors[m] = !0); + } + } else if (t.name.match("default_short_2_tracks")) { + for (var b = t.blocks / 2, w = 0; w < b; w++) + if (!t.floors[w]) { + var k = t.name.match("_mid_") || t.name.match("_end"), + x = t.z - w * B.blockSize * 2, + C = Bt.newTrack, + S = k ? Bt.newGround : Bt.newTrack, + z = Bt.newTrack; + Bt.spawn(t, { + z: x, + l: C, + m: S, + r: z, + }), + (t.floors[w] = !0); + } + } else if (t.name.match("default_2_tracks")) { + for (var T = t.blocks / 2, P = 0; P < T; P++) + if (!t.floors[P]) { + var M = !t.name.match("_end"), + E = t.z - P * B.blockSize * 2, + O = Bt.newTrack, + R = M ? Bt.newGround : Bt.newTrack, + I = Bt.newTrack; + Bt.spawn(t, { + z: E, + l: O, + m: R, + r: I, + }), + (t.floors[P] = !0); + } + } else if ("default_tutorial" === t.name); + else if (!t.hasGround) + for (var L = t.blocks / 2, j = 0; j < L; j++) + if (!t.floors[j]) { + var F = t.z - j * B.blockSize * 2, + A = Bt.newTrack, + D = Bt.newTrack, + G = Bt.newTrack; + Bt.spawn(t, { + z: F, + l: A, + m: D, + r: G, + }), + (t.floors[j] = !0); + } + }); + var Xt = {}, + Yt = Xt; + + function Gates_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + B.fillers + ? ((Xt.newLow01Left = function () { + return H.getEntityClone("/low_01_left"); + }), + (Xt.newLow02Left = function () { + return H.getEntityClone("/low_02_left"); + }), + (Xt.newMed01Left = function () { + return H.getEntityClone("/med_01_left"); + }), + (Xt.newMed02Left = function () { + return H.getEntityClone("/med_02_left"); + }), + (Xt.newMed03Left = function () { + return H.getEntityClone("/med_03_left"); + }), + (Xt.newHigh01Left = function () { + return H.getEntityClone("/high_01_left"); + }), + (Xt.newHigh02Left = function () { + return H.getEntityClone("/high_02_left"); + }), + (Xt.newHigh03Left = function () { + return H.getEntityClone("/high_03_left"); + }), + (Xt.newLow01Right = function () { + return H.getEntityClone("/low_01_right", "", !1, R); + }), + (Xt.newLow02Right = function () { + return H.getEntityClone("/low_02_right", "", !1, R); + }), + (Xt.newMed01Right = function () { + return H.getEntityClone("/med_01_right"); + }), + (Xt.newMed02Right = function () { + return H.getEntityClone("/med_02_right"); + }), + (Xt.newMed03Right = function () { + return H.getEntityClone("/med_03_right"); + }), + (Xt.newHigh01Right = function () { + return H.getEntityClone("/high_01_right"); + }), + (Xt.newHigh02Right = function () { + return H.getEntityClone("/high_02_right"); + }), + (Xt.newHigh03Right = function () { + return H.getEntityClone("/high_03_right"); + })) + : ((Xt.newLow01Left = function () { + return new v.a(); + }), + (Xt.newLow02Left = function () { + return new v.a(); + }), + (Xt.newMed01Left = function () { + return new v.a(); + }), + (Xt.newMed02Left = function () { + return new v.a(); + }), + (Xt.newMed03Left = function () { + return new v.a(); + }), + (Xt.newHigh01Left = function () { + return new v.a(); + }), + (Xt.newHigh02Left = function () { + return new v.a(); + }), + (Xt.newHigh03Left = function () { + return new v.a(); + }), + (Xt.newLow01Right = function () { + return new v.a(); + }), + (Xt.newLow02Right = function () { + return new v.a(); + }), + (Xt.newMed01Right = function () { + return new v.a(); + }), + (Xt.newMed02Right = function () { + return new v.a(); + }), + (Xt.newMed03Right = function () { + return new v.a(); + }), + (Xt.newHigh01Right = function () { + return new v.a(); + }), + (Xt.newHigh02Right = function () { + return new v.a(); + }), + (Xt.newHigh03Right = function () { + return new v.a(); + })), + (Xt.spawn = function (t, e) { + void 0 === e && (e = {}), e.z || (e.z = t.z), e.l || (e.l = Xt.newLow01Left), e.r || (e.r = Xt.newLow01Right); + var i = t.game.pool.get(e.l); + t.game.addChild(i), (i.x = 0), (i.y = 0), (i.z = e.z), (i.ry = Math.PI); + var n = t.game.pool.get(e.r); + t.game.addChild(n), (n.x = 0), (n.y = 0), (n.z = e.z), (n.ry = Math.PI); + }), + (Xt.mount = function (t) { + if (t.name.match("default_short_1_track")) { + for (var e = t.blocks / 2, i = 0; i < e; i++) + if (!t.fillers[i]) { + var n = t.z - i * B.blockSize * 2, + o = Xt.newMed02Left, + s = Xt.newMed02Right; + Xt.spawn(t, { + z: n, + l: o, + r: s, + }); + } + } else if (t.name.match("default_short_2_tracks")) { + for (var a = t.blocks / 2, r = 0; r < a; r++) + if (!t.fillers[r]) { + var h = t.z - r * B.blockSize * 2, + d = Xt.newLow02Left, + l = Xt.newHigh02Right; + Xt.spawn(t, { + z: h, + l: d, + r: l, + }); + } + } else if (t.name.match("default_2_tracks")) { + for (var c = t.blocks / 2, u = 0; u < c; u++) + if (!t.fillers[u]) { + var p = t.z - u * B.blockSize * 2, + m = Xt.newLow01Left, + f = Xt.newHigh01Right; + Xt.spawn(t, { + z: p, + l: m, + r: f, + }); + } + } else + for (var g = t.blocks / 2, y = L.item(["Low", "Med", "High"]), v = "Low" == y ? ["01", "02"] : ["01", "02", "03"], _ = 0; _ < g; _++) + if (!t.fillers[_]) { + var b = L.item(v), + w = Xt["new" + y + b + "Left"], + k = Xt["new" + y + b + "Right"], + x = t.z - _ * B.blockSize * 2; + Xt.spawn(t, { + z: x, + l: w, + r: k, + }), + "Low" === y && "1103_seoul" === B.env && (t.floors[_] = !0); + } + }); + var Ht = (function (e) { + function Gates() { + var t; + return ( + (t = e.call(this) || this).add(it, { + noView: !0, + trigger: !0, + }), + (t.body.width = 80), + (t.body.height = 50), + (t.body.depth = 120), + (t.lowCamera = !0), + t + ); + } + return ( + Gates_inheritsLoose(Gates, e), + (Gates.prototype.init = function (t, e) { + (this.body.x = 0), + (this.body.bottom = 0), + (this.body.z = t.z - e.components.Transform.position.z - 2 * B.blockSize), + this.model && ((this.model.ry = Math.PI), (this.model.y = 0.5 * -this.body.height), (this.model.z = 1.45 * this.body.depth), this.addChild(this.model)); + var i = t.game.pool.get(Ut); + (i.body.width = this.body.width), (i.body.height = 16), (i.body.depth = 0.9 * this.body.depth), (i.body.x = 0), (i.body.bottom = 37), (i.body.z = this.body.z), t.game.addChild(i); + var n = t.game.pool.get(Ut); + (n.body.width = 20), (n.body.height = i.body.bottom), (n.body.depth = 0.9 * this.body.depth), (n.body.bottom = 0), (n.body.right = 1.5 * -B.laneWidth), (n.body.z = this.body.z), t.game.addChild(n); + var o = t.game.pool.get(Ut); + (o.body.width = 20), (o.body.height = i.body.bottom), (o.body.depth = 0.9 * this.body.depth), (o.body.bottom = 0), (o.body.x = 0), (o.body.z = this.body.z), t.game.addChild(o); + var s = t.game.pool.get(Ut); + (s.body.width = 20), + (s.body.height = i.body.bottom), + (s.body.depth = 0.9 * this.body.depth), + (s.body.bottom = 0), + (s.body.left = 1.5 * B.laneWidth), + (s.body.z = this.body.z), + t.game.addChild(s), + (this.colL = n), + (this.colR = s), + (this.colM = o), + (this.ceiling = i); + var a = t.game.pool.get(Gates.newEnvironment); + (a.ry = Math.PI), + (a.z = t.z), + t.game.addChild(a), + t.setFillersByPosition(t.z, t.z - 4 * B.blockSize), + Nt.spawnGates(t), + 4 < t.blocks && + (Nt.spawn(t, { + z: t.z - 4 * B.blockSize, + }), + Yt.spawn(t, { + z: t.z - 4 * B.blockSize, + l: Yt.newHigh01Left, + r: Yt.newHigh01Right, + })); + }), + Gates + ); + })(v.a); + Ht.newEnvironment = function () { + return H.getEntityClone("/gates_base"); + }; + var Ut = (function (e) { + function GatePart() { + var t; + return (t = e.call(this) || this).add(it), t; + } + return Gates_inheritsLoose(GatePart, e), (GatePart.prototype.reset = function () {}), GatePart; + })(v.a), + Vt = (function (i) { + function GatesSides() { + var t; + return ((t = i.call(this) || this).model = H.getEntityClone("/gates_sides")), (t.model.ry = Math.PI), (t.model.y = 0.5 * -t.body.height), (t.model.sx = 0.9), (t.model.x = -1), t; + } + return ( + Gates_inheritsLoose(GatesSides, i), + (GatesSides.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), + (this.colM.body.width = 20), + (this.colM.body.x = 0), + (this.colL.body.width = 20), + (this.colL.body.right = 1.5 * -B.laneWidth), + (this.colR.body.width = 20), + (this.colR.body.left = 1.5 * B.laneWidth); + }), + GatesSides + ); + })(Ht), + qt = { + gates_mid_group_place: (function (i) { + function GatesMid() { + var t; + return ((t = i.call(this) || this).model = H.getEntityClone("/gates_mid")), (t.model.ry = Math.PI), (t.model.y = 0.5 * -t.body.height), t.addChild(t.model), t; + } + return ( + Gates_inheritsLoose(GatesMid, i), + (GatesMid.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), + (this.colM.body.width = 0), + (this.colM.body.x = 999), + (this.colL.body.width = 60), + (this.colL.body.right = 0.5 * -B.laneWidth), + (this.colR.body.width = 60), + (this.colR.body.left = 0.5 * B.laneWidth); + }), + GatesMid + ); + })(Ht), + gates_left_group_place: (function (i) { + function GatesLeft() { + var t; + return ((t = i.call(this) || this).model = H.getEntityClone("/gates_left")), (t.model.ry = Math.PI), (t.model.y = 0.5 * -t.body.height), t.addChild(t.model), t; + } + return ( + Gates_inheritsLoose(GatesLeft, i), + (GatesLeft.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), + (this.colM.body.width = 0), + (this.colM.body.x = 999), + (this.colL.body.width = 60), + (this.colL.body.right = 1.5 * -B.laneWidth), + (this.colR.body.width = 60), + (this.colR.body.left = 0.5 * -B.laneWidth); + }), + GatesLeft + ); + })(Ht), + gates_right_group_place: (function (i) { + function GatesRight() { + var t; + return ((t = i.call(this) || this).model = H.getEntityClone("/gates_right")), (t.model.ry = Math.PI), (t.model.y = 0.5 * -t.body.height), t.addChild(t.model), t; + } + return ( + Gates_inheritsLoose(GatesRight, i), + (GatesRight.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), + (this.colM.body.width = 0), + (this.colM.body.x = 999), + (this.colL.body.width = 60), + (this.colL.body.right = 0.5 * B.laneWidth), + (this.colR.body.width = 60), + (this.colR.body.left = 1.5 * B.laneWidth); + }), + GatesRight + ); + })(Ht), + gates_sides_group_place: Vt, + }; + + function StationPlatform_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + Ht.factory = function (t, e) { + var i = qt[e.name], + n = t.game.pool.get(i); + n.init(t, e), t.game.addChild(n); + }; + var Wt = (function (e) { + function StationPlatform() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 2), + (t.body.depth = 2 * B.blockSize), + (t.model = H.getEntityClone("station_platforms")), + (t.model.ry = Math.PI), + (t.model.z = B.blockSize), + t.addChild(t.model), + t + ); + } + return ( + StationPlatform_inheritsLoose(StationPlatform, e), + (StationPlatform.prototype.init = function (t, e, i) { + (this.body.back = i), (this.body.x = 0); + var n = t.game.pool.get(Zt); + n.reset(), (n.body.width = 20), (n.body.height = 9), (n.body.depth = this.body.depth), (n.body.x = -B.laneWidth), (n.body.bottom = 0), (n.body.z = this.body.z), t.game.addChild(n); + var o = t.game.pool.get(Zt); + o.reset(), (o.body.width = 20), (o.body.height = 9), (o.body.depth = this.body.depth), (o.body.x = B.laneWidth), (o.body.bottom = 0), (o.body.z = this.body.z), t.game.addChild(o); + }), + StationPlatform + ); + })(v.a), + Zt = (function (e) { + function StationPart() { + var t; + return (t = e.call(this) || this).add(it), t; + } + return ( + StationPlatform_inheritsLoose(StationPart, e), + (StationPart.prototype.reset = function () { + this.body.box.size.reset(), this.body.box.center.reset(); + }), + StationPart + ); + })(v.a); + + function StationEnvironment_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + Wt.factory = function (t, e, i) { + var n = e.components.Transform.position.z, + o = t.game.pool.get(Wt); + o.init(t, e, t.z - n), t.game.addChild(o); + var s = t.game.pool.get(Wt); + s.init(t, e, t.z - n - o.body.depth), t.game.addChild(s); + }; + var Kt = (function (e) { + function StationEnvironment() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !1, + }), + (t.body.width = 80), + (t.body.height = 4), + (t.body.depth = 4 * B.blockSize), + t + ); + } + return ( + StationEnvironment_inheritsLoose(StationEnvironment, e), + (StationEnvironment.prototype.init = function (t, e, i) { + void 0 === i && (i = !0); + var n = e.components.Environment, + o = n ? n._blockCount : 4, + s = e.components.Transform.position.z, + a = t.z - s; + t.name.match("short") || (a += 4 * B.blockSize), (this.body.depth = B.blockSize * o), (this.body.x = 0), (this.body.top = 86), (this.body.back = a); + var r = t.game.pool.get(Jt); + (r.body.z = a), t.game.addChild(r); + for (var h = 0.5 * (o - 2), d = 0; d < h; d++) { + var l = t.game.pool.get(Qt); + (l.body.z = a - B.blockSize - l.body.depth * d), t.game.addChild(l); + } + var c = t.game.pool.get($t); + if (((c.body.z = a - (o - 1) * B.blockSize), t.game.addChild(c), t.setFillersByPosition(this.body.back, this.body.front), i)) + for (var u = 0.5 * o, p = 0; p < u; p++) { + var m = t.game.pool.get(Wt); + m.init(t, e, a - m.body.depth * p), t.game.addChild(m); + } + for (var f = 0.5 * o, g = 0; g < f; g++) { + var y = a - g * (2 * B.blockSize); + 0 === g + ? Nt.spawn(t, { + z: y, + l: Nt.newGroundShadowStart, + m: Nt.newTrackShadowStart, + r: Nt.newGroundShadowStart, + }) + : g < f - 1 + ? Nt.spawn(t, { + z: y, + l: Nt.newGroundShadowMid, + m: Nt.newTrackShadowMid, + r: Nt.newGroundShadowMid, + }) + : Nt.spawn(t, { + z: y, + l: Nt.newGroundShadowEnd, + m: Nt.newTrackShadowEnd, + r: Nt.newGroundShadowEnd, + }); + } + t.setFillersByPosition(this.body.back, this.body.front), t.setFloorsByPosition(this.body.back, this.body.front); + }), + StationEnvironment + ); + })(v.a), + Jt = (function (e) { + function StationStart() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 0), + (t.body.depth = B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("/station_start")), + (t.model.ry = Math.PI), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return StationEnvironment_inheritsLoose(StationStart, e), StationStart; + })(v.a), + Qt = (function (e) { + function StationMid() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 0), + (t.body.depth = 2 * B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("/station_mid")), + (t.model.ry = Math.PI), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return StationEnvironment_inheritsLoose(StationMid, e), StationMid; + })(v.a), + $t = (function (e) { + function StationEnd() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 0), + (t.body.depth = B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("/station_end")), + (t.model.ry = Math.PI), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return StationEnvironment_inheritsLoose(StationEnd, e), StationEnd; + })(v.a); + Kt.match = function (t) { + return !!t.components.Environment && 0 <= t.components.Environment._environmentKind._type.split(",").indexOf("Station"); + }; + var te = (function (e) { + var t, i; + + function StartBag() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + }), + (t.body.width = 4), + (t.body.height = 4), + (t.body.depth = 4), + (t.model = H.getEntityCloneOpaque("/startScreen_bag/startScreen_bag_base", "props_tex")), + (t.model.ry = Math.PI), + (t.model.y = -1.3), + t.addChild(t.model), + t + ); + } + return ( + (i = e), + ((t = StartBag).prototype = Object.create(i.prototype)), + ((t.prototype.constructor = t).__proto__ = i), + (StartBag.prototype.init = function (t, e) { + (this.body.x = e.components.Transform.position.x), (this.body.bottom = 0), (this.body.z = t.z - e.components.Transform.position.z); + }), + StartBag + ); + })(v.a); + + function Obstacle_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var ee = (function (e) { + function Obstacle() { + var t; + return ( + (t = e.call(this) || this).add(it, { + ghost: !0, + }), + (t.body.width = 18), + (t.body.height = 14), + (t.body.depth = 1), + (t.model = null), + t + ); + } + return ( + Obstacle_inheritsLoose(Obstacle, e), + (Obstacle.prototype.init = function (t, e) { + (this.model.ry = Math.PI), (this.model.z = -4), this.addChild(this.model); + }), + Obstacle + ); + })(v.a), + ie = [ + (function (i) { + function ObstacleDumpster() { + var t; + return ((t = i.call(this) || this).body.soft = !1), (t.model = H.getEntityClone("dumpster")), t; + } + return ( + Obstacle_inheritsLoose(ObstacleDumpster, i), + (ObstacleDumpster.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), (this.body.height = 14), (this.model.y = 0.5 * -this.body.height); + }), + ObstacleDumpster + ); + })(ee), + (function (i) { + function ObstacleBush() { + var t; + return ((t = i.call(this) || this).body.soft = !0), (t.model = H.getEntityClone("bush_1")), t; + } + return ( + Obstacle_inheritsLoose(ObstacleBush, i), + (ObstacleBush.prototype.init = function (t, e) { + i.prototype.init.call(this, t, e), (this.body.height = 12), (this.model.y = 0.5 * -this.body.height); + }), + ObstacleBush + ); + })(ee), + ]; + (ee.match = function (t) { + return t.name.match(/obstacle_group/); + }), + (ee.factory = function (t, e, i) { + var n = L.pick.apply(L, ie), + o = t.game.pool.get(n), + s = e.components.Transform.position.x, + a = e.components.Transform.position.z; + (o.body.z = t.z - a), (o.body.x = s), (o.body.bottom = 0), i.offsetX && (o.body.x = i.offsetX), i.flip && (o.body.x *= -1), o.init(t, e), t.game.addChild(o); + }); + var ne = (function (e) { + var t, i; + + function Pillar() { + var t; + return (t = e.call(this) || this).add(it), (t.body.width = 9), (t.body.height = 80), (t.body.depth = 9), (t.model = H.getEntityClone("pillar")), (t.model.ry = Math.PI), (t.model.y = 0.5 * -t.body.height), t.addChild(t.model), t; + } + return ( + (i = e), + ((t = Pillar).prototype = Object.create(i.prototype)), + ((t.prototype.constructor = t).__proto__ = i), + (Pillar.prototype.init = function (t, e) { + this.addChild(this.model); + }), + Pillar + ); + })(v.a); + + function PillarsEnvironment_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + (ne.factory = function (t, e, i) { + var n = t.game.pool.get(ne), + o = e.components.Transform.position.x, + s = e.components.Transform.position.z; + (n.body.z = t.z - s), (n.body.x = o), (n.body.bottom = 0), i.offsetX && (n.body.x = i.offsetX), i.flip && (n.body.x *= -1), n.init(t, e), t.game.addChild(n); + }), + (ne.match = function (t) { + return t.name.match(/pillar_group_place/); + }); + var oe = (function (e) { + function PillarsEnvironment() { + var t; + return (t = e.call(this) || this).add(it), (t.body.width = 80), (t.body.height = 20), (t.body.depth = B.blockSize), (t.body.top = 90), t; + } + return ( + PillarsEnvironment_inheritsLoose(PillarsEnvironment, e), + (PillarsEnvironment.prototype.init = function (t, e) { + var i = e.components.Transform.position.z, + n = e.components.Environment._blockCount; + (this.body.x = 0), (this.body.depth = B.blockSize * n), (this.body.back = t.z - i); + var o = t.game.pool.get(se); + (o.body.back = this.body.back), + t.game.addChild(o), + Nt.spawn(t, { + z: o.body.back, + l: Nt.newTrackShadowShortStart, + m: Nt.newGroundShadowShortStart, + r: Nt.newTrackShadowShortStart, + }); + for (var s = 0; s < n - 2; s++) { + var a = t.game.pool.get(ae); + (a.body.back = o.body.back - B.blockSize * (s + 1)), + t.game.addChild(a), + Nt.spawn(t, { + z: a.body.back, + l: Nt.newTrackShadowMid, + m: Nt.newGroundShadowMid, + r: Nt.newTrackShadowMid, + }); + } + var r = t.game.pool.get(re); + (r.body.back = o.body.back - B.blockSize * (n - 1)), + t.game.addChild(r), + Nt.spawn(t, { + z: r.body.back, + l: Nt.newTrackShadowShortEnd, + m: Nt.newGroundShadowShortEnd, + r: Nt.newTrackShadowShortEnd, + }); + }), + PillarsEnvironment + ); + })(v.a), + se = (function (e) { + function PillarsEnvironmentStart() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 1), + (t.body.depth = B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("pillars_start")), + (t.model.ry = Math.PI), + (t.model.z = 0.5 * t.body.depth), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return PillarsEnvironment_inheritsLoose(PillarsEnvironmentStart, e), PillarsEnvironmentStart; + })(v.a), + ae = (function (e) { + function PillarsEnvironmentMid() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 1), + (t.body.depth = B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("pillars_mid")), + (t.model.ry = Math.PI), + (t.model.z = 0.5 * t.body.depth), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return PillarsEnvironment_inheritsLoose(PillarsEnvironmentMid, e), PillarsEnvironmentMid; + })(v.a), + re = (function (e) { + function PillarsEnvironmentEnd() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 1), + (t.body.depth = B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("pillars_end")), + (t.model.ry = Math.PI), + (t.model.z = 0.5 * t.body.depth), + (t.model.y = 0.5 * -t.body.height), + t.addChild(t.model), + t + ); + } + return PillarsEnvironment_inheritsLoose(PillarsEnvironmentEnd, e), PillarsEnvironmentEnd; + })(v.a); + + function TubeEnvironment_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + oe.match = function (t) { + return !!t.components.Environment && 0 <= t.components.Environment._environmentKind._type.split(",").indexOf("Pillars"); + }; + var he = (function (e) { + function TubeEnvironment() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !1, + }), + (t.body.width = 80), + (t.body.height = 16), + (t.body.depth = B.blockSize), + (t.body.top = 88), + t + ); + } + return ( + TubeEnvironment_inheritsLoose(TubeEnvironment, e), + (TubeEnvironment.prototype.init = function (t, e) { + var i = e.components.Transform.position.z; + t.game.route.hasTube = !0; + var n = t.blocks; + e.components.Environment && (n = e.components.Environment._blockCount), (this.body.x = 0), (this.body.depth = B.blockSize * n), (this.body.back = t.z - i); + for (var o = 0.5 * n, s = 0; s < o; s++) { + var a = t.game.pool.get(de); + (a.body.back = this.body.back - 2 * B.blockSize * s), t.game.addChild(a); + var r = a.body.back; + 0 === s + ? Nt.spawn(t, { + z: r, + l: Nt.newTrackShadowStart, + }) + : s < o - 1 + ? Nt.spawn(t, { + z: r, + l: Nt.newTrackShadowMid, + }) + : Nt.spawn(t, { + z: r, + l: Nt.newTrackShadowEnd, + }); + } + }), + TubeEnvironment + ); + })(v.a), + de = (function (e) { + function TubeEnvironmentBlock() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + noView: !0, + }), + (t.body.width = 80), + (t.body.height = 0), + (t.body.depth = 2 * B.blockSize), + (t.body.bottom = 0), + (t.model = H.getEntityClone("tube")), + (t.model.ry = Math.PI), + (t.model.z = 0.5 * t.body.depth), + (t.model.y = 0.5 * -t.body.height), + (t.model.view3d.state.culling = !1), + t.addChild(t.model), + "1103_seoul" === B.env && + ((t.model001 = H.getEntityClone("tube001")), + (t.model001.ry = t.model.ry), + (t.model001.z = t.model.z), + (t.model001.y = t.model.y), + (t.model001.view3d.state.blend = !0), + (t.model001.view3d.material.opacity = 0.7), + (t.model001.view3d.state.culling = !1), + t.addChild(t.model001), + (t.model002 = H.getEntityClone("tube002")), + (t.model002.ry = t.model.ry), + (t.model002.z = t.model.z), + (t.model002.y = t.model.y), + (t.model002.view3d.state.culling = !1), + t.addChild(t.model002)), + t + ); + } + return TubeEnvironment_inheritsLoose(TubeEnvironmentBlock, e), TubeEnvironmentBlock; + })(v.a); + (he.match = function (t) { + return !!t.components.Environment && 0 <= t.components.Environment._environmentKind._type.split(",").indexOf("Tube"); + }), + (he.factory = function (t, e, i) { + t.game.route.setSpawnDistance("tube", 1e3); + var n = t.game.pool.get(he); + return n.init(t, e, i), t.game.addChild(n), n; + }); + var le = (function (e) { + var t, i; + + function Trigger() { + var t; + return ((t = e.call(this) || this).tutorialTrigger = !0), t.add(it), (t.body.width = 60), (t.body.height = 30), (t.body.depth = 1), (t.body.trigger = !0), (t.view = H.box(t.body.box)), t; + } + (i = e), ((t = Trigger).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i); + var n = Trigger.prototype; + return ( + (n.reset = function () {}), + (n.init = function (t, e) { + this.type = e.name.split("_").pop(); + }), + Trigger + ); + })(v.a); + (le.match = function (t) { + return t.name.match(/Trigger_/); + }), + (le.factory = function (t, e, i) { + var n = t.game.pool.get(le), + o = e.components.Transform.position.x, + s = e.components.Transform.position.z; + (n.body.z = t.z - s), (n.body.x = o), (n.body.bottom = 0), i.offsetX && (n.body.x = i.offsetX), i.flip && (n.body.x *= -1), n.init(t, e), t.game.addChild(n); + }); + var ce = (function (e) { + var t, i; + + function Checkpoint() { + var t; + return ((t = e.call(this) || this).checkpoint = !0), t.add(it), (t.body.width = 2), (t.body.height = 20), (t.body.depth = 2), (t.body.deco = !0), (t.view = H.box(t.body.box)), t; + } + (i = e), ((t = Checkpoint).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i); + var n = Checkpoint.prototype; + return (n.reset = function () {}), (n.init = function (t, e) {}), Checkpoint; + })(v.a); + (ce.match = function (t) { + return t.name.match(/checkpoint_/); + }), + (ce.factory = function (t, e, i) { + var n = t.game.pool.get(ce), + o = e.components.Transform.position.x, + s = e.components.Transform.position.z; + return (n.body.z = t.z - s), (n.body.x = o), (n.body.bottom = 0), i.offsetX && (n.body.x = i.offsetX), i.flip && (n.body.x *= -1), n.init(t, e), t.game.addChild(n), n; + }); + var ue = (function () { + function Node() {} + return ( + (Node.getEntityClass = function (t) { + return t.name.match(/train_ramp/) + ? kt + : t.name.match(/trains_(\d)_/) + ? mt + : t.name.match(/train_sub_(\d)_/) + ? mt + : t.name.match(/lightSignal/) + ? Ct + : t.name.match(/blocker/) + ? _t + : pt.match(t) + ? pt + : Tt.match(t) + ? Tt + : t.name.match(/gates_(.*?)_group_place/) + ? Ht + : t.name.match(/bag_place/) + ? te + : ee.match(t) + ? ee + : ne.match(t) + ? ne + : Kt.match(t) + ? Kt + : oe.match(t) + ? oe + : he.match(t) + ? he + : le.match(t) + ? le + : ce.match(t) + ? ce + : null; + }), + (Node.comp = function (t, e) { + return t.components[e]; + }), + (Node.get = function (t, e, i) { + if ((void 0 === i && (i = null), !t)) return i; + "string" == typeof e && (e = e.split(".")); + var n = e.shift(); + return e.length ? this.get(t[n], e, i) : void 0 !== t[n] ? t[n] : i; + }), + (Node.environment = function (t) { + if (t.components.Environment) return t; + for (var e = t.children.length; e--; ) { + var i = this.environment(t.children[e]); + if (i) return i; + } + return null; + }), + (Node.environmentType = function (t) { + return t.components.Environment ? t.components.Environment._environmentKind._type.split(",") : null; + }), + (Node.environmentKinds = function (t) { + var e = t.components.RouteChunk._limitedAllowedEnvironmentKinds, + i = Random.item(e)._type.split(","); + this.environment = i || []; + }), + Node + ); + })(); + var pe = (function (e) { + var t, i; + + function Cube() { + var t; + return (t = e.call(this) || this).add(it), t; + } + return ( + (i = e), + ((t = Cube).prototype = Object.create(i.prototype)), + ((t.prototype.constructor = t).__proto__ = i), + (Cube.prototype.reset = function () { + (this.body.deco = !1), this.body.box.size.reset(), this.body.box.center.reset(); + }), + Cube + ); + })(v.a); + var me = (function (e) { + var t, i; + + function Logo() { + var t; + return ((t = e.call(this) || this).model = H.getEntityCloneBlend("/train_start", "train_start", 0.999)), (t.model.ry = Math.PI), t.addChild(t.model), t; + } + return (i = e), ((t = Logo).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i), Logo; + })(v.a), + fe = null, + ge = (function () { + function Chunk() { + this.reset(); + } + var t = Chunk.prototype; + return ( + (t.reset = function () { + (this.node = null), (this.section = ""); + }), + (t.init = function (t, e, i, n) { + (this.game = t), + (this.node = i), + (this.name = this.node.name), + (this.entities = []), + (this.blocks = ue.get(i, "components.RouteChunk._blockCount", 0)), + (this.length = this.blocks * B.blockSize), + (this.z = -e), + (this.start = e), + (this.middle = this.start + 0.5 * this.length), + (this.end = this.start + this.length), + (this.offset = 0), + (this.index = n), + (this.fillers = {}), + (this.floors = {}), + this.game.environment.setup(this), + this.mount(this.node, this, {}), + this.game.environment.mount(this), + B.blocks && this.addChunkDebugMarks(), + "intro" === this.name && this.mountIntro(); + }), + (t.mountIntro = function () { + fe || (fe = new me()), (fe.x = -20), (fe.y = 0), (fe.z = 30), this.game.addChild(fe), Nt.mount(this); + }), + (t.defineEnvironment = function () { + if (((this.envNode = ue.environment(this.node)), (this.environment = this.envNode ? ue.environmentType(this.envNode) : null), !this.environment)) + if (this.node.name.match(/tunnel/)) this.environment = ["Gates", "All"]; + else if (this.node.name.match(/epic/)) this.environment = ["Epic", "All"]; + else if (this.node.components.RouteChunk) { + var t = this.node.components.RouteChunk._limitedAllowedEnvironmentKinds, + e = t.length ? L.item(t)._type.split(",") : ["Fillers", "All"]; + this.environment = e || []; + } else this.environment = []; + (this.envTube = !1), (this.envStation = !1), (this.envEpic = !1), (this.envGates = !1), (this.envEmpty = !1); + var i = this.lastTube; + B.forceTube || (0 <= this.environment.indexOf("Tube") && this.z < i) + ? ((this.envTube = !0), (this.lastTube = this.z)) + : 0 <= this.environment.indexOf("Station") + ? (this.envStation = !0) + : 0 <= this.environment.indexOf("Epic") + ? (this.envEpic = !0) + : 0 <= this.environment.indexOf("Gates") + ? (this.envGates = !0) + : 0 <= this.environment.indexOf("Empty") && (this.envEmpty = !0); + }), + (t.mount = function (t, e) { + if ("intro" !== this.name || !t.name.match("lightSignal") || B.loadAll) + if ((void 0 === (e = Object.assign({}, e || {})).flip && (e.flip = 0), void 0 === e.offsetX && (e.offsetX = null), ue.comp(t, "Randomizer"))) { + var i = L.pick.apply(L, t.children); + this.mount(i, e); + } else { + if (ue.comp(t, "RandomizeOffset")) { + var n = t.components.RandomizeOffset.randomOffsets.left, + o = t.components.RandomizeOffset.randomOffsets.mid, + s = t.components.RandomizeOffset.randomOffsets.right, + a = []; + n && a.push(-20), o && a.push(0), s && a.push(20), a.length && (e.offsetX = L.pick.apply(L, a)); + } + ue.comp(t, "Mirror") && (e.flip = L.pick(0, 1)); + var r = ue.getEntityClass(t); + if (r) { + var h = null; + if ( + (r.factory ? (h = r.factory(this, t, e)) : ((h = this.game.pool.get(r)).init(this, t, e), this.game.addChild(h)), + h && h.checkpoint && (this.checkpoints || (this.checkpoints = []), this.checkpoints.push(h)), + h && ue.comp(t, "Environment")) + ) { + for (var d = -h.body.back - this.start, l = -h.body.front - this.start, c = 2 * B.blockSize, u = Math.round(d / c), p = Math.round(l / c), m = u; m < p; m++) this.fillers[m] = !0; + for (var f = u; f < p; f++) this.floors[f] = !0; + } + } + if (t.children) for (var g = t.children.length; g--; ) this.mount(t.children[g], e); + } + }), + (t.setFillersByPosition = function (t, e, i) { + void 0 === i && (i = !0); + for (var n = -t - this.start, o = -e - this.start, s = 2 * B.blockSize, a = Math.round(n / s), r = Math.round(o / s), h = a; h < r; h++) this.fillers[h] = !0; + }), + (t.setFloorsByPosition = function (t, e, i) { + void 0 === i && (i = !0); + for (var n = -t - this.start, o = -e - this.start, s = 2 * B.blockSize, a = Math.round(n / s), r = Math.round(o / s), h = a; h < r; h++) this.floors[h] = !0; + }), + (t.addChunkDebugMarks = function () { + for (var t = this.blocks; t--; ) { + var e = this.game.pool.get(pe); + (e.body.deco = !0), (e.body.width = 80), (e.body.height = t ? 2 : 20), (e.body.depth = 0.1), (e.body.x = 0), (e.body.bottom = 0), (e.body.z = -this.start - t * B.blockSize), this.game.addChild(e); + } + }), + (t.clean = function () { + for (var t = this.entities.length; t--; ) this.game.removeChild(this.entities[t]); + this.entities.length = 0; + }), + (t.triggerEnter = function () { + for (var t = this.entities.length; t--; ) { + var e = this.entities[t]; + e.triggerEnter && e.triggerEnter(); + } + }), + (t.triggerExit = function () {}), + (t.getLastCheckpointByPosition = function (t) { + if (!this.checkpoints) return null; + for (var e = null, i = this.checkpoints.length; i--; ) { + var n = this.checkpoints[i]; + n.body.z > t && (e = n); + } + return e || this.checkpoints[0]; + }), + Chunk + ); + })(), + ye = i(127), + ve = null, + _e = null, + be = null, + we = (function () { + function Data() {} + return ( + (Data.init = function (t) { + be = t; + }), + (Data.sectionMap = function () { + if (_e) return _e; + return ( + (_e = {}), + (function extract(t) { + if (void 0 !== t.name) _e[t.name] = t; + else for (var e in t) extract(t[e]); + })(ye), + _e + ); + }), + (Data.section = function (t) { + t = (t = t.replace("routeSection_", "")).replace("route_section_", ""); + var e = this.sectionMap(), + i = e[t] || e["route_section_" + t] || e["routeSection_" + t]; + if (!i) throw "Section data not found: " + t; + return i; + }), + (Data.sectionClone = function (t) { + var e = this.sectionMap(); + if (!e[t]) throw "Section data not found: " + t; + var i = e[t]; + return { + name: i.name, + start: i.start.slice(0), + mid: i.start.slice(0), + end: i.start.slice(0), + }; + }), + (Data.chunkMap = function (t) { + console.log("chunkMap " + t); + if (ve && !t) return ve; + ve = {}; + var e = {}; + for (var i in be) i.match("chunks_") && (e[i] = be[i].data); + return ( + (function extract(t, e) { + console.log(be); + if (!t || !e--) return; + if ("intro" === t.name) ve[t.name] = t; + else if (t.components && t.components.RouteChunk) { + var i = t.components.RouteChunk._reportedName || t.name; + ve[i] = t; + } else if (t.children) for (var n in t.children) extract(t.children[n], e); + else for (var o in t) extract(t[o], e); + })(e, 5), + ve + ); + }), + (Data.chunk = function (t) { + t = (t = t.replace("routeChunk_", "")).replace("route_chunk_", ""); + var e = this.chunkMap(), + i = e[t] || e["routeChunk_" + t] || e["route_chunk_" + t] || e["default_" + t]; + if (!i) throw "Chunk data not found: " + t; + return (i.__name = t), i; + }), + (Data.refreshCache = function () { + ve = this.chunkMap(!0); + }), + Data + ); + })(); + var ke = (function (n) { + var t, e; + + function LevelSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).entities = []), + (i.chunks = []), + (i.currentChunk = null), + (i.game = t.game), + i.game.onReset.add( + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(i) + ), + (i.sequence = []), + (i.queued = []), + (i.onEnterChunk = new et.a("onEnterChunk", 1)), + (i.onExitChunk = new et.a("onExitChunk", 1)), + (i.onEnterTutorial = new et.a("onEnterTutorial")), + (i.onExitTutorial = new et.a("onExitTutorial")), + (i.countRemoveObsolete = 2), + (i.countUpdate = 0), + i + ); + } + (e = n), ((t = LevelSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = LevelSystem.prototype; + return ( + (i.reset = function () { + (this.chunks = []), (this.sequence = []), (this.queued = []), (this.nextPosition = 0); + var t = this.entities.slice(0); + (this.currentChunk = this.placeNextChunk("intro")), this.game.forceUpdate(), this.removeAllEntities(t); + }), + (i.entityAddedToGame = function (t) { + !t._CLASS_ID || t.player || t.follower || 0 <= this.entities.indexOf(t) || this._addEntity(t); + }), + (i.entityRemovedFromGame = function (t) { + !t._CLASS_ID || t.player || t.follower || t.particle || this.entities.indexOf(t) < 0 || this._removeEntity(t); + }), + (i._addEntity = function (t) { + t.player || t.follower || this.entities.push(t); + }), + (i._removeEntity = function (t, e) { + t.player || t.follower || t.particle || (void 0 === e && (e = this.entities.indexOf(t)), (t.z = 99999), t.body && (t.body.z = t.z), this.entities.splice(e, 1), this.game.removeChild(t), this.game.pool["return"](t)); + }), + (i.postupdate = function () { + this.game.state === pn.RUNNING && (0 < this.countRemoveObsolete-- || (this.removeObsoleteEntities(), (this.countRemoveObsolete = 5))); + }), + (i.preupdate = function () { + if ((this.game.state === pn.RUNNING || this.queued.length) && !(0 < this.countUpdate--)) { + this.countRemoveObsolete = 5; + var t = this.chunks[this.game.stats.chunkIndex]; + t || this.game.crash("No chunk found at current index:", this.game.stats.chunkIndex), + t !== this.currentChunk && + (this.currentChunk && (this.isTutorial() && this.onExitTutorial.dispatch(), this.onExitChunk.dispatch(this.currentChunk.name)), + (this.currentChunk = t), + this.onEnterChunk.dispatch(this.currentChunk.name), + this.isTutorial() && this.onEnterTutorial.dispatch()), + this.game.stats.setCurrentChunk(t), + this.game.stats.distance > t.end && (this.game.stats.chunkIndex += 1), + this.placeChunks(); + } + }), + (i.placeChunks = function () { + console.log("placeChunks"); + if (this.queued && this.queued.length) { + for (var t = this.queued.length; t--; ) this.placeNextChunk(this.queued[t]); + this.queued.length = 0; + } + for (var e = 20, i = this.game.stats.distance + B.visibleMaxDistance; this.nextPosition < i; ) e-- || this.game.crash("Too many chunks placed at same time"), this.placeNextChunk(this.name); + }), + (i.nextInSequence = function () { + this.sequence.length || (this.sequence = this.game.route.getSequence()); + var t = this.sequence.shift(), + e = "string" == typeof t ? t : L.item(e); + return we.chunk(e); + }), + (i.queueNextChunk = function (t) { + var e = t ? we.chunk(t) : this.nextInSequence(); + this.queued.unshift(e.__name); + }), + (i.placeNextChunk = function (t) { + var e = new ge(), + i = t ? we.chunk(t) : this.nextInSequence(); + if (!i) throw new Error("Chunk not found"); + return e.init(this.game, this.nextPosition, i, this.chunks.length), this.chunks.push(e), (this.nextPosition += e.length), e; + }), + (i.removeObsoleteEntities = function () { + if (!this.isTutorial()) + for (var t = this.entities.length; t--; ) { + var e = this.entities[t], + i = e.body ? e.body.front : e.z, + n = this.game.stats.z - B.visibleMinDistance; + (!e.active || n < i) && this._removeEntity(e, t); + } + }), + (i.removeAllEntities = function (t) { + t || (t = this.entities); + for (var e = t.length; e--; ) this._removeEntity(t[e], e); + }), + (i.reshuffle = function (t) { + void 0 === t && (t = !1), + this.game.route.resetSpawns(), + (this.currentChunk = null), + this.game.physics.reset(), + this.removeAllEntities(this.entities), + (this.nextPosition = this.game.stats.distance - 10), + (this.currentChunk = this.placeNextChunk("default_fallback")), + (this.currentChunk = this.placeNextChunk("default_fallback")), + t && this.game.update(1); + }), + (i.isTutorial = function () { + return !(!this.currentChunk || "routeChunk_default_tutorial" !== this.currentChunk.name) && this.game.stats.distance < this.currentChunk.end - 300; + }), + (i.setSafeLanding = function (t) { + for (; this.nextPosition <= t; ) this.placeNextChunk(); + var e = this.nextPosition; + return this.placeNextChunk("jetpack_landing"), e; + }), + (i.removeChunksAhead = function (t) { + for (var e = this.chunks.length; e--; ) { + var i = this.chunks[e]; + i.start > t && (this.chunks.splice(e, 1), (this.nextPosition = i.start)); + } + }), + (i.removeEntitiesAhead = function (t) { + for (var e = this.entities.length; e--; ) { + var i = this.entities[e]; + t < -(i.body ? i.body.back : i.z) && this._removeEntity(i, e); + } + }), + LevelSystem + ); + })(f.a); + var xe = (function (n) { + var t, e; + + function PhysicsSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).collision = new $()), + t.game.onReset.add( + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(i) + ), + i.reset(), + i + ); + } + (e = n), ((t = PhysicsSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = PhysicsSystem.prototype; + return ( + (i.reset = function () { + (this.stats = {}), (this.entities = []), (this._hasReset = !0); + }), + (i.entityAddedToGame = function (t) { + !t.body || t.body.deco || t.player || 0 <= this.entities.indexOf(t) || this.entities.push(t); + }), + (i.entityRemovedFromGame = function (t) { + if (t.body && !t.body.deco && !t.player) { + var e = this.entities.indexOf(t); + e < 0 || this.entities.splice(e, 1); + } + }), + (i.postupdate = function (t) { + var e = this.game.hero; + if (this.game.state === pn.RUNNING || e.player.dead) { + void 0 === t && (t = this.game.delta), e.player.dead || ((e.body.groundBefore = e.body.ground), (e.body.ground = 0)); + var i = Math.ceil(t), + n = Math.ceil(Math.abs(e.body.velocity.z)), + o = B.fixedPhysicsSteps || V.clamp(i + n, 1, 40), + s = t / o; + B.debug && ((this.stats.delta = t), (this.stats.steps = o), (this.stats.stepsDelta = s), (this.stats.bodies = this.entities.length), (this.stats.collidables = 0)); + for (var a = o; a-- && !this._hasReset; ) { + e.body.move(s); + for (var r = this.entities.length; r--; ) { + var h = this.entities[r]; + if (h && h.active && h !== e) { + if ((h.body.movable && h.body.move(s), this._hasReset)) break; + if (!(h.body.back < e.body.z - 10 || h.body.front > e.body.z + 5)) { + if (this.game.state !== pn.RUNNING) break; + if (e.player.dead) break; + if ((B.debug && (this.stats.collidables += 1), e.body.sensor && !h.body.ghost && !h.body.trigger)) { + var d = e.body.sensor.hitTest(h.body.box); + d && this.resolveGroundSensorHit(e, h, d); + } + var l = e.body.box.hitTest(h.body.box); + if ((l && !h.body.trigger && this.resolveHit(e, h, l), h.body.trigger)) { + var c = e.body.colliding.indexOf(h.body); + !l && 0 <= c && (e.body.colliding.splice(c, 1), e.body.triggerExit(h.body)), l && c < 0 && (e.body.colliding.push(h.body), e.body.triggerEnter(h.body)); + } + } + } + } + } + e.body.ground < e.body.groundBefore && (e.body.groundChangeTolerance = 8), (this._hasReset = !1); + } + }), + (i.resolve = function (t) { + if (!this.isHeroDead()) + for (var e = this.entities.length; e--; ) { + var i = this.entities[e]; + if (i && i.active && !(i.body.back < t.body.z - 10 || i.body.front > t.body.z + 5)) { + if ((B.debug && (this.stats.collidables += 1), t.body.sensor && !i.body.ghost && !i.body.trigger)) { + var n = t.body.sensor.hitTest(i.body.box); + n && this.resolveGroundSensorHit(t, i, n); + } + var o = t.body.box.hitTest(i.body.box); + if ((o && !i.body.trigger && this.resolveHit(t, i, o), i.body.trigger)) { + var s = t.body.colliding.indexOf(i.body); + !o && 0 <= s && (t.body.colliding.splice(s, 1), t.body.triggerExit(i.body)), o && s < 0 && (t.body.colliding.push(i.body), t.body.triggerEnter(i.body)); + } + } + } + }), + (i.resolveHit = function (t, e, i) { + if (!this.isHeroDead()) + if (e.collectible) e.collectible.collect(); + else if (!t.body.ghost) { + var n = t.body, + o = e.body; + if ((this.collision.reset(), (this.collision.act = n), (this.collision.pas = o), this.collision.hit.copy(i), e.ramp)) if (n.right >= o.left && n.left <= o.right) return; + var s = o.movable ? o.origin : o.box; + n.y > o.top && i.height <= 6 && -1 < n.velocity.y + ? ((n.bottom = o.top + 0.1), (this.collision.flags = this.collision.flags | $.BOTTOM), 2 < i.height && (this.collision.flags = this.collision.flags | $.SLOPE), n.origin.copy(n.box)) + : n.origin.bottom > s.top + ? ((n.bottom = o.top + 0.1), (this.collision.flags = this.collision.flags | $.BOTTOM), n.origin.copy(n.box)) + : n.origin.left >= s.right + ? ((n.box.left = o.box.right + 0.1), (this.collision.flags = this.collision.flags | $.LEFT), n.origin.copy(n.box)) + : n.origin.right <= s.left + ? ((n.box.right = o.box.left - 0.1), (this.collision.flags = this.collision.flags | $.RIGHT), n.origin.copy(n.box)) + : n.origin.front >= s.back + ? ((n.box.front = o.box.back + 0.1), (this.collision.flags = this.collision.flags | $.FRONT), n.origin.copy(n.box)) + : n.origin.top < s.bottom && ((n.box.top = o.box.bottom - 0.1), (this.collision.flags = this.collision.flags | $.TOP), n.origin.copy(n.box)), + this.collision.flags && n.collisionEnter(o, this.collision); + } + }), + (i.resolveGroundSensorHit = function (t, e, i) { + if (!this.isHeroDead()) + if (t.body.ghost) t.body.ground = 0; + else { + var n = t.body, + o = e.body, + s = n.ground; + if (e.ramp) { + var a = o.box.size.y, + r = o.box.size.z; + s = a * ((o.back - n.front) / r) + 0.11; + } else s = o.top + 0.11; + s >= n.ground && (n.ground = s); + } + }), + (i.canUpdate = function () { + return this.game.state === pn.RUNNING; + }), + (i.isHeroDead = function () { + return this.game.hero.player.dead; + }), + PhysicsSystem + ); + })(f.a), + Ce = (function () { + function Graph() {} + return ( + (Graph.rect = function (t) { + return t.image ? this.rectImg(t) : this.rectColor(t); + }), + (Graph.rectColor = function (t) { + void 0 === t && (t = {}); + var e = Object.assign( + { + name: "rectColor", + w: 120, + h: 120, + x: 0, + y: 0, + round: 0, + alpha: 1, + color: 3246014, + }, + t + ), + i = new c.Graphics(); + i.beginFill(e.color, e.alpha); + var n = -e.w / 2 + e.x, + o = -e.h / 2 + e.y; + return e.round ? i.drawRoundedRect(n, o, e.w, e.h, e.round) : i.drawRect(n, o, e.w, e.h), i.endFill(), i; + }), + (Graph.rectImg = function (t) { + void 0 === t && (t = {}); + var e = Object.assign( + { + name: "rectImg", + w: 120, + h: 120, + x: 0, + y: 0, + l: 15, + t: 15, + r: 25, + b: 25, + image: "box_border_grey.png", + }, + t + ), + i = c.Texture.from(e.image), + n = new c.NineSlicePlane(i, e.l, e.t, e.r, e.b); + return (n.width = e.w), (n.height = e.h), (n.x = 0.5 * -e.w + e.x), (n.y = 0.5 * -e.h + e.y), n; + }), + (Graph.rectComp = function () { + for (var t = new c.Container(), e = arguments.length, i = new Array(e), n = 0; n < e; n++) i[n] = arguments[n]; + for (var o = 0, s = i; o < s.length; o++) { + var a = s[o], + r = this.rect(a); + (t[a.name] = r), t.addChild(r); + } + return t; + }), + (Graph.roundRectBorder = function (t) { + void 0 === t && (t = {}); + var e = Object.assign( + { + w: 120, + h: 120, + round: 5, + color: 3246014, + alpha: 1, + borderWidth: 12, + borderColor: 16777215, + }, + t + ), + i = Object.assign( + { + name: "fill", + }, + e + ), + n = { + name: "border", + w: e.w + e.borderWidth, + h: e.h + e.borderWidth, + round: e.round + 0.5 * e.borderWidth, + color: e.borderColor, + alpha: e.alpha, + }; + return this.rectComp(n, i); + }), + (Graph.rectShadow = function (t) { + void 0 === t && (t = {}); + var e = Object.assign( + { + w: 120, + h: 120, + round: 0, + color: 3246014, + alpha: 1, + shadowDistance: 8, + shadowColor: 0, + shadowAngle: 0.25 * Math.PI, + shadowAlpha: 1, + }, + t + ), + i = Object.assign({}, e, { + name: "fill", + }), + n = Object.assign({}, e, { + name: "shadow", + color: e.shadowColor, + alpha: e.shadowAlpha, + x: Math.sin(e.shadowAngle) * e.shadowDistance, + y: Math.cos(e.shadowAngle) * e.shadowDistance, + }); + return this.rectComp(n, i); + }), + (Graph.rectBorder = function (t) { + void 0 === t && (t = {}); + var e = Object.assign( + { + w: 120, + h: 120, + round: 5, + color: 3246014, + alpha: 1, + borderWidth: 8, + borderColor: 0, + borderAlpha: 1, + }, + t + ), + i = Object.assign({}, e, { + name: "fill", + }), + n = Object.assign({}, e, { + name: "border", + w: e.w + 2 * e.borderWidth, + h: e.h + 2 * e.borderWidth, + color: e.borderColor, + alpha: e.borderAlpha, + round: e.round + 0.5 * e.borderWidth, + }); + return this.rectComp(n, i); + }), + (Graph.clear = function (t) { + if ((t.clear && t.clear(), t.children)) for (var e in t.children) this.clear(t.children[e]); + }), + (Graph.resize = function (t, e, i) { + if ((t.width && ((t.width = e), (t.height = i)), t.children)) for (var n in t.children) this.resize(t.children[n]); + }), + Graph + ); + })(); + + function ItemTimer_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function ItemTimer_createClass(t, e, i) { + return e && ItemTimer_defineProperties(t.prototype, e), i && ItemTimer_defineProperties(t, i), t; + } + + function ItemTimer_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var Se = (function (n) { + function ItemTimer(t, e) { + var i; + return ( + ((i = n.call(this) || this).id = e), + (i.game = t), + (i.iconBase = c.Sprite.from("base_item.png")), + i.iconBase.anchor.set(0.5), + i.addChild(i.iconBase), + (i.icon = c.Sprite.from("icon_item_" + e + ".png")), + i.icon.anchor.set(0.5), + i.addChild(i.icon), + (i.bar = new ze(200, 30, 16777215, 10867241)), + i.addChild(i.bar), + (i.bar.x = i.iconBase.width / 2 + i.bar.w / 2 + 6), + (i.base = Ce.roundRectBorder({ + w: i.bar.w + 34, + h: i.bar.h + 16, + round: 5, + color: 16777215, + alpha: 1, + borderWidth: 3, + borderColor: 10066329, + })), + i.addChildAt(i.base, 0), + (i.base.x = i.bar.x - 4), + (i.visible = !1), + i + ); + } + ItemTimer_inheritsLoose(ItemTimer, n); + var t = ItemTimer.prototype; + return ( + (t.show = function () { + this.visible || (this.visible = !0); + }), + (t.hide = function () { + this.visible && ((this.visible = !1), this.parent && this.parent.removeChild(this)); + }), + ItemTimer_createClass(ItemTimer, [ + { + key: "w", + get: function () { + return this.iconBase.width; + }, + }, + { + key: "h", + get: function () { + return this.iconBase.height; + }, + }, + { + key: "ratio", + get: function () { + return this.bar.ratio; + }, + set: function (t) { + this.bar.ratio = t; + }, + }, + ]), + ItemTimer + ); + })(c.Container), + ze = (function (r) { + function ProgressBar(t, e, i, n) { + var o; + void 0 === i && (i = 0), void 0 === n && (n = 16142336); + var s = ((o = r.call(this) || this).w = t), + a = (o.h = e); + return ( + (o.barBg = new c.Graphics()), + o.barBg.beginFill(i, 0.75), + o.barBg.drawRect(0, 0, s, a), + o.barBg.position.set(-s / 2, -a / 2), + o.addChild(o.barBg), + (o.masked = new c.Container()), + o.addChild(o.masked), + (s -= 8), + (a -= 8), + (o.barFill = new Te(s, a)), + (o.barFill.x = -s / 2), + o.masked.addChild(o.barFill), + (o.barRed = new Te(s, a, 16711680)), + (o.barRed.x = -s / 2), + o.masked.addChild(o.barRed), + (o.barMask = new c.Graphics()), + o.barMask.beginFill(255), + o.barMask.drawRect(0, 0, s, a), + o.barMask.position.set(-s / 2, -a / 2), + o.addChild(o.barMask), + (o.masked.mask = o.barMask), + (o._ratio = 1), + o.update(), + o + ); + } + return ( + ItemTimer_inheritsLoose(ProgressBar, r), + (ProgressBar.prototype.update = function () { + (this.barMask.scale.x = this._ratio), (this.barRed.alpha = 1 - this._ratio); + }), + ItemTimer_createClass(ProgressBar, [ + { + key: "ratio", + get: function () { + return this._ratio; + }, + set: function (t) { + (this._ratio = V.clamp(t)), this.update(); + }, + }, + ]), + ProgressBar + ); + })(c.Container), + Te = (function (r) { + function Bar(t, e, i) { + var n; + ((n = r.call(this) || this).w = t), (n.h = e); + for (var o = Math.ceil(n.w / 11), s = 0; s < o; s++) { + var a = c.Sprite.from("item_duration_bar.png"); + n.addChild(a), (a.x = 11 * s), (a.anchor.y = 0.5), (a.width = 8), (a.height = n.h), i && (a.tint = i); + } + return n; + } + return ItemTimer_inheritsLoose(Bar, r), Bar; + })(c.Container); + + function HUDSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function HUDSystem_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + + function HUDSystem_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var Pe = (function (n) { + function HudSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).view = new c.Container()), + (i.game = t.game), + i.game.onReset.add(HUDSystem_assertThisInitialized(i)), + i.game.onRun.add(HUDSystem_assertThisInitialized(i)), + i.game.onPause.add(HUDSystem_assertThisInitialized(i)), + i.game.onResume.add(HUDSystem_assertThisInitialized(i)), + i.game.onGameover.add(HUDSystem_assertThisInitialized(i)), + i.game.onRevive.add(HUDSystem_assertThisInitialized(i)), + (i.countUpdate = 1), + i + ); + } + HUDSystem_inheritsLoose(HudSystem, n); + var t = HudSystem.prototype; + return ( + (t.build = function () { + this._built || + ((this._built = !0), + (this.distance = new Me("base_long.png")), + this.view.addChild(this.distance), + (this.coins = new Me("base_long.png", "icon_coin_large.png")), + this.view.addChild(this.coins), + (this.multiplier = new Ee(this.game)), + this.view.addChild(this.multiplier), + (this.countdown = new c.Text("0", { + fill: "white", + align: "center", + fontSize: 80, + fontFamily: "Titan One", + stroke: "black", + strokeThickness: 5, + })), + this.countdown.anchor.set(0.5), + this.view.addChild(this.countdown), + (this.countdown.visible = !1), + (this.timers = new c.Container()), + this.view.addChild(this.timers), + this.resize()); + }), + (t.update = function (t) { + if (this.game.state === pn.RUNNING && this._built && !(0 < this.countUpdate--)) { + this.countUpdate = 2; + var e = this.game.stats; + this.distance.getText() <= e.score && this.distance.setText(e.score, 6), this.coins.setText(e.coins), (this.multiplier.text = "x" + e.multiplier), this.multiplier.update(t); + } + }), + (t.reset = function () { + (this.view.visible = !1), this.message && (this.message.text = ""); + }), + (t.run = function () { + this.build(), this.distance.setText(this.game.stats.score, 6), (this.view.visible = !0), this.game.stage.addChild(this.view), this.message && (this.message.text = ""); + }), + (t.pause = function () { + this.clearCountdown(); + }), + (t.resume = function () { + this.clearCountdown(), (this.view.visible = !0); + }), + (t.gameover = function () { + this.view.visible = !1; + }), + (t.revive = function () { + this.view.visible = !0; + }), + (t.resize = function (t, e, i) { + (this.sw = t || this.sw), + (this.sh = e || this.sh), + (this.sr = i || this.sr), + (this.s = this.sh / (667 * this.sr)), + (this.w = this.sw / this.s), + (this.h = this.sh / this.s), + this.view.scale.set(this.s), + this._built && + ((this.distance.x = this.w - 110), + (this.distance.y = 60), + (this.coins.x = this.w - 170), + (this.coins.y = 160), + (this.countdown.x = this.w / 2), + (this.countdown.y = this.h / 2), + (this.multiplier.x = this.distance.x - 170), + (this.multiplier.y = this.distance.y), + this.message && ((this.message.x = this.w / 2), (this.message.y = 120)), + this.stats && ((this.stats.x = 10), (this.stats.y = 200)), + this.timers && ((this.timers.x = 0), (this.timers.y = this.h))); + }), + (t.addMessage = function (t) { + this.message && (0 <= this.msgs.indexOf(t) || (this.msgs.push(t), (this.message.text = this.msgs.join("\n")))); + }), + (t.clearMessage = function (t) { + if (this.message) + if (void 0 !== t) { + var e = this.msgs.indexOf(t); + e < 0 || (this.msgs.splice(e, 1), (this.message.text = this.msgs.join("\n"))); + } else this.msgs.length = 0; + }), + (t.runCountdown = function (t, i) { + this.clearCountdown(), + (this.view.visible = !0), + this.view.addChild(this.countdown), + (this.countdown.visible = !0), + function _runStep(t) { + if (0 == t) return i(), void (this.countdown.visible = !1); + var e = "Starting in\n" + t; + (this.countdown.text = e), (this.countdown.visible = !0), (this._timeout = setTimeout(_runStep.bind(this), 900, t - 1)); + }.call(this, t); + }), + (t.clearCountdown = function () { + this._timeout && clearTimeout(this._timeout), this.countdown && (this.countdown.visible = !1); + }), + (t.addItemTimer = function (t) { + this.timers[t] || (this.timers[t] = new Se(this.game, t)); + var e = this.timers[t]; + return this.timers.addChild(e), e.show(), this.organizeTimers(), e; + }), + (t.removeItemTimer = function (t) { + var e = this.timers[t]; + e && (e.hide(), this.organizeTimers()); + }), + (t.updateItemTimer = function (t, e) { + var i = this.timers[t]; + i && (i.ratio = e); + }), + (t.organizeTimers = function () { + for (var t = this.timers.children.length; t--; ) { + var e = this.timers.children[t]; + (e.x = e.w / 2 + 20), (e.y = -t * (e.h + 20) - e.h / 2 - 20); + } + (this.timers.x = 0), (this.timers.y = this.h); + }), + HudSystem + ); + })(f.a), + Me = (function (s) { + function Label(t, e) { + var i; + ((i = s.call(this) || this).numChars = 6), + (i.spacing = 30), + (i._txt = -1), + t && ((i.base = c.Sprite.from(t)), i.base.anchor.set(0, 0.5), (i.base.alpha = 0.5), i.addChild(i.base)), + e && ((i.icon = c.Sprite.from(e)), i.icon.anchor.set(0.5), i.addChild(i.icon), (i.icon.x = i.numChars * i.spacing * 0.5 + 35), i.icon.scale.set(0.75)), + (i.text = new c.Container()), + i.addChild(i.text); + for (var n = 0; n < i.numChars; n++) { + var o = new c.Text("0", { + fill: "white", + align: "center", + fontSize: 50, + fontFamily: "Lilita One", + }); + o.anchor.set(0.5), i.text.addChild(o); + } + return i; + } + HUDSystem_inheritsLoose(Label, s); + var t = Label.prototype; + return ( + (t.setText = function (t, e) { + if (t !== this._txt) { + for (var i = (this._txt = t) + "", n = e || i.length; i.length < this.numChars; ) { + i = (i.length < e ? "0" : " ") + i; + } + for (var o = this.numChars; o--; ) { + var s = this.text.children[o], + a = i[o]; + o < i.length && (s.text = a), (s.visible = " " !== a), (s.x = o * this.spacing); + } + (this.text.x = -(this.numChars - 1) * this.spacing * 0.5), (this.base.x = this.numChars * this.spacing * 0.5 - n * this.spacing - 20); + } + }), + (t.getText = function () { + return this._txt; + }), + Label + ); + })(c.Container), + Ee = (function (s) { + function MultiplierLabel(t) { + var e; + (e = s.call(this) || this).game = t; + var i = c.Sprite.from("base_short.png"); + i.anchor.set(0.5), (i.alpha = 0.5), (e.base = i), e.addChild(i); + var n = new c.Text("0", { + align: "center", + fill: 16702212, + fontSize: 50, + fontFamily: "Lilita One", + }); + n.anchor.set(0.5), e.addChild(n), (e.label = n); + var o = new c.Text("0", { + align: "center", + fill: 7829367, + fontSize: 50, + fontFamily: "Lilita One", + }); + return o.anchor.set(0.5), e.addChild(o), (e.labelOverlay = o), e; + } + var t, e, i; + return ( + HUDSystem_inheritsLoose(MultiplierLabel, s), + (MultiplierLabel.prototype.update = function (t) { + var e = this.game.hero.multiplier.isOn(); + this.labelOverlay.alpha = e ? 0.5 + 0.4 * Math.sin(0.1 * this.game.time) : 0; + }), + (t = MultiplierLabel), + (e = [ + { + key: "text", + get: function () { + return this.label.text; + }, + set: function (t) { + this.label.text !== t && ((this.label.text = t), (this.labelOverlay.text = t)); + }, + }, + ]) && HUDSystem_defineProperties(t.prototype, e), + i && HUDSystem_defineProperties(t, i), + MultiplierLabel + ); + })(c.Container); + + function StatsSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Oe = { + x: 0, + y: 0, + z: 0, + distance: 0, + distanceDelta: 0, + score: 0, + coins: 0, + keys: 0, + chunkIndex: 0, + chunkName: "", + chunkStart: 0, + chunkEnd: 0, + chunkLength: 0, + block: 0, + hoverboards: 1, + revivals: 1, + multiplier: 1, + route: "", + time: 0, + delta: 0, + }, + Re = (function (n) { + var t, e; + + function StatsSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + (i = n.call(this, t, e) || this), + t.game.onReset.add( + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(i) + ), + (i.game = t.game), + (i.data = {}), + i.reset(), + i + ); + } + (e = n), ((t = StatsSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = StatsSystem.prototype; + return ( + (a.reset = function () { + Object.assign(this.data, Oe), (this.data.revivals = this.game.app.config.revivals || B.revivals || 0); + }), + (a.preupdate = function () { + (this.x = this.game.hero.transform.position.x), (this.y = this.game.hero.transform.position.y - 5.5), (this.z = this.game.hero.transform.position.z); + }), + (a.setCurrentChunk = function (t) { + (this.data.chunkName = t.name), (this.data.chunkStart = t.start), (this.data.chunkEnd = t.end), (this.data.chunkLength = t.length); + }), + (a.toString = function () { + var t = ["level", "route", "chunk"], + e = ""; + for (var i in t) { + var n = t[i]; + "z" !== n && "distance" !== n && "distanceDelta" !== n && (e += n + ": " + this[n] + "\n"); + } + return e; + }), + (i = StatsSystem), + (o = [ + { + key: "multiplier", + get: function () { + return this.data.multiplier; + }, + set: function (t) { + this.data.multiplier = t; + }, + }, + { + key: "x", + get: function () { + return this.data.x; + }, + set: function (t) { + this.data.x = t; + }, + }, + { + key: "y", + get: function () { + return this.data.y; + }, + set: function (t) { + this.data.y = t; + }, + }, + { + key: "z", + get: function () { + return this.data.z; + }, + set: function (t) { + (this.data.z = t), + (this.data.distanceDelta = -t - this.data.distance), + (this.data.distance = -t), + (this.data.block = (this.data.distance / B.blockSize) | 0), + (this.data.score += this.data.distanceDelta * this.data.multiplier); + }, + }, + { + key: "distance", + get: function () { + return this.data.distance; + }, + set: function (t) { + (this.data.z = -t), + (this.data.distanceDelta = t - this.data.distance), + (this.data.distance = t), + (this.data.block = (this.data.distance / B.blockSize) | 0), + (this.data.score += this.data.distanceDelta * this.data.multiplier); + }, + }, + { + key: "distanceDelta", + get: function () { + return this.data.distanceDelta; + }, + }, + { + key: "score", + get: function () { + return Math.floor(0.1 * this.data.score); + }, + }, + { + key: "coins", + get: function () { + return this.data.coins; + }, + set: function (t) { + this.data.coins = t; + }, + }, + { + key: "keys", + get: function () { + return this.data.keys; + }, + set: function (t) { + this.data.keys = t; + }, + }, + { + key: "chunkIndex", + get: function () { + return this.data.chunkIndex; + }, + set: function (t) { + this.data.chunkIndex = t; + }, + }, + { + key: "hoverboards", + get: function () { + return this.data.hoverboards; + }, + set: function (t) { + this.data.hoverboards = t; + }, + }, + { + key: "speed", + get: function () { + if (B.speed) return B.speed; + var t = this.data.time, + e = 240; + t < 180 && (e = 110 + 130 * (t / 180)); + return e / 60; + }, + }, + { + key: "level", + get: function () { + return Math.floor(this.data.time / 20); + }, + }, + { + key: "levelName", + get: function () { + switch (this.level) { + case 0: + return "easy"; + case 1: + return "normal"; + case 2: + return "hard"; + default: + return "expert"; + } + }, + }, + { + key: "time", + get: function () { + return this.data.time; + }, + set: function (t) { + this.data.time = t; + }, + }, + { + key: "delta", + get: function () { + return this.data.delta; + }, + set: function (t) { + this.data.delta = t; + }, + }, + { + key: "route", + set: function (t) { + this.data.route = t; + }, + get: function () { + return this.data.route; + }, + }, + { + key: "chunk", + get: function () { + return this.data.chunkName; + }, + }, + { + key: "revivals", + get: function () { + return this.data.revivals; + }, + set: function (t) { + this.data.revivals = t; + }, + }, + { + key: "profile", + get: function () { + return this._profile || (this._profile = {}), Object.assign(this._profile, this.data), (this._profile.speed = this.speed), (this._profile.level = this.level), (this._profile.levelName = this.levelName), this._profile; + }, + }, + ]) && StatsSystem_defineProperties(i.prototype, o), + s && StatsSystem_defineProperties(i, s), + StatsSystem + ); + })(f.a); + + function PoolSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Ie = (function (n) { + var t, e; + + function PoolSystem(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).toRemove = []), i; + } + (e = n), ((t = PoolSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = PoolSystem.prototype; + return ( + (i.prepopulate = function (t, e) { + Le.getPool(t).prepopulate(e); + }), + (i.get = function (t, e) { + var i = Le.get(t); + return i.onEntityDestroyed.add(this), i._init.run(e || {}), i; + }), + (i.factory = function (t, e) { + var i = Le.get(_class); + return i.onEntityDestroyed.add(this), i._init.run(data || {}), i; + }), + (i.entityDestroyed = function (t) { + var e = this; + t.onEntityDestroyed.remove(this), + setTimeout(function () { + e["return"](t); + }, 200); + }), + (i["return"] = function (t) { + t._reset.run(), t.resetSignals(), this.toRemove.push(t); + }), + (i.postupdate = function () { + for (var t = 0; t < this.toRemove.length; t++) { + var e = this.toRemove[t]; + Le["return"](e); + } + this.toRemove.length = 0; + }), + (i.empty = function () { + this.postupdate(); + }), + PoolSystem + ); + })(f.a), + Le = (function () { + function Pool(t) { + t instanceof Object + ? (this._create = function () { + return new t(); + }) + : (this._create = function () { + return t(); + }), + (this.classType = t), + (this.pool = []), + (this.totalCreated = 0), + (this.debug = !1); + } + var t, + e, + i, + n = Pool.prototype; + return ( + (n.prepopulate = function (t) { + for (var e = 0; e < t; e++) this.pool.push(this._create()); + }), + (n.get = function () { + var t = this.pool.pop(); + return t || (this.totalCreated++, this.debug, (t = this._create())), t; + }), + (n["return"] = function (t) { + -1 === this.pool.indexOf(t) && this.pool.push(t), this.debug; + }), + (Pool.getPool = function (t) { + var e = this.getClassId(t); + return Pool.pools[e] || (Pool.pools[e] = new Pool(t)), Pool.pools[e]; + }), + (Pool.get = function (t) { + var e = this.getPool(t).get(); + return (e._CLASS_ID = this.getClassId(t)), e; + }), + (Pool["return"] = function (t) { + Pool.pools[t._CLASS_ID]["return"](t); + }), + (Pool.getClassId = function (t) { + return t._CLASS_ID || (t._CLASS_ID = Pool.idGenerator++), t._CLASS_ID; + }), + (t = Pool), + (e = [ + { + key: "total", + get: function () { + return this.pool.length; + }, + }, + ]) && PoolSystem_defineProperties(t.prototype, e), + i && PoolSystem_defineProperties(t, i), + Pool + ); + })(); + (Le.pools = []), (Le.idGenerator = 1); + var je = i(94); + + function ControllerSystem_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + var Fe = (function (n) { + var t, e; + + function ControllerSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).keyboard = new je.a()), + i.keyboard.onKeyPress("left", i.pressLeft.bind(ControllerSystem_assertThisInitialized(i))), + i.keyboard.onKeyPress("up", i.pressUp.bind(ControllerSystem_assertThisInitialized(i))), + i.keyboard.onKeyPress("right", i.pressRight.bind(ControllerSystem_assertThisInitialized(i))), + i.keyboard.onKeyPress("down", i.pressDown.bind(ControllerSystem_assertThisInitialized(i))), + i.keyboard.onKeyPress("space", i.pressAction.bind(ControllerSystem_assertThisInitialized(i))), + (i.view = new c.Graphics()), + (i.view.alpha = 0), + i.view.beginFill(16763904), + i.view.drawRect(0, 0, 4, 4), + i.view.endFill(), + i.view.addListener("pointerdown", i.onPointerDown, ControllerSystem_assertThisInitialized(i)), + i.view.addListener("pointermove", i.onPointerMove, ControllerSystem_assertThisInitialized(i)), + i.view.addListener("pointerup", i.onPointerUp, ControllerSystem_assertThisInitialized(i)), + t.game.onReset.add(ControllerSystem_assertThisInitialized(i)), + t.game.onRun.add(ControllerSystem_assertThisInitialized(i)), + t.game.onPause.add(ControllerSystem_assertThisInitialized(i)), + t.game.onResume.add(ControllerSystem_assertThisInitialized(i)), + t.game.onGameover.add(ControllerSystem_assertThisInitialized(i)), + t.game.onRevive.add(ControllerSystem_assertThisInitialized(i)), + (i.vertical = 0), + (i.horizontal = 0), + (i.action = 0), + (i.pressing = !1), + (i.pressStartX = 0), + (i.pressStartY = 0), + (i.pressCount = 0), + (i.onSwipeHorizontal = new et.a("onSwipeHorizontal", 1)), + (i.onSwipeVertical = new et.a("onSwipeVertical", 1)), + (i.onDoubleTap = new et.a("onDoubleTap")), + i + ); + } + (e = n), ((t = ControllerSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = ControllerSystem.prototype; + return ( + (i.onPointerDown = function (t) { + var e = t.data.global; + 0 < this.pressCount && (this.action = 1), (this.pressCount = 50), (this.pressStartX = e.x), (this.pressStartY = e.y), (this.pressing = !0); + }), + (i.onPointerMove = function (t) { + if (this.pressing) { + var e = t.data.global, + i = e.x - this.pressStartX; + if (60 < Math.abs(i)) return (this.pressing = !1), (this.pressCount = 0), void (this.horizontal = V.sign(i)); + var n = e.y - this.pressStartY; + return 60 < Math.abs(n) ? ((this.pressing = !1), (this.pressCount = 0), void (this.vertical = -V.sign(n))) : void 0; + } + }), + (i.onPointerUp = function (t) { + this.pressing = !1; + }), + (i.onPointerCancel = function (t) { + this.pressing = !1; + }), + (i.pressUp = function () { + this.vertical = 1; + }), + (i.pressDown = function () { + this.vertical = -1; + }), + (i.pressLeft = function () { + this.horizontal = -1; + }), + (i.pressRight = function () { + this.horizontal = 1; + }), + (i.pressAction = function () { + this.action = 1; + }), + (i.update = function () { + 0 < this.pressCount && (this.pressCount -= 1), + this.game.state === pn.RUNNING && + (1 === this.vertical + ? this.onSwipeVertical.dispatch(this.vertical) + : -1 === this.vertical + ? this.onSwipeVertical.dispatch(this.vertical) + : this.horizontal + ? this.onSwipeHorizontal.dispatch(this.horizontal) + : this.action && this.onDoubleTap.dispatch(), + (this.vertical = 0), + (this.horizontal = 0), + (this.action = 0)); + }), + (i.reset = function () { + this.hide(); + }), + (i.show = function () { + (this.view.visible = !0), (this.view.interactive = !0), this.view.visible && this.game.stage.addChild(this.view), this.keyboard.start(); + }), + (i.hide = function () { + (this.view.visible = !1), (this.view.interactive = !1), this.keyboard.stop(); + }), + (i.run = function () { + this.show(); + }), + (i.revive = function () { + this.show(); + }), + (i.pause = function () { + this.hide(); + }), + (i.resume = function () { + this.show(); + }), + (i.gameover = function () { + this.hide(); + }), + (i.resize = function (t, e) { + (this.view.x = 0), (this.view.y = 0), (this.view.width = t), (this.view.height = e); + }), + ControllerSystem + ); + })(f.a); + + function FreeCamera_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + var Ae = (function (n) { + var t, e; + + function FreeCamera(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).axis = new q()), + (i.keyboard = new je.a()), + (i.keyboard._keyCodes[81] = { + label: "q", + state: 0, + preventBubble: !0, + }), + (i.keyboard._keyCodes[69] = { + label: "e", + state: 0, + preventBubble: !0, + }), + i.keyboard.onKeyPress("a", i.pressLeft.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyPress("d", i.pressRight.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyPress("w", i.pressFront.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyPress("s", i.pressBack.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyPress("q", i.pressUp.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyPress("e", i.pressDown.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyRelease("a", i.releaseLeft.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyRelease("d", i.releaseRight.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyRelease("w", i.releaseFront.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyRelease("s", i.releaseBack.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyRelease("q", i.releaseUp.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.onKeyRelease("e", i.releaseDown.bind(FreeCamera_assertThisInitialized(i))), + i.keyboard.stop(), + (i.onMouseMoveBind = i.onMouseMove.bind(FreeCamera_assertThisInitialized(i))), + (i.useDelta = !0), + i + ); + } + (e = n), ((t = FreeCamera).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = FreeCamera.prototype; + return ( + (i.added = function () { + (this._oldParent = this.entity.parent), + this.entity.parent && this.entity.parent.removeChild(this.entity), + (this._rig = this.entity.game.view3d.camera.camera), + (this._rig.x = this.entity.game.camera.rig.mainX), + (this._rig.y = this.entity.game.camera.rig.mainY), + (this._rig.z = this.entity.game.camera.rig.mainZ), + (this._rig.rx = this.entity.game.camera.rig.mainRotX), + (this._rig.ry = this.entity.game.camera.rig.mainRotY), + this.keyboard.start(), + (this.mouseX = 0), + (this.mouseY = 0), + (this.lastMouseX = null), + (this.lastMouseY = null), + (this.deltaX = 0), + (this.deltaY = 0), + (this.speed = 0), + this.axis.reset(), + (this._updateProjection = this.entity.camera.updateProjection), + (this.entity.camera.updateProjection = FreeCamera_updateProjection), + window.addEventListener("mousemove", this.onMouseMoveBind); + }), + (i.removed = function () { + this._oldParent && this._oldParent.addChild(this.entity), (this.entity.camera.updateProjection = this._updateProjection), this.keyboard.stop(), window.removeEventListener("mousemove", this.onMouseMoveBind), (this._rig = null); + }), + (i.onMouseMove = function (t) { + (this.mouseX = t.clientX - window.innerWidth / 2), (this.mouseY = t.clientY - window.innerHeight / 2), null === this.lastMouseX && (this.lastMouseX = this.mouseX), null === this.lastMouseY && (this.lastMouseY = this.mouseY); + }), + (i.update = function () { + if (this._rig) { + null !== this.lastMouseX && ((this.deltaX = this.mouseX - this.lastMouseX), (this.deltaY = this.mouseY - this.lastMouseY), (this.lastMouseX = this.mouseX), (this.lastMouseY = this.mouseY)), + 0 !== this.axis.z || 0 !== this.axis.x ? ((this.speed += 0.02), 5 < this.speed && (this.speed = 5)) : (this.speed = 0.5); + this.useDelta ? ((this._rig.ry -= 0.01 * this.deltaX), (this._rig.rx -= 0.01 * this.deltaY)) : ((this._rig.ry = 0.01 * -this.mouseX), (this._rig.rx = 0.01 * -this.mouseY)), + (this._rig.z += Math.cos(this._rig.ry) * (this.axis.z * this.speed)), + (this._rig.x += Math.sin(this._rig.ry) * (this.axis.z * this.speed)), + (this._rig.z += Math.cos(this._rig.ry + V.PI_HALF) * (this.axis.x * this.speed)), + (this._rig.x += Math.sin(this._rig.ry + V.PI_HALF) * (this.axis.x * this.speed)), + (this._rig.y -= Math.sin(this._rig.rx) * (this.axis.z * this.speed)), + (this._rig.y += Math.sin(this._rig.rx + V.PI_HALF) * (this.axis.y * this.speed)); + } + }), + (i.pressFront = function () { + this.axis.z = -1; + }), + (i.pressBack = function () { + this.axis.z = 1; + }), + (i.pressLeft = function () { + this.axis.x = -1; + }), + (i.pressRight = function () { + this.axis.x = 1; + }), + (i.pressUp = function () { + this.axis.y = 1; + }), + (i.pressDown = function () { + this.axis.y = -1; + }), + (i.releaseFront = function () { + -1 === this.axis.z && (this.axis.z = 0); + }), + (i.releaseBack = function () { + 1 === this.axis.z && (this.axis.z = 0); + }), + (i.releaseLeft = function () { + -1 === this.axis.x && (this.axis.x = 0); + }), + (i.releaseRight = function () { + 1 === this.axis.x && (this.axis.x = 0); + }), + (i.releaseUp = function () { + 1 === this.axis.y && (this.axis.y = 0); + }), + (i.releaseDown = function () { + -1 === this.axis.y && (this.axis.y = 0); + }), + FreeCamera + ); + })(J.a), + De = U.quat.create(), + Ge = U.vec3.create(); + + function FreeCamera_updateProjection(t, e) { + void 0 === this.x && (this.x = 0), + void 0 === this.y && (this.y = 0), + void 0 === this.z && (this.z = 0), + void 0 === this.rx && (this.rx = 0), + void 0 === this.ry && (this.ry = 0), + void 0 === this.rz && (this.rz = 0), + U.quat.identity(De), + U.quat.rotateZ(De, De, this.rz), + U.quat.rotateY(De, De, this.ry), + U.quat.rotateX(De, De, this.rx), + (Ge[0] = this.x), + (Ge[1] = this.y), + (Ge[2] = this.z), + U.mat4.fromRotationTranslation(this.view, De, Ge), + U.mat4.perspective(this.projection, this.fov * (Math.PI / 180), t / e, this.near, this.far), + U.mat4.invert(this.view, this.view), + this.dirty++; + } + + function DebugSystem_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + var Be = (function (n) { + var t, e; + + function DebugSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).game = t.game), + i.game.onReset.add(DebugSystem_assertThisInitialized(i)), + (i.running = !1), + window.addEventListener("keydown", i.onKeyDown.bind(DebugSystem_assertThisInitialized(i))), + (i.view = new c.Container()), + (i.title = new c.Text("DEBUG MODE", { + fill: "red", + align: "center", + fontSize: 18, + fontFamily: "Arial Black", + })), + i.view.addChild(i.title), + i.title.anchor.set(0.5), + (i.title.y = 12), + (i.stats = new c.Text("", { + fill: "white", + fontSize: 18, + fontFamily: "Arial", + stroke: !0, + strokeThickness: 4, + lineJoin: "round", + })), + i.view.addChild(i.stats), + (i.stats.x = 10), + (i.stats.y = 200), + (i.view.visible = B.debug), + setInterval(function () { + return i._update(0); + }, 100), + i + ); + } + (e = n), ((t = DebugSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = DebugSystem.prototype; + return ( + (i.reset = function () { + this.game.stage.addChild(this.view); + }), + (i._update = function (t) { + if (this.game && !this.game.app.crashed) { + var e = [ + DebugSystem_str("ENGINE", this.game.profile), + DebugSystem_str("STATS", this.game.stats.profile), + DebugSystem_str("CAMERA", this.game.camera.profile), + DebugSystem_str("PHYSICS", this.game.physics.stats), + DebugSystem_str("ROUTE", this.game.route.profile), + ]; + (this.stats.text = e.join("\n")), (this.title.x = this.game.w / 2); + } + }), + (i.onKeyDown = function (t) { + "z" === t.key && this.toggle(), + this.running || + ("t" === t.key && this.game.level.reshuffle(), + "m" === t.key && this.game.hero.magnet.turnOn(), + "j" === t.key && this.game.hero.jetpack.turnOn(), + "q" === t.key && this.game.hero.pogo.turnOn(), + "s" === t.key && this.game.hero.sneakers.turnOn(), + "e" === t.key && this.game.hero.multiplier.turnOn()); + }), + (i.toggle = function () { + this.running ? this.finish() : this.begin(); + }), + (i.begin = function () { + this.running || ((this.running = !0), (this.game.timeScale = 0), this.game.view3d.camera.add(Ae)); + }), + (i.finish = function () { + this.running && ((this.running = !1), this.game.view3d.camera.remove(Ae), (this.game.timeScale = this.game.config.timeScale)); + }), + (i.resize = function (t, e) {}), + DebugSystem + ); + })(f.a); + + function DebugSystem_str(t, e, i) { + i || (i = Object.keys(e)); + var n = ""; + for (var o in i) { + var s = i[o], + a = e[s]; + "number" == typeof a && a % 1 != 0 && (a = a.toFixed(3)), (n += s + ": " + a + "\n"); + } + return t.toUpperCase() + "\n" + n; + } + var Ne = (function (n) { + var t, e; + + function FramebufferSystem(t) { + var e; + (e = n.call(this, t) || this).renderer = t; + var i = c.utils.hex2rgb(9753343); + return (e.r = i[0]), (e.g = i[1]), (e.b = i[2]), (e.a = 1), e; + } + return ( + (e = n), + ((t = FramebufferSystem).prototype = Object.create(e.prototype)), + ((t.prototype.constructor = t).__proto__ = e), + (FramebufferSystem.prototype.prerender = function () { + var t = this.renderer.gl; + t.clearColor(this.r, this.g, this.b, this.a), t.clear(t.COLOR_BUFFER_BIT | t.DEPTH_BUFFER_BIT); + }), + FramebufferSystem + ); + })(c.System); + var Xe = (function (n) { + var t, e; + + function Smoke(t, e) { + var i; + return ( + void 0 === t && (t = 5), + void 0 === e && (e = !0), + ((i = n.call(this) || this).speed = t), + (i.view = i.getView(e)), + (i.view2 = i.getView(e)), + (i.view2.y = -73), + (i.view2.scale.x = 1), + (i.view2.scale.y = 2), + (i.view2.scale.z = 2), + i + ); + } + (e = n), ((t = Smoke).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Smoke.prototype; + return ( + (i.getView = function (t) { + var e = H.getEntityClone("jetpackCloud", "jetpackSmoke", !1, G); + return ( + (e.view3d.state.blend = !0), + (e.view3d.state.culling = !1), + (e.view3d.material.map.baseTexture.wrapMode = c.WRAP_MODES.REPEAT), + this.addChild(e), + (e.ry = 0.5 * -Math.PI), + (e.rx = 0.5 * Math.PI), + e.scale.set(0.25), + (e.y = -12), + (e.active = !1), + (e.view3d.state.depthTest = t), + e + ); + }), + (i.update = function (t) { + this.view.active && ((this.view.view3d.material.map.orig.x -= t * this.speed), (this.view2.view3d.material.map.orig.x -= t * this.speed)); + }), + (i.turnOn = function () { + (this.view.active = !0), (this.view2.active = !0); + }), + (i.turnOff = function () { + var t = this; + (this.view.active = !1), + (this.view2.active = !1), + this.parent && this.parent.removeChild(this), + setTimeout(function () { + (t.view.active = !1), (t.view2.active = !1), t.parent && t.parent.removeChild(t); + }, 100); + }), + Smoke + ); + })(v.a); + + function Jetpack_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Ye = (function (n) { + var t, e; + + function Jetpack(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).distance = 0), (i.distanceTotal = 1), (i.speed = 0), (i.ceiling = 100), (i.coinDistance = 30), i; + } + (e = n), ((t = Jetpack).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Jetpack.prototype; + return ( + (a.show = function () { + this.view || (this.view = H.getEntityCloneOpaque("/powerups_jetpack", "props_tex", !1)), (this.view.ry = Math.PI), (this.view.y = 1), (this.view.z = 0.5), this.view.scale.set(0.6); + var t = this.entity.anim.scenes[2]; + H.findEntity("LowerSpine_jnt", t.pixiTree, 10).addChild(this.view), + this.entity.game.sfx.play("special_jetpack_start"), + this.entity.game.sfx.play("special_jetpack", { + loop: !0, + }), + this.entity.game.hud.addItemTimer("jetpack"), + this.jetpackSmokeOn(); + }), + (a.hide = function () { + this.entity.game.hud.removeItemTimer("jetpack"), this.jetpackSmokeOff(), this.entity.game.sfx.stop("special_jetpack"), this.view.parent && this.view.parent.removeChild(this.view); + }), + (a.update = function (t) { + if (this.distance) { + this.timer && (this.timer.ratio = this.ratio); + var e = V.lerp(this.entity.body.velocity.z, this.speed, 0.1 * t); + (this.entity.body.velocity.z = e), (this.distance -= this.entity.game.stats.distanceDelta), this.entity.game.hud.updateItemTimer("jetpack", this.ratio); + var i = this.entity.game.stats.y + B.cameraPosY, + n = this.entity.game.stats.z + B.cameraPosZ; + if (((this.entity.game.hero.player.cameraY = i), this.takeOffTime < this.takeOffDuration)) { + (this.takeOffTime += this.entity.game.deltaSecs), this.takeOffTime > this.takeOffDuration && (this.takeOffTime = this.takeOffDuration); + var o = this.takeOffTime / this.takeOffDuration; + St.quartInOut(o); + (this.entity.body.y = V.lerp(this.takeOffStartY, this.takeOffEndY, o)), (this.rig.mainY = V.lerp(this.rigStartY, i, St.sineOut(o))), (this.rig.mainZ = V.lerp(this.rigStartZ, n, St.expoOut(o))); + } else (this.rig.mainY = i), (this.rig.mainZ = n); + (this.rig.mainX = this.entity.game.stats.x * B.cameraModX), + (this.rig.mainRotX = B.cameraRotX + this.entity.game.hero.player.cameraRotX), + (this.entity.player.cameraTargetY = this.entity.body.bottom), + this.smokeLeft && this.smokeLeft.update(t), + this.smokeRight && this.smokeRight.update(t), + this.distance <= 0 && this.turnOff(); + } + }), + (a.turnOn = function () { + this.entity.player.dizzyEnd(), + this.entity.sneakers.turnOff(), + this.entity.pogo.turnOff(), + this.entity.hoverboard.pause(), + this.entity.jump.lock(), + this.entity.roll.lock(), + this.entity.state.set("empty"), + (this.entity.body.velocity.y = 0), + (this.entity.body.ghost = !0), + (this.speed = 2 * -this.entity.game.stats.speed - 1); + var t = -this.entity.body.z, + e = t + 1e3 + 200 * Math.abs(this.speed), + i = this.entity.game.level.setSafeLanding(e); + (this.distanceTotal = i - t), + (this.distance = this.distanceTotal), + (this.takeOffStartY = this.entity.body.y), + (this.takeOffEndY = 100), + (this.takeOffTime = 0), + (this.takeOffDuration = 2), + (this.rig = this.entity.game.camera.takeControl()), + (this.rigStartY = this.rig.mainY), + (this.rigStartZ = this.rig.mainZ), + this.spawnCoins(this.entity.game, this.takeOffEndY, this.distance), + this.show(); + }), + (a.turnOff = function () { + this.distance && + (this.hide(), + (this.entity.body.ghost = !1), + (this.entity.body.ceiling = 999), + (this.entity.body.velocity.y = 0), + this.entity.jump.unlock(), + this.entity.roll.unlock(), + this.entity.game.camera.releaseControl(), + (this.distance = 0), + this.entity.restoreSize(), + this.entity.hoverboard.resume()); + }), + (a.isOn = function () { + return !!this.distance; + }), + (a.spawnCoins = function (t, e, i) { + for (var n = 350 * t.stats.speed, o = i - n, s = o / this.coinDistance, a = o / s, r = 0, h = 0, d = 5, l = 0; l < s; l++) { + var c = t.pool.get(pt); + d ? (d -= 1) : ((r = r ? L.pick(0, r) : L.pick(-1, 0, 1)), (d = 5)), h < r ? (h += 0.5) : r < h && (h -= 0.5), (c.body.x = B.laneWidth * h), (c.body.y = e), (c.body.z = t.stats.z - a * l - n), c.init(), t.addChild(c); + } + }), + (a.jetpackSmokeOn = function () { + this.smokeLeft || + ((this.smokeLeft = new Xe(3, !0)), + (this.smokeLeft.x = 0.9 + this.entity.model.x), + (this.smokeLeft.y = 1.7), + (this.smokeLeft.z = 0.5), + (this.smokeLeft.scale.x = 0.5), + (this.smokeLeft.scale.y = 2), + (this.smokeLeft.rotation.x = -V.PI_HALF), + (this.smokeRight = new Xe(3, !0)), + (this.smokeRight.x = -0.9 + this.entity.model.x), + (this.smokeRight.y = this.smokeLeft.y), + (this.smokeRight.z = this.smokeLeft.z), + (this.smokeRight.scale.x = -this.smokeLeft.scale.x), + (this.smokeRight.scale.y = this.smokeLeft.scale.y), + (this.smokeRight.rotation.x = this.smokeLeft.rotation.x)), + this.entity.addChild(this.smokeLeft), + this.entity.addChild(this.smokeRight), + this.smokeLeft.turnOn(), + this.smokeRight.turnOn(); + }), + (a.jetpackSmokeOff = function () { + this.smokeLeft && (this.smokeLeft.turnOff(), this.smokeRight.turnOff()); + }), + (i = Jetpack), + (o = [ + { + key: "ratio", + get: function () { + return this.distance / this.distanceTotal; + }, + }, + ]) && Jetpack_defineProperties(i.prototype, o), + s && Jetpack_defineProperties(i, s), + Jetpack + ); + })(J.a); + var He = (function (n) { + var t, e; + + function Pogo(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).count = 0), + (i.onTurnOn = new et.a("onPogoTurnOn")), + (i.onTurnOff = new et.a("onPogoTurnOff")), + (i.onHangtime = new et.a("onPogoHangtime")), + (i.settings = { + jumpHeight: 150, + jumpDistance: 300, + characterChangeTrackLength: 60, + finalJumpSpeed: 0, + rows: 14, + startRowPosition: 1, + endRowPosition: 1, + fadeInPosition: 0.1, + hangtimePosition: 0.6, + smoothCameraXDuration: 0.05, + }), + i + ); + } + (e = n), ((t = Pogo).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Pogo.prototype; + return ( + (i.show = function () { + this.view || (this.view = H.getEntityCloneOpaque("/powerups_rocketPogo", "props_tex", !1)); + var t = this.entity.anim.scenes[4]; + H.findEntity("attachPoint1", t.pixiTree, 10).addChild(this.view), this.pogoSmokeOn(); + }), + (i.hide = function () { + this.pogoSmokeOff(), this.view.parent && this.view.parent.removeChild(this.view); + }), + (i.turnOn = function () { + this.show(), + (this.hangtime = !1), + this.entity.sneakers.turnOff(), + this.entity.jetpack.turnOff(), + this.entity.player.dizzyEnd(), + this.entity.hoverboard.pause(), + this.entity.roll.cancel(), + this.onTurnOn.dispatch(), + this.entity.jump.lock(), + (this.camera = this.entity.game.camera.takeControl()), + (this.entity.body.ghost = !0), + this.entity.anim.play(["pogostick_kicking"], { + loop: !1, + }), + (this.position = this.entity.body.center.clone()), + (this.positionEnd = this.position.z - this.settings.jumpDistance), + (this.count = 1), + this.spawnCoins(this.entity.game, this.entity.game.hero.body), + (this.cameraStartY = this.camera.mainY), + this.entity.roll.onStart.add(this); + }), + (i.update = function (t) { + if (this.count) { + var e = this.entity.body.z, + i = this.entity.game.stats.speed; + if (e > this.positionEnd) { + var n = e - i * t, + o = -(n - this.position.z) / this.settings.jumpDistance, + s = (this.jumpCurveEvaluate(o), this.settings.jumpHeight, this.position.y + 1 * this.jumpCurveEvaluate(o) * this.settings.jumpHeight); + (s = V.lerp(this.position.y, s, o / this.settings.fadeInPosition)), + (this.entity.body.bottom = s), + o > this.settings.hangtimePosition && + !this.hangtime && + ((this.hangtime = !0), + this.onHangtime.dispatch(), + this.pogoSmokeOff(), + this.entity.anim.play(["pogostick_Hangtime_flying", "pogostick_Hangtime_kick", "pogostick_Hangtime_front_flip1"], { + loop: !1, + })); + var a = 0.8 * St.sineIn(o), + r = this.entity.game.stats.x * B.cameraModX, + h = this.entity.game.stats.y + B.cameraPosY * a, + d = this.entity.game.stats.z + B.cameraPosZ, + l = St.expoOut(o); + (this.entity.player.cameraY = h), (this.camera.mainX = r), (this.camera.mainY = V.lerp(this.cameraStartY, h, l)), (this.camera.mainZ = d); + var c = this.camera.mainY - this.entity.game.stats.y, + u = this.camera.mainZ - this.entity.game.stats.z + 50; + (this.camera.mainRotX = Math.atan2(u, c) - 0.5 * Math.PI), (this.entity.player.cameraTargetY = s), (this.entity.player.cameraY = s), (this.entity.body.velocity.y = 0); + } else this.turnOff(); + this.smoke && this.smoke.update(t); + } + }), + (i.turnOff = function () { + this.count && + (this.entity.roll.onStart.remove(this), this.onTurnOff.dispatch(), (this.entity.body.ghost = !1), this.entity.jump.unlock(), this.entity.game.camera.releaseControl(), this.entity.hoverboard.resume(), (this.count = 0)); + }), + (i.onRollStart = function () { + this.entity.game.sfx.stop("special_jetpack"), this.turnOff(); + }), + (i.jumpCurveEvaluate = function (t) { + return St.quartOut(t); + }), + (i.cameraCurveEvaluate = function (t) { + return St.expoOut(t); + }), + (i.cameraAimFollowCurveEvaluate = function (t) { + return St.quadOut(t); + }), + (i.isOn = function () { + return !!this.count; + }), + (i.spawnCoins = function (t, e) { + for (var i = this.entity.body.y, n = i + this.settings.jumpHeight, o = this.entity.body.z, s = o - this.settings.jumpDistance, a = i, r = o, h = this.settings.rows + 1, d = 0; d <= h; d++) + if (!(d < 1)) { + var l = d / h, + c = this.jumpCurveEvaluate(l); + (a = V.lerp(i, n, c)), (r = V.lerp(o, s, l)), d < h ? this.spawnCoinsRow(a, r) : this.spawnPowerup(a, r); + } + }), + (i.spawnCoinsRow = function (t, e) { + for (var i = 3; i--; ) { + var n = this.entity.game.pool.get(pt); + (n.body.x = (i - 1) * B.laneWidth), (n.body.bottom = t), (n.body.z = e), n.init(), this.entity.game.addChild(n); + } + }), + (i.spawnPowerup = function (t, e) { + var i = Tt.spawn(this.entity.game, ["sneakers", "jetpack", "magnet", "multiplier"]); + (i.body.x = L.pick(-1, 0, 1) * B.laneWidth), (i.body.bottom = t), (i.body.z = e); + }), + (i.pogoSmokeOn = function () { + this.smoke || ((this.smoke = new Xe(5)), (this.smoke.scale.x = 0.5), (this.smoke.scale.y = 1.1), (this.smoke.y = -3)), + this.view.addChild(this.smoke), + this.smoke.turnOn(), + this.entity.game.sfx.play("special_jetpack", { + loop: !0, + }); + }), + (i.pogoSmokeOff = function () { + this.smoke && (this.smoke.turnOff(), this.entity.game.sfx.stop("special_jetpack")); + }), + Pogo + ); + })(J.a); + + function Sneakers_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Ue = (function (n) { + var t, e; + + function Sneakers(t, e) { + var i; + return ( + void 0 === e && (e = {}), + (i = n.call(this, t, e) || this), + t.body.onCollisionEnter.add( + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(i) + ), + (i.mod = 0), + i + ); + } + (e = n), ((t = Sneakers).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Sneakers.prototype; + return ( + (a.show = function () { + this.left || + ((this.left = H.getEntityCloneOpaque("/powerups_superSneakers", "props_tex", !1)), + (this.left.rx = 0.5 * Math.PI), + (this.left.ry = 0.5 * Math.PI), + (this.left.y -= 0.5), + (this.left.z += 0.5), + this.left.scale.set(0.5), + (this.right = H.getEntityCloneOpaque("/powerups_superSneakers", "props_tex", !1)), + (this.right.rx = 0.5 * -Math.PI), + (this.right.ry = 0.5 * Math.PI), + (this.right.y += 0.5), + (this.right.z -= 0.5), + this.right.scale.set(0.5)); + var t = this.entity.anim.scenes[1], + e = H.findEntity("L_Toes_jnt", t.pixiTree, 10), + i = H.findEntity("R_Toes_jnt", t.pixiTree, 10); + e.addChild(this.left), i.addChild(this.right), this.entity.game.hud.addItemTimer("sneakers"); + }), + (a.hide = function () { + this.left.parent && this.left.parent.removeChild(this.left), this.right.parent && this.right.parent.removeChild(this.right), this.entity.game.hud.removeItemTimer("sneakers"); + }), + (a.update = function (t) { + if (this.time && (!this._activated && this.entity.body.landed && this._activate(), this._activated)) { + (this.time -= this.entity.game.deltaSecs), this.jumpUpdate(t), this.entity.game.hud.updateItemTimer("sneakers", this.ratio); + var e = 0.5 * (this.entity.body.bottom - this.entity.player.cameraY); + this.hitTop && (e *= 0.5), + (this.mod = e), + (this.rig.mainX = this.entity.game.stats.x * B.cameraModX), + (this.rig.mainY = this.entity.game.hero.player.cameraY + B.cameraPosY + this.mod), + (this.rig.mainZ = this.entity.game.stats.z + B.cameraPosZ), + (this.rig.mainRotX = B.cameraRotX), + (this.rig.mainRotY = 0); + var i = this.entity.game.level.currentChunk, + n = 80 < this.entity.body.y; + if (!n && i && i.envTube) { + 70 < this.rig.mainY && (this.rig.mainY = 70); + } + if (!n && i && i.envPillars) { + 60 < this.rig.mainY && (this.rig.mainY = 60); + } + this.time <= 0 && (this.entity.body.landed && !this.ascending ? this.turnOff() : (this.time = 0.01)); + } + }), + (a.turnOn = function () { + (this.mod = 0), + this.entity.pogo.turnOff(), + this.entity.jetpack.turnOff(), + this.entity.hoverboard.cancel(), + (this.hitTop = 0), + (this.duration = 10), + (this.time = this.duration), + (this.gravity = B.gravity), + this.show(), + this.entity.game.controller.onSwipeVertical.add(this); + }), + (a.turnOff = function () { + this.time && + (this.entity.jump.unlock(), + (this.time = 0), + (this.mod = 0), + this.entity.game.controller.onSwipeVertical.remove(this), + this.entity.game.camera.releaseControl(), + this.hide(), + this.entity.state.set("empty"), + (this._activated = !1)); + }), + (a._activate = function () { + this.entity.jump.lock(), (this._activated = !0), this.entity.state.set("empty"), (this.rig = this.entity.game.camera.takeControl()); + }), + (a.isOn = function () { + return !!this.time; + }), + (a.onSwipeVertical = function (t) { + 1 == t && this.jump(); + }), + (a.jump = function (t, e) { + void 0 === t && (t = 40), + void 0 === e && (e = !1), + this.time && + ((!e && this.locked) || + (!e && this.isJumping) || + ((e || this.entity.body.canJump) && + (this.entity.roll && this.entity.roll.cancel(), + this.entity.body.resetGroundChangeTolerance(), + (this.isJumping = !0), + (this.entity.body.y += 1), + (this.entity.body.velocity.y = 0), + (this.jumpHeight = 40), + (this.jumpLength = 150), + (this.startPosY = this.entity.body.y), + (this.startPosZ = this.entity.body.z), + (this.ascending = !0), + this.entity.game.sfx.play("hero_sneakers_jump")))); + }), + (a.jumpUpdate = function (t) { + if (this.isJumping && this.ascending) { + var e = (-(this.entity.body.z - this.startPosZ) / this.jumpLength) * 2, + i = e <= 1 ? e : 1; + 1 <= i && (this.ascending = !1); + var n = this.startPosY + this.jumpHeight * St.expoOut(i) - this.entity.body.y; + (this.entity.body.velocity.y = t ? n / t : 0), (this.ascending && !this.hitTop) || (this.entity.body.velocity.y = 0); + } else this.entity.body.velocity.y -= this.gravity * t; + this.entity.body.bottom <= this.entity.body.ground + 0.01 && this.entity.body.velocity.y <= 0 && ((this.entity.body.bottom = this.entity.body.ground), this.isJumping && this.jumpEnd()); + }), + (a.jumpEnd = function () { + (this.hitTop = 0), (this.isJumping = !1), (this.ascending = !1), (this.entity.body.velocity.y = 0); + }), + (a.jumpCancel = function () { + this.jumpEnd(); + }), + (a.onCollisionEnter = function (t) { + t.flags & $.TOP && ((this.entity.body.velocity.y = 0), (this.hitTop = t.hit.bottom - 10)); + }), + (i = Sneakers), + (o = [ + { + key: "ratio", + get: function () { + return this.time / this.duration; + }, + }, + ]) && Sneakers_defineProperties(i.prototype, o), + s && Sneakers_defineProperties(i, s), + Sneakers + ); + })(J.a); + + function Magnet_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Ve = (function (n) { + var t, e; + + function Magnet(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).count = 0), (i.duration = 10), i; + } + (e = n), ((t = Magnet).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Magnet.prototype; + return ( + (a.createView = function () { + this.view || ((this.view = H.getEntityCloneOpaque("/powerups_coinMagnet", "props_tex", !1)), this.view.scale.set(0.5), (this.view.x = -2), (this.view.rz = 0.5 * Math.PI)); + }), + (a.update = function (t) { + this.count && ((this.count -= this.entity.game.stats.delta), this.entity.game.hud.updateItemTimer("magnet", this.ratio), this.count <= 0 && this.turnOff()); + }), + (a.turnOn = function () { + this.createView(), this.entity.game.hud.addMessage("POWERUP: COIN MAGNET"), this.entity.game.hud.addItemTimer("magnet"), (this.count = this.duration); + var t = this.entity.anim.scenes[1]; + H.findEntity("R_Hand_jnt", t.pixiTree, 10).addChild(this.view), + (this.timer = this.entity.game.sfx.play("special_magnet", { + loop: !0, + })); + }), + (a.turnOff = function () { + this.count && + (this.entity.game.hud.clearMessage("POWERUP: COIN MAGNET"), + this.entity.game.hud.removeItemTimer("magnet"), + (this.count = 0), + this.view.parent && this.view.parent.removeChild(this.view), + this.entity.game.sfx.stop("special_magnet")); + }), + (a.isOn = function () { + return !!this.count; + }), + (i = Magnet), + (o = [ + { + key: "ratio", + get: function () { + return this.count / this.duration; + }, + }, + ]) && Magnet_defineProperties(i.prototype, o), + s && Magnet_defineProperties(i, s), + Magnet + ); + })(J.a); + + function Particles_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function Particles_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var qe = { + EntityClass: null, + container: null, + rate: 5, + spawns: 1, + life: 30, + color: null, + x: 0, + y: 0, + z: 0, + xMod: [0, 0], + yMod: [0, 0], + zMod: [0, 0], + velocityX: 0, + velocityY: 0, + velocityZ: 0, + velocityXMod: [0, 0], + velocityYMod: [0, 0], + velocityZMod: [0, 0], + forceX: 0, + forceY: 0, + forceZ: 0, + forceXMod: [0, 0], + forceYMod: [0, 0], + forceZMod: [0, 0], + scaleX: 1, + scaleY: 1, + scaleZ: 1, + scaleXMod: [0, 0], + scaleYMod: [0, 0], + scaleZMod: [0, 0], + growX: 0, + growY: 0, + growZ: 0, + growXMod: [0, 0], + growYMod: [0, 0], + growZMod: [0, 0], + }, + We = (function (n) { + function Particles(t, e) { + var i; + return void 0 === e && (e = {}), (e = Object.assign({}, qe, e)), (i = n.call(this, t, e) || this).setup(e), (i._time = 0), (i.rateCount = 0), (i.list = []), (i.idle = !0), (i.delta = 0), i; + } + Particles_inheritsLoose(Particles, n); + var t, + e, + i, + o = Particles.prototype; + return ( + (o.setup = function (t) { + (this.data = Object.assign({}, qe, t)), this.reset(); + }), + (o.reset = function () { + this.list = []; + }), + (o._update = function (t) { + this.delta = t; + }), + (o.update = function (t) { + if (!this.idle) { + t || (t = this.delta), (this.delta = t); + for (var e = this.list.length; e--; ) { + var i = this.list[e].particle; + i.updateParticle(t), i.data.life <= 0 && this.removeParticle(e); + } + (this.idle = !this.list.length && !this._time), + this._time <= 0 || ((this._time -= t), this._time < 0 && (this._time = 0), (this.rateCount -= t), this.rateCount <= 0 && (this.spawn(this.data.spawns), (this.rateCount = this.data.rate))); + } + }), + (o.run = function (t) { + void 0 === t && (t = 9999999), (this._time = t), (this.rateCount = 0), (this.idle = !1); + }), + (o.stop = function () { + this._time = 0; + }), + (o.clear = function () { + this.stop(); + for (var t = this.list.length; t--; ) this.removeParticle(t); + }), + (o.removeParticle = function (t) { + var e = this.list[t]; + e && (this.list.splice(t, 1), e.parent && (e.parent.removeChild(e), this.entity.game.pool["return"](e))); + }), + (o.spawn = function (t, e) { + void 0 === t && (t = 1), e || (e = this.data), (this.idle = !1); + var i = e.EntityClass, + n = this.entity.game.pool.get(i); + n.particle || n.add(Ze), n.particle.spawn(e), (e.container || this.entity.game).addChild(n), this.list.push(n), (n.particle.active = !0), 1 < t && this.spawn(t - 1, e); + }), + (t = Particles), + (e = [ + { + key: "time", + get: function () { + return this._time; + }, + set: function (t) { + (this.idle = t <= 0), (this._time = t); + }, + }, + ]) && Particles_defineProperties(t.prototype, e), + i && Particles_defineProperties(t, i), + Particles + ); + })(J.a), + Ze = (function (n) { + function Particle(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).data = Object.assign({}, qe)), i; + } + Particles_inheritsLoose(Particle, n); + var t = Particle.prototype; + return ( + (t.spawn = function (t) { + Object.assign(this.data, qe, t), + (this.entity.x = this.data.x + L.range(this.data.xMod[0], this.data.xMod[1])), + (this.entity.y = this.data.y + L.range(this.data.yMod[0], this.data.yMod[1])), + (this.entity.z = this.data.z + L.range(this.data.zMod[0], this.data.zMod[1])), + (this.entity.scale.x = this.data.scaleX + L.range(this.data.scaleXMod[0], this.data.scaleXMod[1])), + (this.entity.scale.y = this.data.scaleY + L.range(this.data.scaleYMod[0], this.data.scaleYMod[1])), + (this.entity.scale.z = this.data.scaleZ + L.range(this.data.scaleZMod[0], this.data.scaleZMod[1])), + (this.data.growX = this.data.growX + L.range(this.data.growXMod[0], this.data.growXMod[1])), + (this.data.growY = this.data.growY + L.range(this.data.growYMod[0], this.data.growYMod[1])), + (this.data.growZ = this.data.growZ + L.range(this.data.growZMod[0], this.data.growZMod[1])), + (this.data.velocityX += L.range(this.data.velocityXMod[0], this.data.velocityXMod[1])), + (this.data.velocityY += L.range(this.data.velocityYMod[0], this.data.velocityYMod[1])), + (this.data.velocityZ += L.range(this.data.velocityZMod[0], this.data.velocityZMod[1])), + (this.data.forceX += L.range(this.data.forceXMod[0], this.data.forceXMod[1])), + (this.data.forceY += L.range(this.data.forceYMod[0], this.data.forceYMod[1])), + (this.data.forceZ += L.range(this.data.forceZMod[0], this.data.forceZMod[1])); + }), + (t.updateParticle = function (t) { + (this.data.life -= t), + this.data.life < 0 && (this.data.life = 0), + (this.entity.x += this.data.velocityX * t), + (this.entity.y += this.data.velocityY * t), + (this.entity.z += this.data.velocityZ * t), + (this.data.velocityX += this.data.forceX * t), + (this.data.velocityY += this.data.forceY * t), + (this.data.velocityZ += this.data.forceZ * t), + (this.entity.scale.x += this.data.growX * t), + (this.entity.scale.y += this.data.growY * t), + (this.entity.scale.z += this.data.growZ * t); + }), + Particle + ); + })(J.a); + var Ke = (function (i) { + var t, e; + + function ParticleHoverCollision() { + var t; + ((t = i.call(this) || this).view = H.particle(16, 16, 1, "spraySplash")), t.addChild(t.view); + var e = L.pick(16256769, 10287617, 12040194); + return H.tint(t.view, e), t; + } + return (e = i), ((t = ParticleHoverCollision).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), ParticleHoverCollision; + })(v.a); + var Je = (function (e) { + var t, i; + + function ParticleSpark() { + var t; + return ( + ((t = e.call(this) || this).view = H.getEntityCloneBlend("/grindSpark", "effects_tex", 0.8, 1)), + (t.view.ry = 0.5 * Math.PI), + (t.view.view3d.state.blend = !0), + (t.view.view3d.state.depthTest = !0), + (t.view.view3d.orderBias = 999), + t.addChild(t.view), + t.view.scale.set(0.3), + H.tint(t.view, 16776960), + t + ); + } + return (i = e), ((t = ParticleSpark).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i), ParticleSpark; + })(v.a); + + function Hoverboard_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var Qe = (function (n) { + var t, e; + + function Hoverboard(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).count = 0), (i.duration = 30), i; + } + (e = n), ((t = Hoverboard).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Hoverboard.prototype; + return ( + (a.show = function () { + this.view || (this.view = H.getEntityClone("board_newYork_base")), this.entity.game.hud.addItemTimer("hoverboard"), this.entity.anim.scenes[1].attachPoint1.addChild(this.view), this.entity.state.set("empty"); + }), + (a.hide = function () { + this.view.parent && this.view.parent.removeChild(this.view); + }), + (a.update = function (t) { + this.count && + !this.paused && + ((this.view.y = 0.2), (this.view.x = 14), (this.view.z = -7), (this.count -= this.entity.game.stats.delta), this.entity.game.hud.updateItemTimer("hoverboard", this.ratio), this.count <= 0 && this.end()); + }), + (a.updateGrinding = function () { + this.entity.grindingSparks || this.createGrindingSparks(), + (this.entity.grindingSparks.time = 10), + (this.entity.grindingSparks.data.x = this.entity.x - 1), + (this.entity.grindingSparks.data.y = this.entity.y - 4.5), + (this.entity.grindingSparks.data.z = this.entity.z - 0.5); + }), + (a.enable = function () { + this.entity.game.controller.onDoubleTap.add(this); + }), + (a.disable = function () { + this.entity.game.controller.onDoubleTap.remove(this); + }), + (a.pause = function () { + this.count && (this.paused = !0); + }), + (a.resume = function () { + this.count && + this.paused && + ((this.paused = !1), + this.entity.state.set("empty"), + this.show(), + this.entity.anim.play("h_jump3_bs360grab", { + loop: !1, + })); + }), + (a.isOn = function () { + return !!this.count && !this.paused; + }), + (a.explode = function () { + this.end(), + this.entity.collisionSmoke || + this.entity.add( + We, + { + EntityClass: Ke, + container: this.entity.game, + rate: 1, + life: 60, + velocityXMod: [-1.5, 1.5], + velocityYMod: [1, 3], + velocityZMod: [-1, -2], + scaleXMod: [0.8, 1.5], + scaleYMod: [0.8, 1.5], + scaleZMod: [0.8, 1.5], + growXMod: [0.01, 0.03], + growYMod: [0.01, 0.03], + growZMod: [0.01, 0.03], + }, + "collisionSmoke" + ), + (this.entity.collisionSmoke.data.x = this.entity.x), + (this.entity.collisionSmoke.data.y = this.entity.y), + (this.entity.collisionSmoke.data.z = this.entity.z), + this.entity.collisionSmoke.spawn(10), + this.entity.jump.perform(15, !0), + this.entity.player.dizzyEnd(); + }), + (a.onDoubleTap = function () { + this.start(); + }), + (a.start = function () { + var t = this; + this.entity.game.state === pn.RUNNING && + this.entity.game.stats.hoverboards && + (this.entity.pogo.isOn() || + this.entity.jetpack.isOn() || + this.locked || + (this.entity.anim.play("h_skate_on", { + loop: !1, + enforce: 0.3, + sudden: !0, + }), + setTimeout(function () { + t.entity.anim.play("h_landing", { + loop: !1, + enforce: 0.3, + }), + t.entity.anim.play("h_run", { + loop: !0, + }); + }, 500), + this.show(), + (this.count = this.duration), + (this.paused = !1), + (this.entity.game.stats.hoverboards -= 1), + this.entity.player.dizzyEnd(), + this.entity.state.set("empty"), + this.entity.popPickup && this.entity.popPickup.play())); + }), + (a.cancel = function () { + this.count && (this.end(), (this.entity.game.stats.hoverboards += 1)); + }), + (a.end = function () { + this.count && (this.hide(), this.entity.game.hud.removeItemTimer("hoverboard"), (this.count = 0), this.entity.state.set("empty")); + }), + (a.lock = function () { + this.locked = !0; + }), + (a.unlock = function () { + this.locked = !1; + }), + (a.createGrindingSparks = function () { + this.entity.grindingSparks || + this.entity.add( + We, + { + EntityClass: Je, + container: this.entity.game, + rate: 0.5, + spawns: 1, + life: 20, + xMod: [-0.4, 0.4], + velocityXMod: [-0.2, 0.2], + velocityYMod: [0.03, 0.08], + velocityZMod: [-0.1, -0.2], + growXMod: [0.1, 0.3], + growZMod: [0.3, 0.6], + }, + "grindingSparks" + ); + }), + (i = Hoverboard), + (o = [ + { + key: "ratio", + get: function () { + return this.count / this.duration; + }, + }, + { + key: "grinding", + get: function () { + return !!this.count && !this.paused && this.entity.body.landed && 29 < this.entity.body.ground && this.entity.body.ground < 29.2; + }, + }, + ]) && Hoverboard_defineProperties(i.prototype, o), + s && Hoverboard_defineProperties(i, s), + Hoverboard + ); + })(J.a); + + function Multiplier_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var $e = (function (n) { + var t, e; + + function Multiplier(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).count = 0), (i.duration = 10), i; + } + (e = n), ((t = Multiplier).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Multiplier.prototype; + return ( + (a.update = function (t) { + this.count && ((this.count -= this.entity.game.stats.delta), this.entity.game.hud.updateItemTimer("multiplier", this.ratio), this.count <= 0 && this.turnOff()); + }), + (a.turnOn = function () { + this.count ? (this.count = this.duration) : ((this.count = this.duration), this.entity.game.hud.addMessage("POWERUP: MULTIPLIER"), this.entity.game.hud.addItemTimer("multiplier"), (this.entity.game.stats.multiplier *= 2)); + }), + (a.turnOff = function () { + this.count && (this.entity.game.hud.clearMessage("POWERUP: MULTIPLIER"), this.entity.game.hud.removeItemTimer("multiplier"), (this.entity.game.stats.multiplier /= 2), (this.count = 0)); + }), + (a.isOn = function () { + return !!this.count; + }), + (i = Multiplier), + (o = [ + { + key: "ratio", + get: function () { + return this.count / this.duration; + }, + }, + ]) && Multiplier_defineProperties(i.prototype, o), + s && Multiplier_defineProperties(i, s), + Multiplier + ); + })(J.a), + ti = i(2); + + function Player_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + var ei = (function (n) { + var t, e; + + function Player(t, e) { + var i; + return ( + void 0 === e && (e = {}), + (i = n.call(this, t, e) || this), + t.lane.onBumpSideways.add(Player_assertThisInitialized(i)), + t.body.onCollisionEnter.add(Player_assertThisInitialized(i)), + t.body.onCollisionExit.add(Player_assertThisInitialized(i)), + t.body.onTriggerEnter.add(Player_assertThisInitialized(i)), + t.body.onTriggerExit.add(Player_assertThisInitialized(i)), + i.reset(), + i + ); + } + (e = n), ((t = Player).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Player.prototype; + return ( + (i.reset = function (t, e, i) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = null), + this.entity.body.reset(), + (this.entity.body.lane = 0), + (this.entity.body.x = e), + (this.entity.body.z = t), + (this.entity.body.lane = i || 0), + (this.entity.body.bottom = 0), + (this.entity.body.movable = !0), + (this.entity.body.glide = 0), + (this.entity.body.laning = 0), + (this.entity.body.ghost = !1), + (this.entity.x = this.entity.body.x), + (this.entity.y = this.entity.body.y), + (this.entity.z = this.entity.body.z), + this.entity.resetModel(), + (this.dizzy = 0), + (this.jumpLocked = !1), + (this.rollLocked = !1), + (this.hoverboardLocked = !1), + (this.running = !1), + (this.cameraY = 0), + (this.cameraTargetY = 0), + (this.cameraRotX = 0), + (this.cameraLow = 0), + (this.tunnel = !1), + (this.dead = !1), + (this.deathCause = ""), + (this.catchMode = ""), + (this.rewindStartPoint = new ti.P()), + (this.rewindEndPoint = null); + }), + (i.run = function (t) { + void 0 === t && (t = 200), + this.entity.game.level.onEnterTutorial.contains(this) || (this.entity.game.level.onEnterTutorial.add(this), this.entity.game.level.onExitTutorial.add(this)), + (this.entity.body.gravity = this.entity.game.config.gravity), + (this.entity.body.velocity.z = -B.speed), + (this.entity.body.height = 11), + (this.entity.body.bottom = 0), + (this.entity.body.movable = !0), + (this.running = !0), + (this.jumpForce = this.entity.game.config.jump), + (this.dizzy = t), + this.entity.shadow.turnOn(), + this.entity.lane.turnOn(), + this.entity.jump.turnOn(), + this.entity.roll.turnOn(), + this.entity.hoverboard.enable(), + this.entity.hoverboard.isOn() + ? this.entity.anim.play("h_run", { + loop: !0, + sudden: !0, + }) + : this.entity.anim.play("run2", { + loop: !0, + sudden: !0, + }), + this.entity.game.sfx.stop("special_jetpack"); + }), + (i.stop = function () { + (this.running = !1), (this.entity.body.velocity.z = 0); + }), + (i.update = function (t) { + if ( + (this.rewindEndPoint && + ((this.rewinding = !0), + this.entity.body.velocity.reset(), + (this.entity.body.ghost = !0), + (this.entity.body.x = V.lerp(this.entity.body.x, 0, 0.1 * t)), + (this.entity.body.bottom = V.lerp(this.entity.body.bottom, 0, 0.3 * t)), + (this.entity.body.z += 4 * t), + this.entity.body.z >= this.rewindEndPoint.z - 0.1 && + (this.entity.lane.reset(), (this.entity.body.z = this.rewindEndPoint.z), (this.entity.body.velocity.z = 0), (this.entity.body.ghost = !1), (this.rewinding = !1), this.reset(this.rewindEndPoint.z), this.run())), + this.running && !this.dead) + ) { + if (!this.entity.jetpack.isOn()) { + var e = this.entity.game.stats.speed, + i = V.lerp(this.entity.body.velocity.z, -e, 0.1 * t); + this.entity.body.velocity.z = i; + } + var n = this.entity.body.ground, + o = this.entity.body.bottom; + n >= this.cameraTargetY && this.entity.body.landed ? (this.cameraTargetY = n) : o < this.cameraTargetY && (this.cameraTargetY = o); + } else this.entity.body.velocity.z = 0; + (this.cameraY = V.lerp(this.cameraY, this.cameraTargetY, 0.2 * t)), + this.cameraY > this.entity.body.bottom + 3 && (this.cameraY = this.entity.body.bottom + 3), + this.dizzy && ((this.dizzy -= t), this.dizzy <= 0 && this.dizzyEnd()), + this.bumpCount && ((this.bumpCount -= t), this.bumpCount <= 0 && (this.bumpCount = 0)); + }), + (i.getMode = function () { + return this.entity.hoverboard.isOn() ? "hoverboard" : this.entity.sneakers.isOn() ? "sneakers" : "normal"; + }), + (i.dizzyStart = function () { + (this.dizzy = 200), this.entity.dizzy.turnOn(), this.entity.game.sfx.play("hero_stumble"); + }), + (i.dizzyEnd = function () { + (this.dizzy = 0), this.entity.dizzy.turnOff(); + }), + (i.lockHoverboard = function (t) { + this.hoverboardLocked = t; + }), + (i.goBackToLastCheckPoint = function () { + this.entity.anim.play("run3", { + loop: !0, + }), + (this.rewindStartTime = this.entity.game.time), + (this.rewindDuration = 600), + this.rewindStartPoint.copy(this.entity.body.center); + var t = this.entity.game.level.currentChunk.getLastCheckpointByPosition(this.entity.body.z); + t && (this.rewindEndPoint = t.body.center); + }), + (i.stumble = function (t, e) { + void 0 === t && (t = "lower"), void 0 === e && (e = !1), (this.bumpCount && e) || (this.entity.game.camera.shake(3), this.dizzy ? this.die(t) : (this.dizzyStart(), (this.bumpCount = 20))); + }), + (i.crash = function (t) { + void 0 === t && (t = "train"), (this.cameraLow = 0), (this.tunnel = !1), this.entity.game.camera.shake(5), this.die(t); + }), + (i.die = function (t) { + var e = this; + if (this.entity.hoverboard.isOn()) + return ( + this.entity.game.level.reshuffle(), + this.entity.hoverboard.explode(), + void setTimeout(function () { + e.entity.game.exitTunnel(), e.entity.game.sfx.play("hero_hoverboard_crash"); + }, 1) + ); + (this.entity.body.z += 5), + (this.dead = !0), + (this.deathCause = t), + this.entity.game.sfx.play("hero_death"), + this.entity.dizzy.turnOff(), + this.entity.jetpack.turnOff(), + this.entity.magnet.turnOff(), + this.entity.pogo.turnOff(), + this.entity.shadow.turnOff(), + this.entity.lane.turnOff(), + this.entity.jump.turnOff(), + this.entity.roll.turnOff(), + this.entity.sneakers.turnOff(), + this.entity.hoverboard.disable(), + this.entity.game.sfx.stop("special_jetpack"), + this.entity.game.level.isTutorial() + ? setTimeout(function () { + e.goBackToLastCheckPoint(); + }, 700) + : setTimeout(function () { + e.entity.game.gameover(); + }, 200); + }), + (i.onBumpSideways = function (t) { + this.stumble("lower"); + }), + (i.onCollisionEnter = function (t) { + B.god || + (t.flags & $.FRONT + ? ((this.entity.body.velocity.z = 0), + this.entity.lane.changing || t.hit.height < 1 + ? this.stumble("bounce", !0) + : t.pas.movable + ? this.crash("train") + : 6 < t.hit.height + ? this.crash("bounce") + : t.hit.y > this.entity.body.y + ? this.crash("upper") + : this.crash("lower")) + : t.flags & $.LEFT || t.flags & $.RIGHT + ? this.entity.lane.bump(-this.entity.lane.absStep) + : t.flags & $.SLOPE && (this.stumble("bounce", !0), (this.entity.body.velocity.z *= 0.5))); + }), + (i.onCollisionExit = function (t) {}), + (i.onTriggerEnter = function (t) { + t.entity.lowCamera && !this.entity.jetpack.isOn() ? ((this.cameraLow = -15), (this.tunnel = !0), this.entity.game.enterTunnel()) : t.entity.tutorialTrigger && this.entity.game.tutorial.enterTrigger(t.entity.type); + }), + (i.onTriggerExit = function (t) { + t.entity.lowCamera && ((this.cameraLow = 0), (this.tunnel = !1), this.entity.game.exitTunnel()), t.entity.tutorialTrigger && this.entity.game.tutorial.exitTrigger(t.entity.type); + }), + (i.onEnterTutorial = function () {}), + (i.onExitTutorial = function () {}), + Player + ); + })(J.a); + var ii = (function (i) { + var t, e; + + function Shadow(t, e) { + return void 0 === e && (e = {}), i.call(this, t, e) || this; + } + (e = i), ((t = Shadow).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = Shadow.prototype; + return ( + (n.createView = function () { + this.view || ((this.view = H.plane(8, 8, 0.8, "shadow_mip.png")), (this.view.rx = V.PI_HALF), (this.view.z = 1), this.entity.addChild(this.view)); + }), + (n.update = function (t) { + if (this.view && this.view.active) { + var e = this.entity.body ? this.entity.body.ground : 0; + this.view.y = -this.entity.y + e + 1; + } + }), + (n.turnOn = function () { + this.createView(), (this.view.active = !0); + }), + (n.turnOff = function () { + this.view.active = !1; + }), + (n.isOn = function () { + return this.view.active; + }), + Shadow + ); + })(J.a), + ni = i(18), + oi = i(129), + si = i.n(oi), + ai = i(130), + ri = i.n(ai); + c.Shader; + var hi = { + character_idle: i(475), + character_jetpack: i(476), + character_movement: i(477), + character_catch: i(478), + character_pogo: i(479), + character_start: i(480), + guard_movement: i(481), + guard_catch: i(482), + dog_movement: i(483), + dog_catch: i(484), + }; + + function Anim_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var di = (function (n) { + var t, e; + + function Anim(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).scene = null), (i.fpsGame = 60), (i.currentAction = null), (i.scenes = {}), (i.clips = {}), (i.actions = {}), i; + } + (e = n), ((t = Anim).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Anim.prototype; + return ( + (a.reset = function () { + (this.currentAction = null), this.stop(); + }), + (a.addAnim = function (t, e) { + if (!this.scenes[t]) { + var i = e.offset || 0, + n = H.getScene(e.file); + if (!n) throw new Error("Scene not found: " + e.file); + H.applyTexture(n.pixiTree, e.texture, !1); + var o = H.findEntity("Mess", n.pixiTree); + for (var s in (o && o.parent && o.parent.removeChild(o), + n.initMixer(), + ((this.scenes[t] = n).attachPoint1 = H.findEntity("attachPoint1", n.pixiTree)), + (n.attachPoint2 = H.findEntity("attachPoint2", n.pixiTree)), + (n.attachPoint3 = H.findEntity("attachPoint3", n.pixiTree)), + (n.pixiTree.active = !1), + e.clips)) { + var a = e.fps, + r = n.sceneGraph.animations[0], + h = e.clips[s], + d = h[0] + i, + l = h[1] + i, + c = ni.g(r, s, d, l, a); + (c.__scene = n), (c.__name = s), (this.clips[s] = c); + } + this.updateActions(); + } + }), + (a.updateActions = function () { + for (var t in this.clips) + if (!this.actions[t]) { + var e = this.clips[t], + i = e.__scene.mixer.clipAction(e); + i.setLoop(ti.s), (i.clampWhenFinished = !0), (i.__scene = e.__scene), (i.__name = t), (this.actions[t] = i); + } + }), + (a.play = function (t, e) { + var i = this; + if ((void 0 === e && (e = {}), Array.isArray(t) && (t = L.pick.apply(L, t)), !this.actions[t])) throw new Error("Animation not found: " + t); + if ((void 0 === e.loop && (e.loop = !1), void 0 === e.sudden && (e.sudden = !1), void 0 === e.crossfade && (e.crossfade = 0.2), void 0 === e.enforce && (e.enforce = 0), this._enforce)) + this._queued = { + name: t, + opts: e, + }; + else { + e.enforce && + ((this._enforce = e.enforce), + setTimeout(function () { + (i._enforce = 0), i._queued && (i.play(i._queued.name, i._queued.opts), (i._queued = null)); + }, 1e3 * this._enforce)); + var n = this.actions[t]; + if (n !== this.currentAction) { + var o = n.__scene, + s = this.currentAction && this.currentAction.__scene === o; + return ( + o.mixer.stopAllAction(), + this.currentAction && (this.currentAction.stop(), this.currentAction.reset()), + n.stop(), + n.reset(), + n.setLoop(e.loop ? ti.s : ti.r), + this.currentAction && !e.sudden && s && n.crossFadeFrom(this.currentAction, e.crossfade, !0), + n.play(), + o.mixer.update(0.01), + o.syncToPixi(), + this.showScene(o), + (this.currentAction = n) + ); + } + } + }), + (a.showScene = function (e) { + var i = this; + (e.pixiTree.active = !0), + (this.entity.model || this.entity).addChild(e.pixiTree), + setTimeout(function () { + for (var t in i.scenes) i.scenes[t].pixiTree.active = !1; + e.pixiTree.active = !0; + }, 20); + }), + (a.stop = function () { + this.currentAction && (this.currentAction.stop(), this.currentAction.reset(), (this.currentAction = null)); + }), + (a.update = function (t) { + if (this.scenes && this.currentAction) { + var e = this.currentAction.__scene; + e.mixer.update(t / this.fpsGame), e.syncToPixi(); + } + }), + (a.sum = function (t) { + this.extra = t; + var e = this.actions[this.extra]; + e.setEffectiveWeight(0.75), e.setLoop(!0), e.play(); + }), + (a.subtract = function (t) { + this.actions[this.extra].stop(), (this.extra = null); + }), + (i = Anim), + (o = [ + { + key: "currentName", + get: function () { + return this.currentAction ? this.currentAction.__name : null; + }, + }, + ]) && Anim_defineProperties(i.prototype, o), + s && Anim_defineProperties(i, s), + Anim + ); + })(J.a); + + function State_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var li = function () {}, + ci = (function (n) { + var t, e; + + function State(t, e) { + var i; + return ( + ((i = n.call(this, t, e) || this).states = {}), + (i.currentStateId = "empty"), + (i.transitionMap = {}), + i.add("empty", { + end: li, + begin: li, + update: li, + render: li, + }), + (i.params = {}), + i + ); + } + (e = n), ((t = State).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = State.prototype; + return ( + (a.addTransition = function (t, e, i) { + return this.transitionMap[t] || (this.transitionMap[t] = {}), (this.transitionMap[t][e] = !0), i && (this.transitionMap[e][t] = !0), this; + }), + (a.add = function (t, e) { + return ( + ((this.states[t] = e).id = t), + (e.entity = this.entity), + e.empty || (e.empty = li), + e.begin || (e.begin = li), + e.update || (e.update = li), + e.render || (e.render = li), + e.end || (e.end = li), + this.transitionMap[t] || (this.transitionMap[t] = {}), + this.addTransition("empty", t, !0), + this + ); + }), + (a.set = function (t) { + this.can(t) && (this.states[this.currentStateId].end(), (this.currentStateId = t), this.states[this.currentStateId].begin()); + }), + (a.can = function (t) { + if (this.currentStateId === t) return !1; + var e = this.transitionMap.all[t], + i = this.transitionMap[this.currentStateId].all, + n = this.transitionMap[this.currentStateId][t]; + return e || i || n; + }), + (a.update = function (t) { + if (this.entity.onStateUpdate) { + this.entity.onStateUpdate(); + var e = this.params, + i = this.states; + for (var n in i) + if ("empty" !== n) { + var o = i[n], + s = !0; + for (var a in e) + if (void 0 !== o[a] && o[a] !== e[a]) { + s = !1; + break; + } + if (s && this.currentStateId !== n) { + var r = this.transitionMap.all[n], + h = this.transitionMap[this.currentStateId].all, + d = this.transitionMap[this.currentStateId][n]; + if (r || h || d) { + this.set(n); + break; + } + } + } + } + this.states[this.currentStateId].update(t); + }), + (a.render = function (t) { + this.states[this.currentStateId].render(t); + }), + (i = State), + (o = [ + { + key: "id", + get: function () { + return this.currentStateId; + }, + }, + ]) && State_defineProperties(i.prototype, o), + s && State_defineProperties(i, s), + State + ); + })(J.a); + var ui = (function (i) { + var t, e; + + function Dizzy(t, e) { + return void 0 === e && (e = {}), i.call(this, t, e) || this; + } + (e = i), ((t = Dizzy).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = Dizzy.prototype; + return ( + (n.createView = function () { + this.view || + ((this.view = new v.a()), + (this.view.y = 4), + (this.view.x = 0.5), + (this.trail1 = H.getEntityCloneBlend("effects/Dizzytrail", "effects_tex", 0.9, 1)), + this.view.addChild(this.trail1), + (this.trail2 = H.getEntityCloneBlend("effects/Dizzytrail", "effects_tex", 0.9, 1)), + (this.trail2.ry = Math.PI), + this.view.addChild(this.trail2), + (this.star1 = H.getEntityCloneBlend("effects/Dizzystar", "effects_tex", 0.9, 1)), + (this.star1.z = -1.5), + this.view.addChild(this.star1), + (this.star2 = H.getEntityCloneBlend("effects/Dizzystar", "effects_tex", 0.9, 1)), + (this.star2.z = 1.5), + this.view.addChild(this.star2), + (this.view.active = !1), + (this.view.rx = -0.5), + this.view.scale.set(1.25)); + }), + (n.reset = function () { + this.view && (this.view.active = !1); + }), + (n.update = function (t) { + this.view && this.view.active && (this.view.ry += 0.05 * t); + }), + (n.turnOn = function () { + if ((this.createView(), !this.view.parent)) { + var t = this.entity.anim.scenes[1]; + H.findEntity("Head_jnt", t.pixiTree, 10).addChild(this.view); + } + this.view.active = !0; + }), + (n.turnOff = function () { + this.view && (this.view.parent && this.view.parent.removeChild(this.view), (this.view.active = !1)); + }), + Dizzy + ); + })(J.a); + var pi = (function (n) { + var t, e; + + function PopPickup(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).view = H.getEntityCloneBlend("/powBlue", "effects_tex", 0.95, 1)), (i.view.rotation.y = Math.PI), (i.duration = 13), i.reset(), i; + } + (e = n), ((t = PopPickup).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = PopPickup.prototype; + return ( + (i.reset = function () { + this.view.parent && this.entity.removeChild(this.view), (this.view.active = !1), this.view.scale.set(0), (this.count = 0); + }), + (i.update = function (t) { + if (this.count) { + this.count -= t; + var e = 1 + 20 * (1 - this.count / this.duration); + this.view.scale.set(e), this.count <= 0 && this.reset(); + } + }), + (i.play = function () { + (this.view.rotation.z = V.PI_DOUBLE * Math.random()), (this.count = this.duration), (this.view.active = !0), this.view.scale.set(0.5), this.entity.addChild(this.view); + }), + PopPickup + ); + })(J.a); + var mi = (function (i) { + var t, e; + + function ParticleRevive() { + var t; + ((t = i.call(this) || this).view = H.particle(16, 16, 1, "spraySplash")), t.addChild(t.view); + var e = L.pick(1407438, 4308976, 2726108); + return H.tint(t.view, e), t; + } + return (e = i), ((t = ParticleRevive).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), ParticleRevive; + })(v.a); + var fi = (function (n) { + var t, e; + + function ReviveHalo(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).view = H.getEntityCloneBlend("powRevive", "effects_tex", 0.7, 3)), + (i.view.view3d.state.depthTest = !1), + (i.view.rotation.y = Math.PI), + (i.view.rotation.x = -0.3), + t.addChild(i.view), + (i.scale = 2), + i.view.scale.set(i.scale), + (i.view.y = 2), + (i.view.active = !1), + (i.time = 0), + (i.duration = 120), + i + ); + } + (e = n), ((t = ReviveHalo).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = ReviveHalo.prototype; + return ( + (i.update = function (t) { + if (this.time) { + (this.time -= t), (this.scale = 0.2 * Math.sin(0.1 * this.time) + 2), this.view.scale.set(this.scale); + var e = 0.1 * this.duration, + i = 1 - (this.time - e) / (this.duration - e), + n = this.time / e, + o = this.time > e ? i : n; + (this.view.view3d.material.opacity = 0.6 * o), (this.view.rotation.z += 0.01 * t), this.time < 0 && this.stop(); + } + }), + (i.play = function () { + (this.view.active = !0), (this.time = this.duration); + }), + (i.stop = function () { + (this.time = 0), (this.view.active = !1); + }), + ReviveHalo + ); + })(J.a), + gi = (function () { + function Time() { + (this.scale = 1), (this.current = 0), (this.delta = 0), (this._schedule = []); + } + var t = Time.prototype; + return ( + (t.reset = function () { + (this.scale = 1), (this.current = 0), (this.delta = 0), (this._schedule = []); + }), + (t.update = function (t) { + (this.delta = t * this.scale), (this.current += this.delta); + for (var e = this._schedule.length; e--; ) { + var i = this._schedule[e]; + i.time >= this.current && (i.fn.call(i.context, i.params), this._schedule.splice(e, 1)); + } + }), + (t.schedule = function (t, e, i, n) { + void 0 === i && (i = null), void 0 === n && (n = null); + var o = { + fn: t, + time: this.current + e, + context: i, + params: n, + }; + this._schedule.push(o); + }), + (Time.secs = function () { + return new Date().getTime() / 1e3; + }), + Time + ); + })(); + + function Lane_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var yi = (function (i) { + var t, e; + + function Lane(t) { + var e; + return ((e = i.call(this, t) || this).entity = t), (e.onBumpSideways = new et.a("onBumpSideways", 1)), e.reset(), e; + } + (e = i), ((t = Lane).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n, + o, + s, + a = Lane.prototype; + return ( + (a.reset = function () { + (this.lane = 0), (this.last = 0), (this.absStep = 0), (this.changing = !1), (this.changeStartX = 0), (this.changeEndX = 0), (this.changeDuration = 0), (this.changeTime = 0), (this.queuedStep = 0), (this.queuedDuration = 0); + }), + (a.turnOn = function () { + this._isOn || ((this._isOn = !0), this.entity.game.controller.onSwipeHorizontal.add(this)); + }), + (a.turnOff = function () { + this._isOn && ((this._isOn = !1), this.entity.game.controller.onSwipeHorizontal.remove(this)); + }), + (a.onSwipeHorizontal = function (t) { + this.change(t); + }), + (a.change = function (t) { + if (!this.entity.jetpack.isOn() && !this.entity.pogo.isOn()) { + if (1 === this.lane && 0 < t) return void (this.entity.body.x > B.laneWidth - 1 && this.onBumpSideways.dispatch(t)); + if (-1 === this.lane && t < 0) return void (this.entity.body.x < 1 - B.laneWidth && this.onBumpSideways.dispatch(t)); + } + var e = 0.3 * (1 - this.entity.game.stats.speed / B.maxSpeed) + 0.1, + i = Math.round(this.lane + t), + n = Math.clamp(i, -1, 1), + o = n * B.laneWidth, + s = Math.abs(o - this.entity.body.x); + if (s > B.laneWidth) return (this.queuedStep = t), void (this.queuedDuration = e); + this.entity.state.set("empty"), + (this.absStep = t < 0 ? -1 : 1), + (this.last = this.lane), + (this.lane = n), + (this.queuedStep = 0), + (this.queuedDuration = 0), + (this.changing = !0), + (this.changeStartX = this.entity.body.x), + (this.changeEndX = o), + (this.changeDuration = Math.max((e * s) / B.laneWidth, 0.1)), + this.entity.jetpack.isOn() && (this.changeDuration *= 0.7), + (this.changeTime = 0), + (this._secs = gi.secs()), + this.entity.game.sfx.play("hero_dodge"); + }), + (a.update = function (t) { + if (this.changing) { + (this.changeTime += this.entity.game.deltaSecs), this.changeTime > this.changeDuration && (this.changeTime = this.changeDuration); + var e = V.clamp(this.changeTime / this.changeDuration), + i = V.lerp(this.changeStartX, this.changeEndX, e); + this.entity.body.velocity.x = t ? (i - this.entity.body.x) / t : 0; + var n = 0.05 * -(this.changeEndX - this.entity.body.x), + o = this.entity.jetpack.isOn() || this.entity.pogo.isOn() || this.entity.hoverboard.isOn(); + (this.entity.ry = o ? 0 : n), this.changeTime >= this.changeDuration && this.changeEnd(); + } + }), + (a.changeEnd = function () { + (this.entity.body.x = this.lane * B.laneWidth), + (this.changing = !1), + (this.entity.ry = 0), + (this.entity.body.velocity.x = 0), + this.queuedDuration && (this.change(this.queuedStep, this.queuedDuration), (this.queuedStep = 0), (this.queuedDuration = 0)); + }), + (a.changeCancel = function () { + (this.changing = !1), (this.queuedStep = 0), (this.queuedDuration = 0), (this.entity.ry = 0), (this.entity.body.velocity.x = 0); + }), + (a.bump = function (t) { + this.changeCancel(), this.change(t, 0.1), this.onBumpSideways.dispatch(t), (this.entity.body.velocity.x = 0); + }), + (n = Lane), + (o = [ + { + key: "lanePos", + get: function () { + return this.entity.body.x / B.laneWidth; + }, + set: function (t) { + (t = Mathf.clamp(t, -1, 1)), (this.entity.body.x = B.laneWidth * t); + }, + }, + ]) && Lane_defineProperties(n.prototype, o), + s && Lane_defineProperties(n, s), + Lane + ); + })(J.a); + var vi = (function (i) { + var t, e; + + function Jump(t) { + var e; + return (e = i.call(this, t) || this).reset(), e; + } + (e = i), ((t = Jump).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = Jump.prototype; + return ( + (n.reset = function () { + (this.locked = !1), (this.isJumping = !1), (this.goingUpwards = !1), (this.gravity = B.gravity); + }), + (n.turnOn = function () { + this._isOn || ((this._isOn = !0), this.entity.game.controller.onSwipeVertical.add(this)); + }), + (n.turnOff = function () { + this._isOn && ((this._isOn = !1), this.entity.game.controller.onSwipeVertical.remove(this)); + }), + (n.onSwipeVertical = function (t) { + 1 == t && this.perform(); + }), + (n.update = function (t) { + if (!this.locked) { + if (this.isJumping && this.goingUpwards) { + (this.time += this.entity.game.deltaSecs), this.time > this.duration && (this.time = this.duration); + var e = this.time / this.duration, + i = St.sineOut(e), + n = V.lerp(this.startY, this.endY, i); + (this.entity.body.velocity.y = t ? (n - this.entity.body.y) / t : 0), 1 <= e && ((this.entity.body.velocity.y = 0), (this.goingUpwards = !1)); + } else this.entity.body.velocity.y -= this.gravity * t; + this.entity.body.bottom <= this.entity.body.ground + 0.01 && this.entity.body.velocity.y <= 0 && ((this.entity.body.velocity.y = 0), (this.entity.body.bottom = this.entity.body.ground), this.isJumping && this.end()); + } + }), + (n.perform = function (t, e) { + void 0 === t && (t = 20), + void 0 === e && (e = !1), + B.freejump && (e = !0), + (!e && this.locked) || + (!e && this.isJumping) || + ((e || this.entity.body.canJump) && + (this.entity.roll && this.entity.roll.cancel(), + this.entity.body.resetGroundChangeTolerance(), + (this.isJumping = !0), + (this.entity.body.velocity.y = 0), + (this.entity.body.y += 1), + (this.startY = this.entity.body.y), + (this.endY = this.startY + t - 1), + (this.time = 0), + (this.duration = 0.41), + (this.goingUpwards = !0), + this.entity.game.sfx.play("hero_jump"))); + }), + (n.end = function () { + (this.isJumping = !1), (this.goingUpwards = !1); + }), + (n.cancel = function () { + this.end(); + }), + (n.lock = function () { + this.end(), (this.locked = !0); + }), + (n.unlock = function () { + (this.locked = !1), (this.gravity = B.gravity); + }), + Jump + ); + })(J.a); + var _i = (function (i) { + var t, e; + + function Roll(t) { + var e; + return ((e = i.call(this, t) || this).onStart = new et.a("onRollStart")), (e.onEnd = new et.a("onRollEnd")), e.reset(), e; + } + (e = i), ((t = Roll).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = Roll.prototype; + return ( + (n.reset = function () { + (this.locked = !1), (this.isRolling = !1), (this.gravity = B.gravity), (this.duration = 30), (this.time = 0), (this.rollingHeight = 5), (this.regularHeight = 11), (this.entity.body.height = this.regularHeight); + }), + (n.turnOn = function () { + this._isOn || ((this._isOn = !0), this.entity.game.controller.onSwipeVertical.add(this)); + }), + (n.turnOff = function () { + this._isOn && ((this._isOn = !1), this.entity.game.controller.onSwipeVertical.remove(this)); + }), + (n.onSwipeVertical = function (t) { + -1 == t && this.perform(); + }), + (n.update = function (t) { + this.isRolling && ((this.time += t), this.time > this.duration && (this.time = this.duration), this.time === this.duration && this.end()); + }), + (n.perform = function () { + if (!this.locked && !this.isRolling) { + this.onStart.dispatch(), + this.entity.jump && this.entity.jump.cancel(), + this.entity.sneakers.isOn() && this.entity.sneakers.jumpCancel(), + (this.isRolling = !0), + (this.time = 0), + this.entity.body.landed || (this.entity.body.velocity.y = -2); + var t = this.entity.body.bottom; + (this.entity.body.height = this.rollingHeight), (this.entity.body.bottom = t), this.entity.game.sfx.play("hero_roll"); + } + }), + (n.end = function () { + (this.isRolling = !1), (this.entity.body.height = this.regularHeight), this.entity.body.bottom < this.entity.body.ground && (this.entity.body.bottom = this.entity.body.ground), (this.time = 0), this.onEnd.dispatch(); + }), + (n.cancel = function () { + this.end(); + }), + (n.lock = function () { + this.end(), (this.locked = !0); + }), + (n.unlock = function () { + this.locked = !1; + }), + (n.isOn = function () { + return this._isOn; + }), + Roll + ); + })(J.a); + var bi = (function (n) { + var t, e; + + function Notifier(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).ignore = ["transform", "container", "notifier"]), (i.entity = t), i; + } + (e = n), ((t = Notifier).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Notifier.prototype; + return ( + (i.cacheComponents = function () { + for (var t in ((this.comps = {}), this.entity)) + if (!(0 <= this.ignore.indexOf(t))) { + var e = this.entity[t]; + e instanceof J.a && (this.comps[t] = e); + } + }), + (i.notify = function (t) { + this.comps || this.cacheComponents(); + for (var e = arguments.length, i = new Array(1 < e ? e - 1 : 0), n = 1; n < e; n++) i[n - 1] = arguments[n]; + for (var o in this.comps) { + var s = this.comps[o]; + if (s) { + var a = s[t]; + a && a.apply(s, i); + } + } + }), + Notifier + ); + })(J.a); + var wi = (function (i) { + var t, e; + + function Character() { + var t; + (t = i.call(this) || this).add(it, { + boxColor: 5570560, + sensor: !0, + }), + (t.model = new v.a()), + t.addChild(t.model), + t.add(ci), + t.add(Ye), + t.add(di), + t.add(He), + t.add(Ue), + t.add(Ve), + t.add(Qe), + t.add($e), + t.add(ii), + t.add(ui), + t.add(yi), + t.add(vi), + t.add(_i), + t.add(ei), + t.add(bi), + (t.body.width = 4), + (t.body.height = 11), + (t.body.depth = 4), + t.anim.addAnim("0", hi.character_idle), + t.updateModel(), + (t.sprayCan = H.getEntityCloneOpaque("sprayCan", "props_tex", !1)), + (t.sprayCan.x = 0.2), + (t.sprayCan.z = -0.5), + (t.sprayCan.y = -0.5), + (t.sprayCan.rz = 0.5 * Math.PI), + (t.sprayCan.ry = 0.15 * Math.PI); + var e = t.anim.scenes[0]; + return H.findEntity("R_Hand_jnt", e.pixiTree, 10).addChild(t.sprayCan), t; + } + (e = i), ((t = Character).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = Character.prototype; + return ( + (n.resetModel = function () { + (this.model.ry = Math.PI), (this.model.rx = 0), (this.model.rz = 0), (this.model.x = -1), (this.model.y = 0.5 * -this.body.height + 1), (this.model.z = 0); + }), + (n.init = function () { + this._initialized || + ((this._initialized = !0), + this.add(ut), + this.add(pi), + (this.pop.view.y = 0), + (this.pop.view.z = -3), + this.anim.addAnim("1", hi.character_movement), + this.anim.addAnim("2", hi.character_jetpack), + this.anim.addAnim("3", hi.character_catch), + this.anim.addAnim("4", hi.character_pogo), + this.anim.addAnim("5", hi.character_start), + (this.anim.debug = !0)); + }), + (n.playIntro = function () { + this.init(), + this.lane.reset(), + this.resetModel(), + (this.z = 0), + (this.x = -1), + (this.body.z = 0), + (this.body.x = 0), + (this.body.bottom = 0), + (this.y = this.body.bottom + 0.5 * this.body.height), + this.anim.play("start_run", { + sudden: !0, + crossfade: 0, + }); + }), + (n.run = function () { + (this.body.velocity.z = -this.game.stats.speed), this.player.run(); + }), + (n.reset = function () { + (this.model.x = 0), + (this.z = 0), + (this.x = 1), + (this.body.z = 0), + (this.body.x = 1), + (this.body.bottom = 0), + this.pogo.turnOff(), + this.magnet.turnOff(), + this.jetpack.turnOff(), + this.sneakers.turnOff(), + this.dizzy.turnOff(), + this.multiplier.turnOff(), + this.hoverboard.end(), + this.notifier.notify("reset"), + this.reviveHalo && this.reviveHalo.stop(); + }), + (n.restoreSize = function () { + (this.body.width = 4), (this.body.height = 11), (this.body.depth = 4), (this.model.position.y = 0.5 * -this.body.height + 1); + }), + (n.updateModel = function () { + (this.model.position.y = 0.5 * -this.body.height + 1), (this.model.rotation.y = Math.PI); + }), + (n.onStateUpdate = function () { + var t; + this.statesReady || + (((t = this).state.params = { + playing: !1, + landed: !1, + ascending: !1, + descending: !1, + dodging: !1, + rolling: !1, + hoverboard: !1, + dizzy: !1, + special: !1, + pogo: !1, + dead: !1, + catch: !1, + }), + t.state.add("idle", new ki()), + t.state.add("dead", new Ii()), + t.state.add("catch", new Li()), + t.state.add("running", new xi()), + t.state.add("grinding", new Ci()), + t.state.add("dodging", new Si()), + t.state.add("ascending", new zi()), + t.state.add("hangtime", new Ti()), + t.state.add("descending", new Pi()), + t.state.add("rolling", new Mi()), + t.state.add("jetpack", new Ei()), + t.state.add("jetpackDodging", new Oi()), + t.state.add("pogo", new Ri()), + t.state.addTransition("all", "idle"), + t.state.addTransition("idle", "running"), + t.state.addTransition("running", "dodging"), + t.state.addTransition("running", "rolling"), + t.state.addTransition("running", "airborne"), + t.state.addTransition("running", "jetpack"), + t.state.addTransition("running", "pogo"), + t.state.addTransition("running", "grinding", !0), + t.state.addTransition("dodging", "rolling"), + t.state.addTransition("dodging", "running"), + t.state.addTransition("dodging", "airborne"), + t.state.addTransition("dodging", "jetpack"), + t.state.addTransition("dodging", "pogo"), + t.state.addTransition("airborne", "rolling"), + t.state.addTransition("airborne", "running"), + t.state.addTransition("airborne", "dodging"), + t.state.addTransition("airborne", "jetpack"), + t.state.addTransition("airborne", "pogo"), + t.state.addTransition("ascending", "rolling", !0), + t.state.addTransition("ascending", "running", !0), + t.state.addTransition("ascending", "dodging", !0), + t.state.addTransition("ascending", "jetpack", !0), + t.state.addTransition("ascending", "pogo", !0), + t.state.addTransition("hangtime", "ascending", !0), + t.state.addTransition("hangtime", "rolling", !0), + t.state.addTransition("hangtime", "running", !0), + t.state.addTransition("hangtime", "dodging", !0), + t.state.addTransition("hangtime", "jetpack", !0), + t.state.addTransition("hangtime", "pogo", !0), + t.state.addTransition("descending", "ascending", !0), + t.state.addTransition("descending", "hangtime", !0), + t.state.addTransition("descending", "rolling", !0), + t.state.addTransition("descending", "running", !0), + t.state.addTransition("descending", "dodging", !0), + t.state.addTransition("descending", "jetpack", !0), + t.state.addTransition("descending", "pogo", !0), + t.state.addTransition("rolling", "running"), + t.state.addTransition("rolling", "airborne"), + t.state.addTransition("rolling", "dodging"), + t.state.addTransition("rolling", "jetpack"), + t.state.addTransition("rolling", "pogo"), + t.state.addTransition("jetpack", "ascending"), + t.state.addTransition("jetpack", "hangtime"), + t.state.addTransition("jetpack", "descending"), + t.state.addTransition("jetpack", "airborne"), + t.state.addTransition("jetpack", "jetpackDodging"), + t.state.addTransition("jetpackDodging", "jetpack"), + t.state.addTransition("jetpackDodging", "airborne"), + t.state.addTransition("jetpackDodging", "ascending"), + t.state.addTransition("jetpackDodging", "hangtime"), + t.state.addTransition("jetpackDodging", "descending"), + t.state.addTransition("pogo", "airborne"), + t.state.addTransition("pogo", "jetpack"), + t.state.addTransition("pogo", "rolling"), + t.state.addTransition("dead", "catch"), + t.state.addTransition("catch", "all"), + t.state.addTransition("all", "dead"), + t.state.addTransition("dead", "idle"), + t.state.addTransition("dead", "running"), + t.state.addTransition("grinding", "dodging", !0), + t.state.addTransition("grinding", "rolling", !0), + t.state.addTransition("grinding", "airborne", !0), + t.state.addTransition("grinding", "jetpack", !0), + t.state.addTransition("grinding", "pogo", !0), + t.state.addTransition("grinding", "ascending", !0), + t.state.addTransition("grinding", "descending", !0)), + (this.statesReady = !0); + var e = this.state.params; + (e.landed = this.body.landed), + (e.ascending = !this.body.hangtime && this.body.ascending), + (e.descending = !this.body.hangtime && this.body.descending), + (e.rolling = this.roll.isRolling), + (e.dead = !!this.player.deathCause), + (e.hoverboard = this.hoverboard.isOn()), + (e.dodging = this.lane.changing), + (e.playing = !!this.game.state && !this.player.deathCause), + (e.jetpack = this.jetpack.isOn()), + (e.pogo = this.pogo.isOn()), + (e.special = e.jetpack || e.pogo), + (e["catch"] = !!this.player.catchMode), + (e.grinding = this.hoverboard.grinding); + }), + (n.revive = function () { + this.reviveSmoke || + this.add( + We, + { + EntityClass: mi, + container: this.game, + rate: 1, + life: 90, + xMod: [-10, 10], + yMod: [-2, 20], + velocityXMod: [-1, 1], + velocityYMod: [1, 3], + velocityZMod: [-1, -0.5], + scaleXMod: [0.8, 1.3], + scaleYMod: [0.8, 1.3], + scaleZMod: [0.8, 1.3], + growXMod: [0.01, 0.03], + growYMod: [0.01, 0.03], + growZMod: [0.01, 0.03], + }, + "reviveSmoke" + ), + this.reviveHalo || this.add(fi), + this.reviveHalo.play(), + (this.reviveSmoke.data.x = this.x), + (this.reviveSmoke.data.y = 0), + (this.reviveSmoke.data.z = this.z), + this.reviveSmoke.spawn(20), + this.game.sfx.play("hero_revive"); + }), + Character + ); + })(v.a); + var ki = (function () { + function StateIdle() { + (this.playing = !1), (this.dead = !1); + } + return ( + (StateIdle.prototype.begin = function () { + this.entity.anim.play("idle", { + loop: !0, + }); + }), + StateIdle + ); + })(), + xi = (function () { + function StateRunning() { + (this.playing = !0), + (this.landed = !0), + (this.rolling = !1), + (this.dodging = !1), + (this.grinding = !1), + (this.anim = { + normal: "run3", + hoverboard: "h_run", + sneakers: "superRun", + }), + (this.count = 0), + (this.alt = !1), + (this.soundSteps = !1); + } + var t = StateRunning.prototype; + return ( + (t.begin = function () { + this.count = 0; + var t = this.entity.player.getMode(), + e = this.anim[t]; + (this.soundSteps = "sneakers" === t), + "hoverboard" === t && + this.entity.anim.play("h_landing", { + loop: !1, + enforce: 0.3, + }), + this.entity.anim.play(e, { + loop: !0, + }); + }), + (t.update = function (t) { + if (this.soundSteps && ((this.count -= t), this.count <= 0)) { + (this.count = 25), (this.alt = !this.alt); + var e = this.alt ? "hero_sneakers_foot_l" : "hero_sneakers_foot_r"; + this.entity.game.sfx.play(e); + } + }), + StateRunning + ); + })(), + Ci = (function () { + function StateGrinding() { + (this.playing = !0), (this.landed = !0), (this.rolling = !1), (this.dodging = !1), (this.grinding = !0), (this.ascending = !1), (this.descending = !1); + } + var t = StateGrinding.prototype; + return ( + (t.begin = function () { + var t = L.pick("1", "2", "3"); + (this.animName = "h_Grind" + t), + this.entity.anim.play(this.animName + "_land", { + loop: !0, + enforce: 0.2, + }), + this.entity.anim.play(this.animName, { + loop: !0, + }); + }), + (t.update = function (t) { + this.entity.anim.currentName === this.animName && this.entity.hoverboard.updateGrinding(); + }), + StateGrinding + ); + })(), + Si = (function () { + function StateDodging() { + (this.playing = !0), + (this.landed = !0), + (this.rolling = !1), + (this.dodging = !0), + (this.anim = { + normal: { + "-1": "dodgeLeft", + 1: "dodgeRight", + }, + hoverboard: { + "-1": "h_left", + 1: "h_right", + }, + sneakers: { + "-1": "dodgeLeft", + 1: "dodgeRight", + }, + }); + } + return ( + (StateDodging.prototype.begin = function () { + var t = this.entity.player.getMode(), + e = this.anim[t][this.entity.lane.absStep]; + this.entity.anim.play(e); + }), + StateDodging + ); + })(), + zi = (function () { + function StateAscending() { + (this.playing = !0), + (this.landed = !1), + (this.special = !1), + (this.rolling = !1), + (this.ascending = !0), + (this.descending = !1), + (this.anim = { + normal: ["jump", "jump2", "jump3", "jump_salto"], + sneakers: ["jump", "jump2", "jump3", "jump_salto"], + hoverboard: [ + "h_jump2_kickflip_flip", + "h_jump3_bs360grab", + "h_jump4_360_flip", + "h_jump5_Impossible_flip", + "h_jump6_nollie", + "h_jump7_heelflip_flip", + "h_jump8_pop_shuvit_flip", + "h_jump9_fs360grab", + "h_jump10_heel360_flip", + "h_jump11_fs_salto", + ], + }); + } + return ( + (StateAscending.prototype.begin = function () { + var t = this.entity.player.getMode(), + e = this.anim[t]; + e && this.entity.anim.play(e); + }), + StateAscending + ); + })(), + Ti = (function () { + function StateHangtime() { + (this.playing = !0), + (this.landed = !1), + (this.special = !1), + (this.rolling = !1), + (this.ascending = !1), + (this.descending = !1), + (this.anim = { + normal: ["hangtime", "hangtime2", "hangtime3"], + sneakers: ["hangtime", "hangtime2", "hangtime3"], + }); + } + return ( + (StateHangtime.prototype.begin = function () { + var t = this.entity.player.getMode(), + e = this.anim[t]; + e && + this.entity.anim.play(e, { + loop: !0, + }); + }), + StateHangtime + ); + })(), + Pi = (function () { + function StateDescending() { + (this.playing = !0), + (this.landed = !1), + (this.special = !1), + (this.rolling = !1), + (this.ascending = !1), + (this.descending = !0), + (this.anim = { + normal: ["hangtime", "hangtime2", "hangtime3"], + sneakers: ["hangtime", "hangtime2", "hangtime3"], + }); + } + return ( + (StateDescending.prototype.begin = function () { + var t = this.entity.player.getMode(), + e = this.anim[t]; + e && + this.entity.anim.play(e, { + loop: !0, + }); + }), + StateDescending + ); + })(), + Mi = (function () { + function StateRolling() { + (this.playing = !0), + (this.rolling = !0), + (this.anim = { + normal: "roll", + hoverboard: "h_roll", + sneakers: "roll", + }); + } + return ( + (StateRolling.prototype.begin = function () { + var t = this.entity.player.getMode(), + e = this.anim[t]; + "hoverboard" === t && + this.entity.anim.play("h_jump2_kickflip_flip", { + sudden: !0, + }), + this.entity.anim.play(e, { + loop: !0, + }); + }), + StateRolling + ); + })(), + Ei = (function () { + function StateJetpack() { + (this.jetpack = !0), (this.dodging = !1); + } + return ( + (StateJetpack.prototype.begin = function () { + this.entity.anim.play("Jetpack_forward", { + loop: !0, + }); + }), + StateJetpack + ); + })(), + Oi = (function () { + function StateJetpackDodging() { + (this.jetpack = !0), + (this.dodging = !0), + (this.anim = { + "-1": "Jetpack_changeLane_left", + 1: "Jetpack_changeLane_right", + }); + } + return ( + (StateJetpackDodging.prototype.begin = function () { + var t = this.anim[this.entity.lane.absStep]; + this.entity.anim.play(t); + }), + StateJetpackDodging + ); + })(), + Ri = (function () { + function StatePogo() { + (this.pogo = !0), (this.anim = ["pogostick_Hangtime_flying"]); + } + return (StatePogo.prototype.begin = function () {}), StatePogo; + })(), + Ii = (function () { + function StateDead() { + (this.dead = !0), + (this["catch"] = !1), + (this.anim = { + upper: "death_upper", + lower: "death_lower", + train: "death_movingTrain", + bounce: "death_bounce", + out: "death_bounce", + }); + } + return ( + (StateDead.prototype.begin = function () { + var t = this.entity.player.deathCause, + e = this.anim[t] || "death_bounce"; + this.entity.anim.play(e, { + sudden: !0, + }); + }), + StateDead + ); + })(), + Li = (function () { + function StateCatch() { + (this.dead = !0), (this["catch"] = !0); + } + return ( + (StateCatch.prototype.begin = function () { + "train" !== this.entity.player.deathCause && + this.entity.anim.play("Avatar_Catch_Shoulder", { + sudden: !0, + }); + }), + StateCatch + ); + })(); + + function Follower_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var ji = (function (n) { + var t, e; + + function Follower(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).offsetX = e.offsetX || 0), i.reset(), i; + } + (e = n), ((t = Follower).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = Follower.prototype; + return ( + (a.reset = function () { + this.entity.body && + ((this.entity.body.lane = 0), + (this.entity.body.x = 0), + (this.entity.body.z = 999), + (this.entity.body.bottom = 0), + (this.mode = Follower.DISABLED), + (this.entity.active = !1), + (this.near = !1), + (this.enabled = !1), + (this.lastGround = 0), + (this.lastPos = 0)); + }), + (a.update = function (t) { + if (this.enabled) { + t || (t = this.entity.game.delta); + var e = this.entity.game.hero; + e.player.running && + (this.mode === Follower.INTRO + ? this.changeMode(Follower.NEAR) + : this.entity.game.level.isTutorial() + ? this.changeMode(Follower.FAR) + : e.pogo.isOn() || e.jetpack.isOn() + ? this.changeMode(Follower.GO_AWAY) + : e.player.dead + ? "train" === e.player.deathCause + ? this.changeMode(Follower.GO_AWAY) + : this.changeMode(Follower.CATCH) + : e.player.dizzy + ? this.changeMode(Follower.NEAR) + : this.changeMode(Follower.FAR)), + this.time <= this.duration && ((this.time += this.entity.game.deltaSecs), this.time > this.duration && (this.time = this.duration)); + var i = e.body.x + this.offsetX; + (this.entity.body.x = V.lerp(this.entity.body.x, i, 0.5 * t)), e.body.landed && (this.lastGround = e.body.ground); + var n = this.lastGround + 0.5 * (e.body.bottom - this.lastGround); + (this.entity.body.bottom = V.lerp(this.entity.body.bottom, n, 0.5 * t)), this.entity.body.bottom > e.body.bottom && (this.entity.body.bottom = e.body.bottom); + var o = this.curve ? this.curve(this.time / this.duration) : this.time / this.duration, + s = V.lerp(this.distanceStart, this.distanceEnd, o); + (this.distance = s), this.sound && this.sound.volume(1 - V.clamp(this.distance / 70, 0, 1)); + } + }), + (a.changeMode = function (t) { + this.mode !== t && + (this.mode === Follower.FAR && t === Follower.NEAR ? this.entity.game.sfx.play("guard_proximity") : t === Follower.CATCH && this.entity.game.sfx.play("guard_catch"), + (this.mode = t), + (this.distanceStart = this.distance), + (this.distanceEnd = this.mode.distance), + (this.duration = this.mode.duration), + (this.curve = this.mode.curve), + (this.time = 0)); + }), + (a.enable = function () { + (this.enabled = !0), this.changeMode(Follower.NEAR); + }), + (a.disable = function () { + (this.entity.active = !0), (this.entity.body.z = 9999), (this.enabled = !1); + }), + (a.playIntro = function () { + (this.distance = 50), (this.time = this.duration = 0.01), this.enable(), this.changeMode(Follower.INTRO); + }), + (a.dismiss = function () { + this.changeMode(Follower.DISABLED); + }), + (i = Follower), + (o = [ + { + key: "distance", + set: function (t) { + var e = this.entity.game.stats.z + t; + this.entity.body.z = e; + }, + get: function () { + return this.entity.z - this.entity.game.stats.z; + }, + }, + ]) && Follower_defineProperties(i.prototype, o), + s && Follower_defineProperties(i, s), + Follower + ); + })(J.a); + (ji.DISABLED = { + distance: 9999, + duration: 0.1, + curve: null, + }), + (ji.FAR = { + distance: 70, + duration: 3, + curve: St.sineIn, + }), + (ji.GO_AWAY = { + distance: 100, + duration: 1, + curve: St.sineIn, + }), + (ji.NEAR = { + distance: 10, + duration: 0.6, + curve: St.sineOut, + }), + (ji.CATCH = { + distance: 0, + duration: 0.3, + curve: St.sineOut, + }), + (ji.INTRO = { + distance: 10, + duration: 1e-10, + curve: St.expoOut, + }); + var Fi = (function (e) { + var t, i; + + function Cop() { + var t; + return ( + (t = e.call(this) || this).add(it, { + deco: !0, + ghost: !0, + }), + t.add(ji), + t.add(ci), + t.add(di), + (t.body.height = 14), + (t.body.width = 6), + (t.body.depth = 6), + (t.model = new v.a()), + (t.model.y = 0.4 * -t.body.height), + (t.model.ry = Math.PI), + t.addChild(t.model), + (t["catch"] = null), + (t.catchCount = 0), + t.scale.set(0.01), + t + ); + } + (i = e), ((t = Cop).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i); + var n = Cop.prototype; + return ( + (n.init = function () { + this._initialized || ((this._initialized = !0), this.anim.addAnim("movement", hi.guard_movement), this.anim.addAnim("catch", hi.guard_catch)); + }), + (n.playIntro = function () { + var t = this; + this.init(), + this.scale.set(0.01), + (this.active = !0), + (this.z = 999), + (this.body.z = this.z), + this.game.sfx.play("guard_start"), + this.anim.play("Guard_run", { + sudden: !0, + loop: !1, + }), + this.anim.play("Guard_playIntro", { + sudden: !0, + crossfade: 0, + }), + this.follower.playIntro(), + setTimeout(function () { + t.scale.set(1); + }, 100); + }), + (n.run = function () { + this.init(), + (this.active = !0), + this.anim.play("Guard_run", { + loop: !0, + }), + this.follower.enable(); + }), + (n.reset = function () { + this._initialized && (this.follower.reset(), (this.z = 999), (this.body.z = this.z), (this.catchCount = 0), (this["catch"] = null), (this.active = !1)); + }), + (n.onStateUpdate = function () { + var t; + this.statesReady || + (((t = this).state.params = { + playing: !1, + landed: !1, + dodging: !1, + rolling: !1, + catch: !1, + hasDeathCause: !1, + }), + t.state.add("idle", new Ai()), + t.state.add("running", new Di()), + t.state.add("dodging", new Gi()), + t.state.add("airborne", new Bi()), + t.state.add("rolling", new Ni()), + t.state.add("catch", new Xi()), + t.state.addTransition("all", "idle"), + t.state.addTransition("idle", "running"), + t.state.addTransition("running", "dodging", !0), + t.state.addTransition("running", "airborne", !0), + t.state.addTransition("running", "rolling", !0), + t.state.addTransition("airborne", "rolling", !0), + t.state.addTransition("airborne", "dodging", !0), + t.state.addTransition("all", "catch"), + t.state.addTransition("catch", "idle"), + t.state.addTransition("catch", "running")), + (this.statesReady = !0), + this.catchCount && ((this.catchCount -= 1), 0 === this.catchCount && (this["catch"] = !0)); + var e = this.state.params; + (e.landed = this.game.hero.body.landed), + (e.rolling = !!this.game.hero.player.rolling), + (e.dodging = !!this.game.hero.body.dodging), + (e.playing = !!this.game.state && !this.game.hero.player.deathCause), + (e["catch"] = !!this["catch"]), + (e.hasDeathCause = !!this.game.hero.player.deathCause); + }), + (n.catchHero = function () { + this.catchCount = 10; + }), + Cop + ); + })(v.a); + var Ai = (function () { + function StateIdle() { + (this.playing = !1), (this["catch"] = !1); + } + var t = StateIdle.prototype; + return (t.begin = function () {}), (t.end = function () {}), StateIdle; + })(), + Di = (function () { + function StateRunning() { + (this.playing = !0), (this.landed = !0), (this.rolling = !1), (this.dodging = !1); + } + var t = StateRunning.prototype; + return ( + (t.begin = function () { + this.entity.anim.play("Guard_run", { + loop: !0, + }); + }), + (t.update = function () { + !this._catchScene && this.entity.anim.scenes[1] && (this._catchScene = this.entity.anim.scenes[1].pixiTree), this._catchScene && (this._catchScene.active = !1); + }), + StateRunning + ); + })(), + Gi = (function () { + function StateDodging() { + (this.playing = !0), + (this.landed = !0), + (this.rolling = !1), + (this.dodging = !0), + (this.anim = { + 1: "Guard_dodgeLeft", + "-1": "Guard_dodgeRight", + }); + } + return ( + (StateDodging.prototype.begin = function () { + var t = this.anim[this.entity.game.hero.body.dodging]; + this.entity.anim.play(t, { + sudden: !1, + }); + }), + StateDodging + ); + })(), + Bi = (function () { + function StateAirborne() { + (this.playing = !0), (this.landed = !1), (this.rolling = !1); + } + return ( + (StateAirborne.prototype.begin = function () { + this.entity.anim.play("Guard_jump", { + sudden: !0, + }); + }), + StateAirborne + ); + })(), + Ni = (function () { + function StateRolling() { + (this.playing = !0), (this.rolling = !0); + } + return ( + (StateRolling.prototype.begin = function () { + this.entity.anim.play("Guard_roll", { + loop: !0, + sudden: !0, + }); + }), + StateRolling + ); + })(), + Xi = (function () { + function StateCatch() { + (this["catch"] = !0), (this.anims = ["Catch_Shoulder", "Catch_Left_Pickup", "Catch_Right_Pickup"]); + } + return ( + (StateCatch.prototype.begin = function () { + if (!this.playing) + if ("train" === this.entity.game.hero.player.deathCause) this.entity.follower.dismiss(); + else { + var t = this.entity.game.hero, + e = t.body.x, + i = t.body.lane * B.laneWidth, + n = L.item(this.anims); + (n = i - 4 < e && e < i + 4 ? "Catch_Shoulder" : -1 === t.player.bumpSide ? "Catch_Right_Pickup" : 1 === t.player.bumpSide ? "Catch_Left_Pickup" : "Catch_Shoulder"), + this.entity.anim.play("Guard_" + n, { + sudden: !0, + }), + this.entity.game.hero.anim.play("Avatar_" + n, { + sudden: !0, + }); + } + }), + StateCatch + ); + })(); + var Yi = (function (d) { + var t, e; + + function Skyline() { + var t; + (t = d.call(this) || this).rotation.y = Math.PI; + var e = H.whichScene("sl_monument_4", "sl_monument_04"), + i = H.getEntityCloneColor(e, 9490943, !1); + t.addChild(i), (i.x = 100), (i.y = -50), (i.z = 0); + var n = H.whichScene("sl_monument_2", "sl_monument_02"), + o = H.getEntityCloneColor(n, 6533631, !1); + t.addChild(o), (o.x = 0), (o.z = -30); + var s = H.whichScene("sl_monument_3", "sl_monument_03"), + a = H.getEntityCloneColor(s, 9490943, !1); + t.addChild(a), (o.x = 0), (o.y = -200), (a.z = -60); + var r = H.whichScene("sl_monument_1", "sl_monument_01"), + h = H.getEntityCloneColor(r, 6533631, !1); + return t.addChild(h), (o.x = 100), (h.z = -90), t; + } + return (e = d), ((t = Skyline).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), Skyline; + })(v.a), + Hi = {}; + (Hi["new"] = function () { + return H.getEntityClone("tube"); + }), + (Hi.new001 = function () { + return H.getEntityClone("tube001"); + }), + (Hi.new002 = function () { + return H.getEntityClone("tube002"); + }), + (Hi.spawn = function (t, e) { + void 0 === e && (e = {}), e.z || (e.z = t.z); + var i = t.game.pool.get(Hi["new"]); + if (((i.x = 0), (i.y = 0), (i.z = e.z), (i.ry = Math.PI), t.game.addChild(i), "1103_seoul" === B.env)) { + var n = t.game.pool.get(Hi.new001); + (n.x = 0), (n.y = 0), (n.z = e.z), (n.ry = Math.PI), (n.view3d.state.blend = !0), (n.view3d.material.opacity = 0.5), t.game.addChild(n); + var o = t.game.pool.get(Hi.new002); + (o.x = 0), (o.y = 0), (o.z = e.z), (o.ry = Math.PI), t.game.addChild(o); + } + }), + (Hi.mount = function (t) { + for (var e = t.blocks / 2, i = 0; i < e; i++) { + var n = t.z - i * B.blockSize * 2; + Hi.spawn(t, { + z: n, + }); + } + }); + var Ui = i(190), + Vi = i.n(Ui), + qi = i(191), + Wi = i.n(qi); + var Zi = (function (n) { + var t, e; + + function SeaMaterial(t, e) { + void 0 === t && (t = {}), void 0 === e && (e = {}); + var i = [e.fog ? "#define FOG" : "", e.rails ? "#define RAILS" : ""]; + return (t.uniforms = O.unformGroup()), n.call(this, t, Vi.a, Wi.a, i, "sea") || this; + } + return (e = n), ((t = SeaMaterial).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), SeaMaterial; + })(z.a), + Ki = {}, + Ji = Ki; + (Ki.newStart = function () { + return H.getEntityClone("epic_start"); + }), + (Ki.newStart001 = function () { + return H.getEntityClone("epic_start001", "ocean", !1, Zi); + }), + (Ki.newStart002 = function () { + return H.getEntityClone("epic_start002", "", !1, R); + }), + (Ki.newStart003 = function () { + return H.getEntityClone("epic_start003", "", !1, R); + }), + (Ki.newMid = function () { + return H.getEntityClone("epic_mid"); + }), + (Ki.newMid001 = function () { + return H.getEntityClone("epic_mid001", "", !1, R); + }), + (Ki.newMid002 = function () { + return H.getEntityClone("epic_mid002", "ocean", !1, Zi); + }), + (Ki.newMid003 = function () { + return H.getEntityClone("epic_mid003", "", !1, R); + }), + (Ki.newEnd = function () { + return H.getEntityClone("epic_end"); + }), + (Ki.newEnd001 = function () { + return H.getEntityClone("epic_end001", "", !1, R); + }), + (Ki.newEnd002 = function () { + return H.getEntityClone("epic_end002", "ocean", !1, Zi); + }), + (Ki.newEnd003 = function () { + return H.getEntityClone("epic_end003", "", !1, R); + }), + (Ki.newStartAlt = function () { + return H.getEntityClone("epic_1_start"); + }), + (Ki.newStart001Alt = function () { + return H.getEntityClone("epic_1_start001", "ocean", !1, Zi); + }), + (Ki.newStart002Alt = function () { + return H.getEntityClone("epic_1_start002", "", !1, R); + }), + (Ki.newStart003Alt = function () { + return H.getEntityClone("epic_1_start003", "", !1, R); + }), + (Ki.newMidAlt = function () { + return H.getEntityClone("epic_1_mid"); + }), + (Ki.newMid001Alt = function () { + return H.getEntityClone("epic_1_mid001", "", !1, R); + }), + (Ki.newMid002Alt = function () { + return H.getEntityClone("epic_1_mid002", "ocean", !1, Zi); + }), + (Ki.newMid003Alt = function () { + return H.getEntityClone("epic_1_mid003", "", !1, R); + }), + (Ki.newEndAlt = function () { + return H.getEntityClone("epic_1_end"); + }), + (Ki.newEnd001Alt = function () { + return H.getEntityClone("epic_1_end001", "", !1, R); + }), + (Ki.newEnd002Alt = function () { + return H.getEntityClone("epic_1_end002", "ocean", !1, Zi); + }), + (Ki.newEnd003Alt = function () { + return H.getEntityClone("epic_1_end003", "", !1, R); + }), + (Ki.spawn = function (t, e) { + void 0 === e && (e = {}), e.z || (e.z = t.z), e.alt || (e.alt = !1), e.part || (e.part = "Start"), "1103_seoul" === B.env && (e.alt = !1); + var i = "new" + e.part + (e.alt ? "Alt" : ""), + n = "new" + e.part + "001" + (e.alt ? "Alt" : ""), + o = "new" + e.part + "002" + (e.alt ? "Alt" : ""), + s = "new" + e.part + "003" + (e.alt ? "Alt" : ""), + a = t.game.pool.get(Ki[i]); + if (((a.x = 0), (a.y = 0), (a.z = e.z), (a.ry = Math.PI), t.game.addChild(a), "1103_seoul" === B.env)) { + var r = t.game.pool.get(Ki[n]); + (r.x = 0), (r.y = 0), (r.z = e.z), (r.ry = Math.PI), t.game.addChild(r); + var h = t.game.pool.get(Ki[o]); + (h.x = 0), (h.y = 0), (h.z = e.z), (h.ry = Math.PI), t.game.addChild(h); + var d = t.game.pool.get(Ki[s]); + (d.x = 0), (d.y = 0), (d.z = e.z), (d.ry = Math.PI), t.game.addChild(d); + } + }), + (Ki.mount = function (t) { + for (var e = t.blocks, i = 12 < t.blocks, n = 0.25 * e, o = 0, s = 0; s < n; s++) + 0 === s + ? Ki.spawn(t, { + z: t.z - o, + part: "Start", + alt: i, + }) + : s < n - 1 + ? Ki.spawn(t, { + z: t.z - o, + part: "Mid", + alt: i, + }) + : Ki.spawn(t, { + z: t.z - o, + part: "End", + alt: i, + }), + (o += 4 * B.blockSize); + }); + var Qi = (function (n) { + var t, e; + + function EnvironmentSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).models = []), + (i.game = t.game), + i.game.onRun.add( + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(i) + ), + i + ); + } + (e = n), ((t = EnvironmentSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = EnvironmentSystem.prototype; + return ( + (i.run = function () { + this.skyline || ((this.skyline = new Yi()), this.game.addChild(this.skyline)); + }), + (i.update = function () { + this.skyline && (this.skyline.z = this.game.stats.z - 0.95 * B.visibleMaxDistance); + }), + (i.setup = function (t) { + var e = ue.environment(t.node), + i = e ? ue.environmentType(e) : null; + if (!i) + if (t.node.name.match(/tunnel/)) i = ["Gates", "All"]; + else if (t.node.name.match(/epic/)) i = ["Epic", "All"]; + else if (t.node.components.RouteChunk) { + var n = t.node.components.RouteChunk._limitedAllowedEnvironmentKinds; + i = (n.length ? L.item(n)._type.split(",") : ["Fillers", "All"]) || []; + } else i = []; + (t.envTube = !1), + (t.envStation = !1), + (t.envEpic = !1), + (t.envGates = !1), + (t.envEmpty = !1), + (t.envPillars = !1), + B.forceTube || 0 <= i.indexOf("Tube") + ? (t.envTube = this.game.route.canSpawn("tube", t.z)) + : 0 <= i.indexOf("Station") + ? (t.envStation = !0) + : 0 <= i.indexOf("Epic") + ? (t.envEpic = this.game.route.canSpawn("epic", t.z)) + : 0 <= i.indexOf("Gates") + ? (t.envGates = !0) + : 0 <= i.indexOf("Pillars") + ? (t.envPillars = !0) + : 0 <= i.indexOf("Empty") && (t.envEmpty = !0); + }), + (i.mount = function (t) { + t.envTube ? this.spawnTube(t) : t.envStation ? this.spawnStation(t) : t.envEpic ? this.spawnEpic(t) : t.envEmpty ? this.spawnRegular(t) : t.envGates ? this.spawnGates(t) : this.spawnRegular(t); + }), + (i.spawnEpic = function (t) { + Ji.mount(t), this.game.route.setSpawn("epic", t.z - t.length - 1800); + }), + (i.spawnTube = function (t) { + var e = t.node, + i = t.game.pool.get(he); + t.game.addChild(i), i.init(t, e), this.game.route.setSpawn("tube", t.z - t.length - 360); + }), + (i.spawnStation = function (t) { + var e = ue.environment(t.node), + i = (e.components.Transform.position.z, t.game.pool.get(Kt)); + i.init(t, e), t.game.addChild(i), Nt.mount(t), Yt.mount(t); + }), + (i.spawnGates = function (t) {}), + (i.spawnRegular = function (t) { + Yt.mount(t), Nt.mount(t); + }), + EnvironmentSystem + ); + })(f.a), + $i = i(127); + + function RouteSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var tn = (function (n) { + var t, e; + + function RouteSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).game = t.game), + i.game.onReset.add( + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(i) + ), + (i._spawns = {}), + (i.builder = new en(i.game)), + (i.firstPassed = !1), + i + ); + } + (e = n), ((t = RouteSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + o, + s, + a = RouteSystem.prototype; + return ( + (a.reset = function () { + this.builder.reset(), + (this.firstPassed = !1), + (this.game.stats.route = ""), + (this._spawns = { + pickup: -900, + tube: -90, + }); + }), + (a.getSequence = function () { + var t = Math.clamp(this.game.stats.level, 0, 3), + e = [], + i = [], + n = []; + if (B.routeSection) n.push(we.section("default_fallback")), n.push(we.section(B.routeSection)); + else { + if (!this.firstPassed) { + var o = we.section(this.game.tutorial.enabled ? "tutorial" : "default_start"); + n.push(o), (this.firstPassed = !0); + } + n.push(this.builder.getSectionByLevel(t)); + } + for (var s = 0; s < n.length; s++) { + var a = n[s]; + if (!(0 <= i.indexOf(a.name))) { + if ((i.push(a.name), a.start)) for (var r in a.start) e.push(a.start[r]); + if ((a.mid && e.push(L.item(a.mid)), a.end)) for (var h in a.end) e.push(a.end[h]); + } + } + return e; + }), + (a.canSpawn = function (t, e) { + return void 0 === this._spawns[t] || e <= this._spawns[t]; + }), + (a.setSpawn = function (t, e) { + this._spawns[t] = e; + }), + (a.resetSpawns = function () { + (this.builder.picked = {}), + (this._spawns = { + pickup: -900, + tube: -90, + }); + }), + (i = RouteSystem), + (o = [ + { + key: "profile", + get: function () { + return this._profile || (this._profile = {}), this._profile; + }, + }, + ]) && RouteSystem_defineProperties(i.prototype, o), + s && RouteSystem_defineProperties(i, s), + RouteSystem + ); + })(f.a), + en = (function () { + function RouteBuilder(t) { + (this.game = t), + (this.minDistanceBetweenRepeats = 2700), + (this.sectionsStart = { + default_start: 10, + }), + (this.sectionsMid = { + "default_b-s-b": 10, + default_choice: 10, + "default_s-b-s-b": 10, + "default_s-s": 10, + "default_s-s-s-s": 10, + default_train_tops_1: 10, + default_train_tops_2: 10, + default_tunnel_notrain: 10, + default_ramp_1: 10, + default_epic: 20, + default_1_track: 30, + default_2_tracks: 10, + default_train_tops_moving: 10, + default_train_tops_moving_combined: 10, + default_train_tops_moving_multiple: 10, + default_tunnel: 30, + default_epic_various: 20, + "default_4_units_3_tracks_b-s-b": 10, + default_4_units_3_tracks_choice: 10, + "default_4_units_3_tracks_s-b-s-b": 10, + "default_4_units_3_tracks_s-s": 10, + "default_4_units_3_tracks_s-s-s-s": 10, + default_short_1_track: 10, + default_ramp_2: 10, + default_short_2_tracks: 10, + default_short_train_tops_moving_combined: 10, + default_short_train_tops_moving_multiple: 10, + default_short_train_tops_moving: 10, + default_pogostick_start: 5, + default_bonus_short: 10, + default_bonus_long: 10, + }), + (this.levels = ["easy", "normal", "hard", "expert"]), + this.reset(); + } + var t = RouteBuilder.prototype; + return ( + (t.reset = function () { + (this.picked = { + default_tunnel: 1, + default_tunnel_notrain: 1, + }), + (this.level = 0), + (this.availableSections = {}), + this.addAvailableSections("easy"); + }), + (t.getSectionByLevel = function (t) { + if (t > this.level) { + this.level = t; + var e = this.levels[this.level]; + this.addAvailableSections(e), 2 == t && (this.addAvailableSection("default_bonus_short"), this.addAvailableSection("default_bonus_long"), this.addAvailableSection("default_pogostick_start")); + } + for (var i in this.picked) this.game.stats.distance > this.picked[i] && delete this.picked[i]; + var n = Object.assign({}, this.availableSections); + for (var o in this.picked) delete n[o]; + var s = L.item(n); + if (!s) throw new Error("No section available"); + return ( + s.__shortname.match("default_tunnel") + ? ((this.picked.default_tunnel = this.game.stats.distance + 0.75 * this.minDistanceBetweenRepeats), (this.picked.default_tunnel_notrain = this.game.stats.distance + 0.75 * this.minDistanceBetweenRepeats)) + : (this.picked[s.__shortname] = this.game.stats.distance + this.minDistanceBetweenRepeats), + s + ); + }), + (t.addAvailableSections = function (t) { + var e = $i["default"][t]["default"]; + for (var i in e) this.addAvailableSection(e[i]); + }), + (t.addAvailableSection = function (t) { + "string" == typeof t && (t = we.section(t)); + var e = t.name.replace("routeSection_", "").replace("route_section_", ""); + this.sectionsMid[e] && ((this.availableSections[e] = t).__shortname = e); + }), + RouteBuilder + ); + })(), + nn = i(7); + + function Label_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var on = { + basic: { + align: "center", + fill: 16777215, + fontSize: 50, + fontFamily: "Titan One", + lineJoin: "round", + dropShadow: !1, + dropShadowDistance: 3, + anchor: 0.5, + maxWidth: 0, + }, + title: { + align: "center", + fill: 211825, + fontSize: 70, + fontFamily: "Titan One", + dropShadow: !1, + dropShadowDistance: 2, + anchor: 0.5, + }, + subtitle: { + align: "center", + fill: 211825, + fontSize: 60, + fontFamily: "Titan One", + dropShadow: !1, + dropShadowDistance: 2, + anchor: 0.5, + }, + small: { + align: "center", + fill: 211825, + fontSize: 50, + fontFamily: "Titan One", + }, + }, + sn = (function (s) { + var t, e; + + function Label(t, e, i) { + var n; + void 0 === e && (e = "basic"), void 0 === i && (i = {}), (n = s.call(this) || this); + var o = "string" == typeof e ? on[e] : e; + return ( + (e = Object.assign({}, on.basic, o, i)), + (n._text = new c.Text(t, e)), + n._text.anchor.set(e.anchor), + n.addChild(n._text), + void 0 !== e.anchorX && (n._text.anchor.x = e.anchorX), + void 0 !== e.anchorY && (n._text.anchor.y = e.anchorY), + e.x && (n.x = e.x), + e.y && (n.y = e.y), + e.maxWidth && (n.maxWidth = e.maxWidth), + e.icon && ((n.icon = c.Sprite.from(e.icon)), n.icon.anchor.set(0.5), n.addChild(n.icon), (n.icon.x = 0), n.update()), + n + ); + } + (e = s), ((t = Label).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + n, + o, + a = Label.prototype; + return ( + (a.update = function () { + if ((this.maxWidth && this._text.width > this.maxWidth && ((this._text.scale.x = 1), (this._text.width = this.maxWidth), (this._text.scale.y = this._text.scale.x)), this.icon)) { + (this._text.x = 0), (this.icon.x = this._text.x - 0.5 * this._text.width - 0.5 * this.icon.width - 5); + var t = 0.5 * (this.width - this._text.width); + (this.icon.x += t), (this._text.x += t); + } + }), + (a.prompt = function () { + if (!this._prompting) { + this._prompting = !0; + var t = window.prompt(this.description, this.text); + t && (this.text = t), (this._prompting = !1), this.emit("change", this.text); + } + }), + (i = Label), + (n = [ + { + key: "text", + get: function () { + return this._text.text; + }, + set: function (t) { + this._text.text !== t && ((this._text.text = t), this.update()); + }, + }, + { + key: "editable", + get: function () { + return !!this._editable; + }, + set: function (t) { + (this._editable = t), (this.interactive = t), (this.buttonMode = t), void 0 === this.description && (this.description = "Set text"), this[this._editable ? "on" : "off"]("pointertap", this.prompt, this); + }, + }, + ]) && Label_defineProperties(i.prototype, n), + o && Label_defineProperties(i, o), + Label + ); + })(c.Container), + an = i(131); + + function TutorialSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function TutorialSystem_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + + function TutorialSystem_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var rn = (function (n) { + function TutorialSystem(t, e) { + var i; + return ( + void 0 === e && (e = {}), + ((i = n.call(this, t, e) || this).view = new c.Container()), + (i.game = t.game), + i.game.onRun.add(TutorialSystem_assertThisInitialized(i)), + i.game.onPause.add(TutorialSystem_assertThisInitialized(i)), + i.game.onResume.add(TutorialSystem_assertThisInitialized(i)), + i + ); + } + TutorialSystem_inheritsLoose(TutorialSystem, n); + var t, + e, + i, + o = TutorialSystem.prototype; + return ( + (o.run = function () { + this._enabled && this.show(); + }), + (o.pause = function () { + this._enabled && (this.view.visible = !1); + }), + (o.resume = function () { + this._enabled && (this.view.visible = !0); + }), + (o.build = function () { + this._built || ((this._built = !0), (this.arrow = new hn()), this.view.addChild(this.arrow), (this.msg = new dn(this.game.app)), this.view.addChild(this.msg), this.resize()); + }), + (o.show = function () { + this._enabled && (this.build(), this.game.stage.addChild(this.view), this.game.hero.hoverboard.lock()); + }), + (o.hide = function () { + this.game.stage.removeChild(this.view); + }), + (o.enterTrigger = function (t) { + this._enabled && (this.game.stats.distanceDelta < 0 || (this.arrow.show(t), this.msg.show(t, this.arrow.visible), "hoverboard" === t && ((this.game.stats.hoverboards = 2), this.game.hero.hoverboard.unlock()))); + }), + (o.exitTrigger = function (t) {}), + (o.update = function (t) { + this._enabled && (this.arrow && this.arrow.update(t), this.msg && this.msg.update(t)); + }), + (o.resize = function (t, e, i) { + (this.sw = t || this.sw), + (this.sh = e || this.sh), + (this.sr = i || this.sr), + (this.s = this.sh / (667 * this.sr)), + (this.w = this.sw / this.s), + (this.h = this.sh / this.s), + this.view.scale.set(this.s), + (this.view.x = this.sw / 2), + (this.view.y = this.sh / 2); + }), + (t = TutorialSystem), + (e = [ + { + key: "enabled", + get: function () { + return this._enabled; + }, + set: function (t) { + this._enabled = t; + }, + }, + ]) && TutorialSystem_defineProperties(t.prototype, e), + i && TutorialSystem_defineProperties(t, i), + TutorialSystem + ); + })(f.a), + hn = (function (e) { + function Arrow() { + var t; + return ( + ((t = e.call(this) || this).img = c.Sprite.from("tutorial_arrow.png")), t.img.anchor.set(0.5), t.img.scale.set(2), (t.img.alpha = 0.5), t.addChild(t.img), (t.visible = !1), (t.time = 0), (t.duration = 0), (t.animRange = 300), t + ); + } + TutorialSystem_inheritsLoose(Arrow, e); + var t = Arrow.prototype; + return ( + (t.show = function (t, e) { + void 0 === e && (e = 40); + var i = { + up: 0, + right: 1, + down: 2, + left: 3, + }; + void 0 !== i[t] && ((this.visible = !0), (this.rotation = V.PI_HALF * i[t]), (this.time = 0), (this.duration = e), (this.img.y = this.animRange)); + }), + (t.hide = function () { + this.visible = !1; + }), + (t.update = function (t) { + if (this.visible) { + this.time += t; + var e = this.time / this.duration; + (this.img.y = this.animRange - 2 * this.animRange * e), 1 < e && this.hide(); + } + }), + Arrow + ); + })(c.Container), + dn = (function (i) { + function Msg(t) { + var e; + return ( + ((e = + i.call(this, "MSG", { + align: "center", + fill: 16777215, + fontSize: 50, + fontFamily: "Lilita One", + stroke: "black", + strokeThickness: 5, + anchor: 0.5, + }) || this).app = t), + (e.visible = !1), + (e.time = 0), + (e.duration = 60), + e + ); + } + TutorialSystem_inheritsLoose(Msg, i); + var t = Msg.prototype; + return ( + (t.show = function (t, e) { + var i = B.mobile ? "" : "_desktop", + n = this.app.strings.get("tutorial_" + t + i); + n || (n = this.app.strings.get("tutorial_" + t)), + n && + ((this.text = n), + (this.visible = !0), + (this.time = 0), + (this.duration = 20 + 2 * n.length), + (this.scale.y = 0), + an.a.to(this.scale, 0.01, { + y: 1, + }), + (this.y = e ? 300 : 0), + (this.showing = !0)); + }), + (t.hide = function () { + var t = this; + (this.showing = !1), + an.a.to(this.scale, 0.1, { + y: 0, + onComplete: function () { + t.visible = !1; + }, + }); + }), + (t.update = function (t) { + this.visible && this.showing && ((this.time += t), this.time > this.duration && this.hide()); + }), + Msg + ); + })(sn); + + function IntroSystem_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function IntroSystem_createClass(t, e, i) { + return e && IntroSystem_defineProperties(t.prototype, e), i && IntroSystem_defineProperties(t, i), t; + } + var ln = (function (n) { + var t, e; + + function IntroSystem(t, e) { + var i; + return void 0 === e && (e = {}), ((i = n.call(this, t, e) || this).game = t.game), (i.onIntroComplete = new et.a("onIntroComplete")), (i.time = 0), (i.duration = 60), (i.playing = !1), i; + } + (e = n), ((t = IntroSystem).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = IntroSystem.prototype; + return ( + (i.update = function (t) { + this.playing && (this.step1 && this.step1.update(t), this.step2 && this.step2.update(t), this.step3 && this.step3.update(t)); + }), + (i.preupdate = function (t) { + this.playing && (t || (t = this.game.delta), (this.time += t), this.time >= this.duration && (this.time = this.duration), this.time >= this.duration && this.complete()); + }), + (i.play = function () { + (this.playing = !0), + this.game.camera.takeControl(), + this.game.camera.updateIdle(0), + (this.time = 0), + (this.step1 = new un("step1", this.game.camera.rig, 0.4 * this.duration)), + (this.step1.to.idleX = -16.49361), + (this.step1.to.idleY = -8.666094), + (this.step1.to.idleZ = 12.52404), + (this.step1.to.idleRotX = 23.52661 * V.DEG_TO_RAD), + (this.step1.to.idleRotY = 55.26425 * V.DEG_TO_RAD), + (this.step1.to.mainX = 0), + (this.step1.to.mainY = B.cameraPosY), + (this.step1.to.mainZ = B.cameraPosZ), + (this.step1.to.mainRotX = B.cameraRotX), + (this.step1.to.mainRotY = 0), + (this.step2 = new un("step2", this.game.camera.rig, 0.3 * this.duration)), + (this.step2.to.idleX = -16.49361), + (this.step2.to.idleY = -8.666094), + (this.step2.to.idleZ = 12.52404), + (this.step2.to.idleRotX = 23.30551 * V.DEG_TO_RAD), + (this.step2.to.idleRotY = 55.47934 * V.DEG_TO_RAD), + (this.step2.to.mainX = 0), + (this.step2.to.mainY = B.cameraPosY), + (this.step2.to.mainZ = B.cameraPosZ), + (this.step2.to.mainRotX = B.cameraRotX), + (this.step2.to.mainRotY = 0), + (this.step3 = new un("step3", this.game.camera.rig, 0.3 * this.duration)), + (this.step3.to.idleX = 0), + (this.step3.to.idleY = 0), + (this.step3.to.idleZ = 0), + (this.step3.to.idleRotX = 0), + (this.step3.to.idleRotY = 0), + (this.step3.to.mainX = 0), + (this.step3.to.mainY = B.cameraPosY), + (this.step3.to.mainZ = B.cameraPosZ), + (this.step3.to.mainRotX = B.cameraRotX), + (this.step3.to.mainRotY = 0), + (this.step3.to.fov = B.cameraFov), + (this.step3.curve = St.quintIn), + (this.step1.next = this.step2), + (this.step2.next = this.step3), + this.step1.play(); + }), + (i.complete = function () { + (this.playing = !1), this.game.camera.releaseControl(), this.onIntroComplete.dispatch(), this.game.runFromIntro(); + }), + IntroSystem_createClass(IntroSystem, [ + { + key: "ratio", + get: function () { + return this.time / this.duration; + }, + }, + ]), + IntroSystem + ); + })(f.a), + cn = (function () { + function CameraPos(t) { + (this.idleX = 0), (this.idleY = 0), (this.idleZ = 0), (this.idleRotX = 0), (this.idleRotY = 0), (this.mainX = 0), (this.mainY = 0), (this.mainZ = 0), (this.mainRotX = 0), (this.mainRotY = 0), (this.fov = 60), t && this.copy(t); + } + return ( + (CameraPos.prototype.copy = function (t) { + (this.idleX = t.idleX), + (this.idleY = t.idleY), + (this.idleZ = t.idleZ), + (this.idleRotX = t.idleRotX), + (this.idleRotY = t.idleRotY), + (this.mainX = t.mainX), + (this.mainY = t.mainY), + (this.mainZ = t.mainZ), + (this.mainRotX = t.mainRotX), + (this.mainRotY = t.mainRotY), + (this.fov = t.fov); + }), + CameraPos + ); + })(), + un = (function () { + function CameraAnim(t, e, i) { + void 0 === i && (i = 1), (this.name = t), (this.rig = e), (this.from = new cn(this.rig)), (this.to = new cn(this.rig)), (this.curve = St.sineInOut), (this.time = 0), (this.duration = i), (this.next = null); + } + var t = CameraAnim.prototype; + return ( + (t.play = function () { + (this.playing = !0), (this.time = 0), (this.from = new cn(this.rig)); + }), + (t.update = function (t) { + if (this.playing) { + (this.time += t), this.time >= this.duration && (this.time = this.duration); + var e = this.curve ? this.curve(this.ratio) : this.ratio; + (this.rig.idleX = V.lerp(this.from.idleX, this.to.idleX, e)), + (this.rig.idleY = V.lerp(this.from.idleY, this.to.idleY, e)), + (this.rig.idleZ = V.lerp(this.from.idleZ, this.to.idleZ, e)), + (this.rig.idleRotX = V.lerp(this.from.idleRotX, this.to.idleRotX, e)), + (this.rig.idleRotY = V.lerp(this.from.idleRotY, this.to.idleRotY, e)), + (this.rig.mainX = V.lerp(this.from.mainX, this.to.mainX, e)), + (this.rig.mainY = V.lerp(this.from.mainY, this.to.mainY, e)), + (this.rig.mainZ = V.lerp(this.from.mainZ, this.to.mainZ, e)), + (this.rig.mainRotX = V.lerp(this.from.mainRotX, this.to.mainRotX, e)), + (this.rig.mainRotY = V.lerp(this.from.mainRotY, this.to.mainRotY, e)), + (this.rig.fov = V.lerp(this.from.fov, this.to.fov, e)), + this.time >= this.duration && this.complete(); + } + }), + (t.complete = function () { + (this.playing = !1), (this.time = this.duration), this.next && this.next.play(); + }), + IntroSystem_createClass(CameraAnim, [ + { + key: "ratio", + get: function () { + return this.time / this.duration; + }, + set: function (t) { + this.time = this.duration * V.clamp(t); + }, + }, + ]), + CameraAnim + ); + })(); + + function Game_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + c.DisplayObject.prototype.depthOffset = 0; + var pn = (function (a) { + var t, e; + + function Game(t, e, i) { + var n; + void 0 === e && (e = null); + var o = new c.Container(), + s = { + stage: o, + camera: new p.a(), + renderer: t.renderer, + }; + return ( + ((n = a.call(this, s) || this).app = t), + (n.w = 512), + (n.h = 512), + (n.s = 1), + n.app.renderer.addSystem(Ne, "bg"), + we.init(t.resourceManager.resources), + H.refreshCache(), + we.refreshCache(), + (n.config = e || B), + (n.stage = o), + (n.bendX = 0), + (n.bendY = 0), + (n.aspectRatio = 1), + (n.blurred = !1), + (n.sfx = i), + (n.onReset = new et.a("reset")), + (n.onIdle = new et.a("idle")), + (n.onRun = new et.a("run")), + (n.onPause = new et.a("pause")), + (n.onResume = new et.a("resume")), + (n.onGameover = new et.a("gameover")), + (n.onRevive = new et.a("revive")), + (n.onEnterTunnel = new et.a("enterTunnel")), + (n.onExitTunnel = new et.a("exitTunnel")), + n.addSystem(W, {}), + n.addSystem(Ie, {}), + n.addSystem(xe, {}), + n.addSystem(ke, {}), + n.addSystem(Pe, {}), + n.addSystem(Re, {}), + n.addSystem(Fe, {}), + n.addSystem(Qi, {}), + n.addSystem(tn, {}), + n.addSystem(rn, {}), + n.addSystem(ln, {}), + (e.debug || e.shortcuts) && n.addSystem(Be, {}), + (n.view3d.ambientLight.intensity = 1), + (n.hero = new wi()), + n.addChild(n.hero), + (n.cop = new Fi()), + n.addChild(n.cop), + n + ); + } + (e = a), ((t = Game).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + n, + o, + s = Game.prototype; + return ( + (s.onFocus = function () { + (this.blurred = !1), this.sfx.unmute(); + }), + (s.onBlur = function () { + (this.blurred = !0), this.sfx.mute(), this.state === Game.RUNNING && this.pause(); + }), + (s.reset = function () { + this.hero && + ((this.time = 0), + (this.timeScale = this.config.timeScale), + (this.delta = 0), + (this.secs = 0), + (this.bendX = 0), + (this.bendY = 0), + this.hero.reset(), + this.cop && this.cop.reset(), + this.dog && this.dog.reset(), + this.hud.clearMessage(), + this.onReset.run(), + this.forceUpdate()); + }), + (s.updateAnimFrame = function (t) { + if (!(B.frameSkip && (this._o || (this._o = 0), (this._o += 1), this._o % B.frameSkip))) { + void 0 === this._lastTime && (this._lastTime = t); + var e = t, + i = e - this._lastTime; + this._lastTime = e; + var n = i / (1e3 / 60); + this.update(n); + } + }), + (s.updateTicker = function (t) { + if (B.frameSkip) { + if ((this._o || (this._o = 0), this._acc || (this._acc = 0), (this._acc += t), (this._o += 1), this._o % B.frameSkip)) return; + (t = this._acc), (this._acc = 0); + } + this.update(t); + }), + (s.update = function (t, e) { + if ((void 0 === e && (e = !0), !this.app.suspended && !this.app.crashed)) { + if ((t > B.deltaCap && (t = B.deltaCap), 1 !== !this.timeScale && (t *= this.timeScale), B.smoothDelta ? (this.delta -= 0.2 * (this.delta - t)) : (this.delta = t), B.frameByFrame && this.state !== Game.RUNNING)) { + if ((this._accDelta || (this._accDelta = 0), (this._accDelta += 1 / 60 / B.frameByFrame), this._accDelta < 1)) return; + (this.delta = 1), (this._accDelta = 0); + } + if (((this.fps = (1 / this.delta) * B.fps), (this.targetDelta = 1), (this.targetDeltaSecs = 1 / B.fps), (this.deltaSecs = this.delta / B.fps), this.state !== Game.PAUSED)) { + if (((this.time += this.delta), (this.secs += this.deltaSecs), this.state === Game.RUNNING ? ((this.stats.time += this.deltaSecs), (this.stats.delta = this.deltaSecs)) : (this.stats.delta = 0), this.config.bend)) { + (this.bendX = B.bendX * this.aspectRatio), (this.bendY = B.bendY); + var i = O.unformGroup(); + (i.uBend[0] = this.bendX), (i.uBend[1] = this.bendY), (i.uTime = this.secs); + } + this._addEntities(), + this._removeEntities(), + this.onPreupdate.run(), + this._removeEntities(), + this.onUpdateEntities.run(this.delta), + this._removeEntities(), + this.onPostupdate.run(), + this.updateAndRender && e && this.render(this.delta, 1); + } + } + }), + (s.forceUpdate = function (t, e) { + void 0 === t && (t = 1), void 0 === e && (e = !1), (this.delta = t), this.update(t, e); + }), + (s.idle = function () { + this.state === Game.RUNNING && nn.a.SDK.gameplayStop(), + (this.tutorial.enabled = this.app.user.tutorial || B.tutorial), + this.reset(), + (this.state = Game.IDLE), + this.hero.player.reset(0, 1.2), + this.cop && this.cop.reset(), + this.onIdle.run(), + B.loadAll && (this.level.queueNextChunk(), this.level.queueNextChunk(), this.level.queueNextChunk()), + this.forceUpdate(); + }), + (s.run = function () { + this.state !== Game.RUNNING && + (H.refreshCache(), + we.refreshCache(), + this.hud.build(), + this.hero.init(), + (this.state = Game.RUNNING), + this.reset(), + this.onRun.run(), + this.playTheme(), + this.cop && this.cop.run(), + this.hero.run(), + nn.a.SDK.gameplayStart(), + nn.a.sendCustomMessage("game", "roundStart", {}), + this.sfx.volume(this.app.settings.sound ? this.config.volume : 0)); + }), + (s.runWithIntro = function () { + var t = this; + B.loadAll || (H.refreshCache(), we.refreshCache(), this.level.queueNextChunk(), this.level.queueNextChunk(), this.level.queueNextChunk()), + nn.a.SDK.gameplayStart(), + nn.a.sendCustomMessage("game", "roundStart", {}), + this.playTheme(), + this.sfx.volume(this.app.settings.sound ? this.config.volume : 0); + var e = this._firstIntroPassed ? 50 : 300; + this.cop.scale.set(0.01), + setTimeout(function () { + t.hero.playIntro(), t.cop.playIntro(), t.intro.play(), t.forceUpdate(3); + }, e), + (this._firstIntroPassed = !0); + }), + (s.runFromIntro = function () { + this.hud.build(), this.cop && this.cop.run(), this.hero.run(), this.camera.run(), this.onRun.run(), (this.state = Game.RUNNING); + }), + (s.pause = function () { + this.state === Game.RUNNING && ((this.state = Game.PAUSED), this.onPause.run(), nn.a.SDK.gameplayStop()); + }), + (s.resume = function (t) { + void 0 === t && (t = 0), this.state === Game.PAUSED && (t ? this.hud.runCountdown(t, this.resume.bind(this)) : ((this.state = Game.RUNNING), this.onResume.run(), nn.a.SDK.gameplayStart())); + }), + (s.gameover = function () { + (this.state = Game.GAMEOVER), this.hero.player.stop(), this.cop && this.cop.catchHero(), this.hero && this.onGameover.run(), nn.a.SDK.gameplayStop(), nn.a.sendCustomMessage("game", "roundEnd", {}); + }), + (s.revive = function (t) { + var e = this; + void 0 === t && (t = 0), + this.state !== Game.RUNNING && + (this.hero.player.reset(this.hero.body.z, this.hero.body.x, this.hero.body.lane), + (this.hero.active = !1), + this.cop && this.cop.reset(), + t + ? this.hud.runCountdown(t, this.revive.bind(this)) + : ((this.state = Game.RUNNING), + (this.hero.active = !0), + this.hero.revive(), + this.onRevive.run(), + this.hero.player.run(0), + this.cop && this.cop.run(), + nn.a.SDK.gameplayStart(), + setTimeout(function () { + e.level.reshuffle(); + }, 0))); + }), + (s.resize = function (t, e, i) { + (this.aspectRatio = e / t), (this.w = t), (this.h = e), (this.s = i), this.hud && this.hud.resize(t, e, i), this.tutorial && this.tutorial.resize(t, e, i), this.controller && this.controller.resize(t, e); + }), + (s.playTheme = function () { + !this.playingTheme && + B.theme && + ((this.playingTheme = !0), + this.sfx.volume(this.config.volume), + this.sfx.play("theme", { + theme: !0, + }), + this.sfx.loadAll()); + }), + (s.enterTunnel = function () { + this.onEnterTunnel.run(); + }), + (s.exitTunnel = function () { + this.onExitTunnel.run(); + }), + (i = Game), + (n = [ + { + key: "profile", + get: function () { + return { + fps: this.fps, + deltaStep: this.delta, + deltaSecs: this.deltaSecs, + objects: this.allEntities.length, + entities: this.level.entities.length, + }; + }, + }, + ]) && Game_defineProperties(i.prototype, n), + o && Game_defineProperties(i, o), + Game + ); + })(s.a); + (pn.IDLE = 0), (pn.RUNNING = 1), (pn.PAUSED = 2), (pn.GAMEOVER = 3); + var mn = i(47), + fn = i(23); + mn.a.addSound = function (t, e, i) { + if (!this.disabled) { + for (var n = "", o = 1, s = null, a = 0; a < e.length; a++) "/" === e[a] && (s = a); + for (null !== s && (n = e.slice(s + 1, e.length)), e = n; this.exists(n); ) (n = e + "-" + o), o++; + i = i || {}; + var r = new Howl({ + src: t, + preload: this.preload, + autoplay: i.autoplay || !1, + loop: i.loop || !1, + volume: i.volume, + }); + i.autoplay && (this.preload || r.load(), r.play()), (r.realVolume = i.volume || 1), (this.sounds[n] = r); + } + }; + var gn = (function () { + function SoundFX(t) { + void 0 === t && (t = !1), + (this._volume = 1), + mn.a.disableVisibility(), + (mn.a._visibilityActive = !1), + (mn.a.mute = function () {}), + (mn.a.unmute = function () {}), + fn.Howler.volume(this._volume), + (this.map = {}), + (this.disabled = t); + } + var t = SoundFX.prototype; + return ( + (t.setup = function (t, e) { + for (var i in t) { + var n = i.split("/").pop(); + this.map[n] = { + key: i, + path: e + "/" + i, + }; + } + }), + (t.load = function (t) { + if (!this.disabled) { + var e = this.map[t]; + if (!e.added) { + e.added = !0; + var i = e.path, + n = [i + ".ogg?h=1gefxm5mjzi8pjlr", i + ".mp3?h=1gefxm5mjzi8pjlr"]; + mn.a.addSound(n, e.key, {}); + } + } + }), + (t.loadAll = function () { + if (!this.disabled) for (var t in this.map) this.load(t); + }), + (t.play = function (t, e) { + var i = void 0 === e ? {} : e, + n = i.volume, + o = void 0 === n ? null : n, + s = i.loop, + a = void 0 === s ? null : s, + r = i.theme, + h = void 0 === r ? null : r; + if (!this.disabled) { + this.load(t); + var d = mn.a.play(t); + return ( + d && + (null !== o && d.volume(o), + null !== a && d.loop(a), + null !== h && + d.on("end", function () { + return d.play(); + })), + d + ); + } + }), + (t.stop = function (t) { + this.disabled || mn.a.stop(t); + }), + (t.volume = function (t) { + if (!this.disabled) return void 0 !== t && ((this._volume = t), fn.Howler.volume(t)), this._volume; + }), + (t.mute = function () { + fn.Howler.mute(!0), fn.Howler.volume(0); + }), + (t.unmute = function () { + fn.Howler.mute(!1), fn.Howler.volume(this._volume); + }), + SoundFX + ); + })(); + + function Section_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + var yn = { + w: 512, + h: 512, + single: !0, + }, + vn = (function () { + function Section(t, e) { + void 0 === t && (t = ""), + void 0 === e && (e = {}), + (this.name = t), + (this.owner = null), + (this.subs = {}), + (this.view = new c.Container()), + (this.container = null), + (this._opened = !1), + (this._built = !1), + (this.ticker = new c.Ticker()), + this.ticker.stop(), + (this.on = { + build: new l.a(), + resize: new l.a(), + open: new l.a(), + close: new l.a(), + openSub: new l.a(), + }), + this.on.build.add(this.onBuild, this), + this.on.resize.add(this.onResize, this), + this.on.open.add(this.onOpen, this), + this.on.close.add(this.onClose, this), + this.setup(e); + } + var t, + e, + i, + n = Section.prototype; + return ( + (n.setup = function (t) { + void 0 === t && (t = {}), (this.config = Object.assign({}, yn, t)), (this.w = this.config.w), (this.h = this.config.h), (this.s = 1); + }), + (n.addSub = function (t) { + this.subs[t.name] || (((this.subs[t.name] = t).w = this.w), (t.h = this.h), (t.owner = this), (t.container = this.view)); + }), + (n.build = function () { + this._built || ((this._built = !0), this.on.build.dispatch()); + }), + (n.open = function (t) { + if ( + (this._opened || + (this.config.single && this.closeOthers(), (this._opened = !0), this.owner && this.owner.open(), this._built || this.build(), this.resize(), this.container && this.container.addChild(this.view), this.on.open.dispatch()), + t && t.length) + ) { + var e = Array.isArray(t) ? t : t.split("/"), + i = e.shift(), + n = this.subs[i]; + if (!n) throw new Error("Sub section not found: " + i + " path to open: " + t); + this.on.openSub.dispatch(n.name), n.open(e); + } + }), + (n.close = function () { + for (var t in this.subs) this.subs[t].close(); + this._opened && this.on.close.dispatch(), this.view.parent && this.view.parent.removeChild(this.view), (this._opened = !1), this.ticker.stop(); + }), + (n.closeOthers = function () { + if (this.owner) + for (var t in this.owner.subs) { + var e = this.owner.subs[t]; + e !== this && e.close(); + } + }), + (n.closeSubs = function () { + for (var t in this.subs) this.subs[t].close(); + }), + (n.resize = function (t, e, i) { + for (var n in ((this.sw = t || this.sw), + (this.sh = e || this.sh), + (this.sr = i || this.sr), + (this.s = this.sh / (667 * this.sr)), + (this.w = this.sw / this.s), + (this.h = this.sh / this.s), + this.owner || this.view.scale.set(this.s), + this.on.resize.dispatch(), + this.subs)) { + var o = this.subs[n]; + (o.w = this.w), (o.h = this.h), (o.s = this.s), (o.sw = this.sw), (o.sh = this.sh), (o.sr = this.sr), o._opened && o.resize(this.sw, this.sh, this.sr); + } + }), + (n.onBuild = function () {}), + (n.onResize = function () {}), + (n.onOpen = function () {}), + (n.onClose = function () {}), + (n.getMap = function (t) { + for (var e in (void 0 === t && (t = {}), this.owner && (t[this.path] = this), this.subs)) this.subs[e].getMap(t); + return t; + }), + (t = Section), + (e = [ + { + key: "path", + get: function () { + return this.owner ? this.owner.path + "/" + this.name : this.name; + }, + }, + { + key: "root", + get: function () { + return this.owner ? this.owner.root : this; + }, + }, + ]) && Section_defineProperties(t.prototype, e), + i && Section_defineProperties(t, i), + Section + ); + })(); + var _n = (function (i) { + var t, e; + + function TitleScreen(t) { + var e; + return ((e = i.call(this) || this).app = t), e; + } + return (e = i), ((t = TitleScreen).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e), TitleScreen; + })(c.Container); + + function Button_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function Button_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + var bn = { + default: { + w: 120, + h: 120, + round: 5, + color: 3246014, + border: 16777215, + }, + small: { + w: 80, + h: 80, + round: 5, + color: 3246014, + border: 16777215, + }, + }, + wn = (function (s) { + var t, e; + + function Button(t) { + var e; + void 0 === t && (t = {}), ((e = s.call(this) || this).name = t.name || ""); + var i = t, + n = i.base, + o = i.icon; + return n && e.setBase(n), o && e.setIcon(o), e.on("pointertap", e.onPointerTap.bind(Button_assertThisInitialized(e)), Button_assertThisInitialized(e)), e; + } + (e = s), ((t = Button).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i, + n, + o, + a = Button.prototype; + return ( + (a.setBase = function (t) { + if ((this.base && (Ce.clear(this.base), this.removeChild(this.base)), t)) { + if ("string" != typeof t || bn[t]) + if (t.children) this.base = t; + else { + var e = Object.assign({}, bn["default"], bn[t] || t); + this.base = Ce.roundRectBorder(e); + } + else (this.base = c.Sprite.from(t)), this.base.anchor.set(0.5); + this.addChildAt(this.base, 0); + } + }), + (a.setIcon = function (t) { + if ((this.icon && this.removeChild(this.icon), t)) { + var e = t.x || 0, + i = t.y || 0, + n = "string" == typeof t ? t : t.image; + (this.icon = c.Sprite.from(n)), this.icon.anchor.set(0.5), (this.icon.x = e), (this.icon.y = i), this.addChild(this.icon); + } + }), + (a.setLabel = function (t, e) { + this.label && this.removeChild(this.label), (this.label = new sn(t, e)), this.addChild(this.label); + }), + (a.onPointerTap = function (t) { + t.data.originalEvent.preventDefault(), this._onTap && this._onTap(); + }), + (a.onKeyDown = function (t) { + this.interactive && this.visible && this._key && !t.repeat && this._onTap && t[this._keyField] === this._key && this._onTap(); + }), + (a._update = function () {}), + (i = Button), + (n = [ + { + key: "key", + get: function () { + return this._key; + }, + set: function (t) { + (this._key = t), + (this._keyField = "string" == typeof t ? "code" : "which"), + this._onKeyDownBind || (this._onKeyDownBind = this.onKeyDown.bind(this)), + document.removeEventListener("keyup", this._onKeyDownBind), + this._key && document.addEventListener("keyup", this._onKeyDownBind); + }, + }, + { + key: "onTap", + set: function (t) { + (this._onTap = t), (this.enabled = !!t); + }, + get: function () { + return this._onTap; + }, + }, + { + key: "enabled", + set: function (t) { + this.interactive = t; + var e = (this.buttonMode = t) ? 1 : 0.5; + this.base && (this.base.alpha = e); + }, + get: function () { + return this.interactive; + }, + }, + { + key: "selected", + set: function (t) { + var e = (this._selected = t) ? 5592405 : 16777215; + this.base && (this.base.fill.tint = e); + }, + get: function () { + return !!this._selected; + }, + }, + ]) && Button_defineProperties(i.prototype, n), + o && Button_defineProperties(i, o), + Button + ); + })(c.Container); + var kn = (function (i) { + var t, e; + + function GameScreen(t) { + var e; + return ((e = i.call(this) || this).app = t), e; + } + (e = i), ((t = GameScreen).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = GameScreen.prototype; + return ( + (n.onShow = function () { + this._firstRun || ((this._firstRun = !0), nn.a.sendCustomMessage("game", "play", {})), + this.app.game.onRun.add(this), + this.app.game.onPause.add(this), + this.app.game.onResume.add(this), + this.app.game.onGameover.add(this), + this.app.game.onRevive.add(this), + this.app.game.runWithIntro(), + this.btnPause || + ((this.btnPause = new wn({ + icon: "icon_pause.png", + base: "small", + })), + (this.btnPause.onTap = this.onBtnPausePress.bind(this)), + this.btnPause.scale.set(0.5), + (this.btnPause.x = 35), + (this.btnPause.y = 35)), + this.addChild(this.btnPause), + (this.btnPause.visible = !0); + }), + (n.onHide = function () { + this.app.game.onPause.remove(this), this.app.game.onResume.remove(this), this.app.game.onGameover.remove(this), this.app.game.onRevive.remove(this); + }), + (n.run = function () { + this.updateView(); + }), + (n.gameover = function () { + var t = this; + this.updateView(), (this.btnPause.visible = !1); + var e = B.mobile ? "Mobile" : "", + i = this.app.config["rewardedBreaks" + e], + n = this.app.game.stats.revivals && !this.app.config.adBlocking; + setTimeout(function () { + i && n ? ((t.btnPause.visible = !1), (t.app.game.stats.revivals -= 1), t.app.sections.open("saveme")) : t.finishRun(); + }, 1500); + }), + (n.finishRun = function () { + var e = this; + if ((this.updateView(), (this.btnPause.visible = !1), this.app.user.load(), (this.app.user.tutorial = !1), !this.app.user.nameSet && this.app.config.leaderboards)) { + var t = this.app.strings.get("nickname_prompt"); + this.app.prompt.open(t, this.app.user.name, function (t) { + t && (e.app.user.name = t), (e.app.user.nameSet = !0), e.finishRunComplete(); + }); + } else this.finishRunComplete(); + }), + (n.finishRunComplete = function () { + var t = this, + e = this.app.game.stats.score; + (this.app.user.coins += this.app.game.stats.coins), + e > this.app.user.score + ? ((this.app.user.score = e), + nn.a.SDK.happyTime(1), + nn.a.hangout.saveHighscore(this.app.user.name, e).then(function () { + t.app.sections.open("gameover"); + })) + : this.app.sections.open("gameover"), + this.app.user.save(); + }), + (n.revive = function () { + this.updateView(); + }), + (n.pause = function () { + this.updateView(); + }), + (n.resume = function () { + this.updateView(); + }), + (n.resize = function (t, e) {}), + (n.onBtnPausePress = function () { + this.app.game.state === pn.PAUSED ? (this.app.game.resume(0), this.updateView(!1)) : (this.app.game.pause(), this.updateView()); + }), + (n.onBtnPlayPress = function () { + this.app.game.resume(3), this.updateView(!1); + }), + (n.onBtnRestartPress = function () { + this.app.game.run(), this.updateView(); + }), + (n.updateView = function (t) { + void 0 === t && (t = this.app.game.state === pn.PAUSED), t ? this.app.sections.open("pause") : this.app.sections.close(), this.btnPause && (this.btnPause.visible = this.app.game.state !== pn.PAUSED); + }), + GameScreen + ); + })(c.Container); + var xn = (function (n) { + var t, e; + + function LoadingScreen(t, e) { + var i; + return ( + void 0 === e && (e = 998272), + ((i = n.call(this) || this).app = t), + (i.w = 512), + (i.h = 512), + (i.color = "string" == typeof e ? c.utils.string2hex(e) : e), + (i.view = new c.Container()), + i.addChild(i.view), + (i.firstLoadPassed = !1), + i + ); + } + (e = n), ((t = LoadingScreen).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = LoadingScreen.prototype; + return ( + (i.build = function () { + this.bg || + ((this.bg = new c.Graphics()), + this.bg.beginFill(this.color, 1), + this.bg.drawRect(0, 0, 16, 16), + this.bg.endFill(), + this.addChildAt(this.bg, 0), + (this.splash = c.Sprite.from("preload/splash")), + this.splash.anchor.set(0.5), + this.view.addChild(this.splash), + this.buildBar(), + this.resize(), + this.updateView()); + }), + (i.buildBar = function () { + if (!this.bar) { + (this.bar = new c.Container()), this.view.addChild(this.bar), (this.bar.y = 160); + var t = 300, + e = 40, + i = new c.Graphics(); + i.beginFill(0, 0.75), i.drawRect(0, 0, t, e), i.position.set(-t / 2, -e / 2), this.bar.addChild(i), (this.bar.bg = i), (t -= 8), (e -= 8); + var n = new c.Graphics(); + n.beginFill(16142336), n.drawRect(0, 0, t, e), n.position.set(-t / 2, -e / 2), (n.scale.x = 0.01), this.bar.addChild(n), (this.bar.fill = n); + var o = "loading_" + this.app.config.lang, + s = (this.app.config[o] || "loading").toUpperCase() + "...", + a = new sn(s, { + fill: 16777215, + fontSize: 20, + dropShadow: !1, + }); + this.bar.addChild(a), (this.bar.label = a); + } + }), + (i.updateProgress = function (t) { + this.bar && (this.bar.fill.scale.x = t / 100); + }), + (i.resize = function (t, e) { + (this.w = t || this.w), (this.h = e || this.h), (this.view.position.x = this.w / 2), (this.view.position.y = this.h / 2), this.bg && ((this.bg.width = this.w), (this.bg.height = this.h)), this.updateView(); + }), + (i.onShow = function () { + this.updateView(!this.app.bgLoading), this.reset(), (this._opened = !0); + }), + (i.onHidden = function () {}), + (i.updateView = function (t) { + void 0 !== t && (this.view.visible = t), this.bg && ((this.bg.visible = this.view.visible), (this.bg.alpha = this.firstLoadPassed ? 0.5 : 1)), this.splash && (this.splash.visible = !this.firstLoadPassed); + }), + (i.holdForFrame = function () { + (this.view.visible = !0), this.bg && (this.bg.visible = !0), this.splash && (this.splash.visible = !0); + }), + (i.reset = function () { + this.updateProgress(0); + }), + LoadingScreen + ); + })(c.Container), + Cn = i(68), + Sn = (function () { + function Event(t) { + this.app = t; + } + var t = Event.prototype; + return ( + (t.init = function () { + var t = this.app.addSignal("onBlur"), + e = this.app.addSignal("onFocus"); + Cn.a.onShow.add(function () { + return e.dispatch(); + }), + Cn.a.onHide.add(function () { + return t.dispatch(); + }), + window.addEventListener("blur", function () { + return t.dispatch(); + }), + window.addEventListener("focus", function () { + return e.dispatch(); + }), + window.addEventListener("pagehide", function () { + return t.dispatch(); + }), + window.addEventListener("pageshow", function () { + return e.dispatch(); + }), + window.addEventListener("gesturestart", this._onEventPreventDefault.bind(this)), + window.addEventListener("gesturechange", this._onEventPreventDefault.bind(this)), + window.addEventListener("gestureend", this._onEventPreventDefault.bind(this)), + window.addEventListener("touchmove", this._onEventPreventDefault.bind(this)); + }), + (t._onEventPreventDefault = function (t) { + t.preventDefault(); + }), + Event + ); + })(), + zn = (function () { + function Message(t) { + this.app = t; + } + var t = Message.prototype; + return ( + (t.init = function () { + var e = this.app.addSignal("onMessage"); + window.addEventListener( + "message", + function (t) { + return e.dispatch(t); + }, + !1 + ); + }), + (t.postToParent = function (t, e) { + var i = window.parent; + if (i) + try { + i.postMessage( + { + type: t, + content: { + event: e, + }, + }, + "*" + ); + } catch (t) {} + }), + (t.sendCustomMessage = function (t, e, i) { + if (window.parent) + try { + window.parent.postMessage( + { + type: "pokiMessageEvent", + content: { + event: "pokiTrackingCustom", + data: { + eventNoun: t, + eventVerb: e, + eventData: i, + }, + }, + }, + "*" + ); + } catch (t) {} + }), + Message + ); + })(), + Tn = (function () { + function Size(t) { + (this.app = t), (this.w = 512), (this.h = 512), (this.sw = 512), (this.sh = 512), (this.scale = 1); + } + var t = Size.prototype; + return ( + (t.init = function () { + var t = this; + (this._onResize = this.app.addSignal("onResize")), + window.addEventListener("resize", function () { + return t.onChange(); + }), + window.addEventListener("orientationchange", function () { + return t.onChange(); + }), + this.update(); + }), + (t.onChange = function () { + var t = this; + this.update(); + for (var e = 0; e < 5; e++) + setTimeout(function () { + return t.update(); + }, 200 * e); + }), + (t.update = function () { + window.scrollTo(0, 0), + (this.w = window.innerWidth), + (this.h = window.innerHeight), + (this.scale = window.devicePixelRatio || 1), + r.a.instance.isMobile && !window.devicePixelRatio && (this.scale = window.screen.deviceXDPI / window.screen.logicalXDPI), + this.scale > B.maxViewportScale && (this.scale = B.maxViewportScale), + (this.sw = this.w * this.scale), + (this.sh = this.h * this.scale), + this._onResize.dispatch(this); + }), + (t.requestFullScreen = function () { + r.a.instance.android && (document.body.mozRequestFullScreen ? document.body.mozRequestFullScreen() : document.body.webkitRequestFullScreen && document.body.webkitRequestFullScreen(), this.update()); + }), + Size + ); + })(), + Pn = (function () { + function Strings(t) { + (this.app = t), (this.lang = "en"), (this.data = {}); + } + var t = Strings.prototype; + return ( + (t.onAppReady = function () { + this.load(this.app.config.lang); + }), + (t.get = function (t) { + return this.data[t]; + }), + (t.upper = function (t) { + return this.data[t].toUpperCase(); + }), + (t.load = function (t) { + t && (this.lang = t), (this.data = this.loadStrings(this.lang)); + }), + (t.loadStrings = function (t) { + var e = this.app.resourceManager.resources, + i = e["data/strings_en"].data, + n = e["data/strings_" + t].data; + return Object.assign({}, i, n); + }), + Strings + ); + })(), + Mn = (function () { + function Debug(t) { + this.app = t; + } + var t = Debug.prototype; + return ( + (t.init = function () { + (this.div = document.createElement("div")), + (this.div.style.backgroundColor = "rgba(255,255,255,0.5)"), + (this.div.style.width = "100%"), + (this.div.style.height = "100%"), + (this.div.style.top = "50px"), + (this.div.style.left = "0px"), + (this.div.style.position = "absolute"), + (this.div.style.zIndex = 999), + window.addEventListener("keydown", this.onKeyDown.bind(this)); + }), + (t.onAppReady = function () {}), + (t.onResize = function (t, e) {}), + (t.onKeyDown = function (t) { + "Escape" === t.key && this.toggle(); + }), + (t.show = function () { + this.shown || ((this.shown = !0), document.body.appendChild(this.div), this.mountSections()); + }), + (t.hide = function () { + this.shown && ((this.shown = !1), document.body.removeChild(this.div)); + }), + (t.toggle = function () { + this.shown ? this.hide() : this.show(); + }), + (t.mountSections = function () { + var o = this; + if (!this.divSections) { + (this.divSections = document.createElement("div")), this.div.appendChild(this.divSections); + var t = this.app.sections.getMap(), + s = Object.keys(t).sort(), + e = function (t) { + var e = s[t], + i = document.createElement("button"), + n = e.replace("root/", ""); + (i.innerText = n), + o.divSections.appendChild(i), + o.divSections.appendChild(document.createElement("br")), + i.addEventListener("click", function () { + return o.app.sections.open(n); + }); + }; + for (var i in s) e(i); + } + }), + Debug + ); + })(); + var En = (function (i) { + var t, e; + + function SectionTitle(t) { + var e; + return ((e = i.call(this) || this).app = t), (e.name = "title"), e; + } + (e = i), ((t = SectionTitle).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = SectionTitle.prototype; + return ( + (n.onBuild = function () { + var t = this; + i.prototype.onBuild.call(this), + (this.labelMsg = new sn("")), + (this.labelMsg.rotation = 0.15), + this.view.addChild(this.labelMsg), + (this.tapToPlayArea = new c.Graphics()), + this.tapToPlayArea.beginFill(16711680), + this.tapToPlayArea.drawRect(0, 0, 16, 16), + this.tapToPlayArea.endFill(), + (this.tapToPlayArea.alpha = 0), + (this.tapToPlayArea.interactive = !0), + this.tapToPlayArea.addListener("pointerdown", this.playGame.bind(this)), + this.view.addChild(this.tapToPlayArea), + (this.bottomMenu = new c.Container()), + this.view.addChild(this.bottomMenu), + (this.btnTopRun = new wn()), + this.btnTopRun.setIcon({ + image: "front_icon_top_run.png", + y: -10, + }), + this.btnTopRun.setBase({ + color: 5254027, + w: 230, + }), + this.bottomMenu.addChild(this.btnTopRun), + (this.btnTopRun.x = this.btnTopRun.width / 2), + (this.btnTopRun.onTap = function () { + return t.app.sections.open("toprun"); + }), + (this.btnSettings = new wn()), + this.btnSettings.setIcon("icon_settings.png"), + this.btnSettings.setBase( + Ce.rectComp( + { + w: 96, + h: 98, + image: "box_border_grey_small.png", + x: 1, + y: 1, + }, + { + w: 80, + h: 80, + color: 3574206, + round: 6, + } + ) + ), + (this.btnSettings.onTap = function () { + return t.app.sections.open("settings"); + }), + this.view.addChild(this.btnSettings), + (this.keyDownBind = this.onKeyDown.bind(this)); + }), + (n.onResize = function () { + i.prototype.onResize.call(this); + var t = this.w, + e = this.h; + (this.labelMsg.x = 0.5 * t - 100), + (this.labelMsg.y = e - 300), + (this.tapToPlayArea.width = t), + (this.tapToPlayArea.height = e), + (this.bottomMenu.x = t / 2 - this.bottomMenu.width / 2), + (this.bottomMenu.y = e - 90), + (this.btnSettings.x = 60), + (this.btnSettings.y = 60); + }), + (n.onOpen = function () { + //alert("n.onOpen"); + dataLayer.push({ + event: "ga_event", + ga_category: "Gamepage", + ga_action: "Main Menu", + ga_label: window.productTitle, + ga_noninteraction: true, + }); + i.prototype.onOpen.call(this), + (this.count = 0), + (this.tapToPlayArea.interactive = !0), + window.addEventListener("keydown", this.keyDownBind), + this.app.screenManager.gotoScreenByID("title"), + this.ticker.add(this.update, this, 1), + this.ticker.start(); + var t = B.mobile ? "tap_to_play" : "tap_to_play_desktop", + e = this.app.strings.get(t); + this.labelMsg.text = e; + }), + (n.onClose = function () { + i.prototype.onClose.call(this), (this.tapToPlayArea.interactive = !1), window.removeEventListener("keydown", this.keyDownBind), this.ticker.remove(this.update, this); + }), + (n.onKeyDown = function (t) { + t.repeat || 32 !== t.which || (this.app.game.state === pn.IDLE && this.playGame()); + }), + (n.playGame = function () { + console.info(window.productTitle); + dataLayer.push({ + event: "ga_event", + ga_category: "Gamepage", + ga_action: "Start", + ga_label: window.productTitle, + ga_noninteraction: false, + }); + + this.app.game.state === pn.IDLE && (nn.a.sendCustomMessage("mainMenu", "pressPlay", {}), (this.tapToPlayArea.interactive = !1), this.app.nav.playGame()); + }), + (n.update = function (t) { + (this.labelMsg.rotation = 0.15 + 0.02 * Math.sin(this.count)), (this.count += 0.1 * t); + }), + SectionTitle + ); + })(vn); + var On = (function (e) { + var t, i; + + function ScreenGlow() { + var t; + return ( + ((t = e.call(this) || this).w = 512), + (t.h = 512), + (t.bottom = c.Sprite.from("base_blurry.png")), + t.addChild(t.bottom), + (t.top = c.Sprite.from("base_blurry.png")), + t.addChild(t.top), + (t.top.scale.y = -1), + (t.top.anchor.y = 1), + (t.bg = new c.Graphics()), + t.bg.beginFill(0, 0.5), + t.bg.drawRect(0, 0, 16, 16), + t.bg.endFill(), + t.addChild(t.bg), + t + ); + } + return ( + (i = e), + ((t = ScreenGlow).prototype = Object.create(i.prototype)), + ((t.prototype.constructor = t).__proto__ = i), + (ScreenGlow.prototype.resize = function (t, e) { + (this.w = t || this.w), + (this.h = e || this.h), + (this.bg.width = this.w), + (this.bg.height = this.h), + (this.bottom.width = this.w), + (this.bottom.height = 230), + (this.bottom.y = this.h - this.bottom.height), + (this.top.width = this.w), + (this.top.height = this.bottom.height); + }), + ScreenGlow + ); + })(c.Container); + var Rn = (function (e) { + var t, i; + + function Clock() { + var t; + return ( + ((t = e.call(this) || this).base = c.Sprite.from("clock_base.png")), + t.base.anchor.set(0.5), + (t.base.x = -1), + (t.base.y = -1), + t.addChild(t.base), + (t.fill = c.Sprite.from("clock_fill.png")), + t.fill.anchor.set(0.5), + t.addChild(t.fill), + (t.onComplete = null), + (t.ticker = new c.Ticker()), + t.ticker.stop(), + t + ); + } + (i = e), ((t = Clock).prototype = Object.create(i.prototype)), ((t.prototype.constructor = t).__proto__ = i); + var n = Clock.prototype; + return ( + (n.run = function (t, e) { + this.secs && this.stop(), (this.time = t), (this.secs = t), (this.onComplete = e), this.update(0), this.ticker.add(this.update, this, 1), this.ticker.start(); + }), + (n.stop = function () { + (this.secs = 0), this.ticker.remove(this.update, this), this.ticker.stop(); + }), + (n.complete = function () { + this.stop(), this.onComplete && this.onComplete(); + }), + (n.update = function (t) { + var e = t / 60; + (this.secs -= e), this.updatePizza(), this.secs < 0 && this.complete(); + }), + (n.updatePizza = function () { + this.pizza || ((this.pizza = new c.Graphics()), this.addChild(this.pizza)); + var t = this.secs / this.time, + e = V.PI_DOUBLE * t; + this.pizza.clear(), this.pizza.beginFill(15658734), this.pizza.moveTo(0, 0), this.pizza.arc(0, 0, 43, 0, e, !0), (this.pizza.rotation = -V.PI_HALF), (this.pizza.scale.y = -1); + }), + Clock + ); + })(c.Container); + var In = (function (i) { + var t, e; + + function SectionSaveMe(t) { + var e; + return ((e = i.call(this) || this).name = "saveme"), (e.app = t), e; + } + (e = i), ((t = SectionSaveMe).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = SectionSaveMe.prototype; + return ( + (n.onBuild = function () { + var t = this; + (this.bg = new On(this.app.color)), + this.view.addChild(this.bg), + (this.bg.interactive = !0), + this.bg.on("pointertap", function () { + return t.exit(); + }), + (this.content = new c.Container()), + this.view.addChild(this.content); + (this.base = Ce.rectComp( + { + w: 500, + h: 250, + color: 15658734, + round: 16, + }, + { + w: 522, + h: 274, + image: "box_border_grey.png", + x: 5, + y: 6, + } + )), + this.content.addChild(this.base), + (this.base.interactive = !0), + this.base.on("pointertap", function () { + return t.exit(); + }); + (this.btnRevive = new wn({ + key: "Space", + })), + this.btnRevive.setBase( + Ce.rectComp( + { + w: 316, + h: 120, + image: "box_border_grey.png", + x: 5, + y: 6, + }, + { + w: 300, + h: 100, + image: "box_fill_green.png", + x: 2, + y: 2, + r: 20, + b: 20, + } + ) + ), + this.btnRevive.setIcon({ + image: "icon_tv.png", + x: 60, + y: -10, + }), + this.btnRevive.setLabel(this.app.strings.upper("free"), { + fontSize: 40, + fontFamily: "Lilita One", + dropShadowDistance: 1, + x: -50, + }), + (this.btnRevive.onTap = function () { + return t.revive(); + }), + this.content.addChild(this.btnRevive); + this.btnRevive.y = 40; + var e = this.app.strings.get("save_me"); + (this.title = new sn(e, { + align: "center", + fill: 19072, + fontSize: 40, + fontFamily: "Titan One", + dropShadow: !1, + dropShadowDistance: 1, + anchor: 0.5, + })), + this.content.addChild(this.title), + (this.title.y = -80), + (this.clock = new Rn()), + this.content.addChild(this.clock), + (this.clock.x = -230), + (this.clock.y = -105); + }), + (n.onOpen = function () { + var t = this; + i.prototype.onOpen.call(this), + this.clock.run(6, function () { + return t.exit(); + }), + (this.btnRevive.key = "Space"), + (this._allowExit = !1), + setTimeout(function () { + t._allowExit = !0; + }, 500); + }), + (n.onClose = function () { + i.prototype.onClose.call(this), this.clock.stop(), (this.btnRevive.key = null); + }), + (n.exit = function () { + this._allowExit && this.app.gameScreen.finishRun(); + }), + (n.onResize = function () { + i.prototype.onResize.call(this), this.bg.resize(this.w, this.h), (this.content.x = this.w / 2), (this.content.y = this.h / 2); + }), + (n.revive = function () { + var e = this; + this.app.sections.close(), + this.app.suspend(), + B.debug + ? (this.app.resume(), this.app.game.revive(1)) + : nn.a.SDK.rewardedBreak().then(function (t) { + e.app.resume(), t ? e.app.game.revive(5) : e.app.gameScreen.finishRun(); + }); + }), + SectionSaveMe + ); + })(vn); + var Ln = (function (e) { + var t, i; + + function Scoreboard() { + var t; + return ( + ((t = e.call(this) || this).base = c.Sprite.from("scoreboard.png")), + t.base.anchor.set(0.5), + t.addChild(t.base), + (t.title = new sn("", { + align: "center", + fill: 19072, + fontSize: 60, + fontFamily: "Titan One", + dropShadow: !1, + dropShadowDistance: 1, + })), + t.addChild(t.title), + (t.title.x = -15), + (t.title.y = -110), + (t.title.rotation = -0.07), + (t.score = new sn("", { + align: "center", + fill: 16777215, + fontSize: 55, + fontFamily: "Lilita One", + dropShadow: !0, + dropShadowDistance: 1, + })), + t.addChild(t.score), + (t.score.y = -33), + (t.coins = new sn("", { + align: "center", + fill: 16777215, + fontSize: 45, + fontFamily: "Lilita One", + dropShadow: !0, + dropShadowDistance: 1, + })), + t.addChild(t.coins), + (t.coins.y = 35), + (t.icon = c.Sprite.from("icon_coin.png")), + t.icon.anchor.set(0.5), + t.icon.scale.set(0.75), + t.addChild(t.icon), + (t.icon.x = t.coins.x - 100), + (t.icon.y = t.coins.y), + (t.starL = c.Sprite.from("icon_star.png")), + t.starL.anchor.set(0.5), + (t.starL.x = -120), + t.title.addChild(t.starL), + (t.starR = c.Sprite.from("icon_star.png")), + t.starR.anchor.set(0.5), + (t.starR.x = -t.starL.x), + t.title.addChild(t.starR), + t + ); + } + return ( + (i = e), + ((t = Scoreboard).prototype = Object.create(i.prototype)), + ((t.prototype.constructor = t).__proto__ = i), + (Scoreboard.prototype.update = function (t) { + void 0 === t && (t = {}), + (t = Object.assign( + { + title: "Score", + score: 0, + coins: 0, + }, + t + )), + (this.title.text = t.title), + (this.score.text = t.score), + (this.coins.text = t.coins); + }), + Scoreboard + ); + })(c.Container); + var jn = (function (n) { + var t, e; + + function Spinner(t) { + var e; + e = n.call(this) || this; + var i = Object.assign( + {}, + { + radius: 32, + color: 0, + }, + t + ); + return ( + (e.image = new c.Graphics()), + e.image.lineStyle(i.radius, i.color), + e.image.arc(0, 0, 2 * i.radius, 0, 0.5 * Math.PI, !0), + e.addChild(e.image), + e.image.scale.set(0.5), + (e.image.alpha = 0.25), + (e.visible = !1), + (e.ticker = new c.Ticker()), + e.ticker.stop(), + e.ticker.add( + e.update, + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(e), + 1 + ), + e + ); + } + (e = n), ((t = Spinner).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Spinner.prototype; + return ( + (i.show = function () { + (this.visible = !0), this.ticker.start(); + }), + (i.hide = function () { + (this.visible = !1), this.ticker.stop(); + }), + (i.update = function (t) { + void 0 === t && (t = 0), (this.image.rotation += 0.2 * t); + }), + Spinner + ); + })(c.Container); + var Fn = (function (n) { + var t, e; + + function RemoteImage(t) { + var e; + e = n.call(this) || this; + var i = Object.assign( + {}, + { + path: "", + w: 0, + h: 0, + bg: null, + } + ); + return ( + "string" == typeof t ? (i.path = t) : Object.assign(i, t), + null !== i.bg && ((e.bg = new c.Graphics()), e.bg.beginFill(i.bg), e.bg.drawRect(-i.w / 2, -i.h / 2, i.w, i.h), e.bg.endFill(), e.addChildAt(e.bg, 0)), + (e.image = new c.Sprite()), + i.w && (e.image.width = i.w), + i.h && (e.image.height = i.h), + e.addChild(e.image), + (e.spinner = new jn()), + e.addChild(e.spinner), + e.spinner.show(), + i.path && e.load(i.path), + e + ); + } + (e = n), ((t = RemoteImage).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = RemoteImage.prototype; + return ( + (i.load = function (t) { + if (((this._path = t), (this.image.visible = !1), this.spinner && this.spinner.show(), c.utils.TextureCache[t])) this.onLoadComplete(); + else { + var e = RemoteImage.cache[t]; + e || ((e = new c.Loader()).add(t, t), (RemoteImage.cache[t] = e)), e.onLoad.once(this.onLoadComplete, this), e.load(); + } + }), + (i.onLoadComplete = function () { + (this.image.visible = !0), (this.image.texture = c.Texture.from(this._path)), this.image.anchor.set(0.5), this.spinner && this.spinner.hide(); + }), + RemoteImage + ); + })(c.Container); + Fn.cache = {}; + var An = (function (i) { + var t, e; + + function AvatarIcon(t) { + var e; + return ( + void 0 === t && (t = 64), + ((e = + i.call(this, { + w: t, + h: t, + bg: 16777215, + path: "", + }) || this).w = t), + (e.h = t), + e.spinner.scale.set(0.4), + e + ); + } + return ( + (e = i), + ((t = AvatarIcon).prototype = Object.create(e.prototype)), + ((t.prototype.constructor = t).__proto__ = e), + (AvatarIcon.prototype.update = function (t) { + void 0 === t && (t = {}), + (t = Object.assign( + { + image: "icon_friend", + color: 16777215, + border: 4, + }, + t + )), + (this.bg.width = this.w), + (this.bg.height = this.h), + (this.image.width = this.w - 2 * t.border), + (this.image.height = this.h - 2 * t.border), + this.spinner.scale.set(0.4), + this.load("assets/placeholder/" + t.image + ".png"); + }), + AvatarIcon + ); + })(Fn); + + function Ranking_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var Dn = (function (s) { + function Ranking(t, e) { + var i; + void 0 === t && (t = 70), void 0 === e && (e = 10), ((i = s.call(this) || this).entries = []), (i.length = 11), (i.name = ""); + for (var n = (i.score = 0); n < i.length; n++) { + var o = new Gn(t, e); + i.entries.push(o), i.addChild(o); + } + return i.placeholder(), i; + } + Ranking_inheritsLoose(Ranking, s); + var t = Ranking.prototype; + return ( + (t.placeholder = function () { + for (var t = [], e = 0; e < this.length; e++) + t.push({ + index: e + 1, + loading: !0, + }); + this.updateEntries(t); + }), + (t.update = function (t, e) { + var i = this; + (this.name = t), + (this.score = e), + nn.a.hangout.getLeaderboard(this.length, t, e).then(function (t) { + return i.updateScores(t); + }); + }), + (t.updateScores = function (t) { + t = t.sort(function (t, e) { + return e.score - t.score; + }); + for (var e = !1, i = 0; i < this.length; i++) { + var n = t[i]; + n && (n.image || (n.image = "icon_friend"), (n.highlight = n.name === this.name && n.score === this.score), "ME" === n.name && (n.highlight = !0), n.highlight && (e = !0), (n.index = i + 1)); + } + e || + (t[this.length - 1] = { + name: this.name, + score: this.score, + image: "icon_friend", + highlight: !0, + index: "", + }), + this.updateEntries(t); + }), + (t.updateEntries = function (t) { + for (var e = this.title && this.title.text ? 80 : 0, i = 0; i < this.length; i++) { + var n = this.entries[i], + o = t[i]; + (n.visible = !!o), o && (n.update(o), (n.y = i * n.h + e)); + } + }), + (t.setTitle = function (t) { + this.title || + (this.title = new sn("", { + align: "center", + fill: 211825, + fontSize: 70, + fontFamily: "Titan One", + dropShadowDistance: 1, + })), + (this.title.visible = !!t), + (this.title.text = t), + this.addChild(this.title); + }), + Ranking + ); + })(c.Container), + Gn = (function (o) { + function RankingEntry(t, e) { + var i; + void 0 === t && (t = 75), void 0 === e && (e = 10), ((i = o.call(this) || this).w = 640), (i.h = t), (i.clampChars = e); + var n = { + align: "center", + fill: 666451, + fontSize: t * Math.min(t / 100, 0.5), + fontFamily: "Lilita One", + dropShadow: !1, + dropShadowDistance: 1, + maxWidth: 300, + }; + return ( + (i.index = new sn("", n)), + i.addChild(i.index), + (i.index._text.anchor.x = 1), + (i.name = new sn("", n)), + i.addChild(i.name), + (i.name._text.anchor.x = 0), + (i.score = new sn("", n)), + i.addChild(i.score), + (i.score._text.anchor.x = 1), + (i.avatar = new An(0.85 * t)), + i.addChild(i.avatar), + i + ); + } + return ( + Ranking_inheritsLoose(RankingEntry, o), + (RankingEntry.prototype.update = function (t) { + void 0 === t && (t = {}), + (t = Object.assign( + { + name: "", + score: 0, + index: 0, + avatar: "icon_friends", + highlight: !1, + }, + t + )), + (this.name.text = t.name.substr(0, this.clampChars)), + (this.score.text = t.score), + (this.index.text = t.index), + t.loading || + this.avatar.update({ + image: t.image, + }), + this.bg && (this.removeChild(this.bg), Ce.clear(this.bg), this.bg.destroy()); + var e = t.index % 2 ? 13294308 : 11388888; + t.highlight && (e = 16773461), + (this.bg = Ce.rect({ + w: this.w, + h: this.h, + round: 0, + color: e, + })), + this.addChildAt(this.bg, 0); + var i = this.w / 2 - 70; + (this.index.x = 0 - i), (this.avatar.x = 50 - i), (this.name.x = 100 - i), (this.score.x = 540 - i); + }), + RankingEntry + ); + })(c.Container); + var Bn = (function (i) { + var t, e; + + function CoinsTag(t) { + var e; + void 0 === t && (t = 64), + ((e = i.call(this) || this).base = Ce.rectShadow({ + w: 150, + h: 35, + color: 5394255, + round: 10, + shadowDistance: 2, + })), + e.addChild(e.base); + return ( + (e.coins = new sn("9", { + align: "center", + fill: 16185078, + fontSize: 30, + fontFamily: "Lilita One", + dropShadow: !0, + dropShadowDistance: 1, + icon: "icon_coin.png", + })), + e.addChild(e.coins), + e + ); + } + return ( + (e = i), + ((t = CoinsTag).prototype = Object.create(e.prototype)), + ((t.prototype.constructor = t).__proto__ = e), + (CoinsTag.prototype.update = function (t) { + this.coins.text = t; + }), + CoinsTag + ); + })(c.Container); + var Nn = (function (i) { + var t, e; + + function Menu(t) { + var e; + return ((e = i.call(this) || this).btnWidth = 150), (e.btnHeight = 100), (e.btns = []), (e.btn = {}), (e.w = 500), (e.h = 180), e; + } + (e = i), ((t = Menu).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = Menu.prototype; + return ( + (n.addButton = function (t) { + var e = t; + if (!t.on) { + var i = t.name, + n = t.icon, + o = t.color, + s = t.label, + a = t.onTap; + ((e = new wn()).name = i), + e.setIcon(n), + e.setBase( + Ce.rectComp( + { + w: this.btnWidth + 16, + h: this.btnHeight + 20, + image: "box_border_grey.png", + x: 5, + y: 6, + }, + { + w: this.btnWidth - 8, + h: this.btnHeight - 6, + color: o, + round: 12, + } + ) + ), + e.setLabel(s, { + fontSize: 28, + y: this.btnHeight / 2 + 25, + fontFamily: "Lilita One", + }), + (e.onTap = a); + } + this.addChild(e), this.btns.push(e), (this.btn[e.name] = e), this.organise(); + }), + (n.organise = function () { + for (var t = this.btnWidth + 30, e = ((this.btns.length - 1) * t) / 2, i = 0; i < this.btns.length; i++) { + var n = this.btns[i]; + (n.x = t * i - e), (n.y = -12); + } + }), + (n.resize = function (t, e) { + (this.w = t), this.organise(); + }), + (n.select = function (t) { + var e = this.btns, + i = Array.isArray(e), + n = 0; + for (e = i ? e : e[Symbol.iterator](); ; ) { + var o; + if (i) { + if (n >= e.length) break; + o = e[n++]; + } else { + if ((n = e.next()).done) break; + o = n.value; + } + var s = o; + s.selected = s.name === t; + } + }), + Menu + ); + })(c.Container); + + function SectionGameover_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var Xn = (function (i) { + function SectionGameover(t) { + var e; + return ((e = i.call(this, t) || this).app = t), (e.name = "gameover"), e; + } + SectionGameover_inheritsLoose(SectionGameover, i); + var t = SectionGameover.prototype; + return ( + (t.onBuild = function () { + var t = this; + i.prototype.onBuild.call(this), (this.bg = new On()), this.view.addChild(this.bg); + (this.base = Ce.rectComp( + { + w: 690, + h: 1e3, + color: 15658734, + round: 16, + }, + { + w: 712, + h: 1024, + image: "box_border_grey.png", + x: 5, + y: 6, + } + )), + this.view.addChild(this.base), + (this.menu = new Nn(this.app)), + this.view.addChild(this.menu), + (this.content = new c.Container()), + this.view.addChild(this.content), + this.menu.addButton({ + name: "back", + icon: "icon_white_house.png", + label: this.app.strings.get("menu"), + color: 3684408, + onTap: function () { + return t.goToTitle(); + }, + }); + var e = new wn({ + name: "play", + }); + e.setBase( + Ce.rectComp( + { + w: 346, + h: 120, + image: "box_border_grey.png", + x: 5, + y: 6, + }, + { + w: 322, + h: 94, + color: 4298538, + round: 12, + } + ) + ), + e.setLabel(this.app.strings.upper("play"), { + fontFamily: "Lilita One", + }), + (e.onTap = function () { + return t.playAgain(); + }), + this.menu.addButton(e), + (this.menu.btn.back.x = -270), + this.menu.btn.boosts && (this.menu.btn.boosts.x = -90), + (this.menu.btn.play.x = 180), + (this.menu.btn.play.y = -12), + (this.jake = new Fn("assets/placeholder/jake.png")), + (this.jake.x = -180), + (this.jake.y = 60), + this.content.addChild(this.jake), + (this.scoreboard = new Ln()), + this.content.addChild(this.scoreboard), + (this.scoreboard.x = 130), + (this.scoreboard.y = 130), + (this.ranking = new Dn(50, this.app.config.maxNicknameChars)), + this.content.addChild(this.ranking), + (this.ranking.y = 300), + (this.coins = new Bn()), + this.content.addChild(this.coins), + (this.coins.x = this.scoreboard.x), + (this.coins.y = -80); + }), + (t.createBox = function (t, e, i, n) {}), + (t.onOpen = function () { + i.prototype.onOpen.call(this), + (this._actionTaken = !1), + this.ranking.update(this.app.user.name, this.app.game.stats.score), + this.coins.update(this.app.user.coins), + this.scoreboard.update({ + score: this.app.game.stats.score, + coins: this.app.game.stats.coins, + title: this.app.strings.get("score"), + }), + (this.menu.btn.play.key = 32); + }), + (t.onClose = function () { + i.prototype.onClose.call(this), (this.menu.btn.play.key = null); + }), + (t.goToTitle = function () { + this._actionTaken || ((this._actionTaken = !0), this.app.nav.goToTitle()); + }), + (t.playAgain = function () { + dataLayer.push({ + event: "ga_event", + ga_category: "Gamepage", + ga_action: "Start", + ga_label: window.productTitle, + ga_noninteraction: false, + }); + + this._actionTaken || ((this._actionTaken = !0), this.app.nav.playAgain()); + }), + (t.onResize = function () { + i.prototype.onResize.call(this), + this.bg.resize(this.w, this.h), + (this.menu.x = this.w / 2), + (this.menu.y = this.h - this.menu.h / 2), + this.base && ((this.base.x = 0.5 * this.w), (this.base.y = 0.5 * (this.h - this.menu.h))), + this.title && ((this.title.x = this.w / 2), (this.title.y = 150)), + (this.content.x = this.w / 2), + (this.content.y = 240); + }), + SectionGameover + ); + })(vn); + c.Container; + var Yn = (function (i) { + var t, e; + + function SectionTopRun(t) { + var e; + return ((e = i.call(this) || this).app = t), (e.name = "toprun"), e; + } + (e = i), ((t = SectionTopRun).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = SectionTopRun.prototype; + return ( + (n.onBuild = function () { + var t = this; + i.prototype.onBuild.call(this), (this.bg = new On()), this.view.addChild(this.bg); + (this.base = Ce.rectComp( + { + w: 690, + h: 1e3, + color: 15658734, + round: 16, + }, + { + w: 712, + h: 1024, + image: "box_border_grey.png", + x: 5, + y: 6, + } + )), + this.view.addChild(this.base), + (this.menu = new Nn(this.app)), + this.view.addChild(this.menu), + this.menu.addButton({ + name: "back", + icon: "icon_white_house.png", + label: this.app.strings.get("menu"), + color: 3684408, + onTap: function () { + return t.app.nav.goToTitle(); + }, + }), + (this.ranking = new Dn(70, this.app.config.maxNicknameChars)), + this.base.addChild(this.ranking), + (this.ranking.y = -310), + (this.title = new sn(this.app.strings.get("highscores"), { + align: "center", + fill: 19072, + fontSize: 70, + fontFamily: "Titan One", + dropShadow: !1, + dropShadowDistance: 2, + anchor: 0.5, + })), + this.base.addChild(this.title), + (this.title.y = -420); + }), + (n.onOpen = function () { + i.prototype.onOpen.call(this), this.ranking.update(this.app.user.name, this.app.user.score); + }), + (n.onResize = function () { + i.prototype.onResize.call(this), this.bg.resize(this.w, this.h), (this.menu.x = this.w / 2), (this.menu.y = this.h - this.menu.h / 2), (this.base.x = 0.5 * this.w), (this.base.y = 0.5 * (this.h - this.menu.h)); + }), + SectionTopRun + ); + })(vn); + var Hn = (function (i) { + var t, e; + + function SectionPause(t) { + var e; + return ((e = i.call(this) || this).app = t), (e.name = "pause"), e; + } + (e = i), ((t = SectionPause).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var n = SectionPause.prototype; + return ( + (n.onBuild = function () { + var t = this; + i.prototype.onBuild.call(this), + (this.bg = new On()), + this.view.addChild(this.bg), + (this.menu = new Nn(this.app)), + this.view.addChild(this.menu), + this.menu.addButton({ + name: "back", + icon: "icon_white_house.png", + label: this.app.strings.get("menu"), + color: 3684408, + onTap: function () { + t._actionTaken || ((t._actionTaken = !0), nn.a.sendCustomMessage("game", "roundCancel", {}), t.app.nav.goToTitle()); + }, + }); + var e = new wn({ + name: "resume", + }); + e.setBase( + Ce.rectComp( + { + w: 346, + h: 120, + image: "box_border_grey.png", + x: 5, + y: 6, + }, + { + w: 322, + h: 94, + color: 4298538, + round: 12, + } + ) + ), + e.setLabel(this.app.strings.upper("resume"), { + fontFamily: "Lilita One", + }), + (e.onTap = function () { + t.app.sections.close(), t.app.game.resume(3); + }), + this.menu.addButton(e), + (this.menu.btn.back.x = -270), + (this.menu.btn.resume.x = 180), + (this.menu.btn.resume.y = -12), + (this.title = new sn(this.app.strings.upper("pause"), { + align: "center", + fill: 16777215, + fontSize: 70, + fontFamily: "Titan One", + dropShadow: !0, + dropShadowDistance: 2, + anchor: 0.5, + })), + this.view.addChild(this.title); + }), + (n.onOpen = function () { + i.prototype.onOpen.call(this), (this._actionTaken = !1); + }), + (n.onResize = function () { + i.prototype.onResize.call(this), + this.bg.resize(this.w, this.h), + (this.menu.x = this.w / 2), + (this.menu.y = this.h - this.menu.h / 2), + this.base && ((this.base.x = 0.5 * this.w), (this.base.y = 0.5 * (this.h - this.menu.h))), + this.title && ((this.title.x = this.w / 2), (this.title.y = 150)), + (this.title.x = this.w / 2), + (this.title.y = this.h / 2); + }), + SectionPause + ); + })(vn); + + function SectionSettings_defineProperties(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); + } + } + + function SectionSettings_assertThisInitialized(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + } + + function SectionSettings_inheritsLoose(t, e) { + (t.prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + } + var Un = (function (i) { + function SectionSettings(t) { + var e; + return ((e = i.call(this) || this).name = "settings"), (e.app = t), e; + } + SectionSettings_inheritsLoose(SectionSettings, i); + var t = SectionSettings.prototype; + return ( + (t.onBuild = function () { + var t = this; + (this.bg = new On(this.app.color)), this.view.addChild(this.bg); + (this.base = Ce.rectComp( + { + w: 690, + h: 1e3, + color: 15658734, + round: 16, + }, + { + w: 712, + h: 1024, + image: "box_border_grey.png", + x: 5, + y: 6, + } + )), + this.view.addChild(this.base), + (this.title = new sn(this.app.strings.get("settings"), { + align: "center", + fill: 19072, + fontSize: 70, + fontFamily: "Titan One", + dropShadow: !1, + dropShadowDistance: 2, + anchor: 0.5, + })), + this.base.addChild(this.title), + (this.title.y = -420), + (this.btnClose = new wn()), + (this.btnClose.x = -325), + (this.btnClose.y = -480), + this.base.addChild(this.btnClose), + this.btnClose.setBase("btn_close.png"), + (this.btnClose.onTap = function () { + return t.app.sections.open("title"); + }), + (this.version = new sn("v0.3.9", { + align: "right", + fill: 3836863, + fontSize: 18, + fontFamily: "Titan One", + anchor: 1, + })), + this.base.addChild(this.version), + (this.version.alpha = 0.5), + (this.version.x = 335), + (this.version.y = 494), + this.updateEntries(); + }), + (t.onOpen = function () { + i.prototype.onOpen.call(this); + }), + (t.onClose = function () { + i.prototype.onClose.call(this); + }), + (t.onResize = function () { + i.prototype.onResize.call(this), this.bg.resize(this.w, this.h), (this.base.x = 0.5 * this.w), (this.base.y = 0.5 * this.h); + }), + (t.buildEntries = function () { + var e = this; + if (!this._entriesBuilt) { + this._entriesBuilt = !0; + for ( + var t = [ + { + name: "nickname", + type: "input", + value: this.app.user.name, + icon: "icon_user.png", + title: this.app.strings.get("nickname"), + description: this.app.strings.get("nickname_prompt"), + onChange: function (t) { + (e.app.user.name = t), e.app.user.save(); + }, + }, + { + name: "sound", + type: "toggle", + value: this.app.settings.sound, + icon: "icon_sound.png", + title: this.app.strings.get("sound"), + subtitleTrue: this.app.strings.get("on"), + subtitleFalse: this.app.strings.get("off"), + onChange: function (t) { + (e.app.settings.sound = t), e.app.settings.save(), e.app.sfx.volume(t ? B.volume : 0); + }, + }, + { + name: "info", + type: "link", + icon: "icon_info.png", + title: this.app.strings.get("privacy_policy"), + link: this.app.strings.get("privacy_policy_link"), + }, + ], + i = 0; + i < t.length; + i++ + ) { + var n = t[i], + o = new Vn(this.app, n); + this.base.addChild(o), (o.y = i * o.h - 250), (this[o.name] = o); + } + } + }), + (t.updateEntries = function () { + this.buildEntries(), (this.nickname.value = this.app.user.name), (this.sound.value = this.app.settings.sound); + }), + SectionSettings + ); + })(vn), + Vn = (function (o) { + function Entry(t, e) { + var i; + void 0 === e && (e = {}), ((i = o.call(this) || this).app = t); + var n = Object.assign( + {}, + { + name: "entry", + type: "toggle", + value: !0, + icon: "icon_white_missions.png", + title: "Title", + subtitleTrue: "", + subtitleFalse: "", + description: "", + onChange: function (t) { + return t; + }, + }, + e + ); + return ( + (i.w = 550), + (i.h = 130), + (i.opts = n), + (i.name = n.name), + (i.type = n.type), + (i.bg = new c.Graphics()), + i.bg.beginFill(16711680, 1), + i.bg.drawRect(-i.w / 2, -i.h / 2, i.w, i.h), + i.addChild(i.bg), + (i.bg.alpha = 0), + (i.bg.interactive = !0), + i.bg.on("pointertap", i.onTap.bind(SectionSettings_assertThisInitialized(i)), SectionSettings_assertThisInitialized(i)), + (i.btn = new wn()), + i.btn.setIcon(n.icon), + i.btn.setBase( + Ce.rectComp( + { + w: 116, + h: 118, + image: "box_border_grey_small.png", + x: 1, + y: 1, + }, + { + w: 100, + h: 100, + color: 3574206, + round: 6, + } + ) + ), + (i.btn.onTap = i.onTap.bind(SectionSettings_assertThisInitialized(i))), + i.addChild(i.btn), + (i.btn.x = -i.w / 2 + 60), + (i.title = new sn(n.title, { + align: "left", + fill: 19072, + fontSize: 40, + fontFamily: "Titan One", + anchor: 0, + })), + i.addChild(i.title), + (i.title.x = i.btn.x + 80), + (i.title.y = n.value ? -35 : -20), + (i.subtitle = new sn(n.subtitleTrue, { + align: "left", + fill: 3836863, + fontSize: 30, + fontFamily: "Titan One", + anchor: 0, + })), + i.addChild(i.subtitle), + (i.subtitle.x = i.title.x), + (i.subtitle.y = i.title.y + 40), + (i.subtitle.description = n.description), + i.subtitle.on("change", function (t) { + return (i.value = t); + }), + (i.diagonal = c.Sprite.from("diagonal.png")), + i.diagonal.anchor.set(0.5), + i.btn.addChild(i.diagonal), + (i.diagonal.visible = !1), + (i.value = n.value), + i + ); + } + SectionSettings_inheritsLoose(Entry, o); + var t, + e, + i, + n = Entry.prototype; + return ( + (n.onTap = function () { + var e = this; + "toggle" === this.type && this.toggle(), + "input" === this.type && + this.app.prompt.open(this.subtitle.description, this.subtitle.text, function (t) { + t && ((e.subtitle.text = t), (e.value = t)); + }), + "link" === this.type && window.open(this.opts.link, "_blank"); + }), + (n.toggle = function () { + this.value = !this.value; + }), + (n.update = function () { + var t = this._value; + this.diagonal.visible = !t; + var e = t ? this.opts.subtitleTrue : this.opts.subtitleFalse, + i = "string" == typeof t ? t : e; + (this.subtitle.text = i), (this.title.y = i ? -35 : -20), (this.subtitle.y = this.title.y + 40); + }), + (t = Entry), + (e = [ + { + key: "value", + get: function () { + return this._value; + }, + set: function (t) { + this._value !== t && ((this._value = t), this.opts.onChange(t), this.update()); + }, + }, + ]) && SectionSettings_defineProperties(t.prototype, e), + i && SectionSettings_defineProperties(t, i), + Entry + ); + })(c.Container), + qn = (function () { + function Navigation(t) { + (this.app = t), this.uiLoaded; + } + var t = Navigation.prototype; + return ( + (t.onAppReady = function () { + this._initialised || + ((this._initialised = !0), + this.app.sections.addSub(new En(this.app)), + this.app.sections.addSub(new In(this.app)), + this.app.sections.addSub(new Xn(this.app)), + this.app.sections.addSub(new Yn(this.app)), + this.app.sections.addSub(new Hn(this.app)), + this.app.sections.addSub(new Un(this.app)), + this.app.resources.isLoaded("ui") && (this.app.size.update(), B.fastplay || this.app.sections.open(B.section))); + }), + (t.onLoadComplete = function (t) { + B.fastplay || ("ui" === t && this.app._ready && (this.app.size.update(), this.app.sections.open(B.section))); + }), + (t.playGame = function () { + var t = this; + this.app.sections.close(), + nn.a.hangout.initHighscoreSession().then(function () { + t.app.startGame(); + }); + }), + (t.goToTitle = function () { + var t = this; + this.app.config.commercials + ? (this.app.sections.close(), + this.app.suspend(), + nn.a.SDK.commercialBreak().then(function () { + return t._goToTitle(); + })) + : this._goToTitle(); + }), + (t._goToTitle = function () { + var t = this; + this.app.game.state !== pn.IDLE && this.app.game.idle(), + setTimeout(function () { + t.app.sections.close(), t.app.screenManager.gotoScreenByID("title"), t.app.sections.open("title"); + }, 30); + }), + (t.playAgain = function () { + var t = this; + this.app.sections.close(), + this.app.config.commercials + ? (this.app.suspend(), + nn.a.SDK.commercialBreak().then(function () { + return t._playAgain(); + })) + : this._playAgain(); + }), + (t._playAgain = function () { + var t = this; + this.app.sections.close(), + nn.a.hangout.initHighscoreSession().then(function () { + t.app.resume(), t.app.game.idle(), t.app.sfx.unmute(), t.app.game.runWithIntro(); + }); + }), + Navigation + ); + })(), + Wn = i(192), + Zn = (function () { + function Store(t, e) { + var i = this; + (this.id = t), (this.cache = Object.assign({}, e)), (this.data = Object.assign({}, e)), (this.storage = new Wn.a(t)), (this.onChange = new l.a()), (this._changes = {}); + var n = function (e) { + Object.defineProperty(i, e, { + get: function () { + return i.get(e); + }, + set: function (t) { + return i.set(e, t); + }, + }); + }; + for (var o in this.data) n(o); + this.load(); + } + var t = Store.prototype; + return ( + (t.get = function (t) { + return this.data[t]; + }), + (t.set = function (t, e) { + (this.data[t] = e), + this.cache[t] !== this.data[t] && + ((this._lastChange = { + field: t, + from: this.cache[t], + to: this[t], + }), + (this._changes[t] = { + from: this.cache[t], + to: this[t], + }), + this.onChange.dispatch(t, this[t], this.cache[t]), + (this.cache[t] = this.data[t])); + }), + (t.update = function () { + for (var t in this.cache) this.set(t, this.data[t]); + }), + (t.load = function () { + var t = this.storage.getObject(this.id); + t && (Object.assign(this.data, t), this.update()); + }), + (t.save = function () { + this.update(), this.storage.storeObject(this.id, this.data); + }), + (t.lastChange = function (t) { + return this._changes[t] || null; + }), + Store + ); + })(); + + function asyncGeneratorStep(t, e, i, n, o, s, a) { + try { + var r = t[s](a), + h = r.value; + } catch (t) { + return void i(t); + } + r.done ? e(h) : Promise.resolve(h).then(n, o); + } + var Kn = [ + { + name: "preload", + assets: ["preload"], + }, + { + name: "idle", + assets: ["idle", "chunks_idle"], + }, + { + name: "ui", + assets: ["ui"], + }, + { + name: "game", + assets: ["game", "chunks_game"], + }, + ], + Jn = (function () { + function Resources(t, e) { + (this.app = t), (this.config = e || Kn), (this.level = -1), (this.levelLoading = -1); + } + var t = Resources.prototype; + return ( + (t.init = function () { + (this.app.resourceManager.version = "low"), (this.onLoadStart = this.app.addSignal("onLoadStart")), (this.onLoadComplete = this.app.addSignal("onLoadComplete")); + }), + (t.load = (function () { + var s, + e = + ((s = regeneratorRuntime.mark(function _callee(e) { + var i, n, o, s; + return regeneratorRuntime.wrap( + function (t) { + for (;;) + switch ((t.prev = t.next)) { + case 0: + if ((i = this.getLevel(e)) <= this.levelLoading) return t.abrupt("return"); + t.next = 3; + break; + case 3: + if (-1 == i) throw new Error("Invalid level ref: " + e); + t.next = 5; + break; + case 5: + for (this.levelLoading = i, this.onLoadStart.dispatch(this.config[i].name, i), n = [], o = 0; o <= i; o++) (s = this.config[o]), (n = n.concat(s.assets)); + return (t.next = 11), this.app.screenManager._loadAssets(n); + case 11: + (this.level = i), (this.levelLoading = -1), this.onLoadComplete.dispatch(this.config[i].name, i); + case 14: + case "end": + return t.stop(); + } + }, + _callee, + this + ); + })), + function () { + var t = this, + o = arguments; + return new Promise(function (e, i) { + var n = s.apply(t, o); + + function _next(t) { + asyncGeneratorStep(n, e, i, _next, _throw, "next", t); + } + + function _throw(t) { + asyncGeneratorStep(n, e, i, _next, _throw, "throw", t); + } + _next(void 0); + }); + }); + return function (t) { + return e.apply(this, arguments); + }; + })()), + (t.getLevel = function (t) { + switch (typeof t) { + case "number": + return t; + case "string": + return this.levelByName(t); + default: + return this.config.indexOf(t); + } + }), + (t.levelByName = function (t) { + return this.config + .map(function (t) { + return t.name; + }) + .indexOf(t); + }), + (t.groupByName = function (t) { + var e = this.levelByName(t); + return this.config[e]; + }), + (t.isLoaded = function (t) { + return this.getLevel(t) <= this.level; + }), + Resources + ); + })(), + Qn = i(198), + $n = i(195), + to = i(196), + eo = i(132), + io = ["Good", "Fabulous", "Grumpy", "Normal", "Zealous", "Brainy", "Awesome", "Cute", "Simple", "Pretty", "Super", "Hyper", "Mega", "Wonder", "Master", "Fast", "Quick", "Giant", "Mega"], + no = ["Toaster", "Machine", "Runner", "Beast", "Genius", "Alien", "Zen", "Guy", "Player", "Llama", "Rider", "Bolt", "Monster", "Bird", "Cat"], + oo = (function () { + function NicknameGen() {} + return ( + (NicknameGen.random = function () { + return this.pick.apply(this, io) + this.pick.apply(this, no); + }), + (NicknameGen.pick = function () { + for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; + return e[Math.floor(Math.random() * e.length)]; + }), + NicknameGen + ); + })(), + so = (function () { + function Prompt(t, e) { + void 0 === e && (e = 10), (this.app = t), (this.w = 400), (this.h = 300), (this.maxChars = e), (this.useDefault = this.app.config.useDefaultPrompt); + } + var t = Prompt.prototype; + return ( + (t.build = function () { + var t = this; + if (!this.element) { + var e = document.createElement("div"); + (e.style.position = "absolute"), + (e.style.left = 0), + (e.style.top = 0), + (e.style.right = 0), + (e.style.bottom = 0), + (e.style.width = "100%"), + (e.style.height = "100%"), + (e.style.backgroundColor = "rgba(0, 0, 0, 0.5)"), + (e.style.zIndex = 99999); + var i = document.createElement("div"); + (i.style.width = this.w + "px"), + (i.style.height = this.h + "px"), + (i.style.position = "absolute"), + (i.style.marginLeft = "50%"), + (i.style.left = -this.w / 2 + "px"), + (i.style.top = "20%"), + (i.style.backgroundImage = 'url("assets/placeholder/box_base.png")'), + (i.style.backgroundPosition = "center"), + (i.style.backgroundRepeat = "no-repeat"), + (i.style.backgroundSize = "contain"), + (i.style.fontFamily = "Lilita One"), + (i.style.textAlign = "center"), + (i.style.color = "#004a80"), + (i.style.display = "block"), + (i.style.overflow = "hidden"), + e.appendChild(i); + var n = document.createElement("div"); + (n.style.fontSize = "2em"), (n.style.width = "100%"), (n.style.marginTop = "20%"), (n.style.textAlign = "center"), i.appendChild(n); + var o = document.createElement("input"); + (o.style.fontSize = "1.5em"), + (o.type = "text"), + (o.maxLength = this.maxChars), + (o.style.width = "80%"), + (o.style.height = "30pt"), + (o.style.textAlign = "center"), + (o.style.fontFamily = "Lilita One"), + (o.style.color = "#3a8bbf"), + (o.style.margin = "5px"), + (o.style.backgroundColor = "#FFFFFF"), + (o.style.border = 0), + i.appendChild(o); + var s = document.createElement("button"); + (s.innerText = this.app.strings.get("cancel")), + (s.onclick = function () { + return t.onCancel(); + }), + (s.style.fontSize = "1em"), + (s.style.width = "120px"), + (s.style.height = "40px"), + (s.style.textAlign = "center"), + (s.style.fontFamily = "Lilita One"), + (s.style.color = "#FFFFFF"), + (s.style.margin = "10px"), + (s.style.backgroundColor = "#c93d48"), + (s.style.border = 0), + (s.style.cursor = "pointer"), + (s.style.borderRadius = "6px"), + i.appendChild(s); + var a = document.createElement("button"); + (a.innerText = this.app.strings.get("ok")), + (a.onclick = function () { + return t.onOk(); + }), + (a.style.fontSize = "1em"), + (a.style.width = "120px"), + (a.style.height = "40px"), + (a.style.textAlign = "center"), + (a.style.fontFamily = "Lilita One"), + (a.style.color = "#FFFFFF"), + (a.style.backgroundColor = "#3689be"), + (a.style.margin = "10px"), + (a.style.border = 0), + (a.style.cursor = "pointer"), + (a.style.borderRadius = "6px"), + i.appendChild(a), + (this.title = n), + (this.input = o), + (this.btnOk = a), + (this.btnCancel = s), + (this.element = e); + } + }), + (t.open = function (t, e, i) { + if (!this.opened) { + if (((this.opened = !0), (this.callback = i), this.useDefault)) { + var n = window.prompt(t, e); + return this.callback && this.callback(n), void (this.opened = !1); + } + this._onKeyDownBind || (this._onKeyDownBind = this.onKeyUp.bind(this)), + document.addEventListener("keyup", this._onKeyDownBind), + this.app.suspend(), + this.build(), + (this.title.innerText = t), + (this.input.value = e), + document.body.appendChild(this.element), + this.select(); + } + }), + (t.close = function () { + this.opened && ((this.opened = !1), document.removeEventListener("keyup", this._onKeyDownBind), this.input.blur(), document.body.removeChild(this.element), this.app.resume()); + }), + (t.onKeyUp = function (t) { + "Enter" != t.code || t.repeat || this.onOk(); + }), + (t.onOk = function () { + this.close(), this.callback && this.callback(this.input.value); + }), + (t.onCancel = function () { + this.close(), this.callback && this.callback(); + }), + (t.select = function () { + this.input.focus(), this.input.select && this.input.select(), this.input.setSelectionRange && this.input.setSelectionRange(0, this.input.value.length); + }), + Prompt + ); + })(); + + function Application_asyncGeneratorStep(t, e, i, n, o, s, a) { + try { + var r = t[s](a), + h = r.value; + } catch (t) { + return void i(t); + } + r.done ? e(h) : Promise.resolve(h).then(n, o); + } + + function Application_asyncToGenerator(s) { + return function () { + var t = this, + o = arguments; + return new Promise(function (e, i) { + var n = s.apply(t, o); + + function _next(t) { + Application_asyncGeneratorStep(n, e, i, _next, _throw, "next", t); + } + + function _throw(t) { + Application_asyncGeneratorStep(n, e, i, _next, _throw, "throw", t); + } + _next(void 0); + }); + }; + } + var ao = "assets"; + + function pathJoin() { + for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; + return e.join("/"); + } + + function prepareManifest(t, e) { + !(function (t, e) { + for (var i in t) + for (var n in t[i]) + for (var o in t[i][n]) + for (var s in t[i][n][o]) { + var a = t[i][n][o][s]; + if ("string" == typeof a) { + var r = pathJoin(e, a); + t[i][n][o][s] = r; + } + } + })(t, ao); + var i = e && e.config ? e.config.lang : "en", + n = { + default: ao + "/data/strings_en.json", + }, + o = { + default: ao + "/data/strings_" + i + ".json", + }; + return ( + (t.idle.json["data/strings_en"] = n), + (t.idle.json["data/strings_" + i] = o), + e.bundle && + (!(function (t) { + var e = t.meta.path; + for (var i in t) + if ("meta" !== i) + for (var n in t[i]) + for (var o in t[i][n]) + for (var s in t[i][n][o]) { + var a = pathJoin(e, t[i][n][o][s]).replace("assets/", ""); + t[i][n][o][s] = a; + } + })(e.bundle), + (function merge(t, e) { + for (var i in e) { + var n = typeof t[i], + o = typeof e[i]; + "object" === n && "object" === o ? merge(t[i], e[i]) : (t[i] = "object" === o ? JSON.parse(JSON.stringify(e[i])) : e[i]); + } + })(t, e.bundle)), + t + ); + } + B.vertp && (c.settings.PRECISION_VERTEX = B.vertp), B.fragp && (c.settings.PRECISION_VERTEX = B.fragp); + var ro = (function (s) { + var t, e; + + function Application(t) { + var e; + void 0 === t && (t = {}), + B.override({ + env: t.config.env, + mobile: r.a.instance.isMobile || r.a.instance.isTouch, + }), + B.override(t.config); + var i, + n = { + manifest: prepareManifest(eo, t), + orientationMode: a.a.orientationModes.BOTH, + screenManagerOptions: { + defaultTransition: new h.a(), + }, + middlewares: [((i = B.workers), i ? Object($n.a)(1 === i) : Qn.a)], + version: B.monitor || B.debug, + fps: B.monitor || B.debug, + upload: !1, + antialias: !1, + transparent: !1, + loadingScreenClass: xn, + }; + ((e = s.call(this, n) || this).resourceManager.middlewaresPre = [to.a]), (e.config = Object.assign({}, t.config)), (e.bundle = Object.assign({}, t.bundle)); + var o = e.bundle.meta.color; + return ( + (e.color = "string" == typeof o ? c.utils.string2hex(o) : o), + (e.resourceManager.version = "low"), + (e.resourceManager.getLoader = function () { + var e = new c.Loader(); + return ( + this.middlewaresPre.forEach(function (t) { + return e.pre(t()); + }), + this.middlewares.forEach(function (t) { + return e.use(t()); + }), + e + ); + }), + (e.crashed = !1), + window.addEventListener("error", function (t) { + e.crash(t.error.message); + }), + c.Ticker.shared.stop(), + c.Ticker._system.stop(), + d.a.instance.remove( + e.update, + (function (t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; + })(e) + ), + B.ticker ? e.runWithTicker() : (d.a.instance.stop(), e.runWithAnimFrame()), + e + ); + } + (e = s), ((t = Application).prototype = Object.create(e.prototype)), ((t.prototype.constructor = t).__proto__ = e); + var i = Application.prototype; + return ( + (i.crash = function () { + (this.crashed = !0), d.a.instance.stop(); + for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; + throw new Error("CRASH! " + e.join(" ")); + }), + (i.getFbxLoader = function () {}), + (i.init = function (t) { + (this.container = t), + this.addSignal("onAppReady", this.onReady), + this.addSystem( + "settings", + new Zn("settings", { + sound: !0, + }) + ), + this.addSystem( + "user", + new Zn("user", { + score: 0, + coins: 0, + keys: 0, + sprays: 0, + hoverboards: 0, + character: "jake", + outfit: "default", + board: "default", + name: "", + nameSet: !1, + tutorial: !0, + }) + ), + this.user.name || ((this.user.name = oo.random()), this.user.save()), + (this.sfx = new gn(0 === B.volume)), + this.sfx.setup(eo.audio.audio, ao), + this.sfx.volume(this.settings.sound ? B.volume : 0), + this.addSystem("resources", new Jn(this)), + this.addSystem("nav", new qn(this)), + this.addSystem("event", new Sn(this)), + this.addSystem("message", new zn(this)), + this.addSystem("size", new Tn(this)), + this.addSystem("strings", new Pn(this)), + this.addSystem("prompt", new so(this, this.config.maxNicknameChars)), + B.debug && this.addSystem("debug", new Mn(this)), + nn.a.hangout.setDebug(this.config.pokiSdkDebug), + nn.a.hangout.getLobbyId(), + this.addScreen("loading", new xn(this, this.color)), + this.preload(); + }), + (i.show = function () { + this.container.appendChild(this.view), (this.view.style.position = "absolute"), (this.view.style.top = 0), (this.view.style.left = 0), this.size.update(); + }), + (i.preload = (function () { + var t = Application_asyncToGenerator( + regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap( + function (t) { + for (;;) + switch ((t.prev = t.next)) { + case 0: + return nn.a.sendCustomMessage("game", "loaderStart", {}), (t.next = 3), this.resources.load("preload"); + case 3: + this.loadingScreen.build(), this.show(), this.load(); + case 6: + case "end": + return t.stop(); + } + }, + _callee, + this + ); + }) + ); + return function () { + return t.apply(this, arguments); + }; + })()), + (i.load = (function () { + var t = Application_asyncToGenerator( + regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap( + function (t) { + for (;;) + switch ((t.prev = t.next)) { + case 0: + if (B.fastplay) return (this.shouldStartGame = !0), nn.a.sendCustomMessage("game", "loaderEnd", {}), nn.a.sendCustomMessage("mainMenu", "secondLoaderStart", {}), (t.next = 6), this.resources.load("game"); + t.next = 11; + break; + case 6: + this.ready(), (this.gameLoaded = !0), nn.a.SDK.gameLoadingFinished(), (t.next = 24); + break; + case 11: + if (B.loadAll) return (t.next = 14), this.resources.load("game"); + t.next = 16; + break; + case 14: + t.next = 18; + break; + case 16: + return (t.next = 18), this.resources.load("idle"); + case 18: + return nn.a.sendCustomMessage("game", "loaderEnd", {}), (this.bgLoading = !0), (t.next = 22), this.resources.load("ui"); + case 22: + (this.bgLoading = !1), B.autoload && this.loadGame(); + case 24: + case "end": + return t.stop(); + } + }, + _callee2, + this + ); + }) + ); + return function () { + return t.apply(this, arguments); + }; + })()), + (i.loadGame = (function () { + var t = Application_asyncToGenerator( + regeneratorRuntime.mark(function _callee3() { + return regeneratorRuntime.wrap( + function (t) { + for (;;) + switch ((t.prev = t.next)) { + case 0: + if (this.bgLoading) return t.abrupt("return"); + t.next = 2; + break; + case 2: + return (this.bgLoading = !0), nn.a.sendCustomMessage("mainMenu", "secondLoaderStart", {}), (t.next = 6), this.resources.load("game"); + case 6: + (this.bgLoading = !1), (this.gameLoaded = !0); + case 8: + case "end": + return t.stop(); + } + }, + _callee3, + this + ); + }) + ); + return function () { + return t.apply(this, arguments); + }; + })()), + (i.onLoadStart = function (t, e) {}), + (i.onLoadComplete = function (t, e) { + switch (t) { + case "preload": + break; + case "idle": + B.fastplay || this.ready(); + break; + case "ui": + B.fastplay || (nn.a.sendCustomMessage("mainMenu", "interactive", {}), nn.a.SDK.gameLoadingFinished()); + break; + case "game": + nn.a.sendCustomMessage("mainMenu", "secondLoaderEnd", {}), this.ready(), (this.gameLoaded = !0), this.shouldStartGame && this.startGame(); + } + this.size.update(); + }), + (i.ready = function () { + var e = this; + this._readyDispatched || + this._ready || + ((this._readyDispatched = !0), + this.strings.onAppReady(), + this.createGame(), + (this.sections = new vn("root")), + (this.sections.container = this.stage), + this.addScreen("title", new _n(this)), + this.addScreen("game", new kn(this)), + setTimeout(function () { + e._ready = !0; + var t = B.fastplay ? "game" : "title"; + e.screenManager.gotoScreenByID(t), e.onReady.dispatch(), (e.loadingScreen.firstLoadPassed = !0); + }, 100)); + }), + (i.createGame = function () { + this.game || ((this.game = new pn(this, B, this.sfx)), this.game.idle(), this.stage.addChildAt(this.game.stage, 0)); + }), + (i.startGame = function () { + if ((this.sections && this.sections.close(), !this.gameLoaded)) return this.loadGame(), (this.shouldStartGame = !0), void (this.loadingScreen && this.loadingScreen.updateView(!0)); + this.loadingScreen.updateView(!1), + this.sfx.play("hero_foot_l", { + volume: 0.01, + }), + this.sfx.volume(this.settings.sound ? B.volume : 0), + this.screenManager.gotoScreenByID("game"); + }), + (i.onFocus = function () { + this.suspended || (this.game && this.game.onFocus()); + }), + (i.onBlur = function () { + this.suspended || (this.game && this.game.onBlur()); + }), + (i.onMessage = function (t) { + "startGame" === t.data && this.startGame(); + }), + (i.onResize = function () { + (this.view.style.width = this.size.w + "px"), + (this.view.style.height = this.size.h + "px"), + (this.view.style.left = "0px"), + (this.view.style.top = "0px"), + this.renderer.resize(this.size.sw, this.size.sh), + this.screenManager.resize(this.size.w, this.size.h), + (this.screenManager.container.scale.x = this.size.scale), + (this.screenManager.container.scale.y = this.size.scale), + this.sections && this.sections.resize(this.size.sw, this.size.sh, 2), + this.game && this.game.resize(this.size.sw, this.size.sh, 2), + this.blocker && this.blocker.visible && ((this.blocker.width = this.size.sw), (this.blocker.height = this.size.sh)); + }), + (i.suspend = function () { + this.suspended || + ((this.suspended = !0), + this.sfx.mute(), + this.blocker || ((this.blocker = new c.Graphics()), this.blocker.beginFill(this.color, 0.5), this.blocker.drawRect(0, 0, 16, 16), this.blocker.endFill()), + (this.blocker.visible = !0), + this.stage.addChild(this.blocker), + (this.blocker.width = this.size.sw), + (this.blocker.height = this.size.sh)); + }), + (i.resume = function () { + this.suspended && ((this.suspended = !1), this.view.focus(), this.sfx.unmute(), this.blocker && (this.blocker.visible = !1), this.blocker && this.blocker.parent && this.stage.addChild(this.blocker)); + }), + (i.runWithTicker = function () { + d.a.instance.add(this.updateTicker, this, 1); + }), + (i.runWithAnimFrame = function () { + (this.updateAnimFrameBind = this.updateAnimFrame.bind(this)), requestAnimationFrame(this.updateAnimFrameBind); + }), + (i.updateTicker = function (t) { + this.game && this.game.updateTicker(t), this.renderer.render(this.stage); + }), + (i.updateAnimFrame = function (t) { + requestAnimationFrame(this.updateAnimFrameBind), this.game && this.game.updateAnimFrame(t), this.renderer.render(this.stage); + }), + (i.addScreen = function (t, e) { + (this[t + "Screen"] = e), "loading" === t ? (this.screenManager.loadingScreen = e) : this.screenManager.addScreen(e, t); + }), + (i.addSystem = function (t, e) { + if ((this.system || (this.system = {}), this.system[t])) throw new Error("App already have system: " + t); + if (this[t]) throw new Error("App already have a member with the same name as the system: " + t); + for (var i in ((this.system[t] = e), (this[t] = e), this.signal)) e[i] && this.signal[i].add(e[i], e); + e.init && e.init(this); + }), + (i.addSignal = function (t, e) { + if ((this.signal || (this.signal = {}), this.signal[t])) throw new Error("App already have signal: " + t); + for (var i in (e || (e = new l.a()), (this.signal[t] = e), this.system)) { + var n = this.system[i]; + n[t] && "function" == typeof this[t] && e.add(n[t], n); + } + return this[t] && "function" == typeof this[t] && e.add(this[t], this), e; + }), + Application + ); + })(a.a), + ho = i(197), + lo = { + gid: "ssurfers", + gameDir: "", + gameContainerId: "og-game-holder", + isFullScreen: window.self === window.top, + exitGameUrl: "", + environment: "test", + embedVars: { + statsCounterName: "testCounterName", + statsAppName: "TestAppName", + }, + }; + !(function () { + if ((window.VConsole && new window.VConsole(), new ho.a().supported)) { + window.og || (window.og = lo), + window.ASSET_URL || (window.ASSET_URL = ""), + window.DEVICE_SCALE || (window.DEVICE_SCALE = window.devicePixelRatio || 1), + window.console || (window.console = {}), + window.console.log || + (window.console.log = function (t) { + return t; + }); + var t = document.getElementById(lo.gameContainerId); + new ro(window.sharedAppData).init(t); + } + })(); + }, + }); + \ No newline at end of file diff --git a/games/subway-surfers-ny/js/vendor.js b/games/subway-surfers-ny/js/vendor.js new file mode 100644 index 00000000..2564a86d --- /dev/null +++ b/games/subway-surfers-ny/js/vendor.js @@ -0,0 +1,28979 @@ +(this.webpackJsonp = this.webpackJsonp || []).push([ + [2], + [function(t, e, r) { + "use strict"; + r.r(e); + var n = {}; + r.r(n), r.d(n, "isMobile", function() { + return h.a + }), r.d(n, "EventEmitter", function() { + return l.a + }), r.d(n, "earcut", function() { + return d.a + }), r.d(n, "url", function() { + return m.a + }), r.d(n, "BaseTextureCache", function() { + return k + }), r.d(n, "CanvasRenderTarget", function() { + return L + }), r.d(n, "DATA_URI", function() { + return U + }), r.d(n, "ProgramCache", function() { + return D + }), r.d(n, "TextureCache", function() { + return F + }), r.d(n, "clearTextureCache", function() { + return clearTextureCache + }), r.d(n, "correctBlendMode", function() { + return correctBlendMode + }), r.d(n, "createIndicesForQuads", function() { + return createIndicesForQuads + }), r.d(n, "decomposeDataUri", function() { + return decomposeDataUri + }), r.d(n, "deprecation", function() { + return deprecation + }), r.d(n, "destroyTextureCache", function() { + return destroyTextureCache + }), r.d(n, "determineCrossOrigin", function() { + return determineCrossOrigin + }), r.d(n, "getResolutionOfUrl", function() { + return getResolutionOfUrl + }), r.d(n, "hex2rgb", function() { + return hex2rgb + }), r.d(n, "hex2string", function() { + return hex2string + }), r.d(n, "isPow2", function() { + return isPow2 + }), r.d(n, "isWebGLSupported", function() { + return isWebGLSupported + }), r.d(n, "log2", function() { + return log2 + }), r.d(n, "nextPow2", function() { + return nextPow2 + }), r.d(n, "premultiplyBlendMode", function() { + return C + }), r.d(n, "premultiplyRgba", function() { + return premultiplyRgba + }), r.d(n, "premultiplyTint", function() { + return premultiplyTint + }), r.d(n, "premultiplyTintToRgba", function() { + return premultiplyTintToRgba + }), r.d(n, "removeItems", function() { + return removeItems + }), r.d(n, "rgb2hex", function() { + return rgb2hex + }), r.d(n, "sayHello", function() { + return sayHello + }), r.d(n, "sign", function() { + return sign + }), r.d(n, "skipHello", function() { + return skipHello + }), r.d(n, "string2hex", function() { + return string2hex + }), r.d(n, "trimCanvas", function() { + return trimCanvas + }), r.d(n, "uid", function() { + return uid + }); + var i = {}; + r.r(i), r.d(i, "AccessibilityManager", function() { + return vt + }), r.d(i, "accessibleTarget", function() { + return mt + }); + var o = {}; + r.r(o), r.d(o, "Extract", function() { + return fr + }); + var a = {}; + r.r(a), r.d(a, "InteractionData", function() { + return dr + }), r.d(a, "InteractionEvent", function() { + return mr + }), r.d(a, "InteractionManager", function() { + return br + }), r.d(a, "InteractionTrackingData", function() { + return vr + }), r.d(a, "interactiveTarget", function() { + return yr + }); + var s = {}; + r.r(s), r.d(s, "BasePrepare", function() { + return $r + }), r.d(s, "CountLimiter", function() { + return Jr + }), r.d(s, "Prepare", function() { + return tn + }), r.d(s, "TimeLimiter", function() { + return en + }); + r(401); + var u = r(46), + h = r.n(u); + var M = { + MIPMAP_TEXTURES: 1, + RESOLUTION: 1, + FILTER_RESOLUTION: 1, + SPRITE_MAX_TEXTURES: function(t) { + var e = !0; + if (h.a.tablet || h.a.phone) { + if (e = !1, h.a.apple.device) { + var r = navigator.userAgent.match(/OS (\d+)_(\d+)?/); + r && 11 <= parseInt(r[1], 10) && (e = !0) + } + if (h.a.android.device) { + var n = navigator.userAgent.match(/Android\s([0-9.]*)/); + n && 7 <= parseInt(n[1], 10) && (e = !0) + } + } + return e ? t : 4 + }(32), + SPRITE_BATCH_SIZE: 4096, + RENDER_OPTIONS: { + view: null, + antialias: !1, + forceFXAA: !1, + autoResize: !1, + transparent: !1, + backgroundColor: 0, + clearBeforeRender: !0, + preserveDrawingBuffer: !1, + width: 800, + height: 600, + legacy: !1 + }, + GC_MODE: 0, + GC_MAX_IDLE: 3600, + GC_MAX_CHECK_COUNT: 600, + WRAP_MODE: 33071, + SCALE_MODE: 1, + PRECISION_VERTEX: "highp", + PRECISION_FRAGMENT: h.a.apple.device ? "highp" : "mediump", + CAN_UPLOAD_SAME_BUFFER: !h.a.apple.device, + CREATE_IMAGE_BITMAP: !0, + ROUND_PIXELS: !1 + }, + c = r(170), + l = r.n(c), + f = r(171), + d = r.n(f), + p = r(89), + m = r.n(p), + v = { + WEBGL_LEGACY: 0, + WEBGL: 1, + WEBGL2: 2 + }, + g = { + UNKNOWN: 0, + WEBGL: 1, + CANVAS: 2 + }, + y = { + NORMAL: 0, + ADD: 1, + MULTIPLY: 2, + SCREEN: 3, + OVERLAY: 4, + DARKEN: 5, + LIGHTEN: 6, + COLOR_DODGE: 7, + COLOR_BURN: 8, + HARD_LIGHT: 9, + SOFT_LIGHT: 10, + DIFFERENCE: 11, + EXCLUSION: 12, + HUE: 13, + SATURATION: 14, + COLOR: 15, + LUMINOSITY: 16, + NORMAL_NPM: 17, + ADD_NPM: 18, + SCREEN_NPM: 19, + NONE: 20, + SRC_OVER: 0, + SRC_IN: 21, + SRC_OUT: 22, + SRC_ATOP: 23, + DST_OVER: 24, + DST_IN: 25, + DST_OUT: 26, + DST_ATOP: 27, + ERASE: 26, + SUBTRACT: 28 + }, + x = { + POINTS: 0, + LINES: 1, + LINE_LOOP: 2, + LINE_STRIP: 3, + TRIANGLES: 4, + TRIANGLE_STRIP: 5, + TRIANGLE_FAN: 6 + }, + _ = { + RGBA: 6408, + RGB: 6407, + ALPHA: 6406, + LUMINANCE: 6409, + LUMINANCE_ALPHA: 6410, + DEPTH_COMPONENT: 6402, + DEPTH_STENCIL: 34041 + }, + b = { + TEXTURE_2D: 3553, + TEXTURE_CUBE_MAP: 34067, + TEXTURE_2D_ARRAY: 35866, + TEXTURE_CUBE_MAP_POSITIVE_X: 34069, + TEXTURE_CUBE_MAP_NEGATIVE_X: 34070, + TEXTURE_CUBE_MAP_POSITIVE_Y: 34071, + TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072, + TEXTURE_CUBE_MAP_POSITIVE_Z: 34073, + TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074 + }, + w = { + UNSIGNED_BYTE: 5121, + UNSIGNED_SHORT: 5123, + UNSIGNED_SHORT_5_6_5: 33635, + UNSIGNED_SHORT_4_4_4_4: 32819, + UNSIGNED_SHORT_5_5_5_1: 32820, + FLOAT: 5126, + HALF_FLOAT: 36193 + }, + T = { + LINEAR: 1, + NEAREST: 0 + }, + S = { + CLAMP: 33071, + REPEAT: 10497, + MIRRORED_REPEAT: 33648 + }, + E = { + OFF: 0, + POW2: 1, + ON: 2 + }, + A = { + AUTO: 0, + MANUAL: 1 + }, + P = { + LOW: "lowp", + MEDIUM: "mediump", + HIGH: "highp" + }, + I = !(M.RETINA_PREFIX = /@([0-9\.]+)x/), + O = "5.0.0-rc.3"; + + function skipHello() { + I = !0 + } + + function sayHello(t) { + if (!I) { + if (-1 < navigator.userAgent.toLowerCase().indexOf("chrome")) { + var e = ["\n %c %c %c PixiJS " + O + " - ✰ " + t + " ✰ %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ \n\n", "background: #ff66a5; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff66a5; background: #030307; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "background: #ffc3dc; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;"]; + window.console.log.apply(console, e) + } else window.console && window.console.log("PixiJS " + O + " - " + t + " - http://www.pixijs.com/"); + I = !0 + } + } + + function isWebGLSupported() { + var t = { + stencil: !0, + failIfMajorPerformanceCaveat: !0 + }; + try { + if (!window.WebGLRenderingContext) return !1; + var e = document.createElement("canvas"), + r = e.getContext("webgl", t) || e.getContext("experimental-webgl", t), + n = !(!r || !r.getContextAttributes().stencil); + if (r) { + var i = r.getExtension("WEBGL_lose_context"); + i && i.loseContext() + } + return r = null, n + } catch (t) { + return !1 + } + } + + function hex2rgb(t, e) { + return (e = e || [])[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255, e + } + + function hex2string(t) { + return t = t.toString(16), "#" + (t = "000000".substr(0, 6 - t.length) + t) + } + + function string2hex(t) { + return "string" == typeof t && "#" === t[0] && (t = t.substr(1)), parseInt(t, 16) + } + + function rgb2hex(t) { + return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0) + } + var C = function() { + for (var t = [], e = [], r = 0; r < 32; r++) e[t[r] = r] = r; + t[y.NORMAL_NPM] = y.NORMAL, t[y.ADD_NPM] = y.ADD, t[y.SCREEN_NPM] = y.SCREEN, e[y.NORMAL] = y.NORMAL_NPM, e[y.ADD] = y.ADD_NPM, e[y.SCREEN] = y.SCREEN_NPM; + var n = []; + return n.push(e), n.push(t), n + }(); + + function correctBlendMode(t, e) { + return C[e ? 1 : 0][t] + } + + function premultiplyRgba(t, e, r, n) { + return (r = r || new Float32Array(4))[2] = n || void 0 === n ? (r[0] = t[0] * e, r[1] = t[1] * e, t[2] * e) : (r[0] = t[0], r[1] = t[1], t[2]), r[3] = e, r + } + + function premultiplyTint(t, e) { + if (1 === e) return (255 * e << 24) + t; + if (0 === e) return 0; + var r = t >> 16 & 255, + n = t >> 8 & 255, + i = 255 & t; + return (255 * e << 24) + ((r = r * e + .5 | 0) << 16) + ((n = n * e + .5 | 0) << 8) + (i = i * e + .5 | 0) + } + + function premultiplyTintToRgba(t, e, r, n) { + return (r = r || new Float32Array(4))[0] = (t >> 16 & 255) / 255, r[1] = (t >> 8 & 255) / 255, r[2] = (255 & t) / 255, (n || void 0 === n) && (r[0] *= e, r[1] *= e, r[2] *= e), r[3] = e, r + } + + function createIndicesForQuads(t) { + for (var e = 6 * t, r = new Uint16Array(e), n = 0, i = 0; n < e; n += 6, i += 4) r[n + 0] = i + 0, r[n + 1] = i + 1, r[n + 2] = i + 2, r[n + 3] = i + 0, r[n + 4] = i + 2, r[n + 5] = i + 3; + return r + } + + function removeItems(t, e, r) { + var n, i = t.length; + if (!(i <= e || 0 === r)) { + var o = i - (r = i < e + r ? i - e : r); + for (n = e; n < o; ++n) t[n] = t[n + r]; + t.length = o + } + } + var R = 0; + + function uid() { + return ++R + } + + function sign(t) { + return 0 === t ? 0 : t < 0 ? -1 : 1 + } + + function nextPow2(t) { + return t += 0 === t, --t, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, (t |= t >>> 16) + 1 + } + + function isPow2(t) { + return !(t & t - 1 || !t) + } + + function log2(t) { + var e = (65535 < t) << 4, + r = (255 < (t >>>= e)) << 3; + return e |= r, e |= r = (15 < (t >>>= r)) << 2, (e |= r = (3 < (t >>>= r)) << 1) | (t >>>= r) >> 1 + } + var D = {}, + F = Object.create(null), + k = Object.create(null); + + function destroyTextureCache() { + var t; + for (t in F) F[t].destroy(); + for (t in k) k[t].destroy() + } + + function clearTextureCache() { + var t; + for (t in F) delete F[t]; + for (t in k) delete k[t] + } + + function trimCanvas(t) { + var e, r, n, i = t.width, + o = t.height, + a = t.getContext("2d"), + s = a.getImageData(0, 0, i, o).data, + u = s.length, + h = { + top: null, + left: null, + right: null, + bottom: null + }, + c = null; + for (e = 0; e < u; e += 4) 0 !== s[e + 3] && (r = e / 4 % i, n = ~~(e / 4 / i), null === h.top && (h.top = n), null === h.left ? h.left = r : r < h.left && (h.left = r), null === h.right ? h.right = r + 1 : h.right < r && (h.right = r + 1), null === h.bottom ? h.bottom = n : h.bottom < n && (h.bottom = n)); + return null !== h.top && (i = h.right - h.left, o = h.bottom - h.top + 1, c = a.getImageData(h.left, h.top, i, o)), { + height: o, + width: i, + data: c + } + } + var L = function(t, e, r) { + this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = r || M.RESOLUTION, this.resize(t, e) + }, + N = { + width: { + configurable: !0 + }, + height: { + configurable: !0 + } + }; + L.prototype.clear = function() { + this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.canvas.width, this.canvas.height) + }, L.prototype.resize = function(t, e) { + this.canvas.width = t * this.resolution, this.canvas.height = e * this.resolution + }, L.prototype.destroy = function() { + this.context = null, this.canvas = null + }, N.width.get = function() { + return this.canvas.width + }, N.width.set = function(t) { + this.canvas.width = t + }, N.height.get = function() { + return this.canvas.height + }, N.height.set = function(t) { + this.canvas.height = t + }, Object.defineProperties(L.prototype, N); + var B, U = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i; + + function decomposeDataUri(t) { + var e = U.exec(t); + if (e) return { + mediaType: e[1] ? e[1].toLowerCase() : void 0, + subType: e[2] ? e[2].toLowerCase() : void 0, + charset: e[3] ? e[3].toLowerCase() : void 0, + encoding: e[4] ? e[4].toLowerCase() : void 0, + data: e[5] + } + } + + function determineCrossOrigin(t, e) { + if (void 0 === e && (e = window.location), 0 === t.indexOf("data:")) return ""; + e = e || window.location, B || (B = document.createElement("a")), B.href = t; + var r = !(t = m.a.parse(B.href)).port && "" === e.port || t.port === e.port; + return t.hostname === e.hostname && r && t.protocol === e.protocol ? "" : "anonymous" + } + + function getResolutionOfUrl(t, e) { + var r = M.RETINA_PREFIX.exec(t); + return r ? parseFloat(r[1]) : void 0 !== e ? e : 1 + } + var G = {}; + + function deprecation(t, e, r) { + if (void 0 === r && (r = 3), !G[e]) { + var n = (new Error).stack; + void 0 === n || (n = n.split("\n").splice(r).join("\n"), console.groupCollapsed), G[e] = !0 + } + } + var q = function(t, e) { + void 0 === t && (t = 0), void 0 === e && (e = 0), this.x = t, this.y = e + }; + q.prototype.clone = function() { + return new q(this.x, this.y) + }, q.prototype.copyFrom = function(t) { + return this.set(t.x, t.y), this + }, q.prototype.copyTo = function(t) { + return t.set(this.x, this.y), t + }, q.prototype.equals = function(t) { + return t.x === this.x && t.y === this.y + }, q.prototype.set = function(t, e) { + this.x = t || 0, this.y = e || (0 !== e ? this.x : 0) + }; + var j = function(t, e, r, n) { + void 0 === r && (r = 0), void 0 === n && (n = 0), this._x = r, this._y = n, this.cb = t, this.scope = e + }, + z = { + x: { + configurable: !0 + }, + y: { + configurable: !0 + } + }; + j.prototype.clone = function(t, e) { + void 0 === t && (t = null), void 0 === e && (e = null); + var r = t || this.cb, + n = e || this.scope; + return new j(r, n, this._x, this._y) + }, j.prototype.set = function(t, e) { + var r = t || 0, + n = e || (0 !== e ? r : 0); + this._x === r && this._y === n || (this._x = r, this._y = n, this.cb.call(this.scope)) + }, j.prototype.copyFrom = function(t) { + return this._x === t.x && this._y === t.y || (this._x = t.x, this._y = t.y, this.cb.call(this.scope)), this + }, j.prototype.copyTo = function(t) { + return t.set(this._x, this._y), t + }, j.prototype.equals = function(t) { + return t.x === this._x && t.y === this._y + }, z.x.get = function() { + return this._x + }, z.x.set = function(t) { + this._x !== t && (this._x = t, this.cb.call(this.scope)) + }, z.y.get = function() { + return this._y + }, z.y.set = function(t) { + this._y !== t && (this._y = t, this.cb.call(this.scope)) + }, Object.defineProperties(j.prototype, z); + var X = 2 * Math.PI, + V = 180 / Math.PI, + H = Math.PI / 180, + W = { + POLY: 0, + RECT: 1, + CIRC: 2, + ELIP: 3, + RREC: 4 + }, + Y = function(t, e, r, n, i, o) { + void 0 === t && (t = 1), void 0 === e && (e = 0), void 0 === r && (r = 0), void 0 === n && (n = 1), void 0 === i && (i = 0), void 0 === o && (o = 0), this.a = t, this.b = e, this.c = r, this.d = n, this.tx = i, this.ty = o, this.array = null + }, + K = { + IDENTITY: { + configurable: !0 + }, + TEMP_MATRIX: { + configurable: !0 + } + }; + Y.prototype.fromArray = function(t) { + this.a = t[0], this.b = t[1], this.c = t[3], this.d = t[4], this.tx = t[2], this.ty = t[5] + }, Y.prototype.set = function(t, e, r, n, i, o) { + return this.a = t, this.b = e, this.c = r, this.d = n, this.tx = i, this.ty = o, this + }, Y.prototype.toArray = function(t, e) { + this.array || (this.array = new Float32Array(9)); + var r = e || this.array; + return r[8] = (r[7] = t ? (r[0] = this.a, r[1] = this.b, r[2] = 0, r[3] = this.c, r[4] = this.d, r[5] = 0, r[6] = this.tx, this.ty) : (r[0] = this.a, r[1] = this.c, r[2] = this.tx, r[3] = this.b, r[4] = this.d, r[5] = this.ty, r[6] = 0), 1), r + }, Y.prototype.apply = function(t, e) { + e = e || new q; + var r = t.x, + n = t.y; + return e.x = this.a * r + this.c * n + this.tx, e.y = this.b * r + this.d * n + this.ty, e + }, Y.prototype.applyInverse = function(t, e) { + e = e || new q; + var r = 1 / (this.a * this.d + this.c * -this.b), + n = t.x, + i = t.y; + return e.x = this.d * r * n + -this.c * r * i + (this.ty * this.c - this.tx * this.d) * r, e.y = this.a * r * i + -this.b * r * n + (-this.ty * this.a + this.tx * this.b) * r, e + }, Y.prototype.translate = function(t, e) { + return this.tx += t, this.ty += e, this + }, Y.prototype.scale = function(t, e) { + return this.a *= t, this.d *= e, this.c *= t, this.b *= e, this.tx *= t, this.ty *= e, this + }, Y.prototype.rotate = function(t) { + var e = Math.cos(t), + r = Math.sin(t), + n = this.a, + i = this.c, + o = this.tx; + return this.a = n * e - this.b * r, this.b = n * r + this.b * e, this.c = i * e - this.d * r, this.d = i * r + this.d * e, this.tx = o * e - this.ty * r, this.ty = o * r + this.ty * e, this + }, Y.prototype.append = function(t) { + var e = this.a, + r = this.b, + n = this.c, + i = this.d; + return this.a = t.a * e + t.b * n, this.b = t.a * r + t.b * i, this.c = t.c * e + t.d * n, this.d = t.c * r + t.d * i, this.tx = t.tx * e + t.ty * n + this.tx, this.ty = t.tx * r + t.ty * i + this.ty, this + }, Y.prototype.setTransform = function(t, e, r, n, i, o, a, s, u) { + return this.a = Math.cos(a + u) * i, this.b = Math.sin(a + u) * i, this.c = -Math.sin(a - s) * o, this.d = Math.cos(a - s) * o, this.tx = t - (r * this.a + n * this.c), this.ty = e - (r * this.b + n * this.d), this + }, Y.prototype.prepend = function(t) { + var e = this.tx; + if (1 !== t.a || 0 !== t.b || 0 !== t.c || 1 !== t.d) { + var r = this.a, + n = this.c; + this.a = r * t.a + this.b * t.c, this.b = r * t.b + this.b * t.d, this.c = n * t.a + this.d * t.c, this.d = n * t.b + this.d * t.d + } + return this.tx = e * t.a + this.ty * t.c + t.tx, this.ty = e * t.b + this.ty * t.d + t.ty, this + }, Y.prototype.decompose = function(t) { + var e = this.a, + r = this.b, + n = this.c, + i = this.d, + o = -Math.atan2(-n, i), + a = Math.atan2(r, e), + s = Math.abs(o + a); + return s < 1e-5 || Math.abs(X - s) < 1e-5 ? (t.rotation = a, t.skew.x = t.skew.y = 0) : (t.rotation = 0, t.skew.x = o, t.skew.y = a), t.scale.x = Math.sqrt(e * e + r * r), t.scale.y = Math.sqrt(n * n + i * i), t.position.x = this.tx, t.position.y = this.ty, t + }, Y.prototype.invert = function() { + var t = this.a, + e = this.b, + r = this.c, + n = this.d, + i = this.tx, + o = t * n - e * r; + return this.a = n / o, this.b = -e / o, this.c = -r / o, this.d = t / o, this.tx = (r * this.ty - n * i) / o, this.ty = -(t * this.ty - e * i) / o, this + }, Y.prototype.identity = function() { + return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this + }, Y.prototype.clone = function() { + var t = new Y; + return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t + }, Y.prototype.copyTo = function(t) { + return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t + }, Y.prototype.copyFrom = function(t) { + return this.a = t.a, this.b = t.b, this.c = t.c, this.d = t.d, this.tx = t.tx, this.ty = t.ty, this + }, K.IDENTITY.get = function() { + return new Y + }, K.TEMP_MATRIX.get = function() { + return new Y + }, Object.defineProperties(Y, K); + var Z = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1], + Q = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1], + J = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1], + $ = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1], + tt = [], + et = []; + + function signum(t) { + return t < 0 ? -1 : 0 < t ? 1 : 0 + }! function() { + for (var t = 0; t < 16; t++) { + var e = []; + et.push(e); + for (var r = 0; r < 16; r++) + for (var n = signum(Z[t] * Z[r] + J[t] * Q[r]), i = signum(Q[t] * Z[r] + $[t] * Q[r]), o = signum(Z[t] * J[r] + J[t] * $[r]), a = signum(Q[t] * J[r] + $[t] * $[r]), s = 0; s < 16; s++) + if (Z[s] === n && Q[s] === i && J[s] === o && $[s] === a) { + e.push(s); + break + } + } + for (var u = 0; u < 16; u++) { + var h = new Y; + h.set(Z[u], Q[u], J[u], $[u], 0, 0), tt.push(h) + } + }(); + var rt = { + E: 0, + SE: 1, + S: 2, + SW: 3, + W: 4, + NW: 5, + N: 6, + NE: 7, + MIRROR_VERTICAL: 8, + MIRROR_HORIZONTAL: 12, + uX: function(t) { + return Z[t] + }, + uY: function(t) { + return Q[t] + }, + vX: function(t) { + return J[t] + }, + vY: function(t) { + return $[t] + }, + inv: function(t) { + return 8 & t ? 15 & t : 7 & -t + }, + add: function(t, e) { + return et[t][e] + }, + sub: function(t, e) { + return et[t][rt.inv(e)] + }, + rotate180: function(t) { + return 4 ^ t + }, + isVertical: function(t) { + return 2 == (3 & t) + }, + byDirection: function(t, e) { + return 2 * Math.abs(t) <= Math.abs(e) ? 0 <= e ? rt.S : rt.N : 2 * Math.abs(e) <= Math.abs(t) ? 0 < t ? rt.E : rt.W : 0 < e ? 0 < t ? rt.SE : rt.SW : 0 < t ? rt.NE : rt.NW + }, + matrixAppendRotationInv: function(t, e, r, n) { + void 0 === r && (r = 0), void 0 === n && (n = 0); + var i = tt[rt.inv(e)]; + i.tx = r, i.ty = n, t.append(i) + } + }, + nt = function() { + this.worldTransform = new Y, this.localTransform = new Y, this.position = new j(this.onChange, this, 0, 0), this.scale = new j(this.onChange, this, 1, 1), this.pivot = new j(this.onChange, this, 0, 0), this.skew = new j(this.updateSkew, this, 0, 0), this._rotation = 0, this._cx = 1, this._sx = 0, this._cy = 0, this._sy = 1, this._localID = 0, this._currentLocalID = 0, this._worldID = 0, this._parentID = 0 + }, + it = { + rotation: { + configurable: !0 + } + }; + nt.prototype.onChange = function() { + this._localID++ + }, nt.prototype.updateSkew = function() { + this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x), this._localID++ + }, nt.prototype.updateLocalTransform = function() { + var t = this.localTransform; + this._localID !== this._currentLocalID && (t.a = this._cx * this.scale._x, t.b = this._sx * this.scale._x, t.c = this._cy * this.scale._y, t.d = this._sy * this.scale._y, t.tx = this.position._x - (this.pivot._x * t.a + this.pivot._y * t.c), t.ty = this.position._y - (this.pivot._x * t.b + this.pivot._y * t.d), this._currentLocalID = this._localID, this._parentID = -1) + }, nt.prototype.updateTransform = function(t) { + var e = this.localTransform; + if (this._localID !== this._currentLocalID && (e.a = this._cx * this.scale._x, e.b = this._sx * this.scale._x, e.c = this._cy * this.scale._y, e.d = this._sy * this.scale._y, e.tx = this.position._x - (this.pivot._x * e.a + this.pivot._y * e.c), e.ty = this.position._y - (this.pivot._x * e.b + this.pivot._y * e.d), this._currentLocalID = this._localID, this._parentID = -1), this._parentID !== t._worldID) { + var r = t.worldTransform, + n = this.worldTransform; + n.a = e.a * r.a + e.b * r.c, n.b = e.a * r.b + e.b * r.d, n.c = e.c * r.a + e.d * r.c, n.d = e.c * r.b + e.d * r.d, n.tx = e.tx * r.a + e.ty * r.c + r.tx, n.ty = e.tx * r.b + e.ty * r.d + r.ty, this._parentID = t._worldID, this._worldID++ + } + }, nt.prototype.setFromMatrix = function(t) { + t.decompose(this), this._localID++ + }, it.rotation.get = function() { + return this._rotation + }, it.rotation.set = function(t) { + this._rotation !== t && (this._rotation = t, this.updateSkew()) + }, Object.defineProperties(nt.prototype, it), nt.IDENTITY = new nt; + var ot = function(t, e, r, n) { + void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === r && (r = 0), void 0 === n && (n = 0), this.x = Number(t), this.y = Number(e), this.width = Number(r), this.height = Number(n), this.type = W.RECT + }, + at = { + left: { + configurable: !0 + }, + right: { + configurable: !0 + }, + top: { + configurable: !0 + }, + bottom: { + configurable: !0 + } + }, + st = { + EMPTY: { + configurable: !0 + } + }; + at.left.get = function() { + return this.x + }, at.right.get = function() { + return this.x + this.width + }, at.top.get = function() { + return this.y + }, at.bottom.get = function() { + return this.y + this.height + }, st.EMPTY.get = function() { + return new ot(0, 0, 0, 0) + }, ot.prototype.clone = function() { + return new ot(this.x, this.y, this.width, this.height) + }, ot.prototype.copyFrom = function(t) { + return this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height, this + }, ot.prototype.copyTo = function(t) { + return t.x = this.x, t.y = this.y, t.width = this.width, t.height = this.height, t + }, ot.prototype.contains = function(t, e) { + return !(this.width <= 0 || this.height <= 0) && (t >= this.x && t < this.x + this.width && e >= this.y && e < this.y + this.height) + }, ot.prototype.pad = function(t, e) { + t = t || 0, e = e || (0 !== e ? t : 0), this.x -= t, this.y -= e, this.width += 2 * t, this.height += 2 * e + }, ot.prototype.fit = function(t) { + var e = Math.max(this.x, t.x), + r = Math.min(this.x + this.width, t.x + t.width), + n = Math.max(this.y, t.y), + i = Math.min(this.y + this.height, t.y + t.height); + this.x = e, this.width = Math.max(r - e, 0), this.y = n, this.height = Math.max(i - n, 0) + }, ot.prototype.ceil = function(t, e) { + void 0 === t && (t = 1), void 0 === e && (e = .001); + var r = Math.ceil((this.x + this.width - e) * t) / t, + n = Math.ceil((this.y + this.height - e) * t) / t; + this.x = Math.floor((this.x + e) * t) / t, this.y = Math.floor((this.y + e) * t) / t, this.width = r - this.x, this.height = n - this.y + }, ot.prototype.enlarge = function(t) { + var e = Math.min(this.x, t.x), + r = Math.max(this.x + this.width, t.x + t.width), + n = Math.min(this.y, t.y), + i = Math.max(this.y + this.height, t.y + t.height); + this.x = e, this.width = r - e, this.y = n, this.height = i - n + }, Object.defineProperties(ot.prototype, at), Object.defineProperties(ot, st); + var ut = function(t, e, r) { + void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === r && (r = 0), this.x = t, this.y = e, this.radius = r, this.type = W.CIRC + }; + ut.prototype.clone = function() { + return new ut(this.x, this.y, this.radius) + }, ut.prototype.contains = function(t, e) { + if (this.radius <= 0) return !1; + var r = this.radius * this.radius, + n = this.x - t, + i = this.y - e; + return (n *= n) + (i *= i) <= r + }, ut.prototype.getBounds = function() { + return new ot(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius) + }; + var ht = function(t, e, r, n) { + void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === r && (r = 0), void 0 === n && (n = 0), this.x = t, this.y = e, this.width = r, this.height = n, this.type = W.ELIP + }; + ht.prototype.clone = function() { + return new ht(this.x, this.y, this.width, this.height) + }, ht.prototype.contains = function(t, e) { + if (this.width <= 0 || this.height <= 0) return !1; + var r = (t - this.x) / this.width, + n = (e - this.y) / this.height; + return (r *= r) + (n *= n) <= 1 + }, ht.prototype.getBounds = function() { + return new ot(this.x - this.width, this.y - this.height, this.width, this.height) + }; + var ct = function() { + for (var t = [], e = arguments.length; e--;) t[e] = arguments[e]; + if (Array.isArray(t[0]) && (t = t[0]), t[0] instanceof q) { + for (var r = [], n = 0, i = t.length; n < i; n++) r.push(t[n].x, t[n].y); + t = r + } + this.points = t, this.type = W.POLY, this.closeStroke = !0 + }; + ct.prototype.clone = function() { + var t = new ct(this.points.slice()); + return t.closeStroke = this.closeStroke, t + }, ct.prototype.contains = function(t, e) { + for (var r = !1, n = this.points.length / 2, i = 0, o = n - 1; i < n; o = i++) { + var a = this.points[2 * i], + s = this.points[2 * i + 1], + u = this.points[2 * o], + h = this.points[2 * o + 1]; + e < s != e < h && t < (e - s) / (h - s) * (u - a) + a && (r = !r) + } + return r + }; + var lt = function(t, e, r, n, i) { + void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === r && (r = 0), void 0 === n && (n = 0), void 0 === i && (i = 20), this.x = t, this.y = e, this.width = r, this.height = n, this.radius = i, this.type = W.RREC + }; + lt.prototype.clone = function() { + return new lt(this.x, this.y, this.width, this.height, this.radius) + }, lt.prototype.contains = function(t, e) { + if (this.width <= 0 || this.height <= 0) return !1; + if (t >= this.x && t <= this.x + this.width && e >= this.y && e <= this.y + this.height) { + if (e >= this.y + this.radius && e <= this.y + this.height - this.radius || t >= this.x + this.radius && t <= this.x + this.width - this.radius) return !0; + var r = t - (this.x + this.radius), + n = e - (this.y + this.radius), + i = this.radius * this.radius; + if (r * r + n * n <= i) return !0; + if ((r = t - (this.x + this.width - this.radius)) * r + n * n <= i) return !0; + if (r * r + (n = e - (this.y + this.height - this.radius)) * n <= i) return !0; + if ((r = t - (this.x + this.radius)) * r + n * n <= i) return !0 + } + return !1 + }, M.SORTABLE_CHILDREN = !1; + var ft = function() { + this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null + }; + ft.prototype.isEmpty = function() { + return this.minX > this.maxX || this.minY > this.maxY + }, ft.prototype.clear = function() { + this.updateID++, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0 + }, ft.prototype.getRectangle = function(t) { + return this.minX > this.maxX || this.minY > this.maxY ? ot.EMPTY : ((t = t || new ot(0, 0, 1, 1)).x = this.minX, t.y = this.minY, t.width = this.maxX - this.minX, t.height = this.maxY - this.minY, t) + }, ft.prototype.addPoint = function(t) { + this.minX = Math.min(this.minX, t.x), this.maxX = Math.max(this.maxX, t.x), this.minY = Math.min(this.minY, t.y), this.maxY = Math.max(this.maxY, t.y) + }, ft.prototype.addQuad = function(t) { + var e = this.minX, + r = this.minY, + n = this.maxX, + i = this.maxY, + o = t[0], + a = t[1]; + e = o < e ? o : e, r = a < r ? a : r, n = n < o ? o : n, i = i < a ? a : i, e = (o = t[2]) < e ? o : e, r = (a = t[3]) < r ? a : r, n = n < o ? o : n, i = i < a ? a : i, e = (o = t[4]) < e ? o : e, r = (a = t[5]) < r ? a : r, n = n < o ? o : n, i = i < a ? a : i, e = (o = t[6]) < e ? o : e, r = (a = t[7]) < r ? a : r, n = n < o ? o : n, i = i < a ? a : i, this.minX = e, this.minY = r, this.maxX = n, this.maxY = i + }, ft.prototype.addFrame = function(t, e, r, n, i) { + var o = t.worldTransform, + a = o.a, + s = o.b, + u = o.c, + h = o.d, + c = o.tx, + l = o.ty, + f = this.minX, + d = this.minY, + p = this.maxX, + m = this.maxY, + v = a * e + u * r + c, + g = s * e + h * r + l; + f = v < f ? v : f, d = g < d ? g : d, p = p < v ? v : p, m = m < g ? g : m, f = (v = a * n + u * r + c) < f ? v : f, d = (g = s * n + h * r + l) < d ? g : d, p = p < v ? v : p, m = m < g ? g : m, f = (v = a * e + u * i + c) < f ? v : f, d = (g = s * e + h * i + l) < d ? g : d, p = p < v ? v : p, m = m < g ? g : m, f = (v = a * n + u * i + c) < f ? v : f, d = (g = s * n + h * i + l) < d ? g : d, p = p < v ? v : p, m = m < g ? g : m, this.minX = f, this.minY = d, this.maxX = p, this.maxY = m + }, ft.prototype.addVertexData = function(t, e, r) { + for (var n = this.minX, i = this.minY, o = this.maxX, a = this.maxY, s = e; s < r; s += 2) { + var u = t[s], + h = t[s + 1]; + n = u < n ? u : n, i = h < i ? h : i, o = o < u ? u : o, a = a < h ? h : a + } + this.minX = n, this.minY = i, this.maxX = o, this.maxY = a + }, ft.prototype.addVertices = function(t, e, r, n) { + for (var i = t.worldTransform, o = i.a, a = i.b, s = i.c, u = i.d, h = i.tx, c = i.ty, l = this.minX, f = this.minY, d = this.maxX, p = this.maxY, m = r; m < n; m += 2) { + var v = e[m], + g = e[m + 1], + y = o * v + s * g + h, + _ = u * g + a * v + c; + l = y < l ? y : l, f = _ < f ? _ : f, d = d < y ? y : d, p = p < _ ? _ : p + } + this.minX = l, this.minY = f, this.maxX = d, this.maxY = p + }, ft.prototype.addBounds = function(t) { + var e = this.minX, + r = this.minY, + n = this.maxX, + i = this.maxY; + this.minX = t.minX < e ? t.minX : e, this.minY = t.minY < r ? t.minY : r, this.maxX = t.maxX > n ? t.maxX : n, this.maxY = t.maxY > i ? t.maxY : i + }, ft.prototype.addBoundsMask = function(t, e) { + var r = t.minX > e.minX ? t.minX : e.minX, + n = t.minY > e.minY ? t.minY : e.minY, + i = t.maxX < e.maxX ? t.maxX : e.maxX, + o = t.maxY < e.maxY ? t.maxY : e.maxY; + if (r <= i && n <= o) { + var a = this.minX, + s = this.minY, + u = this.maxX, + h = this.maxY; + this.minX = r < a ? r : a, this.minY = n < s ? n : s, this.maxX = u < i ? i : u, this.maxY = h < o ? o : h + } + }, ft.prototype.addBoundsArea = function(t, e) { + var r = t.minX > e.x ? t.minX : e.x, + n = t.minY > e.y ? t.minY : e.y, + i = t.maxX < e.x + e.width ? t.maxX : e.x + e.width, + o = t.maxY < e.y + e.height ? t.maxY : e.y + e.height; + if (r <= i && n <= o) { + var a = this.minX, + s = this.minY, + u = this.maxX, + h = this.maxY; + this.minX = r < a ? r : a, this.minY = n < s ? n : s, this.maxX = u < i ? i : u, this.maxY = h < o ? o : h + } + }; + var dt = function(t) { + function DisplayObject() { + t.call(this), this.tempDisplayObjectParent = null, this.transform = new nt, this.alpha = 1, this.visible = !0, this.renderable = !0, this.parent = null, this.worldAlpha = 1, this._lastSortedIndex = 0, this._zIndex = 0, this.filterArea = null, this.filters = null, this._enabledFilters = null, this._bounds = new ft, this._boundsID = 0, this._lastBoundsID = -1, this._boundsRect = null, this._localBoundsRect = null, this._mask = null, this._destroyed = !1, this.isSprite = !1 + } + t && (DisplayObject.__proto__ = t); + var e = { + _tempDisplayObjectParent: { + configurable: !0 + }, + x: { + configurable: !0 + }, + y: { + configurable: !0 + }, + worldTransform: { + configurable: !0 + }, + localTransform: { + configurable: !0 + }, + position: { + configurable: !0 + }, + scale: { + configurable: !0 + }, + pivot: { + configurable: !0 + }, + skew: { + configurable: !0 + }, + rotation: { + configurable: !0 + }, + angle: { + configurable: !0 + }, + zIndex: { + configurable: !0 + }, + worldVisible: { + configurable: !0 + }, + mask: { + configurable: !0 + } + }; + return ((DisplayObject.prototype = Object.create(t && t.prototype)).constructor = DisplayObject).mixin = function(t) { + for (var e = Object.keys(t), r = 0; r < e.length; ++r) { + var n = e[r]; + Object.defineProperty(DisplayObject.prototype, n, Object.getOwnPropertyDescriptor(t, n)) + } + }, e._tempDisplayObjectParent.get = function() { + return null === this.tempDisplayObjectParent && (this.tempDisplayObjectParent = new DisplayObject), this.tempDisplayObjectParent + }, DisplayObject.prototype.updateTransform = function() { + this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha, this._bounds.updateID++ + }, DisplayObject.prototype._recursivePostUpdateTransform = function() { + this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform) + }, DisplayObject.prototype.getBounds = function(t, e) { + return t || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._boundsID !== this._lastBoundsID && this.calculateBounds(), e || (this._boundsRect || (this._boundsRect = new ot), e = this._boundsRect), this._bounds.getRectangle(e) + }, DisplayObject.prototype.getLocalBounds = function(t) { + var e = this.transform, + r = this.parent; + this.parent = null, this.transform = this._tempDisplayObjectParent.transform, t || (this._localBoundsRect || (this._localBoundsRect = new ot), t = this._localBoundsRect); + var n = this.getBounds(!1, t); + return this.parent = r, this.transform = e, n + }, DisplayObject.prototype.toGlobal = function(t, e, r) { + return void 0 === r && (r = !1), r || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(t, e) + }, DisplayObject.prototype.toLocal = function(t, e, r, n) { + return e && (t = e.toGlobal(t, r, n)), n || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(t, r) + }, DisplayObject.prototype.render = function(t) {}, DisplayObject.prototype.setParent = function(t) { + if (!t || !t.addChild) throw new Error("setParent: Argument must be a Container"); + return t.addChild(this), t + }, DisplayObject.prototype.setTransform = function(t, e, r, n, i, o, a, s, u) { + return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === r && (r = 1), void 0 === n && (n = 1), void 0 === i && (i = 0), void 0 === o && (o = 0), void 0 === a && (a = 0), void 0 === s && (s = 0), void 0 === u && (u = 0), this.position.x = t, this.position.y = e, this.scale.x = r || 1, this.scale.y = n || 1, this.rotation = i, this.skew.x = o, this.skew.y = a, this.pivot.x = s, this.pivot.y = u, this + }, DisplayObject.prototype.destroy = function() { + this.removeAllListeners(), this.parent && this.parent.removeChild(this), this.transform = null, this.parent = null, this._bounds = null, this._currentBounds = null, this._mask = null, this.filterArea = null, this.interactive = !1, this.interactiveChildren = !1, this._destroyed = !0 + }, e.x.get = function() { + return this.position.x + }, e.x.set = function(t) { + this.transform.position.x = t + }, e.y.get = function() { + return this.position.y + }, e.y.set = function(t) { + this.transform.position.y = t + }, e.worldTransform.get = function() { + return this.transform.worldTransform + }, e.localTransform.get = function() { + return this.transform.localTransform + }, e.position.get = function() { + return this.transform.position + }, e.position.set = function(t) { + this.transform.position.copyFrom(t) + }, e.scale.get = function() { + return this.transform.scale + }, e.scale.set = function(t) { + this.transform.scale.copyFrom(t) + }, e.pivot.get = function() { + return this.transform.pivot + }, e.pivot.set = function(t) { + this.transform.pivot.copyFrom(t) + }, e.skew.get = function() { + return this.transform.skew + }, e.skew.set = function(t) { + this.transform.skew.copyFrom(t) + }, e.rotation.get = function() { + return this.transform.rotation + }, e.rotation.set = function(t) { + this.transform.rotation = t + }, e.angle.get = function() { + return this.transform.rotation * V + }, e.angle.set = function(t) { + this.transform.rotation = t * H + }, e.zIndex.get = function() { + return this._zIndex + }, e.zIndex.set = function(t) { + this._zIndex = t, this.parent && (this.parent.sortDirty = !0) + }, e.worldVisible.get = function() { + var t = this; + do { + if (!t.visible) return !1; + t = t.parent + } while (t); + return !0 + }, e.mask.get = function() { + return this._mask + }, e.mask.set = function(t) { + this._mask && (this._mask.renderable = !0, this._mask.isMask = !1), this._mask = t, this._mask && (this._mask.renderable = !1, this._mask.isMask = !0) + }, Object.defineProperties(DisplayObject.prototype, e), DisplayObject + }(l.a); + + function sortChildren(t, e) { + return t.zIndex === e.zIndex ? t._lastSortedIndex - e._lastSortedIndex : t.zIndex - e.zIndex + } + dt.prototype.displayObjectUpdateTransform = dt.prototype.updateTransform; + var pt = function(i) { + function Container() { + i.call(this), this.children = [], this.sortableChildren = M.SORTABLE_CHILDREN, this.sortDirty = !1 + } + i && (Container.__proto__ = i); + var t = { + width: { + configurable: !0 + }, + height: { + configurable: !0 + } + }; + return ((Container.prototype = Object.create(i && i.prototype)).constructor = Container).prototype.onChildrenChange = function() {}, Container.prototype.addChild = function(t) { + var e = arguments, + r = arguments.length; + if (1 < r) + for (var n = 0; n < r; n++) this.addChild(e[n]); + else t.parent && t.parent.removeChild(t), (t.parent = this).sortDirty = !0, t.transform._parentID = -1, this.children.push(t), this._boundsID++, this.onChildrenChange(this.children.length - 1), this.emit("childAdded", t, this, this.children.length - 1), t.emit("added", this); + return t + }, Container.prototype.addChildAt = function(t, e) { + if (e < 0 || e > this.children.length) throw new Error(t + "addChildAt: The index " + e + " supplied is out of bounds " + this.children.length); + return t.parent && t.parent.removeChild(t), (t.parent = this).sortDirty = !0, t.transform._parentID = -1, this.children.splice(e, 0, t), this._boundsID++, this.onChildrenChange(e), t.emit("added", this), this.emit("childAdded", t, this, e), t + }, Container.prototype.swapChildren = function(t, e) { + if (t !== e) { + var r = this.getChildIndex(t), + n = this.getChildIndex(e); + this.children[r] = e, this.children[n] = t, this.onChildrenChange(r < n ? r : n) + } + }, Container.prototype.getChildIndex = function(t) { + var e = this.children.indexOf(t); + if (-1 === e) throw new Error("The supplied DisplayObject must be a child of the caller"); + return e + }, Container.prototype.setChildIndex = function(t, e) { + if (e < 0 || e >= this.children.length) throw new Error("The index " + e + " supplied is out of bounds " + this.children.length); + var r = this.getChildIndex(t); + removeItems(this.children, r, 1), this.children.splice(e, 0, t), this.onChildrenChange(e) + }, Container.prototype.getChildAt = function(t) { + if (t < 0 || t >= this.children.length) throw new Error("getChildAt: Index (" + t + ") does not exist."); + return this.children[t] + }, Container.prototype.removeChild = function(t) { + var e = arguments, + r = arguments.length; + if (1 < r) + for (var n = 0; n < r; n++) this.removeChild(e[n]); + else { + var i = this.children.indexOf(t); + if (-1 === i) return null; + t.parent = null, t.transform._parentID = -1, removeItems(this.children, i, 1), this._boundsID++, this.onChildrenChange(i), t.emit("removed", this), this.emit("childRemoved", t, this, i) + } + return t + }, Container.prototype.removeChildAt = function(t) { + var e = this.getChildAt(t); + return e.parent = null, e.transform._parentID = -1, removeItems(this.children, t, 1), this._boundsID++, this.onChildrenChange(t), e.emit("removed", this), this.emit("childRemoved", e, this, t), e + }, Container.prototype.removeChildren = function(t, e) { + void 0 === t && (t = 0); + var r, n = t, + i = "number" == typeof e ? e : this.children.length, + o = i - n; + if (0 < o && o <= i) { + r = this.children.splice(n, o); + for (var a = 0; a < r.length; ++a) r[a].parent = null, r[a].transform && (r[a].transform._parentID = -1); + this._boundsID++, this.onChildrenChange(t); + for (var s = 0; s < r.length; ++s) r[s].emit("removed", this), this.emit("childRemoved", r[s], this, s); + return r + } + if (0 === o && 0 === this.children.length) return []; + throw new RangeError("removeChildren: numeric values are outside the acceptable range.") + }, Container.prototype.sortChildren = function() { + for (var t = !1, e = 0, r = this.children.length; e < r; ++e) { + var n = this.children[e]; + n._lastSortedIndex = e, t || 0 === n.zIndex || (t = !0) + } + t && 1 < this.children.length && this.children.sort(sortChildren), this.sortDirty = !1 + }, Container.prototype.updateTransform = function() { + this.sortableChildren && this.sortDirty && this.sortChildren(), this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha; + for (var t = 0, e = this.children.length; t < e; ++t) { + var r = this.children[t]; + r.visible && r.updateTransform() + } + }, Container.prototype.calculateBounds = function() { + this._bounds.clear(), this._calculateBounds(); + for (var t = 0; t < this.children.length; t++) { + var e = this.children[t]; + e.visible && e.renderable && (e.calculateBounds(), e._mask ? (e._mask.calculateBounds(), this._bounds.addBoundsMask(e._bounds, e._mask._bounds)) : e.filterArea ? this._bounds.addBoundsArea(e._bounds, e.filterArea) : this._bounds.addBounds(e._bounds)) + } + this._lastBoundsID = this._boundsID + }, Container.prototype._calculateBounds = function() {}, Container.prototype.render = function(t) { + if (this.visible && !(this.worldAlpha <= 0) && this.renderable) + if (this._mask || this.filters) this.renderAdvanced(t); + else { + this._render(t); + for (var e = 0, r = this.children.length; e < r; ++e) this.children[e].render(t) + } + }, Container.prototype.renderAdvanced = function(t) { + t.batch.flush(); + var e = this.filters, + r = this._mask; + if (e) { + this._enabledFilters || (this._enabledFilters = []); + for (var n = this._enabledFilters.length = 0; n < e.length; n++) e[n].enabled && this._enabledFilters.push(e[n]); + this._enabledFilters.length && t.filter.push(this, this._enabledFilters) + } + r && t.mask.push(this, this._mask), this._render(t); + for (var i = 0, o = this.children.length; i < o; i++) this.children[i].render(t); + t.batch.flush(), r && t.mask.pop(this, this._mask), e && this._enabledFilters && this._enabledFilters.length && t.filter.pop() + }, Container.prototype._render = function(t) {}, Container.prototype.destroy = function(t) { + i.prototype.destroy.call(this), this.sortDirty = !1; + var e = "boolean" == typeof t ? t : t && t.children, + r = this.removeChildren(0, this.children.length); + if (e) + for (var n = 0; n < r.length; ++n) r[n].destroy(t) + }, t.width.get = function() { + return this.scale.x * this.getLocalBounds().width + }, t.width.set = function(t) { + var e = this.getLocalBounds().width; + this.scale.x = 0 !== e ? t / e : 1, this._width = t + }, t.height.get = function() { + return this.scale.y * this.getLocalBounds().height + }, t.height.set = function(t) { + var e = this.getLocalBounds().height; + this.scale.y = 0 !== e ? t / e : 1, this._height = t + }, Object.defineProperties(Container.prototype, t), Container + }(dt); + pt.prototype.containerUpdateTransform = pt.prototype.updateTransform; + var mt = { + accessible: !1, + accessibleTitle: null, + accessibleHint: null, + tabIndex: 0, + _accessibleActive: !1, + _accessibleDiv: !1 + }; + dt.mixin(mt); + var vt = function(t) { + this._hookDiv = null, (h.a.tablet || h.a.phone) && this.createTouchHook(); + var e = document.createElement("div"); + e.style.width = "100px", e.style.height = "100px", e.style.position = "absolute", e.style.top = "0px", e.style.left = "0px", e.style.zIndex = 2, this.div = e, this.pool = [], this.renderId = 0, this.debug = !1, this.renderer = t, this.children = [], this._onKeyDown = this._onKeyDown.bind(this), this._onMouseMove = this._onMouseMove.bind(this), this.isActive = !1, this.isMobileAccessibility = !1, window.addEventListener("keydown", this._onKeyDown, !1) + }; + vt.prototype.createTouchHook = function() { + var t = this, + e = document.createElement("button"); + e.style.width = "1px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.left = "-1000px", e.style.zIndex = 2, e.style.backgroundColor = "#FF0000", e.title = "HOOK DIV", e.addEventListener("focus", function() { + t.isMobileAccessibility = !0, t.activate(), t.destroyTouchHook() + }), document.body.appendChild(e), this._hookDiv = e + }, vt.prototype.destroyTouchHook = function() { + this._hookDiv && (document.body.removeChild(this._hookDiv), this._hookDiv = null) + }, vt.prototype.activate = function() { + this.isActive || (this.isActive = !0, window.document.addEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown, !1), this.renderer.on("postrender", this.update, this), this.renderer.view.parentNode && this.renderer.view.parentNode.appendChild(this.div)) + }, vt.prototype.deactivate = function() { + this.isActive && !this.isMobileAccessibility && (this.isActive = !1, window.document.removeEventListener("mousemove", this._onMouseMove, !0), window.addEventListener("keydown", this._onKeyDown, !1), this.renderer.off("postrender", this.update), this.div.parentNode && this.div.parentNode.removeChild(this.div)) + }, vt.prototype.updateAccessibleObjects = function(t) { + if (t.visible) { + t.accessible && t.interactive && (t._accessibleActive || this.addChild(t), t.renderId = this.renderId); + for (var e = t.children, r = 0; r < e.length; r++) this.updateAccessibleObjects(e[r]) + } + }, vt.prototype.update = function() { + if (this.renderer.renderingToScreen) { + this.updateAccessibleObjects(this.renderer._lastObjectRendered); + var t = this.renderer.view.getBoundingClientRect(), + e = t.width / this.renderer.width, + r = t.height / this.renderer.height, + n = this.div; + n.style.left = t.left + "px", n.style.top = t.top + "px", n.style.width = this.renderer.width + "px", n.style.height = this.renderer.height + "px"; + for (var i = 0; i < this.children.length; i++) { + var o = this.children[i]; + if (o.renderId !== this.renderId) o._accessibleActive = !1, removeItems(this.children, i, 1), this.div.removeChild(o._accessibleDiv), this.pool.push(o._accessibleDiv), o._accessibleDiv = null, i--, 0 === this.children.length && this.deactivate(); + else { + n = o._accessibleDiv; + var a = o.hitArea, + s = o.worldTransform; + o.hitArea ? (n.style.left = (s.tx + a.x * s.a) * e + "px", n.style.top = (s.ty + a.y * s.d) * r + "px", n.style.width = a.width * s.a * e + "px", n.style.height = a.height * s.d * r + "px") : (a = o.getBounds(), this.capHitArea(a), n.style.left = a.x * e + "px", n.style.top = a.y * r + "px", n.style.width = a.width * e + "px", n.style.height = a.height * r + "px", n.title !== o.accessibleTitle && null !== o.accessibleTitle && (n.title = o.accessibleTitle), n.getAttribute("aria-label") !== o.accessibleHint && null !== o.accessibleHint && n.setAttribute("aria-label", o.accessibleHint)) + } + } + this.renderId++ + } + }, vt.prototype.capHitArea = function(t) { + t.x < 0 && (t.width += t.x, t.x = 0), t.y < 0 && (t.height += t.y, t.y = 0), t.x + t.width > this.renderer.width && (t.width = this.renderer.width - t.x), t.y + t.height > this.renderer.height && (t.height = this.renderer.height - t.y) + }, vt.prototype.addChild = function(t) { + var e = this.pool.pop(); + e || ((e = document.createElement("button")).style.width = "100px", e.style.height = "100px", e.style.backgroundColor = this.debug ? "rgba(255,0,0,0.5)" : "transparent", e.style.position = "absolute", e.style.zIndex = 2, e.style.borderStyle = "none", -1 < navigator.userAgent.toLowerCase().indexOf("chrome") ? e.setAttribute("aria-live", "off") : e.setAttribute("aria-live", "polite"), navigator.userAgent.match(/rv:.*Gecko\//) ? e.setAttribute("aria-relevant", "additions") : e.setAttribute("aria-relevant", "text"), e.addEventListener("click", this._onClick.bind(this)), e.addEventListener("focus", this._onFocus.bind(this)), e.addEventListener("focusout", this._onFocusOut.bind(this))), t.accessibleTitle && null !== t.accessibleTitle ? e.title = t.accessibleTitle : t.accessibleHint && null !== t.accessibleHint || (e.title = "displayObject " + t.tabIndex), t.accessibleHint && null !== t.accessibleHint && e.setAttribute("aria-label", t.accessibleHint), t._accessibleActive = !0, (t._accessibleDiv = e).displayObject = t, this.children.push(t), this.div.appendChild(t._accessibleDiv), t._accessibleDiv.tabIndex = t.tabIndex + }, vt.prototype._onClick = function(t) { + var e = this.renderer.plugins.interaction; + e.dispatchEvent(t.target.displayObject, "click", e.eventData) + }, vt.prototype._onFocus = function(t) { + t.target.getAttribute("aria-live", "off") || t.target.setAttribute("aria-live", "assertive"); + var e = this.renderer.plugins.interaction; + e.dispatchEvent(t.target.displayObject, "mouseover", e.eventData) + }, vt.prototype._onFocusOut = function(t) { + t.target.getAttribute("aria-live", "off") || t.target.setAttribute("aria-live", "polite"); + var e = this.renderer.plugins.interaction; + e.dispatchEvent(t.target.displayObject, "mouseout", e.eventData) + }, vt.prototype._onKeyDown = function(t) { + 9 === t.keyCode && this.activate() + }, vt.prototype._onMouseMove = function(t) { + 0 === t.movementX && 0 === t.movementY || this.deactivate() + }, vt.prototype.destroy = function() { + this.destroyTouchHook(), this.div = null; + for (var t = 0; t < this.children.length; t++) this.children[t].div = null; + window.document.removeEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null + }; + var gt = function(t) { + this.items = [], this._name = t + }, + yt = { + empty: { + configurable: !0 + }, + name: { + configurable: !0 + } + }; + gt.prototype.emit = function(t, e, r, n, i, o, a, s) { + if (8 < arguments.length) throw new Error("max arguments reached"); + for (var u = this.name, h = this.items, c = 0, l = h.length; c < l; c++) h[c][u](t, e, r, n, i, o, a, s); + return this + }, gt.prototype.add = function(t) { + return t[this._name] && (this.remove(t), this.items.push(t)), this + }, gt.prototype.remove = function(t) { + var e = this.items.indexOf(t); + return -1 !== e && this.items.splice(e, 1), this + }, gt.prototype.contains = function(t) { + return -1 !== this.items.indexOf(t) + }, gt.prototype.removeAll = function() { + return this.items.length = 0, this + }, gt.prototype.destroy = function() { + this.removeAll(), this.items = null, this._name = null + }, yt.empty.get = function() { + return 0 === this.items.length + }, yt.name.get = function() { + return this._name + }, Object.defineProperties(gt.prototype, yt), gt.prototype.dispatch = gt.prototype.emit, gt.prototype.run = gt.prototype.emit, M.TARGET_FPMS = .06; + var _t = { + INTERACTION: 50, + HIGH: 25, + NORMAL: 0, + LOW: -25, + UTILITY: -50 + }, + bt = function(t, e, r, n) { + void 0 === e && (e = null), void 0 === r && (r = 0), void 0 === n && (n = !1), this.fn = t, this.context = e, this.priority = r, this.once = n, this.next = null, this.previous = null, this._destroyed = !1 + }; + bt.prototype.match = function(t, e) { + return e = e || null, this.fn === t && this.context === e + }, bt.prototype.emit = function(t) { + this.fn && (this.context ? this.fn.call(this.context, t) : this.fn(t)); + var e = this.next; + return this.once && this.destroy(!0), this._destroyed && (this.next = null), e + }, bt.prototype.connect = function(t) { + (this.previous = t).next && (t.next.previous = this), this.next = t.next, t.next = this + }, bt.prototype.destroy = function(t) { + void 0 === t && (t = !1), this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous); + var e = this.next; + return this.next = t ? null : e, this.previous = null, e + }; + var xt = function() { + var e = this; + this._head = new bt(null, null, 1 / 0), this._requestId = null, this._maxElapsedMS = 100, this._minElapsedMS = 0, this.autoStart = !1, this.deltaTime = 1, this.deltaMS = 1 / M.TARGET_FPMS, this.elapsedMS = 1 / M.TARGET_FPMS, this.lastTime = -1, this.speed = 1, this.started = !1, this._protected = !1, this._tick = function(t) { + e._requestId = null, e.started && (e.update(t), e.started && null === e._requestId && e._head.next && (e._requestId = requestAnimationFrame(e._tick))) + } + }, + wt = { + FPS: { + configurable: !0 + }, + minFPS: { + configurable: !0 + }, + maxFPS: { + configurable: !0 + } + }, + Tt = { + shared: { + configurable: !0 + }, + system: { + configurable: !0 + } + }; + xt.prototype._requestIfNeeded = function() { + null === this._requestId && this._head.next && (this.lastTime = performance.now(), this._requestId = requestAnimationFrame(this._tick)) + }, xt.prototype._cancelIfNeeded = function() { + null !== this._requestId && (cancelAnimationFrame(this._requestId), this._requestId = null) + }, xt.prototype._startIfPossible = function() { + this.started ? this._requestIfNeeded() : this.autoStart && this.start() + }, xt.prototype.add = function(t, e, r) { + return void 0 === r && (r = _t.NORMAL), this._addListener(new bt(t, e, r)) + }, xt.prototype.addOnce = function(t, e, r) { + return void 0 === r && (r = _t.NORMAL), this._addListener(new bt(t, e, r, !0)) + }, xt.prototype._addListener = function(t) { + var e = this._head.next, + r = this._head; + if (e) { + for (; e;) { + if (t.priority > e.priority) { + t.connect(r); + break + } + e = (r = e).next + } + t.previous || t.connect(r) + } else t.connect(r); + return this._startIfPossible(), this + }, xt.prototype.remove = function(t, e) { + for (var r = this._head.next; r;) r = r.match(t, e) ? r.destroy() : r.next; + return this._head.next || this._cancelIfNeeded(), this + }, xt.prototype.start = function() { + this.started || (this.started = !0, this._requestIfNeeded()) + }, xt.prototype.stop = function() { + this.started && (this.started = !1, this._cancelIfNeeded()) + }, xt.prototype.destroy = function() { + if (!this._protected) { + this.stop(); + for (var t = this._head.next; t;) t = t.destroy(!0); + this._head.destroy(), this._head = null + } + }, xt.prototype.update = function(t) { + var e; + if (void 0 === t && (t = performance.now()), t > this.lastTime) { + if ((e = this.elapsedMS = t - this.lastTime) > this._maxElapsedMS && (e = this._maxElapsedMS), e *= this.speed, this._minElapsedMS && e + 1 < this._minElapsedMS) return; + this.deltaMS = e, this.deltaTime = this.deltaMS * M.TARGET_FPMS; + for (var r = this._head, n = r.next; n;) n = n.emit(this.deltaTime); + r.next || this._cancelIfNeeded() + } else this.deltaTime = this.deltaMS = this.elapsedMS = 0; + this.lastTime = t + }, wt.FPS.get = function() { + return 1e3 / this.elapsedMS + }, wt.minFPS.get = function() { + return 1e3 / this._maxElapsedMS + }, wt.minFPS.set = function(t) { + var e = Math.min(this.maxFPS, t), + r = Math.min(Math.max(0, e) / 1e3, M.TARGET_FPMS); + this._maxElapsedMS = 1 / r + }, wt.maxFPS.get = function() { + return this._minElapsedMS ? 1e3 / this._minElapsedMS : 1e3 * M.TARGET_FPMS + }, wt.maxFPS.set = function(t) { + if (t / 1e3 >= M.TARGET_FPMS) this._minElapsedMS = 0; + else { + var e = Math.max(this.minFPS, t), + r = Math.min(Math.max(1, e) / 1e3, M.TARGET_FPMS); + this._minElapsedMS = 1 / r + } + }, Tt.shared.get = function() { + if (!xt._shared) { + var t = xt._shared = new xt; + t.autoStart = !0, t._protected = !0 + } + return xt._shared + }, Tt.system.get = function() { + if (!xt._system) { + var t = xt._system = new xt; + t.autoStart = !0, t._protected = !0 + } + return xt._system + }, Object.defineProperties(xt.prototype, wt), Object.defineProperties(xt, Tt); + var St = function() {}; + St.init = function(t) { + var e = this; + t = Object.assign({ + autoStart: !0, + sharedTicker: !1 + }, t), Object.defineProperty(this, "ticker", { + set: function(t) { + this._ticker && this._ticker.remove(this.render, this), (this._ticker = t) && t.add(this.render, this, _t.LOW) + }, + get: function() { + return this._ticker + } + }), this.stop = function() { + e._ticker.stop() + }, this.start = function() { + e._ticker.start() + }, this._ticker = null, this.ticker = t.sharedTicker ? xt.shared : new xt, t.autoStart && this.start() + }, St.destroy = function() { + if (this._ticker) { + var t = this._ticker; + this.ticker = null, t.destroy() + } + }; + var Mt = function(t, e) { + void 0 === t && (t = 0), void 0 === e && (e = 0), this._width = t, this._height = e, this.destroyed = !1, this.internal = !1, this.onResize = new gt("setRealSize", 2), this.onUpdate = new gt("update") + }, + Et = { + valid: { + configurable: !0 + }, + width: { + configurable: !0 + }, + height: { + configurable: !0 + } + }; + Mt.prototype.bind = function(t) { + this.onResize.add(t), this.onUpdate.add(t), (this._width || this._height) && this.onResize.run(this._width, this._height) + }, Mt.prototype.unbind = function(t) { + this.onResize.remove(t), this.onUpdate.remove(t) + }, Mt.prototype.resize = function(t, e) { + t === this._width && e === this._height || (this._width = t, this._height = e, this.onResize.run(t, e)) + }, Et.valid.get = function() { + return !!this._width && !!this._height + }, Mt.prototype.update = function() { + this.destroyed || this.onUpdate.run() + }, Mt.prototype.load = function() { + return Promise.resolve() + }, Et.width.get = function() { + return this._width + }, Et.height.get = function() { + return this._height + }, Mt.prototype.upload = function(t, e, r) { + return !1 + }, Mt.prototype.style = function(t, e, r) { + return !1 + }, Mt.prototype.dispose = function() {}, Mt.prototype.destroy = function() { + this.destroyed || (this.onResize.removeAll(), this.onResize = null, this.onUpdate.removeAll(), this.onUpdate = null, this.destroyed = !0, this.dispose()) + }, Object.defineProperties(Mt.prototype, Et); + var At = function(e) { + function BaseImageResource(t) { + e.call(this, t.width, t.height), this.source = t + } + return e && (BaseImageResource.__proto__ = e), ((BaseImageResource.prototype = Object.create(e && e.prototype)).constructor = BaseImageResource).crossOrigin = function(t, e, r) { + void 0 === r && 0 !== e.indexOf("data:") ? t.crossOrigin = determineCrossOrigin(e) : !1 !== r && (t.crossOrigin = "string" == typeof r ? r : "anonymous") + }, BaseImageResource.prototype.upload = function(t, e, r, n) { + var i = t.gl, + o = e.realWidth, + a = e.realHeight; + return n = n || this.source, i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultiplyAlpha), e.target === i.TEXTURE_2D && r.width === o && r.height === a ? i.texSubImage2D(i.TEXTURE_2D, 0, 0, 0, e.format, e.type, n) : (r.width = o, r.height = a, i.texImage2D(e.target, 0, e.format, e.format, e.type, n)), !0 + }, BaseImageResource.prototype.dispose = function() { + this.source = null + }, BaseImageResource + }(Mt), + Pt = function(a) { + function ImageResource(t, e) { + if (e = e || {}, !(t instanceof HTMLImageElement)) { + var r = new Image; + a.crossOrigin(r, t, e.crossorigin), r.src = t, t = r + } + a.call(this, t), this.url = t.src, this._process = null, this.preserveBitmap = !1, this.createBitmap = !1 !== e.createBitmap && M.CREATE_IMAGE_BITMAP && !!window.createImageBitmap, this.premultiplyAlpha = !1 !== e.premultiplyAlpha, this.bitmap = null, this._load = null, !1 !== e.autoLoad && this.load() + } + return a && (ImageResource.__proto__ = a), ((ImageResource.prototype = Object.create(a && a.prototype)).constructor = ImageResource).prototype.load = function(t) { + var n = this; + return void 0 !== t && (this.createBitmap = t), this._load || (this._load = new Promise(function(t) { + n.url = n.source.src; + var e = n.source, + r = function() { + n.destroyed || (e.onload = null, e.onerror = null, n.resize(e.width, e.height), n._load = null, n.createBitmap ? t(n.process()) : t(n)) + }; + e.complete && e.src ? r() : e.onload = r + })), this._load + }, ImageResource.prototype.process = function() { + var e = this; + return null !== this._process ? this._process : null === this.bitmap && window.createImageBitmap ? (this._process = window.createImageBitmap(this.source, 0, 0, this.source.width, this.source.height, { + premultiplyAlpha: this.premultiplyAlpha ? "premultiply" : "none" + }).then(function(t) { + return e.destroyed ? Promise.reject() : (e.bitmap = t, e.update(), e._process = null, Promise.resolve(e)) + }), this._process) : Promise.resolve(this) + }, ImageResource.prototype.upload = function(t, e, r) { + if (e.premultiplyAlpha = this.premultiplyAlpha, !this.createBitmap) return a.prototype.upload.call(this, t, e, r); + if (!this.bitmap && (this.process(), !this.bitmap)) return !1; + if (a.prototype.upload.call(this, t, e, r, this.bitmap), !this.preserveBitmap) { + var n = !0; + for (var i in e._glTextures) { + var o = e._glTextures[i]; + if (o !== r && o.dirtyId !== e.dirtyId) { + n = !1; + break + } + } + n && (this.bitmap.close && this.bitmap.close(), this.bitmap = null) + } + return !0 + }, ImageResource.prototype.dispose = function() { + a.prototype.dispose.call(this), this.bitmap && (this.bitmap.close(), this.bitmap = null), this._process = null, this._load = null + }, ImageResource + }(At), + It = []; + + function autoDetectResource(t, e) { + if (!t) return null; + var r = ""; + if ("string" == typeof t) { + var n = /\.(\w{3,4})(?:$|\?|#)/i.exec(t); + n && (r = n[1].toLowerCase()) + } + for (var i = It.length - 1; 0 <= i; --i) { + var o = It[i]; + if (o.test && o.test(t, r)) return new o(t, e) + } + return new Pt(t, e) + } + var Ot = function(o) { + function BufferResource(t, e) { + var r = e || {}, + n = r.width, + i = r.height; + if (!n || !i) throw new Error("BufferResource width or height invalid"); + o.call(this, n, i), this.data = t + } + return o && (BufferResource.__proto__ = o), ((BufferResource.prototype = Object.create(o && o.prototype)).constructor = BufferResource).prototype.upload = function(t, e, r) { + var n = t.gl; + if (n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultiplyAlpha), r.width === e.width && r.height === e.height) n.texSubImage2D(e.target, 0, 0, 0, e.width, e.height, e.format, e.type, this.data); + else { + r.width = e.width, r.height = e.height; + var i = e.format; + 2 === t.context.webGLVersion && e.type === t.gl.FLOAT && e.format === t.gl.RGBA && (i = t.gl.RGBA32F), n.texImage2D(e.target, 0, i, e.width, e.height, 0, e.format, e.type, this.data) + } + return !0 + }, BufferResource.prototype.dispose = function() { + this.data = null + }, BufferResource.test = function(t) { + return t instanceof Float32Array || t instanceof Uint8Array || t instanceof Uint32Array + }, BufferResource + }(Mt), + Ct = { + scaleMode: T.NEAREST, + format: _.RGBA, + premultiplyAlpha: !1 + }, + Rt = function(d) { + function BaseTexture(t, e) { + void 0 === t && (t = null), void 0 === e && (e = null), d.call(this); + var r = (e = e || {}).premultiplyAlpha, + n = e.mipmap, + i = e.scaleMode, + o = e.width, + a = e.height, + s = e.wrapMode, + u = e.format, + h = e.type, + c = e.target, + l = e.resolution, + f = e.resourceOptions; + !t || t instanceof Mt || ((t = autoDetectResource(t, f)).internal = !0), this.width = o || 0, this.height = a || 0, this.resolution = l || M.RESOLUTION, this.mipmap = void 0 !== n ? n : M.MIPMAP_TEXTURES, this.wrapMode = s || M.WRAP_MODE, this.scaleMode = void 0 !== i ? i : M.SCALE_MODE, this.format = u || _.RGBA, this.type = h || w.UNSIGNED_BYTE, this.target = c || b.TEXTURE_2D, this.premultiplyAlpha = !1 !== r, this.uid = uid(), this.touched = 0, this.isPowerOfTwo = !1, this._refreshPOT(), this._glTextures = {}, this.dirtyId = 0, this.dirtyStyleId = 0, this.cacheId = null, this.valid = 0 < o && 0 < a, this.textureCacheIds = [], this.destroyed = !1, this.resource = null, this.setResource(t) + } + d && (BaseTexture.__proto__ = d), (BaseTexture.prototype = Object.create(d && d.prototype)).constructor = BaseTexture; + var t = { + realWidth: { + configurable: !0 + }, + realHeight: { + configurable: !0 + } + }; + return t.realWidth.get = function() { + return this.width * this.resolution + }, t.realHeight.get = function() { + return this.height * this.resolution + }, BaseTexture.prototype.setStyle = function(t, e) { + var r; + return void 0 !== t && t !== this.scaleMode && (this.scaleMode = t, r = !0), void 0 !== e && e !== this.mipmap && (this.mipmap = e, r = !0), r && this.dirtyStyleId++, this + }, BaseTexture.prototype.setSize = function(t, e, r) { + return this.resolution = r || this.resolution, this.width = t, this.height = e, this._refreshPOT(), this.update(), this + }, BaseTexture.prototype.setRealSize = function(t, e, r) { + return this.resolution = r || this.resolution, this.width = t / this.resolution, this.height = e / this.resolution, this._refreshPOT(), this.update(), this + }, BaseTexture.prototype._refreshPOT = function() { + this.isPowerOfTwo = isPow2(this.realWidth) && isPow2(this.realHeight) + }, BaseTexture.prototype.setResolution = function(t) { + var e = this.resolution; + return e === t || (this.resolution = t, this.valid && (this.width = this.width * e / t, this.height = this.height * e / t, this.emit("update")), this._refreshPOT()), this + }, BaseTexture.prototype.setResource = function(t) { + if (this.resource === t) return this; + if (this.resource) throw new Error("Resource can be set only once"); + return t.bind(this), this.resource = t, this + }, BaseTexture.prototype.update = function() { + this.valid ? (this.dirtyId++, this.dirtyStyleId++, this.emit("update", this)) : 0 < this.width && 0 < this.height && (this.valid = !0, this.emit("loaded", this), this.emit("update", this)) + }, BaseTexture.prototype.destroy = function() { + this.resource && (this.resource.unbind(this), this.resource.internal && this.resource.destroy(), this.resource = null), this.cacheId && (delete k[this.cacheId], delete F[this.cacheId], this.cacheId = null), this.dispose(), BaseTexture.removeFromCache(this), this.textureCacheIds = null, this.destroyed = !0 + }, BaseTexture.prototype.dispose = function() { + this.emit("dispose", this) + }, BaseTexture.from = function(t, e) { + var r = null; + r = "string" == typeof t ? t : (t._pixiId || (t._pixiId = "pixiid_" + uid()), t._pixiId); + var n = k[r]; + return n || ((n = new BaseTexture(t, e)).cacheId = r, BaseTexture.addToCache(n, r)), n + }, BaseTexture.fromBuffer = function(t, e, r, n) { + t = t || new Float32Array(e * r * 4); + var i = new Ot(t, { + width: e, + height: r + }), + o = t instanceof Float32Array ? w.FLOAT : w.UNSIGNED_BYTE; + return new BaseTexture(i, Object.assign(Ct, n || { + width: e, + height: r, + type: o + })) + }, BaseTexture.addToCache = function(t, e) { + e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), k[e], k[e] = t) + }, BaseTexture.removeFromCache = function(t) { + if ("string" == typeof t) { + var e = k[t]; + if (e) { + var r = e.textureCacheIds.indexOf(t); + return -1 < r && e.textureCacheIds.splice(r, 1), delete k[t], e + } + } else if (t && t.textureCacheIds) { + for (var n = 0; n < t.textureCacheIds.length; ++n) delete k[t.textureCacheIds[n]]; + return t.textureCacheIds.length = 0, t + } + return null + }, Object.defineProperties(BaseTexture.prototype, t), BaseTexture + }(l.a), + Dt = function(s) { + function ArrayResource(t, e) { + var r; + e = e || {}; + var n = t; + Array.isArray(t) && (n = (r = t).length), s.call(this, e.width, e.height), this.items = [], this.itemDirtyIds = []; + for (var i = 0; i < n; i++) { + var o = new Rt; + this.items.push(o), this.itemDirtyIds.push(-1) + } + if (this.length = n, this._load = null, r) + for (var a = 0; a < n; a++) this.addResourceAt(autoDetectResource(r[a], e), a) + } + return s && (ArrayResource.__proto__ = s), ((ArrayResource.prototype = Object.create(s && s.prototype)).constructor = ArrayResource).prototype.dispose = function() { + for (var t = 0, e = this.length; t < e; t++) this.items[t].destroy(); + this.items = null, this.itemDirtyIds = null, this._load = null + }, ArrayResource.prototype.addResourceAt = function(t, e) { + if (!this.items[e]) throw new Error("Index " + e + " is out of bounds"); + return t.valid && !this.valid && this.resize(t.width, t.height), this.items[e].setResource(t), this + }, ArrayResource.prototype.bind = function(t) { + s.prototype.bind.call(this, t), t.target = b.TEXTURE_2D_ARRAY; + for (var e = 0; e < this.length; e++) this.items[e].on("update", t.update, t) + }, ArrayResource.prototype.unbind = function(t) { + s.prototype.unbind.call(this, t); + for (var e = 0; e < this.length; e++) this.items[e].off("update", t.update, t) + }, ArrayResource.prototype.load = function() { + var n = this; + if (this._load) return this._load; + var i = this.items.map(function(t) { + return t.resource + }), + t = i.map(function(t) { + return t.load() + }); + return this._load = Promise.all(t).then(function() { + var t = i[0], + e = t.width, + r = t.height; + return n.resize(e, r), Promise.resolve(n) + }), this._load + }, ArrayResource.prototype.upload = function(t, e, r) { + var n = this.length, + i = this.itemDirtyIds, + o = this.items, + a = t.gl; + r.dirtyId < 0 && a.texImage3D(a.TEXTURE_2D_ARRAY, 0, e.format, this._width, this._height, n, 0, e.format, e.type, null); + for (var s = 0; s < n; s++) { + var u = o[s]; + i[s] < u.dirtyId && (i[s] = u.dirtyId, u.valid && a.texSubImage3D(a.TEXTURE_2D_ARRAY, 0, 0, 0, s, u.resource.width, u.resource.height, 1, e.format, e.type, u.resource.source)) + } + return !0 + }, ArrayResource + }(Mt), + Ft = function(t) { + function CanvasResource() { + t.apply(this, arguments) + } + return t && (CanvasResource.__proto__ = t), ((CanvasResource.prototype = Object.create(t && t.prototype)).constructor = CanvasResource).test = function(t) { + return t instanceof HTMLCanvasElement + }, CanvasResource + }(At), + kt = function(n) { + function CubeResource(t, e) { + if (e = e || {}, n.call(this, t, e), this.length !== CubeResource.SIDES) throw new Error("Invalid length. Got " + this.length + ", expected 6"); + for (var r = 0; r < CubeResource.SIDES; r++) this.items[r].target = b.TEXTURE_CUBE_MAP_POSITIVE_X + r; + !1 !== e.autoLoad && this.load() + } + return n && (CubeResource.__proto__ = n), ((CubeResource.prototype = Object.create(n && n.prototype)).constructor = CubeResource).prototype.bind = function(t) { + n.prototype.bind.call(this, t), t.target = b.TEXTURE_CUBE_MAP + }, CubeResource.prototype.upload = function(t, e, r) { + for (var n = this.itemDirtyIds, i = 0; i < CubeResource.SIDES; i++) { + var o = this.items[i]; + n[i] < o.dirtyId && (n[i] = o.dirtyId, o.valid && o.resource.upload(t, o, r)) + } + return !0 + }, CubeResource + }(Dt); + kt.SIDES = 6; + var Lt = function(r) { + function SVGResource(t, e) { + e = e || {}, r.call(this, document.createElement("canvas")), this.svg = t, this.scale = e.scale || 1, this._resolve = null, this._load = null, !1 !== e.autoLoad && this.load() + } + return r && (SVGResource.__proto__ = r), ((SVGResource.prototype = Object.create(r && r.prototype)).constructor = SVGResource).prototype.load = function() { + var r = this; + return this._load || (this._load = new Promise(function(t) { + r._resolve = function() { + r.resize(r.source.width, r.source.height), t(r) + }, /^\]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i; + var Nt = function(c) { + function VideoResource(t, e) { + if (e = e || {}, !(t instanceof HTMLVideoElement)) { + var r = document.createElement("video"); + r.setAttribute("webkit-playsinline", ""), r.setAttribute("playsinline", ""), "string" == typeof t && (t = [t]), c.crossOrigin(r, t[0].src || t[0], e.crossorigin); + for (var n = 0; n < t.length; ++n) { + var i = document.createElement("source"), + o = t[n], + a = o.src, + s = o.mime, + u = (a = a || t[n]).split("?").shift().toLowerCase(), + h = u.substr(u.lastIndexOf(".") + 1); + s = s || "video/" + h, i.src = a, i.type = s, r.appendChild(i) + } + t = r + } + c.call(this, t), this._autoUpdate = !0, this._isAutoUpdating = !1, this._updateFPS = e.updateFPS || 0, this._msToNextUpdate = 0, this.autoPlay = !1 !== e.autoPlay, this._load = null, this._resolve = null, this._onCanPlay = this._onCanPlay.bind(this), !1 !== e.autoLoad && this.load() + } + c && (VideoResource.__proto__ = c); + var t = { + autoUpdate: { + configurable: !0 + }, + updateFPS: { + configurable: !0 + } + }; + return ((VideoResource.prototype = Object.create(c && c.prototype)).constructor = VideoResource).prototype.update = function(t) { + if (void 0 === t && (t = 0), !this.destroyed) { + var e = xt.shared.elapsedMS * this.source.playbackRate; + this._msToNextUpdate = Math.floor(this._msToNextUpdate - e), (!this._updateFPS || this._msToNextUpdate <= 0) && (c.prototype.update.call(this, t), this._msToNextUpdate = this._updateFPS ? Math.floor(1e3 / this._updateFPS) : 0) + } + }, VideoResource.prototype.load = function() { + var e = this; + if (this._load) return this._load; + var r = this.source; + return (r.readyState === r.HAVE_ENOUGH_DATA || r.readyState === r.HAVE_FUTURE_DATA) && r.width && r.height && (r.complete = !0), r.addEventListener("play", this._onPlayStart.bind(this)), r.addEventListener("pause", this._onPlayStop.bind(this)), this._isSourceReady() ? this._onCanPlay() : (r.addEventListener("canplay", this._onCanPlay), r.addEventListener("canplaythrough", this._onCanPlay)), this._load = new Promise(function(t) { + e.valid ? t(e) : (e._resolve = t, r.load()) + }), this._load + }, VideoResource.prototype._isSourcePlaying = function() { + var t = this.source; + return 0 < t.currentTime && !1 === t.paused && !1 === t.ended && 2 < t.readyState + }, VideoResource.prototype._isSourceReady = function() { + return 3 === this.source.readyState || 4 === this.source.readyState + }, VideoResource.prototype._onPlayStart = function() { + this.valid || this._onCanPlay(), !this._isAutoUpdating && this.autoUpdate && (xt.shared.add(this.update, this), this._isAutoUpdating = !0) + }, VideoResource.prototype._onPlayStop = function() { + this._isAutoUpdating && (xt.shared.remove(this.update, this), this._isAutoUpdating = !1) + }, VideoResource.prototype._onCanPlay = function() { + var t = this.source; + t.removeEventListener("canplay", this._onCanPlay), t.removeEventListener("canplaythrough", this._onCanPlay); + var e = this.valid; + this.resize(t.videoWidth, t.videoHeight), !e && this._resolve && (this._resolve(this), this._resolve = null), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && t.play() + }, VideoResource.prototype.dispose = function() { + this._isAutoUpdating && xt.shared.remove(this.update, this), this.source && (this.source.pause(), this.source.src = "", this.source.load()), c.prototype.dispose.call(this) + }, t.autoUpdate.get = function() { + return this._autoUpdate + }, t.autoUpdate.set = function(t) { + t !== this._autoUpdate && (this._autoUpdate = t, !this._autoUpdate && this._isAutoUpdating ? (xt.shared.remove(this.update, this), this._isAutoUpdating = !1) : this._autoUpdate && !this._isAutoUpdating && (xt.shared.add(this.update, this), this._isAutoUpdating = !0)) + }, t.updateFPS.get = function() { + return this._updateFPS + }, t.updateFPS.set = function(t) { + t !== this._updateFPS && (this._updateFPS = t) + }, VideoResource.test = function(t, e) { + return t instanceof HTMLVideoElement || -1 < VideoResource.TYPES.indexOf(e) + }, Object.defineProperties(VideoResource.prototype, t), VideoResource + }(At); + Nt.TYPES = ["mp4", "m4v", "webm", "ogg", "ogv", "h264", "avi", "mov"], It.push(Pt, Ft, Nt, Lt, Ot, kt, Dt); + var Bt = { + INSTALLED: It, + autoDetectResource: autoDetectResource, + ArrayResource: Dt, + BufferResource: Ot, + CanvasResource: Ft, + CubeResource: kt, + ImageResource: Pt, + SVGResource: Lt, + VideoResource: Nt, + Resource: Mt, + BaseImageResource: At + }, + Ut = function(t) { + this.renderer = t, this.renderer.runners.contextChange.add(this) + }; + Ut.prototype.contextChange = function(t) {}, Ut.prototype.destroy = function() { + this.renderer.runners.contextChange.remove(this), this.renderer = null + }; + var Gt = function(t) { + function DepthResource() { + t.apply(this, arguments) + } + return t && (DepthResource.__proto__ = t), ((DepthResource.prototype = Object.create(t && t.prototype)).constructor = DepthResource).prototype.upload = function(t, e, r) { + var n = t.gl; + return n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultiplyAlpha), r.width === e.width && r.height === e.height ? n.texSubImage2D(e.target, 0, 0, 0, e.width, e.height, e.format, e.type, this.data) : (r.width = e.width, r.height = e.height, n.texImage2D(e.target, 0, n.DEPTH_COMPONENT16, e.width, e.height, 0, e.format, e.type, this.data)), !0 + }, DepthResource + }(Ot), + jt = function(t, e) { + this.width = Math.ceil(t || 100), this.height = Math.ceil(e || 100), this.stencil = !1, this.depth = !1, this.dirtyId = 0, this.dirtyFormat = 0, this.dirtySize = 0, this.depthTexture = null, this.colorTextures = [], this.glFramebuffers = {}, this.disposeRunner = new gt("disposeFramebuffer", 2) + }, + zt = { + colorTexture: { + configurable: !0 + } + }; + zt.colorTexture.get = function() { + return this.colorTextures[0] + }, jt.prototype.addColorTexture = function(t, e) { + return void 0 === t && (t = 0), this.colorTextures[t] = e || new Rt(null, { + scaleMode: 0, + resolution: 1, + mipmap: !1, + width: this.width, + height: this.height + }), this.dirtyId++, this.dirtyFormat++, this + }, jt.prototype.addDepthTexture = function(t) { + return this.depthTexture = t || new Rt(new Gt(null, { + width: this.width, + height: this.height + }), { + scaleMode: 0, + resolution: 1, + width: this.width, + height: this.height, + mipmap: !1, + format: _.DEPTH_COMPONENT, + type: w.UNSIGNED_SHORT + }), this.dirtyId++, this.dirtyFormat++, this + }, jt.prototype.enableDepth = function() { + return this.depth = !0, this.dirtyId++, this.dirtyFormat++, this + }, jt.prototype.enableStencil = function() { + return this.stencil = !0, this.dirtyId++, this.dirtyFormat++, this + }, jt.prototype.resize = function(t, e) { + if (t = Math.ceil(t), e = Math.ceil(e), t !== this.width || e !== this.height) { + this.width = t, this.height = e, this.dirtyId++, this.dirtySize++; + for (var r = 0; r < this.colorTextures.length; r++) { + var n = this.colorTextures[r], + i = n.resolution; + n.setSize(t / i, e / i) + } + if (this.depthTexture) { + var o = this.depthTexture.resolution; + this.depthTexture.setSize(t / o, e / o) + } + } + }, jt.prototype.dispose = function() { + this.disposeRunner.run(this, !1) + }, Object.defineProperties(jt.prototype, zt); + var Xt = function(i) { + function BaseRenderTexture(t) { + "number" == typeof t && (t = { + width: arguments[0], + height: arguments[1], + scaleMode: arguments[2], + resolution: arguments[3] + }); + i.call(this, null, t); + var e = t || {}, + r = e.width, + n = e.height; + this.mipmap = !1, this.width = Math.ceil(r) || 100, this.height = Math.ceil(n) || 100, this.valid = !0, this._canvasRenderTarget = null, this.clearColor = [0, 0, 0, 0], this.framebuffer = new jt(this.width * this.resolution, this.height * this.resolution).addColorTexture(0, this).enableStencil(), this.stencilMaskStack = [], this.filterStack = [{}] + } + return i && (BaseRenderTexture.__proto__ = i), ((BaseRenderTexture.prototype = Object.create(i && i.prototype)).constructor = BaseRenderTexture).prototype.resize = function(t, e) { + t = Math.ceil(t), e = Math.ceil(e), this.framebuffer.resize(t * this.resolution, e * this.resolution) + }, BaseRenderTexture.prototype.dispose = function() { + this.framebuffer.dispose(), i.prototype.dispose.call(this) + }, BaseRenderTexture.prototype.destroy = function() { + i.prototype.destroy.call(this, !0), this.framebuffer = null, this.renderer = null + }, BaseRenderTexture + }(Rt), + Vt = function() { + this.x0 = 0, this.y0 = 0, this.x1 = 1, this.y1 = 0, this.x2 = 1, this.y2 = 1, this.x3 = 0, this.y3 = 1, this.uvsFloat32 = new Float32Array(8) + }; + Vt.prototype.set = function(t, e, r) { + var n = e.width, + i = e.height; + if (r) { + var o = t.width / 2 / n, + a = t.height / 2 / i, + s = t.x / n + o, + u = t.y / i + a; + r = rt.add(r, rt.NW), this.x0 = s + o * rt.uX(r), this.y0 = u + a * rt.uY(r), r = rt.add(r, 2), this.x1 = s + o * rt.uX(r), this.y1 = u + a * rt.uY(r), r = rt.add(r, 2), this.x2 = s + o * rt.uX(r), this.y2 = u + a * rt.uY(r), r = rt.add(r, 2), this.x3 = s + o * rt.uX(r), this.y3 = u + a * rt.uY(r) + } else this.x0 = t.x / n, this.y0 = t.y / i, this.x1 = (t.x + t.width) / n, this.y1 = t.y / i, this.x2 = (t.x + t.width) / n, this.y2 = (t.y + t.height) / i, this.x3 = t.x / n, this.y3 = (t.y + t.height) / i; + this.uvsFloat32[0] = this.x0, this.uvsFloat32[1] = this.y0, this.uvsFloat32[2] = this.x1, this.uvsFloat32[3] = this.y1, this.uvsFloat32[4] = this.x2, this.uvsFloat32[5] = this.y2, this.uvsFloat32[6] = this.x3, this.uvsFloat32[7] = this.y3 + }; + var qt = new Vt, + Ht = function(a) { + function Texture(t, e, r, n, i, o) { + if (a.call(this), this.noFrame = !1, e || (this.noFrame = !0, e = new ot(0, 0, 1, 1)), t instanceof Texture && (t = t.baseTexture), this.baseTexture = t, this._frame = e, this.trim = n, this.valid = !1, this.requiresUpdate = !1, this._uvs = qt, this.uvMatrix = null, this.orig = r || e, this._rotate = Number(i || 0), !0 === i) this._rotate = 2; + else if (this._rotate % 2 != 0) throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually"); + t.valid ? (this.noFrame && (e = new ot(0, 0, t.width, t.height), t.on("update", this.onBaseTextureUpdated, this)), this.frame = e) : t.once("loaded", this.onBaseTextureUpdated, this), this.defaultAnchor = o ? new q(o.x, o.y) : new q(0, 0), this._updateID = 0, this.textureCacheIds = [] + } + a && (Texture.__proto__ = a); + var t = { + frame: { + configurable: !0 + }, + rotate: { + configurable: !0 + }, + width: { + configurable: !0 + }, + height: { + configurable: !0 + } + }; + return ((Texture.prototype = Object.create(a && a.prototype)).constructor = Texture).prototype.update = function() { + this.baseTexture.update() + }, Texture.prototype.onBaseTextureUpdated = function(t) { + this._updateID++, this.noFrame ? this.frame = new ot(0, 0, t.width, t.height) : this.frame = this._frame, this.emit("update", this) + }, Texture.prototype.destroy = function(t) { + this.baseTexture && (t && (F[this.baseTexture.imageUrl] && Texture.removeFromCache(this.baseTexture.imageUrl), this.baseTexture.destroy()), this.baseTexture.off("update", this.onBaseTextureUpdated, this), this.baseTexture = null), this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, Texture.removeFromCache(this), this.textureCacheIds = null + }, Texture.prototype.clone = function() { + return new Texture(this.baseTexture, this.frame, this.orig, this.trim, this.rotate, this.defaultAnchor) + }, Texture.prototype.updateUvs = function() { + this._uvs === qt && (this._uvs = new Vt), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++ + }, Texture.from = function(t, e) { + void 0 === e && (e = {}); + var r = null; + r = "string" == typeof t ? t : (t._pixiId || (t._pixiId = "pixiid_" + uid()), t._pixiId); + var n = F[r]; + return n || (e.resolution || (e.resolution = getResolutionOfUrl(t)), (n = new Texture(new Rt(t, e))).baseTexture.cacheId = r, Rt.addToCache(n.baseTexture, r), Texture.addToCache(n, r)), n + }, Texture.fromBuffer = function(t, e, r, n) { + return new Texture(Rt.fromBuffer(t, e, r, n)) + }, Texture.fromLoader = function(t, e, r) { + var n = new Pt(t); + n.url = e; + var i = new Texture(new Rt(n, { + scaleMode: M.SCALE_MODE, + resolution: getResolutionOfUrl(e) + })); + return r || (r = e), Rt.addToCache(i.baseTexture, r), Texture.addToCache(i, r), r !== e && (Rt.addToCache(i.baseTexture, e), Texture.addToCache(i, e)), i + }, Texture.addToCache = function(t, e) { + e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), F[e], F[e] = t) + }, Texture.removeFromCache = function(t) { + if ("string" == typeof t) { + var e = F[t]; + if (e) { + var r = e.textureCacheIds.indexOf(t); + return -1 < r && e.textureCacheIds.splice(r, 1), delete F[t], e + } + } else if (t && t.textureCacheIds) { + for (var n = 0; n < t.textureCacheIds.length; ++n) F[t.textureCacheIds[n]] === t && delete F[t.textureCacheIds[n]]; + return t.textureCacheIds.length = 0, t + } + return null + }, t.frame.get = function() { + return this._frame + }, t.frame.set = function(t) { + this._frame = t, this.noFrame = !1; + var e = t.x, + r = t.y, + n = t.width, + i = t.height, + o = e + n > this.baseTexture.width, + a = r + i > this.baseTexture.height; + if (o || a) { + var s = o && a ? "and" : "or", + u = "X: " + e + " + " + n + " = " + (e + n) + " > " + this.baseTexture.width, + h = "Y: " + r + " + " + i + " = " + (r + i) + " > " + this.baseTexture.height; + throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: " + u + " " + s + " " + h) + } + this.valid = n && i && this.baseTexture.valid, this.trim || this.rotate || (this.orig = t), this.valid && this.updateUvs() + }, t.rotate.get = function() { + return this._rotate + }, t.rotate.set = function(t) { + this._rotate = t, this.valid && this.updateUvs() + }, t.width.get = function() { + return this.orig.width + }, t.height.get = function() { + return this.orig.height + }, Object.defineProperties(Texture.prototype, t), Texture + }(l.a); + + function removeAllHandlers(t) { + t.destroy = function() {}, t.on = function() {}, t.once = function() {}, t.emit = function() {} + } + Ht.EMPTY = new Ht(new Rt), removeAllHandlers(Ht.EMPTY), removeAllHandlers(Ht.EMPTY.baseTexture), Ht.WHITE = function() { + var t = document.createElement("canvas"); + t.width = 16, t.height = 16; + var e = t.getContext("2d"); + return e.fillStyle = "white", e.fillRect(0, 0, 16, 16), new Ht(new Rt(new Ft(t))) + }(), removeAllHandlers(Ht.WHITE), removeAllHandlers(Ht.WHITE.baseTexture); + var Wt = function(s) { + function RenderTexture(t, e) { + var r = null; + if (!(t instanceof Xt)) { + var n = arguments[1], + i = arguments[2], + o = arguments[3], + a = arguments[4]; + r = arguments[0], e = null, t = new Xt({ + width: n, + height: i, + scaleMode: o, + resolution: a + }) + } + s.call(this, t, e), this.legacyRenderer = r, this.valid = !0, this.filterFrame = null, this.filterPoolKey = null, this.updateUvs() + } + return s && (RenderTexture.__proto__ = s), ((RenderTexture.prototype = Object.create(s && s.prototype)).constructor = RenderTexture).prototype.resize = function(t, e, r) { + void 0 === r && (r = !0), t = Math.ceil(t), e = Math.ceil(e), this.valid = 0 < t && 0 < e, this._frame.width = this.orig.width = t, this._frame.height = this.orig.height = e, r && this.baseTexture.resize(t, e), this.updateUvs() + }, RenderTexture.create = function(t) { + return "number" == typeof t && (t = { + width: t, + height: arguments[1], + scaleMode: arguments[2], + resolution: arguments[3] + }), new RenderTexture(new Xt(t)) + }, RenderTexture + }(Ht), + Yt = function(t, e, r, n, i, o, a) { + void 0 === r && (r = !1), void 0 === n && (n = 5126), this.buffer = t, this.size = e, this.normalized = r, this.type = n, this.stride = i, this.start = o, this.instance = a + }; + Yt.prototype.destroy = function() { + this.buffer = null + }, Yt.from = function(t, e, r, n, i) { + return new Yt(t, e, r, n, i) + }; + var Kt = 0, + Zt = function(t, e, r) { + void 0 === e && (e = !0), void 0 === r && (r = !1), this.data = t || new Float32Array(1), this._glBuffers = {}, this._updateID = 0, this.index = r, this.static = e, this.id = Kt++, this.disposeRunner = new gt("disposeBuffer", 2) + }; + + function getBufferType(t) { + if (4 === t.BYTES_PER_ELEMENT) return t instanceof Float32Array ? "Float32Array" : t instanceof Uint32Array ? "Uint32Array" : "Int32Array"; + if (2 === t.BYTES_PER_ELEMENT) { + if (t instanceof Uint16Array) return "Uint16Array" + } else if (1 === t.BYTES_PER_ELEMENT && t instanceof Uint8Array) return "Uint8Array"; + return null + } + Zt.prototype.update = function(t) { + this.data = t || this.data, this._updateID++ + }, Zt.prototype.dispose = function() { + this.disposeRunner.run(this, !1) + }, Zt.prototype.destroy = function() { + this.dispose(), this.data = null + }, Zt.from = function(t) { + return t instanceof Array && (t = new Float32Array(t)), new Zt(t) + }; + var Qt = { + Float32Array: Float32Array, + Uint32Array: Uint32Array, + Int32Array: Int32Array, + Uint8Array: Uint8Array + }; + var Jt = { + 5126: 4, + 5123: 2, + 5121: 1 + }, + $t = 0, + te = { + Float32Array: Float32Array, + Uint32Array: Uint32Array, + Int32Array: Int32Array, + Uint8Array: Uint8Array, + Uint16Array: Uint16Array + }, + ee = function(t, e) { + void 0 === t && (t = []), void 0 === e && (e = {}), this.buffers = t, this.indexBuffer = null, this.attributes = e, this.glVertexArrayObjects = {}, this.id = $t++, this.instanced = !1, this.instanceCount = 1, this._size = null, this.disposeRunner = new gt("disposeGeometry", 2), this.refCount = 0 + }; + ee.prototype.addAttribute = function(t, e, r, n, i, o, a, s) { + if (void 0 === n && (n = !1), void 0 === s && (s = !1), !e) throw new Error("You must pass a buffer when creating an attribute"); + e.data || (e instanceof Array && (e = new Float32Array(e)), e = new Zt(e)); + var u = t.split("|"); + if (1 < u.length) { + for (var h = 0; h < u.length; h++) this.addAttribute(u[h], e, r, n, i); + return this + } + var c = this.buffers.indexOf(e); + return -1 === c && (this.buffers.push(e), c = this.buffers.length - 1), this.attributes[t] = new Yt(c, r, n, i, o, a, s), this.instanced = this.instanced || s, this + }, ee.prototype.getAttribute = function(t) { + return this.buffers[this.attributes[t].buffer] + }, ee.prototype.addIndex = function(t) { + return t.data || (t instanceof Array && (t = new Uint16Array(t)), t = new Zt(t)), t.index = !0, this.indexBuffer = t, -1 === this.buffers.indexOf(t) && this.buffers.push(t), this + }, ee.prototype.getIndex = function() { + return this.indexBuffer + }, ee.prototype.interleave = function() { + if (1 === this.buffers.length || 2 === this.buffers.length && this.indexBuffer) return this; + var t, e = [], + r = [], + n = new Zt; + for (t in this.attributes) { + var i = this.attributes[t], + o = this.buffers[i.buffer]; + e.push(o.data), r.push(i.size * Jt[i.type] / 4), i.buffer = 0 + } + for (n.data = function(t, e) { + for (var r = 0, n = 0, i = {}, o = 0; o < t.length; o++) n += e[o], r += t[o].length; + for (var a = new ArrayBuffer(4 * r), s = null, u = 0, h = 0; h < t.length; h++) { + var c = e[h], + l = t[h], + f = getBufferType(l); + i[f] || (i[f] = new Qt[f](a)), s = i[f]; + for (var d = 0; d < l.length; d++) s[(d / c | 0) * n + u + d % c] = l[d]; + u += c + } + return new Float32Array(a) + }(e, r), t = 0; t < this.buffers.length; t++) this.buffers[t] !== this.indexBuffer && this.buffers[t].destroy(); + return this.buffers = [n], this.indexBuffer && this.buffers.push(this.indexBuffer), this + }, ee.prototype.getSize = function() { + for (var t in this.attributes) { + var e = this.attributes[t]; + return this.buffers[e.buffer].data.length / (e.stride / 4 || e.size) + } + return 0 + }, ee.prototype.dispose = function() { + this.disposeRunner.run(this, !1) + }, ee.prototype.destroy = function() { + this.dispose(), this.buffers = null, this.indexBuffer.destroy(), this.attributes = null + }, ee.prototype.clone = function() { + for (var t = new ee, e = 0; e < this.buffers.length; e++) t.buffers[e] = new Zt(this.buffers[e].data.slice()); + for (var r in this.attributes) { + var n = this.attributes[r]; + t.attributes[r] = new Yt(n.buffer, n.size, n.normalized, n.type, n.stride, n.start, n.instance) + } + return this.indexBuffer && (t.indexBuffer = t.buffers[this.buffers.indexOf(this.indexBuffer)], t.indexBuffer.index = !0), t + }, ee.merge = function(t) { + for (var e, r = new ee, n = [], i = [], o = [], a = 0; a < t.length; a++) { + e = t[a]; + for (var s = 0; s < e.buffers.length; s++) i[s] = i[s] || 0, i[s] += e.buffers[s].data.length, o[s] = 0 + } + for (var u = 0; u < e.buffers.length; u++) n[u] = new(te[getBufferType(e.buffers[u].data)])(i[u]), r.buffers[u] = new Zt(n[u]); + for (var h = 0; h < t.length; h++) { + e = t[h]; + for (var c = 0; c < e.buffers.length; c++) n[c].set(e.buffers[c].data, o[c]), o[c] += e.buffers[c].data.length + } + if (r.attributes = e.attributes, e.indexBuffer) { + r.indexBuffer = r.buffers[e.buffers.indexOf(e.indexBuffer)], r.indexBuffer.index = !0; + for (var l = 0, f = 0, d = 0, p = 0, m = 0; m < e.buffers.length; m++) + if (e.buffers[m] !== e.indexBuffer) { + p = m; + break + } + for (var v in e.attributes) { + var g = e.attributes[v]; + (0 | g.buffer) === p && (f += g.size * Jt[g.type] / 4) + } + for (var y = 0; y < t.length; y++) { + for (var _ = t[y].indexBuffer.data, b = 0; b < _.length; b++) r.indexBuffer.data[b + d] += l; + l += e.buffers[p].data.length / f, d += _.length + } + } + return r + }; + var re = function(t) { + function Quad() { + t.call(this), this.addAttribute("aVertexPosition", [0, 0, 1, 0, 1, 1, 0, 1]).addIndex([0, 1, 3, 2]) + } + return t && (Quad.__proto__ = t), (Quad.prototype = Object.create(t && t.prototype)).constructor = Quad + }(ee), + ne = function(t) { + function QuadUv() { + t.call(this), this.vertices = new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1]), this.uvs = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), this.vertexBuffer = new Zt(this.vertices), this.uvBuffer = new Zt(this.uvs), this.addAttribute("aVertexPosition", this.vertexBuffer).addAttribute("aTextureCoord", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3]) + } + return t && (QuadUv.__proto__ = t), ((QuadUv.prototype = Object.create(t && t.prototype)).constructor = QuadUv).prototype.map = function(t, e) { + var r = 0, + n = 0; + return this.uvs[0] = r, this.uvs[1] = n, this.uvs[2] = r + e.width / t.width, this.uvs[3] = n, this.uvs[4] = r + e.width / t.width, this.uvs[5] = n + e.height / t.height, this.uvs[6] = r, this.uvs[7] = n + e.height / t.height, r = e.x, n = e.y, this.vertices[0] = r, this.vertices[1] = n, this.vertices[2] = r + e.width, this.vertices[3] = n, this.vertices[4] = r + e.width, this.vertices[5] = n + e.height, this.vertices[6] = r, this.vertices[7] = n + e.height, this.invalidate(), this + }, QuadUv.prototype.invalidate = function() { + return this.vertexBuffer._updateID++, this.uvBuffer._updateID++, this + }, QuadUv + }(ee); + var ie = 0, + oe = function(t, e) { + this.uniforms = t, this.group = !0, this.syncUniforms = {}, this.dirtyId = 0, this.id = ie++, this.static = !!e + }; + oe.prototype.update = function() { + this.dirtyId++ + }, oe.prototype.add = function(t, e, r) { + this.uniforms[t] = new oe(e, r) + }, oe.from = function(t, e) { + return new oe(t, e) + }; + var ae = function() { + this.renderTexture = null, this.target = null, this.legacy = !1, this.resolution = 1, this.sourceFrame = new ot, this.destinationFrame = new ot, this.filters = [] + }; + ae.prototype.clear = function() { + this.target = null, this.filters = null, this.renderTexture = null + }; + var se = "screen", + ue = function(e) { + function FilterSystem(t) { + e.call(this, t), this.defaultFilterStack = [{}], this.texturePool = {}, this.statePool = [], this.quad = new re, this.quadUv = new ne, this.tempRect = new ot, this.activeState = {}, this.globalUniforms = new oe({ + outputFrame: this.tempRect, + inputSize: new Float32Array(4), + inputPixel: new Float32Array(4), + inputClamp: new Float32Array(4), + resolution: 1, + filterArea: new Float32Array(4), + filterClamp: new Float32Array(4) + }, !0), this._pixelsWidth = t.view.width, this._pixelsHeight = t.view.height + } + return e && (FilterSystem.__proto__ = e), ((FilterSystem.prototype = Object.create(e && e.prototype)).constructor = FilterSystem).prototype.push = function(t, e) { + for (var r = this.renderer, n = this.defaultFilterStack, i = this.statePool.pop() || new ae, o = e[0].resolution, a = e[0].padding, s = e[0].autoFit, u = e[0].legacy, h = 1; h < e.length; h++) { + var c = e[h]; + o = Math.min(o, c.resolution), a = Math.max(a, c.padding), s = s || c.autoFit, u = u || c.legacy + } + 1 === n.length && (this.defaultFilterStack[0].renderTexture = r.renderTexture.current), n.push(i), i.resolution = o, i.legacy = u, i.target = t, i.sourceFrame.copyFrom(t.filterArea || t.getBounds(!0)), i.sourceFrame.pad(a), s && i.sourceFrame.fit(this.renderer.renderTexture.sourceFrame), i.sourceFrame.ceil(o), i.renderTexture = this.getOptimalFilterTexture(i.sourceFrame.width, i.sourceFrame.height, o), i.filters = e, i.destinationFrame.width = i.renderTexture.width, i.destinationFrame.height = i.renderTexture.height, i.renderTexture.filterFrame = i.sourceFrame, r.renderTexture.bind(i.renderTexture, i.sourceFrame), r.renderTexture.clear() + }, FilterSystem.prototype.pop = function() { + var t = this.defaultFilterStack, + e = t.pop(), + r = e.filters; + this.activeState = e; + var n = this.globalUniforms.uniforms; + n.outputFrame = e.sourceFrame, n.resolution = e.resolution; + var i = n.inputSize, + o = n.inputPixel, + a = n.inputClamp; + if (i[0] = e.destinationFrame.width, i[1] = e.destinationFrame.height, i[2] = 1 / i[0], i[3] = 1 / i[1], o[0] = i[0] * e.resolution, o[1] = i[1] * e.resolution, o[2] = 1 / o[0], o[3] = 1 / o[1], a[0] = .5 * o[2], a[1] = .5 * o[3], a[2] = e.sourceFrame.width * i[2] - .5 * o[2], a[3] = e.sourceFrame.height * i[3] - .5 * o[3], e.legacy) { + var s = n.filterArea; + s[0] = e.destinationFrame.width, s[1] = e.destinationFrame.height, s[2] = e.sourceFrame.x, s[3] = e.sourceFrame.y, n.filterClamp = n.inputClamp + } + this.globalUniforms.update(); + var u = t[t.length - 1]; + if (1 === r.length) r[0].apply(this, e.renderTexture, u.renderTexture, !1, e), this.returnFilterTexture(e.renderTexture); + else { + var h = e.renderTexture, + c = this.getOptimalFilterTexture(h.width, h.height, e.resolution); + c.filterFrame = h.filterFrame; + var l = 0; + for (l = 0; l < r.length - 1; ++l) { + r[l].apply(this, h, c, !0, e); + var f = h; + h = c, c = f + } + r[l].apply(this, h, u.renderTexture, !1, e), this.returnFilterTexture(h), this.returnFilterTexture(c) + } + e.clear(), this.statePool.push(e) + }, FilterSystem.prototype.applyFilter = function(t, e, r, n) { + var i = this.renderer; + i.renderTexture.bind(r, r ? r.filterFrame : null), n && i.renderTexture.clear(), t.uniforms.uSampler = e, t.uniforms.filterGlobals = this.globalUniforms, i.state.setState(t.state), i.shader.bind(t), t.legacy ? (this.quadUv.map(e._frame, e.filterFrame), i.geometry.bind(this.quadUv), i.geometry.draw(x.TRIANGLES)) : (i.geometry.bind(this.quad), i.geometry.draw(x.TRIANGLE_STRIP)) + }, FilterSystem.prototype.calculateScreenSpaceMatrix = function(t) { + var e, r, n, i, o = this.activeState; + return e = t, r = o.sourceFrame, n = o.destinationFrame, (i = e.identity()).translate(r.x / n.width, r.y / n.height), i.scale(n.width, n.height), i + }, FilterSystem.prototype.calculateSpriteMatrix = function(t, e) { + var r, n, i, o, a, s, u, h = this.activeState; + return r = t, n = h.sourceFrame, i = h.destinationFrame, a = (o = e)._texture.orig, s = r.set(i.width, 0, 0, i.height, n.x, n.y), (u = o.worldTransform.copyTo(Y.TEMP_MATRIX)).invert(), s.prepend(u), s.scale(1 / a.width, 1 / a.height), s.translate(o.anchor.x, o.anchor.y), s + }, FilterSystem.prototype.destroy = function(t) { + void 0 === t && (t = !1), t ? this.texturePool = {} : this.emptyPool() + }, FilterSystem.prototype.getOptimalFilterTexture = function(t, e, r) { + void 0 === r && (r = 1); + var n = se; + e *= r, (t *= r) === this._pixelsWidth && e === this._pixelsHeight || (n = (65535 & (t = nextPow2(t))) << 16 | 65535 & (e = nextPow2(e))), this.texturePool[n] || (this.texturePool[n] = []); + var i = this.texturePool[n].pop(); + return i || (i = Wt.create({ + width: t / r, + height: e / r, + resolution: r + })), i.filterPoolKey = n, i + }, FilterSystem.prototype.getFilterTexture = function(t) { + var e = this.activeState.renderTexture, + r = this.getOptimalFilterTexture(e.width, e.height, t || e.baseTexture.resolution); + return r.filterFrame = e.filterFrame, r + }, FilterSystem.prototype.returnFilterTexture = function(t) { + var e = t.filterPoolKey; + t.filterFrame = null, this.texturePool[e].push(t) + }, FilterSystem.prototype.emptyPool = function() { + for (var t in this.texturePool) { + var e = this.texturePool[t]; + if (e) + for (var r = 0; r < e.length; r++) e[r].destroy(!0) + } + this.texturePool = {} + }, FilterSystem.prototype.resize = function() { + var t = this.texturePool[se]; + if (t) + for (var e = 0; e < t.length; e++) t[e].destroy(!0); + this.texturePool[se] = [], this._pixelsWidth = this.renderer.view.width, this._pixelsHeight = this.renderer.view.height + }, FilterSystem + }(Ut), + he = function(t) { + function ObjectRenderer() { + t.apply(this, arguments) + } + return t && (ObjectRenderer.__proto__ = t), ((ObjectRenderer.prototype = Object.create(t && t.prototype)).constructor = ObjectRenderer).prototype.start = function() {}, ObjectRenderer.prototype.stop = function() { + this.flush() + }, ObjectRenderer.prototype.flush = function() {}, ObjectRenderer.prototype.render = function(t) {}, ObjectRenderer + }(Ut), + ce = function(e) { + function BatchSystem(t) { + e.call(this, t), this.emptyRenderer = new he(t), this.currentRenderer = this.emptyRenderer + } + return e && (BatchSystem.__proto__ = e), ((BatchSystem.prototype = Object.create(e && e.prototype)).constructor = BatchSystem).prototype.setObjectRenderer = function(t) { + this.currentRenderer !== t && (this.currentRenderer.stop(), this.currentRenderer = t, this.currentRenderer.start()) + }, BatchSystem.prototype.flush = function() { + this.setObjectRenderer(this.emptyRenderer) + }, BatchSystem.prototype.reset = function() { + this.setObjectRenderer(this.emptyRenderer) + }, BatchSystem + }(Ut); + M.PREFER_ENV = h.a.any ? v.WEBGL : v.WEBGL2; + var le = 0, + fe = function(e) { + function ContextSystem(t) { + e.call(this, t), this.webGLVersion = 1, this.extensions = {}, this.handleContextLost = this.handleContextLost.bind(this), this.handleContextRestored = this.handleContextRestored.bind(this), t.view.addEventListener("webglcontextlost", this.handleContextLost, !1), t.view.addEventListener("webglcontextrestored", this.handleContextRestored, !1) + } + e && (ContextSystem.__proto__ = e), (ContextSystem.prototype = Object.create(e && e.prototype)).constructor = ContextSystem; + var t = { + isLost: { + configurable: !0 + } + }; + return t.isLost.get = function() { + return !this.gl || this.gl.isContextLost() + }, ContextSystem.prototype.contextChange = function(t) { + (this.gl = t).isContextLost() && t.getExtension("WEBGL_lose_context") && t.getExtension("WEBGL_lose_context").restoreContext() + }, ContextSystem.prototype.initFromContext = function(t) { + this.gl = t, this.validateContext(t), this.renderer.gl = t, this.renderer.CONTEXT_UID = le++, this.renderer.runners.contextChange.run(t) + }, ContextSystem.prototype.initFromOptions = function(t) { + var e = this.createContext(this.renderer.view, t); + this.initFromContext(e) + }, ContextSystem.prototype.createContext = function(t, e) { + var r; + if (M.PREFER_ENV >= v.WEBGL2 && (r = t.getContext("webgl2", e)), r) this.webGLVersion = 2; + else if (this.webGLVersion = 1, !(r = t.getContext("webgl", e) || t.getContext("experimental-webgl", e))) throw new Error("This browser does not support WebGL. Try using the canvas renderer"); + return this.gl = r, this.getExtensions(), r + }, ContextSystem.prototype.getExtensions = function() { + var t = this.gl; + 1 === this.webGLVersion && Object.assign(this.extensions, { + drawBuffers: t.getExtension("WEBGL_draw_buffers"), + depthTexture: t.getExtension("WEBKIT_WEBGL_depth_texture"), + floatTexture: t.getExtension("OES_texture_float"), + loseContext: t.getExtension("WEBGL_lose_context"), + vertexArrayObject: t.getExtension("OES_vertex_array_object") || t.getExtension("MOZ_OES_vertex_array_object") || t.getExtension("WEBKIT_OES_vertex_array_object") + }) + }, ContextSystem.prototype.handleContextLost = function(t) { + t.preventDefault() + }, ContextSystem.prototype.handleContextRestored = function() { + this.renderer.runners.contextChange.run(this.gl) + }, ContextSystem.prototype.destroy = function() { + var t = this.renderer.view; + t.removeEventListener("webglcontextlost", this.handleContextLost), t.removeEventListener("webglcontextrestored", this.handleContextRestored), this.gl.useProgram(null), this.extensions.loseContext && this.extensions.loseContext.loseContext() + }, ContextSystem.prototype.postrender = function() { + this.gl.flush() + }, ContextSystem.prototype.validateContext = function(t) { + t.getContextAttributes().stencil + }, Object.defineProperties(ContextSystem.prototype, t), ContextSystem + }(Ut), + de = function(e) { + function FramebufferSystem(t) { + e.call(this, t), this.managedFramebuffers = [], this.unknownFramebuffer = new jt(10, 10) + } + e && (FramebufferSystem.__proto__ = e); + var t = { + size: { + configurable: !0 + } + }; + return ((FramebufferSystem.prototype = Object.create(e && e.prototype)).constructor = FramebufferSystem).prototype.contextChange = function() { + var t = this.gl = this.renderer.gl; + if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.current = this.unknownFramebuffer, this.viewport = new ot, this.hasMRT = !0, this.writeDepthTexture = !0, this.disposeAll(!0), 1 === this.renderer.context.webGLVersion) { + var e = this.renderer.context.extensions.drawBuffers, + r = this.renderer.context.extensions.depthTexture; + M.PREFER_ENV === v.WEBGL_LEGACY && (r = e = null), t.drawBuffers = e ? function(t) { + return e.drawBuffersWEBGL(t) + } : (this.hasMRT = !1, function() {}), r || (this.writeDepthTexture = !1) + } + }, FramebufferSystem.prototype.bind = function(t, e) { + var r = this.gl; + if (t) { + var n = t.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(t); + this.current !== t && (this.current = t, r.bindFramebuffer(r.FRAMEBUFFER, n.framebuffer)), n.dirtyId !== t.dirtyId && (n.dirtyId = t.dirtyId, n.dirtyFormat !== t.dirtyFormat ? (n.dirtyFormat = t.dirtyFormat, this.updateFramebuffer(t)) : n.dirtySize !== t.dirtySize && (n.dirtySize = t.dirtySize, this.resizeFramebuffer(t))); + for (var i = 0; i < t.colorTextures.length; i++) t.colorTextures[i].texturePart ? this.renderer.texture.unbind(t.colorTextures[i].texture) : this.renderer.texture.unbind(t.colorTextures[i]); + t.depthTexture && this.renderer.texture.unbind(t.depthTexture), e ? this.setViewport(e.x, e.y, e.width, e.height) : this.setViewport(0, 0, t.width, t.height) + } else this.current && (this.current = null, r.bindFramebuffer(r.FRAMEBUFFER, null)), e ? this.setViewport(e.x, e.y, e.width, e.height) : this.setViewport(0, 0, this.renderer.width, this.renderer.height) + }, FramebufferSystem.prototype.setViewport = function(t, e, r, n) { + var i = this.viewport; + i.width === r && i.height === n && i.x === t && i.y === e || (i.x = t, i.y = e, i.width = r, i.height = n, this.gl.viewport(t, e, r, n)) + }, t.size.get = function() { + return this.current ? { + x: 0, + y: 0, + width: this.current.width, + height: this.current.height + } : { + x: 0, + y: 0, + width: this.renderer.width, + height: this.renderer.height + } + }, FramebufferSystem.prototype.clear = function(t, e, r, n) { + var i = this.gl; + i.clearColor(t, e, r, n), i.clear(i.COLOR_BUFFER_BIT | i.DEPTH_BUFFER_BIT) + }, FramebufferSystem.prototype.initFramebuffer = function(t) { + var e = { + framebuffer: this.gl.createFramebuffer(), + stencil: null, + dirtyId: 0, + dirtyFormat: 0, + dirtySize: 0 + }; + return t.glFramebuffers[this.CONTEXT_UID] = e, this.managedFramebuffers.push(t), t.disposeRunner.add(this), e + }, FramebufferSystem.prototype.resizeFramebuffer = function(t) { + var e = this.gl, + r = t.glFramebuffers[this.CONTEXT_UID]; + r.stencil && (e.bindRenderbuffer(e.RENDERBUFFER, r.stencil), e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, t.width, t.height)); + for (var n = t.colorTextures, i = 0; i < n.length; i++) this.renderer.texture.bind(n[i], 0); + t.depthTexture && this.renderer.texture.bind(t.depthTexture, 0) + }, FramebufferSystem.prototype.updateFramebuffer = function(t) { + var e = this.gl, + r = t.glFramebuffers[this.CONTEXT_UID], + n = t.colorTextures.length; + e.drawBuffers || (n = Math.min(n, 1)); + for (var i = [], o = 0; o < n; o++) { + var a = t.colorTextures[o]; + a.texturePart ? (this.renderer.texture.bind(a.texture, 0), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + o, e.TEXTURE_CUBE_MAP_NEGATIVE_X + a.side, a.texture._glTextures[this.CONTEXT_UID].texture, 0)) : (this.renderer.texture.bind(a, 0), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + o, e.TEXTURE_2D, a._glTextures[this.CONTEXT_UID].texture, 0)), i.push(e.COLOR_ATTACHMENT0 + o) + } + if ((1 < i.length && e.drawBuffers(i), t.depthTexture) && this.writeDepthTexture) { + var s = t.depthTexture; + this.renderer.texture.bind(s, 0), e.framebufferTexture2D(e.FRAMEBUFFER, e.DEPTH_ATTACHMENT, e.TEXTURE_2D, s._glTextures[this.CONTEXT_UID].texture, 0) + } + r.stencil || !t.stencil && !t.depth || (r.stencil = e.createRenderbuffer(), e.bindRenderbuffer(e.RENDERBUFFER, r.stencil), t.depthTexture || e.framebufferRenderbuffer(e.FRAMEBUFFER, e.DEPTH_STENCIL_ATTACHMENT, e.RENDERBUFFER, r.stencil), e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, t.width, t.height)) + }, FramebufferSystem.prototype.disposeFramebuffer = function(t, e) { + var r = t.glFramebuffers[this.CONTEXT_UID], + n = this.gl; + if (r) { + delete t.glFramebuffers[this.CONTEXT_UID]; + var i = this.managedFramebuffers.indexOf(t); + 0 <= i && this.managedFramebuffers.splice(i, 1), t.disposeRunner.remove(this), e || (n.deleteFramebuffer(r.framebuffer), r.stencil && n.deleteRenderbuffer(r.stencil)) + } + }, FramebufferSystem.prototype.disposeAll = function(t) { + var e = this.managedFramebuffers; + this.managedFramebuffers = []; + for (var r = 0; r < e.count; r++) this.disposeFramebuffer(e[r], t) + }, FramebufferSystem.prototype.reset = function() { + this.current = this.unknownFramebuffer, this.viewport = new ot + }, Object.defineProperties(FramebufferSystem.prototype, t), FramebufferSystem + }(Ut), + pe = function(t) { + this.buffer = t, this.updateID = -1, this.byteLength = -1, this.refCount = 0 + }, + me = { + 5126: 4, + 5123: 2, + 5121: 1 + }, + ve = function(e) { + function GeometrySystem(t) { + e.call(this, t), this._activeGeometry = null, this._activeVao = null, this.hasVao = !0, this.hasInstance = !0, this.boundBuffers = {}, this.managedGeometries = {}, this.managedBuffers = {} + } + return e && (GeometrySystem.__proto__ = e), ((GeometrySystem.prototype = Object.create(e && e.prototype)).constructor = GeometrySystem).prototype.contextChange = function() { + this.disposeAll(!0); + var t = this.gl = this.renderer.gl; + if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, !t.createVertexArray) { + var e = this.renderer.context.extensions.vertexArrayObject; + M.PREFER_ENV === v.WEBGL_LEGACY && (e = null), t.deleteVertexArray = e ? (t.createVertexArray = function() { + return e.createVertexArrayOES() + }, t.bindVertexArray = function(t) { + return e.bindVertexArrayOES(t) + }, function(t) { + return e.deleteVertexArrayOES(t) + }) : (this.hasVao = !1, t.createVertexArray = function() {}, t.bindVertexArray = function() {}, function() {}) + } + if (!t.vertexAttribDivisor) { + var o = t.getExtension("ANGLE_instanced_arrays"); + o ? (t.vertexAttribDivisor = function(t, e) { + return o.vertexAttribDivisorANGLE(t, e) + }, t.drawElementsInstanced = function(t, e, r, n, i) { + return o.drawElementsInstancedANGLE(t, e, r, n, i) + }, t.drawArraysInstanced = function(t, e, r, n) { + return o.drawArraysInstancedANGLE(t, e, r, n) + }) : this.hasInstance = !1 + } + }, GeometrySystem.prototype.bind = function(t, e) { + e = e || this.renderer.shader.shader; + var r = this.gl, + n = t.glVertexArrayObjects[this.CONTEXT_UID]; + n || ((this.managedGeometries[t.id] = t).disposeRunner.add(this), t.glVertexArrayObjects[this.CONTEXT_UID] = n = {}); + var i = n[e.program.id] || this.initGeometryVao(t, e.program); + this._activeGeometry = t, this._activeVao !== i && (this._activeVao = i, this.hasVao ? r.bindVertexArray(i) : this.activateVao(t, e.program)), this.updateBuffers() + }, GeometrySystem.prototype.reset = function() { + this.unbind() + }, GeometrySystem.prototype.updateBuffers = function() { + for (var t = this._activeGeometry, e = this.gl, r = 0; r < t.buffers.length; r++) { + var n = t.buffers[r], + i = n._glBuffers[this.CONTEXT_UID]; + if (n._updateID !== i.updateID) { + i.updateID = n._updateID; + var o = n.index ? e.ELEMENT_ARRAY_BUFFER : e.ARRAY_BUFFER; + if (e.bindBuffer(o, i.buffer), (this._boundBuffer = i).byteLength >= n.data.byteLength) e.bufferSubData(o, 0, n.data); + else { + var a = n.static ? e.STATIC_DRAW : e.DYNAMIC_DRAW; + i.byteLength = n.data.byteLength, e.bufferData(o, n.data, a) + } + } + } + }, GeometrySystem.prototype.checkCompatibility = function(t, e) { + var r = t.attributes, + n = e.attributeData; + for (var i in n) + if (!r[i]) throw new Error('shader and geometry incompatible, geometry missing the "' + i + '" attribute') + }, GeometrySystem.prototype.getSignature = function(t, e) { + var r = t.attributes, + n = e.attributeData, + i = ["g", t.id]; + for (var o in r) n[o] && i.push(o); + return i.join("-") + }, GeometrySystem.prototype.initGeometryVao = function(t, e) { + this.checkCompatibility(t, e); + var r = this.gl, + n = this.CONTEXT_UID, + i = this.getSignature(t, e), + o = t.glVertexArrayObjects[this.CONTEXT_UID], + a = o[i]; + if (a) return o[e.id] = a; + var s = t.buffers, + u = t.attributes, + h = {}, + c = {}; + for (var l in s) h[l] = 0, c[l] = 0; + for (var f in u) !u[f].size && e.attributeData[f] ? u[f].size = e.attributeData[f].size : u[f].size, h[u[f].buffer] += u[f].size * me[u[f].type]; + for (var d in u) { + var p = u[d], + m = p.size; + void 0 === p.stride && (h[p.buffer] === m * me[p.type] ? p.stride = 0 : p.stride = h[p.buffer]), void 0 === p.start && (p.start = c[p.buffer], c[p.buffer] += m * me[p.type]) + } + a = r.createVertexArray(), r.bindVertexArray(a); + for (var v = 0; v < s.length; v++) { + var g = s[v]; + g._glBuffers[n] || (g._glBuffers[n] = new pe(r.createBuffer()), (this.managedBuffers[g.id] = g).disposeRunner.add(this)), g._glBuffers[n].refCount++ + } + return this.activateVao(t, e), r.bindVertexArray(this._activeVao), o[e.id] = a, o[i] = a + }, GeometrySystem.prototype.disposeBuffer = function(t, e) { + if (this.managedBuffers[t.id]) { + delete this.managedBuffers[t.id]; + var r = t._glBuffers[this.CONTEXT_UID], + n = this.gl; + t.disposeRunner.remove(this), r && (e || n.deleteBuffer(r.buffer), delete t._glBuffers[this.CONTEXT_UID]) + } + }, GeometrySystem.prototype.disposeGeometry = function(t, e) { + if (this.managedGeometries[t.id]) { + delete this.managedGeometries[t.id]; + var r = t.glVertexArrayObjects[this.CONTEXT_UID], + n = this.gl, + i = t.buffers; + if (t.disposeRunner.remove(this), r) { + for (var o = 0; o < i.length; o++) { + var a = i[o]._glBuffers[this.CONTEXT_UID]; + a.refCount--, 0 !== a.refCount || e || this.disposeBuffer(i[o], e) + } + if (!e) + for (var s in r) "g" === s[0] && n.deleteVertexArray(r[s]); + delete t.glVertexArrayObjects[this.CONTEXT_UID] + } + } + }, GeometrySystem.prototype.disposeAll = function(t) { + for (var e = Object.keys(this.managedGeometries), r = 0; r < e.length; r++) this.disposeGeometry(this.managedGeometries[e[r]], t); + e = Object.keys(this.managedBuffers); + for (var n = 0; n < e.length; n++) this.disposeBuffer(this.managedBuffers[e[n]], t) + }, GeometrySystem.prototype.activateVao = function(t, e) { + var r = this.gl, + n = this.CONTEXT_UID, + i = t.buffers, + o = t.attributes; + t.indexBuffer && r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, t.indexBuffer._glBuffers[n].buffer); + var a = null; + for (var s in o) { + var u = o[s], + h = i[u.buffer]._glBuffers[n]; + if (e.attributeData[s]) { + a !== h && (r.bindBuffer(r.ARRAY_BUFFER, h.buffer), a = h); + var c = e.attributeData[s].location; + if (r.enableVertexAttribArray(c), r.vertexAttribPointer(c, u.size, u.type || r.FLOAT, u.normalized, u.stride, u.start), u.instance) { + if (!this.hasInstance) throw new Error("geometry error, GPU Instancing is not supported on this device"); + r.vertexAttribDivisor(c, 1) + } + } + } + }, GeometrySystem.prototype.draw = function(t, e, r, n) { + var i = this.gl, + o = this._activeGeometry; + return o.indexBuffer ? o.instanced ? i.drawElementsInstanced(t, e || o.indexBuffer.data.length, i.UNSIGNED_SHORT, 2 * (r || 0), n || 1) : i.drawElements(t, e || o.indexBuffer.data.length, i.UNSIGNED_SHORT, 2 * (r || 0)) : o.instanced ? i.drawArraysInstanced(t, r, e || o.getSize(), n || 1) : i.drawArrays(t, r, e || o.getSize()), this + }, GeometrySystem.prototype.unbind = function() { + this.gl.bindVertexArray(null), this._activeVao = null, this._activeGeometry = null + }, GeometrySystem + }(Ut); + + function compileProgram(t, e, r, n) { + var i = compileShader(t, t.VERTEX_SHADER, e), + o = compileShader(t, t.FRAGMENT_SHADER, r), + a = t.createProgram(); + if (t.attachShader(a, i), t.attachShader(a, o), n) + for (var s in n) t.bindAttribLocation(a, n[s], s); + return t.linkProgram(a), t.getProgramParameter(a, t.LINK_STATUS) || (t.getProgramInfoLog(a), t.deleteProgram(a), a = null), t.deleteShader(i), t.deleteShader(o), a + } + + function compileShader(t, e, r) { + var n = t.createShader(e); + return t.shaderSource(n, r), t.compileShader(n), t.getShaderParameter(n, t.COMPILE_STATUS) ? n : null + } + + function core_es_defaultValue(t, e) { + switch (t) { + case "float": + return 0; + case "vec2": + return new Float32Array(2 * e); + case "vec3": + return new Float32Array(3 * e); + case "vec4": + return new Float32Array(4 * e); + case "int": + case "sampler2D": + case "sampler2DArray": + return 0; + case "ivec2": + return new Int32Array(2 * e); + case "ivec3": + return new Int32Array(3 * e); + case "ivec4": + return new Int32Array(4 * e); + case "bool": + return !1; + case "bvec2": + return booleanArray(2 * e); + case "bvec3": + return booleanArray(3 * e); + case "bvec4": + return booleanArray(4 * e); + case "mat2": + return new Float32Array([1, 0, 0, 1]); + case "mat3": + return new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); + case "mat4": + return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]) + } + return null + } + + function booleanArray(t) { + for (var e = new Array(t), r = 0; r < e.length; r++) e[r] = !1; + return e + } + + function setPrecision(t, e) { + return "precision" !== t.substring(0, 9) ? "precision " + e + " float;\n" + t : t + } + var ge = { + float: 1, + vec2: 2, + vec3: 3, + vec4: 4, + int: 1, + ivec2: 2, + ivec3: 3, + ivec4: 4, + bool: 1, + bvec2: 2, + bvec3: 3, + bvec4: 4, + mat2: 4, + mat3: 9, + mat4: 16, + sampler2D: 1 + }; + var ye = null, + _e = { + FLOAT: "float", + FLOAT_VEC2: "vec2", + FLOAT_VEC3: "vec3", + FLOAT_VEC4: "vec4", + INT: "int", + INT_VEC2: "ivec2", + INT_VEC3: "ivec3", + INT_VEC4: "ivec4", + BOOL: "bool", + BOOL_VEC2: "bvec2", + BOOL_VEC3: "bvec3", + BOOL_VEC4: "bvec4", + FLOAT_MAT2: "mat2", + FLOAT_MAT3: "mat3", + FLOAT_MAT4: "mat4", + SAMPLER_2D: "sampler2D", + SAMPLER_CUBE: "samplerCube", + SAMPLER_2D_ARRAY: "sampler2DArray" + }; + + function mapType(t, e) { + if (!ye) { + var r = Object.keys(_e); + ye = {}; + for (var n = 0; n < r.length; ++n) { + var i = r[n]; + ye[t[i]] = _e[i] + } + } + return ye[e] + } + var be = { + float: "\n if(cv !== v)\n {\n cv.v = v;\n gl.uniform1f(location, v)\n }", + vec2: "\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(location, v[0], v[1])\n }", + vec3: "\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3f(location, v[0], v[1], v[2])\n }", + vec4: "gl.uniform4f(location, v[0], v[1], v[2], v[3])", + int: "gl.uniform1i(location, v)", + ivec2: "gl.uniform2i(location, v[0], v[1])", + ivec3: "gl.uniform3i(location, v[0], v[1], v[2])", + ivec4: "gl.uniform4i(location, v[0], v[1], v[2], v[3])", + bool: "gl.uniform1i(location, v)", + bvec2: "gl.uniform2i(location, v[0], v[1])", + bvec3: "gl.uniform3i(location, v[0], v[1], v[2])", + bvec4: "gl.uniform4i(location, v[0], v[1], v[2], v[3])", + mat2: "gl.uniformMatrix2fv(location, false, v)", + mat3: "gl.uniformMatrix3fv(location, false, v)", + mat4: "gl.uniformMatrix4fv(location, false, v)", + sampler2D: "gl.uniform1i(location, v)", + samplerCube: "gl.uniform1i(location, v)", + sampler2DArray: "gl.uniform1i(location, v)" + }, + xe = { + float: "gl.uniform1fv(location, v)", + vec2: "gl.uniform2fv(location, v)", + vec3: "gl.uniform3fv(location, v)", + vec4: "gl.uniform4fv(location, v)", + mat4: "gl.uniformMatrix4fv(location, false, v)", + mat3: "gl.uniformMatrix3fv(location, false, v)", + mat2: "gl.uniformMatrix2fv(location, false, v)", + int: "gl.uniform1iv(location, v)", + ivec2: "gl.uniform2iv(location, v)", + ivec3: "gl.uniform3iv(location, v)", + ivec4: "gl.uniform4iv(location, v)", + bool: "gl.uniform1iv(location, v)", + bvec2: "gl.uniform2iv(location, v)", + bvec3: "gl.uniform3iv(location, v)", + bvec4: "gl.uniform4iv(location, v)", + sampler2D: "gl.uniform1iv(location, v)", + samplerCube: "gl.uniform1iv(location, v)", + sampler2DArray: "gl.uniform1iv(location, v)" + }; + var we = null; + var Te, Se = ["precision mediump float;", "void main(void){", "float test = 0.1;", "%forloop%", "gl_FragColor = vec4(0.0);", "}"].join("\n"); + + function checkMaxIfStatementsInShader(t, e) { + if (0 === t) throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`"); + for (var r = e.createShader(e.FRAGMENT_SHADER);;) { + var n = Se.replace(/%forloop%/gi, generateIfTestSrc(t)); + if (e.shaderSource(r, n), e.compileShader(r), e.getShaderParameter(r, e.COMPILE_STATUS)) break; + t = t / 2 | 0 + } + return t + } + + function generateIfTestSrc(t) { + for (var e = "", r = 0; r < t; ++r) 0 < r && (e += "\nelse "), r < t - 1 && (e += "if(test == " + r + ".0){}"); + return e + } + var Me = 0, + Ee = {}, + Ae = function Program(t, e, r) { + void 0 === r && (r = "pixi-shader"), this.id = Me++, this.vertexSrc = t || Program.defaultVertexSrc, this.fragmentSrc = e || Program.defaultFragmentSrc, this.vertexSrc = this.vertexSrc.trim(), this.fragmentSrc = this.fragmentSrc.trim(), "#version" !== this.vertexSrc.substring(0, 8) && (r = r.replace(/\s+/g, "-"), Ee[r] ? (Ee[r]++, r += "-" + Ee[r]) : Ee[r] = 1, this.vertexSrc = "#define SHADER_NAME " + r + "\n" + this.vertexSrc, this.fragmentSrc = "#define SHADER_NAME " + r + "\n" + this.fragmentSrc, this.vertexSrc = setPrecision(this.vertexSrc, M.PRECISION_VERTEX), this.fragmentSrc = setPrecision(this.fragmentSrc, M.PRECISION_FRAGMENT)), this.extractData(this.vertexSrc, this.fragmentSrc), this.glPrograms = {}, this.syncUniforms = null + }, + Pe = { + defaultVertexSrc: { + configurable: !0 + }, + defaultFragmentSrc: { + configurable: !0 + } + }; + Ae.prototype.extractData = function(t, e) { + var r = function() { + if (we) return we; + var t, e = document.createElement("canvas"); + if (M.PREFER_ENV >= v.WEBGL2 && (t = e.getContext("webgl2", {})), !t) { + if (!(t = e.getContext("webgl", {}) || e.getContext("experimental-webgl", {}))) throw new Error("This browser does not support WebGL. Try using the canvas renderer"); + t.getExtension("WEBGL_draw_buffers") + } + return we = t + }(); + if (r) { + var n = compileProgram(r, t, e); + this.attributeData = this.getAttributeData(n, r), this.uniformData = this.getUniformData(n, r), r.deleteProgram(n) + } else this.uniformData = {}, this.attributeData = {} + }, Ae.prototype.getAttributeData = function(t, e) { + for (var r, n = {}, i = [], o = e.getProgramParameter(t, e.ACTIVE_ATTRIBUTES), a = 0; a < o; a++) { + var s = e.getActiveAttrib(t, a), + u = mapType(e, s.type), + h = { + type: u, + name: s.name, + size: (r = u, ge[r]), + location: 0 + }; + n[s.name] = h, i.push(h) + } + i.sort(function(t, e) { + return t.name > e.name ? 1 : -1 + }); + for (var c = 0; c < i.length; c++) i[c].location = c; + return n + }, Ae.prototype.getUniformData = function(t, e) { + for (var r = {}, n = e.getProgramParameter(t, e.ACTIVE_UNIFORMS), i = 0; i < n; i++) { + var o = e.getActiveUniform(t, i), + a = o.name.replace(/\[.*?\]/, ""), + s = o.name.match(/\[.*?\]/, ""), + u = mapType(e, o.type); + r[a] = { + type: u, + size: o.size, + isArray: s, + value: core_es_defaultValue(u, o.size) + } + } + return r + }, Pe.defaultVertexSrc.get = function() { + return "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}\n" + }, Pe.defaultFragmentSrc.get = function() { + return "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor *= texture2D(uSampler, vTextureCoord);\n}" + }, Ae.from = function(t, e, r) { + var n = t + e, + i = D[n]; + return i || (D[n] = i = new Ae(t, e, r)), i + }, Object.defineProperties(Ae, Pe); + var Ie = function(t, e) { + for (var r in this.program = t, this.uniformGroup = e ? e instanceof oe ? e : new oe(e) : new oe({}), t.uniformData) this.uniformGroup.uniforms[r] instanceof Array && (this.uniformGroup.uniforms[r] = new Float32Array(this.uniformGroup.uniforms[r])) + }, + Oe = { + uniforms: { + configurable: !0 + } + }; + Ie.prototype.checkUniformExists = function(t, e) { + if (e.uniforms[t]) return !0; + for (var r in e.uniforms) { + var n = e.uniforms[r]; + if (n.group && this.checkUniformExists(t, n)) return !0 + } + return !1 + }, Ie.prototype.destroy = function() { + this.uniformGroup = null + }, Oe.uniforms.get = function() { + return this.uniformGroup.uniforms + }, Ie.from = function(t, e, r) { + var n = Ae.from(t, e); + return new Ie(n, r) + }, Object.defineProperties(Ie.prototype, Oe); + var Ce = function() { + this.data = 0, this.blendMode = y.NORMAL, this.polygonOffset = 0, this.blend = !0 + }, + Re = { + blend: { + configurable: !0 + }, + offsets: { + configurable: !0 + }, + culling: { + configurable: !0 + }, + depthTest: { + configurable: !0 + }, + clockwiseFrontFace: { + configurable: !0 + }, + blendMode: { + configurable: !0 + }, + polygonOffset: { + configurable: !0 + } + }; + Re.blend.get = function() { + return !!(1 & this.data) + }, Re.blend.set = function(t) { + !!(1 & this.data) !== t && (this.data ^= 1) + }, Re.offsets.get = function() { + return !!(2 & this.data) + }, Re.offsets.set = function(t) { + !!(2 & this.data) !== t && (this.data ^= 2) + }, Re.culling.get = function() { + return !!(4 & this.data) + }, Re.culling.set = function(t) { + !!(4 & this.data) !== t && (this.data ^= 4) + }, Re.depthTest.get = function() { + return !!(8 & this.data) + }, Re.depthTest.set = function(t) { + !!(8 & this.data) !== t && (this.data ^= 8) + }, Re.clockwiseFrontFace.get = function() { + return !!(16 & this.data) + }, Re.clockwiseFrontFace.set = function(t) { + !!(16 & this.data) !== t && (this.data ^= 16) + }, Re.blendMode.get = function() { + return this._blendMode + }, Re.blendMode.set = function(t) { + this.blend = t !== y.NONE, this._blendMode = t + }, Re.polygonOffset.get = function() { + return this._polygonOffset + }, Re.polygonOffset.set = function(t) { + this.offsets = !!t, this._polygonOffset = t + }, Ce.for2d = function() { + var t = new Ce; + return t.depthTest = !1, t.blend = !0, t + }, Object.defineProperties(Ce.prototype, Re); + var De = function(i) { + function Filter(t, e, r) { + var n = Ae.from(t || Filter.defaultVertexSrc, e || Filter.defaultFragmentSrc); + i.call(this, n, r), this.padding = 0, this.resolution = M.FILTER_RESOLUTION, this.enabled = !0, this.autoFit = !0, this.legacy = !!this.program.attributeData.aTextureCoord, this.state = new Ce + } + i && (Filter.__proto__ = i); + var t = { + blendMode: { + configurable: !0 + } + }, + e = { + defaultVertexSrc: { + configurable: !0 + }, + defaultFragmentSrc: { + configurable: !0 + } + }; + return ((Filter.prototype = Object.create(i && i.prototype)).constructor = Filter).prototype.apply = function(t, e, r, n, i, o) { + t.applyFilter(this, e, r, n, i, o) + }, t.blendMode.get = function() { + return this.state.blendMode + }, t.blendMode.set = function(t) { + this.state.blendMode = t + }, e.defaultVertexSrc.get = function() { + return "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n" + }, e.defaultFragmentSrc.get = function() { + return "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n" + }, Object.defineProperties(Filter.prototype, t), Object.defineProperties(Filter, e), Filter + }(Ie); + De.SOURCE_KEY_MAP = {}; + var Fe = new Y, + ke = function(t, e) { + this._texture = t, this.mapCoord = new Y, this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._updateID = -1, this.clampOffset = 0, this.clampMargin = void 0 === e ? .5 : e, this.isSimple = !1 + }, + Le = { + texture: { + configurable: !0 + } + }; + Le.texture.get = function() { + return this._texture + }, Le.texture.set = function(t) { + this._texture = t, this._updateID = -1 + }, ke.prototype.multiplyUvs = function(t, e) { + void 0 === e && (e = t); + for (var r = this.mapCoord, n = 0; n < t.length; n += 2) { + var i = t[n], + o = t[n + 1]; + e[n] = i * r.a + o * r.c + r.tx, e[n + 1] = i * r.b + o * r.d + r.ty + } + return e + }, ke.prototype.update = function(t) { + var e = this._texture; + if (!e || !e.valid) return !1; + if (!t && this._updateID === e._updateID) return !1; + this._updateID = e._updateID; + var r = e._uvs; + this.mapCoord.set(r.x1 - r.x0, r.y1 - r.y0, r.x3 - r.x0, r.y3 - r.y0, r.x0, r.y0); + var n = e.orig, + i = e.trim; + i && (Fe.set(n.width / i.width, 0, 0, n.height / i.height, -i.x / i.width, -i.y / i.height), this.mapCoord.append(Fe)); + var o = e.baseTexture, + a = this.uClampFrame, + s = this.clampMargin / o.resolution, + u = this.clampOffset; + return a[0] = (e._frame.x + s + u) / o.width, a[1] = (e._frame.y + s + u) / o.height, a[2] = (e._frame.x + e._frame.width - s + u) / o.width, a[3] = (e._frame.y + e._frame.height - s + u) / o.height, this.uClampOffset[0] = u / o.realWidth, this.uClampOffset[1] = u / o.realHeight, this.isSimple = e._frame.width === o.width && e._frame.height === o.height && 0 === e.rotate, !0 + }, Object.defineProperties(ke.prototype, Le); + var Ne = function(r) { + function SpriteMaskFilter(t) { + var e = new Y; + r.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;\n}\n", "varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform float npmAlpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(maskClamp.x, vMaskCoord.x) +\n step(maskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, maskClamp.z) +\n step(vMaskCoord.y, maskClamp.w));\n\n vec4 original = texture2D(uSampler, vTextureCoord);\n vec4 masky = texture2D(mask, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * alpha * clip);\n\n gl_FragColor = original;\n}\n"), t.renderable = !1, this.maskSprite = t, this.maskMatrix = e + } + return r && (SpriteMaskFilter.__proto__ = r), ((SpriteMaskFilter.prototype = Object.create(r && r.prototype)).constructor = SpriteMaskFilter).prototype.apply = function(t, e, r, n) { + var i = this.maskSprite, + o = this.maskSprite.texture; + o.valid && (o.transform || (o.transform = new ke(o, 0)), o.transform.update(), this.uniforms.npmAlpha = o.baseTexture.premultiplyAlpha ? 0 : 1, this.uniforms.mask = o, this.uniforms.otherMatrix = t.calculateSpriteMatrix(this.maskMatrix, i).prepend(o.transform.mapCoord), this.uniforms.alpha = i.worldAlpha, this.uniforms.maskClamp = o.transform.uClampFrame, t.applyFilter(this, e, r, n)) + }, SpriteMaskFilter + }(De), + Be = function(e) { + function MaskSystem(t) { + e.call(this, t), this.scissor = !1, this.scissorData = null, this.scissorRenderTarget = null, this.enableScissor = !1, this.alphaMaskPool = [], this.alphaMaskIndex = 0 + } + return e && (MaskSystem.__proto__ = e), ((MaskSystem.prototype = Object.create(e && e.prototype)).constructor = MaskSystem).prototype.push = function(t, e) { + if (e.isSprite) this.pushSpriteMask(t, e); + else if (this.enableScissor && !this.scissor && this.renderer._activeRenderTarget.root && !this.renderer.stencil.stencilMaskStack.length && e.isFastRect()) { + var r = e.worldTransform, + n = Math.atan2(r.b, r.a); + (n = Math.round(n * (180 / Math.PI))) % 90 ? this.pushStencilMask(e) : this.pushScissorMask(t, e) + } else this.pushStencilMask(e) + }, MaskSystem.prototype.pop = function(t, e) { + e.isSprite ? this.popSpriteMask(t, e) : this.enableScissor && !this.renderer.stencil.stencilMaskStack.length ? this.popScissorMask(t, e) : this.popStencilMask(t, e) + }, MaskSystem.prototype.pushSpriteMask = function(t, e) { + var r = this.alphaMaskPool[this.alphaMaskIndex]; + r || (r = this.alphaMaskPool[this.alphaMaskIndex] = [new Ne(e)]), r[0].resolution = this.renderer.resolution, r[0].maskSprite = e; + var n = t.filterArea; + t.filterArea = e.getBounds(!0), this.renderer.filter.push(t, r), t.filterArea = n, this.alphaMaskIndex++ + }, MaskSystem.prototype.popSpriteMask = function() { + this.renderer.filter.pop(), this.alphaMaskIndex-- + }, MaskSystem.prototype.pushStencilMask = function(t) { + this.renderer.batch.flush(), this.renderer.stencil.pushStencil(t) + }, MaskSystem.prototype.popStencilMask = function() { + this.renderer.stencil.popStencil() + }, MaskSystem.prototype.pushScissorMask = function(t, e) { + e.renderable = !0; + var r = this.renderer._activeRenderTarget, + n = e.getBounds(); + n.fit(r.size), e.renderable = !1, this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST); + var i = this.renderer.resolution; + this.renderer.gl.scissor(n.x * i, (r.root ? r.size.height - n.y - n.height : n.y) * i, n.width * i, n.height * i), this.scissorRenderTarget = r, this.scissorData = e, this.scissor = !0 + }, MaskSystem.prototype.popScissorMask = function() { + this.scissorRenderTarget = null, this.scissorData = null, this.scissor = !1; + var t = this.renderer.gl; + t.disable(t.SCISSOR_TEST) + }, MaskSystem + }(Ut), + Ue = function(e) { + function StencilSystem(t) { + e.call(this, t), this.stencilMaskStack = [] + } + return e && (StencilSystem.__proto__ = e), ((StencilSystem.prototype = Object.create(e && e.prototype)).constructor = StencilSystem).prototype.setMaskStack = function(t) { + var e = this.renderer.gl; + t.length !== this.stencilMaskStack.length && (0 === t.length ? e.disable(e.STENCIL_TEST) : e.enable(e.STENCIL_TEST)), this.stencilMaskStack = t + }, StencilSystem.prototype.pushStencil = function(t) { + var e = this.renderer.gl, + r = this.stencilMaskStack.length; + 0 === r && e.enable(e.STENCIL_TEST), this.stencilMaskStack.push(t), e.colorMask(!1, !1, !1, !1), e.stencilFunc(e.EQUAL, r, this._getBitwiseMask()), e.stencilOp(e.KEEP, e.KEEP, e.INCR), t.renderable = !0, t.render(this.renderer), this.renderer.batch.flush(), t.renderable = !1, this._useCurrent() + }, StencilSystem.prototype.popStencil = function() { + var t = this.renderer.gl, + e = this.stencilMaskStack.pop(); + 0 === this.stencilMaskStack.length ? (t.disable(t.STENCIL_TEST), t.clear(t.STENCIL_BUFFER_BIT), t.clearStencil(0)) : (t.colorMask(!1, !1, !1, !1), t.stencilOp(t.KEEP, t.KEEP, t.DECR), e.renderable = !0, e.render(this.renderer), this.renderer.batch.flush(), e.renderable = !1, this._useCurrent()) + }, StencilSystem.prototype._useCurrent = function() { + var t = this.renderer.gl; + t.colorMask(!0, !0, !0, !0), t.stencilFunc(t.EQUAL, this.stencilMaskStack.length, this._getBitwiseMask()), t.stencilOp(t.KEEP, t.KEEP, t.KEEP) + }, StencilSystem.prototype._getBitwiseMask = function() { + return (1 << this.stencilMaskStack.length) - 1 + }, StencilSystem.prototype.destroy = function() { + e.prototype.destroy.call(this, this), this.stencilMaskStack = null + }, StencilSystem + }(Ut), + Ge = function(e) { + function ProjectionSystem(t) { + e.call(this, t), this.destinationFrame = null, this.sourceFrame = null, this.defaultFrame = null, this.projectionMatrix = new Y, this.transform = null + } + return e && (ProjectionSystem.__proto__ = e), ((ProjectionSystem.prototype = Object.create(e && e.prototype)).constructor = ProjectionSystem).prototype.update = function(t, e, r, n) { + this.destinationFrame = t || this.destinationFrame || this.defaultFrame, this.sourceFrame = e || this.sourceFrame || t, this.calculateProjection(this.destinationFrame, this.sourceFrame, r, n), this.transform && this.projectionMatrix.append(this.transform); + var i = this.renderer; + i.globalUniforms.uniforms.projectionMatrix = this.projectionMatrix, i.globalUniforms.update(), i.shader.shader && i.shader.syncUniformGroup(i.shader.shader.uniforms.globals) + }, ProjectionSystem.prototype.calculateProjection = function(t, e, r, n) { + var i = this.projectionMatrix; + i.ty = n ? (i.a = 1 / t.width * 2 * r, i.d = -1 / t.height * 2 * r, i.tx = -1 - e.x * i.a, 1 - e.y * i.d) : (i.a = 1 / t.width * 2 * r, i.d = 1 / t.height * 2 * r, i.tx = -1 - e.x * i.a, -1 - e.y * i.d) + }, ProjectionSystem.prototype.setTransform = function() {}, ProjectionSystem + }(Ut), + je = new ot, + ze = function(e) { + function RenderTextureSystem(t) { + e.call(this, t), this.clearColor = t._backgroundColorRgba, this.defaultMaskStack = [], this.current = null, this.sourceFrame = new ot, this.destinationFrame = new ot + } + return e && (RenderTextureSystem.__proto__ = e), ((RenderTextureSystem.prototype = Object.create(e && e.prototype)).constructor = RenderTextureSystem).prototype.bind = function(t, e, r) { + void 0 === t && (t = null), this.current = t; + var n, i = this.renderer; + if (t) { + var o = t.baseTexture; + n = o.resolution, r || (je.width = o.realWidth, je.height = o.realHeight, r = je), e || (e = r), this.renderer.framebuffer.bind(o.framebuffer, r), this.renderer.projection.update(r, e, n, !1), this.renderer.stencil.setMaskStack(o.stencilMaskStack) + } else n = this.renderer.resolution, r || (je.width = i.width, je.height = i.height, r = je), e || (e = r), i.framebuffer.bind(null, r), this.renderer.projection.update(r, e, n, !0), this.renderer.stencil.setMaskStack(this.defaultMaskStack); + this.sourceFrame.copyFrom(e), this.destinationFrame.x = r.x / n, this.destinationFrame.y = r.y / n, this.destinationFrame.width = r.width / n, this.destinationFrame.height = r.height / n + }, RenderTextureSystem.prototype.clear = function(t) { + t = this.current ? t || this.current.baseTexture.clearColor : t || this.clearColor, this.renderer.framebuffer.clear(t[0], t[1], t[2], t[3]) + }, RenderTextureSystem.prototype.resize = function() { + this.bind(null) + }, RenderTextureSystem.prototype.reset = function() { + this.bind(null) + }, RenderTextureSystem + }(Ut), + Xe = function(t, e) { + this.program = t, this.uniformData = e, this.uniformGroups = {} + }; + Xe.prototype.destroy = function() { + this.uniformData = null, this.uniformGroups = null, this.program = null + }; + var Ve = 0, + qe = function(e) { + function ShaderSystem(t) { + e.call(this, t), this.systemCheck(), this.gl = null, this.shader = null, this.program = null, this.cache = {}, this.id = Ve++ + } + return e && (ShaderSystem.__proto__ = e), ((ShaderSystem.prototype = Object.create(e && e.prototype)).constructor = ShaderSystem).prototype.systemCheck = function() { + if (! function() { + if ("boolean" == typeof Te) return Te; + try { + var t = new Function("param1", "param2", "param3", "return param1[param2] === param3;"); + Te = !0 === t({ + a: "b" + }, "a", "b") + } catch (t) { + Te = !1 + } + return Te + }()) throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.") + }, ShaderSystem.prototype.contextChange = function(t) { + this.gl = t + }, ShaderSystem.prototype.bind = function(t, e) { + t.uniforms.globals = this.renderer.globalUniforms; + var r = t.program, + n = r.glPrograms[this.renderer.CONTEXT_UID] || this.generateShader(t); + return this.shader = t, this.program !== r && (this.program = r, this.gl.useProgram(n.program)), e || this.syncUniformGroup(t.uniformGroup), n + }, ShaderSystem.prototype.setUniforms = function(t) { + var e = this.shader.program, + r = e.glPrograms[this.renderer.CONTEXT_UID]; + e.syncUniforms(r.uniformData, t, this.renderer) + }, ShaderSystem.prototype.syncUniformGroup = function(t) { + var e = this.getglProgram(); + t.static && t.dirtyId === e.uniformGroups[t.id] || (e.uniformGroups[t.id] = t.dirtyId, this.syncUniforms(t, e)) + }, ShaderSystem.prototype.syncUniforms = function(t, e) { + (t.syncUniforms[this.shader.program.id] || this.createSyncGroups(t))(e.uniformData, t.uniforms, this.renderer) + }, ShaderSystem.prototype.createSyncGroups = function(t) { + var e = this.getSignature(t, this.shader.program.uniformData); + return this.cache[e] || (this.cache[e] = function(t, e) { + var r = 0, + n = "var v = null;\n var cv = null\n var gl = renderer.gl"; + for (var i in t.uniforms) { + var o = e[i]; + o ? "float" === o.type && 1 === o.size ? n += "\n if(uv." + i + " !== ud." + i + ".value)\n {\n ud." + i + ".value = uv." + i + "\n gl.uniform1f(ud." + i + ".location, uv." + i + ")\n }\n" : "sampler2D" !== o.type && "samplerCube" !== o.type && "sampler2DArray" !== o.type || 1 !== o.size || o.isArray ? "mat3" === o.type && 1 === o.size ? void 0 !== t.uniforms[i].a ? n += "\n gl.uniformMatrix3fv(ud." + i + ".location, false, uv." + i + ".toArray(true));\n \n" : n += "\n gl.uniformMatrix3fv(ud." + i + ".location, false, uv." + i + ");\n \n" : "vec2" === o.type && 1 === o.size ? void 0 !== t.uniforms[i].x ? n += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v.x || cv[1] !== v.y)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud." + i + ".location, v.x, v.y);\n }\n" : n += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(ud." + i + ".location, v[0], v[1]);\n }\n \n" : "vec4" === o.type && 1 === o.size ? void 0 !== t.uniforms[i].width ? n += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud." + i + ".location, v.x, v.y, v.width, v.height)\n }\n" : n += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4f(ud." + i + ".location, v[0], v[1], v[2], v[3])\n }\n \n" : n += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n " + (1 === o.size ? be : xe)[o.type].replace("location", "ud." + i + ".location") + ";\n" : (n += "\n renderer.texture.bind(uv." + i + ", " + r + ");\n\n if(ud." + i + ".value !== " + r + ")\n {\n ud." + i + ".value = " + r + ";\n gl.uniform1i(ud." + i + ".location, " + r + ");\n; // eslint-disable-line max-len\n }\n", r++) : t.uniforms[i].group && (n += "\n renderer.shader.syncUniformGroup(uv." + i + ");\n ") + } + return new Function("ud", "uv", "renderer", n) + }(t, this.shader.program.uniformData)), t.syncUniforms[this.shader.program.id] = this.cache[e], t.syncUniforms[this.shader.program.id] + }, ShaderSystem.prototype.getSignature = function(t, e) { + var r = t.uniforms, + n = []; + for (var i in r) n.push(i), e[i] && n.push(e[i].type); + return n.join("-") + }, ShaderSystem.prototype.getglProgram = function() { + return this.shader ? this.shader.program.glPrograms[this.renderer.CONTEXT_UID] : null + }, ShaderSystem.prototype.generateShader = function(t) { + var e = this.gl, + r = t.program, + n = {}; + for (var i in r.attributeData) n[i] = r.attributeData[i].location; + var o = compileProgram(e, r.vertexSrc, r.fragmentSrc, n), + a = {}; + for (var s in r.uniformData) { + var u = r.uniformData[s]; + a[s] = { + location: e.getUniformLocation(o, s), + value: core_es_defaultValue(u.type, u.size) + } + } + var h = new Xe(o, a); + return r.glPrograms[this.renderer.CONTEXT_UID] = h + }, ShaderSystem.prototype.reset = function() { + this.program = null, this.shader = null + }, ShaderSystem.prototype.destroy = function() { + this.destroyed = !0 + }, ShaderSystem + }(Ut); + var He = function(e) { + function StateSystem(t) { + e.call(this, t), this.gl = null, this.stateId = 0, this.polygonOffset = 0, this.blendMode = y.NONE, this._blendEq = !1, this.map = [], this.map[0] = this.setBlend, this.map[1] = this.setOffset, this.map[2] = this.setCullFace, this.map[3] = this.setDepthTest, this.map[4] = this.setFrontFace, this.checks = [], this.defaultState = new Ce, this.defaultState.blend = !0, this.defaultState.depth = !0 + } + return e && (StateSystem.__proto__ = e), ((StateSystem.prototype = Object.create(e && e.prototype)).constructor = StateSystem).prototype.contextChange = function(t) { + var e, r; + this.gl = t, this.blendModes = (e = t, void 0 === r && (r = []), r[y.NORMAL] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.ADD] = [e.ONE, e.DST_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.MULTIPLY] = [e.DST_COLOR, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.SCREEN] = [e.ONE, e.ONE_MINUS_SRC_COLOR, e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.OVERLAY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.DARKEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.LIGHTEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.COLOR_DODGE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.COLOR_BURN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.HARD_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.SOFT_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.DIFFERENCE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.EXCLUSION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.HUE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.SATURATION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.COLOR] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.LUMINOSITY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.NONE] = [0, 0], r[y.NORMAL_NPM] = [e.SRC_ALPHA, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], r[y.ADD_NPM] = [e.SRC_ALPHA, e.DST_ALPHA, e.ONE, e.DST_ALPHA], r[y.SCREEN_NPM] = [e.SRC_ALPHA, e.ONE_MINUS_SRC_COLOR, e.ONE, e.ONE_MINUS_SRC_COLOR], r[y.SRC_IN] = [e.DST_ALPHA, e.ZERO], r[y.SRC_OUT] = [e.ONE_MINUS_DST_ALPHA, e.ZERO], r[y.SRC_ATOP] = [e.DST_ALPHA, e.ONE_MINUS_SRC_ALPHA], r[y.DST_OVER] = [e.ONE_MINUS_DST_ALPHA, e.ONE], r[y.DST_IN] = [e.ZERO, e.SRC_ALPHA], r[y.DST_OUT] = [e.ZERO, e.ONE_MINUS_SRC_ALPHA], r[y.DST_ATOP] = [e.ONE_MINUS_DST_ALPHA, e.SRC_ALPHA], r[y.SUBTRACT] = [e.ONE, e.ONE, e.ONE, e.ONE, e.FUNC_REVERSE_SUBTRACT, e.FUNC_ADD], r), this.setState(this.defaultState), this.reset() + }, StateSystem.prototype.setState = function(t) { + if (t = t || this.defaultState, this.stateId !== t.data) { + for (var e = this.stateId ^ t.data, r = 0; e;) 1 & e && this.map[r].call(this, !!(t.data & 1 << r)), e >>= 1, r++; + this.stateId = t.data + } + for (var n = 0; n < this.checks.length; n++) this.checks[n](this, t) + }, StateSystem.prototype.forceState = function(t) { + t = t || this.defaultState; + for (var e = 0; e < this.map.length; e++) this.map[e].call(this, !!(t.data & 1 << e)); + for (var r = 0; r < this.checks.length; r++) this.checks[r](this, t); + this.stateId = t.data + }, StateSystem.prototype.setBlend = function(t) { + this.updateCheck(StateSystem.checkBlendMode, t), this.gl[t ? "enable" : "disable"](this.gl.BLEND) + }, StateSystem.prototype.setOffset = function(t) { + this.gl[t ? "enable" : "disable"](this.gl.POLYGON_OFFSET_FILL) + }, StateSystem.prototype.setDepthTest = function(t) { + this.gl[t ? "enable" : "disable"](this.gl.DEPTH_TEST) + }, StateSystem.prototype.setCullFace = function(t) { + this.gl[t ? "enable" : "disable"](this.gl.CULL_FACE) + }, StateSystem.prototype.setFrontFace = function(t) { + this.gl.frontFace(this.gl[t ? "CW" : "CCW"]) + }, StateSystem.prototype.setBlendMode = function(t) { + if (t !== this.blendMode) { + this.blendMode = t; + var e = this.blendModes[t], + r = this.gl; + 2 === e.length ? r.blendFunc(e[0], e[1]) : r.blendFuncSeparate(e[0], e[1], e[2], e[3]), 6 === e.length ? (this._blendEq = !0, r.blendEquationSeparate(e[4], e[5])) : this._blendEq && (this._blendEq = !1, r.blendEquationSeparate(r.FUNC_ADD, r.FUNC_ADD)) + } + }, StateSystem.prototype.setPolygonOffset = function(t, e) { + this.gl.polygonOffset(t, e) + }, StateSystem.prototype.reset = function() { + this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.forceState(0), this._blendEq = !0, this.blendMode = -1, this.setBlendMode(0) + }, StateSystem.prototype.updateCheck = function(t, e) { + var r = this.checks.indexOf(t); + e && -1 === r ? this.checks.push(t) : e || -1 === r || this.checks.splice(r, 1) + }, StateSystem.checkBlendMode = function(t, e) { + t.setBlendMode(e.blendMode) + }, StateSystem + }(Ut), + We = function(e) { + function TextureGCSystem(t) { + e.call(this, t), this.count = 0, this.checkCount = 0, this.maxIdle = M.GC_MAX_IDLE, this.checkCountMax = M.GC_MAX_CHECK_COUNT, this.mode = M.GC_MODE + } + return e && (TextureGCSystem.__proto__ = e), ((TextureGCSystem.prototype = Object.create(e && e.prototype)).constructor = TextureGCSystem).prototype.postrender = function() { + this.count++, this.mode !== A.MANUAL && (this.checkCount++, this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run())) + }, TextureGCSystem.prototype.run = function() { + for (var t = this.renderer.texture, e = t.managedTextures, r = !1, n = 0; n < e.length; n++) { + var i = e[n]; + !i.framebuffer && this.count - i.touched > this.maxIdle && (t.destroyTexture(i, !0), r = !(e[n] = null)) + } + if (r) { + for (var o = 0, a = 0; a < e.length; a++) null !== e[a] && (e[o++] = e[a]); + e.length = o + } + }, TextureGCSystem.prototype.unload = function(t) { + var e = this.renderer.textureSystem; + t._texture && t._texture._glRenderTargets && e.destroyTexture(t._texture); + for (var r = t.children.length - 1; 0 <= r; r--) this.unload(t.children[r]) + }, TextureGCSystem + }(Ut), + Ye = function(t) { + this.texture = t, this.width = -1, this.height = -1, this.dirtyId = -1, this.dirtyStyleId = -1, this.mipmap = !1, this.wrapMode = 33071 + }, + Ke = function(e) { + function TextureSystem(t) { + e.call(this, t), this.boundTextures = [], this.currentLocation = -1, this.managedTextures = [], this._unknownBoundTextures = !1, this.unknownTexture = new Rt + } + return e && (TextureSystem.__proto__ = e), ((TextureSystem.prototype = Object.create(e && e.prototype)).constructor = TextureSystem).prototype.contextChange = function() { + var t = this.gl = this.renderer.gl; + this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.webGLVersion = this.renderer.context.webGLVersion; + var e = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS); + this.boundTextures.length = e; + for (var r = 0; r < e; r++) this.boundTextures[r] = null; + this.emptyTextures = {}; + var n = new Ye(t.createTexture()); + t.bindTexture(t.TEXTURE_2D, n.texture), t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, new Uint8Array(4)), this.emptyTextures[t.TEXTURE_2D] = n, this.emptyTextures[t.TEXTURE_CUBE_MAP] = new Ye(t.createTexture()), t.bindTexture(t.TEXTURE_CUBE_MAP, this.emptyTextures[t.TEXTURE_CUBE_MAP].texture); + for (var i = 0; i < 6; i++) t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, null); + t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, t.LINEAR), t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, t.LINEAR); + for (var o = 0; o < this.boundTextures.length; o++) this.bind(null, o) + }, TextureSystem.prototype.bind = function(t, e) { + void 0 === e && (e = 0); + var r = this.gl; + if (t) { + if ((t = t.baseTexture || t).valid) { + t.touched = this.renderer.textureGC.count; + var n = t._glTextures[this.CONTEXT_UID] || this.initTexture(t); + this.currentLocation !== e && (this.currentLocation = e, r.activeTexture(r.TEXTURE0 + e)), this.boundTextures[e] !== t && r.bindTexture(t.target, n.texture), n.dirtyId !== t.dirtyId && this.updateTexture(t), this.boundTextures[e] = t + } + } else this.currentLocation !== e && (this.currentLocation = e, r.activeTexture(r.TEXTURE0 + e)), r.bindTexture(r.TEXTURE_2D, this.emptyTextures[r.TEXTURE_2D].texture), this.boundTextures[e] = null + }, TextureSystem.prototype.reset = function() { + this._unknownBoundTextures = !0, this.currentLocation = -1; + for (var t = 0; t < this.boundTextures.length; t++) this.boundTextures[t] = this.unknownTexture + }, TextureSystem.prototype.unbind = function(t) { + var e = this.gl, + r = this.boundTextures; + if (this._unknownBoundTextures) { + this._unknownBoundTextures = !1; + for (var n = 0; n < r.length; n++) r[n] === this.unknownTexture && this.bind(null, n) + } + for (var i = 0; i < r.length; i++) r[i] === t && (this.currentLocation !== i && (e.activeTexture(e.TEXTURE0 + i), this.currentLocation = i), e.bindTexture(e.TEXTURE_2D, this.emptyTextures[t.target].texture), r[i] = null) + }, TextureSystem.prototype.initTexture = function(t) { + var e = new Ye(this.gl.createTexture()); + return e.dirtyId = -1, t._glTextures[this.CONTEXT_UID] = e, this.managedTextures.push(t), t.on("dispose", this.destroyTexture, this), e + }, TextureSystem.prototype.updateTexture = function(t) { + var e = t._glTextures[this.CONTEXT_UID], + r = this.renderer; + if (t.resource && t.resource.upload(r, t, e)); + else { + var n = t.realWidth, + i = t.realHeight, + o = r.gl; + (e.width !== n || e.height !== i || e.dirtyId < 0) && (e.width = n, e.height = i, o.texImage2D(t.target, 0, t.format, n, i, 0, t.format, t.type, null)) + } + t.dirtyStyleId !== e.dirtyStyleId && this.updateTextureStyle(t), e.dirtyId = t.dirtyId + }, TextureSystem.prototype.destroyTexture = function(t, e) { + var r = this.gl; + if ((t = t.baseTexture || t)._glTextures[this.renderer.CONTEXT_UID] && (this.unbind(t), r.deleteTexture(t._glTextures[this.renderer.CONTEXT_UID].texture), t.off("dispose", this.destroyTexture, this), delete t._glTextures[this.renderer.CONTEXT_UID], !e)) { + var n = this.managedTextures.indexOf(t); - 1 !== n && removeItems(this.managedTextures, n, 1) + } + }, TextureSystem.prototype.updateTextureStyle = function(t) { + var e = t._glTextures[this.CONTEXT_UID]; + e && (t.mipmap !== E.POW2 && 2 === this.webGLVersion || t.isPowerOfTwo ? (e.mipmap = 1 <= t.mipmap, e.wrapMode = t.wrapMode) : (e.mipmap = 0, e.wrapMode = S.CLAMP), t.resource && t.resource.style(this.renderer, t, e) || this.setStyle(t, e), e.dirtyStyleId = t.dirtyStyleId) + }, TextureSystem.prototype.setStyle = function(t, e) { + var r = this.gl; + e.mipmap && r.generateMipmap(t.target), r.texParameteri(t.target, r.TEXTURE_WRAP_S, e.wrapMode), r.texParameteri(t.target, r.TEXTURE_WRAP_T, e.wrapMode), e.mipmap ? r.texParameteri(t.target, r.TEXTURE_MIN_FILTER, t.scaleMode ? r.LINEAR_MIPMAP_LINEAR : r.NEAREST_MIPMAP_NEAREST) : r.texParameteri(t.target, r.TEXTURE_MIN_FILTER, t.scaleMode ? r.LINEAR : r.NEAREST), r.texParameteri(t.target, r.TEXTURE_MAG_FILTER, t.scaleMode ? r.LINEAR : r.NEAREST) + }, TextureSystem + }(Ut), + Ze = { + FilterSystem: ue, + BatchSystem: ce, + ContextSystem: fe, + FramebufferSystem: de, + GeometrySystem: ve, + MaskSystem: Be, + StencilSystem: Ue, + ProjectionSystem: Ge, + RenderTextureSystem: ze, + ShaderSystem: qe, + StateSystem: He, + TextureGCSystem: We, + TextureSystem: Ke + }, + Qe = new Y, + Je = function(r) { + function AbstractRenderer(t, e) { + r.call(this), (e = Object.assign({}, M.RENDER_OPTIONS, e)).roundPixels && (M.ROUND_PIXELS = e.roundPixels, deprecation(0, "Renderer roundPixels option is deprecated, please use PIXI.settings.ROUND_PIXELS", 2)), this.options = e, this.type = g.UNKNOWN, this.screen = new ot(0, 0, e.width, e.height), this.view = e.view || document.createElement("canvas"), this.resolution = e.resolution || M.RESOLUTION, this.transparent = e.transparent, this.autoDensity = e.autoDensity || e.autoResize || !1, this.preserveDrawingBuffer = e.preserveDrawingBuffer, this.clearBeforeRender = e.clearBeforeRender, this._backgroundColor = 0, this._backgroundColorRgba = [0, 0, 0, 0], this._backgroundColorString = "#000000", this.backgroundColor = e.backgroundColor || this._backgroundColor, this._tempDisplayObjectParent = new pt, this._lastObjectRendered = this._tempDisplayObjectParent, this.plugins = {} + } + r && (AbstractRenderer.__proto__ = r); + var t = { + width: { + configurable: !0 + }, + height: { + configurable: !0 + }, + backgroundColor: { + configurable: !0 + } + }; + return ((AbstractRenderer.prototype = Object.create(r && r.prototype)).constructor = AbstractRenderer).prototype.initPlugins = function(t) { + for (var e in t) this.plugins[e] = new t[e](this) + }, t.width.get = function() { + return this.view.width + }, t.height.get = function() { + return this.view.height + }, AbstractRenderer.prototype.resize = function(t, e) { + this.screen.width = t, this.screen.height = e, this.view.width = t * this.resolution, this.view.height = e * this.resolution, this.autoDensity && (this.view.style.width = t + "px", this.view.style.height = e + "px") + }, AbstractRenderer.prototype.generateTexture = function(t, e, r, n) { + 0 === (n = n || t.getLocalBounds()).width && (n.width = 1), 0 === n.height && (n.height = 1); + var i = Wt.create(0 | n.width, 0 | n.height, e, r); + return Qe.tx = -n.x, Qe.ty = -n.y, this.render(t, i, !1, Qe, !!t.parent), i + }, AbstractRenderer.prototype.destroy = function(t) { + for (var e in this.plugins) this.plugins[e].destroy(), this.plugins[e] = null; + t && this.view.parentNode && this.view.parentNode.removeChild(this.view), this.plugins = null, this.type = g.UNKNOWN, this.view = null, this.screen = null, this.resolution = 0, this.transparent = !1, this.autoDensity = !1, this.blendModes = null, this.options = null, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !1, this._backgroundColor = 0, this._backgroundColorRgba = null, this._backgroundColorString = null, this._tempDisplayObjectParent = null, this._lastObjectRendered = null + }, t.backgroundColor.get = function() { + return this._backgroundColor + }, t.backgroundColor.set = function(t) { + this._backgroundColor = t, this._backgroundColorString = hex2string(t), hex2rgb(t, this._backgroundColorRgba) + }, Object.defineProperties(AbstractRenderer.prototype, t), AbstractRenderer + }(l.a), + $e = function(r) { + function Renderer(t) { + void 0 === t && (t = {}), r.call(this, "WebGL", t), t = this.options, this.type = g.WEBGL, this.gl = null, this.CONTEXT_UID = 0, this.runners = { + destroy: new gt("destroy"), + contextChange: new gt("contextChange", 1), + reset: new gt("reset"), + update: new gt("update"), + postrender: new gt("postrender"), + prerender: new gt("prerender"), + resize: new gt("resize", 2) + }, this.globalUniforms = new oe({ + projectionMatrix: new Y + }, !0), this.addSystem(Be, "mask").addSystem(fe, "context").addSystem(He, "state").addSystem(qe, "shader").addSystem(Ke, "texture").addSystem(ve, "geometry").addSystem(de, "framebuffer").addSystem(Ue, "stencil").addSystem(Ge, "projection").addSystem(We, "textureGC").addSystem(ue, "filter").addSystem(ze, "renderTexture").addSystem(ce, "batch"), this.initPlugins(Renderer.__plugins), t.context ? this.context.initFromContext(t.context) : this.context.initFromOptions({ + alpha: this.transparent, + antialias: t.antialias, + premultipliedAlpha: this.transparent && "notMultiplied" !== this.transparent, + stencil: !0, + preserveDrawingBuffer: t.preserveDrawingBuffer, + powerPreference: this.options.powerPreference + }), this.renderingToScreen = !0, sayHello(2 === this.context.webGLVersion ? "WebGL 2" : "WebGL 1"), this.resize(this.options.width, this.options.height) + } + return r && (Renderer.__proto__ = r), ((Renderer.prototype = Object.create(r && r.prototype)).constructor = Renderer).create = function(t) { + if (isWebGLSupported()) return new Renderer(t); + throw new Error('WebGL unsupported in this browser, use "pixi.js-legacy" for fallback canvas2d support.') + }, Renderer.prototype.addSystem = function(t, e) { + e || (e = t.name); + var r = new t(this); + if (this[e]) throw new Error('Whoops! The name "' + e + '" is already in use'); + for (var n in this[e] = r, this.runners) this.runners[n].add(r); + return this + }, Renderer.prototype.render = function(t, e, r, n, i) { + if (this.renderingToScreen = !e, this.runners.prerender.run(), this.emit("prerender"), !this.context.isLost) { + if (e || (this._lastObjectRendered = t), !i) { + var o = t.parent; + t.parent = this._tempDisplayObjectParent, t.updateTransform(), t.parent = o + } + this.renderTexture.bind(e), this.batch.currentRenderer.start(), (void 0 !== r ? r : this.clearBeforeRender) && this.renderTexture.clear(), t.render(this), this.batch.currentRenderer.flush(), e && e.baseTexture.update(), this.runners.postrender.run(), this.emit("postrender") + } + }, Renderer.prototype.resize = function(t, e) { + r.prototype.resize.call(this, t, e), this.runners.resize.run(t, e) + }, Renderer.prototype.reset = function() { + return this.runners.reset.run(), this + }, Renderer.prototype.clear = function() { + this.framebuffer.bind(), this.framebuffer.clear() + }, Renderer.prototype.destroy = function(t) { + this.runners.destroy.run(), r.prototype.destroy.call(this, t), this.gl = null + }, Renderer.registerPlugin = function(t, e) { + (Renderer.__plugins = Renderer.__plugins || {})[t] = e + }, Renderer + }(Je); + + function autoDetectRenderer(t) { + return $e.create(t) + } + var tr = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}", + er = "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n", + rr = function(t) { + function CubeTexture() { + t.apply(this, arguments) + } + return t && (CubeTexture.__proto__ = t), ((CubeTexture.prototype = Object.create(t && t.prototype)).constructor = CubeTexture).from = function(t, e) { + return new CubeTexture(new kt(t, e)) + }, CubeTexture + }(Rt), + nr = function(e) { + function BatchGeometry(t) { + void 0 === t && (t = !1), e.call(this), this._buffer = new Zt(null, t, !1), this._indexBuffer = new Zt(null, t, !0), this.addAttribute("aVertexPosition", this._buffer, 2, !1, w.FLOAT).addAttribute("aTextureCoord", this._buffer, 2, !1, w.FLOAT).addAttribute("aColor", this._buffer, 4, !0, w.UNSIGNED_BYTE).addAttribute("aTextureId", this._buffer, 1, !0, w.FLOAT).addIndex(this._indexBuffer) + } + return e && (BatchGeometry.__proto__ = e), (BatchGeometry.prototype = Object.create(e && e.prototype)).constructor = BatchGeometry + }(ee), + ir = function() { + this.textures = [], this.ids = [], this.blend = 0, this.textureCount = 0, this.start = 0, this.size = 0, this.type = 4 + }, + or = function(t) { + this.vertices = new ArrayBuffer(t), this.float32View = new Float32Array(this.vertices), this.uint32View = new Uint32Array(this.vertices) + }; + or.prototype.destroy = function() { + this.vertices = null, this.float32View = null, this.uint32View = null + }; + var ar = ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "varying float vTextureId;", "uniform sampler2D uSamplers[%count%];", "void main(void){", "vec4 color;", "%forloop%", "gl_FragColor = color * vColor;", "}"].join("\n"), + sr = {}, + ur = {}; + + function generateMultiTextureShader(t, e) { + if (!ur[e]) { + for (var r = new Int32Array(e), n = 0; n < e; n++) r[n] = n; + sr[e] = oe.from({ + uSamplers: r + }, !0); + var i = ar; + i = (i = i.replace(/%count%/gi, e)).replace(/%forloop%/gi, function(t) { + var e = ""; + e += "\n", e += "\n"; + for (var r = 0; r < t; r++) 0 < r && (e += "\nelse "), r < t - 1 && (e += "if(vTextureId < " + r + ".5)"), e += "\n{", e += "\n\tcolor = texture2D(uSamplers[" + r + "], vTextureCoord);", e += "\n}"; + return e += "\n", e += "\n" + }(e)), ur[e] = new Ae("precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform vec4 tint;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vTextureId = aTextureId;\n vColor = aColor * tint;\n}\n", i) + } + var o = { + tint: new Float32Array([1, 1, 1, 1]), + translationMatrix: new Y, + default: sr[e] + }; + return new Ie(ur[e], o) + } + var hr = 0, + cr = function(r) { + function BatchRenderer(t) { + r.call(this, t), this.vertSize = 6, this.vertByteSize = 4 * this.vertSize, this.size = 8e3, this.currentSize = 0, this.currentIndexSize = 0, this.attributeBuffers = {}, this.aBuffers = {}, this.iBuffers = {}, this.onlySprites = !1, this.shader = null, this.currentIndex = 0, this.groups = []; + for (var e = 0; e < this.size / 4; e++) this.groups[e] = new ir; + this.elements = [], this.vaos = [], this.vaoMax = 2, this.vertexCount = 0, this.renderer.on("prerender", this.onPrerender, this), this.state = Ce.for2d() + } + return r && (BatchRenderer.__proto__ = r), ((BatchRenderer.prototype = Object.create(r && r.prototype)).constructor = BatchRenderer).prototype.contextChange = function() { + var t = this.renderer.gl; + M.PREFER_ENV === v.WEBGL_LEGACY ? this.MAX_TEXTURES = 1 : (this.MAX_TEXTURES = Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS), M.SPRITE_MAX_TEXTURES), this.MAX_TEXTURES = checkMaxIfStatementsInShader(this.MAX_TEXTURES, t)), this.shader = generateMultiTextureShader(0, this.MAX_TEXTURES); + for (var e = 0; e < this.vaoMax; e++) this.vaos[e] = new nr + }, BatchRenderer.prototype.onPrerender = function() { + this.vertexCount = 0 + }, BatchRenderer.prototype.render = function(t) { + t._texture.valid && (this.currentSize + t.vertexData.length / 2 > this.size && this.flush(), this.elements[this.currentIndex++] = t, this.currentSize += t.vertexData.length / 2, this.currentIndexSize += t.indices.length) + }, BatchRenderer.prototype.getIndexBuffer = function(t) { + var e = nextPow2(Math.ceil(t / 12)), + r = log2(e), + n = 12 * e; + this.iBuffers.length <= r && (this.iBuffers.length = r + 1); + var i = this.iBuffers[r]; + return i || (this.iBuffers[r] = i = new Uint16Array(n)), i + }, BatchRenderer.prototype.getAttributeBuffer = function(t) { + var e = nextPow2(Math.ceil(t / 8)), + r = log2(e), + n = 8 * e; + this.aBuffers.length <= r && (this.iBuffers.length = r + 1); + var i = this.aBuffers[n]; + return i || (this.aBuffers[n] = i = new or(n * this.vertByteSize)), i + }, BatchRenderer.prototype.flush = function() { + if (0 !== this.currentSize) { + var t, e, r, n = this.renderer.gl, + i = this.MAX_TEXTURES, + o = this.getAttributeBuffer(this.currentSize), + a = this.getIndexBuffer(this.currentIndexSize), + s = this.elements, + u = this.groups, + h = o.float32View, + c = o.uint32View, + l = this.renderer.textureGC.count, + f = 0, + d = 0, + p = 0, + m = 0, + v = u[0], + g = -1; + for (v.textureCount = 0, v.start = 0, v.blend = g, hr++, r = 0; r < this.currentIndex; ++r) { + var y = s[r]; + s[r] = null, t = y._texture.baseTexture; + var _ = C[t.premultiplyAlpha ? 1 : 0][y.blendMode]; + g !== _ && (g = _, e = null, m = i, hr++), e !== t && (e = t)._enabled !== hr && (m === i && (hr++, m = 0, v.size = d - v.start, (v = u[p++]).textureCount = 0, v.blend = g, v.start = d), t.touched = l, t._enabled = hr, t._id = m, v.textures[v.textureCount++] = t, m++), this.packGeometry(y, h, c, a, f, d), f += y.vertexData.length / 2 * this.vertSize, d += y.indices.length + } + v.size = d - v.start, M.CAN_UPLOAD_SAME_BUFFER ? (this.vaos[this.vertexCount]._buffer.update(o.vertices, 0), this.vaos[this.vertexCount]._indexBuffer.update(a, 0), this.renderer.geometry.updateBuffers()) : (this.vaoMax <= this.vertexCount && (this.vaoMax++, this.vaos[this.vertexCount] = new nr), this.vaos[this.vertexCount]._buffer.update(o.vertices, 0), this.vaos[this.vertexCount]._indexBuffer.update(a, 0), this.renderer.geometry.bind(this.vaos[this.vertexCount]), this.renderer.geometry.updateBuffers(), this.vertexCount++); + var b = this.renderer.texture, + x = this.renderer.state; + for (r = 0; r < p; r++) { + for (var w = u[r], T = w.textureCount, S = 0; S < T; S++) b.bind(w.textures[S], S), w.textures[S] = null; + x.setBlendMode(w.blend), n.drawElements(w.type, w.size, n.UNSIGNED_SHORT, 2 * w.start) + } + this.currentIndex = 0, this.currentSize = 0, this.currentIndexSize = 0 + } + }, BatchRenderer.prototype.packGeometry = function(t, e, r, n, i, o) { + for (var a = i / this.vertSize, s = t.uvs, u = t.indices, h = t.vertexData, c = t._texture.baseTexture._id, l = Math.min(t.worldAlpha, 1), f = l < 1 && t._texture.baseTexture.premultiplyAlpha ? premultiplyTint(t._tintRGB, l) : t._tintRGB + (255 * l << 24), d = 0; d < h.length; d += 2) e[i++] = h[d], e[i++] = h[d + 1], e[i++] = s[d], e[i++] = s[d + 1], r[i++] = f, e[i++] = c; + for (var p = 0; p < u.length; p++) n[o++] = a + u[p] + }, BatchRenderer.prototype.start = function() { + this.renderer.state.setState(this.state), this.renderer.shader.bind(this.shader), M.CAN_UPLOAD_SAME_BUFFER && this.renderer.geometry.bind(this.vaos[this.vertexCount]) + }, BatchRenderer.prototype.stop = function() { + this.flush() + }, BatchRenderer.prototype.destroy = function() { + for (var t = 0; t < this.vaoMax; t++) this.vaos[t] && this.vaos[t].destroy(); + this.indexBuffer && this.indexBuffer.destroy(), this.renderer.off("prerender", this.onPrerender, this), this.shader && (this.shader.destroy(), this.shader = null), this.vaos = null, this.indexBuffer = null, this.indices = null, this.sprites = null, r.prototype.destroy.call(this) + }, BatchRenderer + }(he), + lr = new ot, + fr = function(t) { + (this.renderer = t).extract = this + }; + fr.prototype.image = function(t) { + var e = new Image; + return e.src = this.base64(t), e + }, fr.prototype.base64 = function(t) { + return this.canvas(t).toDataURL() + }, fr.prototype.canvas = function(t) { + var e, r, n, i = this.renderer, + o = !1, + a = !1; + t && (t instanceof Wt ? n = t : (n = this.renderer.generateTexture(t), a = !0)), n ? (e = n.baseTexture.resolution, r = n.frame, o = !1, i.renderTexture.bind(n)) : (e = this.renderer.resolution, o = !0, (r = lr).width = this.renderer.width, r.height = this.renderer.height, i.renderTexture.bind(null)); + var s = r.width * e, + u = r.height * e, + h = new L(s, u, 1), + c = new Uint8Array(4 * s * u), + l = i.gl; + l.readPixels(r.x * e, r.y * e, s, u, l.RGBA, l.UNSIGNED_BYTE, c); + var f = h.context.getImageData(0, 0, s, u); + return f.data.set(c), h.context.putImageData(f, 0, 0), o && (h.context.scale(1, -1), h.context.drawImage(h.canvas, 0, -u)), a && n.destroy(!0), h.canvas + }, fr.prototype.pixels = function(t) { + var e, r, n, i = this.renderer, + o = !1; + t && (t instanceof Wt ? n = t : (n = this.renderer.generateTexture(t), o = !0)), n ? (e = n.baseTexture.resolution, r = n.frame, i.renderTexture.bind(n)) : (e = i.resolution, (r = lr).width = i.width, r.height = i.height, i.renderTexture.bind(null)); + var a = r.width * e, + s = r.height * e, + u = new Uint8Array(4 * a * s), + h = i.gl; + return h.readPixels(r.x * e, r.y * e, a, s, h.RGBA, h.UNSIGNED_BYTE, u), o && n.destroy(!0), u + }, fr.prototype.destroy = function() { + this.renderer.extract = null, this.renderer = null + }; + var dr = function() { + this.global = new q, this.target = null, this.originalEvent = null, this.identifier = null, this.isPrimary = !1, this.button = 0, this.buttons = 0, this.width = 0, this.height = 0, this.tiltX = 0, this.tiltY = 0, this.pointerType = null, this.pressure = 0, this.rotationAngle = 0, this.twist = 0, this.tangentialPressure = 0 + }, + pr = { + pointerId: { + configurable: !0 + } + }; + pr.pointerId.get = function() { + return this.identifier + }, dr.prototype.getLocalPosition = function(t, e, r) { + return t.worldTransform.applyInverse(r || this.global, e) + }, dr.prototype.copyEvent = function(t) { + t.isPrimary && (this.isPrimary = !0), this.button = t.button, this.buttons = Number.isInteger(t.buttons) ? t.buttons : t.which, this.width = t.width, this.height = t.height, this.tiltX = t.tiltX, this.tiltY = t.tiltY, this.pointerType = t.pointerType, this.pressure = t.pressure, this.rotationAngle = t.rotationAngle, this.twist = t.twist || 0, this.tangentialPressure = t.tangentialPressure || 0 + }, dr.prototype.reset = function() { + this.isPrimary = !1 + }, Object.defineProperties(dr.prototype, pr); + var mr = function() { + this.stopped = !1, this.target = null, this.currentTarget = null, this.type = null, this.data = null + }; + mr.prototype.stopPropagation = function() { + this.stopped = !0 + }, mr.prototype.reset = function() { + this.stopped = !1, this.currentTarget = null, this.target = null + }; + var vr = function InteractionTrackingData(t) { + this._pointerId = t, this._flags = InteractionTrackingData.FLAGS.NONE + }, + gr = { + pointerId: { + configurable: !0 + }, + flags: { + configurable: !0 + }, + none: { + configurable: !0 + }, + over: { + configurable: !0 + }, + rightDown: { + configurable: !0 + }, + leftDown: { + configurable: !0 + } + }; + vr.prototype._doSet = function(t, e) { + this._flags = e ? this._flags | t : this._flags & ~t + }, gr.pointerId.get = function() { + return this._pointerId + }, gr.flags.get = function() { + return this._flags + }, gr.flags.set = function(t) { + this._flags = t + }, gr.none.get = function() { + return this._flags === this.constructor.FLAGS.NONE + }, gr.over.get = function() { + return 0 != (this._flags & this.constructor.FLAGS.OVER) + }, gr.over.set = function(t) { + this._doSet(this.constructor.FLAGS.OVER, t) + }, gr.rightDown.get = function() { + return 0 != (this._flags & this.constructor.FLAGS.RIGHT_DOWN) + }, gr.rightDown.set = function(t) { + this._doSet(this.constructor.FLAGS.RIGHT_DOWN, t) + }, gr.leftDown.get = function() { + return 0 != (this._flags & this.constructor.FLAGS.LEFT_DOWN) + }, gr.leftDown.set = function(t) { + this._doSet(this.constructor.FLAGS.LEFT_DOWN, t) + }, Object.defineProperties(vr.prototype, gr), vr.FLAGS = Object.freeze({ + NONE: 0, + OVER: 1, + LEFT_DOWN: 2, + RIGHT_DOWN: 4 + }); + var yr = { + interactive: !1, + interactiveChildren: !0, + hitArea: null, + get buttonMode() { + return "pointer" === this.cursor + }, + set buttonMode(t) { + t ? this.cursor = "pointer" : "pointer" === this.cursor && (this.cursor = null) + }, + cursor: null, + get trackedPointers() { + return void 0 === this._trackedPointers && (this._trackedPointers = {}), this._trackedPointers + }, + _trackedPointers: void 0 + }; + dt.mixin(yr); + var _r = { + target: null, + data: { + global: null + } + }, + br = function(r) { + function InteractionManager(t, e) { + r.call(this), e = e || {}, this.renderer = t, this.autoPreventDefault = void 0 === e.autoPreventDefault || e.autoPreventDefault, this.interactionFrequency = e.interactionFrequency || 10, this.mouse = new dr, this.mouse.identifier = 1, this.mouse.global.set(-999999), this.activeInteractionData = {}, this.activeInteractionData[1] = this.mouse, this.interactionDataPool = [], this.eventData = new mr, this.interactionDOMElement = null, this.moveWhenInside = !1, this.eventsAdded = !1, this.mouseOverRenderer = !1, this.supportsTouchEvents = "ontouchstart" in window, this.supportsPointerEvents = !!window.PointerEvent, this.onPointerUp = this.onPointerUp.bind(this), this.processPointerUp = this.processPointerUp.bind(this), this.onPointerCancel = this.onPointerCancel.bind(this), this.processPointerCancel = this.processPointerCancel.bind(this), this.onPointerDown = this.onPointerDown.bind(this), this.processPointerDown = this.processPointerDown.bind(this), this.onPointerMove = this.onPointerMove.bind(this), this.processPointerMove = this.processPointerMove.bind(this), this.onPointerOut = this.onPointerOut.bind(this), this.processPointerOverOut = this.processPointerOverOut.bind(this), this.onPointerOver = this.onPointerOver.bind(this), this.cursorStyles = { + default: "inherit", + pointer: "pointer" + }, this.currentCursorMode = null, this.cursor = null, this._tempPoint = new q, this.resolution = 1, this.setTargetElement(this.renderer.view, this.renderer.resolution) + } + return r && (InteractionManager.__proto__ = r), ((InteractionManager.prototype = Object.create(r && r.prototype)).constructor = InteractionManager).prototype.hitTest = function(t, e) { + return _r.target = null, _r.data.global = t, e || (e = this.renderer._lastObjectRendered), this.processInteractive(_r, e, null, !0), _r.target + }, InteractionManager.prototype.setTargetElement = function(t, e) { + void 0 === e && (e = 1), this.removeEvents(), this.interactionDOMElement = t, this.resolution = e, this.addEvents() + }, InteractionManager.prototype.addEvents = function() { + this.interactionDOMElement && (xt.system.add(this.update, this, _t.INTERACTION), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "none", this.interactionDOMElement.style["-ms-touch-action"] = "none") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = "none"), this.supportsPointerEvents ? (window.document.addEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("pointerover", this.onPointerOver, !0), window.addEventListener("pointercancel", this.onPointerCancel, !0), window.addEventListener("pointerup", this.onPointerUp, !0)) : (window.document.addEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("mouseover", this.onPointerOver, !0), window.addEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.addEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.addEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.addEventListener("touchmove", this.onPointerMove, !0)), this.eventsAdded = !0) + }, InteractionManager.prototype.removeEvents = function() { + this.interactionDOMElement && (xt.system.remove(this.update, this), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "", this.interactionDOMElement.style["-ms-touch-action"] = "") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = ""), this.supportsPointerEvents ? (window.document.removeEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("pointerover", this.onPointerOver, !0), window.removeEventListener("pointercancel", this.onPointerCancel, !0), window.removeEventListener("pointerup", this.onPointerUp, !0)) : (window.document.removeEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("mouseover", this.onPointerOver, !0), window.removeEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.removeEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.removeEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.removeEventListener("touchmove", this.onPointerMove, !0)), this.interactionDOMElement = null, this.eventsAdded = !1) + }, InteractionManager.prototype.update = function(t) { + if (this._deltaTime += t, !(this._deltaTime < this.interactionFrequency) && (this._deltaTime = 0, this.interactionDOMElement)) + if (this.didMove) this.didMove = !1; + else { + for (var e in this.cursor = null, this.activeInteractionData) + if (this.activeInteractionData.hasOwnProperty(e)) { + var r = this.activeInteractionData[e]; + if (r.originalEvent && "touch" !== r.pointerType) { + var n = this.configureInteractionEventForDOMEvent(this.eventData, r.originalEvent, r); + this.processInteractive(n, this.renderer._lastObjectRendered, this.processPointerOverOut, !0) + } + } + this.setCursorMode(this.cursor) + } + }, InteractionManager.prototype.setCursorMode = function(t) { + if (t = t || "default", this.currentCursorMode !== t) { + this.currentCursorMode = t; + var e = this.cursorStyles[t]; + if (e) switch (typeof e) { + case "string": + this.interactionDOMElement.style.cursor = e; + break; + case "function": + e(t); + break; + case "object": + Object.assign(this.interactionDOMElement.style, e) + } else "string" != typeof t || Object.prototype.hasOwnProperty.call(this.cursorStyles, t) || (this.interactionDOMElement.style.cursor = t) + } + }, InteractionManager.prototype.dispatchEvent = function(t, e, r) { + r.stopped || (r.currentTarget = t, r.type = e, t.emit(e, r), t[e] && t[e](r)) + }, InteractionManager.prototype.mapPositionToPoint = function(t, e, r) { + var n; + n = this.interactionDOMElement.parentElement ? this.interactionDOMElement.getBoundingClientRect() : { + x: 0, + y: 0, + width: 0, + height: 0 + }; + var i = 1 / this.resolution; + t.x = (e - n.left) * (this.interactionDOMElement.width / n.width) * i, t.y = (r - n.top) * (this.interactionDOMElement.height / n.height) * i + }, InteractionManager.prototype.processInteractive = function(t, e, r, n, i) { + if (!e || !e.visible) return !1; + var o = t.data.global, + a = !1, + s = i = e.interactive || i, + u = !0; + if (e.hitArea ? (n && (e.worldTransform.applyInverse(o, this._tempPoint), e.hitArea.contains(this._tempPoint.x, this._tempPoint.y) ? a = !0 : u = n = !1), s = !1) : e._mask && n && (e._mask.containsPoint && e._mask.containsPoint(o) || (u = n = !1)), u && e.interactiveChildren && e.children) + for (var h = e.children, c = h.length - 1; 0 <= c; c--) { + var l = h[c], + f = this.processInteractive(t, l, r, n, s); + if (f) { + if (!l.parent) continue; + s = !1, f && (t.target && (n = !1), a = !0) + } + } + return i && (n && !t.target && !e.hitArea && e.containsPoint && e.containsPoint(o) && (a = !0), e.interactive && (a && !t.target && (t.target = e), r && r(t, e, !!a))), a + }, InteractionManager.prototype.onPointerDown = function(t) { + if (!this.supportsTouchEvents || "touch" !== t.pointerType) { + var e = this.normalizeToPointerData(t); + if (this.autoPreventDefault && e[0].isNormalized)(t.cancelable || !("cancelable" in t)) && t.preventDefault(); + for (var r = e.length, n = 0; n < r; n++) { + var i = e[n], + o = this.getInteractionDataForPointerId(i), + a = this.configureInteractionEventForDOMEvent(this.eventData, i, o); + if (a.data.originalEvent = t, this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerDown, !0), this.emit("pointerdown", a), "touch" === i.pointerType) this.emit("touchstart", a); + else if ("mouse" === i.pointerType || "pen" === i.pointerType) { + var s = 2 === i.button; + this.emit(s ? "rightdown" : "mousedown", this.eventData) + } + } + } + }, InteractionManager.prototype.processPointerDown = function(t, e, r) { + var n = t.data, + i = t.data.identifier; + if (r) + if (e.trackedPointers[i] || (e.trackedPointers[i] = new vr(i)), this.dispatchEvent(e, "pointerdown", t), "touch" === n.pointerType) this.dispatchEvent(e, "touchstart", t); + else if ("mouse" === n.pointerType || "pen" === n.pointerType) { + var o = 2 === n.button; + o ? e.trackedPointers[i].rightDown = !0 : e.trackedPointers[i].leftDown = !0, this.dispatchEvent(e, o ? "rightdown" : "mousedown", t) + } + }, InteractionManager.prototype.onPointerComplete = function(t, e, r) { + for (var n = this.normalizeToPointerData(t), i = n.length, o = t.target !== this.interactionDOMElement ? "outside" : "", a = 0; a < i; a++) { + var s = n[a], + u = this.getInteractionDataForPointerId(s), + h = this.configureInteractionEventForDOMEvent(this.eventData, s, u); + if (h.data.originalEvent = t, this.processInteractive(h, this.renderer._lastObjectRendered, r, e || !o), this.emit(e ? "pointercancel" : "pointerup" + o, h), "mouse" === s.pointerType || "pen" === s.pointerType) { + var c = 2 === s.button; + this.emit(c ? "rightup" + o : "mouseup" + o, h) + } else "touch" === s.pointerType && (this.emit(e ? "touchcancel" : "touchend" + o, h), this.releaseInteractionDataForPointerId(s.pointerId, u)) + } + }, InteractionManager.prototype.onPointerCancel = function(t) { + this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !0, this.processPointerCancel) + }, InteractionManager.prototype.processPointerCancel = function(t, e) { + var r = t.data, + n = t.data.identifier; + void 0 !== e.trackedPointers[n] && (delete e.trackedPointers[n], this.dispatchEvent(e, "pointercancel", t), "touch" === r.pointerType && this.dispatchEvent(e, "touchcancel", t)) + }, InteractionManager.prototype.onPointerUp = function(t) { + this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !1, this.processPointerUp) + }, InteractionManager.prototype.processPointerUp = function(t, e, r) { + var n = t.data, + i = t.data.identifier, + o = e.trackedPointers[i], + a = "touch" === n.pointerType, + s = "mouse" === n.pointerType || "pen" === n.pointerType, + u = !1; + if (s) { + var h = 2 === n.button, + c = vr.FLAGS, + l = h ? c.RIGHT_DOWN : c.LEFT_DOWN, + f = void 0 !== o && o.flags & l; + r ? (this.dispatchEvent(e, h ? "rightup" : "mouseup", t), f && (this.dispatchEvent(e, h ? "rightclick" : "click", t), u = !0)) : f && this.dispatchEvent(e, h ? "rightupoutside" : "mouseupoutside", t), o && (h ? o.rightDown = !1 : o.leftDown = !1) + } + r ? (this.dispatchEvent(e, "pointerup", t), a && this.dispatchEvent(e, "touchend", t), o && (s && !u || this.dispatchEvent(e, "pointertap", t), a && (this.dispatchEvent(e, "tap", t), o.over = !1))) : o && (this.dispatchEvent(e, "pointerupoutside", t), a && this.dispatchEvent(e, "touchendoutside", t)), o && o.none && delete e.trackedPointers[i] + }, InteractionManager.prototype.onPointerMove = function(t) { + if (!this.supportsTouchEvents || "touch" !== t.pointerType) { + var e = this.normalizeToPointerData(t); + "mouse" !== e[0].pointerType && "pen" !== e[0].pointerType || (this.didMove = !0, this.cursor = null); + for (var r = e.length, n = 0; n < r; n++) { + var i = e[n], + o = this.getInteractionDataForPointerId(i), + a = this.configureInteractionEventForDOMEvent(this.eventData, i, o); + a.data.originalEvent = t; + var s = "touch" !== i.pointerType || this.moveWhenInside; + this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerMove, s), this.emit("pointermove", a), "touch" === i.pointerType && this.emit("touchmove", a), "mouse" !== i.pointerType && "pen" !== i.pointerType || this.emit("mousemove", a) + } + "mouse" === e[0].pointerType && this.setCursorMode(this.cursor) + } + }, InteractionManager.prototype.processPointerMove = function(t, e, r) { + var n = t.data, + i = "touch" === n.pointerType, + o = "mouse" === n.pointerType || "pen" === n.pointerType; + o && this.processPointerOverOut(t, e, r), this.moveWhenInside && !r || (this.dispatchEvent(e, "pointermove", t), i && this.dispatchEvent(e, "touchmove", t), o && this.dispatchEvent(e, "mousemove", t)) + }, InteractionManager.prototype.onPointerOut = function(t) { + if (!this.supportsTouchEvents || "touch" !== t.pointerType) { + var e = this.normalizeToPointerData(t)[0]; + "mouse" === e.pointerType && (this.mouseOverRenderer = !1, this.setCursorMode(null)); + var r = this.getInteractionDataForPointerId(e), + n = this.configureInteractionEventForDOMEvent(this.eventData, e, r); + n.data.originalEvent = e, this.processInteractive(n, this.renderer._lastObjectRendered, this.processPointerOverOut, !1), this.emit("pointerout", n), "mouse" === e.pointerType || "pen" === e.pointerType ? this.emit("mouseout", n) : this.releaseInteractionDataForPointerId(r.identifier) + } + }, InteractionManager.prototype.processPointerOverOut = function(t, e, r) { + var n = t.data, + i = t.data.identifier, + o = "mouse" === n.pointerType || "pen" === n.pointerType, + a = e.trackedPointers[i]; + r && !a && (a = e.trackedPointers[i] = new vr(i)), void 0 !== a && (r && this.mouseOverRenderer ? (a.over || (a.over = !0, this.dispatchEvent(e, "pointerover", t), o && this.dispatchEvent(e, "mouseover", t)), o && null === this.cursor && (this.cursor = e.cursor)) : a.over && (a.over = !1, this.dispatchEvent(e, "pointerout", this.eventData), o && this.dispatchEvent(e, "mouseout", t), a.none && delete e.trackedPointers[i])) + }, InteractionManager.prototype.onPointerOver = function(t) { + var e = this.normalizeToPointerData(t)[0], + r = this.getInteractionDataForPointerId(e), + n = this.configureInteractionEventForDOMEvent(this.eventData, e, r); + "mouse" === (n.data.originalEvent = e).pointerType && (this.mouseOverRenderer = !0), this.emit("pointerover", n), "mouse" !== e.pointerType && "pen" !== e.pointerType || this.emit("mouseover", n) + }, InteractionManager.prototype.getInteractionDataForPointerId = function(t) { + var e, r = t.pointerId; + return 1 === r || "mouse" === t.pointerType ? e = this.mouse : this.activeInteractionData[r] ? e = this.activeInteractionData[r] : ((e = this.interactionDataPool.pop() || new dr).identifier = r, this.activeInteractionData[r] = e), e.copyEvent(t), e + }, InteractionManager.prototype.releaseInteractionDataForPointerId = function(t) { + var e = this.activeInteractionData[t]; + e && (delete this.activeInteractionData[t], e.reset(), this.interactionDataPool.push(e)) + }, InteractionManager.prototype.configureInteractionEventForDOMEvent = function(t, e, r) { + return t.data = r, this.mapPositionToPoint(r.global, e.clientX, e.clientY), "touch" === e.pointerType && (e.globalX = r.global.x, e.globalY = r.global.y), r.originalEvent = e, t.reset(), t + }, InteractionManager.prototype.normalizeToPointerData = function(t) { + var e = []; + if (this.supportsTouchEvents && t instanceof TouchEvent) + for (var r = 0, n = t.changedTouches.length; r < n; r++) { + var i = t.changedTouches[r]; + void 0 === i.button && (i.button = t.touches.length ? 1 : 0), void 0 === i.buttons && (i.buttons = t.touches.length ? 1 : 0), void 0 === i.isPrimary && (i.isPrimary = 1 === t.touches.length && "touchstart" === t.type), void 0 === i.width && (i.width = i.radiusX || 1), void 0 === i.height && (i.height = i.radiusY || 1), void 0 === i.tiltX && (i.tiltX = 0), void 0 === i.tiltY && (i.tiltY = 0), void 0 === i.pointerType && (i.pointerType = "touch"), void 0 === i.pointerId && (i.pointerId = i.identifier || 0), void 0 === i.pressure && (i.pressure = i.force || .5), void 0 === i.twist && (i.twist = 0), void 0 === i.tangentialPressure && (i.tangentialPressure = 0), void 0 === i.layerX && (i.layerX = i.offsetX = i.clientX), void 0 === i.layerY && (i.layerY = i.offsetY = i.clientY), i.isNormalized = !0, e.push(i) + } else !(t instanceof MouseEvent) || this.supportsPointerEvents && t instanceof window.PointerEvent || (void 0 === t.isPrimary && (t.isPrimary = !0), void 0 === t.width && (t.width = 1), void 0 === t.height && (t.height = 1), void 0 === t.tiltX && (t.tiltX = 0), void 0 === t.tiltY && (t.tiltY = 0), void 0 === t.pointerType && (t.pointerType = "mouse"), void 0 === t.pointerId && (t.pointerId = 1), void 0 === t.pressure && (t.pressure = .5), void 0 === t.twist && (t.twist = 0), void 0 === t.tangentialPressure && (t.tangentialPressure = 0), t.isNormalized = !0), e.push(t); + return e + }, InteractionManager.prototype.destroy = function() { + this.removeEvents(), this.removeAllListeners(), this.renderer = null, this.mouse = null, this.eventData = null, this.interactionDOMElement = null, this.onPointerDown = null, this.processPointerDown = null, this.onPointerUp = null, this.processPointerUp = null, this.onPointerCancel = null, this.processPointerCancel = null, this.onPointerMove = null, this.processPointerMove = null, this.onPointerOut = null, this.processPointerOverOut = null, this.onPointerOver = null, this._tempPoint = null + }, InteractionManager + }(l.a), + xr = { + adaptive: !0, + maxLength: 10, + minSegments: 8, + maxSegments: 2048, + _segmentsCount: function(t, e) { + if (void 0 === e && (e = 20), !this.adaptive) return e; + var r = Math.ceil(t / this.maxLength); + return r < this.minSegments ? r = this.minSegments : r > this.maxSegments && (r = this.maxSegments), r + } + }, + wr = function() { + this.reset() + }; + wr.prototype.clone = function() { + var t = new wr; + return t.color = this.color, t.alpha = this.alpha, t.texture = this.texture, t.matrix = this.matrix, t.visible = this.visible, t + }, wr.prototype.reset = function() { + this.color = 16777215, this.alpha = 1, this.texture = Ht.WHITE, this.matrix = null, this.visible = !1 + }, wr.prototype.destroy = function() { + this.texture = null, this.matrix = null + }; + var Tr = function(t, e, r, n) { + void 0 === e && (e = null), void 0 === r && (r = null), void 0 === n && (n = null), this.shape = t, this.lineStyle = r, this.fillStyle = e, this.matrix = n, this.type = t.type, this.points = [], this.holes = [] + }; + Tr.prototype.clone = function() { + return new Tr(this.shape, this.fillStyle, this.lineStyle, this.matrix) + }, Tr.prototype.destroy = function() { + this.shape = null, this.holes.length = 0, this.holes = null, this.points.length = 0, this.points = null, this.lineStyle = null, this.fillStyle = null + }; + var Sr = { + build: function(t) { + var e, r, n = t.shape, + i = t.points, + o = n.x, + a = n.y; + if (i.length = 0, r = t.type === W.CIRC ? (e = n.radius, n.radius) : (e = n.width, n.height), 0 !== e && 0 !== r) { + var s = Math.floor(30 * Math.sqrt(n.radius)) || Math.floor(15 * Math.sqrt(n.width + n.height)); + s /= 2.3; + for (var u = 2 * Math.PI / s, h = 0; h < s; h++) i.push(o + Math.sin(u * h) * e, a + Math.cos(u * h) * r); + i.push(i[0], i[1]) + } + }, + triangulate: function(t, e) { + var r = t.points, + n = e.points, + i = e.indices, + o = n.length / 2, + a = o; + n.push(t.shape.x, t.shape.y); + for (var s = 0; s < r.length; s += 2) n.push(r[s], r[s + 1]), i.push(o++, a, o) + } + }; + + function buildLine(t, e) { + t.lineStyle.native ? function(t, e) { + var r = 0, + n = t.points || t.shape.points; + if (0 === n.length) return; + var i = e.points, + o = e.indices, + a = n.length / 2, + s = i.length / 2; + for (r = 1; r < a; r++) { + var u = n[2 * (r - 1)], + h = n[2 * (r - 1) + 1], + c = n[2 * r], + l = n[2 * r + 1]; + i.push(u, h), i.push(c, l), o.push(s++, s++) + } + }(t, e) : function(t, e) { + var r = t.shape, + n = t.points || r.points.slice(); + if (0 === n.length) return; + var i = t.lineStyle, + o = new q(n[0], n[1]), + a = new q(n[n.length - 2], n[n.length - 1]), + s = r.type !== W.POLY || r.closeStroke, + u = o.x === a.x && o.y === a.y; + if (s) { + n = n.slice(), u && (n.pop(), n.pop(), a.set(n[n.length - 2], n[n.length - 1])); + var h = a.x + .5 * (o.x - a.x), + c = a.y + .5 * (o.y - a.y); + n.unshift(h, c), n.push(h, c) + } + var l = e.points, + f = n.length / 2, + d = n.length, + p = l.length / 2, + m = i.width / 2, + v = n[0], + g = n[1], + y = n[2], + _ = n[3], + b = 0, + x = 0, + w = -(g - _), + T = v - y, + S = 0, + M = 0, + E = 0, + A = 0, + P = Math.sqrt(w * w + T * T); + w /= P, T /= P, w *= m, T *= m; + var I = i.alignment, + O = 2 * (1 - I), + C = 2 * I; + l.push(v - w * O, g - T * O), l.push(v + w * C, g + T * C); + for (var R = 1; R < f - 1; ++R) { + v = n[2 * (R - 1)], g = n[2 * (R - 1) + 1], y = n[2 * R], _ = n[2 * R + 1], b = n[2 * (R + 1)], x = n[2 * (R + 1) + 1], w = -(g - _), T = v - y, P = Math.sqrt(w * w + T * T), w /= P, T /= P, w *= m, T *= m, S = -(_ - x), M = y - b, P = Math.sqrt(S * S + M * M), S /= P, M /= P; + var D = -T + g - (-T + _), + F = -w + y - (-w + v), + k = (-w + v) * (-T + _) - (-w + y) * (-T + g), + L = -(M *= m) + x - (-M + _), + N = -(S *= m) + y - (-S + b), + B = (-S + b) * (-M + _) - (-S + y) * (-M + x), + U = D * N - L * F; + if (Math.abs(U) < .1) U += 10.1, l.push(y - w * O, _ - T * O), l.push(y + w * C, _ + T * C); + else { + var G = (F * B - N * k) / U, + j = (L * k - D * B) / U, + z = (G - y) * (G - y) + (j - _) * (j - _); + 196 * m * m < z ? (E = w - S, A = T - M, P = Math.sqrt(E * E + A * A), E /= P, A /= P, E *= m, A *= m, l.push(y - E * O, _ - A * O), l.push(y + E * C, _ + A * C), l.push(y - E * C * O, _ - A * O), d++) : (l.push(y + (G - y) * O, _ + (j - _) * O), l.push(y - (G - y) * C, _ - (j - _) * C)) + } + } + v = n[2 * (f - 2)], g = n[2 * (f - 2) + 1], y = n[2 * (f - 1)], _ = n[2 * (f - 1) + 1], w = -(g - _), T = v - y, P = Math.sqrt(w * w + T * T), w /= P, T /= P, w *= m, T *= m, l.push(y - w * O, _ - T * O), l.push(y + w * C, _ + T * C); + for (var X = e.indices, V = 0; V < d - 2; ++V) X.push(p, p + 1, p + 2), p++ + }(t, e) + } + var Mr = { + build: function(t) { + t.points = t.shape.points.slice() + }, + triangulate: function(t, e) { + var r = t.points, + n = t.holes, + i = e.points, + o = e.indices; + if (6 <= r.length) { + for (var a = [], s = 0; s < n.length; s++) { + var u = n[s]; + a.push(r.length / 2), r = r.concat(u.points) + } + var h = d()(r, a, 2); + if (!h) return; + for (var c = i.length / 2, l = 0; l < h.length; l += 3) o.push(h[l] + c), o.push(h[l + 1] + c), o.push(h[l + 2] + c); + for (var f = 0; f < r.length; f++) i.push(r[f]) + } + } + }, + Er = { + build: function(t) { + var e = t.shape, + r = t.points, + n = e.x, + i = e.y, + o = e.width, + a = e.height, + s = e.radius; + r.length = 0, r.push(n, i + s), quadraticBezierCurve(n, i + a - s, n, i + a, n + s, i + a, r), quadraticBezierCurve(n + o - s, i + a, n + o, i + a, n + o, i + a - s, r), quadraticBezierCurve(n + o, i + s, n + o, i, n + o - s, i, r), quadraticBezierCurve(n + s, i, n, i, n, i + s + 1e-10, r) + }, + triangulate: function(t, e) { + for (var r = t.points, n = e.points, i = e.indices, o = n.length / 2, a = d()(r, null, 2), s = 0, u = a.length; s < u; s += 3) i.push(a[s] + o), i.push(a[s + 1] + o), i.push(a[s + 2] + o); + for (var h = 0, c = r.length; h < c; h++) n.push(r[h], r[++h]) + } + }; + + function getPt(t, e, r) { + return t + (e - t) * r + } + + function quadraticBezierCurve(t, e, r, n, i, o, a) { + void 0 === a && (a = []); + for (var s = a, u = 0, h = 0, c = 0, l = 0, f = 0, d = 0, p = 0, m = 0; p <= 20; ++p) u = getPt(t, r, m = p / 20), h = getPt(e, n, m), c = getPt(r, i, m), l = getPt(n, o, m), f = getPt(u, c, m), d = getPt(h, l, m), s.push(f, d); + return s + } + var Ar = [], + Pr = [], + Ir = 0, + Or = {}; + Or[W.POLY] = Mr, Or[W.CIRC] = Sr, Or[W.ELIP] = Sr, Or[W.RECT] = { + build: function(t) { + var e = t.shape, + r = e.x, + n = e.y, + i = e.width, + o = e.height, + a = t.points; + a.length = 0, a.push(r, n, r + i, n, r + i, n + o, r, n + o) + }, + triangulate: function(t, e) { + var r = t.points, + n = e.points, + i = n.length / 2; + n.push(r[0], r[1], r[2], r[3], r[6], r[7], r[4], r[5]), e.indices.push(i, i + 1, i + 2, i + 1, i + 2, i + 3) + } + }, Or[W.RREC] = Er; + var Cr = function() { + this.style = null, this.size = 0, this.start = 0, this.attribStart = 0, this.attribSize = 0 + }, + Rr = function(r) { + function GraphicsGeometry() { + r.call(this), this.points = [], this.colors = [], this.uvs = [], this.indices = [], this.textureIds = [], this.graphicsData = [], this.dirty = 0, this.batchDirty = -1, this.cacheDirty = -1, this.clearDirty = 0, this.drawCalls = [], this.batches = [], this.shapeIndex = 0, this._bounds = new ft, this.boundsDirty = -1, this.boundsPadding = 0, this.batchable = !1, this.indicesUint16 = null, this.uvsFloat32 = null + } + r && (GraphicsGeometry.__proto__ = r), (GraphicsGeometry.prototype = Object.create(r && r.prototype)).constructor = GraphicsGeometry; + var t = { + bounds: { + configurable: !0 + } + }; + return t.bounds.get = function() { + return this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.calculateBounds()), this._bounds + }, GraphicsGeometry.prototype.clear = function() { + if (0 < this.graphicsData.length) { + this.boundsDirty = -1, this.dirty++, this.clearDirty++, this.batchDirty++, this.graphicsData.length = 0, this.shapeIndex = 0, this.points.length = 0, this.colors.length = 0, this.uvs.length = 0, this.indices.length = 0; + for (var t = this.textureIds.length = 0; t < this.drawCalls.length; t++) this.drawCalls[t].textures.length = 0, Pr.push(this.drawCalls[t]); + for (var e = this.drawCalls.length = 0; e < this.batches.length; e++) { + var r = this.batches[e]; + r.start = 0, r.attribStart = 0, r.style = null, Ar.push(r) + } + this.batches.length = 0 + } + return this + }, GraphicsGeometry.prototype.drawShape = function(t, e, r, n) { + var i = new Tr(t, e, r, n); + return this.graphicsData.push(i), this.dirty++, this + }, GraphicsGeometry.prototype.drawHole = function(t, e) { + if (!this.graphicsData.length) return null; + var r = new Tr(t, null, null, e), + n = this.graphicsData[this.graphicsData.length - 1]; + return r.lineStyle = n.lineStyle, n.holes.push(r), this.dirty++, r + }, GraphicsGeometry.prototype.destroy = function(t) { + r.prototype.destroy.call(this, t); + for (var e = 0; e < this.graphicsData.length; ++e) this.graphicsData[e].destroy(); + this.points.length = 0, this.points = null, this.colors.length = 0, this.colors = null, this.uvs.length = 0, this.uvs = null, this.indices.length = 0, this.indices = null, this.indexBuffer.destroy(), this.indexBuffer = null, this.graphicsData.length = 0, this.graphicsData = null, this.drawCalls.length = 0, this.drawCalls = null, this.batches.length = 0, this.batches = null, this._bounds = null + }, GraphicsGeometry.prototype.containsPoint = function(t) { + for (var e = this.graphicsData, r = 0; r < e.length; ++r) { + var n = e[r]; + if (n.fillStyle.visible && (n.shape && n.shape.contains(t.x, t.y))) { + if (n.holes) + for (var i = 0; i < n.holes.length; i++) { + if (n.holes[i].shape.contains(t.x, t.y)) return !1 + } + return !0 + } + } + return !1 + }, GraphicsGeometry.prototype.updateBatches = function() { + if (this.dirty !== this.cacheDirty && 0 !== this.graphicsData.length) { + if (this.dirty !== this.cacheDirty) + for (var t = 0; t < this.graphicsData.length; t++) { + var e = this.graphicsData[t]; + if (e.fillStyle && !e.fillStyle.texture.baseTexture.valid) return; + if (e.lineStyle && !e.lineStyle.texture.baseTexture.valid) return + } + this.cacheDirty = this.dirty; + var r = this.uvs, + n = this.batches.pop() || Ar.pop() || new Cr; + n.style = n.style || this.graphicsData[0].fillStyle || this.graphicsData[0].lineStyle; + var i = n.style.texture.baseTexture, + o = n.style.color + n.style.alpha; + this.batches.push(n); + for (var a = this.shapeIndex; a < this.graphicsData.length; a++) { + this.shapeIndex++; + var s = this.graphicsData[a], + u = Or[s.type], + h = s.fillStyle, + c = s.lineStyle; + u.build(s), s.matrix && this.transformPoints(s.points, s.matrix); + for (var l = 0; l < 2; l++) { + var f = 0 === l ? h : c; + if (f.visible) { + var d = f.texture.baseTexture; + if (i !== d || f.color + f.alpha !== o) { + d.wrapMode = 10497, i = d, o = f.color + f.alpha; + var p = this.indices.length, + m = this.points.length / 2; + n.size = p - n.start, n.attribSize = m - n.attribStart, 0 < n.size && (n = Ar.pop() || new Cr, this.batches.push(n)), n.style = f, n.start = p, n.attribStart = m + } + var v = this.points.length / 2; + if (0 === l) s.holes.length ? (this.processHoles(s.holes), Mr.triangulate(s, this)) : u.triangulate(s, this); + else { + buildLine(s, this); + for (var g = 0; g < s.holes.length; g++) buildLine(s.holes[g], this) + } + var y = this.points.length / 2 - v; + this.addUvs(this.points, r, f.texture, v, y, f.matrix) + } + } + } + var _ = this.indices.length, + b = this.points.length / 2; + if (n.size = _ - n.start, n.attribSize = b - n.attribStart, this.indicesUint16 = new Uint16Array(this.indices), this.batchable = this.isBatchable(), this.batchable) { + this.batchDirty++, this.uvsFloat32 = new Float32Array(this.uvs); + for (var x = 0; x < this.batches.length; x++) + for (var w = this.batches[x], T = 0; T < w.size; T++) { + var S = w.start + T; + this.indicesUint16[S] = this.indicesUint16[S] - w.attribStart + } + } else this.buildDrawCalls() + } + }, GraphicsGeometry.prototype.isBatchable = function() { + for (var t = this.batches, e = 0; e < t.length; e++) + if (t[e].style.native) return !1; + return this.points.length < 2 * GraphicsGeometry.BATCHABLE_SIZE + }, GraphicsGeometry.prototype.buildDrawCalls = function() { + Ir++; + for (var t = 0; t < this.drawCalls.length; t++) this.drawCalls[t].textures.length = 0, Pr.push(this.drawCalls[t]); + this.drawCalls.length = 0; + var e = this.uvs, + r = this.colors, + n = this.textureIds, + i = Pr.pop() || new ir; + i.textureCount = 0, i.start = 0, i.size = 0, i.type = x.TRIANGLES; + var o = 0, + a = null, + s = 0, + u = !1, + h = x.TRIANGLES, + c = 0; + this.drawCalls.push(i); + for (var l = 0; l < this.batches.length; l++) { + var f = this.batches[l], + d = f.style, + p = d.texture.baseTexture; + u !== d.native && (h = (u = d.native) ? x.LINES : x.TRIANGLES, a = null, o = 8, Ir++), a !== p && (a = p)._enabled !== Ir && (8 === o && (Ir++, (o = 0) < i.size && (i = Pr.pop() || new ir, this.drawCalls.push(i)), i.start = c, i.size = 0, i.textureCount = 0, i.type = h), p.touched = 1, p._enabled = Ir, p._id = o, p.wrapMode = 10497, i.textures[i.textureCount++] = p, o++), i.size += f.size, c += f.size, s = p._id, this.addColors(r, d.color, d.alpha, f.attribSize), this.addTextureIds(n, s, f.attribSize) + } + for (var m = this.points, v = new ArrayBuffer(3 * m.length * 4), g = new Float32Array(v), y = new Uint32Array(v), _ = 0, b = 0; b < m.length / 2; b++) g[_++] = m[2 * b], g[_++] = m[2 * b + 1], g[_++] = e[2 * b], g[_++] = e[2 * b + 1], y[_++] = r[b], g[_++] = n[b]; + this._buffer.update(v), this._indexBuffer.update(this.indicesUint16) + }, GraphicsGeometry.prototype.processHoles = function(t) { + for (var e = 0; e < t.length; e++) { + var r = t[e]; + Or[r.type].build(r), r.matrix && this.transformPoints(r.points, r.matrix) + } + }, GraphicsGeometry.prototype.calculateBounds = function() { + var t = 1 / 0, + e = -1 / 0, + r = 1 / 0, + n = -1 / 0; + if (this.graphicsData.length) + for (var i = null, o = 0, a = 0, s = 0, u = 0, h = 0; h < this.graphicsData.length; h++) { + var c = this.graphicsData[h], + l = c.type, + f = c.lineStyle ? c.lineStyle.width : 0; + if (i = c.shape, l === W.RECT || l === W.RREC) o = i.x - f / 2, a = i.y - f / 2, t = o < t ? o : t, e = e < o + (s = i.width + f) ? o + s : e, r = a < r ? a : r, n = n < a + (u = i.height + f) ? a + u : n; + else if (l === W.CIRC) o = i.x, a = i.y, t = o - (s = i.radius + f / 2) < t ? o - s : t, e = e < o + s ? o + s : e, r = a - (u = i.radius + f / 2) < r ? a - u : r, n = n < a + u ? a + u : n; + else if (l === W.ELIP) o = i.x, a = i.y, t = o - (s = i.width + f / 2) < t ? o - s : t, e = e < o + s ? o + s : e, r = a - (u = i.height + f / 2) < r ? a - u : r, n = n < a + u ? a + u : n; + else + for (var d = i.points, p = 0, m = 0, v = 0, g = 0, y = 0, _ = 0, b = 0, x = 0, w = 0; w + 2 < d.length; w += 2) o = d[w], a = d[w + 1], p = d[w + 2], m = d[w + 3], v = Math.abs(p - o), g = Math.abs(m - a), u = f, (s = Math.sqrt(v * v + g * g)) < 1e-9 || (t = (b = (p + o) / 2) - (y = (u / s * g + v) / 2) < t ? b - y : t, e = e < b + y ? b + y : e, r = (x = (m + a) / 2) - (_ = (u / s * v + g) / 2) < r ? x - _ : r, n = n < x + _ ? x + _ : n) + } else n = r = e = t = 0; + var T = this.boundsPadding; + this._bounds.minX = t - T, this._bounds.maxX = e + T, this._bounds.minY = r - T, this._bounds.maxY = n + T + }, GraphicsGeometry.prototype.transformPoints = function(t, e) { + for (var r = 0; r < t.length / 2; r++) { + var n = t[2 * r], + i = t[2 * r + 1]; + t[2 * r] = e.a * n + e.c * i + e.tx, t[2 * r + 1] = e.b * n + e.d * i + e.ty + } + }, GraphicsGeometry.prototype.addColors = function(t, e, r, n) { + for (var i = premultiplyTint((e >> 16) + (65280 & e) + ((255 & e) << 16), r); 0 < n--;) t.push(i) + }, GraphicsGeometry.prototype.addTextureIds = function(t, e, r) { + for (; 0 < r--;) t.push(e) + }, GraphicsGeometry.prototype.addUvs = function(t, e, r, n, i, o) { + for (var a = 0, s = e.length, u = r.frame; a < i;) { + var h = t[2 * (n + a)], + c = t[2 * (n + a) + 1]; + if (o) { + var l = o.a * h + o.c * c + o.tx; + c = o.b * h + o.d * c + o.ty, h = l + } + a++, e.push(h / u.width, c / u.height) + } + var f = r.baseTexture; + (u.width < f.width || u.height < f.height) && this.adjustUvs(e, r, s, i) + }, GraphicsGeometry.prototype.adjustUvs = function(t, e, r, n) { + for (var i = e.baseTexture, o = r + 2 * n, a = e.frame, s = a.width / i.width, u = a.height / i.height, h = a.x / a.width, c = a.y / a.width, l = Math.floor(t[r] + 1e-6), f = Math.floor(t[r + 1] + 1e-6), d = r + 2; d < o; d += 2) l = Math.min(l, Math.floor(t[d] + 1e-6)), f = Math.min(f, Math.floor(t[d + 1] + 1e-6)); + h -= l, c -= f; + for (var p = r; p < o; p += 2) t[p] = (t[p] + h) * s, t[p + 1] = (t[p + 1] + c) * u + }, Object.defineProperties(GraphicsGeometry.prototype, t), GraphicsGeometry + }(nr); + Rr.BATCHABLE_SIZE = 100; + var Dr = function(t) { + function LineStyle() { + t.apply(this, arguments) + } + return t && (LineStyle.__proto__ = t), ((LineStyle.prototype = Object.create(t && t.prototype)).constructor = LineStyle).prototype.clone = function() { + var t = new LineStyle; + return t.color = this.color, t.alpha = this.alpha, t.texture = this.texture, t.matrix = this.matrix, t.visible = this.visible, t.width = this.width, t.alignment = this.alignment, t.native = this.native, t + }, LineStyle.prototype.reset = function() { + t.prototype.reset.call(this), this.color = 0, this.width = 0, this.alignment = .5, this.native = !1 + }, LineStyle + }(wr), + Fr = function() {}; + Fr.curveLength = function(t, e, r, n, i, o, a, s) { + for (var u = 0, h = 0, c = 0, l = 0, f = 0, d = 0, p = 0, m = 0, v = 0, g = 0, y = 0, _ = t, b = e, x = 1; x <= 10; ++x) g = _ - (m = (p = (d = (f = 1 - (h = x / 10)) * f) * f) * t + 3 * d * h * r + 3 * f * (c = h * h) * i + (l = c * h) * a), y = b - (v = p * e + 3 * d * h * n + 3 * f * c * o + l * s), _ = m, b = v, u += Math.sqrt(g * g + y * y); + return u + }, Fr.curveTo = function(t, e, r, n, i, o, a) { + var s = a[a.length - 2], + u = a[a.length - 1]; + a.length -= 2; + var h = xr._segmentsCount(Fr.curveLength(s, u, t, e, r, n, i, o)), + c = 0, + l = 0, + f = 0, + d = 0, + p = 0; + a.push(s, u); + for (var m = 1, v = 0; m <= h; ++m) f = (l = (c = 1 - (v = m / h)) * c) * c, p = (d = v * v) * v, a.push(f * s + 3 * l * v * t + 3 * c * d * r + p * i, f * u + 3 * l * v * e + 3 * c * d * n + p * o) + }; + var kr = function() {}; + kr.curveLength = function(t, e, r, n, i, o) { + var a = t - 2 * r + i, + s = e - 2 * n + o, + u = 2 * r - 2 * t, + h = 2 * n - 2 * e, + c = 4 * (a * a + s * s), + l = 4 * (a * u + s * h), + f = u * u + h * h, + d = 2 * Math.sqrt(c + l + f), + p = Math.sqrt(c), + m = 2 * c * p, + v = 2 * Math.sqrt(f), + g = l / p; + return (m * d + p * l * (d - v) + (4 * f * c - l * l) * Math.log((2 * p + g + d) / (g + v))) / (4 * m) + }, kr.curveTo = function(t, e, r, n, i) { + for (var o = i[i.length - 2], a = i[i.length - 1], s = xr._segmentsCount(kr.curveLength(o, a, t, e, r, n)), u = 0, h = 0, c = 1; c <= s; ++c) { + var l = c / s; + u = o + (t - o) * l, h = a + (e - a) * l, i.push(u + (t + (r - t) * l - u) * l, h + (e + (n - e) * l - h) * l) + } + }; + var Lr = function() {}; + Lr.curveTo = function(t, e, r, n, i, o) { + var a = o[o.length - 2], + s = o[o.length - 1] - e, + u = a - t, + h = n - e, + c = r - t, + l = Math.abs(s * c - u * h); + if (l < 1e-8 || 0 === i) return o[o.length - 2] === t && o[o.length - 1] === e || o.push(t, e), null; + var f = s * s + u * u, + d = h * h + c * c, + p = s * h + u * c, + m = i * Math.sqrt(f) / l, + v = i * Math.sqrt(d) / l, + g = m * p / f, + y = v * p / d, + _ = m * c + v * u, + b = m * h + v * s, + x = u * (v + g), + w = s * (v + g), + T = c * (m + y), + S = h * (m + y); + return { + cx: _ + t, + cy: b + e, + radius: i, + startAngle: Math.atan2(w - b, x - _), + endAngle: Math.atan2(S - b, T - _), + anticlockwise: c * s < u * h + } + }, Lr.arc = function(t, e, r, n, i, o, a, s, u) { + for (var h = a - o, c = xr._segmentsCount(Math.abs(h) * i, 40 * Math.ceil(Math.abs(h) / X)), l = h / (2 * c), f = 2 * l, d = Math.cos(l), p = Math.sin(l), m = c - 1, v = m % 1 / m, g = 0; g <= m; ++g) { + var y = l + o + f * (g + v * g), + _ = Math.cos(y), + b = -Math.sin(y); + u.push((d * _ + p * b) * i + r, (d * -b + p * _) * i + n) + } + }; + var Nr = function(d) { + function Star(t, e, r, n, i, o) { + i = i || n / 2; + for (var a = -1 * Math.PI / 2 + o, s = 2 * r, u = X / s, h = [], c = 0; c < s; c++) { + var l = c % 2 ? i : n, + f = c * u + a; + h.push(t + l * Math.cos(f), e + l * Math.sin(f)) + } + d.call(this, h) + } + return d && (Star.__proto__ = d), (Star.prototype = Object.create(d && d.prototype)).constructor = Star + }(ct), + Br = new Float32Array(3), + Ur = null, + Gr = function(e) { + function Graphics(t) { + void 0 === t && (t = null), e.call(this), this.geometry = t || new Rr, this.geometry.refCount++, this.shader = null, this.state = Ce.for2d(), this._fillStyle = new wr, this._lineStyle = new Dr, this._matrix = null, this._holeMode = !1, this.currentPath = null, this.batches = [], this.batchTint = -1, this.vertexData = null, this._transformID = -1, this.batchDirty = -1, this.tint = 16777215, this.blendMode = y.NORMAL + } + e && (Graphics.__proto__ = e); + var t = { + blendMode: { + configurable: !0 + }, + tint: { + configurable: !0 + }, + fill: { + configurable: !0 + }, + line: { + configurable: !0 + } + }; + return ((Graphics.prototype = Object.create(e && e.prototype)).constructor = Graphics).prototype.clone = function() { + return this.finishPoly(), new Graphics(this.geometry) + }, t.blendMode.set = function(t) { + this.state.blendMode = t + }, t.blendMode.get = function() { + return this.state.blendMode + }, t.tint.get = function() { + return this._tint + }, t.tint.set = function(t) { + this._tint = t + }, t.fill.get = function() { + return this._fillStyle + }, t.line.get = function() { + return this._lineStyle + }, Graphics.prototype.lineStyle = function(t, e, r, n, i) { + return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === r && (r = 1), void 0 === n && (n = .5), void 0 === i && (i = !1), this.lineTextureStyle(t, Ht.WHITE, e, r, null, n, i), this + }, Graphics.prototype.lineTextureStyle = function(t, e, r, n, i, o, a) { + void 0 === t && (t = 0), void 0 === e && (e = Ht.WHITE), void 0 === r && (r = 16777215), void 0 === n && (n = 1), void 0 === i && (i = null), void 0 === o && (o = .5), void 0 === a && (a = !1), this.currentPath && this.startPoly(); + var s = 0 < t && 0 < n; + return s ? (i && (i = i.clone()).invert(), Object.assign(this._lineStyle, { + color: r, + width: t, + alpha: n, + matrix: i, + texture: e, + alignment: o, + native: a, + visible: s + })) : this._lineStyle.reset(), this + }, Graphics.prototype.startPoly = function() { + if (this.currentPath) { + var t = this.currentPath.points, + e = this.currentPath.points.length; + 2 < e && (this.drawShape(this.currentPath), this.currentPath = new ct, this.currentPath.closeStroke = !1, this.currentPath.points.push(t[e - 2], t[e - 1])) + } else this.currentPath = new ct, this.currentPath.closeStroke = !1 + }, Graphics.prototype.finishPoly = function() { + this.currentPath && (2 < this.currentPath.points.length ? (this.drawShape(this.currentPath), this.currentPath = null) : this.currentPath.points.length = 0) + }, Graphics.prototype.moveTo = function(t, e) { + return this.startPoly(), this.currentPath.points[0] = t, this.currentPath.points[1] = e, this + }, Graphics.prototype.lineTo = function(t, e) { + this.currentPath || this.moveTo(0, 0); + var r = this.currentPath.points, + n = r[r.length - 2], + i = r[r.length - 1]; + return n === t && i === e || r.push(t, e), this + }, Graphics.prototype._initCurve = function(t, e) { + void 0 === t && (t = 0), void 0 === e && (e = 0), this.currentPath ? 0 === this.currentPath.points.length && (this.currentPath.points = [t, e]) : this.moveTo(t, e) + }, Graphics.prototype.quadraticCurveTo = function(t, e, r, n) { + this._initCurve(); + var i = this.currentPath.points; + return 0 === i.length && this.moveTo(0, 0), kr.curveTo(t, e, r, n, i), this + }, Graphics.prototype.bezierCurveTo = function(t, e, r, n, i, o) { + return this._initCurve(), Fr.curveTo(t, e, r, n, i, o, this.currentPath.points), this + }, Graphics.prototype.arcTo = function(t, e, r, n, i) { + this._initCurve(t, e); + var o = this.currentPath.points, + a = Lr.curveTo(t, e, r, n, i, o); + if (a) { + var s = a.cx, + u = a.cy, + h = a.radius, + c = a.startAngle, + l = a.endAngle, + f = a.anticlockwise; + this.arc(s, u, h, c, l, f) + } + return this + }, Graphics.prototype.arc = function(t, e, r, n, i, o) { + if (void 0 === o && (o = !1), n === i) return this; + if (!o && i <= n ? i += X : o && n <= i && (n += X), 0 === i - n) return this; + var a = t + Math.cos(n) * r, + s = e + Math.sin(n) * r, + u = this.currentPath ? this.currentPath.points : null; + if (u) { + var h = Math.abs(u[u.length - 2] - a), + c = Math.abs(u[u.length - 1] - s); + h < .001 && c < .001 || u.push(a, s) + } else this.moveTo(a, s), u = this.currentPath.points; + return Lr.arc(a, s, t, e, r, n, i, o, u), this + }, Graphics.prototype.beginFill = function(t, e) { + return void 0 === t && (t = 0), void 0 === e && (e = 1), this.beginTextureFill(Ht.WHITE, t, e) + }, Graphics.prototype.beginTextureFill = function(t, e, r, n) { + void 0 === t && (t = Ht.WHITE), void 0 === e && (e = 16777215), void 0 === r && (r = 1), void 0 === n && (n = null), this.currentPath && this.startPoly(); + var i = 0 < r; + return i ? (n && (n = n.clone()).invert(), Object.assign(this._fillStyle, { + color: e, + alpha: r, + texture: t, + matrix: n, + visible: i + })) : this._fillStyle.reset(), this + }, Graphics.prototype.endFill = function() { + return this.finishPoly(), this._fillStyle.reset(), this + }, Graphics.prototype.drawRect = function(t, e, r, n) { + return this.drawShape(new ot(t, e, r, n)) + }, Graphics.prototype.drawRoundedRect = function(t, e, r, n, i) { + return this.drawShape(new lt(t, e, r, n, i)) + }, Graphics.prototype.drawCircle = function(t, e, r) { + return this.drawShape(new ut(t, e, r)) + }, Graphics.prototype.drawEllipse = function(t, e, r, n) { + return this.drawShape(new ht(t, e, r, n)) + }, Graphics.prototype.drawPolygon = function(t) { + var e = arguments, + r = t, + n = !0; + if (r.points && (n = r.closeStroke, r = r.points), !Array.isArray(r)) { + r = new Array(arguments.length); + for (var i = 0; i < r.length; ++i) r[i] = e[i] + } + var o = new ct(r); + return o.closeStroke = n, this.drawShape(o), this + }, Graphics.prototype.drawShape = function(t) { + return this._holeMode ? this.geometry.drawHole(t, this._matrix) : this.geometry.drawShape(t, this._fillStyle.clone(), this._lineStyle.clone(), this._matrix), this + }, Graphics.prototype.drawStar = function(t, e, r, n, i, o) { + return void 0 === o && (o = 0), this.drawPolygon(new Nr(t, e, r, n, i, o)) + }, Graphics.prototype.clear = function() { + return this.geometry.clear(), this._matrix = null, this._holeMode = !1, this.currentPath = null, this._spriteRect = null, this + }, Graphics.prototype.isFastRect = function() { + return !1 + }, Graphics.prototype._render = function(t) { + this.finishPoly(); + var e = this.geometry; + if (e.updateBatches(), e.batchable) { + if (this.batchDirty !== e.batchDirty) { + this.batches = [], this.batchTint = -1, this._transformID = -1, this.batchDirty = e.batchDirty, this.vertexData = new Float32Array(e.points); + for (var r = this.blendMode, n = 0; n < e.batches.length; n++) { + var i = e.batches[n], + o = i.style.color, + a = new Float32Array(this.vertexData.buffer, 4 * i.attribStart * 2, 2 * i.attribSize), + s = new Float32Array(e.uvsFloat32.buffer, 4 * i.attribStart * 2, 2 * i.attribSize), + u = { + vertexData: a, + blendMode: r, + indices: new Uint16Array(e.indicesUint16.buffer, 2 * i.start, i.size), + uvs: s, + _batchRGB: hex2rgb(o), + _tintRGB: o, + _texture: i.style.texture, + alpha: i.style.alpha, + worldAlpha: 1 + }; + this.batches[n] = u + } + } + if (t.batch.setObjectRenderer(t.plugins.batch), this.batches.length) { + this.calculateVertices(), this.calculateTints(); + for (var h = 0; h < this.batches.length; h++) { + var c = this.batches[h]; + c.worldAlpha = this.worldAlpha * c.alpha, t.plugins.batch.render(c) + } + } + } else { + if (t.batch.flush(), !this.shader) { + if (!Ur) { + for (var l = new Int32Array(16), f = 0; f < 16; f++) l[f] = f; + var d = { + tint: new Float32Array([1, 1, 1, 1]), + translationMatrix: new Y, + default: oe.from({ + uSamplers: l + }, !0) + }, + p = t.plugins.batch.shader.program; + Ur = new Ie(p, d) + } + this.shader = Ur + } + var m = this.shader.uniforms; + m.translationMatrix = this.transform.worldTransform; + var v = this.tint, + g = this.worldAlpha; + m.tint[0] = (v >> 16 & 255) / 255 * g, m.tint[1] = (v >> 8 & 255) / 255 * g, m.tint[2] = (255 & v) / 255 * g, m.tint[3] = g, t.shader.bind(this.shader), t.geometry.bind(e, this.shader), t.state.setState(this.state); + for (var y = 0; y < e.drawCalls.length; y++) { + for (var _ = e.drawCalls[y], b = _.textureCount, x = 0; x < b; x++) t.texture.bind(_.textures[x], x); + t.geometry.draw(_.type, _.size, _.start) + } + } + }, Graphics.prototype._calculateBounds = function() { + this.finishPoly(); + var t = this.geometry.bounds; + this._bounds.addFrame(this.transform, t.minX, t.minY, t.maxX, t.maxY) + }, Graphics.prototype.containsPoint = function(t) { + return this.worldTransform.applyInverse(t, Graphics._TEMP_POINT), this.geometry.containsPoint(Graphics._TEMP_POINT) + }, Graphics.prototype.calculateTints = function() { + if (this.batchTint !== this.tint) { + this.batchTint = this.tint; + for (var t = hex2rgb(this.tint, Br), e = 0; e < this.batches.length; e++) { + var r = this.batches[e], + n = r._batchRGB, + i = (t[0] * n[0] * 255 << 16) + (t[1] * n[1] * 255 << 8) + (0 | t[2] * n[2] * 255); + r._tintRGB = (i >> 16) + (65280 & i) + ((255 & i) << 16) + } + } + }, Graphics.prototype.calculateVertices = function() { + if (this._transformID !== this.transform._worldID) { + this._transformID = this.transform._worldID; + for (var t = this.transform.worldTransform, e = t.a, r = t.b, n = t.c, i = t.d, o = t.tx, a = t.ty, s = this.geometry.points, u = this.vertexData, h = 0, c = 0; c < s.length; c += 2) { + var l = s[c], + f = s[c + 1]; + u[h++] = e * l + n * f + o, u[h++] = i * f + r * l + a + } + } + }, Graphics.prototype.closePath = function() { + var t = this.currentPath; + return t && (t.closeStroke = !0), this + }, Graphics.prototype.setMatrix = function(t) { + return this._matrix = t, this + }, Graphics.prototype.beginHole = function() { + return this.finishPoly(), this._holeMode = !0, this + }, Graphics.prototype.endHole = function() { + return this.finishPoly(), this._holeMode = !1, this + }, Graphics.prototype.destroy = function(t) { + e.prototype.destroy.call(this, t), this.geometry.refCount--, 0 === this.geometry.refCount && this.geometry.dispose(), this._matrix = null, this.currentPath = null, this._lineStyle.destroy(), this._lineStyle = null, this._fillStyle.destroy(), this._fillStyle = null, this.geometry = null, this.shader = null, this.vertexData = null, this.batches.length = 0, this.batches = null, e.prototype.destroy.call(this, t) + }, Object.defineProperties(Graphics.prototype, t), Graphics + }(pt); + Gr._TEMP_POINT = new q; + var jr = new q, + zr = new Uint16Array([0, 1, 2, 0, 2, 3]), + Xr = function(r) { + function Sprite(t) { + r.call(this), this._anchor = new j(this._onAnchorUpdate, this, t ? t.defaultAnchor.x : 0, t ? t.defaultAnchor.y : 0), this._texture = null, this._width = 0, this._height = 0, this._tint = null, this._tintRGB = null, this.tint = 16777215, this.blendMode = y.NORMAL, this.shader = null, this.cachedTint = 16777215, this.uvs = null, this.texture = t || Ht.EMPTY, this.vertexData = new Float32Array(8), this.vertexTrimmedData = null, this._transformID = -1, this._textureID = -1, this._transformTrimmedID = -1, this._textureTrimmedID = -1, this.indices = zr, this.size = 4, this.start = 0, this.pluginName = "batch", this.isSprite = !0, this._roundPixels = M.ROUND_PIXELS + } + r && (Sprite.__proto__ = r); + var t = { + roundPixels: { + configurable: !0 + }, + width: { + configurable: !0 + }, + height: { + configurable: !0 + }, + anchor: { + configurable: !0 + }, + tint: { + configurable: !0 + }, + texture: { + configurable: !0 + } + }; + return ((Sprite.prototype = Object.create(r && r.prototype)).constructor = Sprite).prototype._onTextureUpdate = function() { + this._textureID = -1, this._textureTrimmedID = -1, this.cachedTint = 16777215, this.uvs = this._texture._uvs.uvsFloat32, this._width && (this.scale.x = sign(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = sign(this.scale.y) * this._height / this._texture.orig.height) + }, Sprite.prototype._onAnchorUpdate = function() { + this._transformID = -1, this._transformTrimmedID = -1 + }, Sprite.prototype.calculateVertices = function() { + var t = this._texture; + if (this._transformID !== this.transform._worldID || this._textureID !== t._updateID) { + this._transformID = this.transform._worldID, this._textureID = t._updateID; + var e = this.transform.worldTransform, + r = e.a, + n = e.b, + i = e.c, + o = e.d, + a = e.tx, + s = e.ty, + u = this.vertexData, + h = t.trim, + c = t.orig, + l = this._anchor, + f = 0, + d = 0, + p = 0, + m = 0; + if (p = h ? (f = (d = h.x - l._x * c.width) + h.width, (m = h.y - l._y * c.height) + h.height) : (f = (d = -l._x * c.width) + c.width, (m = -l._y * c.height) + c.height), u[0] = r * d + i * m + a, u[1] = o * m + n * d + s, u[2] = r * f + i * m + a, u[3] = o * m + n * f + s, u[4] = r * f + i * p + a, u[5] = o * p + n * f + s, u[6] = r * d + i * p + a, u[7] = o * p + n * d + s, this._roundPixels) + for (var v = 0; v < 8; v++) u[v] = Math.round(u[v]) + } + }, Sprite.prototype.calculateTrimmedVertices = function() { + if (this.vertexTrimmedData) { + if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID) return + } else this.vertexTrimmedData = new Float32Array(8); + this._transformTrimmedID = this.transform._worldID, this._textureTrimmedID = this._texture._updateID; + var t = this._texture, + e = this.vertexTrimmedData, + r = t.orig, + n = this._anchor, + i = this.transform.worldTransform, + o = i.a, + a = i.b, + s = i.c, + u = i.d, + h = i.tx, + c = i.ty, + l = -n._x * r.width, + f = l + r.width, + d = -n._y * r.height, + p = d + r.height; + e[0] = o * l + s * d + h, e[1] = u * d + a * l + c, e[2] = o * f + s * d + h, e[3] = u * d + a * f + c, e[4] = o * f + s * p + h, e[5] = u * p + a * f + c, e[6] = o * l + s * p + h, e[7] = u * p + a * l + c + }, Sprite.prototype._render = function(t) { + this.calculateVertices(), t.batch.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this) + }, Sprite.prototype._calculateBounds = function() { + var t = this._texture.trim, + e = this._texture.orig; + !t || t.width === e.width && t.height === e.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData)) + }, Sprite.prototype.getLocalBounds = function(t) { + return 0 === this.children.length ? (this._bounds.minX = this._texture.orig.width * -this._anchor._x, this._bounds.minY = this._texture.orig.height * -this._anchor._y, this._bounds.maxX = this._texture.orig.width * (1 - this._anchor._x), this._bounds.maxY = this._texture.orig.height * (1 - this._anchor._y), t || (this._localBoundsRect || (this._localBoundsRect = new ot), t = this._localBoundsRect), this._bounds.getRectangle(t)) : r.prototype.getLocalBounds.call(this, t) + }, Sprite.prototype.containsPoint = function(t) { + this.worldTransform.applyInverse(t, jr); + var e = this._texture.orig.width, + r = this._texture.orig.height, + n = -e * this.anchor.x, + i = 0; + return jr.x >= n && jr.x < n + e && (i = -r * this.anchor.y, jr.y >= i && jr.y < i + r) + }, Sprite.prototype.destroy = function(t) { + if (r.prototype.destroy.call(this, t), this._texture.off("update", this._onTextureUpdate, this), this._anchor = null, "boolean" == typeof t ? t : t && t.texture) { + var e = "boolean" == typeof t ? t : t && t.baseTexture; + this._texture.destroy(!!e) + } + this._texture = null, this.shader = null + }, Sprite.from = function(t, e) { + return new Sprite(t instanceof Ht ? t : new Ht.from(t, e)) + }, t.roundPixels.set = function(t) { + this._roundPixels !== t && (this._transformID = -1), this._roundPixels = t + }, t.roundPixels.get = function() { + return this._roundPixels + }, t.width.get = function() { + return Math.abs(this.scale.x) * this._texture.orig.width + }, t.width.set = function(t) { + var e = sign(this.scale.x) || 1; + this.scale.x = e * t / this._texture.orig.width, this._width = t + }, t.height.get = function() { + return Math.abs(this.scale.y) * this._texture.orig.height + }, t.height.set = function(t) { + var e = sign(this.scale.y) || 1; + this.scale.y = e * t / this._texture.orig.height, this._height = t + }, t.anchor.get = function() { + return this._anchor + }, t.anchor.set = function(t) { + this._anchor.copyFrom(t) + }, t.tint.get = function() { + return this._tint + }, t.tint.set = function(t) { + this._tint = t, this._tintRGB = (t >> 16) + (65280 & t) + ((255 & t) << 16) + }, t.texture.get = function() { + return this._texture + }, t.texture.set = function(t) { + this._texture !== t && (this._texture = t || Ht.EMPTY, this.cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, t && (t.baseTexture.valid ? this._onTextureUpdate() : t.once("update", this._onTextureUpdate, this))) + }, Object.defineProperties(Sprite.prototype, t), Sprite + }(pt), + Vr = { + LINEAR_VERTICAL: 0, + LINEAR_HORIZONTAL: 1 + }, + qr = { + align: "left", + breakWords: !1, + dropShadow: !1, + dropShadowAlpha: 1, + dropShadowAngle: Math.PI / 6, + dropShadowBlur: 0, + dropShadowColor: "black", + dropShadowDistance: 5, + fill: "black", + fillGradientType: Vr.LINEAR_VERTICAL, + fillGradientStops: [], + fontFamily: "Arial", + fontSize: 26, + fontStyle: "normal", + fontVariant: "normal", + fontWeight: "normal", + letterSpacing: 0, + lineHeight: 0, + lineJoin: "miter", + miterLimit: 10, + padding: 0, + stroke: "black", + strokeThickness: 0, + textBaseline: "alphabetic", + trim: !1, + whiteSpace: "pre", + wordWrap: !1, + wordWrapWidth: 100, + leading: 0 + }, + Hr = function(t) { + this.styleID = 0, this.reset(), deepCopyProperties(this, t, t) + }, + Wr = { + align: { + configurable: !0 + }, + breakWords: { + configurable: !0 + }, + dropShadow: { + configurable: !0 + }, + dropShadowAlpha: { + configurable: !0 + }, + dropShadowAngle: { + configurable: !0 + }, + dropShadowBlur: { + configurable: !0 + }, + dropShadowColor: { + configurable: !0 + }, + dropShadowDistance: { + configurable: !0 + }, + fill: { + configurable: !0 + }, + fillGradientType: { + configurable: !0 + }, + fillGradientStops: { + configurable: !0 + }, + fontFamily: { + configurable: !0 + }, + fontSize: { + configurable: !0 + }, + fontStyle: { + configurable: !0 + }, + fontVariant: { + configurable: !0 + }, + fontWeight: { + configurable: !0 + }, + letterSpacing: { + configurable: !0 + }, + lineHeight: { + configurable: !0 + }, + leading: { + configurable: !0 + }, + lineJoin: { + configurable: !0 + }, + miterLimit: { + configurable: !0 + }, + padding: { + configurable: !0 + }, + stroke: { + configurable: !0 + }, + strokeThickness: { + configurable: !0 + }, + textBaseline: { + configurable: !0 + }, + trim: { + configurable: !0 + }, + whiteSpace: { + configurable: !0 + }, + wordWrap: { + configurable: !0 + }, + wordWrapWidth: { + configurable: !0 + } + }; + + function getSingleColor(t) { + return "number" == typeof t ? hex2string(t) : ("string" == typeof t && 0 === t.indexOf("0x") && (t = t.replace("0x", "#")), t) + } + + function getColor(t) { + if (Array.isArray(t)) { + for (var e = 0; e < t.length; ++e) t[e] = getSingleColor(t[e]); + return t + } + return getSingleColor(t) + } + + function deepCopyProperties(t, e, r) { + for (var n in r) Array.isArray(e[n]) ? t[n] = e[n].slice() : t[n] = e[n] + } + Hr.prototype.clone = function() { + var t = {}; + return deepCopyProperties(t, this, qr), new Hr(t) + }, Hr.prototype.reset = function() { + deepCopyProperties(this, qr, qr) + }, Wr.align.get = function() { + return this._align + }, Wr.align.set = function(t) { + this._align !== t && (this._align = t, this.styleID++) + }, Wr.breakWords.get = function() { + return this._breakWords + }, Wr.breakWords.set = function(t) { + this._breakWords !== t && (this._breakWords = t, this.styleID++) + }, Wr.dropShadow.get = function() { + return this._dropShadow + }, Wr.dropShadow.set = function(t) { + this._dropShadow !== t && (this._dropShadow = t, this.styleID++) + }, Wr.dropShadowAlpha.get = function() { + return this._dropShadowAlpha + }, Wr.dropShadowAlpha.set = function(t) { + this._dropShadowAlpha !== t && (this._dropShadowAlpha = t, this.styleID++) + }, Wr.dropShadowAngle.get = function() { + return this._dropShadowAngle + }, Wr.dropShadowAngle.set = function(t) { + this._dropShadowAngle !== t && (this._dropShadowAngle = t, this.styleID++) + }, Wr.dropShadowBlur.get = function() { + return this._dropShadowBlur + }, Wr.dropShadowBlur.set = function(t) { + this._dropShadowBlur !== t && (this._dropShadowBlur = t, this.styleID++) + }, Wr.dropShadowColor.get = function() { + return this._dropShadowColor + }, Wr.dropShadowColor.set = function(t) { + var e = getColor(t); + this._dropShadowColor !== e && (this._dropShadowColor = e, this.styleID++) + }, Wr.dropShadowDistance.get = function() { + return this._dropShadowDistance + }, Wr.dropShadowDistance.set = function(t) { + this._dropShadowDistance !== t && (this._dropShadowDistance = t, this.styleID++) + }, Wr.fill.get = function() { + return this._fill + }, Wr.fill.set = function(t) { + var e = getColor(t); + this._fill !== e && (this._fill = e, this.styleID++) + }, Wr.fillGradientType.get = function() { + return this._fillGradientType + }, Wr.fillGradientType.set = function(t) { + this._fillGradientType !== t && (this._fillGradientType = t, this.styleID++) + }, Wr.fillGradientStops.get = function() { + return this._fillGradientStops + }, Wr.fillGradientStops.set = function(t) { + (function(t, e) { + if (!Array.isArray(t) || !Array.isArray(e)) return !1; + if (t.length !== e.length) return !1; + for (var r = 0; r < t.length; ++r) + if (t[r] !== e[r]) return !1; + return !0 + })(this._fillGradientStops, t) || (this._fillGradientStops = t, this.styleID++) + }, Wr.fontFamily.get = function() { + return this._fontFamily + }, Wr.fontFamily.set = function(t) { + this.fontFamily !== t && (this._fontFamily = t, this.styleID++) + }, Wr.fontSize.get = function() { + return this._fontSize + }, Wr.fontSize.set = function(t) { + this._fontSize !== t && (this._fontSize = t, this.styleID++) + }, Wr.fontStyle.get = function() { + return this._fontStyle + }, Wr.fontStyle.set = function(t) { + this._fontStyle !== t && (this._fontStyle = t, this.styleID++) + }, Wr.fontVariant.get = function() { + return this._fontVariant + }, Wr.fontVariant.set = function(t) { + this._fontVariant !== t && (this._fontVariant = t, this.styleID++) + }, Wr.fontWeight.get = function() { + return this._fontWeight + }, Wr.fontWeight.set = function(t) { + this._fontWeight !== t && (this._fontWeight = t, this.styleID++) + }, Wr.letterSpacing.get = function() { + return this._letterSpacing + }, Wr.letterSpacing.set = function(t) { + this._letterSpacing !== t && (this._letterSpacing = t, this.styleID++) + }, Wr.lineHeight.get = function() { + return this._lineHeight + }, Wr.lineHeight.set = function(t) { + this._lineHeight !== t && (this._lineHeight = t, this.styleID++) + }, Wr.leading.get = function() { + return this._leading + }, Wr.leading.set = function(t) { + this._leading !== t && (this._leading = t, this.styleID++) + }, Wr.lineJoin.get = function() { + return this._lineJoin + }, Wr.lineJoin.set = function(t) { + this._lineJoin !== t && (this._lineJoin = t, this.styleID++) + }, Wr.miterLimit.get = function() { + return this._miterLimit + }, Wr.miterLimit.set = function(t) { + this._miterLimit !== t && (this._miterLimit = t, this.styleID++) + }, Wr.padding.get = function() { + return this._padding + }, Wr.padding.set = function(t) { + this._padding !== t && (this._padding = t, this.styleID++) + }, Wr.stroke.get = function() { + return this._stroke + }, Wr.stroke.set = function(t) { + var e = getColor(t); + this._stroke !== e && (this._stroke = e, this.styleID++) + }, Wr.strokeThickness.get = function() { + return this._strokeThickness + }, Wr.strokeThickness.set = function(t) { + this._strokeThickness !== t && (this._strokeThickness = t, this.styleID++) + }, Wr.textBaseline.get = function() { + return this._textBaseline + }, Wr.textBaseline.set = function(t) { + this._textBaseline !== t && (this._textBaseline = t, this.styleID++) + }, Wr.trim.get = function() { + return this._trim + }, Wr.trim.set = function(t) { + this._trim !== t && (this._trim = t, this.styleID++) + }, Wr.whiteSpace.get = function() { + return this._whiteSpace + }, Wr.whiteSpace.set = function(t) { + this._whiteSpace !== t && (this._whiteSpace = t, this.styleID++) + }, Wr.wordWrap.get = function() { + return this._wordWrap + }, Wr.wordWrap.set = function(t) { + this._wordWrap !== t && (this._wordWrap = t, this.styleID++) + }, Wr.wordWrapWidth.get = function() { + return this._wordWrapWidth + }, Wr.wordWrapWidth.set = function(t) { + this._wordWrapWidth !== t && (this._wordWrapWidth = t, this.styleID++) + }, Hr.prototype.toFontString = function() { + var t = "number" == typeof this.fontSize ? this.fontSize + "px" : this.fontSize, + e = this.fontFamily; + Array.isArray(this.fontFamily) || (e = this.fontFamily.split(",")); + for (var r = e.length - 1; 0 <= r; r--) { + var n = e[r].trim(); + /([\"\'])[^\'\"]+\1/.test(n) || (n = '"' + n + '"'), e[r] = n + } + return this.fontStyle + " " + this.fontVariant + " " + this.fontWeight + " " + t + " " + e.join(",") + }, Object.defineProperties(Hr.prototype, Wr); + var Yr = function(t, e, r, n, i, o, a, s, u) { + this.text = t, this.style = e, this.width = r, this.height = n, this.lines = i, this.lineWidths = o, this.lineHeight = a, this.maxLineWidth = s, this.fontProperties = u + }; + Yr.measureText = function(t, e, r, n) { + void 0 === n && (n = Yr._canvas), r = null == r ? e.wordWrap : r; + var i = e.toFontString(), + o = Yr.measureFont(i); + 0 === o.fontSize && (o.fontSize = e.fontSize, o.ascent = e.fontSize); + var a = n.getContext("2d"); + a.font = i; + for (var s = (r ? Yr.wordWrap(t, e, n) : t).split(/(?:\r\n|\r|\n)/), u = new Array(s.length), h = 0, c = 0; c < s.length; c++) { + var l = a.measureText(s[c]).width + (s[c].length - 1) * e.letterSpacing; + u[c] = l, h = Math.max(h, l) + } + var f = h + e.strokeThickness; + e.dropShadow && (f += e.dropShadowDistance); + var d = e.lineHeight || o.fontSize + e.strokeThickness, + p = Math.max(d, o.fontSize + e.strokeThickness) + (s.length - 1) * (d + e.leading); + return e.dropShadow && (p += e.dropShadowDistance), new Yr(t, e, f, p, s, u, d + e.leading, h, o) + }, Yr.wordWrap = function(t, e, r) { + void 0 === r && (r = Yr._canvas); + for (var n = r.getContext("2d"), i = 0, o = "", a = "", s = {}, u = e.letterSpacing, h = e.whiteSpace, c = Yr.collapseSpaces(h), l = Yr.collapseNewlines(h), f = !c, d = e.wordWrapWidth + u, p = Yr.tokenize(t), m = 0; m < p.length; m++) { + var v = p[m]; + if (Yr.isNewline(v)) { + if (!l) { + a += Yr.addLine(o), f = !c, o = "", i = 0; + continue + } + v = " " + } + if (c) { + var g = Yr.isBreakingSpace(v), + y = Yr.isBreakingSpace(o[o.length - 1]); + if (g && y) continue + } + var _ = Yr.getFromCache(v, u, s, n); + if (d < _) + if ("" !== o && (a += Yr.addLine(o), o = "", i = 0), Yr.canBreakWords(v, e.breakWords)) + for (var b = v.split(""), x = 0; x < b.length; x++) { + for (var w = b[x], T = 1; b[x + T];) { + var S = b[x + T], + M = w[w.length - 1]; + if (Yr.canBreakChars(M, S, v, x, e.breakWords)) break; + w += S, T++ + } + x += w.length - 1; + var E = Yr.getFromCache(w, u, s, n); + d < E + i && (a += Yr.addLine(o), f = !1, o = "", i = 0), o += w, i += E + } else { + 0 < o.length && (a += Yr.addLine(o), o = "", i = 0); + var A = m === p.length - 1; + a += Yr.addLine(v, !A), f = !1, o = "", i = 0 + } else d < _ + i && (f = !1, a += Yr.addLine(o), o = "", i = 0), (0 < o.length || !Yr.isBreakingSpace(v) || f) && (o += v, i += _) + } + return a += Yr.addLine(o, !1) + }, Yr.addLine = function(t, e) { + return void 0 === e && (e = !0), t = Yr.trimRight(t), t = e ? t + "\n" : t + }, Yr.getFromCache = function(t, e, r, n) { + var i = r[t]; + if (void 0 === i) { + var o = t.length * e; + i = n.measureText(t).width + o, r[t] = i + } + return i + }, Yr.collapseSpaces = function(t) { + return "normal" === t || "pre-line" === t + }, Yr.collapseNewlines = function(t) { + return "normal" === t + }, Yr.trimRight = function(t) { + if ("string" != typeof t) return ""; + for (var e = t.length - 1; 0 <= e; e--) { + var r = t[e]; + if (!Yr.isBreakingSpace(r)) break; + t = t.slice(0, -1) + } + return t + }, Yr.isNewline = function(t) { + return "string" == typeof t && 0 <= Yr._newlines.indexOf(t.charCodeAt(0)) + }, Yr.isBreakingSpace = function(t) { + return "string" == typeof t && 0 <= Yr._breakingSpaces.indexOf(t.charCodeAt(0)) + }, Yr.tokenize = function(t) { + var e = [], + r = ""; + if ("string" != typeof t) return e; + for (var n = 0; n < t.length; n++) { + var i = t[n]; + Yr.isBreakingSpace(i) || Yr.isNewline(i) ? ("" !== r && (e.push(r), r = ""), e.push(i)) : r += i + } + return "" !== r && e.push(r), e + }, Yr.canBreakWords = function(t, e) { + return e + }, Yr.canBreakChars = function(t, e, r, n, i) { + return !0 + }, Yr.measureFont = function(t) { + if (Yr._fonts[t]) return Yr._fonts[t]; + var e = {}, + r = Yr._canvas, + n = Yr._context; + n.font = t; + var i = Yr.METRICS_STRING + Yr.BASELINE_SYMBOL, + o = Math.ceil(n.measureText(i).width), + a = Math.ceil(n.measureText(Yr.BASELINE_SYMBOL).width), + s = 2 * a; + a = a * Yr.BASELINE_MULTIPLIER | 0, r.width = o, r.height = s, n.fillStyle = "#f00", n.fillRect(0, 0, o, s), n.font = t, n.textBaseline = "alphabetic", n.fillStyle = "#000", n.fillText(i, 0, a); + var u = n.getImageData(0, 0, o, s).data, + h = u.length, + c = 4 * o, + l = 0, + f = 0, + d = !1; + for (l = 0; l < a; ++l) { + for (var p = 0; p < c; p += 4) + if (255 !== u[f + p]) { + d = !0; + break + } + if (d) break; + f += c + } + for (e.ascent = a - l, f = h - c, d = !1, l = s; a < l; --l) { + for (var m = 0; m < c; m += 4) + if (255 !== u[f + m]) { + d = !0; + break + } + if (d) break; + f -= c + } + return e.descent = l - a, e.fontSize = e.ascent + e.descent, Yr._fonts[t] = e + }, Yr.clearMetrics = function(t) { + void 0 === t && (t = ""), t ? delete Yr._fonts[t] : Yr._fonts = {} + }; + var Kr = document.createElement("canvas"); + Kr.width = Kr.height = 10, Yr._canvas = Kr, Yr._context = Kr.getContext("2d"), Yr._fonts = {}, Yr.METRICS_STRING = "|Éq", Yr.BASELINE_SYMBOL = "M", Yr.BASELINE_MULTIPLIER = 1.4, Yr._newlines = [10, 13]; + var Zr = { + texture: !0, + children: !(Yr._breakingSpaces = [9, 32, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8200, 8201, 8202, 8287, 12288]), + baseTexture: !0 + }, + Qr = function(i) { + function Text(t, e, r) { + (r = r || document.createElement("canvas")).width = 3, r.height = 3; + var n = Ht.from(r); + n.orig = new ot, n.trim = new ot, i.call(this, n), this.canvas = r, this.context = this.canvas.getContext("2d"), this._resolution = M.RESOLUTION, this._autoResolution = !0, this._text = null, this._style = null, this._styleListener = null, this._font = "", this.text = t, this.style = e, this.localStyleID = -1 + } + i && (Text.__proto__ = i); + var t = { + width: { + configurable: !0 + }, + height: { + configurable: !0 + }, + style: { + configurable: !0 + }, + text: { + configurable: !0 + }, + resolution: { + configurable: !0 + } + }; + return ((Text.prototype = Object.create(i && i.prototype)).constructor = Text).prototype.updateText = function(t) { + var e = this._style; + if (this.localStyleID !== e.styleID && (this.dirty = !0, this.localStyleID = e.styleID), this.dirty || !t) { + this._font = this._style.toFontString(); + var r, n, i = this.context, + o = Yr.measureText(this._text || " ", this._style, this._style.wordWrap, this.canvas), + a = o.width, + s = o.height, + u = o.lines, + h = o.lineHeight, + c = o.lineWidths, + l = o.maxLineWidth, + f = o.fontProperties; + if (this.canvas.width = Math.ceil((Math.max(1, a) + 2 * e.padding) * this._resolution), this.canvas.height = Math.ceil((Math.max(1, s) + 2 * e.padding) * this._resolution), i.scale(this._resolution, this._resolution), i.clearRect(0, 0, this.canvas.width, this.canvas.height), i.font = this._font, i.strokeStyle = e.stroke, i.lineWidth = e.strokeThickness, i.textBaseline = e.textBaseline, i.lineJoin = e.lineJoin, i.miterLimit = e.miterLimit, e.dropShadow) { + var d = e.dropShadowColor, + p = hex2rgb("number" == typeof d ? d : string2hex(d)); + i.shadowColor = "rgba(" + 255 * p[0] + "," + 255 * p[1] + "," + 255 * p[2] + "," + e.dropShadowAlpha + ")", i.shadowBlur = e.dropShadowBlur, i.shadowOffsetX = Math.cos(e.dropShadowAngle) * e.dropShadowDistance, i.shadowOffsetY = Math.sin(e.dropShadowAngle) * e.dropShadowDistance + } else i.shadowColor = 0, i.shadowBlur = 0, i.shadowOffsetX = 0, i.shadowOffsetY = 0; + i.fillStyle = this._generateFillStyle(e, u); + for (var m = 0; m < u.length; m++) r = e.strokeThickness / 2, n = e.strokeThickness / 2 + m * h + f.ascent, "right" === e.align ? r += l - c[m] : "center" === e.align && (r += (l - c[m]) / 2), e.stroke && e.strokeThickness && this.drawLetterSpacing(u[m], r + e.padding, n + e.padding, !0), e.fill && this.drawLetterSpacing(u[m], r + e.padding, n + e.padding); + this.updateTexture() + } + }, Text.prototype.drawLetterSpacing = function(t, e, r, n) { + void 0 === n && (n = !1); + var i = this._style.letterSpacing; + if (0 !== i) + for (var o = String.prototype.split.call(t, ""), a = e, s = 0, u = ""; s < t.length;) u = o[s++], n ? this.context.strokeText(u, a, r) : this.context.fillText(u, a, r), a += this.context.measureText(u).width + i; + else n ? this.context.strokeText(t, e, r) : this.context.fillText(t, e, r) + }, Text.prototype.updateTexture = function() { + var t = this.canvas; + if (this._style.trim) { + var e = trimCanvas(t); + e.data && (t.width = e.width, t.height = e.height, this.context.putImageData(e.data, 0, 0)) + } + var r = this._texture, + n = this._style, + i = n.trim ? 0 : n.padding, + o = r.baseTexture; + r.trim.width = r._frame.width = t.width / this._resolution, r.trim.height = r._frame.height = t.height / this._resolution, r.trim.x = -i, r.trim.y = -i, r.orig.width = r._frame.width - 2 * i, r.orig.height = r._frame.height - 2 * i, this._onTextureUpdate(), o.setRealSize(t.width, t.height, this._resolution), this.dirty = !1 + }, Text.prototype.render = function(t) { + this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0), this.updateText(!0), i.prototype.render.call(this, t) + }, Text.prototype._renderCanvas = function(t) { + this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0), this.updateText(!0), i.prototype._renderCanvas.call(this, t) + }, Text.prototype.getLocalBounds = function(t) { + return this.updateText(!0), i.prototype.getLocalBounds.call(this, t) + }, Text.prototype._calculateBounds = function() { + this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData) + }, Text.prototype._onStyleChange = function() { + this.dirty = !0 + }, Text.prototype._generateFillStyle = function(t, e) { + if (!Array.isArray(t.fill)) return t.fill; + var r, n, i, o, a = this.canvas.width / this._resolution, + s = this.canvas.height / this._resolution, + u = t.fill.slice(), + h = t.fillGradientStops.slice(); + if (!h.length) + for (var c = u.length + 1, l = 1; l < c; ++l) h.push(l / c); + if (u.unshift(t.fill[0]), h.unshift(0), u.push(t.fill[t.fill.length - 1]), h.push(1), t.fillGradientType === Vr.LINEAR_VERTICAL) { + r = this.context.createLinearGradient(a / 2, 0, a / 2, s), n = (u.length + 1) * e.length; + for (var f = i = 0; f < e.length; f++) { + i += 1; + for (var d = 0; d < u.length; d++) o = "number" == typeof h[d] ? h[d] / e.length + f / e.length : i / n, r.addColorStop(o, u[d]), i++ + } + } else { + r = this.context.createLinearGradient(0, s / 2, a, s / 2), n = u.length + 1, i = 1; + for (var p = 0; p < u.length; p++) o = "number" == typeof h[p] ? h[p] : i / n, r.addColorStop(o, u[p]), i++ + } + return r + }, Text.prototype.destroy = function(t) { + "boolean" == typeof t && (t = { + children: t + }), t = Object.assign({}, Zr, t), i.prototype.destroy.call(this, t), this.context = null, this.canvas = null, this._style = null + }, t.width.get = function() { + return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width + }, t.width.set = function(t) { + this.updateText(!0); + var e = sign(this.scale.x) || 1; + this.scale.x = e * t / this._texture.orig.width, this._width = t + }, t.height.get = function() { + return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height + }, t.height.set = function(t) { + this.updateText(!0); + var e = sign(this.scale.y) || 1; + this.scale.y = e * t / this._texture.orig.height, this._height = t + }, t.style.get = function() { + return this._style + }, t.style.set = function(t) { + t = t || {}, this._style = t instanceof Hr ? t : new Hr(t), this.localStyleID = -1, this.dirty = !0 + }, t.text.get = function() { + return this._text + }, t.text.set = function(t) { + t = String(null == t ? "" : t), this._text !== t && (this._text = t, this.dirty = !0) + }, t.resolution.get = function() { + return this._resolution + }, t.resolution.set = function(t) { + this._autoResolution = !1, this._resolution !== t && (this._resolution = t, this.dirty = !0) + }, Object.defineProperties(Text.prototype, t), Text + }(Xr); + M.UPLOADS_PER_FRAME = 4; + var Jr = function(t) { + this.maxItemsPerFrame = t, this.itemsLeft = 0 + }; + Jr.prototype.beginFrame = function() { + this.itemsLeft = this.maxItemsPerFrame + }, Jr.prototype.allowedToUpload = function() { + return 0 < this.itemsLeft-- + }; + var $r = function(t) { + var e = this; + this.limiter = new Jr(M.UPLOADS_PER_FRAME), this.renderer = t, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = function() { + e.queue && e.prepareItems() + }, this.registerFindHook(findText), this.registerFindHook(findTextStyle), this.registerFindHook(findMultipleBaseTextures), this.registerFindHook(findBaseTexture), this.registerFindHook(findTexture), this.registerUploadHook(drawText), this.registerUploadHook(calculateTextStyle) + }; + + function findMultipleBaseTextures(t, e) { + var r = !1; + if (t && t._textures && t._textures.length) + for (var n = 0; n < t._textures.length; n++) + if (t._textures[n] instanceof Ht) { + var i = t._textures[n].baseTexture; - 1 === e.indexOf(i) && (e.push(i), r = !0) + } + return r + } + + function findBaseTexture(t, e) { + return t instanceof Rt && (-1 === e.indexOf(t) && e.push(t), !0) + } + + function findTexture(t, e) { + if (t._texture && t._texture instanceof Ht) { + var r = t._texture.baseTexture; + return -1 === e.indexOf(r) && e.push(r), !0 + } + return !1 + } + + function drawText(t, e) { + return e instanceof Qr && (e.updateText(!0), !0) + } + + function calculateTextStyle(t, e) { + if (e instanceof Hr) { + var r = e.toFontString(); + return Yr.measureFont(r), !0 + } + return !1 + } + + function findText(t, e) { + if (t instanceof Qr) { + -1 === e.indexOf(t.style) && e.push(t.style), -1 === e.indexOf(t) && e.push(t); + var r = t._texture.baseTexture; + return -1 === e.indexOf(r) && e.push(r), !0 + } + return !1 + } + + function findTextStyle(t, e) { + return t instanceof Hr && (-1 === e.indexOf(t) && e.push(t), !0) + } + $r.prototype.upload = function(t, e) { + "function" == typeof t && (e = t, t = null), t && this.add(t), this.queue.length ? (e && this.completes.push(e), this.ticking || (this.ticking = !0, xt.system.addOnce(this.tick, this, _t.UTILITY))) : e && e() + }, $r.prototype.tick = function() { + setTimeout(this.delayedTick, 0) + }, $r.prototype.prepareItems = function() { + for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload();) { + var t = this.queue[0], + e = !1; + if (t && !t._destroyed) + for (var r = 0, n = this.uploadHooks.length; r < n; r++) + if (this.uploadHooks[r](this.uploadHookHelper, t)) { + this.queue.shift(), e = !0; + break + } + e || this.queue.shift() + } + if (this.queue.length) xt.system.addOnce(this.tick, this, _t.UTILITY); + else { + this.ticking = !1; + for (var i = this.completes.slice(0), o = this.completes.length = 0, a = i.length; o < a; o++) i[o]() + } + }, $r.prototype.registerFindHook = function(t) { + return t && this.addHooks.push(t), this + }, $r.prototype.registerUploadHook = function(t) { + return t && this.uploadHooks.push(t), this + }, $r.prototype.add = function(t) { + for (var e = 0, r = this.addHooks.length; e < r && !this.addHooks[e](t, this.queue); e++); + if (t instanceof pt) + for (var n = t.children.length - 1; 0 <= n; n--) this.add(t.children[n]); + return this + }, $r.prototype.destroy = function() { + this.ticking && xt.system.remove(this.tick, this), this.ticking = !1, this.addHooks = null, this.uploadHooks = null, this.renderer = null, this.completes = null, this.queue = null, this.limiter = null, this.uploadHookHelper = null + }; + var tn = function(e) { + function Prepare(t) { + e.call(this, t), this.uploadHookHelper = this.renderer, this.registerFindHook(findGraphics), this.registerUploadHook(uploadBaseTextures), this.registerUploadHook(uploadGraphics) + } + return e && (Prepare.__proto__ = e), (Prepare.prototype = Object.create(e && e.prototype)).constructor = Prepare + }($r); + + function uploadBaseTextures(t, e) { + return e instanceof Rt && (e._glTextures[t.CONTEXT_UID] || t.textureManager.updateTexture(e), !0) + } + + function uploadGraphics(t, e) { + return e instanceof Gr && ((e.dirty || e.clearDirty || !e._webGL[t.plugins.graphics.CONTEXT_UID]) && t.plugins.graphics.updateGraphics(e), !0) + } + + function findGraphics(t, e) { + return t instanceof Gr && (e.push(t), !0) + } + var en = function(t) { + this.maxMilliseconds = t, this.frameStart = 0 + }; + en.prototype.beginFrame = function() { + this.frameStart = Date.now() + }, en.prototype.allowedToUpload = function() { + return Date.now() - this.frameStart < this.maxMilliseconds + }; + var rn = function Application(e) { + var r = this; + e = Object.assign({ + forceCanvas: !1 + }, e), this.renderer = autoDetectRenderer(e), this.stage = new pt, Application._plugins.forEach(function(t) { + t.init.call(r, e) + }) + }, + nn = { + view: { + configurable: !0 + }, + screen: { + configurable: !0 + } + }; + rn.registerPlugin = function(t) { + rn._plugins.push(t) + }, rn.prototype.render = function() { + this.renderer.render(this.stage) + }, nn.view.get = function() { + return this.renderer.view + }, nn.screen.get = function() { + return this.renderer.screen + }, rn.prototype.destroy = function(t) { + var e = this, + r = rn._plugins.slice(0); + r.reverse(), r.forEach(function(t) { + t.destroy.call(e) + }), this.stage.destroy(), this.stage = null, this.renderer.destroy(t), this.renderer = null, this._options = null + }, Object.defineProperties(rn.prototype, nn), rn._plugins = []; + var on = function() {}; + on.init = function(t) { + var e = this; + Object.defineProperty(this, "resizeTo", { + set: function(t) { + window.removeEventListener("resize", this.resize), (this._resizeTo = t) && (window.addEventListener("resize", this.resize), this.resize()) + }, + get: function() { + return this._resizeTo + } + }), this.resize = function() { + e._resizeTo && (e._resizeTo === window ? e.renderer.resize(window.innerWidth, window.innerHeight) : e.renderer.resize(e._resizeTo.clientWidth, e._resizeTo.clientHeight)) + }, this._resizeTo = null, this.resizeTo = t.resizeTo || null + }, on.destroy = function() { + this.resizeTo = null, this.resize = null + }, rn.registerPlugin(on); + var an = r(66), + sn = r.n(an); + + function unwrapExports(t) { + return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t + } + + function createCommonjsModule(t, e) { + return t(e = { + exports: {} + }, e.exports), e.exports + } + var un = function(t, e) { + e = e || {}; + for (var n = { + key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }, r = n.parser[e.strictMode ? "strict" : "loose"].exec(t), i = {}, o = 14; o--;) i[n.key[o]] = r[o] || ""; + return i[n.q.name] = {}, i[n.key[12]].replace(n.q.parser, function(t, e, r) { + e && (i[n.q.name][e] = r) + }), i + }, + hn = createCommonjsModule(function(t, e) { + Object.defineProperty(e, "__esModule", { + value: !0 + }); + var r = function() { + function defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + return function(t, e, r) { + return e && defineProperties(t.prototype, e), r && defineProperties(t, r), t + } + }(); + + function _classCallCheck(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + } + var n = function() { + function MiniSignalBinding(t, e, r) { + void 0 === e && (e = !1), _classCallCheck(this, MiniSignalBinding), this._fn = t, this._once = e, this._thisArg = r, this._next = this._prev = this._owner = null + } + return r(MiniSignalBinding, [{ + key: "detach", + value: function() { + return null !== this._owner && (this._owner.detach(this), !0) + } + }]), MiniSignalBinding + }(); + + function _addMiniSignalBinding(t, e) { + return t._head ? (t._tail._next = e)._prev = t._tail : t._head = e, (t._tail = e)._owner = t, e + } + var i = function() { + function MiniSignal() { + _classCallCheck(this, MiniSignal), this._head = this._tail = void 0 + } + return r(MiniSignal, [{ + key: "handlers", + value: function() { + var t = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0], + e = this._head; + if (t) return !!e; + for (var r = []; e;) r.push(e), e = e._next; + return r + } + }, { + key: "has", + value: function(t) { + if (!(t instanceof n)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object."); + return t._owner === this + } + }, { + key: "dispatch", + value: function() { + var t = arguments, + e = this._head; + if (!e) return !1; + for (; e;) e._once && this.detach(e), e._fn.apply(e._thisArg, t), e = e._next; + return !0 + } + }, { + key: "add", + value: function(t) { + var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; + if ("function" != typeof t) throw new Error("MiniSignal#add(): First arg must be a Function."); + return _addMiniSignalBinding(this, new n(t, !1, e)) + } + }, { + key: "once", + value: function(t) { + var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; + if ("function" != typeof t) throw new Error("MiniSignal#once(): First arg must be a Function."); + return _addMiniSignalBinding(this, new n(t, !0, e)) + } + }, { + key: "detach", + value: function(t) { + if (!(t instanceof n)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object."); + return t._owner !== this || (t._prev && (t._prev._next = t._next), t._next && (t._next._prev = t._prev), t === this._head ? (this._head = t._next, null === t._next && (this._tail = null)) : t === this._tail && (this._tail = t._prev, this._tail._next = null), t._owner = null), this + } + }, { + key: "detachAll", + value: function() { + var t = this._head; + if (!t) return this; + for (this._head = this._tail = null; t;) t._owner = null, t = t._next; + return this + } + }]), MiniSignal + }(); + i.MiniSignalBinding = n, e.default = i, t.exports = e.default + }); + unwrapExports(hn); + var cn = createCommonjsModule(function(t, e) { + e.__esModule = !0, e.Resource = void 0; + var r = function() { + function defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + return function(t, e, r) { + return e && defineProperties(t.prototype, e), r && defineProperties(t, r), t + } + }(), + i = _interopRequireDefault(un), + n = _interopRequireDefault(hn); + + function _interopRequireDefault(t) { + return t && t.__esModule ? t : { + default: t + } + } + var o = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest), + a = null; + + function _noop() {} + var s = e.Resource = function() { + function Resource(t, e, r) { + if (function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }(this, Resource), "string" != typeof t || "string" != typeof e) throw new Error("Both name and url are required for constructing a resource."); + r = r || {}, this._flags = 0, this._setFlag(Resource.STATUS_FLAGS.DATA_URL, 0 === e.indexOf("data:")), this.name = t, this.url = e, this.extension = this._getExtension(), this.data = null, this.crossOrigin = !0 === r.crossOrigin ? "anonymous" : r.crossOrigin, this.timeout = r.timeout || 0, this.loadType = r.loadType || this._determineLoadType(), this.xhrType = r.xhrType, this.metadata = r.metadata || {}, this.error = null, this.xhr = null, this.children = [], this.type = Resource.TYPE.UNKNOWN, this.progressChunk = 0, this._dequeue = _noop, this._onLoadBinding = null, this._elementTimer = 0, this._boundComplete = this.complete.bind(this), this._boundOnError = this._onError.bind(this), this._boundOnProgress = this._onProgress.bind(this), this._boundOnTimeout = this._onTimeout.bind(this), this._boundXhrOnError = this._xhrOnError.bind(this), this._boundXhrOnTimeout = this._xhrOnTimeout.bind(this), this._boundXhrOnAbort = this._xhrOnAbort.bind(this), this._boundXhrOnLoad = this._xhrOnLoad.bind(this), this.onStart = new n.default, this.onProgress = new n.default, this.onComplete = new n.default, this.onAfterMiddleware = new n.default + } + return Resource.setExtensionLoadType = function(t, e) { + setExtMap(Resource._loadTypeMap, t, e) + }, Resource.setExtensionXhrType = function(t, e) { + setExtMap(Resource._xhrTypeMap, t, e) + }, Resource.prototype.complete = function() { + this._clearEvents(), this._finish() + }, Resource.prototype.abort = function(t) { + if (!this.error) { + if (this.error = new Error(t), this._clearEvents(), this.xhr) this.xhr.abort(); + else if (this.xdr) this.xdr.abort(); + else if (this.data) + if (this.data.src) this.data.src = Resource.EMPTY_GIF; + else + for (; this.data.firstChild;) this.data.removeChild(this.data.firstChild); + this._finish() + } + }, Resource.prototype.load = function(t) { + var e = this; + if (!this.isLoading) + if (this.isComplete) t && setTimeout(function() { + return t(e) + }, 1); + else switch (t && this.onComplete.once(t), this._setFlag(Resource.STATUS_FLAGS.LOADING, !0), this.onStart.dispatch(this), !1 !== this.crossOrigin && "string" == typeof this.crossOrigin || (this.crossOrigin = this._determineCrossOrigin(this.url)), this.loadType) { + case Resource.LOAD_TYPE.IMAGE: + this.type = Resource.TYPE.IMAGE, this._loadElement("image"); + break; + case Resource.LOAD_TYPE.AUDIO: + this.type = Resource.TYPE.AUDIO, this._loadSourceElement("audio"); + break; + case Resource.LOAD_TYPE.VIDEO: + this.type = Resource.TYPE.VIDEO, this._loadSourceElement("video"); + break; + case Resource.LOAD_TYPE.XHR: + default: + o && this.crossOrigin ? this._loadXdr() : this._loadXhr() + } + }, Resource.prototype._hasFlag = function(t) { + return 0 != (this._flags & t) + }, Resource.prototype._setFlag = function(t, e) { + this._flags = e ? this._flags | t : this._flags & ~t + }, Resource.prototype._clearEvents = function() { + clearTimeout(this._elementTimer), this.data && this.data.removeEventListener && (this.data.removeEventListener("error", this._boundOnError, !1), this.data.removeEventListener("load", this._boundComplete, !1), this.data.removeEventListener("progress", this._boundOnProgress, !1), this.data.removeEventListener("canplaythrough", this._boundComplete, !1)), this.xhr && (this.xhr.removeEventListener ? (this.xhr.removeEventListener("error", this._boundXhrOnError, !1), this.xhr.removeEventListener("timeout", this._boundXhrOnTimeout, !1), this.xhr.removeEventListener("abort", this._boundXhrOnAbort, !1), this.xhr.removeEventListener("progress", this._boundOnProgress, !1), this.xhr.removeEventListener("load", this._boundXhrOnLoad, !1)) : (this.xhr.onerror = null, this.xhr.ontimeout = null, this.xhr.onprogress = null, this.xhr.onload = null)) + }, Resource.prototype._finish = function() { + if (this.isComplete) throw new Error("Complete called again for an already completed resource."); + this._setFlag(Resource.STATUS_FLAGS.COMPLETE, !0), this._setFlag(Resource.STATUS_FLAGS.LOADING, !1), this.onComplete.dispatch(this) + }, Resource.prototype._loadElement = function(t) { + this.metadata.loadElement ? this.data = this.metadata.loadElement : "image" === t && void 0 !== window.Image ? this.data = new Image : this.data = document.createElement(t), this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), this.metadata.skipSource || (this.data.src = this.url), this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.timeout && (this._elementTimer = setTimeout(this._boundOnTimeout, this.timeout)) + }, Resource.prototype._loadSourceElement = function(t) { + if (this.metadata.loadElement ? this.data = this.metadata.loadElement : "audio" === t && void 0 !== window.Audio ? this.data = new Audio : this.data = document.createElement(t), null !== this.data) { + if (this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), !this.metadata.skipSource) + if (navigator.isCocoonJS) this.data.src = Array.isArray(this.url) ? this.url[0] : this.url; + else if (Array.isArray(this.url)) + for (var e = this.metadata.mimeType, r = 0; r < this.url.length; ++r) this.data.appendChild(this._createSource(t, this.url[r], Array.isArray(e) ? e[r] : e)); + else { + var n = this.metadata.mimeType; + this.data.appendChild(this._createSource(t, this.url, Array.isArray(n) ? n[0] : n)) + } + this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.data.addEventListener("canplaythrough", this._boundComplete, !1), this.data.load(), this.timeout && (this._elementTimer = setTimeout(this._boundOnTimeout, this.timeout)) + } else this.abort("Unsupported element: " + t) + }, Resource.prototype._loadXhr = function() { + "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType()); + var t = this.xhr = new XMLHttpRequest; + t.open("GET", this.url, !0), t.timeout = this.timeout, this.xhrType === Resource.XHR_RESPONSE_TYPE.JSON || this.xhrType === Resource.XHR_RESPONSE_TYPE.DOCUMENT ? t.responseType = Resource.XHR_RESPONSE_TYPE.TEXT : t.responseType = this.xhrType, t.addEventListener("error", this._boundXhrOnError, !1), t.addEventListener("timeout", this._boundXhrOnTimeout, !1), t.addEventListener("abort", this._boundXhrOnAbort, !1), t.addEventListener("progress", this._boundOnProgress, !1), t.addEventListener("load", this._boundXhrOnLoad, !1), t.send() + }, Resource.prototype._loadXdr = function() { + "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType()); + var t = this.xhr = new XDomainRequest; + t.timeout = this.timeout || 5e3, t.onerror = this._boundXhrOnError, t.ontimeout = this._boundXhrOnTimeout, t.onprogress = this._boundOnProgress, t.onload = this._boundXhrOnLoad, t.open("GET", this.url, !0), setTimeout(function() { + return t.send() + }, 1) + }, Resource.prototype._createSource = function(t, e, r) { + r || (r = t + "/" + this._getExtension(e)); + var n = document.createElement("source"); + return n.src = e, n.type = r, n + }, Resource.prototype._onError = function(t) { + this.abort("Failed to load element using: " + t.target.nodeName) + }, Resource.prototype._onProgress = function(t) { + t && t.lengthComputable && this.onProgress.dispatch(this, t.loaded / t.total) + }, Resource.prototype._onTimeout = function() { + this.abort("Load timed out.") + }, Resource.prototype._xhrOnError = function() { + var t = this.xhr; + this.abort(reqType(t) + " Request failed. Status: " + t.status + ', text: "' + t.statusText + '"') + }, Resource.prototype._xhrOnTimeout = function() { + var t = this.xhr; + this.abort(reqType(t) + " Request timed out.") + }, Resource.prototype._xhrOnAbort = function() { + var t = this.xhr; + this.abort(reqType(t) + " Request was aborted by the user.") + }, Resource.prototype._xhrOnLoad = function() { + var t = this.xhr, + e = "", + r = void 0 === t.status ? 200 : t.status; + if ("" !== t.responseType && "text" !== t.responseType && void 0 !== t.responseType || (e = t.responseText), 0 === r && (0 < e.length || t.responseType === Resource.XHR_RESPONSE_TYPE.BUFFER) ? r = 200 : 1223 === r && (r = 204), 2 === (r / 100 | 0)) { + if (this.xhrType === Resource.XHR_RESPONSE_TYPE.TEXT) this.data = e, this.type = Resource.TYPE.TEXT; + else if (this.xhrType === Resource.XHR_RESPONSE_TYPE.JSON) try { + this.data = JSON.parse(e), this.type = Resource.TYPE.JSON + } catch (t) { + return void this.abort("Error trying to parse loaded json: " + t) + } else if (this.xhrType === Resource.XHR_RESPONSE_TYPE.DOCUMENT) try { + if (window.DOMParser) { + var n = new DOMParser; + this.data = n.parseFromString(e, "text/xml") + } else { + var i = document.createElement("div"); + i.innerHTML = e, this.data = i + } + this.type = Resource.TYPE.XML + } catch (t) { + return void this.abort("Error trying to parse loaded xml: " + t) + } else this.data = t.response || e; + this.complete() + } else this.abort("[" + t.status + "] " + t.statusText + ": " + t.responseURL) + }, Resource.prototype._determineCrossOrigin = function(t, e) { + if (0 === t.indexOf("data:")) return ""; + if (window.origin !== window.location.origin) return "anonymous"; + e = e || window.location, a || (a = document.createElement("a")), a.href = t; + var r = !(t = (0, i.default)(a.href, { + strictMode: !0 + })).port && "" === e.port || t.port === e.port, + n = t.protocol ? t.protocol + ":" : ""; + return t.host === e.hostname && r && n === e.protocol ? "" : "anonymous" + }, Resource.prototype._determineXhrType = function() { + return Resource._xhrTypeMap[this.extension] || Resource.XHR_RESPONSE_TYPE.TEXT + }, Resource.prototype._determineLoadType = function() { + return Resource._loadTypeMap[this.extension] || Resource.LOAD_TYPE.XHR + }, Resource.prototype._getExtension = function() { + var t = this.url, + e = ""; + if (this.isDataUrl) { + var r = t.indexOf("/"); + e = t.substring(r + 1, t.indexOf(";", r)) + } else { + var n = t.indexOf("?"), + i = t.indexOf("#"), + o = Math.min(-1 < n ? n : t.length, -1 < i ? i : t.length); + e = (t = t.substring(0, o)).substring(t.lastIndexOf(".") + 1) + } + return e.toLowerCase() + }, Resource.prototype._getMimeFromXhrType = function(t) { + switch (t) { + case Resource.XHR_RESPONSE_TYPE.BUFFER: + return "application/octet-binary"; + case Resource.XHR_RESPONSE_TYPE.BLOB: + return "application/blob"; + case Resource.XHR_RESPONSE_TYPE.DOCUMENT: + return "application/xml"; + case Resource.XHR_RESPONSE_TYPE.JSON: + return "application/json"; + case Resource.XHR_RESPONSE_TYPE.DEFAULT: + case Resource.XHR_RESPONSE_TYPE.TEXT: + default: + return "text/plain" + } + }, r(Resource, [{ + key: "isDataUrl", + get: function() { + return this._hasFlag(Resource.STATUS_FLAGS.DATA_URL) + } + }, { + key: "isComplete", + get: function() { + return this._hasFlag(Resource.STATUS_FLAGS.COMPLETE) + } + }, { + key: "isLoading", + get: function() { + return this._hasFlag(Resource.STATUS_FLAGS.LOADING) + } + }]), Resource + }(); + + function setExtMap(t, e, r) { + e && 0 === e.indexOf(".") && (e = e.substring(1)), e && (t[e] = r) + } + + function reqType(t) { + return t.toString().replace("object ", "") + } + s.STATUS_FLAGS = { + NONE: 0, + DATA_URL: 1, + COMPLETE: 2, + LOADING: 4 + }, s.TYPE = { + UNKNOWN: 0, + JSON: 1, + XML: 2, + IMAGE: 3, + AUDIO: 4, + VIDEO: 5, + TEXT: 6 + }, s.LOAD_TYPE = { + XHR: 1, + IMAGE: 2, + AUDIO: 3, + VIDEO: 4 + }, s.XHR_RESPONSE_TYPE = { + DEFAULT: "text", + BUFFER: "arraybuffer", + BLOB: "blob", + DOCUMENT: "document", + JSON: "json", + TEXT: "text" + }, s._loadTypeMap = { + gif: s.LOAD_TYPE.IMAGE, + png: s.LOAD_TYPE.IMAGE, + bmp: s.LOAD_TYPE.IMAGE, + jpg: s.LOAD_TYPE.IMAGE, + jpeg: s.LOAD_TYPE.IMAGE, + tif: s.LOAD_TYPE.IMAGE, + tiff: s.LOAD_TYPE.IMAGE, + webp: s.LOAD_TYPE.IMAGE, + tga: s.LOAD_TYPE.IMAGE, + svg: s.LOAD_TYPE.IMAGE, + "svg+xml": s.LOAD_TYPE.IMAGE, + mp3: s.LOAD_TYPE.AUDIO, + ogg: s.LOAD_TYPE.AUDIO, + wav: s.LOAD_TYPE.AUDIO, + mp4: s.LOAD_TYPE.VIDEO, + webm: s.LOAD_TYPE.VIDEO + }, s._xhrTypeMap = { + xhtml: s.XHR_RESPONSE_TYPE.DOCUMENT, + html: s.XHR_RESPONSE_TYPE.DOCUMENT, + htm: s.XHR_RESPONSE_TYPE.DOCUMENT, + xml: s.XHR_RESPONSE_TYPE.DOCUMENT, + tmx: s.XHR_RESPONSE_TYPE.DOCUMENT, + svg: s.XHR_RESPONSE_TYPE.DOCUMENT, + tsx: s.XHR_RESPONSE_TYPE.DOCUMENT, + gif: s.XHR_RESPONSE_TYPE.BLOB, + png: s.XHR_RESPONSE_TYPE.BLOB, + bmp: s.XHR_RESPONSE_TYPE.BLOB, + jpg: s.XHR_RESPONSE_TYPE.BLOB, + jpeg: s.XHR_RESPONSE_TYPE.BLOB, + tif: s.XHR_RESPONSE_TYPE.BLOB, + tiff: s.XHR_RESPONSE_TYPE.BLOB, + webp: s.XHR_RESPONSE_TYPE.BLOB, + tga: s.XHR_RESPONSE_TYPE.BLOB, + json: s.XHR_RESPONSE_TYPE.JSON, + text: s.XHR_RESPONSE_TYPE.TEXT, + txt: s.XHR_RESPONSE_TYPE.TEXT, + ttf: s.XHR_RESPONSE_TYPE.BUFFER, + otf: s.XHR_RESPONSE_TYPE.BUFFER + }, s.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", t.exports.default = s + }); + unwrapExports(cn); + cn.Resource; + var ln = createCommonjsModule(function(t, e) { + e.__esModule = !0, e.encodeBinary = encodeBinary; + var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + + function encodeBinary(t) { + for (var e = "", r = 0; r < t.length;) { + for (var n = [0, 0, 0], i = [0, 0, 0, 0], o = 0; o < n.length; ++o) r < t.length ? n[o] = 255 & t.charCodeAt(r++) : n[o] = 0; + switch (i[0] = n[0] >> 2, i[1] = (3 & n[0]) << 4 | n[1] >> 4, i[2] = (15 & n[1]) << 2 | n[2] >> 6, i[3] = 63 & n[2], r - (t.length - 1)) { + case 2: + i[3] = 64, i[2] = 64; + break; + case 1: + i[3] = 64 + } + for (var a = 0; a < i.length; ++a) e += s.charAt(i[a]) + } + return e + } + t.exports.default = encodeBinary + }); + unwrapExports(ln); + ln.encodeBinary; + var fn = createCommonjsModule(function(t, e) { + e.__esModule = !0, e.blobMiddlewareFactory = function() { + return function(t, e) { + if (t.data) { + if (t.xhr && t.xhrType === cn.Resource.XHR_RESPONSE_TYPE.BLOB) + if (window.Blob && "string" != typeof t.data) { + if (0 === t.data.type.indexOf("image")) { + var r = i.createObjectURL(t.data); + return t.blob = t.data, t.data = new Image, t.data.src = r, t.type = cn.Resource.TYPE.IMAGE, void(t.data.onload = function() { + i.revokeObjectURL(r), t.data.onload = null, e() + }) + } + } else { + var n = t.xhr.getResponseHeader("content-type"); + if (n && 0 === n.indexOf("image")) return t.data = new Image, t.data.src = "data:" + n + ";base64," + (0, ln.encodeBinary)(t.xhr.responseText), t.type = cn.Resource.TYPE.IMAGE, void(t.data.onload = function() { + t.data.onload = null, e() + }) + } + e() + } else e() + } + }; + var i = window.URL || window.webkitURL + }); + unwrapExports(fn); + var dn = fn.blobMiddlewareFactory, + pn = function() {}; + pn.use = function(t, e) { + t.data && t.type === an.Resource.TYPE.IMAGE && (t.texture = Ht.fromLoader(t.data, t.url, t.name)), e() + }; + var mn = function(s) { + function Loader(t, e) { + var n = this; + s.call(this, t, e), l.a.call(this); + for (var r = 0; r < Loader._plugins.length; ++r) { + var i = Loader._plugins[r], + o = i.pre, + a = i.use; + o && this.pre(o), a && this.use(a) + } + this.onStart.add(function(t) { + return n.emit("start", t) + }), this.onProgress.add(function(t, e) { + return n.emit("progress", t, e) + }), this.onError.add(function(t, e, r) { + return n.emit("error", t, e, r) + }), this.onLoad.add(function(t, e) { + return n.emit("load", t, e) + }), this.onComplete.add(function(t, e) { + return n.emit("complete", t, e) + }), this._protected = !1 + } + s && (Loader.__proto__ = s); + var t = { + shared: { + configurable: !0 + } + }; + return ((Loader.prototype = Object.create(s && s.prototype)).constructor = Loader).prototype.destroy = function() { + this._protected || (this.removeAllListeners(), this.reset()) + }, t.shared.get = function() { + var t = Loader._shared; + return t || ((t = new Loader)._protected = !0, Loader._shared = t), t + }, Object.defineProperties(Loader, t), Loader + }(sn.a); + Object.assign(mn.prototype, l.a.prototype), mn._plugins = [], mn.registerPlugin = function(t) { + return mn._plugins.push(t), t.add && t.add(), mn + }, mn.registerPlugin({ + use: dn() + }), mn.registerPlugin(pn); + var vn = function() {}; + vn.init = function(t) { + t = Object.assign({ + sharedLoader: !1 + }, t), this.loader = t.sharedLoader ? mn.shared : new mn + }, vn.destroy = function() { + this.loader && (this.loader.destroy(), this.loader = null) + }; + var gn = an.Resource, + yn = function(i) { + function ParticleContainer(t, e, r, n) { + void 0 === t && (t = 1500), void 0 === r && (r = 16384), void 0 === n && (n = !1), i.call(this); + 16384 < r && (r = 16384), t < r && (r = t), this._properties = [!1, !0, !1, !1, !1], this._maxSize = t, this._batchSize = r, this._buffers = null, this._bufferUpdateIDs = [], this._updateID = 0, this.interactiveChildren = !1, this.blendMode = y.NORMAL, this.autoResize = n, this.roundPixels = !0, this.baseTexture = null, this.setProperties(e), this._tint = 0, this.tintRgb = new Float32Array(4), this.tint = 16777215 + } + i && (ParticleContainer.__proto__ = i); + var t = { + tint: { + configurable: !0 + } + }; + return ((ParticleContainer.prototype = Object.create(i && i.prototype)).constructor = ParticleContainer).prototype.setProperties = function(t) { + t && (this._properties[0] = "vertices" in t || "scale" in t ? !!t.vertices || !!t.scale : this._properties[0], this._properties[1] = "position" in t ? !!t.position : this._properties[1], this._properties[2] = "rotation" in t ? !!t.rotation : this._properties[2], this._properties[3] = "uvs" in t ? !!t.uvs : this._properties[3], this._properties[4] = "tint" in t || "alpha" in t ? !!t.tint || !!t.alpha : this._properties[4]) + }, ParticleContainer.prototype.updateTransform = function() { + this.displayObjectUpdateTransform() + }, t.tint.get = function() { + return this._tint + }, t.tint.set = function(t) { + hex2rgb(this._tint = t, this.tintRgb) + }, ParticleContainer.prototype.render = function(t) { + var e = this; + this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable && (this.baseTexture || (this.baseTexture = this.children[0]._texture.baseTexture, this.baseTexture.valid || this.baseTexture.once("update", function() { + return e.onChildrenChange(0) + })), t.batch.setObjectRenderer(t.plugins.particle), t.plugins.particle.render(this)) + }, ParticleContainer.prototype.onChildrenChange = function(t) { + for (var e = Math.floor(t / this._batchSize); this._bufferUpdateIDs.length < e;) this._bufferUpdateIDs.push(0); + this._bufferUpdateIDs[e] = ++this._updateID + }, ParticleContainer.prototype.dispose = function() { + if (this._buffers) { + for (var t = 0; t < this._buffers.length; ++t) this._buffers[t].destroy(); + this._buffers = null + } + }, ParticleContainer.prototype.destroy = function(t) { + i.prototype.destroy.call(this, t), this.dispose(), this._properties = null, this._buffers = null, this._bufferUpdateIDs = null + }, Object.defineProperties(ParticleContainer.prototype, t), ParticleContainer + }(pt), + _n = function(t, e, r) { + this.geometry = new ee, this.indexBuffer = null, this.size = r, this.dynamicProperties = [], this.staticProperties = []; + for (var n = 0; n < t.length; ++n) { + var i = t[n]; + i = { + attributeName: i.attributeName, + size: i.size, + uploadFunction: i.uploadFunction, + type: i.type || w.FLOAT, + offset: i.offset + }, e[n] ? this.dynamicProperties.push(i) : this.staticProperties.push(i) + } + this.staticStride = 0, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.dynamicStride = 0, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this._updateID = 0, this.initBuffers() + }; + _n.prototype.initBuffers = function() { + var t = this.geometry, + e = 0; + this.indexBuffer = new Zt(createIndicesForQuads(this.size), !0, !0), t.addIndex(this.indexBuffer); + for (var r = this.dynamicStride = 0; r < this.dynamicProperties.length; ++r) { + var n = this.dynamicProperties[r]; + n.offset = e, e += n.size, this.dynamicStride += n.size + } + var i = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4); + this.dynamicData = new Float32Array(i), this.dynamicDataUint32 = new Uint32Array(i), this.dynamicBuffer = new Zt(this.dynamicData, !1, !1); + for (var o = 0, a = this.staticStride = 0; a < this.staticProperties.length; ++a) { + var s = this.staticProperties[a]; + s.offset = o, o += s.size, this.staticStride += s.size + } + var u = new ArrayBuffer(this.size * this.staticStride * 4 * 4); + this.staticData = new Float32Array(u), this.staticDataUint32 = new Uint32Array(u), this.staticBuffer = new Zt(this.staticData, !0, !1); + for (var h = 0; h < this.dynamicProperties.length; ++h) { + var c = this.dynamicProperties[h]; + t.addAttribute(c.attributeName, this.dynamicBuffer, 0, c.type === w.UNSIGNED_BYTE, c.type, 4 * this.dynamicStride, 4 * c.offset) + } + for (var l = 0; l < this.staticProperties.length; ++l) { + var f = this.staticProperties[l]; + t.addAttribute(f.attributeName, this.staticBuffer, 0, f.type === w.UNSIGNED_BYTE, f.type, 4 * this.staticStride, 4 * f.offset) + } + }, _n.prototype.uploadDynamic = function(t, e, r) { + for (var n = 0; n < this.dynamicProperties.length; n++) { + var i = this.dynamicProperties[n]; + i.uploadFunction(t, e, r, i.type === w.UNSIGNED_BYTE ? this.dynamicDataUint32 : this.dynamicData, this.dynamicStride, i.offset) + } + this.dynamicBuffer._updateID++ + }, _n.prototype.uploadStatic = function(t, e, r) { + for (var n = 0; n < this.staticProperties.length; n++) { + var i = this.staticProperties[n]; + i.uploadFunction(t, e, r, i.type === w.UNSIGNED_BYTE ? this.staticDataUint32 : this.staticData, this.staticStride, i.offset) + } + this.staticBuffer._updateID++ + }, _n.prototype.destroy = function() { + this.indexBuffer = null, this.dynamicProperties = null, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.staticProperties = null, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.geometry.destroy() + }; + var bn = function(e) { + function ParticleRenderer(t) { + e.call(this, t), this.shader = null, this.properties = null, this.tempMatrix = new Y, this.properties = [{ + attributeName: "aVertexPosition", + size: 2, + uploadFunction: this.uploadVertices, + offset: 0 + }, { + attributeName: "aPositionCoord", + size: 2, + uploadFunction: this.uploadPosition, + offset: 0 + }, { + attributeName: "aRotation", + size: 1, + uploadFunction: this.uploadRotation, + offset: 0 + }, { + attributeName: "aTextureCoord", + size: 2, + uploadFunction: this.uploadUvs, + offset: 0 + }, { + attributeName: "aColor", + size: 1, + type: w.UNSIGNED_BYTE, + uploadFunction: this.uploadTint, + offset: 0 + }], this.shader = Ie.from("attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nattribute vec2 aPositionCoord;\nattribute float aRotation;\n\nuniform mat3 translationMatrix;\nuniform vec4 uColor;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nvoid main(void){\n float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);\n float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);\n\n vec2 v = vec2(x, y);\n v = v + aPositionCoord;\n\n gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vColor = aColor * uColor;\n}\n", "varying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n vec4 color = texture2D(uSampler, vTextureCoord) * vColor;\n gl_FragColor = color;\n}", {}) + } + return e && (ParticleRenderer.__proto__ = e), ((ParticleRenderer.prototype = Object.create(e && e.prototype)).constructor = ParticleRenderer).prototype.render = function(t) { + var e = t.children, + r = t._maxSize, + n = t._batchSize, + i = this.renderer, + o = e.length; + if (0 !== o) { + r < o && (o = r); + var a = t._buffers; + a || (a = t._buffers = this.generateBuffers(t)); + var s = e[0]._texture.baseTexture; + this.renderer.state.setBlendMode(correctBlendMode(t.blendMode, s.premultiplyAlpha)); + var u = i.gl, + h = t.worldTransform.copyTo(this.tempMatrix); + h.prepend(i.globalUniforms.uniforms.projectionMatrix), this.shader.uniforms.translationMatrix = h.toArray(!0), this.shader.uniforms.uColor = premultiplyRgba(t.tintRgb, t.worldAlpha, this.shader.uniforms.uColor, s.premultiplyAlpha), this.shader.uniforms.uSampler = s, this.renderer.shader.bind(this.shader); + for (var c = !1, l = 0, f = 0; l < o; l += n, f += 1) { + var d = o - l; + if (n < d && (d = n), f >= a.length) { + if (!t.autoResize) break; + a.push(this._generateOneMoreBuffer(t)) + } + var p = a[f]; + p.uploadDynamic(e, l, d); + var m = t._bufferUpdateIDs[f] || 0; + (c = c || p._updateID < m) && (p._updateID = t._updateID, p.uploadStatic(e, l, d)), i.geometry.bind(p.geometry), u.drawElements(u.TRIANGLES, 6 * d, u.UNSIGNED_SHORT, 0) + } + } + }, ParticleRenderer.prototype.generateBuffers = function(t) { + for (var e = [], r = t._maxSize, n = t._batchSize, i = t._properties, o = 0; o < r; o += n) e.push(new _n(this.properties, i, n)); + return e + }, ParticleRenderer.prototype._generateOneMoreBuffer = function(t) { + var e = t._batchSize, + r = t._properties; + return new _n(this.properties, r, e) + }, ParticleRenderer.prototype.uploadVertices = function(t, e, r, n, i, o) { + for (var a = 0, s = 0, u = 0, h = 0, c = 0; c < r; ++c) { + var l = t[e + c], + f = l._texture, + d = l.scale.x, + p = l.scale.y, + m = f.trim, + v = f.orig; + m ? (a = (s = m.x - l.anchor.x * v.width) + m.width, u = (h = m.y - l.anchor.y * v.height) + m.height) : (a = v.width * (1 - l.anchor.x), s = v.width * -l.anchor.x, u = v.height * (1 - l.anchor.y), h = v.height * -l.anchor.y), n[o] = s * d, n[o + 1] = h * p, n[o + i] = a * d, n[o + i + 1] = h * p, n[o + 2 * i] = a * d, n[o + 2 * i + 1] = u * p, n[o + 3 * i] = s * d, n[o + 3 * i + 1] = u * p, o += 4 * i + } + }, ParticleRenderer.prototype.uploadPosition = function(t, e, r, n, i, o) { + for (var a = 0; a < r; a++) { + var s = t[e + a].position; + n[o] = s.x, n[o + 1] = s.y, n[o + i] = s.x, n[o + i + 1] = s.y, n[o + 2 * i] = s.x, n[o + 2 * i + 1] = s.y, n[o + 3 * i] = s.x, n[o + 3 * i + 1] = s.y, o += 4 * i + } + }, ParticleRenderer.prototype.uploadRotation = function(t, e, r, n, i, o) { + for (var a = 0; a < r; a++) { + var s = t[e + a].rotation; + n[o] = s, n[o + i] = s, n[o + 2 * i] = s, n[o + 3 * i] = s, o += 4 * i + } + }, ParticleRenderer.prototype.uploadUvs = function(t, e, r, n, i, o) { + for (var a = 0; a < r; ++a) { + var s = t[e + a]._texture._uvs; + n[o + 3 * i + 1] = s ? (n[o] = s.x0, n[o + 1] = s.y0, n[o + i] = s.x1, n[o + i + 1] = s.y1, n[o + 2 * i] = s.x2, n[o + 2 * i + 1] = s.y2, n[o + 3 * i] = s.x3, s.y3) : (n[o] = 0, n[o + 1] = 0, n[o + i] = 0, n[o + i + 1] = 0, n[o + 2 * i] = 0, n[o + 2 * i + 1] = 0, n[o + 3 * i] = 0), o += 4 * i + } + }, ParticleRenderer.prototype.uploadTint = function(t, e, r, n, i, o) { + for (var a = 0; a < r; ++a) { + var s = t[e + a], + u = s._texture.baseTexture.premultiplyAlpha, + h = s.alpha, + c = h < 1 && u ? premultiplyTint(s._tintRGB, h) : s._tintRGB + (255 * h << 24); + n[o] = c, n[o + i] = c, n[o + 2 * i] = c, n[o + 3 * i] = c, o += 4 * i + } + }, ParticleRenderer.prototype.destroy = function() { + e.prototype.destroy.call(this), this.shader && (this.shader.destroy(), this.shader = null), this.tempMatrix = null + }, ParticleRenderer + }(he), + xn = function(t, e, r) { + void 0 === r && (r = null), this.baseTexture = t, this.textures = {}, this.animations = {}, this.data = e, this.resolution = this._updateResolution(r || (this.baseTexture.resource ? this.baseTexture.resource.url : null)), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null + }, + wn = { + BATCH_SIZE: { + configurable: !0 + } + }; + wn.BATCH_SIZE.get = function() { + return 1e3 + }, xn.prototype._updateResolution = function(t) { + var e = this.data.meta.scale, + r = getResolutionOfUrl(t, null); + return null === r && (r = void 0 !== e ? parseFloat(e) : 1), 1 !== r && this.baseTexture.setResolution(r), r + }, xn.prototype.parse = function(t) { + this._batchIndex = 0, this._callback = t, this._frameKeys.length <= xn.BATCH_SIZE ? (this._processFrames(0), this._processAnimations(), this._parseComplete()) : this._nextBatch() + }, xn.prototype._processFrames = function(t) { + for (var e = t, r = xn.BATCH_SIZE; e - t < r && e < this._frameKeys.length;) { + var n = this._frameKeys[e], + i = this._frames[n], + o = i.frame; + if (o) { + var a = null, + s = null, + u = !1 !== i.trimmed && i.sourceSize ? i.sourceSize : i.frame, + h = new ot(0, 0, Math.floor(u.w) / this.resolution, Math.floor(u.h) / this.resolution); + a = i.rotated ? new ot(Math.floor(o.x) / this.resolution, Math.floor(o.y) / this.resolution, Math.floor(o.h) / this.resolution, Math.floor(o.w) / this.resolution) : new ot(Math.floor(o.x) / this.resolution, Math.floor(o.y) / this.resolution, Math.floor(o.w) / this.resolution, Math.floor(o.h) / this.resolution), !1 !== i.trimmed && i.spriteSourceSize && (s = new ot(Math.floor(i.spriteSourceSize.x) / this.resolution, Math.floor(i.spriteSourceSize.y) / this.resolution, Math.floor(o.w) / this.resolution, Math.floor(o.h) / this.resolution)), this.textures[n] = new Ht(this.baseTexture, a, h, s, i.rotated ? 2 : 0, i.anchor), Ht.addToCache(this.textures[n], n) + } + e++ + } + }, xn.prototype._processAnimations = function() { + var t = this.data.animations || {}; + for (var e in t) { + this.animations[e] = []; + for (var r = 0; r < t[e].length; r++) { + var n = t[e][r]; + this.animations[e].push(this.textures[n]) + } + } + }, xn.prototype._parseComplete = function() { + var t = this._callback; + this._callback = null, this._batchIndex = 0, t.call(this, this.textures) + }, xn.prototype._nextBatch = function() { + var t = this; + this._processFrames(this._batchIndex * xn.BATCH_SIZE), this._batchIndex++, setTimeout(function() { + t._batchIndex * xn.BATCH_SIZE < t._frameKeys.length ? t._nextBatch() : (t._processAnimations(), t._parseComplete()) + }, 0) + }, xn.prototype.destroy = function(t) { + for (var e in void 0 === t && (t = !1), this.textures) this.textures[e].destroy(); + this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, t && this.baseTexture.destroy(), this.baseTexture = null + }, Object.defineProperties(xn, wn); + var Tn = function() {}; + Tn.use = function(r, n) { + var t = r.name + "_image"; + if (r.data && r.type === gn.TYPE.JSON && r.data.frames && !this.resources[t]) { + var e = { + crossOrigin: r.crossOrigin, + metadata: r.metadata.imageMetadata, + parentResource: r + }, + i = Tn.getResourcePath(r, this.baseUrl); + this.add(t, i, e, function(t) { + if (t.error) n(t.error); + else { + var e = new xn(t.texture.baseTexture, r.data, r.url); + e.parse(function() { + r.spritesheet = e, r.textures = e.textures, n() + }) + } + }) + } else n() + }, Tn.getResourcePath = function(t, e) { + return t.isDataUrl ? t.data.meta.image : m.a.resolve(t.url.replace(e, ""), t.data.meta.image) + }; + var Sn = new q, + Mn = function(n) { + function TilingSprite(t, e, r) { + void 0 === e && (e = 100), void 0 === r && (r = 100), n.call(this, t), this.tileTransform = new nt, this._width = e, this._height = r, this._canvasPattern = null, this.uvMatrix = t.uvMatrix || new ke(t), this.pluginName = "tilingSprite", this.uvRespectAnchor = !1 + } + n && (TilingSprite.__proto__ = n), (TilingSprite.prototype = Object.create(n && n.prototype)).constructor = TilingSprite; + var t = { + clampMargin: { + configurable: !0 + }, + tileScale: { + configurable: !0 + }, + tilePosition: { + configurable: !0 + }, + width: { + configurable: !0 + }, + height: { + configurable: !0 + } + }; + return t.clampMargin.get = function() { + return this.uvMatrix.clampMargin + }, t.clampMargin.set = function(t) { + this.uvMatrix.clampMargin = t, this.uvMatrix.update(!0) + }, t.tileScale.get = function() { + return this.tileTransform.scale + }, t.tileScale.set = function(t) { + this.tileTransform.scale.copyFrom(t) + }, t.tilePosition.get = function() { + return this.tileTransform.position + }, t.tilePosition.set = function(t) { + this.tileTransform.position.copyFrom(t) + }, TilingSprite.prototype._onTextureUpdate = function() { + this.uvMatrix && (this.uvMatrix.texture = this._texture), this.cachedTint = 16777215 + }, TilingSprite.prototype._render = function(t) { + var e = this._texture; + e && e.valid && (this.tileTransform.updateLocalTransform(), this.uvMatrix.update(), t.batch.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this)) + }, TilingSprite.prototype._calculateBounds = function() { + var t = this._width * -this._anchor._x, + e = this._height * -this._anchor._y, + r = this._width * (1 - this._anchor._x), + n = this._height * (1 - this._anchor._y); + this._bounds.addFrame(this.transform, t, e, r, n) + }, TilingSprite.prototype.getLocalBounds = function(t) { + return 0 === this.children.length ? (this._bounds.minX = this._width * -this._anchor._x, this._bounds.minY = this._height * -this._anchor._y, this._bounds.maxX = this._width * (1 - this._anchor._x), this._bounds.maxY = this._height * (1 - this._anchor._y), t || (this._localBoundsRect || (this._localBoundsRect = new ot), t = this._localBoundsRect), this._bounds.getRectangle(t)) : n.prototype.getLocalBounds.call(this, t) + }, TilingSprite.prototype.containsPoint = function(t) { + this.worldTransform.applyInverse(t, Sn); + var e = this._width, + r = this._height, + n = -e * this.anchor._x; + if (Sn.x >= n && Sn.x < n + e) { + var i = -r * this.anchor._y; + if (Sn.y >= i && Sn.y < i + r) return !0 + } + return !1 + }, TilingSprite.prototype.destroy = function(t) { + n.prototype.destroy.call(this, t), this.tileTransform = null, this.uvMatrix = null + }, TilingSprite.from = function(t, e, r) { + return new TilingSprite(Ht.from(t), e, r) + }, TilingSprite.fromFrame = function(t, e, r) { + var n = F[t]; + if (!n) throw new Error('The frameId "' + t + '" does not exist in the texture cache ' + this); + return new TilingSprite(n, e, r) + }, TilingSprite.fromImage = function(t, e, r, n) { + return n && "object" != typeof n && (n = { + scaleMode: arguments[4], + resourceOptions: { + crossorigin: arguments[3] + } + }), new TilingSprite(Ht.from(t, n), e, r) + }, t.width.get = function() { + return this._width + }, t.width.set = function(t) { + this._width = t + }, t.height.get = function() { + return this._height + }, t.height.set = function(t) { + this._height = t + }, Object.defineProperties(TilingSprite.prototype, t), TilingSprite + }(Xr), + En = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", + An = new Y, + Pn = function(r) { + function TilingSpriteRenderer(t) { + r.call(this, t); + var e = { + globals: this.renderer.globalUniforms + }; + this.shader = Ie.from(En, "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n vec4 sample = texture2D(uSampler, coord);\n gl_FragColor = sample * uColor;\n}\n", e), this.simpleShader = Ie.from(En, "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n vec4 sample = texture2D(uSampler, vTextureCoord);\n gl_FragColor = sample * uColor;\n}\n", e), this.quad = new ne + } + return r && (TilingSpriteRenderer.__proto__ = r), ((TilingSpriteRenderer.prototype = Object.create(r && r.prototype)).constructor = TilingSpriteRenderer).prototype.render = function(t) { + var e = this.renderer, + r = this.quad, + n = r.vertices; + n[0] = n[6] = t._width * -t.anchor.x, n[1] = n[3] = t._height * -t.anchor.y, n[2] = n[4] = t._width * (1 - t.anchor.x), n[5] = n[7] = t._height * (1 - t.anchor.y), t.uvRespectAnchor && ((n = r.uvs)[0] = n[6] = -t.anchor.x, n[1] = n[3] = -t.anchor.y, n[2] = n[4] = 1 - t.anchor.x, n[5] = n[7] = 1 - t.anchor.y), r.invalidate(); + var i = t._texture, + o = i.baseTexture, + a = t.tileTransform.localTransform, + s = t.uvMatrix, + u = o.isPowerOfTwo && i.frame.width === o.width && i.frame.height === o.height; + u && (o._glTextures[e.CONTEXT_UID] ? u = o.wrapMode !== S.CLAMP : o.wrapMode === S.CLAMP && (o.wrapMode = S.REPEAT)); + var h = u ? this.simpleShader : this.shader, + c = i.width, + l = i.height, + f = t._width, + d = t._height; + An.set(a.a * c / f, a.b * c / d, a.c * l / f, a.d * l / d, a.tx / f, a.ty / d), An.invert(), u ? An.prepend(s.mapCoord) : (h.uniforms.uMapCoord = s.mapCoord.toArray(!0), h.uniforms.uClampFrame = s.uClampFrame, h.uniforms.uClampOffset = s.uClampOffset), h.uniforms.uTransform = An.toArray(!0), h.uniforms.uColor = premultiplyTintToRgba(t.tint, t.worldAlpha, h.uniforms.uColor, o.premultiplyAlpha), h.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), h.uniforms.uSampler = i, e.shader.bind(h), e.geometry.bind(r), e.state.setBlendMode(correctBlendMode(t.blendMode, o.premultiplyAlpha)), e.geometry.draw(this.renderer.gl.TRIANGLES, 6, 0) + }, TilingSpriteRenderer + }(he), + In = function(n) { + function BitmapText(t, e) { + var r = this; + void 0 === e && (e = {}), n.call(this), this._textWidth = 0, this._textHeight = 0, this._glyphs = [], this._font = { + tint: void 0 !== e.tint ? e.tint : 16777215, + align: e.align || "left", + name: null, + size: 0 + }, this.font = e.font, this._text = t, this._maxWidth = 0, this._maxLineHeight = 0, this._letterSpacing = 0, this._anchor = new j(function() { + r.dirty = !0 + }, this, 0, 0), this.dirty = !1, this.roundPixels = M.ROUND_PIXELS, this.updateText() + } + n && (BitmapText.__proto__ = n); + var t = { + tint: { + configurable: !0 + }, + align: { + configurable: !0 + }, + anchor: { + configurable: !0 + }, + font: { + configurable: !0 + }, + text: { + configurable: !0 + }, + maxWidth: { + configurable: !0 + }, + maxLineHeight: { + configurable: !0 + }, + textWidth: { + configurable: !0 + }, + letterSpacing: { + configurable: !0 + }, + textHeight: { + configurable: !0 + } + }; + return ((BitmapText.prototype = Object.create(n && n.prototype)).constructor = BitmapText).prototype.updateText = function() { + for (var t = BitmapText.fonts[this._font.name], e = this._font.size / t.size, r = new q, n = [], i = [], o = this._text.replace(/(?:\r\n|\r)/g, "\n") || " ", a = o.length, s = this._maxWidth * t.size / this._font.size, u = null, h = 0, c = 0, l = 0, f = -1, d = 0, p = 0, m = 0, v = 0; v < a; v++) { + var g = o.charCodeAt(v), + y = o.charAt(v); + if (/(?:\s)/.test(y) && (f = v, d = h), "\r" !== y && "\n" !== y) { + var _ = t.chars[g]; + _ && (u && _.kerning[u] && (r.x += _.kerning[u]), n.push({ + texture: _.texture, + line: l, + charCode: g, + position: new q(r.x + _.xOffset + this._letterSpacing / 2, r.y + _.yOffset) + }), r.x += _.xAdvance + this._letterSpacing, h = r.x, m = Math.max(m, _.yOffset + _.texture.height), u = g, -1 !== f && 0 < s && r.x > s && (removeItems(n, 1 + f - ++p, 1 + v - f), v = f, f = -1, i.push(d), c = Math.max(c, d), l++, r.x = 0, r.y += t.lineHeight, u = null)) + } else i.push(h), c = Math.max(c, h), ++l, ++p, r.x = 0, r.y += t.lineHeight, u = null + } + var b = o.charAt(o.length - 1); + "\r" !== b && "\n" !== b && (/(?:\s)/.test(b) && (h = d), i.push(h), c = Math.max(c, h)); + for (var x = [], w = 0; w <= l; w++) { + var T = 0; + "right" === this._font.align ? T = c - i[w] : "center" === this._font.align && (T = (c - i[w]) / 2), x.push(T) + } + for (var S = n.length, M = this.tint, E = 0; E < S; E++) { + var A = this._glyphs[E]; + A ? A.texture = n[E].texture : ((A = new Xr(n[E].texture)).roundPixels = this.roundPixels, this._glyphs.push(A)), A.position.x = (n[E].position.x + x[n[E].line]) * e, A.position.y = n[E].position.y * e, A.scale.x = A.scale.y = e, A.tint = M, A.parent || this.addChild(A) + } + for (var P = S; P < this._glyphs.length; ++P) this.removeChild(this._glyphs[P]); + if (this._textWidth = c * e, this._textHeight = (r.y + t.lineHeight) * e, 0 !== this.anchor.x || 0 !== this.anchor.y) + for (var I = 0; I < S; I++) this._glyphs[I].x -= this._textWidth * this.anchor.x, this._glyphs[I].y -= this._textHeight * this.anchor.y; + this._maxLineHeight = m * e + }, BitmapText.prototype.updateTransform = function() { + this.validate(), this.containerUpdateTransform() + }, BitmapText.prototype.getLocalBounds = function() { + return this.validate(), n.prototype.getLocalBounds.call(this) + }, BitmapText.prototype.validate = function() { + this.dirty && (this.updateText(), this.dirty = !1) + }, t.tint.get = function() { + return this._font.tint + }, t.tint.set = function(t) { + this._font.tint = "number" == typeof t && 0 <= t ? t : 16777215, this.dirty = !0 + }, t.align.get = function() { + return this._font.align + }, t.align.set = function(t) { + this._font.align = t || "left", this.dirty = !0 + }, t.anchor.get = function() { + return this._anchor + }, t.anchor.set = function(t) { + "number" == typeof t ? this._anchor.set(t) : this._anchor.copyFrom(t) + }, t.font.get = function() { + return this._font + }, t.font.set = function(t) { + t && (this._font.size = "string" == typeof t ? (t = t.split(" "), this._font.name = 1 === t.length ? t[0] : t.slice(1).join(" "), 2 <= t.length ? parseInt(t[0], 10) : BitmapText.fonts[this._font.name].size) : (this._font.name = t.name, "number" == typeof t.size ? t.size : parseInt(t.size, 10)), this.dirty = !0) + }, t.text.get = function() { + return this._text + }, t.text.set = function(t) { + t = String(null == t ? "" : t), this._text !== t && (this._text = t, this.dirty = !0) + }, t.maxWidth.get = function() { + return this._maxWidth + }, t.maxWidth.set = function(t) { + this._maxWidth !== t && (this._maxWidth = t, this.dirty = !0) + }, t.maxLineHeight.get = function() { + return this.validate(), this._maxLineHeight + }, t.textWidth.get = function() { + return this.validate(), this._textWidth + }, t.letterSpacing.get = function() { + return this._letterSpacing + }, t.letterSpacing.set = function(t) { + this._letterSpacing !== t && (this._letterSpacing = t, this.dirty = !0) + }, t.textHeight.get = function() { + return this.validate(), this._textHeight + }, BitmapText.registerFont = function(t, e) { + var r = {}, + n = t.getElementsByTagName("info")[0], + i = t.getElementsByTagName("common")[0], + o = t.getElementsByTagName("page"), + a = getResolutionOfUrl(o[0].getAttribute("file"), M.RESOLUTION), + s = {}; + r.font = n.getAttribute("face"), r.size = parseInt(n.getAttribute("size"), 10), r.lineHeight = parseInt(i.getAttribute("lineHeight"), 10) / a, r.chars = {}, e instanceof Ht && (e = [e]); + for (var u = 0; u < o.length; u++) { + var h = o[u].getAttribute("id"), + c = o[u].getAttribute("file"); + s[h] = e instanceof Array ? e[u] : e[c] + } + for (var l = t.getElementsByTagName("char"), f = 0; f < l.length; f++) { + var d = l[f], + p = parseInt(d.getAttribute("id"), 10), + m = d.getAttribute("page") || 0, + v = new ot(parseInt(d.getAttribute("x"), 10) / a + s[m].frame.x / a, parseInt(d.getAttribute("y"), 10) / a + s[m].frame.y / a, parseInt(d.getAttribute("width"), 10) / a, parseInt(d.getAttribute("height"), 10) / a); + r.chars[p] = { + xOffset: parseInt(d.getAttribute("xoffset"), 10) / a, + yOffset: parseInt(d.getAttribute("yoffset"), 10) / a, + xAdvance: parseInt(d.getAttribute("xadvance"), 10) / a, + kerning: {}, + texture: new Ht(s[m].baseTexture, v), + page: m + } + } + for (var g = t.getElementsByTagName("kerning"), y = 0; y < g.length; y++) { + var _ = g[y], + b = parseInt(_.getAttribute("first"), 10) / a, + x = parseInt(_.getAttribute("second"), 10) / a, + w = parseInt(_.getAttribute("amount"), 10) / a; + r.chars[x] && (r.chars[x].kerning[b] = w) + } + return BitmapText.fonts[r.font] = r + }, Object.defineProperties(BitmapText.prototype, t), BitmapText + }(pt); + In.fonts = {}; + var On = function() {}; + On.parse = function(t, e) { + t.bitmapFont = In.registerFont(t.data, e) + }, On.add = function() { + gn.setExtensionXhrType("fnt", gn.XHR_RESPONSE_TYPE.DOCUMENT) + }, On.dirname = function(t) { + var e = t.replace(/\/$/, "").replace(/\/[^\/]*$/, ""); + return e === t ? "." : "" === e ? "/" : e + }, On.use = function(e, r) { + if (e.data && e.type === gn.TYPE.XML) + if (0 !== e.data.getElementsByTagName("page").length && 0 !== e.data.getElementsByTagName("info").length && null !== e.data.getElementsByTagName("info")[0].getAttribute("face")) { + var t = e.isDataUrl ? "" : On.dirname(e.url); + e.isDataUrl && ("." === t && (t = ""), this.baseUrl && t && "/" === this.baseUrl.charAt(this.baseUrl.length - 1) && (t += "/")), (t = t.replace(this.baseUrl, "")) && "/" !== t.charAt(t.length - 1) && (t += "/"); + for (var n = e.data.getElementsByTagName("page"), i = {}, o = function(t) { + i[t.metadata.pageFile] = t.texture, Object.keys(i).length === n.length && (On.parse(e, i), r()) + }, a = 0; a < n.length; ++a) { + var s = n[a].getAttribute("file"), + u = t + s, + h = !1; + for (var c in this.resources) { + var l = this.resources[c]; + if (l.url === u) { + l.metadata.pageFile = s, l.texture ? o(l) : l.onAfterMiddleware.add(o), h = !0; + break + } + } + if (!h) { + var f = { + crossOrigin: e.crossOrigin, + loadType: gn.LOAD_TYPE.IMAGE, + metadata: Object.assign({ + pageFile: s + }, e.metadata.imageMetadata), + parentResource: e + }; + this.add(u, f, o) + } + } + } else r(); + else r() + }; + var Cn = function(e) { + function AlphaFilter(t) { + void 0 === t && (t = 1), e.call(this, tr, "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float uAlpha;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\n}\n", { + uAlpha: 1 + }), this.alpha = t + } + e && (AlphaFilter.__proto__ = e), (AlphaFilter.prototype = Object.create(e && e.prototype)).constructor = AlphaFilter; + var t = { + alpha: { + configurable: !0 + } + }; + return t.alpha.get = function() { + return this.uniforms.uAlpha + }, t.alpha.set = function(t) { + this.uniforms.uAlpha = t + }, Object.defineProperties(AlphaFilter.prototype, t), AlphaFilter + }(De), + Rn = "\n attribute vec2 aVertexPosition;\n\n uniform mat3 projectionMatrix;\n\n uniform float strength;\n\n varying vec2 vBlurTexCoords[%size%];\n\n uniform vec4 inputSize;\n uniform vec4 outputFrame;\n \n vec4 filterVertexPosition( void )\n {\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n \n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n }\n \n vec2 filterTextureCoord( void )\n {\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n }\n\n void main(void)\n {\n gl_Position = filterVertexPosition();\n\n vec2 textureCoord = filterTextureCoord();\n %blur%\n }"; + var Dn = { + 5: [.153388, .221461, .250301], + 7: [.071303, .131514, .189879, .214607], + 9: [.028532, .067234, .124009, .179044, .20236], + 11: [.0093, .028002, .065984, .121703, .175713, .198596], + 13: [.002406, .009255, .027867, .065666, .121117, .174868, .197641], + 15: [489e-6, .002403, .009246, .02784, .065602, .120999, .174697, .197448] + }, + Fn = ["varying vec2 vBlurTexCoords[%size%];", "uniform sampler2D uSampler;", "void main(void)", "{", " gl_FragColor = vec4(0.0);", " %blur%", "}"].join("\n"); + var kn = function(s) { + function BlurFilterPass(t, e, r, n, i) { + var o = function(t, e) { + var r, n = Math.ceil(t / 2), + i = Rn, + o = ""; + r = e ? "vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);" : "vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);"; + for (var a = 0; a < t; a++) { + var s = r.replace("%index%", a); + o += s = s.replace("%sampleIndex%", a - (n - 1) + ".0"), o += "\n" + } + return i = (i = i.replace("%blur%", o)).replace("%size%", t) + }(i = i || 5, t), + a = function(t) { + for (var e, r = Dn[t], n = r.length, i = Fn, o = "", a = 0; a < t; a++) { + var s = "gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;".replace("%index%", a); + n <= (e = a) && (e = t - a - 1), o += s = s.replace("%value%", r[e]), o += "\n" + } + return i = (i = i.replace("%blur%", o)).replace("%size%", t) + }(i); + s.call(this, o, a), this.horizontal = t, this.resolution = n || M.RESOLUTION, this._quality = 0, this.quality = r || 4, this.blur = e || 8 + } + s && (BlurFilterPass.__proto__ = s); + var t = { + blur: { + configurable: !0 + }, + quality: { + configurable: !0 + } + }; + return ((BlurFilterPass.prototype = Object.create(s && s.prototype)).constructor = BlurFilterPass).prototype.apply = function(t, e, r, n) { + if (r ? this.horizontal ? this.uniforms.strength = 1 / r.width * (r.width / e.width) : this.uniforms.strength = 1 / r.height * (r.height / e.height) : this.horizontal ? this.uniforms.strength = 1 / t.renderer.width * (t.renderer.width / e.width) : this.uniforms.strength = 1 / t.renderer.height * (t.renderer.height / e.height), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) t.applyFilter(this, e, r, n); + else { + var i = t.getFilterTexture(), + o = t.renderer, + a = e, + s = i; + this.state.blend = !1, t.applyFilter(this, a, s, !1); + for (var u = 1; u < this.passes - 1; u++) { + o.renderTexture.bind(a, a.filterFrame); + var h = this.uniforms.uSampler = s; + s = a, a = h, o.shader.bind(this), o.geometry.draw(5) + } + this.state.blend = !0, t.applyFilter(this, s, r, n), t.returnFilterTexture(i) + } + }, t.blur.get = function() { + return this.strength + }, t.blur.set = function(t) { + this.padding = 1 + 2 * Math.abs(t), this.strength = t + }, t.quality.get = function() { + return this._quality + }, t.quality.set = function(t) { + this._quality = t, this.passes = t + }, Object.defineProperties(BlurFilterPass.prototype, t), BlurFilterPass + }(De), + Ln = function(i) { + function BlurFilter(t, e, r, n) { + i.call(this), this.blurXFilter = new kn(!0, t, e, r, n), this.blurYFilter = new kn(!1, t, e, r, n), this.resolution = r || M.RESOLUTION, this.quality = e || 4, this.blur = t || 8, this.repeatEdgePixels = !1 + } + i && (BlurFilter.__proto__ = i); + var t = { + blur: { + configurable: !0 + }, + quality: { + configurable: !0 + }, + blurX: { + configurable: !0 + }, + blurY: { + configurable: !0 + }, + blendMode: { + configurable: !0 + }, + repeatEdgePixels: { + configurable: !0 + } + }; + return ((BlurFilter.prototype = Object.create(i && i.prototype)).constructor = BlurFilter).prototype.apply = function(t, e, r, n) { + var i = Math.abs(this.blurXFilter.strength), + o = Math.abs(this.blurYFilter.strength); + if (i && o) { + var a = t.getFilterTexture(); + this.blurXFilter.apply(t, e, a, !0), this.blurYFilter.apply(t, a, r, n), t.returnFilterTexture(a) + } else o ? this.blurYFilter.apply(t, e, r, n) : this.blurXFilter.apply(t, e, r, n) + }, BlurFilter.prototype.updatePadding = function() { + this._repeatEdgePixels ? this.padding = 0 : this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength)) + }, t.blur.get = function() { + return this.blurXFilter.blur + }, t.blur.set = function(t) { + this.blurXFilter.blur = this.blurYFilter.blur = t, this.updatePadding() + }, t.quality.get = function() { + return this.blurXFilter.quality + }, t.quality.set = function(t) { + this.blurXFilter.quality = this.blurYFilter.quality = t + }, t.blurX.get = function() { + return this.blurXFilter.blur + }, t.blurX.set = function(t) { + this.blurXFilter.blur = t, this.updatePadding() + }, t.blurY.get = function() { + return this.blurYFilter.blur + }, t.blurY.set = function(t) { + this.blurYFilter.blur = t, this.updatePadding() + }, t.blendMode.get = function() { + return this.blurYFilter.blendMode + }, t.blendMode.set = function(t) { + this.blurYFilter.blendMode = t + }, t.repeatEdgePixels.get = function() { + return this._repeatEdgePixels + }, t.repeatEdgePixels.set = function(t) { + this._repeatEdgePixels = t, this.updatePadding() + }, Object.defineProperties(BlurFilter.prototype, t), BlurFilter + }(De), + Nn = function(e) { + function ColorMatrixFilter() { + var t = { + m: new Float32Array([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]), + uAlpha: 1 + }; + e.call(this, er, "varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n vec4 c = texture2D(uSampler, vTextureCoord);\n\n if (uAlpha == 0.0) {\n gl_FragColor = c;\n return;\n }\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (c.a > 0.0) {\n c.rgb /= c.a;\n }\n\n vec4 result;\n\n result.r = (m[0] * c.r);\n result.r += (m[1] * c.g);\n result.r += (m[2] * c.b);\n result.r += (m[3] * c.a);\n result.r += m[4];\n\n result.g = (m[5] * c.r);\n result.g += (m[6] * c.g);\n result.g += (m[7] * c.b);\n result.g += (m[8] * c.a);\n result.g += m[9];\n\n result.b = (m[10] * c.r);\n result.b += (m[11] * c.g);\n result.b += (m[12] * c.b);\n result.b += (m[13] * c.a);\n result.b += m[14];\n\n result.a = (m[15] * c.r);\n result.a += (m[16] * c.g);\n result.a += (m[17] * c.b);\n result.a += (m[18] * c.a);\n result.a += m[19];\n\n vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n // Premultiply alpha again.\n rgb *= result.a;\n\n gl_FragColor = vec4(rgb, result.a);\n}\n", t), this.alpha = 1 + } + e && (ColorMatrixFilter.__proto__ = e); + var t = { + matrix: { + configurable: !0 + }, + alpha: { + configurable: !0 + } + }; + return ((ColorMatrixFilter.prototype = Object.create(e && e.prototype)).constructor = ColorMatrixFilter).prototype._loadMatrix = function(t, e) { + void 0 === e && (e = !1); + var r = t; + e && (this._multiply(r, this.uniforms.m, t), r = this._colorMatrix(r)), this.uniforms.m = r + }, ColorMatrixFilter.prototype._multiply = function(t, e, r) { + return t[0] = e[0] * r[0] + e[1] * r[5] + e[2] * r[10] + e[3] * r[15], t[1] = e[0] * r[1] + e[1] * r[6] + e[2] * r[11] + e[3] * r[16], t[2] = e[0] * r[2] + e[1] * r[7] + e[2] * r[12] + e[3] * r[17], t[3] = e[0] * r[3] + e[1] * r[8] + e[2] * r[13] + e[3] * r[18], t[4] = e[0] * r[4] + e[1] * r[9] + e[2] * r[14] + e[3] * r[19] + e[4], t[5] = e[5] * r[0] + e[6] * r[5] + e[7] * r[10] + e[8] * r[15], t[6] = e[5] * r[1] + e[6] * r[6] + e[7] * r[11] + e[8] * r[16], t[7] = e[5] * r[2] + e[6] * r[7] + e[7] * r[12] + e[8] * r[17], t[8] = e[5] * r[3] + e[6] * r[8] + e[7] * r[13] + e[8] * r[18], t[9] = e[5] * r[4] + e[6] * r[9] + e[7] * r[14] + e[8] * r[19] + e[9], t[10] = e[10] * r[0] + e[11] * r[5] + e[12] * r[10] + e[13] * r[15], t[11] = e[10] * r[1] + e[11] * r[6] + e[12] * r[11] + e[13] * r[16], t[12] = e[10] * r[2] + e[11] * r[7] + e[12] * r[12] + e[13] * r[17], t[13] = e[10] * r[3] + e[11] * r[8] + e[12] * r[13] + e[13] * r[18], t[14] = e[10] * r[4] + e[11] * r[9] + e[12] * r[14] + e[13] * r[19] + e[14], t[15] = e[15] * r[0] + e[16] * r[5] + e[17] * r[10] + e[18] * r[15], t[16] = e[15] * r[1] + e[16] * r[6] + e[17] * r[11] + e[18] * r[16], t[17] = e[15] * r[2] + e[16] * r[7] + e[17] * r[12] + e[18] * r[17], t[18] = e[15] * r[3] + e[16] * r[8] + e[17] * r[13] + e[18] * r[18], t[19] = e[15] * r[4] + e[16] * r[9] + e[17] * r[14] + e[18] * r[19] + e[19], t + }, ColorMatrixFilter.prototype._colorMatrix = function(t) { + var e = new Float32Array(t); + return e[4] /= 255, e[9] /= 255, e[14] /= 255, e[19] /= 255, e + }, ColorMatrixFilter.prototype.brightness = function(t, e) { + var r = [t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 1, 0]; + this._loadMatrix(r, e) + }, ColorMatrixFilter.prototype.greyscale = function(t, e) { + var r = [t, t, t, 0, 0, t, t, t, 0, 0, t, t, t, 0, 0, 0, 0, 0, 1, 0]; + this._loadMatrix(r, e) + }, ColorMatrixFilter.prototype.blackAndWhite = function(t) { + this._loadMatrix([.3, .6, .1, 0, 0, .3, .6, .1, 0, 0, .3, .6, .1, 0, 0, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.hue = function(t, e) { + t = (t || 0) / 180 * Math.PI; + var r = Math.cos(t), + n = Math.sin(t), + i = (0, Math.sqrt)(1 / 3), + o = [r + 1 / 3 * (1 - r), 1 / 3 * (1 - r) - i * n, 1 / 3 * (1 - r) + i * n, 0, 0, 1 / 3 * (1 - r) + i * n, r + 1 / 3 * (1 - r), 1 / 3 * (1 - r) - i * n, 0, 0, 1 / 3 * (1 - r) - i * n, 1 / 3 * (1 - r) + i * n, r + 1 / 3 * (1 - r), 0, 0, 0, 0, 0, 1, 0]; + this._loadMatrix(o, e) + }, ColorMatrixFilter.prototype.contrast = function(t, e) { + var r = (t || 0) + 1, + n = -.5 * (r - 1), + i = [r, 0, 0, 0, n, 0, r, 0, 0, n, 0, 0, r, 0, n, 0, 0, 0, 1, 0]; + this._loadMatrix(i, e) + }, ColorMatrixFilter.prototype.saturate = function(t, e) { + void 0 === t && (t = 0); + var r = 2 * t / 3 + 1, + n = -.5 * (r - 1), + i = [r, n, n, 0, 0, n, r, n, 0, 0, n, n, r, 0, 0, 0, 0, 0, 1, 0]; + this._loadMatrix(i, e) + }, ColorMatrixFilter.prototype.desaturate = function() { + this.saturate(-1) + }, ColorMatrixFilter.prototype.negative = function(t) { + this._loadMatrix([-1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.sepia = function(t) { + this._loadMatrix([.393, .7689999, .18899999, 0, 0, .349, .6859999, .16799999, 0, 0, .272, .5339999, .13099999, 0, 0, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.technicolor = function(t) { + this._loadMatrix([1.9125277891456083, -.8545344976951645, -.09155508482755585, 0, 11.793603434377337, -.3087833385928097, 1.7658908555458428, -.10601743074722245, 0, -70.35205161461398, -.231103377548616, -.7501899197440212, 1.847597816108189, 0, 30.950940869491138, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.polaroid = function(t) { + this._loadMatrix([1.438, -.062, -.062, 0, 0, -.122, 1.378, -.122, 0, 0, -.016, -.016, 1.483, 0, 0, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.toBGR = function(t) { + this._loadMatrix([0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.kodachrome = function(t) { + this._loadMatrix([1.1285582396593525, -.3967382283601348, -.03992559172921793, 0, 63.72958762196502, -.16404339962244616, 1.0835251566291304, -.05498805115633132, 0, 24.732407896706203, -.16786010706155763, -.5603416277695248, 1.6014850761964943, 0, 35.62982807460946, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.browni = function(t) { + this._loadMatrix([.5997023498159715, .34553243048391263, -.2708298674538042, 0, 47.43192855600873, -.037703249837783157, .8609577587992641, .15059552388459913, 0, -36.96841498319127, .24113635128153335, -.07441037908422492, .44972182064877153, 0, -7.562075277591283, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.vintage = function(t) { + this._loadMatrix([.6279345635605994, .3202183420819367, -.03965408211312453, 0, 9.651285835294123, .02578397704808868, .6441188644374771, .03259127616149294, 0, 7.462829176470591, .0466055556782719, -.0851232987247891, .5241648018700465, 0, 5.159190588235296, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.colorTone = function(t, e, r, n, i) { + var o = ((r = r || 16770432) >> 16 & 255) / 255, + a = (r >> 8 & 255) / 255, + s = (255 & r) / 255, + u = ((n = n || 3375104) >> 16 & 255) / 255, + h = (n >> 8 & 255) / 255, + c = (255 & n) / 255, + l = [.3, .59, .11, 0, 0, o, a, s, t = t || .2, 0, u, h, c, e = e || .15, 0, o - u, a - h, s - c, 0, 0]; + this._loadMatrix(l, i) + }, ColorMatrixFilter.prototype.night = function(t, e) { + var r = [-2 * (t = t || .1), -t, 0, 0, 0, -t, 0, t, 0, 0, 0, t, 2 * t, 0, 0, 0, 0, 0, 1, 0]; + this._loadMatrix(r, e) + }, ColorMatrixFilter.prototype.predator = function(t, e) { + var r = [11.224130630493164 * t, -4.794486999511719 * t, -2.8746118545532227 * t, 0 * t, .40342438220977783 * t, -3.6330697536468506 * t, 9.193157196044922 * t, -2.951810836791992 * t, 0 * t, -1.316135048866272 * t, -3.2184197902679443 * t, -4.2375030517578125 * t, 7.476448059082031 * t, 0 * t, .8044459223747253 * t, 0, 0, 0, 1, 0]; + this._loadMatrix(r, e) + }, ColorMatrixFilter.prototype.lsd = function(t) { + this._loadMatrix([2, -.4, .5, 0, 0, -.5, 2, -.4, 0, 0, -.4, -.5, 3, 0, 0, 0, 0, 0, 1, 0], t) + }, ColorMatrixFilter.prototype.reset = function() { + this._loadMatrix([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], !1) + }, t.matrix.get = function() { + return this.uniforms.m + }, t.matrix.set = function(t) { + this.uniforms.m = t + }, t.alpha.get = function() { + return this.uniforms.uAlpha + }, t.alpha.set = function(t) { + this.uniforms.uAlpha = t + }, Object.defineProperties(ColorMatrixFilter.prototype, t), ColorMatrixFilter + }(De); + Nn.prototype.grayscale = Nn.prototype.greyscale; + var Bn = function(n) { + function DisplacementFilter(t, e) { + var r = new Y; + t.renderable = !1, n.call(this, "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n\tgl_Position = filterVertexPosition();\n\tvTextureCoord = filterTextureCoord();\n\tvFilterCoord = ( filterMatrix * vec3( vTextureCoord, 1.0) ).xy;\n}\n", "varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\nuniform mat2 rotation;\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform highp vec4 inputSize;\nuniform vec4 inputClamp;\n\nvoid main(void)\n{\n vec4 map = texture2D(mapSampler, vFilterCoord);\n\n map -= 0.5;\n map.xy = scale * inputSize.zw * (rotation * map.xy);\n\n gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), inputClamp.xy, inputClamp.zw));\n}\n", { + mapSampler: t._texture, + filterMatrix: r, + scale: { + x: 1, + y: 1 + }, + rotation: new Float32Array([1, 0, 0, 1]) + }), this.maskSprite = t, this.maskMatrix = r, null == e && (e = 20), this.scale = new q(e, e) + } + n && (DisplacementFilter.__proto__ = n); + var t = { + map: { + configurable: !0 + } + }; + return ((DisplacementFilter.prototype = Object.create(n && n.prototype)).constructor = DisplacementFilter).prototype.apply = function(t, e, r) { + this.uniforms.filterMatrix = t.calculateSpriteMatrix(this.maskMatrix, this.maskSprite), this.uniforms.scale.x = this.scale.x, this.uniforms.scale.y = this.scale.y; + var n = this.maskSprite.transform.worldTransform, + i = Math.sqrt(n.a * n.a + n.b * n.b), + o = Math.sqrt(n.c * n.c + n.d * n.d); + 0 !== i && 0 !== o && (this.uniforms.rotation[0] = n.a / i, this.uniforms.rotation[1] = n.b / i, this.uniforms.rotation[2] = n.c / o, this.uniforms.rotation[3] = n.d / o), t.applyFilter(this, e, r) + }, t.map.get = function() { + return this.uniforms.mapSampler + }, t.map.set = function(t) { + this.uniforms.mapSampler = t + }, Object.defineProperties(DisplacementFilter.prototype, t), DisplacementFilter + }(De), + Un = function(t) { + function FXAAFilter() { + t.call(this, "\nattribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vFragCoord;\n\nuniform vec4 inputPixel;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvoid texcoords(vec2 fragCoord, vec2 inverseVP,\n out vec2 v_rgbNW, out vec2 v_rgbNE,\n out vec2 v_rgbSW, out vec2 v_rgbSE,\n out vec2 v_rgbM) {\n v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void) {\n\n gl_Position = filterVertexPosition();\n\n vFragCoord = aVertexPosition * outputFrame.zw;\n\n texcoords(vFragCoord, inputPixel.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}\n", 'varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vFragCoord;\nuniform sampler2D uSampler;\nuniform highp vec4 inputPixel;\n\n\n/**\n Basic FXAA implementation based on the code on geeks3d.com with the\n modification that the texture2DLod stuff was removed since it\'s\n unsupported by WebGL.\n\n --\n\n From:\n https://github.com/mitsuhiko/webgl-meincraft\n\n Copyright (c) 2011 by Armin Ronacher.\n\n Some rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n\n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef FXAA_REDUCE_MIN\n#define FXAA_REDUCE_MIN (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n#define FXAA_REDUCE_MUL (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n#define FXAA_SPAN_MAX 8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 inverseVP,\n vec2 v_rgbNW, vec2 v_rgbNE,\n vec2 v_rgbSW, vec2 v_rgbSE,\n vec2 v_rgbM) {\n vec4 color;\n vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n vec4 texColor = texture2D(tex, v_rgbM);\n vec3 rgbM = texColor.xyz;\n vec3 luma = vec3(0.299, 0.587, 0.114);\n float lumaNW = dot(rgbNW, luma);\n float lumaNE = dot(rgbNE, luma);\n float lumaSW = dot(rgbSW, luma);\n float lumaSE = dot(rgbSE, luma);\n float lumaM = dot(rgbM, luma);\n float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n\n mediump vec2 dir;\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n\n float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n\n float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n dir * rcpDirMin)) * inverseVP;\n\n vec3 rgbA = 0.5 * (\n texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n vec3 rgbB = rgbA * 0.5 + 0.25 * (\n texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n\n float lumaB = dot(rgbB, luma);\n if ((lumaB < lumaMin) || (lumaB > lumaMax))\n color = vec4(rgbA, texColor.a);\n else\n color = vec4(rgbB, texColor.a);\n return color;\n}\n\nvoid main() {\n\n vec4 color;\n\n color = fxaa(uSampler, vFragCoord, inputPixel.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n gl_FragColor = color;\n}\n') + } + return t && (FXAAFilter.__proto__ = t), (FXAAFilter.prototype = Object.create(t && t.prototype)).constructor = FXAAFilter + }(De), + Gn = function(r) { + function NoiseFilter(t, e) { + void 0 === t && (t = .5), void 0 === e && (e = Math.random()), r.call(this, er, "precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n float randomValue = rand(gl_FragCoord.xy * uSeed);\n float diff = (randomValue - 0.5) * uNoise;\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n gl_FragColor = color;\n}\n", { + uNoise: 0, + uSeed: 0 + }), this.noise = t, this.seed = e + } + r && (NoiseFilter.__proto__ = r), (NoiseFilter.prototype = Object.create(r && r.prototype)).constructor = NoiseFilter; + var t = { + noise: { + configurable: !0 + }, + seed: { + configurable: !0 + } + }; + return t.noise.get = function() { + return this.uniforms.uNoise + }, t.noise.set = function(t) { + this.uniforms.uNoise = t + }, t.seed.get = function() { + return this.uniforms.uSeed + }, t.seed.set = function(t) { + this.uniforms.uSeed = t + }, Object.defineProperties(NoiseFilter.prototype, t), NoiseFilter + }(De), + jn = new Y; + dt.prototype._cacheAsBitmap = !1, dt.prototype._cacheData = !1; + var zn = function() { + this.textureCacheId = null, this.originalRender = null, this.originalRenderCanvas = null, this.originalCalculateBounds = null, this.originalGetLocalBounds = null, this.originalUpdateTransform = null, this.originalHitTest = null, this.originalDestroy = null, this.originalMask = null, this.originalFilterArea = null, this.sprite = null + }; + Object.defineProperties(dt.prototype, { + cacheAsBitmap: { + get: function() { + return this._cacheAsBitmap + }, + set: function(t) { + var e; + this._cacheAsBitmap !== t && ((this._cacheAsBitmap = t) ? (this._cacheData || (this._cacheData = new zn), (e = this._cacheData).originalRender = this.render, e.originalRenderCanvas = this.renderCanvas, e.originalUpdateTransform = this.updateTransform, e.originalCalculateBounds = this.calculateBounds, e.originalGetLocalBounds = this.getLocalBounds, e.originalDestroy = this.destroy, e.originalContainsPoint = this.containsPoint, e.originalMask = this._mask, e.originalFilterArea = this.filterArea, this.render = this._renderCached, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : ((e = this._cacheData).sprite && this._destroyCachedDisplayObject(), this.render = e.originalRender, this.renderCanvas = e.originalRenderCanvas, this.calculateBounds = e.originalCalculateBounds, this.getLocalBounds = e.originalGetLocalBounds, this.destroy = e.originalDestroy, this.updateTransform = e.originalUpdateTransform, this.containsPoint = e.originalContainsPoint, this._mask = e.originalMask, this.filterArea = e.originalFilterArea)) + } + } + }), dt.prototype._renderCached = function(t) { + !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(t), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._render(t)) + }, dt.prototype._initCachedDisplayObject = function(t) { + if (!this._cacheData || !this._cacheData.sprite) { + var e = this.alpha; + this.alpha = 1, t.batch.flush(); + var r = this.getLocalBounds().clone(); + if (this.filters) { + var n = this.filters[0].padding; + r.pad(n) + } + r.ceil(M.RESOLUTION); + var i = t._activeRenderTarget, + o = Wt.create(r.width, r.height), + a = "cacheAsBitmap_" + uid(); + this._cacheData.textureCacheId = a, Rt.addToCache(o.baseTexture, a), Ht.addToCache(o, a); + var s = jn; + s.tx = -r.x, s.ty = -r.y, this.transform.worldTransform.identity(), this.render = this._cacheData.originalRender, t.render(this, o, !0, s, !0), t.renderTexture.bind(i), this.render = this._renderCached, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null; + var u = new Xr(o); + u.transform.worldTransform = this.transform.worldTransform, u.anchor.x = -r.x / r.width, u.anchor.y = -r.y / r.height, u.alpha = e, u._bounds = this._bounds, this._cacheData.sprite = u, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = u.containsPoint.bind(u) + } + }, dt.prototype._renderCachedCanvas = function(t) { + !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(t), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderCanvas(t)) + }, dt.prototype._initCachedDisplayObjectCanvas = function(t) { + if (!this._cacheData || !this._cacheData.sprite) { + var e = this.getLocalBounds(), + r = this.alpha; + this.alpha = 1; + var n = t.context; + e.ceil(M.RESOLUTION); + var i = Wt.create(e.width, e.height), + o = "cacheAsBitmap_" + uid(); + this._cacheData.textureCacheId = o, Rt.addToCache(i.baseTexture, o), Ht.addToCache(i, o); + var a = jn; + this.transform.localTransform.copyTo(a), a.invert(), a.tx -= e.x, a.ty -= e.y, this.renderCanvas = this._cacheData.originalRenderCanvas, t.render(this, i, !0, a, !1), t.context = n, this.renderCanvas = this._renderCachedCanvas, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null; + var s = new Xr(i); + s.transform.worldTransform = this.transform.worldTransform, s.anchor.x = -e.x / e.width, s.anchor.y = -e.y / e.height, s.alpha = r, s._bounds = this._bounds, this._cacheData.sprite = s, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = s.containsPoint.bind(s) + } + }, dt.prototype._calculateCachedBounds = function() { + this._bounds.clear(), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite._calculateBounds(), this._lastBoundsID = this._boundsID + }, dt.prototype._getCachedLocalBounds = function() { + return this._cacheData.sprite.getLocalBounds() + }, dt.prototype._destroyCachedDisplayObject = function() { + this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, Rt.removeFromCache(this._cacheData.textureCacheId), Ht.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null + }, dt.prototype._cacheAsBitmapDestroy = function(t) { + this.cacheAsBitmap = !1, this.destroy(t) + }, dt.prototype.name = null, pt.prototype.getChildByName = function(t) { + for (var e = 0; e < this.children.length; e++) + if (this.children[e].name === t) return this.children[e]; + return null + }, dt.prototype.getGlobalPosition = function(t, e) { + return void 0 === t && (t = new q), void 0 === e && (e = !1), this.parent ? this.parent.toGlobal(this.position, t, e) : (t.x = this.position.x, t.y = this.position.y), t + }; + var Xn = function(t, e) { + this.uvBuffer = t, this.uvMatrix = e, this.data = null, this._bufferUpdateId = -1, this._textureUpdateId = -1, this._updateID = 0 + }; + Xn.prototype.update = function(t) { + if (t || this._bufferUpdateId !== this.uvBuffer._updateID || this._textureUpdateId !== this.uvMatrix._updateID) { + this._bufferUpdateId = this.uvBuffer._updateID, this._textureUpdateId = this.uvMatrix._updateID; + var e = this.uvBuffer.data; + this.data && this.data.length === e.length || (this.data = new Float32Array(e.length)), this.uvMatrix.multiplyUvs(e, this.data), this._updateID++ + } + }; + var Vn = new q, + qn = new ct, + Hn = function(i) { + function Mesh(t, e, r, n) { + void 0 === n && (n = x.TRIANGLES), i.call(this), (this.geometry = t).refCount++, this.shader = e, this.state = r || Ce.for2d(), this.drawMode = n, this.start = 0, this.size = 0, this.uvs = null, this.indices = null, this.vertexData = new Float32Array(1), this.vertexDirty = 0, this._transformID = -1, this.tint = 16777215, this.blendMode = y.NORMAL, this._roundPixels = M.ROUND_PIXELS, this.batchUvs = null + } + i && (Mesh.__proto__ = i), (Mesh.prototype = Object.create(i && i.prototype)).constructor = Mesh; + var t = { + uvBuffer: { + configurable: !0 + }, + verticesBuffer: { + configurable: !0 + }, + material: { + configurable: !0 + }, + blendMode: { + configurable: !0 + }, + roundPixels: { + configurable: !0 + }, + tint: { + configurable: !0 + }, + texture: { + configurable: !0 + } + }; + return t.uvBuffer.get = function() { + return this.geometry.buffers[1].data + }, t.verticesBuffer.get = function() { + return this.geometry.buffers[0].data + }, t.material.set = function(t) { + this.shader = t + }, t.material.get = function() { + return this.shader + }, t.blendMode.set = function(t) { + this.state.blendMode = t + }, t.blendMode.get = function() { + return this.state.blendMode + }, t.roundPixels.set = function(t) { + this._roundPixels !== t && (this._transformID = -1), this._roundPixels = t + }, t.roundPixels.get = function() { + return this._roundPixels + }, t.tint.get = function() { + return this.shader.tint + }, t.tint.set = function(t) { + this.shader.tint = t + }, t.texture.get = function() { + return this.shader.texture + }, t.texture.set = function(t) { + this.shader.texture = t + }, Mesh.prototype._render = function(t) { + var e = this.geometry.buffers[0].data; + this.shader.batchable && this.drawMode === x.TRIANGLES && e.length < 2 * Mesh.BATCHABLE_SIZE ? this._renderToBatch(t) : this._renderDefault(t) + }, Mesh.prototype._renderDefault = function(t) { + var e = this.shader; + e.alpha = this.worldAlpha, e.update && e.update(), t.batch.flush(), e.program.uniformData.translationMatrix && (e.uniforms.translationMatrix = this.transform.worldTransform.toArray(!0)), t.shader.bind(e), t.state.setState(this.state), t.geometry.bind(this.geometry, e), t.geometry.draw(this.drawMode, this.size, this.start, this.geometry.instanceCount) + }, Mesh.prototype._renderToBatch = function(t) { + var e = this.geometry; + this.shader.uvMatrix && (this.shader.uvMatrix.update(), this.calculateUvs()), this.calculateVertices(), this.indices = e.indexBuffer.data, this._tintRGB = this.shader._tintRGB, this._texture = this.shader.texture; + var r = this.material.pluginName; + t.batch.setObjectRenderer(t.plugins[r]), t.plugins[r].render(this) + }, Mesh.prototype.calculateVertices = function() { + var t = this.geometry, + e = t.buffers[0].data; + if (t.vertexDirtyId !== this.vertexDirty || this._transformID !== this.transform._worldID) { + this._transformID = this.transform._worldID, this.vertexData.length !== e.length && (this.vertexData = new Float32Array(e.length)); + for (var r = this.transform.worldTransform, n = r.a, i = r.b, o = r.c, a = r.d, s = r.tx, u = r.ty, h = this.vertexData, c = 0; c < h.length / 2; c++) { + var l = e[2 * c], + f = e[2 * c + 1]; + h[2 * c] = n * l + o * f + s, h[2 * c + 1] = i * l + a * f + u + } + if (this._roundPixels) + for (var d = 0; d < h.length; d++) h[d] = Math.round(h[d]); + this.vertexDirty = t.vertexDirtyId + } + }, Mesh.prototype.calculateUvs = function() { + var t = this.geometry.buffers[1]; + this.shader.uvMatrix.isSimple ? this.uvs = t.data : (this.batchUvs || (this.batchUvs = new Xn(t, this.shader.uvMatrix)), this.batchUvs.update(), this.uvs = this.batchUvs.data) + }, Mesh.prototype._calculateBounds = function() { + this.calculateVertices(), this._bounds.addVertexData(this.vertexData, 0, this.vertexData.length) + }, Mesh.prototype.containsPoint = function(t) { + if (!this.getBounds().contains(t.x, t.y)) return !1; + this.worldTransform.applyInverse(t, Vn); + for (var e = this.geometry.getAttribute("aVertexPosition").data, r = qn.points, n = this.geometry.getIndex().data, i = n.length, o = 4 === this.drawMode ? 3 : 1, a = 0; a + 2 < i; a += o) { + var s = 2 * n[a], + u = 2 * n[a + 1], + h = 2 * n[a + 2]; + if (r[0] = e[s], r[1] = e[s + 1], r[2] = e[u], r[3] = e[u + 1], r[4] = e[h], r[5] = e[h + 1], qn.contains(Vn.x, Vn.y)) return !0 + } + return !1 + }, Mesh.prototype.destroy = function(t) { + i.prototype.destroy.call(this, t), this.geometry.refCount--, 0 === this.geometry.refCount && this.geometry.dispose(), this.geometry = null, this.shader = null, this.state = null, this.uvs = null, this.indices = null, this.vertexData = null + }, Object.defineProperties(Mesh.prototype, t), Mesh + }(pt); + Hn.BATCHABLE_SIZE = 100; + var Wn = function(n) { + function MeshMaterial(t, e) { + var r = { + uSampler: t, + alpha: 1, + uTextureMatrix: Y.IDENTITY, + uColor: new Float32Array([1, 1, 1, 1]) + }; + (e = Object.assign({ + tint: 16777215, + alpha: 1, + pluginName: "batch" + }, e)).uniforms && Object.assign(r, e.uniforms), n.call(this, e.program || Ae.from("attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTextureMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n"), r), this._colorDirty = !1, this.uvMatrix = new ke(t), this.batchable = void 0 === e.program, this.pluginName = e.pluginName, this.tint = e.tint, this.alpha = e.alpha + } + n && (MeshMaterial.__proto__ = n), (MeshMaterial.prototype = Object.create(n && n.prototype)).constructor = MeshMaterial; + var t = { + texture: { + configurable: !0 + }, + alpha: { + configurable: !0 + }, + tint: { + configurable: !0 + } + }; + return t.texture.get = function() { + return this.uniforms.uSampler + }, t.texture.set = function(t) { + this.uniforms.uSampler !== t && (this.uniforms.uSampler = t, this.uvMatrix.texture = t) + }, t.alpha.set = function(t) { + t !== this._alpha && (this._alpha = t, this._colorDirty = !0) + }, t.alpha.get = function() { + return this._alpha + }, t.tint.set = function(t) { + t !== this._tint && (this._tint = t, this._tintRGB = (t >> 16) + (65280 & t) + ((255 & t) << 16), this._colorDirty = !0) + }, t.tint.get = function() { + return this._tint + }, MeshMaterial.prototype.update = function() { + if (this._colorDirty) { + this._colorDirty = !1; + var t = this.texture.baseTexture; + premultiplyTintToRgba(this._tint, this._alpha, this.uniforms.uColor, t.premultiplyAlpha) + } + this.uvMatrix.update() && (this.uniforms.uTextureMatrix = this.uvMatrix.mapCoord) + }, Object.defineProperties(MeshMaterial.prototype, t), MeshMaterial + }(Ie), + Yn = function(a) { + function MeshGeometry(t, e, r) { + a.call(this); + var n = new Zt(t), + i = new Zt(e, !0), + o = new Zt(r, !0, !0); + this.addAttribute("aVertexPosition", n, 2, !1, w.FLOAT).addAttribute("aTextureCoord", i, 2, !1, w.FLOAT).addIndex(o), this._updateId = -1 + } + a && (MeshGeometry.__proto__ = a), (MeshGeometry.prototype = Object.create(a && a.prototype)).constructor = MeshGeometry; + var t = { + vertexDirtyId: { + configurable: !0 + } + }; + return t.vertexDirtyId.get = function() { + return this.buffers[0]._updateID + }, Object.defineProperties(MeshGeometry.prototype, t), MeshGeometry + }(ee), + Kn = function(i) { + function PlaneGeometry(t, e, r, n) { + void 0 === t && (t = 100), void 0 === e && (e = 100), void 0 === r && (r = 10), void 0 === n && (n = 10), i.call(this), this.segWidth = r, this.segHeight = n, this.width = t, this.height = e, this.build() + } + return i && (PlaneGeometry.__proto__ = i), ((PlaneGeometry.prototype = Object.create(i && i.prototype)).constructor = PlaneGeometry).prototype.build = function() { + for (var t = this.segWidth * this.segHeight, e = [], r = [], n = [], i = this.segWidth - 1, o = this.segHeight - 1, a = this.width / i, s = this.height / o, u = 0; u < t; u++) { + var h = u % this.segWidth, + c = u / this.segWidth | 0; + e.push(h * a, c * s), r.push(h / i, c / o) + } + for (var l = i * o, f = 0; f < l; f++) { + var d = f % i, + p = f / i | 0, + m = p * this.segWidth + d, + v = p * this.segWidth + d + 1, + g = (p + 1) * this.segWidth + d, + y = (p + 1) * this.segWidth + d + 1; + n.push(m, v, g, v, y, g) + } + this.buffers[0].data = new Float32Array(e), this.buffers[1].data = new Float32Array(r), this.indexBuffer.data = new Uint16Array(n), this.buffers[0].update(), this.buffers[1].update(), this.indexBuffer.update() + }, PlaneGeometry + }(Yn), + Zn = function(r) { + function RopeGeometry(t, e) { + void 0 === t && (t = 200), r.call(this, new Float32Array(4 * e.length), new Float32Array(4 * e.length), new Uint16Array(6 * (e.length - 1))), this.points = e, this.width = t, this.build() + } + return r && (RopeGeometry.__proto__ = r), ((RopeGeometry.prototype = Object.create(r && r.prototype)).constructor = RopeGeometry).prototype.build = function() { + var t = this.points; + if (t) { + var e = this.getAttribute("aVertexPosition"), + r = this.getAttribute("aTextureCoord"), + n = this.getIndex(); + if (!(t.length < 1)) { + e.data.length / 4 !== t.length && (e.data = new Float32Array(4 * t.length), r.data = new Float32Array(4 * t.length), n.data = new Uint16Array(6 * (t.length - 1))); + var i = r.data, + o = n.data; + i[0] = 0, i[1] = 0, i[2] = 0, i[3] = 1; + for (var a = t.length, s = 0; s < a; s++) { + var u = 4 * s, + h = s / (a - 1); + i[u] = h, i[u + 1] = 0, i[u + 2] = h, i[u + 3] = 1 + } + for (var c = 0, l = 0; l < a - 1; l++) { + var f = 2 * l; + o[c++] = f, o[c++] = f + 1, o[c++] = f + 2, o[c++] = f + 2, o[c++] = f + 1, o[c++] = f + 3 + } + r.update(), n.update(), this.updateVertices() + } + } + }, RopeGeometry.prototype.updateVertices = function() { + var t = this.points; + if (!(t.length < 1)) { + for (var e, r = t[0], n = 0, i = 0, o = this.buffers[0].data, a = t.length, s = 0; s < a; s++) { + var u = t[s], + h = 4 * s; + i = -((e = s < t.length - 1 ? t[s + 1] : u).x - r.x), n = e.y - r.y; + var c = Math.sqrt(n * n + i * i), + l = this.width / 2; + n /= c, i /= c, n *= l, i *= l, o[h] = u.x + n, o[h + 1] = u.y + i, o[h + 2] = u.x - n, o[h + 3] = u.y - i, r = u + } + this.buffers[0].update() + } + }, RopeGeometry.prototype.update = function() { + this.updateVertices() + }, RopeGeometry + }(Yn), + Qn = function(i) { + function SimpleRope(t, e) { + var r = new Zn(t.height, e), + n = new Wn(t); + i.call(this, r, n), this.autoUpdate = !0 + } + return i && (SimpleRope.__proto__ = i), ((SimpleRope.prototype = Object.create(i && i.prototype)).constructor = SimpleRope).prototype._render = function(t) { + (this.autoUpdate || this.geometry.width !== this.shader.texture.height) && (this.geometry.width = this.shader.texture.height, this.geometry.update()), i.prototype._render.call(this, t) + }, SimpleRope + }(Hn), + Jn = function(o) { + function SimplePlane(t, e, r) { + var n = new Kn(t.width, t.height, e, r), + i = new Wn(Ht.WHITE); + o.call(this, n, i), this.texture = t + } + o && (SimplePlane.__proto__ = o); + var t = { + texture: { + configurable: !0 + } + }; + return ((SimplePlane.prototype = Object.create(o && o.prototype)).constructor = SimplePlane).prototype.textureUpdated = function() { + this._textureID = this.shader.texture._updateID, this.geometry.width = this.shader.texture.width, this.geometry.height = this.shader.texture.height, this.geometry.build() + }, t.texture.set = function(t) { + this.shader.texture !== t && (this.shader.texture = t, this._textureID = -1, t.baseTexture.valid ? this.textureUpdated() : t.once("update", this.textureUpdated, this)) + }, t.texture.get = function() { + return this.shader.texture + }, SimplePlane.prototype._render = function(t) { + this._textureID !== this.shader.texture._updateID && this.textureUpdated(), o.prototype._render.call(this, t) + }, Object.defineProperties(SimplePlane.prototype, t), SimplePlane + }(Hn), + $n = function(s) { + function SimpleMesh(t, e, r, n, i) { + void 0 === t && (t = Ht.EMPTY); + var o = new Yn(e, r, n); + o.getAttribute("aVertexPosition").static = !1; + var a = new Wn(t); + s.call(this, o, a, null, i), this.autoUpdate = !0 + } + s && (SimpleMesh.__proto__ = s), (SimpleMesh.prototype = Object.create(s && s.prototype)).constructor = SimpleMesh; + var t = { + vertices: { + configurable: !0 + } + }; + return t.vertices.get = function() { + return this.geometry.getAttribute("aVertexPosition").data + }, t.vertices.set = function(t) { + this.geometry.getAttribute("aVertexPosition").data = t + }, SimpleMesh.prototype._render = function(t) { + this.autoUpdate && this.geometry.getAttribute("aVertexPosition").update(), s.prototype._render.call(this, t) + }, Object.defineProperties(SimpleMesh.prototype, t), SimpleMesh + }(Hn), + ti = function(o) { + function NineSlicePlane(t, e, r, n, i) { + o.call(this, Ht.WHITE, 4, 4), this._origWidth = t.orig.width, this._origHeight = t.orig.height, this._width = this._origWidth, this._height = this._origHeight, this._leftWidth = void 0 !== e ? e : 10, this._rightWidth = void 0 !== n ? n : 10, this._topHeight = void 0 !== r ? r : 10, this._bottomHeight = void 0 !== i ? i : 10, this.texture = t + } + o && (NineSlicePlane.__proto__ = o); + var t = { + vertices: { + configurable: !0 + }, + width: { + configurable: !0 + }, + height: { + configurable: !0 + }, + leftWidth: { + configurable: !0 + }, + rightWidth: { + configurable: !0 + }, + topHeight: { + configurable: !0 + }, + bottomHeight: { + configurable: !0 + } + }; + return ((NineSlicePlane.prototype = Object.create(o && o.prototype)).constructor = NineSlicePlane).prototype.textureUpdated = function() { + this._textureID = this.shader.texture._updateID, this._refresh() + }, t.vertices.get = function() { + return this.geometry.getAttribute("aVertexPosition").data + }, t.vertices.set = function(t) { + this.geometry.getAttribute("aVertexPosition").data = t + }, NineSlicePlane.prototype.updateHorizontalVertices = function() { + var t = this.vertices, + e = this._topHeight + this._bottomHeight, + r = this._height > e ? 1 : this._height / e; + t[9] = t[11] = t[13] = t[15] = this._topHeight * r, t[17] = t[19] = t[21] = t[23] = this._height - this._bottomHeight * r, t[25] = t[27] = t[29] = t[31] = this._height + }, NineSlicePlane.prototype.updateVerticalVertices = function() { + var t = this.vertices, + e = this._leftWidth + this._rightWidth, + r = this._width > e ? 1 : this._width / e; + t[2] = t[10] = t[18] = t[26] = this._leftWidth * r, t[4] = t[12] = t[20] = t[28] = this._width - this._rightWidth * r, t[6] = t[14] = t[22] = t[30] = this._width + }, t.width.get = function() { + return this._width + }, t.width.set = function(t) { + this._width = t, this._refresh() + }, t.height.get = function() { + return this._height + }, t.height.set = function(t) { + this._height = t, this._refresh() + }, t.leftWidth.get = function() { + return this._leftWidth + }, t.leftWidth.set = function(t) { + this._leftWidth = t, this._refresh() + }, t.rightWidth.get = function() { + return this._rightWidth + }, t.rightWidth.set = function(t) { + this._rightWidth = t, this._refresh() + }, t.topHeight.get = function() { + return this._topHeight + }, t.topHeight.set = function(t) { + this._topHeight = t, this._refresh() + }, t.bottomHeight.get = function() { + return this._bottomHeight + }, t.bottomHeight.set = function(t) { + this._bottomHeight = t, this._refresh() + }, NineSlicePlane.prototype._refresh = function() { + var t = this.texture, + e = this.geometry.buffers[1].data; + this._origWidth = t.orig.width, this._origHeight = t.orig.height; + var r = 1 / this._origWidth, + n = 1 / this._origHeight; + e[0] = e[8] = e[16] = e[24] = 0, e[1] = e[3] = e[5] = e[7] = 0, e[6] = e[14] = e[22] = e[30] = 1, e[25] = e[27] = e[29] = e[31] = 1, e[2] = e[10] = e[18] = e[26] = r * this._leftWidth, e[4] = e[12] = e[20] = e[28] = 1 - r * this._rightWidth, e[9] = e[11] = e[13] = e[15] = n * this._topHeight, e[17] = e[19] = e[21] = e[23] = 1 - n * this._bottomHeight, this.updateHorizontalVertices(), this.updateVerticalVertices(), this.geometry.buffers[0].update(), this.geometry.buffers[1].update() + }, Object.defineProperties(NineSlicePlane.prototype, t), NineSlicePlane + }(Jn), + ei = function(r) { + function AnimatedSprite(t, e) { + r.call(this, t[0] instanceof Ht ? t[0] : t[0].texture), this._textures = null, this._durations = null, this.textures = t, this._autoUpdate = !1 !== e, this.animationSpeed = 1, this.loop = !0, this.updateAnchor = !1, this.onComplete = null, this.onFrameChange = null, this.onLoop = null, this._currentTime = 0, this.playing = !1 + } + r && (AnimatedSprite.__proto__ = r); + var t = { + totalFrames: { + configurable: !0 + }, + textures: { + configurable: !0 + }, + currentFrame: { + configurable: !0 + } + }; + return ((AnimatedSprite.prototype = Object.create(r && r.prototype)).constructor = AnimatedSprite).prototype.stop = function() { + this.playing && (this.playing = !1, this._autoUpdate && xt.shared.remove(this.update, this)) + }, AnimatedSprite.prototype.play = function() { + this.playing || (this.playing = !0, this._autoUpdate && xt.shared.add(this.update, this, _t.HIGH)) + }, AnimatedSprite.prototype.gotoAndStop = function(t) { + this.stop(); + var e = this.currentFrame; + this._currentTime = t, e !== this.currentFrame && this.updateTexture() + }, AnimatedSprite.prototype.gotoAndPlay = function(t) { + var e = this.currentFrame; + this._currentTime = t, e !== this.currentFrame && this.updateTexture(), this.play() + }, AnimatedSprite.prototype.update = function(t) { + var e = this.animationSpeed * t, + r = this.currentFrame; + if (null !== this._durations) { + var n = this._currentTime % 1 * this._durations[this.currentFrame]; + for (n += e / 60 * 1e3; n < 0;) this._currentTime--, n += this._durations[this.currentFrame]; + var i = Math.sign(this.animationSpeed * t); + for (this._currentTime = Math.floor(this._currentTime); n >= this._durations[this.currentFrame];) n -= this._durations[this.currentFrame] * i, this._currentTime += i; + this._currentTime += n / this._durations[this.currentFrame] + } else this._currentTime += e; + this._currentTime < 0 && !this.loop ? (this.gotoAndStop(0), this.onComplete && this.onComplete()) : this._currentTime >= this._textures.length && !this.loop ? (this.gotoAndStop(this._textures.length - 1), this.onComplete && this.onComplete()) : r !== this.currentFrame && (this.loop && this.onLoop && (0 < this.animationSpeed && this.currentFrame < r ? this.onLoop() : this.animationSpeed < 0 && this.currentFrame > r && this.onLoop()), this.updateTexture()) + }, AnimatedSprite.prototype.updateTexture = function() { + this._texture = this._textures[this.currentFrame], this._textureID = -1, this._textureTrimmedID = -1, this.cachedTint = 16777215, this.uvs = this._texture._uvs.uvsFloat32, this.updateAnchor && this._anchor.copy(this._texture.defaultAnchor), this.onFrameChange && this.onFrameChange(this.currentFrame) + }, AnimatedSprite.prototype.destroy = function(t) { + this.stop(), r.prototype.destroy.call(this, t), this.onComplete = null, this.onFrameChange = null, this.onLoop = null + }, AnimatedSprite.fromFrames = function(t) { + for (var e = [], r = 0; r < t.length; ++r) e.push(Ht.from(t[r])); + return new AnimatedSprite(e) + }, AnimatedSprite.fromImages = function(t) { + for (var e = [], r = 0; r < t.length; ++r) e.push(Ht.from(t[r])); + return new AnimatedSprite(e) + }, t.totalFrames.get = function() { + return this._textures.length + }, t.textures.get = function() { + return this._textures + }, t.textures.set = function(t) { + if (t[0] instanceof Ht) this._textures = t, this._durations = null; + else { + this._textures = [], this._durations = []; + for (var e = 0; e < t.length; e++) this._textures.push(t[e].texture), this._durations.push(t[e].time) + } + this.gotoAndStop(0), this.updateTexture() + }, t.currentFrame.get = function() { + var t = Math.floor(this._currentTime) % this._textures.length; + return t < 0 && (t += this._textures.length), t + }, Object.defineProperties(AnimatedSprite.prototype, t), AnimatedSprite + }(Xr); + r.d(e, "VERSION", function() { + return ri + }), r.d(e, "filters", function() { + return ni + }), r.d(e, "useDeprecated", function() { + return useDeprecated + }), r.d(e, "accessibility", function() { + return i + }), r.d(e, "extract", function() { + return o + }), r.d(e, "interaction", function() { + return a + }), r.d(e, "prepare", function() { + return s + }), r.d(e, "utils", function() { + return n + }), r.d(e, "Application", function() { + return rn + }), r.d(e, "AbstractRenderer", function() { + return Je + }), r.d(e, "Attribute", function() { + return Yt + }), r.d(e, "BaseRenderTexture", function() { + return Xt + }), r.d(e, "BaseTexture", function() { + return Rt + }), r.d(e, "BatchDrawCall", function() { + return ir + }), r.d(e, "BatchGeometry", function() { + return nr + }), r.d(e, "BatchRenderer", function() { + return cr + }), r.d(e, "Buffer", function() { + return Zt + }), r.d(e, "CubeTexture", function() { + return rr + }), r.d(e, "Filter", function() { + return De + }), r.d(e, "Framebuffer", function() { + return jt + }), r.d(e, "GLProgram", function() { + return Xe + }), r.d(e, "GLTexture", function() { + return Rt + }), r.d(e, "Geometry", function() { + return ee + }), r.d(e, "ObjectRenderer", function() { + return he + }), r.d(e, "Program", function() { + return Ae + }), r.d(e, "Quad", function() { + return re + }), r.d(e, "QuadUv", function() { + return ne + }), r.d(e, "RenderTexture", function() { + return Wt + }), r.d(e, "Renderer", function() { + return $e + }), r.d(e, "Shader", function() { + return Ie + }), r.d(e, "SpriteMaskFilter", function() { + return Ne + }), r.d(e, "State", function() { + return Ce + }), r.d(e, "System", function() { + return Ut + }), r.d(e, "Texture", function() { + return Ht + }), r.d(e, "TextureMatrix", function() { + return ke + }), r.d(e, "TextureUvs", function() { + return Vt + }), r.d(e, "UniformGroup", function() { + return oe + }), r.d(e, "autoDetectRenderer", function() { + return autoDetectRenderer + }), r.d(e, "checkMaxIfStatementsInShader", function() { + return checkMaxIfStatementsInShader + }), r.d(e, "defaultFilterVertex", function() { + return er + }), r.d(e, "defaultVertex", function() { + return tr + }), r.d(e, "generateMultiTextureShader", function() { + return generateMultiTextureShader + }), r.d(e, "resources", function() { + return Bt + }), r.d(e, "systems", function() { + return Ze + }), r.d(e, "AppLoaderPlugin", function() { + return vn + }), r.d(e, "Loader", function() { + return mn + }), r.d(e, "LoaderResource", function() { + return gn + }), r.d(e, "TextureLoader", function() { + return pn + }), r.d(e, "ParticleContainer", function() { + return yn + }), r.d(e, "ParticleRenderer", function() { + return bn + }), r.d(e, "Spritesheet", function() { + return xn + }), r.d(e, "SpritesheetLoader", function() { + return Tn + }), r.d(e, "TilingSprite", function() { + return Mn + }), r.d(e, "TilingSpriteRenderer", function() { + return Pn + }), r.d(e, "BitmapFontLoader", function() { + return On + }), r.d(e, "BitmapText", function() { + return In + }), r.d(e, "Ticker", function() { + return xt + }), r.d(e, "TickerPlugin", function() { + return St + }), r.d(e, "UPDATE_PRIORITY", function() { + return _t + }), r.d(e, "BLEND_MODES", function() { + return y + }), r.d(e, "DRAW_MODES", function() { + return x + }), r.d(e, "ENV", function() { + return v + }), r.d(e, "FORMATS", function() { + return _ + }), r.d(e, "GC_MODES", function() { + return A + }), r.d(e, "MIPMAP_MODES", function() { + return E + }), r.d(e, "PRECISION", function() { + return P + }), r.d(e, "RENDERER_TYPE", function() { + return g + }), r.d(e, "SCALE_MODES", function() { + return T + }), r.d(e, "TARGETS", function() { + return b + }), r.d(e, "TYPES", function() { + return w + }), r.d(e, "WRAP_MODES", function() { + return S + }), r.d(e, "Bounds", function() { + return ft + }), r.d(e, "Container", function() { + return pt + }), r.d(e, "DisplayObject", function() { + return dt + }), r.d(e, "GRAPHICS_CURVES", function() { + return xr + }), r.d(e, "Graphics", function() { + return Gr + }), r.d(e, "GraphicsData", function() { + return Tr + }), r.d(e, "GraphicsGeometry", function() { + return Rr + }), r.d(e, "Circle", function() { + return ut + }), r.d(e, "DEG_TO_RAD", function() { + return H + }), r.d(e, "Ellipse", function() { + return ht + }), r.d(e, "GroupD8", function() { + return rt + }), r.d(e, "Matrix", function() { + return Y + }), r.d(e, "ObservablePoint", function() { + return j + }), r.d(e, "PI_2", function() { + return X + }), r.d(e, "Point", function() { + return q + }), r.d(e, "Polygon", function() { + return ct + }), r.d(e, "RAD_TO_DEG", function() { + return V + }), r.d(e, "Rectangle", function() { + return ot + }), r.d(e, "RoundedRectangle", function() { + return lt + }), r.d(e, "SHAPES", function() { + return W + }), r.d(e, "Transform", function() { + return nt + }), r.d(e, "Mesh", function() { + return Hn + }), r.d(e, "MeshBatchUvs", function() { + return Xn + }), r.d(e, "MeshGeometry", function() { + return Yn + }), r.d(e, "MeshMaterial", function() { + return Wn + }), r.d(e, "NineSlicePlane", function() { + return ti + }), r.d(e, "PlaneGeometry", function() { + return Kn + }), r.d(e, "RopeGeometry", function() { + return Zn + }), r.d(e, "SimpleMesh", function() { + return $n + }), r.d(e, "SimplePlane", function() { + return Jn + }), r.d(e, "SimpleRope", function() { + return Qn + }), r.d(e, "Runner", function() { + return gt + }), r.d(e, "Sprite", function() { + return Xr + }), r.d(e, "AnimatedSprite", function() { + return ei + }), r.d(e, "TEXT_GRADIENT", function() { + return Vr + }), r.d(e, "Text", function() { + return Qr + }), r.d(e, "TextMetrics", function() { + return Yr + }), r.d(e, "TextStyle", function() { + return Hr + }), r.d(e, "isMobile", function() { + return h.a + }), r.d(e, "settings", function() { + return M + }); + + function useDeprecated() { + var e = this; + Object.defineProperties(e, { + SVG_SIZE: { + get: function() { + return deprecation(0, "PIXI.utils.SVG_SIZE has moved to PIXI.SVGResource.SVG_SIZE"), e.SVGResource.SVG_SIZE + } + }, + TransformStatic: { + get: function() { + return deprecation(0, "PIXI.TransformStatic has been removed, use PIXI.Transform"), e.Transform + } + }, + TransformBase: { + get: function() { + return deprecation(0, "PIXI.TransformBase has been removed, use PIXI.Transform"), e.Transform + } + }, + TRANSFORM_MODE: { + get: function() { + return deprecation(0, "PIXI.TRANSFORM_MODE has been removed"), { + STATIC: 0, + DYNAMIC: 1 + } + } + }, + WebGLRenderer: { + get: function() { + return deprecation(0, "PIXI.WebGLRenderer has moved to PIXI.Renderer"), e.Renderer + } + }, + CanvasRenderTarget: { + get: function() { + return deprecation(0, "PIXI.CanvasRenderTarget has moved to PIXI.utils.CanvasRenderTarget"), e.utils.CanvasRenderTarget + } + }, + loader: { + get: function() { + return deprecation(0, "PIXI.loader has moved to PIXI.Loader.shared"), e.Loader.shared + } + }, + FilterManager: { + get: function() { + return deprecation(0, "PIXI.FilterManager has moved to PIXI.systems.FilterSystem"), e.systems.FilterManager + } + } + }), e.extras = {}, Object.defineProperties(e.extras, { + TilingSprite: { + get: function() { + return deprecation(0, "PIXI.extras.TilingSprite has moved to PIXI.TilingSprite"), e.TilingSprite + } + }, + TilingSpriteRenderer: { + get: function() { + return deprecation(0, "PIXI.extras.TilingSpriteRenderer has moved to PIXI.TilingSpriteRenderer"), e.TilingSpriteRenderer + } + }, + AnimatedSprite: { + get: function() { + return deprecation(0, "PIXI.extras.AnimatedSprite has moved to PIXI.AnimatedSprite"), e.AnimatedSprite + } + }, + BitmapText: { + get: function() { + return deprecation(0, "PIXI.extras.BitmapText has moved to PIXI.BitmapText"), e.BitmapText + } + } + }), Object.defineProperties(e.utils, { + getSvgSize: { + get: function() { + return deprecation(0, "PIXI.utils.getSvgSize has moved to PIXI.SVGResource.getSize"), e.SVGResource.getSize + } + } + }), e.mesh = {}, Object.defineProperties(e.mesh, { + Mesh: { + get: function() { + return deprecation(0, "PIXI.mesh.Mesh has moved to PIXI.SimpleMesh"), e.SimpleMesh + } + }, + NineSlicePlane: { + get: function() { + return deprecation(0, "PIXI.mesh.NineSlicePlane has moved to PIXI.NineSlicePlane"), e.NineSlicePlane + } + }, + Plane: { + get: function() { + return deprecation(0, "PIXI.mesh.Plane has moved to PIXI.SimplePlane"), e.SimplePlane + } + }, + Rope: { + get: function() { + return deprecation(0, "PIXI.mesh.Rope has moved to PIXI.SimpleRope"), e.SimpleRope + } + }, + RawMesh: { + get: function() { + return deprecation(0, "PIXI.mesh.RawMesh has moved to PIXI.Mesh"), e.Mesh + } + }, + CanvasMeshRenderer: { + get: function() { + return deprecation(0, "PIXI.mesh.CanvasMeshRenderer has moved to PIXI.CanvasMeshRenderer"), e.CanvasMeshRenderer + } + }, + MeshRenderer: { + get: function() { + return deprecation(0, "PIXI.mesh.MeshRenderer has moved to PIXI.MeshRenderer"), e.MeshRenderer + } + } + }), e.particles = {}, Object.defineProperties(e.particles, { + ParticleContainer: { + get: function() { + return deprecation(0, "PIXI.particles.ParticleContainer has moved to PIXI.ParticleContainer"), e.ParticleContainer + } + }, + ParticleRenderer: { + get: function() { + return deprecation(0, "PIXI.particles.ParticleRenderer has moved to PIXI.ParticleRenderer"), e.ParticleRenderer + } + } + }), e.ticker = {}, Object.defineProperties(e.ticker, { + Ticker: { + get: function() { + return deprecation(0, "PIXI.ticker.Ticker has moved to PIXI.Ticker"), e.Ticker + } + }, + shared: { + get: function() { + return deprecation(0, "PIXI.ticker.shared has moved to PIXI.Ticker.shared"), e.Ticker.shared + } + } + }), e.loaders = {}, Object.defineProperties(e.loaders, { + Loader: { + get: function() { + return deprecation(0, "PIXI.loaders.Loader has moved to PIXI.Loader"), e.Loader + } + }, + Resource: { + get: function() { + return deprecation(0, "PIXI.loaders.Resource has moved to PIXI.LoaderResource"), e.LoaderResource + } + }, + bitmapFontParser: { + get: function() { + return deprecation(0, "PIXI.loaders.bitmapFontParser has moved to PIXI.BitmapFontLoader.use"), e.BitmapFontLoader.use + } + }, + parseBitmapFontData: { + get: function() { + return deprecation(0, "PIXI.loaders.parseBitmapFontData has moved to PIXI.BitmapFontLoader.parse"), e.BitmapFontLoader.parse + } + }, + spritesheetParser: { + get: function() { + return deprecation(0, "PIXI.loaders.spritesheetParser has moved to PIXI.SpritesheetLoader.use"), e.SpritesheetLoader.use + } + }, + getResourcePath: { + get: function() { + return deprecation(0, "PIXI.loaders.getResourcePath has moved to PIXI.SpritesheetLoader.getResourcePath"), e.SpritesheetLoader.getResourcePath + } + } + }), e.Loader.addPixiMiddleware = function(t) { + return deprecation(0, "PIXI.loaders.Loader.addPixiMiddleware is deprecated, use PIXI.loaders.Loader.registerPlugin"), e.loaders.Loader.registerPlugin({ + use: t() + }) + }, Object.defineProperty(e.extract, "WebGLExtract", { + get: function() { + return deprecation(0, "PIXI.extract.WebGLExtract has moved to PIXI.extract.Extract"), e.extract.Extract + } + }), Object.defineProperty(e.prepare, "WebGLPrepare", { + get: function() { + return deprecation(0, "PIXI.prepare.WebGLPrepare has moved to PIXI.prepare.Prepare"), e.prepare.Prepare + } + }), e.Container.prototype._renderWebGL = function(t) { + deprecation(0, "PIXI.Container#_renderWebGL has moved to PIXI.Container#_render"), this._render(t) + }, e.Container.prototype.renderWebGL = function(t) { + deprecation(0, "PIXI.Container#renderWebGL has moved to PIXI.Container#render"), this.render(t) + }, e.DisplayObject.prototype.renderWebGL = function(t) { + deprecation(0, "PIXI.DisplayObject#renderWebGL has moved to PIXI.DisplayObject#render"), this.render(t) + }, e.Container.prototype.renderAdvancedWebGL = function(t) { + deprecation(0, "PIXI.Container#renderAdvancedWebGL has moved to PIXI.Container#renderAdvanced"), this.renderAdvanced(t) + }, Object.defineProperties(e.settings, { + TRANSFORM_MODE: { + get: function() { + return deprecation(0, "PIXI.settings.TRANSFORM_MODE has been removed."), 0 + }, + set: function() { + deprecation(0, "PIXI.settings.TRANSFORM_MODE has been removed.") + } + } + }); + var o = e.BaseTexture; + o.fromImage = function(t, e, r, n) { + deprecation(0, "PIXI.BaseTexture.fromImage has been replaced with PIXI.BaseTexture.from"); + var i = { + scale: n, + crossorigin: e + }; + return o.from(t, { + scaleMode: r, + resourceOptions: i + }) + }, o.fromCanvas = function(t, e) { + return deprecation(0, "PIXI.BaseTexture.fromCanvas has been replaced with PIXI.BaseTexture.from"), o.from(t, { + scaleMode: e + }) + }, o.fromSVG = function(t, e, r, n) { + deprecation(0, "PIXI.BaseTexture.fromSVG has been replaced with PIXI.BaseTexture.from"); + var i = { + scale: n, + crossorigin: e + }; + return o.from(t, { + scaleMode: r, + resourceOptions: i + }) + }, e.Point.prototype.copy = function(t) { + return deprecation(0, "PIXI.Point.copy has been replaced with PIXI.Point#copyFrom"), this.copyFrom(t) + }, e.ObservablePoint.prototype.copy = function(t) { + return deprecation(0, "PIXI.ObservablePoint.copy has been replaced with PIXI.ObservablePoint#copyFrom"), this.copyFrom(t) + }, e.Rectangle.prototype.copy = function(t) { + return deprecation(0, "PIXI.Rectangle.copy has been replaced with PIXI.Rectangle#copyFrom"), this.copyFrom(t) + }, e.Matrix.prototype.copy = function(t) { + return deprecation(0, "PIXI.Matrix.copy has been replaced with PIXI.Matrix#copyTo"), this.copyTo(t) + }, Object.assign(e.systems.FilterSystem.prototype, { + getRenderTarget: function(t, e) { + return deprecation(0, "FilterManager#getRenderTarget has been replaced with FilterSystem#getFilterTexture"), this.getFilterTexture(e) + }, + returnRenderTarget: function(t) { + deprecation(0, "FilterManager#returnRenderTarget has been replaced with FilterSystem#returnFilterTexture"), this.returnFilterTexture(t) + } + }), Object.defineProperties(e.RenderTexture.prototype, { + sourceFrame: { + get: function() { + return deprecation(0, "PIXI.RenderTexture#sourceFrame has been removed"), this.filterFrame + } + }, + size: { + get: function() { + return deprecation(0, "PIXI.RenderTexture#size has been removed"), this._frame + } + } + }); + var t = function(i) { + function BlurXFilter(t, e, r, n) { + deprecation(0, "PIXI.filters.BlurXFilter is deprecated, use PIXI.filters.BlurFilterPass"), i.call(this, !0, t, e, r, n) + } + return i && (BlurXFilter.__proto__ = i), (BlurXFilter.prototype = Object.create(i && i.prototype)).constructor = BlurXFilter + }(e.filters.BlurFilterPass), + r = function(i) { + function BlurYFilter(t, e, r, n) { + deprecation(0, "PIXI.filters.BlurYFilter is deprecated, use PIXI.filters.BlurFilterPass"), i.call(this, !1, t, e, r, n) + } + return i && (BlurYFilter.__proto__ = i), (BlurYFilter.prototype = Object.create(i && i.prototype)).constructor = BlurYFilter + }(e.filters.BlurFilterPass); + Object.assign(e.filters, { + BlurXFilter: t, + BlurYFilter: r + }); + var i = e.Sprite, + a = e.Texture, + n = e.Graphics; + + function spriteFrom(t, e, r, n) { + return deprecation(0, "PIXI.Sprite." + t + " is deprecated, use PIXI.Sprite.from"), i.from(e, { + resourceOptions: { + scale: n, + crossorigin: r + } + }) + } + + function textureFrom(t, e, r, n) { + return deprecation(0, "PIXI.Texture." + t + " is deprecated, use PIXI.Texture.from"), a.from(e, { + resourceOptions: { + scale: n, + crossorigin: r + } + }) + } + n.prototype.generateCanvasTexture || (n.prototype.generateCanvasTexture = function() { + deprecation(0, 'PIXI.Graphics#generateCanvasTexture is only available in "pixi.js-legacy"') + }), i.fromImage = spriteFrom.bind(null, "fromImage"), i.fromSVG = spriteFrom.bind(null, "fromSVG"), i.fromCanvas = spriteFrom.bind(null, "fromCanvas"), i.fromVideo = spriteFrom.bind(null, "fromVideo"), i.fromFrame = spriteFrom.bind(null, "fromFrame"), a.fromImage = textureFrom.bind(null, "fromImage"), a.fromSVG = textureFrom.bind(null, "fromSVG"), a.fromCanvas = textureFrom.bind(null, "fromCanvas"), a.fromVideo = textureFrom.bind(null, "fromVideo"), a.fromFrame = textureFrom.bind(null, "fromFrame"), Object.defineProperty(e.AbstractRenderer.prototype, "autoResize", { + get: function() { + return deprecation(0, "PIXI.AbstractRenderer autoResize is deprecated, use autoDensity"), this.autoDensity + }, + set: function(t) { + deprecation(0, "PIXI.AbstractRenderer autoResize is deprecated, use autoDensity"), this.autoDensity = t + } + }), e.utils.mixins = { + mixin: function() { + deprecation(0, "PIXI.utils.mixins.mixin no longer available") + }, + delayMixin: function() { + deprecation(0, "PIXI.utils.mixins.delayMixin no longer available") + }, + performMixins: function() { + deprecation(0, "PIXI.utils.mixins.performMixins no longer available") + } + } + } + $e.registerPlugin("accessibility", vt), $e.registerPlugin("extract", fr), $e.registerPlugin("interaction", br), $e.registerPlugin("particle", bn), $e.registerPlugin("prepare", tn), $e.registerPlugin("batch", cr), $e.registerPlugin("tilingSprite", Pn), mn.registerPlugin(On), mn.registerPlugin(Tn), rn.registerPlugin(St), rn.registerPlugin(vn); + var ri = "5.0.0-rc.3", + ni = { + AlphaFilter: Cn, + BlurFilter: Ln, + BlurFilterPass: kn, + ColorMatrixFilter: Nn, + DisplacementFilter: Bn, + FXAAFilter: Un, + NoiseFilter: Gn + } + }, function(t, e, r) { + var m = r(9), + v = r(32), + g = r(25), + y = r(26), + _ = r(33), + b = "prototype", + x = function(t, e, r) { + var n, i, o, a, s = t & x.F, + u = t & x.G, + h = t & x.S, + c = t & x.P, + l = t & x.B, + f = u ? m : h ? m[e] || (m[e] = {}) : (m[e] || {})[b], + d = u ? v : v[e] || (v[e] = {}), + p = d[b] || (d[b] = {}); + for (n in u && (r = e), r) o = ((i = !s && f && void 0 !== f[n]) ? f : r)[n], a = l && i ? _(o, m) : c && "function" == typeof o ? _(Function.call, o) : o, f && y(f, n, o, t & x.U), d[n] != o && g(d, n, a), c && p[n] != o && (p[n] = o) + }; + m.core = v, x.F = 1, x.G = 2, x.S = 4, x.P = 8, x.B = 16, x.W = 32, x.U = 64, x.R = 128, t.exports = x + }, function(t, e, r) { + "use strict"; + var n = {}; + r.r(n), r.d(n, "DEG2RAD", function() { + return u + }), r.d(n, "RAD2DEG", function() { + return h + }), r.d(n, "generateUUID", function() { + return generateUUID + }), r.d(n, "clamp", function() { + return Math_clamp + }), r.d(n, "euclideanModulo", function() { + return euclideanModulo + }), r.d(n, "mapLinear", function() { + return mapLinear + }), r.d(n, "lerp", function() { + return lerp + }), r.d(n, "smoothstep", function() { + return smoothstep + }), r.d(n, "smootherstep", function() { + return smootherstep + }), r.d(n, "randInt", function() { + return randInt + }), r.d(n, "randFloat", function() { + return randFloat + }), r.d(n, "randFloatSpread", function() { + return randFloatSpread + }), r.d(n, "degToRad", function() { + return degToRad + }), r.d(n, "radToDeg", function() { + return radToDeg + }), r.d(n, "isPowerOfTwo", function() { + return isPowerOfTwo + }), r.d(n, "ceilPowerOfTwo", function() { + return ceilPowerOfTwo + }), r.d(n, "floorPowerOfTwo", function() { + return floorPowerOfTwo + }); + var i = r(90); + + function _inheritsLoose(t, e) { + t.prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e + } + + function _defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + for (var o = function() { + function BufferAttribute(t, e, r) { + if (Array.isArray(t)) throw new TypeError("THREE.BufferAttribute: array should be a Typed Array."); + this.name = "", this.array = t, this.itemSize = e, this.count = void 0 !== t ? t.length / e : 0, this.normalized = !0 === r, this.dynamic = !1, this.updateRange = { + offset: 0, + count: -1 + }, this.version = 0, this.isBufferAttribute = !0 + } + var t, e, r, n = BufferAttribute.prototype; + return n.onUploadCallback = function() {}, n.setArray = function(t) { + if (Array.isArray(t)) throw new TypeError("THREE.BufferAttribute: array should be a Typed Array."); + return this.count = void 0 !== t ? t.length / this.itemSize : 0, this.array = t, this + }, n.setDynamic = function(t) { + return this.dynamic = t, this + }, n.copy = function(t) { + return this.name = t.name, this.array = new t.array.constructor(t.array), this.itemSize = t.itemSize, this.count = t.count, this.normalized = t.normalized, this.dynamic = t.dynamic, this + }, n.copyAt = function(t, e, r) { + t *= this.itemSize, r *= e.itemSize; + for (var n = 0, i = this.itemSize; n < i; n++) this.array[t + n] = e.array[r + n]; + return this + }, n.copyArray = function(t) { + return this.array.set(t), this + }, n.copyColorsArray = function(t) { + for (var e = this.array, r = 0, n = 0, i = t.length; n < i; n++) { + var o = t[n]; + void 0 === o && (o = new Color), e[r++] = o.r, e[r++] = o.g, e[r++] = o.b + } + return this + }, n.copyVector2sArray = function(t) { + for (var e = this.array, r = 0, n = 0, i = t.length; n < i; n++) { + var o = t[n]; + void 0 === o && (o = new Vector2), e[r++] = o.x, e[r++] = o.y + } + return this + }, n.copyVector3sArray = function(t) { + for (var e = this.array, r = 0, n = 0, i = t.length; n < i; n++) { + var o = t[n]; + void 0 === o && (o = new Vector3), e[r++] = o.x, e[r++] = o.y, e[r++] = o.z + } + return this + }, n.copyVector4sArray = function(t) { + for (var e = this.array, r = 0, n = 0, i = t.length; n < i; n++) { + var o = t[n]; + void 0 === o && (o = new Vector4), e[r++] = o.x, e[r++] = o.y, e[r++] = o.z, e[r++] = o.w + } + return this + }, n.set = function(t, e) { + return void 0 === e && (e = 0), this.array.set(t, e), this + }, n.getX = function(t) { + return this.array[t * this.itemSize] + }, n.setX = function(t, e) { + return this.array[t * this.itemSize] = e, this + }, n.getY = function(t) { + return this.array[t * this.itemSize + 1] + }, n.setY = function(t, e) { + return this.array[t * this.itemSize + 1] = e, this + }, n.getZ = function(t) { + return this.array[t * this.itemSize + 2] + }, n.setZ = function(t, e) { + return this.array[t * this.itemSize + 2] = e, this + }, n.getW = function(t) { + return this.array[t * this.itemSize + 3] + }, n.setW = function(t, e) { + return this.array[t * this.itemSize + 3] = e, this + }, n.setXY = function(t, e, r) { + return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = r, this + }, n.setXYZ = function(t, e, r, n) { + return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = r, this.array[t + 2] = n, this + }, n.setXYZW = function(t, e, r, n, i) { + return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = r, this.array[t + 2] = n, this.array[t + 3] = i, this + }, n.onUpload = function(t) { + return this.onUploadCallback = t, this + }, n.clone = function() { + return new this.constructor(this.array, this.itemSize).copy(this) + }, t = BufferAttribute, (e = [{ + key: "needsUpdate", + set: function(t) { + !0 === t && this.version++ + } + }]) && _defineProperties(t.prototype, e), r && _defineProperties(t, r), BufferAttribute + }(), a = function(n) { + function Float32BufferAttribute(t, e, r) { + return n.call(this, new Float32Array(t), e, r) || this + } + return _inheritsLoose(Float32BufferAttribute, n), Float32BufferAttribute + }(o), s = function(n) { + function Uint16BufferAttribute(t, e, r) { + return n.call(this, new Uint16Array(t), e, r) || this + } + return _inheritsLoose(Uint16BufferAttribute, n), Uint16BufferAttribute + }(o), u = Math.PI / 180, h = 180 / Math.PI, c = [], l = 0; l < 256; l++) c[l] = (l < 16 ? "0" : "") + l.toString(16); + + function generateUUID() { + var t = 4294967295 * Math.random() | 0, + e = 4294967295 * Math.random() | 0, + r = 4294967295 * Math.random() | 0, + n = 4294967295 * Math.random() | 0; + return (c[255 & t] + c[t >> 8 & 255] + c[t >> 16 & 255] + c[t >> 24 & 255] + "-" + c[255 & e] + c[e >> 8 & 255] + "-" + c[e >> 16 & 15 | 64] + c[e >> 24 & 255] + "-" + c[63 & r | 128] + c[r >> 8 & 255] + "-" + c[r >> 16 & 255] + c[r >> 24 & 255] + c[255 & n] + c[n >> 8 & 255] + c[n >> 16 & 255] + c[n >> 24 & 255]).toUpperCase() + } + + function Math_clamp(t, e, r) { + return Math.max(e, Math.min(r, t)) + } + + function euclideanModulo(t, e) { + return (t % e + e) % e + } + + function mapLinear(t, e, r, n, i) { + return n + (t - e) * (i - n) / (r - e) + } + + function lerp(t, e, r) { + return (1 - r) * t + r * e + } + + function smoothstep(t, e, r) { + return t <= e ? 0 : r <= t ? 1 : (t = (t - e) / (r - e)) * t * (3 - 2 * t) + } + + function smootherstep(t, e, r) { + return t <= e ? 0 : r <= t ? 1 : (t = (t - e) / (r - e)) * t * t * (t * (6 * t - 15) + 10) + } + + function randInt(t, e) { + return t + Math.floor(Math.random() * (e - t + 1)) + } + + function randFloat(t, e) { + return t + Math.random() * (e - t) + } + + function randFloatSpread(t) { + return t * (.5 - Math.random()) + } + + function degToRad(t) { + return t * u + } + + function radToDeg(t) { + return t * h + } + + function isPowerOfTwo(t) { + return 0 == (t & t - 1) && 0 !== t + } + + function ceilPowerOfTwo(t) { + return Math.pow(2, Math.ceil(Math.log(t) / Math.LN2)) + } + + function floorPowerOfTwo(t) { + return Math.pow(2, Math.floor(Math.log(t) / Math.LN2)) + } + var f = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }; + + function hue2rgb(t, e, r) { + return r < 0 && (r += 1), 1 < r && (r -= 1), r < 1 / 6 ? t + 6 * (e - t) * r : r < .5 ? e : r < 2 / 3 ? t + 6 * (e - t) * (2 / 3 - r) : t + } + + function SRGBToLinear(t) { + return t < .04045 ? .0773993808 * t : Math.pow(.9478672986 * t + .0521327014, 2.4) + } + + function LinearToSRGB(t) { + return t < .0031308 ? 12.92 * t : 1.055 * Math.pow(t, .41666) - .055 + } + var d = { + h: 0, + s: 0, + l: 0 + }, + p = { + h: 0, + s: 0, + l: 0 + }, + m = function() { + function Color() {} + var t = Color.prototype; + return t.copnstructor = function(t, e, r) { + return this.isColor = !0, this.r = 1, this.g = 1, this.b = 1, void 0 === e && void 0 === r ? this.set(t) : this.setRGB(t, e, r) + }, t.set = function(t) { + return t && t.isColor ? this.copy(t) : "number" == typeof t ? this.setHex(t) : "string" == typeof t && this.setStyle(t), this + }, t.setScalar = function(t) { + return this.r = t, this.g = t, this.b = t, this + }, t.setHex = function(t) { + return t = Math.floor(t), this.r = (t >> 16 & 255) / 255, this.g = (t >> 8 & 255) / 255, this.b = (255 & t) / 255, this + }, t.setRGB = function(t, e, r) { + return this.r = t, this.g = e, this.b = r, this + }, t.setHSL = function(t, e, r) { + if (t = euclideanModulo(t, 1), e = Math_clamp(e, 0, 1), r = Math_clamp(r, 0, 1), 0 === e) this.r = this.g = this.b = r; + else { + var n = r <= .5 ? r * (1 + e) : r + e - r * e, + i = 2 * r - n; + this.r = hue2rgb(i, n, t + 1 / 3), this.g = hue2rgb(i, n, t), this.b = hue2rgb(i, n, t - 1 / 3) + } + return this + }, t.setStyle = function(t) { + function handleAlpha(t) { + void 0 !== t && parseFloat(t) + } + var e; + if (e = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)) { + var r, n = e[1], + i = e[2]; + switch (n) { + case "rgb": + case "rgba": + if (r = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(i)) return this.r = Math.min(255, parseInt(r[1], 10)) / 255, this.g = Math.min(255, parseInt(r[2], 10)) / 255, this.b = Math.min(255, parseInt(r[3], 10)) / 255, handleAlpha(r[5]), this; + if (r = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(i)) return this.r = Math.min(100, parseInt(r[1], 10)) / 100, this.g = Math.min(100, parseInt(r[2], 10)) / 100, this.b = Math.min(100, parseInt(r[3], 10)) / 100, handleAlpha(r[5]), this; + break; + case "hsl": + case "hsla": + if (r = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(i)) { + var o = parseFloat(r[1]) / 360, + a = parseInt(r[2], 10) / 100, + s = parseInt(r[3], 10) / 100; + return handleAlpha(r[5]), this.setHSL(o, a, s) + } + } + } else if (e = /^\#([A-Fa-f0-9]+)$/.exec(t)) { + var u = e[1], + h = u.length; + if (3 === h) return this.r = parseInt(u.charAt(0) + u.charAt(0), 16) / 255, this.g = parseInt(u.charAt(1) + u.charAt(1), 16) / 255, this.b = parseInt(u.charAt(2) + u.charAt(2), 16) / 255, this; + if (6 === h) return this.r = parseInt(u.charAt(0) + u.charAt(1), 16) / 255, this.g = parseInt(u.charAt(2) + u.charAt(3), 16) / 255, this.b = parseInt(u.charAt(4) + u.charAt(5), 16) / 255, this + } + if (t && 0 < t.length) { + var c = f[t]; + void 0 !== c && this.setHex(c) + } + return this + }, t.clone = function() { + return new this.constructor(this.r, this.g, this.b) + }, t.copy = function(t) { + return this.r = t.r, this.g = t.g, this.b = t.b, this + }, t.copyGammaToLinear = function(t, e) { + return void 0 === e && (e = 2), this.r = Math.pow(t.r, e), this.g = Math.pow(t.g, e), this.b = Math.pow(t.b, e), this + }, t.copyLinearToGamma = function(t, e) { + void 0 === e && (e = 2); + var r = 0 < e ? 1 / e : 1; + return this.r = Math.pow(t.r, r), this.g = Math.pow(t.g, r), this.b = Math.pow(t.b, r), this + }, t.convertGammaToLinear = function(t) { + return this.copyGammaToLinear(this, t), this + }, t.convertLinearToGamma = function(t) { + return this.copyLinearToGamma(this, t), this + }, t.copySRGBToLinear = function(t) { + return this.r = SRGBToLinear(t.r), this.g = SRGBToLinear(t.g), this.b = SRGBToLinear(t.b), this + }, t.copyLinearToSRGB = function(t) { + this.r = LinearToSRGB(t.r), this.g = LinearToSRGB(t.g), this.b = LinearToSRGB(t.b) + }, t.convertSRGBToLinear = function() { + return this.copySRGBToLinear(this), this + }, t.convertLinearToSRGB = function() { + return this.copyLinearToSRGB(this), this + }, t.getHex = function() { + return 255 * this.r << 16 ^ 255 * this.g << 8 ^ 255 * this.b << 0 + }, t.getHexString = function() { + return ("000000" + this.getHex().toString(16)).slice(-6) + }, t.getHSL = function(t) { + void 0 === t && (t = { + h: 0, + s: 0, + l: 0 + }); + var e, r, n = this.r, + i = this.g, + o = this.b, + a = Math.max(n, i, o), + s = Math.min(n, i, o), + u = (s + a) / 2; + if (s === a) r = e = 0; + else { + var h = a - s; + switch (r = u <= .5 ? h / (a + s) : h / (2 - a - s), a) { + case n: + e = (i - o) / h + (i < o ? 6 : 0); + break; + case i: + e = (o - n) / h + 2; + break; + case o: + e = (n - i) / h + 4 + } + e /= 6 + } + return t.h = e, t.s = r, t.l = u, t + }, t.getStyle = function() { + return "rgb(" + (255 * this.r | 0) + "," + (255 * this.g | 0) + "," + (255 * this.b | 0) + ")" + }, t.offsetHSL = function(t, e, r) { + var n = tempHsl; + return this.getHSL(n), n.h += t, n.s += e, n.l += r, this.setHSL(n.h, n.s, n.l), this + }, t.add = function(t) { + return this.r += t.r, this.g += t.g, this.b += t.b, this + }, t.addColors = function(t, e) { + return this.r = t.r + e.r, this.g = t.g + e.g, this.b = t.b + e.b, this + }, t.addScalar = function(t) { + return this.r += t, this.g += t, this.b += t, this + }, t.sub = function(t) { + return this.r = Math.max(0, this.r - t.r), this.g = Math.max(0, this.g - t.g), this.b = Math.max(0, this.b - t.b), this + }, t.multiply = function(t) { + return this.r *= t.r, this.g *= t.g, this.b *= t.b, this + }, t.multiplyScalar = function(t) { + return this.r *= t, this.g *= t, this.b *= t, this + }, t.lerp = function(t, e) { + return this.r += (t.r - this.r) * e, this.g += (t.g - this.g) * e, this.b += (t.b - this.b) * e, this + }, t.lerpHSL = function(t, e) { + var r = d, + n = p; + this.getHSL(r), t.getHSL(n); + var i = lerp(r.h, n.h, e), + o = lerp(r.s, n.s, e), + a = lerp(r.l, n.l, e); + return this.setHSL(i, o, a), this + }, t.equals = function(t) { + return t.r === this.r && t.g === this.g && t.b === this.b + }, t.fromArray = function(t, e) { + return void 0 === e && (e = 0), this.r = t[e], this.g = t[e + 1], this.b = t[e + 2], this + }, t.toArray = function(t, e) { + return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.r, t[e + 1] = this.g, t[e + 2] = this.b, t + }, t.toJSON = function() { + return this.getHex() + }, Color + }(), + v = function() { + function Vector3(t, e, r) { + this.x = t || 0, this.y = e || 0, this.z = r || 0, this.isVector3 = !0 + } + var t = Vector3.prototype; + return t.set = function(t, e, r) { + return this.x = t, this.y = e, this.z = r, this + }, t.setScalar = function(t) { + return this.x = t, this.y = t, this.z = t, this + }, t.setX = function(t) { + return this.x = t, this + }, t.setY = function(t) { + return this.y = t, this + }, t.setZ = function(t) { + return this.z = t, this + }, t.setComponent = function(t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + case 2: + this.z = e; + break; + default: + throw new Error("index is out of range: " + t) + } + return this + }, t.getComponent = function(t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + default: + throw new Error("index is out of range: " + t) + } + }, t.clone = function() { + return new this.constructor(this.x, this.y, this.z) + }, t.copy = function(t) { + return this.x = t.x, this.y = t.y, this.z = t.z, this + }, t.add = function(t, e) { + return void 0 !== e ? this.addVectors(t, e) : (this.x += t.x, this.y += t.y, this.z += t.z, this) + }, t.addScalar = function(t) { + return this.x += t, this.y += t, this.z += t, this + }, t.addVectors = function(t, e) { + return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this + }, t.addScaledVector = function(t, e) { + return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this + }, t.sub = function(t, e) { + return void 0 !== e ? this.subVectors(t, e) : (this.x -= t.x, this.y -= t.y, this.z -= t.z, this) + }, t.subScalar = function(t) { + return this.x -= t, this.y -= t, this.z -= t, this + }, t.subVectors = function(t, e) { + return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this + }, t.multiply = function(t, e) { + return void 0 !== e ? this.multiplyVectors(t, e) : (this.x *= t.x, this.y *= t.y, this.z *= t.z, this) + }, t.multiplyScalar = function(t) { + return this.x *= t, this.y *= t, this.z *= t, this + }, t.multiplyVectors = function(t, e) { + return this.x = t.x * e.x, this.y = t.y * e.y, this.z = t.z * e.z, this + }, t.applyMatrix3 = function(t) { + var e = this.x, + r = this.y, + n = this.z, + i = t.elements; + return this.x = i[0] * e + i[3] * r + i[6] * n, this.y = i[1] * e + i[4] * r + i[7] * n, this.z = i[2] * e + i[5] * r + i[8] * n, this + }, t.applyMatrix4 = function(t) { + var e = this.x, + r = this.y, + n = this.z, + i = t.elements, + o = 1 / (i[3] * e + i[7] * r + i[11] * n + i[15]); + return this.x = (i[0] * e + i[4] * r + i[8] * n + i[12]) * o, this.y = (i[1] * e + i[5] * r + i[9] * n + i[13]) * o, this.z = (i[2] * e + i[6] * r + i[10] * n + i[14]) * o, this + }, t.applyQuaternion = function(t) { + var e = this.x, + r = this.y, + n = this.z, + i = t.x, + o = t.y, + a = t.z, + s = t.w, + u = s * e + o * n - a * r, + h = s * r + a * e - i * n, + c = s * n + i * r - o * e, + l = -i * e - o * r - a * n; + return this.x = u * s + l * -i + h * -a - c * -o, this.y = h * s + l * -o + c * -i - u * -a, this.z = c * s + l * -a + u * -o - h * -i, this + }, t.transformDirection = function(t) { + var e = this.x, + r = this.y, + n = this.z, + i = t.elements; + return this.x = i[0] * e + i[4] * r + i[8] * n, this.y = i[1] * e + i[5] * r + i[9] * n, this.z = i[2] * e + i[6] * r + i[10] * n, this.normalize() + }, t.divide = function(t) { + return this.x /= t.x, this.y /= t.y, this.z /= t.z, this + }, t.divideScalar = function(t) { + return this.multiplyScalar(1 / t) + }, t.min = function(t) { + return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this + }, t.max = function(t) { + return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this + }, t.clamp = function(t, e) { + return this.x = Math.max(t.x, Math.min(e.x, this.x)), this.y = Math.max(t.y, Math.min(e.y, this.y)), this.z = Math.max(t.z, Math.min(e.z, this.z)), this + }, t.clampScalar = function(t, e) { + var r = g, + n = y; + return r.set(t, t, t), n.set(e, e, e), this.clamp(r, n) + }, t.clampLength = function(t, e) { + var r = this.length(); + return this.divideScalar(r || 1).multiplyScalar(Math.max(t, Math.min(e, r))) + }, t.floor = function() { + return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this + }, t.ceil = function() { + return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this + }, t.round = function() { + return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this + }, t.roundToZero = function() { + return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z), this + }, t.negate = function() { + return this.x = -this.x, this.y = -this.y, this.z = -this.z, this + }, t.dot = function(t) { + return this.x * t.x + this.y * t.y + this.z * t.z + }, t.lengthSq = function() { + return this.x * this.x + this.y * this.y + this.z * this.z + }, t.length = function() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z) + }, t.manhattanLength = function() { + return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + }, t.normalize = function() { + return this.divideScalar(this.length() || 1) + }, t.setLength = function(t) { + return this.normalize().multiplyScalar(t) + }, t.lerp = function(t, e) { + return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this.z += (t.z - this.z) * e, this + }, t.lerpVectors = function(t, e, r) { + return this.subVectors(e, t).multiplyScalar(r).add(t) + }, t.cross = function(t, e) { + return void 0 !== e ? this.crossVectors(t, e) : this.crossVectors(this, t) + }, t.crossVectors = function(t, e) { + var r = t.x, + n = t.y, + i = t.z, + o = e.x, + a = e.y, + s = e.z; + return this.x = n * s - i * a, this.y = i * o - r * s, this.z = r * a - n * o, this + }, t.projectOnVector = function(t) { + var e = t.dot(this) / t.lengthSq(); + return this.copy(t).multiplyScalar(e) + }, t.projectOnPlane = function(t) { + var e = g; + return e.copy(this).projectOnVector(t), this.sub(e) + }, t.reflect = function(t) { + var e = new g; + return this.sub(e.copy(t).multiplyScalar(2 * this.dot(t))) + }, t.angleTo = function(t) { + var e = this.dot(t) / Math.sqrt(this.lengthSq() * t.lengthSq()); + return Math.acos(Math_clamp(e, -1, 1)) + }, t.distanceTo = function(t) { + return Math.sqrt(this.distanceToSquared(t)) + }, t.distanceToSquared = function(t) { + var e = this.x - t.x, + r = this.y - t.y, + n = this.z - t.z; + return e * e + r * r + n * n + }, t.manhattanDistanceTo = function(t) { + return Math.abs(this.x - t.x) + Math.abs(this.y - t.y) + Math.abs(this.z - t.z) + }, t.setFromSpherical = function(t) { + return this.setFromSphericalCoords(t.radius, t.phi, t.theta) + }, t.setFromSphericalCoords = function(t, e, r) { + var n = Math.sin(e) * t; + return this.x = n * Math.sin(r), this.y = Math.cos(e) * t, this.z = n * Math.cos(r), this + }, t.setFromCylindrical = function(t) { + return this.setFromCylindricalCoords(t.radius, t.theta, t.y) + }, t.setFromCylindricalCoords = function(t, e, r) { + return this.x = t * Math.sin(e), this.y = r, this.z = t * Math.cos(e), this + }, t.setFromMatrixPosition = function(t) { + var e = t.elements; + return this.x = e[12], this.y = e[13], this.z = e[14], this + }, t.setFromMatrixScale = function(t) { + var e = this.setFromMatrixColumn(t, 0).length(), + r = this.setFromMatrixColumn(t, 1).length(), + n = this.setFromMatrixColumn(t, 2).length(); + return this.x = e, this.y = r, this.z = n, this + }, t.setFromMatrixColumn = function(t, e) { + return this.fromArray(t.elements, 4 * e) + }, t.equals = function(t) { + return t.x === this.x && t.y === this.y && t.z === this.z + }, t.fromArray = function(t, e) { + return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this + }, t.toArray = function(t, e) { + return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t + }, t.fromBufferAttribute = function(t, e, r) { + return this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this + }, Vector3 + }(), + g = new v, + y = new v, + _ = function() { + function Vector4(t, e, r, n) { + this.x = t || 0, this.y = e || 0, this.z = r || 0, this.w = void 0 !== n ? n : 1, this.isVector4 = !0 + } + var t = Vector4.prototype; + return t.set = function(t, e, r, n) { + return this.x = t, this.y = e, this.z = r, this.w = n, this + }, t.setScalar = function(t) { + return this.x = t, this.y = t, this.z = t, this.w = t, this + }, t.setX = function(t) { + return this.x = t, this + }, t.setY = function(t) { + return this.y = t, this + }, t.setZ = function(t) { + return this.z = t, this + }, t.setW = function(t) { + return this.w = t, this + }, t.setComponent = function(t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + case 2: + this.z = e; + break; + case 3: + this.w = e; + break; + default: + throw new Error("index is out of range: " + t) + } + return this + }, t.getComponent = function(t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + case 3: + return this.w; + default: + throw new Error("index is out of range: " + t) + } + }, t.clone = function() { + return new this.constructor(this.x, this.y, this.z, this.w) + }, t.copy = function(t) { + return this.x = t.x, this.y = t.y, this.z = t.z, this.w = void 0 !== t.w ? t.w : 1, this + }, t.add = function(t, e) { + return void 0 !== e ? this.addVectors(t, e) : (this.x += t.x, this.y += t.y, this.z += t.z, this.w += t.w, this) + }, t.addScalar = function(t) { + return this.x += t, this.y += t, this.z += t, this.w += t, this + }, t.addVectors = function(t, e) { + return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this.w = t.w + e.w, this + }, t.addScaledVector = function(t, e) { + return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this.w += t.w * e, this + }, t.sub = function(t, e) { + return void 0 !== e ? this.subVectors(t, e) : (this.x -= t.x, this.y -= t.y, this.z -= t.z, this.w -= t.w, this) + }, t.subScalar = function(t) { + return this.x -= t, this.y -= t, this.z -= t, this.w -= t, this + }, t.subVectors = function(t, e) { + return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this.w = t.w - e.w, this + }, t.multiplyScalar = function(t) { + return this.x *= t, this.y *= t, this.z *= t, this.w *= t, this + }, t.applyMatrix4 = function(t) { + var e = this.x, + r = this.y, + n = this.z, + i = this.w, + o = t.elements; + return this.x = o[0] * e + o[4] * r + o[8] * n + o[12] * i, this.y = o[1] * e + o[5] * r + o[9] * n + o[13] * i, this.z = o[2] * e + o[6] * r + o[10] * n + o[14] * i, this.w = o[3] * e + o[7] * r + o[11] * n + o[15] * i, this + }, t.divideScalar = function(t) { + return this.multiplyScalar(1 / t) + }, t.setAxisAngleFromQuaternion = function(t) { + this.w = 2 * Math.acos(t.w); + var e = Math.sqrt(1 - t.w * t.w); + return this.z = e < 1e-4 ? (this.x = 1, this.y = 0) : (this.x = t.x / e, this.y = t.y / e, t.z / e), this + }, t.setAxisAngleFromRotationMatrix = function(t) { + var e, r, n, i, o = t.elements, + a = o[0], + s = o[4], + u = o[8], + h = o[1], + c = o[5], + l = o[9], + f = o[2], + d = o[6], + p = o[10]; + if (Math.abs(s - h) < .01 && Math.abs(u - f) < .01 && Math.abs(l - d) < .01) { + if (Math.abs(s + h) < .1 && Math.abs(u + f) < .1 && Math.abs(l + d) < .1 && Math.abs(a + c + p - 3) < .1) return this.set(1, 0, 0, 0), this; + e = Math.PI; + var m = (a + 1) / 2, + v = (c + 1) / 2, + g = (p + 1) / 2, + y = (s + h) / 4, + _ = (u + f) / 4, + b = (l + d) / 4; + return v < m && g < m ? i = m < .01 ? (r = 0, n = .707106781) : (n = y / (r = Math.sqrt(m)), _ / r) : g < v ? i = v < .01 ? (n = 0, r = .707106781) : (r = y / (n = Math.sqrt(v)), b / n) : g < .01 ? (n = r = .707106781, i = 0) : (r = _ / (i = Math.sqrt(g)), n = b / i), this.set(r, n, i, e), this + } + var x = Math.sqrt((d - l) * (d - l) + (u - f) * (u - f) + (h - s) * (h - s)); + return Math.abs(x) < .001 && (x = 1), this.x = (d - l) / x, this.y = (u - f) / x, this.z = (h - s) / x, this.w = Math.acos((a + c + p - 1) / 2), this + }, t.min = function(t) { + return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this.w = Math.min(this.w, t.w), this + }, t.max = function(t) { + return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this.w = Math.max(this.w, t.w), this + }, t.clamp = function(t, e) { + return this.x = Math.max(t.x, Math.min(e.x, this.x)), this.y = Math.max(t.y, Math.min(e.y, this.y)), this.z = Math.max(t.z, Math.min(e.z, this.z)), this.w = Math.max(t.w, Math.min(e.w, this.w)), this + }, t.clampScalar = function(t, e) { + var r = b, + n = x; + return r.set(t, t, t, t), n.set(e, e, e, e), this.clamp(r, n) + }, t.clampLength = function(t, e) { + var r = this.length(); + return this.divideScalar(r || 1).multiplyScalar(Math.max(t, Math.min(e, r))) + }, t.floor = function() { + return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this.w = Math.floor(this.w), this + }, t.ceil = function() { + return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this.w = Math.ceil(this.w), this + }, t.round = function() { + return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this.w = Math.round(this.w), this + }, t.roundToZero = function() { + return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z), this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w), this + }, t.negate = function() { + return this.x = -this.x, this.y = -this.y, this.z = -this.z, this.w = -this.w, this + }, t.dot = function(t) { + return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w + }, t.lengthSq = function() { + return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w + }, t.length = function() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w) + }, t.manhattanLength = function() { + return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w) + }, t.normalize = function() { + return this.divideScalar(this.length() || 1) + }, t.setLength = function(t) { + return this.normalize().multiplyScalar(t) + }, t.lerp = function(t, e) { + return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this.z += (t.z - this.z) * e, this.w += (t.w - this.w) * e, this + }, t.lerpVectors = function(t, e, r) { + return this.subVectors(e, t).multiplyScalar(r).add(t) + }, t.equals = function(t) { + return t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w + }, t.fromArray = function(t, e) { + return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this.w = t[e + 3], this + }, t.toArray = function(t, e) { + return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t[e + 3] = this.w, t + }, t.fromBufferAttribute = function(t, e, r) { + return this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this.w = t.getW(e), this + }, Vector4 + }(), + b = new _, + x = new _, + w = function() { + function Matrix3() { + this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1], arguments.length, this.isMatrix3 = !0 + } + var t = Matrix3.prototype; + return t.set = function(t, e, r, n, i, o, a, s, u) { + var h = this.elements; + return h[0] = t, h[1] = n, h[2] = a, h[3] = e, h[4] = i, h[5] = s, h[6] = r, h[7] = o, h[8] = u, this + }, t.identity = function() { + return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this + }, t.clone = function() { + return (new this.constructor).fromArray(this.elements) + }, t.copy = function(t) { + var e = this.elements, + r = t.elements; + return e[0] = r[0], e[1] = r[1], e[2] = r[2], e[3] = r[3], e[4] = r[4], e[5] = r[5], e[6] = r[6], e[7] = r[7], e[8] = r[8], this + }, t.setFromMatrix4 = function(t) { + var e = t.elements; + return this.set(e[0], e[4], e[8], e[1], e[5], e[9], e[2], e[6], e[10]), this + }, t.applyToBufferAttribute = function(t) { + for (var e = T, r = 0, n = t.count; r < n; r++) e.x = t.getX(r), e.y = t.getY(r), e.z = t.getZ(r), e.applyMatrix3(this), t.setXYZ(r, e.x, e.y, e.z); + return t + }, t.multiply = function(t) { + return this.multiplyMatrices(this, t) + }, t.premultiply = function(t) { + return this.multiplyMatrices(t, this) + }, t.multiplyMatrices = function(t, e) { + var r = t.elements, + n = e.elements, + i = this.elements, + o = r[0], + a = r[3], + s = r[6], + u = r[1], + h = r[4], + c = r[7], + l = r[2], + f = r[5], + d = r[8], + p = n[0], + m = n[3], + v = n[6], + g = n[1], + y = n[4], + _ = n[7], + b = n[2], + x = n[5], + w = n[8]; + return i[0] = o * p + a * g + s * b, i[3] = o * m + a * y + s * x, i[6] = o * v + a * _ + s * w, i[1] = u * p + h * g + c * b, i[4] = u * m + h * y + c * x, i[7] = u * v + h * _ + c * w, i[2] = l * p + f * g + d * b, i[5] = l * m + f * y + d * x, i[8] = l * v + f * _ + d * w, this + }, t.multiplyScalar = function(t) { + var e = this.elements; + return e[0] *= t, e[3] *= t, e[6] *= t, e[1] *= t, e[4] *= t, e[7] *= t, e[2] *= t, e[5] *= t, e[8] *= t, this + }, t.determinant = function() { + var t = this.elements, + e = t[0], + r = t[1], + n = t[2], + i = t[3], + o = t[4], + a = t[5], + s = t[6], + u = t[7], + h = t[8]; + return e * o * h - e * a * u - r * i * h + r * a * s + n * i * u - n * o * s + }, t.getInverse = function(t, e) { + t && t.isMatrix4; + var r = t.elements, + n = this.elements, + i = r[0], + o = r[1], + a = r[2], + s = r[3], + u = r[4], + h = r[5], + c = r[6], + l = r[7], + f = r[8], + d = f * u - h * l, + p = h * c - f * s, + m = l * s - u * c, + v = i * d + o * p + a * m; + if (0 === v) { + var g = "THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0"; + if (!0 === e) throw new Error(g); + return this.identity() + } + var y = 1 / v; + return n[0] = d * y, n[1] = (a * l - f * o) * y, n[2] = (h * o - a * u) * y, n[3] = p * y, n[4] = (f * i - a * c) * y, n[5] = (a * s - h * i) * y, n[6] = m * y, n[7] = (o * c - l * i) * y, n[8] = (u * i - o * s) * y, this + }, t.transpose = function() { + var t, e = this.elements; + return t = e[1], e[1] = e[3], e[3] = t, t = e[2], e[2] = e[6], e[6] = t, t = e[5], e[5] = e[7], e[7] = t, this + }, t.getNormalMatrix = function(t) { + return this.setFromMatrix4(t).getInverse(this).transpose() + }, t.transposeIntoArray = function(t) { + var e = this.elements; + return t[0] = e[0], t[1] = e[3], t[2] = e[6], t[3] = e[1], t[4] = e[4], t[5] = e[7], t[6] = e[2], t[7] = e[5], t[8] = e[8], this + }, t.setUvTransform = function(t, e, r, n, i, o, a) { + var s = Math.cos(i), + u = Math.sin(i); + this.set(r * s, r * u, -r * (s * o + u * a) + o + t, -n * u, n * s, -n * (-u * o + s * a) + a + e, 0, 0, 1) + }, t.scale = function(t, e) { + var r = this.elements; + return r[0] *= t, r[3] *= t, r[6] *= t, r[1] *= e, r[4] *= e, r[7] *= e, this + }, t.rotate = function(t) { + var e = Math.cos(t), + r = Math.sin(t), + n = this.elements, + i = n[0], + o = n[3], + a = n[6], + s = n[1], + u = n[4], + h = n[7]; + return n[0] = e * i + r * s, n[3] = e * o + r * u, n[6] = e * a + r * h, n[1] = -r * i + e * s, n[4] = -r * o + e * u, n[7] = -r * a + e * h, this + }, t.translate = function(t, e) { + var r = this.elements; + return r[0] += t * r[2], r[3] += t * r[5], r[6] += t * r[8], r[1] += e * r[2], r[4] += e * r[5], r[7] += e * r[8], this + }, t.equals = function(t) { + for (var e = this.elements, r = t.elements, n = 0; n < 9; n++) + if (e[n] !== r[n]) return !1; + return !0 + }, t.fromArray = function(t, e) { + void 0 === e && (e = 0); + for (var r = 0; r < 9; r++) this.elements[r] = t[r + e]; + return this + }, t.toArray = function(t, e) { + void 0 === t && (t = []), void 0 === e && (e = 0); + var r = this.elements; + return t[e] = r[0], t[e + 1] = r[1], t[e + 2] = r[2], t[e + 3] = r[3], t[e + 4] = r[4], t[e + 5] = r[5], t[e + 6] = r[6], t[e + 7] = r[7], t[e + 8] = r[8], t + }, Matrix3 + }(), + T = new v, + S = function() { + function Matrix4() { + this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], arguments.length, this.isMatrix4 = !0 + } + var t = Matrix4.prototype; + return t.set = function(t, e, r, n, i, o, a, s, u, h, c, l, f, d, p, m) { + var v = this.elements; + return v[0] = t, v[4] = e, v[8] = r, v[12] = n, v[1] = i, v[5] = o, v[9] = a, v[13] = s, v[2] = u, v[6] = h, v[10] = c, v[14] = l, v[3] = f, v[7] = d, v[11] = p, v[15] = m, this + }, t.identity = function() { + return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this + }, t.clone = function() { + return (new Matrix4).fromArray(this.elements) + }, t.copy = function(t) { + var e = this.elements, + r = t.elements; + return e[0] = r[0], e[1] = r[1], e[2] = r[2], e[3] = r[3], e[4] = r[4], e[5] = r[5], e[6] = r[6], e[7] = r[7], e[8] = r[8], e[9] = r[9], e[10] = r[10], e[11] = r[11], e[12] = r[12], e[13] = r[13], e[14] = r[14], e[15] = r[15], this + }, t.copyPosition = function(t) { + var e = this.elements, + r = t.elements; + return e[12] = r[12], e[13] = r[13], e[14] = r[14], this + }, t.extractBasis = function(t, e, r) { + return t.setFromMatrixColumn(this, 0), e.setFromMatrixColumn(this, 1), r.setFromMatrixColumn(this, 2), this + }, t.makeBasis = function(t, e, r) { + return this.set(t.x, e.x, r.x, 0, t.y, e.y, r.y, 0, t.z, e.z, r.z, 0, 0, 0, 0, 1), this + }, t.extractRotation = function(t) { + var e = E, + r = this.elements, + n = t.elements, + i = 1 / e.setFromMatrixColumn(t, 0).length(), + o = 1 / e.setFromMatrixColumn(t, 1).length(), + a = 1 / e.setFromMatrixColumn(t, 2).length(); + return r[0] = n[0] * i, r[1] = n[1] * i, r[2] = n[2] * i, r[3] = 0, r[4] = n[4] * o, r[5] = n[5] * o, r[6] = n[6] * o, r[7] = 0, r[8] = n[8] * a, r[9] = n[9] * a, r[10] = n[10] * a, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, this + }, t.makeRotationFromEuler = function(t) { + !t || t.isEuler; + var e = this.elements, + r = t.x, + n = t.y, + i = t.z, + o = Math.cos(r), + a = Math.sin(r), + s = Math.cos(n), + u = Math.sin(n), + h = Math.cos(i), + c = Math.sin(i); + if ("XYZ" === t.order) { + var l = o * h, + f = o * c, + d = a * h, + p = a * c; + e[0] = s * h, e[4] = -s * c, e[8] = u, e[1] = f + d * u, e[5] = l - p * u, e[9] = -a * s, e[2] = p - l * u, e[6] = d + f * u, e[10] = o * s + } else if ("YXZ" === t.order) { + var m = s * h, + v = s * c, + g = u * h, + y = u * c; + e[0] = m + y * a, e[4] = g * a - v, e[8] = o * u, e[1] = o * c, e[5] = o * h, e[9] = -a, e[2] = v * a - g, e[6] = y + m * a, e[10] = o * s + } else if ("ZXY" === t.order) { + var _ = s * h, + b = s * c, + x = u * h, + w = u * c; + e[0] = _ - w * a, e[4] = -o * c, e[8] = x + b * a, e[1] = b + x * a, e[5] = o * h, e[9] = w - _ * a, e[2] = -o * u, e[6] = a, e[10] = o * s + } else if ("ZYX" === t.order) { + var T = o * h, + S = o * c, + M = a * h, + E = a * c; + e[0] = s * h, e[4] = M * u - S, e[8] = T * u + E, e[1] = s * c, e[5] = E * u + T, e[9] = S * u - M, e[2] = -u, e[6] = a * s, e[10] = o * s + } else if ("YZX" === t.order) { + var A = o * s, + P = o * u, + I = a * s, + O = a * u; + e[0] = s * h, e[4] = O - A * c, e[8] = I * c + P, e[1] = c, e[5] = o * h, e[9] = -a * h, e[2] = -u * h, e[6] = P * c + I, e[10] = A - O * c + } else if ("XZY" === t.order) { + var C = o * s, + R = o * u, + D = a * s, + F = a * u; + e[0] = s * h, e[4] = -c, e[8] = u * h, e[1] = C * c + F, e[5] = o * h, e[9] = R * c - D, e[2] = D * c - R, e[6] = a * h, e[10] = F * c + C + } + return e[3] = 0, e[7] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, this + }, t.makeRotationFromQuaternion = function(t) { + return this.compose(I, t, O) + }, t.lookAt = function() { + var t = E, + e = A, + r = P, + n = this.elements; + return r.subVectors(eye, target), 0 === r.lengthSq() && (r.z = 1), r.normalize(), t.crossVectors(up, r), 0 === t.lengthSq() && (1 === Math.abs(up.z) ? r.x += 1e-4 : r.z += 1e-4, r.normalize(), t.crossVectors(up, r)), t.normalize(), e.crossVectors(r, t), n[0] = t.x, n[4] = e.x, n[8] = r.x, n[1] = t.y, n[5] = e.y, n[9] = r.y, n[2] = t.z, n[6] = e.z, n[10] = r.z, this + }, t.multiply = function(t, e) { + return void 0 !== e ? this.multiplyMatrices(t, e) : this.multiplyMatrices(this, t) + }, t.premultiply = function(t) { + return this.multiplyMatrices(t, this) + }, t.multiplyMatrices = function(t, e) { + var r = t.elements, + n = e.elements, + i = this.elements, + o = r[0], + a = r[4], + s = r[8], + u = r[12], + h = r[1], + c = r[5], + l = r[9], + f = r[13], + d = r[2], + p = r[6], + m = r[10], + v = r[14], + g = r[3], + y = r[7], + _ = r[11], + b = r[15], + x = n[0], + w = n[4], + T = n[8], + S = n[12], + M = n[1], + E = n[5], + A = n[9], + P = n[13], + I = n[2], + O = n[6], + C = n[10], + R = n[14], + D = n[3], + F = n[7], + k = n[11], + L = n[15]; + return i[0] = o * x + a * M + s * I + u * D, i[4] = o * w + a * E + s * O + u * F, i[8] = o * T + a * A + s * C + u * k, i[12] = o * S + a * P + s * R + u * L, i[1] = h * x + c * M + l * I + f * D, i[5] = h * w + c * E + l * O + f * F, i[9] = h * T + c * A + l * C + f * k, i[13] = h * S + c * P + l * R + f * L, i[2] = d * x + p * M + m * I + v * D, i[6] = d * w + p * E + m * O + v * F, i[10] = d * T + p * A + m * C + v * k, i[14] = d * S + p * P + m * R + v * L, i[3] = g * x + y * M + _ * I + b * D, i[7] = g * w + y * E + _ * O + b * F, i[11] = g * T + y * A + _ * C + b * k, i[15] = g * S + y * P + _ * R + b * L, this + }, t.multiplyScalar = function(t) { + var e = this.elements; + return e[0] *= t, e[4] *= t, e[8] *= t, e[12] *= t, e[1] *= t, e[5] *= t, e[9] *= t, e[13] *= t, e[2] *= t, e[6] *= t, e[10] *= t, e[14] *= t, e[3] *= t, e[7] *= t, e[11] *= t, e[15] *= t, this + }, t.applyToBufferAttribute = function(t) { + for (var e = E, r = 0, n = t.count; r < n; r++) e.x = t.getX(r), e.y = t.getY(r), e.z = t.getZ(r), e.applyMatrix4(this), t.setXYZ(r, e.x, e.y, e.z); + return t + }, t.determinant = function() { + var t = this.elements, + e = t[0], + r = t[4], + n = t[8], + i = t[12], + o = t[1], + a = t[5], + s = t[9], + u = t[13], + h = t[2], + c = t[6], + l = t[10], + f = t[14]; + return t[3] * (+i * s * c - n * u * c - i * a * l + r * u * l + n * a * f - r * s * f) + t[7] * (+e * s * f - e * u * l + i * o * l - n * o * f + n * u * h - i * s * h) + t[11] * (+e * u * c - e * a * f - i * o * c + r * o * f + i * a * h - r * u * h) + t[15] * (-n * a * h - e * s * c + e * a * l + n * o * c - r * o * l + r * s * h) + }, t.transpose = function() { + var t, e = this.elements; + return t = e[1], e[1] = e[4], e[4] = t, t = e[2], e[2] = e[8], e[8] = t, t = e[6], e[6] = e[9], e[9] = t, t = e[3], e[3] = e[12], e[12] = t, t = e[7], e[7] = e[13], e[13] = t, t = e[11], e[11] = e[14], e[14] = t, this + }, t.setPosition = function(t) { + var e = this.elements; + return e[12] = t.x, e[13] = t.y, e[14] = t.z, this + }, t.getInverse = function(t, e) { + var r = this.elements, + n = t.elements, + i = n[0], + o = n[1], + a = n[2], + s = n[3], + u = n[4], + h = n[5], + c = n[6], + l = n[7], + f = n[8], + d = n[9], + p = n[10], + m = n[11], + v = n[12], + g = n[13], + y = n[14], + _ = n[15], + b = d * y * l - g * p * l + g * c * m - h * y * m - d * c * _ + h * p * _, + x = v * p * l - f * y * l - v * c * m + u * y * m + f * c * _ - u * p * _, + w = f * g * l - v * d * l + v * h * m - u * g * m - f * h * _ + u * d * _, + T = v * d * c - f * g * c - v * h * p + u * g * p + f * h * y - u * d * y, + S = i * b + o * x + a * w + s * T; + if (0 === S) { + var M = "THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0"; + if (!0 === e) throw new Error(M); + return this.identity() + } + var E = 1 / S; + return r[0] = b * E, r[1] = (g * p * s - d * y * s - g * a * m + o * y * m + d * a * _ - o * p * _) * E, r[2] = (h * y * s - g * c * s + g * a * l - o * y * l - h * a * _ + o * c * _) * E, r[3] = (d * c * s - h * p * s - d * a * l + o * p * l + h * a * m - o * c * m) * E, r[4] = x * E, r[5] = (f * y * s - v * p * s + v * a * m - i * y * m - f * a * _ + i * p * _) * E, r[6] = (v * c * s - u * y * s - v * a * l + i * y * l + u * a * _ - i * c * _) * E, r[7] = (u * p * s - f * c * s + f * a * l - i * p * l - u * a * m + i * c * m) * E, r[8] = w * E, r[9] = (v * d * s - f * g * s - v * o * m + i * g * m + f * o * _ - i * d * _) * E, r[10] = (u * g * s - v * h * s + v * o * l - i * g * l - u * o * _ + i * h * _) * E, r[11] = (f * h * s - u * d * s - f * o * l + i * d * l + u * o * m - i * h * m) * E, r[12] = T * E, r[13] = (f * g * a - v * d * a + v * o * p - i * g * p - f * o * y + i * d * y) * E, r[14] = (v * h * a - u * g * a - v * o * c + i * g * c + u * o * y - i * h * y) * E, r[15] = (u * d * a - f * h * a + f * o * c - i * d * c - u * o * p + i * h * p) * E, this + }, t.scale = function(t) { + var e = this.elements, + r = t.x, + n = t.y, + i = t.z; + return e[0] *= r, e[4] *= n, e[8] *= i, e[1] *= r, e[5] *= n, e[9] *= i, e[2] *= r, e[6] *= n, e[10] *= i, e[3] *= r, e[7] *= n, e[11] *= i, this + }, t.getMaxScaleOnAxis = function() { + var t = this.elements, + e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2], + r = t[4] * t[4] + t[5] * t[5] + t[6] * t[6], + n = t[8] * t[8] + t[9] * t[9] + t[10] * t[10]; + return Math.sqrt(Math.max(e, r, n)) + }, t.makeTranslation = function(t, e, r) { + return this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, r, 0, 0, 0, 1), this + }, t.makeRotationX = function(t) { + var e = Math.cos(t), + r = Math.sin(t); + return this.set(1, 0, 0, 0, 0, e, -r, 0, 0, r, e, 0, 0, 0, 0, 1), this + }, t.makeRotationY = function(t) { + var e = Math.cos(t), + r = Math.sin(t); + return this.set(e, 0, r, 0, 0, 1, 0, 0, -r, 0, e, 0, 0, 0, 0, 1), this + }, t.makeRotationZ = function(t) { + var e = Math.cos(t), + r = Math.sin(t); + return this.set(e, -r, 0, 0, r, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this + }, t.makeRotationAxis = function(t, e) { + var r = Math.cos(e), + n = Math.sin(e), + i = 1 - r, + o = t.x, + a = t.y, + s = t.z, + u = i * o, + h = i * a; + return this.set(u * o + r, u * a - n * s, u * s + n * a, 0, u * a + n * s, h * a + r, h * s - n * o, 0, u * s - n * a, h * s + n * o, i * s * s + r, 0, 0, 0, 0, 1), this + }, t.makeScale = function(t, e, r) { + return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, r, 0, 0, 0, 0, 1), this + }, t.makeShear = function(t, e, r) { + return this.set(1, e, r, 0, t, 1, r, 0, t, e, 1, 0, 0, 0, 0, 1), this + }, t.compose = function(t, e, r) { + var n = this.elements, + i = e._x, + o = e._y, + a = e._z, + s = e._w, + u = i + i, + h = o + o, + c = a + a, + l = i * u, + f = i * h, + d = i * c, + p = o * h, + m = o * c, + v = a * c, + g = s * u, + y = s * h, + _ = s * c, + b = r.x, + x = r.y, + w = r.z; + return n[0] = (1 - (p + v)) * b, n[1] = (f + _) * b, n[2] = (d - y) * b, n[3] = 0, n[4] = (f - _) * x, n[5] = (1 - (l + v)) * x, n[6] = (m + g) * x, n[7] = 0, n[8] = (d + y) * w, n[9] = (m - g) * w, n[10] = (1 - (l + p)) * w, n[11] = 0, n[12] = t.x, n[13] = t.y, n[14] = t.z, n[15] = 1, this + }, t.decompose = function(t, e, r) { + var n = E, + i = M, + o = this.elements, + a = n.set(o[0], o[1], o[2]).length(), + s = n.set(o[4], o[5], o[6]).length(), + u = n.set(o[8], o[9], o[10]).length(); + this.determinant() < 0 && (a = -a), t.x = o[12], t.y = o[13], t.z = o[14], i.copy(this); + var h = 1 / a, + c = 1 / s, + l = 1 / u; + return i.elements[0] *= h, i.elements[1] *= h, i.elements[2] *= h, i.elements[4] *= c, i.elements[5] *= c, i.elements[6] *= c, i.elements[8] *= l, i.elements[9] *= l, i.elements[10] *= l, e.setFromRotationMatrix(i), r.x = a, r.y = s, r.z = u, this + }, t.makePerspective = function(t, e, r, n, i, o) { + var a = this.elements, + s = 2 * i / (e - t), + u = 2 * i / (r - n), + h = (e + t) / (e - t), + c = (r + n) / (r - n), + l = -(o + i) / (o - i), + f = -2 * o * i / (o - i); + return a[0] = s, a[4] = 0, a[8] = h, a[12] = 0, a[1] = 0, a[5] = u, a[9] = c, a[13] = 0, a[2] = 0, a[6] = 0, a[10] = l, a[14] = f, a[3] = 0, a[7] = 0, a[11] = -1, a[15] = 0, this + }, t.makeOrthographic = function(t, e, r, n, i, o) { + var a = this.elements, + s = 1 / (e - t), + u = 1 / (r - n), + h = 1 / (o - i), + c = (e + t) * s, + l = (r + n) * u, + f = (o + i) * h; + return a[0] = 2 * s, a[4] = 0, a[8] = 0, a[12] = -c, a[1] = 0, a[5] = 2 * u, a[9] = 0, a[13] = -l, a[2] = 0, a[6] = 0, a[10] = -2 * h, a[14] = -f, a[3] = 0, a[7] = 0, a[11] = 0, a[15] = 1, this + }, t.equals = function(t) { + for (var e = this.elements, r = t.elements, n = 0; n < 16; n++) + if (e[n] !== r[n]) return !1; + return !0 + }, t.fromArray = function(t, e) { + void 0 === e && (e = 0); + for (var r = 0; r < 16; r++) this.elements[r] = t[r + e]; + return this + }, t.toArray = function(t, e) { + void 0 === t && (t = []), void 0 === e && (e = 0); + var r = this.elements; + return t[e] = r[0], t[e + 1] = r[1], t[e + 2] = r[2], t[e + 3] = r[3], t[e + 4] = r[4], t[e + 5] = r[5], t[e + 6] = r[6], t[e + 7] = r[7], t[e + 8] = r[8], t[e + 9] = r[9], t[e + 10] = r[10], t[e + 11] = r[11], t[e + 12] = r[12], t[e + 13] = r[13], t[e + 14] = r[14], t[e + 15] = r[15], t + }, Matrix4 + }(), + M = new S, + E = new v, + A = new v, + P = new v, + I = new v(0, 0, 0), + O = new v(1, 1, 1); + + function Quaternion_defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + v.prototype.project = function(t) { + return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix) + }, v.prototype.unproject = function(t) { + var e = M; + return this.applyMatrix4(e.getInverse(t.projectionMatrix)).applyMatrix4(t.matrixWorld) + }; + var C = function() { + function Quaternion(t, e, r, n) { + this._x = t || 0, this._y = e || 0, this._z = r || 0, this._w = void 0 !== n ? n : 1, this.isQuaternion = !0 + } + var t, e, r, n = Quaternion.prototype; + return n.slerp = function(t, e, r, n) { + return r.copy(t).slerp(e, n) + }, Quaternion.slerpFlat = function(t, e, r, n, i, o, a) { + var s = r[n + 0], + u = r[n + 1], + h = r[n + 2], + c = r[n + 3], + l = i[o + 0], + f = i[o + 1], + d = i[o + 2], + p = i[o + 3]; + if (c !== p || s !== l || u !== f || h !== d) { + var m = 1 - a, + v = s * l + u * f + h * d + c * p, + g = 0 <= v ? 1 : -1, + y = 1 - v * v; + if (y > Number.EPSILON) { + var _ = Math.sqrt(y), + b = Math.atan2(_, v * g); + m = Math.sin(m * b) / _, a = Math.sin(a * b) / _ + } + var x = a * g; + if (s = s * m + l * x, u = u * m + f * x, h = h * m + d * x, c = c * m + p * x, m === 1 - a) { + var w = 1 / Math.sqrt(s * s + u * u + h * h + c * c); + s *= w, u *= w, h *= w, c *= w + } + } + t[e] = s, t[e + 1] = u, t[e + 2] = h, t[e + 3] = c + }, n.set = function(t, e, r, n) { + return this._x = t, this._y = e, this._z = r, this._w = n, this.onChangeCallback(), this + }, n.clone = function() { + return new this.constructor(this._x, this._y, this._z, this._w) + }, n.copy = function(t) { + return this._x = t.x, this._y = t.y, this._z = t.z, this._w = t.w, this.onChangeCallback(), this + }, n.setFromEuler = function(t, e) { + if (!t || !t.isEuler) throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order."); + var r = t._x, + n = t._y, + i = t._z, + o = t.order, + a = Math.cos, + s = Math.sin, + u = a(r / 2), + h = a(n / 2), + c = a(i / 2), + l = s(r / 2), + f = s(n / 2), + d = s(i / 2); + return "XYZ" === o ? (this._x = l * h * c + u * f * d, this._y = u * f * c - l * h * d, this._z = u * h * d + l * f * c, this._w = u * h * c - l * f * d) : "YXZ" === o ? (this._x = l * h * c + u * f * d, this._y = u * f * c - l * h * d, this._z = u * h * d - l * f * c, this._w = u * h * c + l * f * d) : "ZXY" === o ? (this._x = l * h * c - u * f * d, this._y = u * f * c + l * h * d, this._z = u * h * d + l * f * c, this._w = u * h * c - l * f * d) : "ZYX" === o ? (this._x = l * h * c - u * f * d, this._y = u * f * c + l * h * d, this._z = u * h * d - l * f * c, this._w = u * h * c + l * f * d) : "YZX" === o ? (this._x = l * h * c + u * f * d, this._y = u * f * c + l * h * d, this._z = u * h * d - l * f * c, this._w = u * h * c - l * f * d) : "XZY" === o && (this._x = l * h * c - u * f * d, this._y = u * f * c - l * h * d, this._z = u * h * d + l * f * c, this._w = u * h * c + l * f * d), !1 !== e && this.onChangeCallback(), this + }, n.setFromAxisAngle = function(t, e) { + var r = e / 2, + n = Math.sin(r); + return this._x = t.x * n, this._y = t.y * n, this._z = t.z * n, this._w = Math.cos(r), this.onChangeCallback(), this + }, n.setFromRotationMatrix = function(t) { + var e, r = t.elements, + n = r[0], + i = r[4], + o = r[8], + a = r[1], + s = r[5], + u = r[9], + h = r[2], + c = r[6], + l = r[10], + f = n + s + l; + return this._z = 0 < f ? (e = .5 / Math.sqrt(f + 1), this._w = .25 / e, this._x = (c - u) * e, this._y = (o - h) * e, (a - i) * e) : s < n && l < n ? (e = 2 * Math.sqrt(1 + n - s - l), this._w = (c - u) / e, this._x = .25 * e, this._y = (i + a) / e, (o + h) / e) : l < s ? (e = 2 * Math.sqrt(1 + s - n - l), this._w = (o - h) / e, this._x = (i + a) / e, this._y = .25 * e, (u + c) / e) : (e = 2 * Math.sqrt(1 + l - n - s), this._w = (a - i) / e, this._x = (o + h) / e, this._y = (u + c) / e, .25 * e), this.onChangeCallback(), this + }, n.setFromUnitVectors = function(t, e) { + var r, n = R; + return (r = t.dot(e) + 1) < 1e-6 ? (r = 0, Math.abs(t.x) > Math.abs(t.z) ? n.set(-t.y, t.x, 0) : n.set(0, -t.z, t.y)) : n.crossVectors(t, e), this._x = n.x, this._y = n.y, this._z = n.z, this._w = r, this.normalize() + }, n.angleTo = function(t) { + return 2 * Math.acos(Math.abs(Math_clamp(this.dot(t), -1, 1))) + }, n.rotateTowards = function(t, e) { + var r = this.angleTo(t); + if (0 === r) return this; + var n = Math.min(1, e / r); + return this.slerp(t, n), this + }, n.inverse = function() { + return this.conjugate() + }, n.conjugate = function() { + return this._x *= -1, this._y *= -1, this._z *= -1, this.onChangeCallback(), this + }, n.dot = function(t) { + return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w + }, n.lengthSq = function() { + return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w + }, n.length = function() { + return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w) + }, n.normalize = function() { + var t = this.length(); + return this._w = 0 === t ? (this._x = 0, this._y = 0, this._z = 0, 1) : (t = 1 / t, this._x = this._x * t, this._y = this._y * t, this._z = this._z * t, this._w * t), this.onChangeCallback(), this + }, n.multiply = function(t, e) { + return void 0 !== e ? this.multiplyQuaternions(t, e) : this.multiplyQuaternions(this, t) + }, n.premultiply = function(t) { + return this.multiplyQuaternions(t, this) + }, n.multiplyQuaternions = function(t, e) { + var r = t._x, + n = t._y, + i = t._z, + o = t._w, + a = e._x, + s = e._y, + u = e._z, + h = e._w; + return this._x = r * h + o * a + n * u - i * s, this._y = n * h + o * s + i * a - r * u, this._z = i * h + o * u + r * s - n * a, this._w = o * h - r * a - n * s - i * u, this.onChangeCallback(), this + }, n.slerp = function(t, e) { + if (0 === e) return this; + if (1 === e) return this.copy(t); + var r = this._x, + n = this._y, + i = this._z, + o = this._w, + a = o * t._w + r * t._x + n * t._y + i * t._z; + if (a < 0 ? (this._w = -t._w, this._x = -t._x, this._y = -t._y, this._z = -t._z, a = -a) : this.copy(t), 1 <= a) return this._w = o, this._x = r, this._y = n, this._z = i, this; + var s = 1 - a * a; + if (s <= Number.EPSILON) { + var u = 1 - e; + return this._w = u * o + e * this._w, this._x = u * r + e * this._x, this._y = u * n + e * this._y, this._z = u * i + e * this._z, this.normalize() + } + var h = Math.sqrt(s), + c = Math.atan2(h, a), + l = Math.sin((1 - e) * c) / h, + f = Math.sin(e * c) / h; + return this._w = o * l + this._w * f, this._x = r * l + this._x * f, this._y = n * l + this._y * f, this._z = i * l + this._z * f, this.onChangeCallback(), this + }, n.equals = function(t) { + return t._x === this._x && t._y === this._y && t._z === this._z && t._w === this._w + }, n.fromArray = function(t, e) { + return void 0 === e && (e = 0), this._x = t[e], this._y = t[e + 1], this._z = t[e + 2], this._w = t[e + 3], this.onChangeCallback(), this + }, n.toArray = function(t, e) { + return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._w, t + }, n.onChange = function(t) { + return this.onChangeCallback = t, this + }, n.onChangeCallback = function() {}, t = Quaternion, (e = [{ + key: "x", + get: function() { + return this._z + }, + set: function(t) { + this._x = t, this.onChangeCallback() + } + }, { + key: "y", + get: function() { + return this._y + }, + set: function(t) { + this._y = t, this.onChangeCallback() + } + }, { + key: "z", + set: function(t) { + this._z = t, this.onChangeCallback() + } + }, { + key: "w", + get: function() { + return this._w + }, + set: function(t) { + this._w = t, this.onChangeCallback() + } + }]) && Quaternion_defineProperties(t.prototype, e), r && Quaternion_defineProperties(t, r), Quaternion + }(), + R = new v, + D = new C; + + function Euler_defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + v.prototype.applyEuler = function(t) { + var e = D; + return !t || t.isEuler, this.applyQuaternion(e.setFromEuler(t)) + }, v.prototype.applyAxisAngle = function(t, e) { + var r = D; + return this.applyQuaternion(r.setFromAxisAngle(t, e)) + }; + var F = function() { + function Euler(t, e, r, n) { + this._x = t || 0, this._y = e || 0, this._z = r || 0, this._order = n || Euler.DefaultOrder, this.isEuler = !0 + } + var t, e, r, n = Euler.prototype; + return n.set = function(t) { + this._y = t, this.onChangeCallback() + }, n.set = function(t, e, r, n) { + return this._x = t, this._y = e, this._z = r, this._order = n || this._order, this.onChangeCallback(), this + }, n.clone = function() { + return new this.constructor(this._x, this._y, this._z, this._order) + }, n.copy = function(t) { + return this._x = t._x, this._y = t._y, this._z = t._z, this._order = t._order, this.onChangeCallback(), this + }, n.setFromRotationMatrix = function(t, e, r) { + var n = Math_clamp, + i = t.elements, + o = i[0], + a = i[4], + s = i[8], + u = i[1], + h = i[5], + c = i[9], + l = i[2], + f = i[6], + d = i[10]; + return "XYZ" === (e = e || this._order) ? (this._y = Math.asin(n(s, -1, 1)), Math.abs(s) < .99999 ? (this._x = Math.atan2(-c, d), this._z = Math.atan2(-a, o)) : (this._x = Math.atan2(f, h), this._z = 0)) : "YXZ" === e ? (this._x = Math.asin(-n(c, -1, 1)), Math.abs(c) < .99999 ? (this._y = Math.atan2(s, d), this._z = Math.atan2(u, h)) : (this._y = Math.atan2(-l, o), this._z = 0)) : "ZXY" === e ? (this._x = Math.asin(n(f, -1, 1)), Math.abs(f) < .99999 ? (this._y = Math.atan2(-l, d), this._z = Math.atan2(-a, h)) : (this._y = 0, this._z = Math.atan2(u, o))) : "ZYX" === e ? (this._y = Math.asin(-n(l, -1, 1)), Math.abs(l) < .99999 ? (this._x = Math.atan2(f, d), this._z = Math.atan2(u, o)) : (this._x = 0, this._z = Math.atan2(-a, h))) : "YZX" === e ? (this._z = Math.asin(n(u, -1, 1)), Math.abs(u) < .99999 ? (this._x = Math.atan2(-c, h), this._y = Math.atan2(-l, o)) : (this._x = 0, this._y = Math.atan2(s, d))) : "XZY" === e && (this._z = Math.asin(-n(a, -1, 1)), Math.abs(a) < .99999 ? (this._x = Math.atan2(f, h), this._y = Math.atan2(s, o)) : (this._x = Math.atan2(-c, d), this._y = 0)), this._order = e, !1 !== r && this.onChangeCallback(), this + }, n.setFromQuaternion = function(t, e, r) { + return L.makeRotationFromQuaternion(t), this.setFromRotationMatrix(L, e, r) + }, n.setFromVector3 = function(t, e) { + return this.set(t.x, t.y, t.z, e || this._order) + }, n.reorder = function(t) { + return N.setFromEuler(this), this.setFromQuaternion(N, t) + }, n.equals = function(t) { + return t._x === this._x && t._y === this._y && t._z === this._z && t._order === this._order + }, n.fromArray = function(t) { + return this._x = t[0], this._y = t[1], this._z = t[2], void 0 !== t[3] && (this._order = t[3]), this.onChangeCallback(), this + }, n.toArray = function(t, e) { + return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._order, t + }, n.toVector3 = function(t) { + return t ? t.set(this._x, this._y, this._z) : new v(this._x, this._y, this._z) + }, n.onChange = function(t) { + return this.onChangeCallback = t, this + }, n.onChangeCallback = function() {}, t = Euler, (e = [{ + key: "x", + get: function() { + return this._x + }, + set: function(t) { + this._z = t, this.onChangeCallback() + } + }, { + key: "y", + get: function() { + return this._y + } + }, { + key: "z", + get: function() { + return this._z + } + }, { + key: "order", + get: function() { + return this._order + }, + set: function(t) { + this._order = t, this.onChangeCallback() + } + }]) && Euler_defineProperties(t.prototype, e), r && Euler_defineProperties(t, r), Euler + }(), + L = new S, + N = new C; + F.RotationOrders = ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"], F.DefaultOrder = "XYZ"; + var B = r(37), + U = r.n(B), + G = r(45), + j = r.n(G), + z = r(179), + X = r.n(z); + U.a.prototype.setValues = function(t) {}; + var V = function() { + function Interpolant(t, e, r, n) { + this.parameterPositions = t, this._cachedIndex = 0, this.resultBuffer = void 0 !== n ? n : new e.constructor(r), this.sampleValues = e, this.valueSize = r, this.settings = null, this.DefaultSettings_ = {} + } + var t = Interpolant.prototype; + return t.evaluate = function(t) { + var e = this.parameterPositions, + r = this._cachedIndex, + n = e[r], + i = e[r - 1]; + t: { + e: { + var o;r: { + n: if (!(t < n)) { + for (var a = r + 2;;) { + if (void 0 === n) { + if (t < i) break n; + return r = e.length, this._cachedIndex = r, this.afterEnd_(r - 1, t, i) + } + if (r === a) break; + if (i = n, t < (n = e[++r])) break e + } + o = e.length; + break r + }if (i <= t) break t; + var s = e[1];t < s && (r = 2, i = s); + for (a = r - 2;;) { + if (void 0 === i) return this._cachedIndex = 0, this.beforeStart_(0, t, n); + if (r === a) break; + if (n = i, (i = e[--r - 1]) <= t) break e + } + o = r, + r = 0 + } + for (; r < o;) { + var u = r + o >>> 1; + t < e[u] ? o = u : r = u + 1 + } + if (n = e[r], void 0 === (i = e[r - 1])) return this._cachedIndex = 0, this.beforeStart_(0, t, n); + if (void 0 === n) return r = e.length, this._cachedIndex = r, this.afterEnd_(r - 1, i, t) + } + this._cachedIndex = r, + this.intervalChanged_(r, i, n) + } + return this.interpolate_(r, i, t, n) + }, t.getSettings_ = function() { + return this.settings || this.DefaultSettings_ + }, t.copySampleValue_ = function(t) { + for (var e = this.resultBuffer, r = this.sampleValues, n = this.valueSize, i = t * n, o = 0; o !== n; ++o) e[o] = r[i + o]; + return e + }, t.interpolate_ = function() { + throw new Error("call to abstract method") + }, t.intervalChanged_ = function() {}, Interpolant + }(); + Object.assign(V.prototype, { + beforeStart_: V.prototype.copySampleValue_, + afterEnd_: V.prototype.copySampleValue_ + }); + var q = function(o) { + var t, e; + + function CubicInterpolant(t, e, r, n) { + var i; + return (i = o.call(this, t, e, r, n) || this)._weightPrev = -0, i._offsetPrev = -0, i._weightNext = -0, i._offsetNext = -0, i.DefaultSettings_ = { + endingStart: 2400, + endingEnd: 2400 + }, i + } + e = o, (t = CubicInterpolant).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e; + var r = CubicInterpolant.prototype; + return r.intervalChanged = function(t, e, r) { + var n = this.parameterPositions, + i = t - 2, + o = t + 1, + a = n[i], + s = n[o]; + if (void 0 === a) switch (this.getSettings_().endingStart) { + case 2401: + i = t, a = 2 * e - r; + break; + case 2402: + a = e + n[i = n.length - 2] - n[i + 1]; + break; + default: + i = t, a = r + } + if (void 0 === s) switch (this.getSettings_().endingEnd) { + case 2401: + o = t, s = 2 * r - e; + break; + case 2402: + s = r + n[o = 1] - n[0]; + break; + default: + o = t - 1, s = e + } + var u = .5 * (r - e), + h = this.valueSize; + this._weightPrev = u / (e - a), this._weightNext = u / (s - r), this._offsetPrev = i * h, this._offsetNext = o * h + }, r.interpolate_ = function(t, e, r, n) { + for (var i = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = t * a, u = s - a, h = this._offsetPrev, c = this._offsetNext, l = this._weightPrev, f = this._weightNext, d = (r - e) / (n - e), p = d * d, m = p * d, v = -l * m + 2 * l * p - l * d, g = (1 + l) * m + (-1.5 - 2 * l) * p + (-.5 + l) * d + 1, y = (-1 - f) * m + (1.5 + f) * p + .5 * d, _ = f * m - f * p, b = 0; b !== a; ++b) i[b] = v * o[h + b] + g * o[u + b] + y * o[s + b] + _ * o[c + b]; + return i + }, CubicInterpolant + }(V); + var H = function(i) { + var t, e; + + function LinearInterpolant(t, e, r, n) { + return i.call(this, t, e, r, n) || this + } + return e = i, (t = LinearInterpolant).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, LinearInterpolant.prototype.interpolate_ = function(t, e, r, n) { + for (var i = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = t * a, u = s - a, h = (r - e) / (n - e), c = 1 - h, l = 0; l !== a; ++l) i[l] = o[u + l] * c + o[s + l] * h; + return i + }, LinearInterpolant + }(V); + var W = function(i) { + var t, e; + + function DiscreteInterpolant(t, e, r, n) { + return i.call(this, t, e, r, n) || this + } + return e = i, (t = DiscreteInterpolant).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, DiscreteInterpolant.prototype.interpolate_ = function(t) { + return this.copySampleValue_(t - 1) + }, DiscreteInterpolant + }(V), + Y = r(18), + K = function() { + function KeyframeTrack(t, e, r, n) { + if (void 0 === t) throw new Error("THREE.KeyframeTrack: track name is undefined"); + if (void 0 === e || 0 === e.length) throw new Error("THREE.KeyframeTrack: no keyframes in track named " + t); + this.name = t, this.times = Y.b(e, this.TimeBufferType), this.values = Y.b(r, this.ValueBufferType), this.setInterpolation(n || this.DefaultInterpolation) + } + var t = KeyframeTrack.prototype; + return t.toJSON = function(t) { + var e, r = t.constructor; + if (void 0 !== r.toJSON) e = r.toJSON(t); + else { + e = { + name: t.name, + times: Y.b(t.times, Array), + values: Y.b(t.values, Array) + }; + var n = t.getInterpolation(); + n !== t.DefaultInterpolation && (e.interpolation = n) + } + return e.type = t.ValueTypeName, e + }, t.InterpolantFactoryMethodDiscrete = function(t) { + return new W(this.times, this.values, this.getValueSize(), t) + }, t.InterpolantFactoryMethodLinear = function(t) { + return new H(this.times, this.values, this.getValueSize(), t) + }, t.InterpolantFactoryMethodSmooth = function(t) { + return new q(this.times, this.values, this.getValueSize(), t) + }, t.setInterpolation = function(t) { + var e; + switch (t) { + case 2300: + e = this.InterpolantFactoryMethodDiscrete; + break; + case 2301: + e = this.InterpolantFactoryMethodLinear; + break; + case 2302: + e = this.InterpolantFactoryMethodSmooth + } + if (void 0 !== e) return this.createInterpolant = e, this; + var r = "unsupported interpolation for " + this.ValueTypeName + " keyframe track named " + this.name; + if (void 0 === this.createInterpolant) { + if (t === this.DefaultInterpolation) throw new Error(r); + this.setInterpolation(this.DefaultInterpolation) + } + return this + }, t.getInterpolation = function() { + switch (this.createInterpolant) { + case this.InterpolantFactoryMethodDiscrete: + return 2300; + case this.InterpolantFactoryMethodLinear: + return 2301; + case this.InterpolantFactoryMethodSmooth: + return 2302 + } + }, t.getValueSize = function() { + return this.values.length / this.times.length + }, t.shift = function(t) { + if (0 !== t) + for (var e = this.times, r = 0, n = e.length; r !== n; ++r) e[r] += t; + return this + }, t.scale = function(t) { + if (1 !== t) + for (var e = this.times, r = 0, n = e.length; r !== n; ++r) e[r] *= t; + return this + }, t.trim = function(t, e) { + for (var r = this.times, n = r.length, i = 0, o = n - 1; i !== n && r[i] < t;) ++i; + for (; - 1 !== o && r[o] > e;) --o; + if (++o, 0 !== i || o !== n) { + o <= i && (i = (o = Math.max(o, 1)) - 1); + var a = this.getValueSize(); + this.times = Y.a(r, i, o), this.values = Y.a(this.values, i * a, o * a) + } + return this + }, t.validate = function() { + var t = !0, + e = this.getValueSize(); + e - Math.floor(e) != 0 && (t = !1); + var r = this.times, + n = this.values, + i = r.length; + 0 === i && (t = !1); + for (var o = null, a = 0; a !== i; a++) { + var s = r[a]; + if ("number" == typeof s && isNaN(s)) { + t = !1; + break + } + if (null !== o && s < o) { + t = !1; + break + } + o = s + } + if (void 0 !== n && Y.e(n)) + for (var u = 0, h = n.length; u !== h; ++u) { + var c = n[u]; + if (isNaN(c)) { + t = !1; + break + } + } + return t + }, t.optimize = function() { + for (var t = this.times, e = this.values, r = this.getValueSize(), n = 2302 === this.getInterpolation(), i = 1, o = t.length - 1, a = 1; a < o; ++a) { + var s = !1, + u = t[a]; + if (u !== t[a + 1] && (1 !== a || u !== u[0])) + if (n) s = !0; + else + for (var h = a * r, c = h - r, l = h + r, f = 0; f !== r; ++f) { + var d = e[h + f]; + if (d !== e[c + f] || d !== e[l + f]) { + s = !0; + break + } + } + if (s) { + if (a !== i) { + t[i] = t[a]; + for (var p = a * r, m = i * r, v = 0; v !== r; ++v) e[m + v] = e[p + v] + }++i + } + } + if (0 < o) { + t[i] = t[o]; + for (var g = o * r, y = i * r, _ = 0; _ !== r; ++_) e[y + _] = e[g + _]; + ++i + } + return i !== t.length && (this.times = Y.a(t, 0, i), this.values = Y.a(e, 0, i * r)), this + }, t.clone = function() { + var t = Y.a(this.times, 0), + e = Y.a(this.values, 0), + r = new this.constructor(this.name, t, e); + return r.createInterpolant = this.createInterpolant, r + }, KeyframeTrack + }(); + Object.assign(K.prototype, { + TimeBufferType: Float32Array, + ValueBufferType: Float32Array, + DefaultInterpolation: 2301 + }); + var Z = function(n) { + var t, e; + + function BooleanKeyframeTrack(t, e, r) { + return n.call(this, t, e, r) || this + } + return e = n, (t = BooleanKeyframeTrack).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, BooleanKeyframeTrack + }(K); + Object.assign(Z.prototype, { + ValueTypeName: "bool", + ValueBufferType: Array, + DefaultInterpolation: 2300, + InterpolantFactoryMethodLinear: void 0, + InterpolantFactoryMethodSmooth: void 0 + }); + var Q = function(o) { + var t, e; + + function ColorKeyframeTrack(t, e, r, n) { + var i; + return (i = o.call(this, t, e, r, n) || this).ValueTypeName = "color", i.ValueBufferType = Array, i + } + return e = o, (t = ColorKeyframeTrack).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, ColorKeyframeTrack + }(K); + Object.assign(Q.prototype, { + ValueTypeName: "color", + ValueBufferType: Array + }); + var J = function(i) { + var t, e; + + function QuaternionLinearInterpolant(t, e, r, n) { + return i.call(this, t, e, r, n) || this + } + return e = i, (t = QuaternionLinearInterpolant).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, QuaternionLinearInterpolant.prototype.interpolate_ = function(t, e, r, n) { + for (var i = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = t * a, u = (r - e) / (n - e), h = s + a; s !== h; s += 4) C.slerpFlat(i, 0, o, s - a, o, s, u); + return i + }, QuaternionLinearInterpolant + }(V); + var $ = function(i) { + var t, e; + + function QuaternionKeyframeTrack(t, e, r, n) { + return i.call(this, t, e, r, n) || this + } + return e = i, (t = QuaternionKeyframeTrack).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodLinear = function(t) { + return new J(this.times, this.values, this.getValueSize(), t) + }, QuaternionKeyframeTrack + }(K); + Object.assign($.prototype, { + ValueTypeName: "quaternion", + DefaultInterpolation: 2301, + InterpolantFactoryMethodSmooth: void 0 + }); + var tt = function(o) { + var t, e; + + function NumberKeyframeTrack(t, e, r, n) { + var i; + return (i = o.call(this, t, e, r, n) || this).ValueTypeName = "number", i + } + return e = o, (t = NumberKeyframeTrack).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, NumberKeyframeTrack + }(K); + Object.assign(tt.prototype, { + ValueTypeName: "number" + }); + var et = function(i) { + var t, e; + + function VectorKeyframeTrack(t, e, r, n) { + return i.call(this, t, e, r, n) || this + } + return e = i, (t = VectorKeyframeTrack).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, VectorKeyframeTrack + }(K); + Object.assign(Z.prototype, { + ValueTypeName: "vector" + }); + var rt = function(i) { + var t, e; + + function StringKeyframeTrack(t, e, r, n) { + return i.call(this, t, e, r, n) || this + } + return e = i, (t = StringKeyframeTrack).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, StringKeyframeTrack + }(K); + Object.assign(rt.prototype, { + ValueTypeName: "string", + ValueBufferType: Array, + DefaultInterpolation: 2300, + InterpolantFactoryMethodLinear: void 0, + InterpolantFactoryMethodSmooth: void 0 + }); + var nt = function() { + function AnimationClip(t, e, r) { + this.name = t, this.tracks = r, this.duration = void 0 !== e ? e : -1, this.uuid = generateUUID(), this.duration < 0 && this.resetDuration() + } + var t = AnimationClip.prototype; + return t.resetDuration = function() { + for (var t = 0, e = 0, r = this.tracks.length; e !== r; ++e) { + var n = this.tracks[e]; + t = Math.max(t, n.times[n.times.length - 1]) + } + return this.duration = t, this + }, t.trim = function() { + for (var t = 0; t < this.tracks.length; t++) this.tracks[t].trim(0, this.duration); + return this + }, t.validate = function() { + for (var t = !0, e = 0; e < this.tracks.length; e++) t = t && this.tracks[e].validate(); + return t + }, t.optimize = function() { + for (var t = 0; t < this.tracks.length; t++) this.tracks[t].optimize(); + return this + }, t.clone = function() { + for (var t = [], e = 0; e < this.tracks.length; e++) t.push(this.tracks[e].clone()); + return new AnimationClip(this.name, this.duration, t) + }, AnimationClip.parse = function(t) { + for (var e = [], r = t.tracks, n = 1 / (t.fps || 1), i = 0, o = r.length; i !== o; ++i) e.push(parseKeyframeTrack(r[i]).scale(n)); + return new AnimationClip(t.name, t.duration, e) + }, AnimationClip.CreateFromMorphTargetSequence = function(t, e, r, n) { + for (var i = e.length, o = [], a = 0; a < i; a++) { + var s = [], + u = []; + s.push((a + i - 1) % i, a, (a + 1) % i), u.push(0, 1, 0); + var h = Y.d(s); + s = Y.f(s, 1, h), u = Y.f(u, 1, h), n || 0 !== s[0] || (s.push(i), u.push(u[0])), o.push(new tt(".morphTargetInfluences[" + e[a].name + "]", s, u).scale(1 / r)) + } + return new AnimationClip(t, -1, o) + }, AnimationClip.findByName = function(t, e) { + var r = t; + if (!Array.isArray(t)) { + var n = t; + r = n.geometry && n.geometry.animations || n.animations + } + for (var i = 0; i < r.length; i++) + if (r[i].name === e) return r[i]; + return null + }, AnimationClip.CreateClipsFromMorphTargetSequences = function(t, e, r) { + for (var n = {}, i = /^([\w-]*?)([\d]+)$/, o = 0, a = t.length; o < a; o++) { + var s = t[o], + u = s.name.match(i); + if (u && 1 < u.length) { + var h = u[1], + c = n[h]; + c || (n[h] = c = []), c.push(s) + } + } + var l = []; + for (var f in n) l.push(AnimationClip.CreateFromMorphTargetSequence(f, n[f], e, r)); + return l + }, AnimationClip.parseAnimation = function(t, e) { + if (!t) return null; + for (var r = function(t, e, r, n, i) { + if (0 !== r.length) { + var o = [], + a = []; + Y.c(r, o, a, n), 0 !== o.length && i.push(new t(e, o, a)) + } + }, n = [], i = t.name || "default", o = t.length || -1, a = t.fps || 30, s = t.hierarchy || [], u = 0; u < s.length; u++) { + var h = s[u].keys; + if (h && 0 !== h.length) + if (h[0].morphTargets) { + for (var c = {}, l = 0; l < h.length; l++) + if (h[l].morphTargets) + for (var f = 0; f < h[l].morphTargets.length; f++) c[h[l].morphTargets[f]] = -1; + for (var d in c) { + for (var p = [], m = [], v = 0; v !== h[k].morphTargets.length; ++v) { + var g = h[k]; + p.push(g.time), m.push(g.morphTarget === d ? 1 : 0) + } + n.push(new tt(".morphTargetInfluence[" + d + "]", p, m)) + } + o = c.length * (a || 1) + } else { + var y = ".bones[" + e[u].name + "]"; + r(et, y + ".position", h, "pos", n), r($, y + ".quaternion", h, "rot", n), r(et, y + ".scale", h, "scl", n) + } + } + return 0 === n.length ? null : new AnimationClip(i, o, n) + }, AnimationClip + }(); + + function parseKeyframeTrack(t) { + if (void 0 === t.type) throw new Error("THREE.KeyframeTrack: track type undefined, can not parse"); + var e = function(t) { + switch (t.toLowerCase()) { + case "scalar": + case "double": + case "float": + case "number": + case "integer": + return tt; + case "vector": + case "vector2": + case "vector3": + case "vector4": + return et; + case "color": + return Q; + case "quaternion": + return $; + case "bool": + case "boolean": + return Z; + case "string": + return rt + } + throw new Error("THREE.KeyframeTrack: Unsupported typeName: " + t) + }(t.type); + if (void 0 === t.times) { + var r = [], + n = []; + Y.c(t.keys, r, n, "value"), t.times = r, t.values = n + } + return void 0 !== e.parse ? e.parse(t) : new e(t.name, t.times, t.values, t.interpolation) + } + var it = function() { + function AnimationAction(t, e, r) { + this._mixer = t, this._clip = e, this._localRoot = r || null; + for (var n = e.tracks, i = n.length, o = new Array(i), a = { + endingStart: 2400, + endingEnd: 2400 + }, s = 0; s !== i; ++s) { + var u = n[s].createInterpolant(null); + (o[s] = u).settings = a + } + this._interpolantSettings = a, this._interpolants = o, this._propertyBindings = new Array(i), this._cacheIndex = null, this._byClipCacheIndex = null, this._timeScaleInterpolant = null, this._weightInterpolant = null, this.loop = 2201, this._loopCount = -1, this._startTime = null, this.time = 0, this.timeScale = 1, this._effectiveTimeScale = 1, this.weight = 1, this._effectiveWeight = 1, this.repetitions = 1 / 0, this.paused = !1, this.enabled = !0, this.clampWhenFinished = !1, this.zeroSlopeAtStart = !0, this.zeroSlopeAtEnd = !0 + } + var t = AnimationAction.prototype; + return t.play = function() { + return this._mixer._activateAction(this), this + }, t.stop = function() { + return this._mixer._deactivateAction(this), this.reset() + }, t.reset = function() { + return this.paused = !1, this.enabled = !0, this.time = 0, this._loopCount = -1, this._startTime = null, this.stopFading().stopWarping() + }, t.isRunning = function() { + return this.enabled && !this.paused && 0 !== this.timeScale && null === this._startTime && this._mixer._isActiveAction(this) + }, t.isScheduled = function() { + return this._mixer._isActiveAction(this) + }, t.startAt = function(t) { + return this._startTime = t, this + }, t.setLoop = function(t, e) { + return this.loop = t, this.repetitions = e, this + }, t.setEffectiveWeight = function(t) { + return this.weight = t, this._effectiveWeight = this.enabled ? t : 0, this.stopFading() + }, t.getEffectiveWeight = function() { + return this._effectiveWeight + }, t.fadeIn = function(t) { + return this._scheduleFading(t, 0, 1) + }, t.fadeOut = function(t) { + return this._scheduleFading(t, 1, 0) + }, t.crossFadeFrom = function(t, e, r) { + if (t.fadeOut(e), this.fadeIn(e), r) { + var n = this._clip.duration, + i = t._clip.duration, + o = i / n, + a = n / i; + t.warp(1, o, e), this.warp(a, 1, e) + } + return this + }, t.crossFadeTo = function(t, e, r) { + return t.crossFadeFrom(this, e, r) + }, t.stopFading = function() { + var t = this._weightInterpolant; + return null !== t && (this._weightInterpolant = null, this._mixer._takeBackControlInterpolant(t)), this + }, t.setEffectiveTimeScale = function(t) { + return this.timeScale = t, this._effectiveTimeScale = this.paused ? 0 : t, this.stopWarping() + }, t.getEffectiveTimeScale = function() { + return this._effectiveTimeScale + }, t.setDuration = function(t) { + return this.timeScale = this._clip.duration / t, this.stopWarping() + }, t.syncWith = function(t) { + return this.time = t.time, this.timeScale = t.timeScale, this.stopWarping() + }, t.halt = function(t) { + return this.warp(this._effectiveTimeScale, 0, t) + }, t.warp = function(t, e, r) { + var n = this._mixer, + i = n.time, + o = this._timeScaleInterpolant, + a = this.timeScale; + null === o && (o = n._lendControlInterpolant(), this._timeScaleInterpolant = o); + var s = o.parameterPositions, + u = o.sampleValues; + return s[0] = i, s[1] = i + r, u[0] = t / a, u[1] = e / a, this + }, t.stopWarping = function() { + var t = this._timeScaleInterpolant; + return null !== t && (this._timeScaleInterpolant = null, this._mixer._takeBackControlInterpolant(t)), this + }, t.getMixer = function() { + return this._mixer + }, t.getClip = function() { + return this._clip + }, t.getRoot = function() { + return this._localRoot || this._mixer._root + }, t._update = function(t, e, r, n) { + if (this.enabled) { + var i = this._startTime; + if (null !== i) { + var o = (t - i) * r; + if (o < 0 || 0 === r) return; + this._startTime = null, e = r * o + } + e *= this._updateTimeScale(t); + var a = this._updateTime(e), + s = this._updateWeight(t); + if (0 < s) + for (var u = this._interpolants, h = this._propertyBindings, c = 0, l = u.length; c !== l; ++c) u[c].evaluate(a), h[c].accumulate(n, s) + } else this._updateWeight(t) + }, t._updateWeight = function(t) { + var e = 0; + if (this.enabled) { + e = this.weight; + var r = this._weightInterpolant; + if (null !== r) { + var n = r.evaluate(t)[0]; + e *= n, t > r.parameterPositions[1] && (this.stopFading(), 0 === n && (this.enabled = !1)) + } + } + return this._effectiveWeight = e + }, t._updateTimeScale = function(t) { + var e = 0; + if (!this.paused) { + e = this.timeScale; + var r = this._timeScaleInterpolant; + if (null !== r) e *= r.evaluate(t)[0], t > r.parameterPositions[1] && (this.stopWarping(), 0 === e ? this.paused = !0 : this.timeScale = e) + } + return this._effectiveTimeScale = e + }, t._updateTime = function(t) { + var e = this.time + t, + r = this._clip.duration, + n = this.loop, + i = this._loopCount, + o = 2202 === n; + if (0 === t) return -1 === i ? e : o && 1 == (1 & i) ? r - e : e; + if (2200 === n) { + -1 === i && (this._loopCount = 0, this._setEndings(!0, !0, !1)); + t: { + if (r <= e) e = r; + else { + if (!(e < 0)) break t; + e = 0 + } + this.clampWhenFinished ? this.paused = !0 : this.enabled = !1, + this._mixer.dispatchEvent({ + type: "finished", + action: this, + direction: t < 0 ? -1 : 1 + }) + } + } else { + if (-1 === i && (0 <= t ? (i = 0, this._setEndings(!0, 0 === this.repetitions, o)) : this._setEndings(0 === this.repetitions, !0, o)), r <= e || e < 0) { + var a = Math.floor(e / r); + e -= r * a, i += Math.abs(a); + var s = this.repetitions - i; + if (s <= 0) this.clampWhenFinished ? this.paused = !0 : this.enabled = !1, e = 0 < t ? r : 0, this._mixer.dispatchEvent({ + type: "finished", + action: this, + direction: 0 < t ? 1 : -1 + }); + else { + if (1 === s) { + var u = t < 0; + this._setEndings(u, !u, o) + } else this._setEndings(!1, !1, o); + this._loopCount = i, this._mixer.dispatchEvent({ + type: "loop", + action: this, + loopDelta: a + }) + } + } + if (o && 1 == (1 & i)) return r - (this.time = e) + } + return this.time = e + }, t._setEndings = function(t, e, r) { + var n = this._interpolantSettings; + n.endingEnd = r ? n.endingStart = 2401 : (n.endingStart = t ? this.zeroSlopeAtStart ? 2401 : 2400 : 2402, e ? this.zeroSlopeAtEnd ? 2401 : 2400 : 2402) + }, t._scheduleFading = function(t, e, r) { + var n = this._mixer, + i = n.time, + o = this._weightInterpolant; + null === o && (o = n._lendControlInterpolant(), this._weightInterpolant = o); + var a = o.parameterPositions, + s = o.sampleValues; + return a[0] = i, s[0] = e, a[1] = i + t, s[1] = r, this + }, AnimationAction + }(), + ot = "\\[\\]\\.:\\/", + at = new RegExp("[" + ot + "]", "g"), + st = "[^" + ot + "]", + ut = "[^" + ot.replace("\\.", "") + "]", + ht = /((?:WC+[\/:])*)/.source.replace("WC", st), + ct = /(WCOD+)?/.source.replace("WCOD", ut), + lt = /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC", st), + ft = /\.(WC+)(?:\[(.+)\])?/.source.replace("WC", st), + dt = new RegExp("^" + ht + ct + lt + ft + "$"), + pt = ["material", "materials", "bones"], + mt = function() { + function Composite(t, e, r) { + var n = r || vt.parseTrackName(e); + this._targetGroup = t, this._bindings = t.subscribe_(e, n) + } + var t = Composite.prototype; + return t.getValue = function(t, e) { + this.bind(); + var r = this._targetGroup.nCachedObjects_, + n = this._bindings[r]; + void 0 !== n && n.getValue(t, e) + }, t.setValue = function(t, e) { + for (var r = this._bindings, n = this._targetGroup.nCachedObjects_, i = r.length; n !== i; ++n) r[n].setValue(t, e) + }, t.bind = function() { + for (var t = this._bindings, e = this._targetGroup.nCachedObjects_, r = t.length; e !== r; ++e) t[e].bind() + }, t.unbind = function() { + for (var t = this._bindings, e = this._targetGroup.nCachedObjects_, r = t.length; e !== r; ++e) t[e].unbind() + }, Composite + }(), + vt = function() { + function PropertyBinding(t, e, r) { + this.path = e, this.parsedPath = r || PropertyBinding.parseTrackName(e), this.node = PropertyBinding.findNode(t, this.parsedPath.nodeName) || t, this.rootNode = t + } + PropertyBinding.sanitizeNodeName = function(t) { + return t.replace(/\s/g, "_").replace(at, "") + }, PropertyBinding.create = function(t, e, r) { + return t && t.isAnimationObjectGroup ? new PropertyBinding.Composite(t, e, r) : new PropertyBinding(t, e, r) + }, PropertyBinding.parseTrackName = function(t) { + var e = dt.exec(t); + if (!e) throw new Error("PropertyBinding: Cannot parse trackName: " + t); + var r = { + nodeName: e[2], + objectName: e[3], + objectIndex: e[4], + propertyName: e[5], + propertyIndex: e[6] + }, + n = r.nodeName && r.nodeName.lastIndexOf("."); + if (void 0 !== n && -1 !== n) { + var i = r.nodeName.substring(n + 1); - 1 !== pt.indexOf(i) && (r.nodeName = r.nodeName.substring(0, n), r.objectName = i) + } + if (null === r.propertyName || 0 === r.propertyName.length) throw new Error("PropertyBinding: can not parse propertyName from trackName: " + t); + return r + }, PropertyBinding.findNode = function(t, i) { + if (!i || "" === i || "root" === i || "." === i || -1 === i || i === t.name || i === t.uuid) return t; + if (t.skeleton) { + var e = t.skeleton.getBoneByName(i); + if (void 0 !== e) return e + } + if (t.children) { + var r = function searchNodeSubtree(t) { + for (var e = 0; e < t.length; e++) { + var r = t[e]; + if (r.name === i || r.uuid === i) return r; + var n = searchNodeSubtree(r.children); + if (n) return n + } + return null + }(t.children); + if (r) return r + } + return null + }; + var t = PropertyBinding.prototype; + return t._getValue_unavailable = function() {}, t._setValue_unavailable = function() {}, t.getValue = function(t, e) { + this.bind(), this.getValue(t, e) + }, t.setValue = function(t, e) { + this.bind(), this.setValue(t, e) + }, t.bind = function() { + var t = this.node, + e = this.parsedPath, + r = e.objectName, + n = e.propertyName, + i = e.propertyIndex; + if (t || (t = PropertyBinding.findNode(this.rootNode, e.nodeName) || this.rootNode, this.node = t), this.getValue = this._getValue_unavailable, this.setValue = this._setValue_unavailable, t) { + if (r) { + var o = e.objectIndex; + switch (r) { + case "materials": + if (!t.material) return; + if (!t.material.materials) return; + t = t.material.materials; + break; + case "bones": + if (!t.skeleton) return; + t = t.skeleton.bones; + for (var a = 0; a < t.length; a++) + if (t[a].name === o) { + o = a; + break + } + break; + default: + if (void 0 === t[r]) return; + t = t[r] + } + if (void 0 !== o) { + if (void 0 === t[o]) return; + t = t[o] + } + } + var s = t[n]; + if (void 0 !== s) { + var u = this.Versioning.None; + void 0 !== (this.targetObject = t).needsUpdate ? u = this.Versioning.NeedsUpdate : void 0 !== t.matrixWorldNeedsUpdate && (u = this.Versioning.MatrixWorldNeedsUpdate); + var h = this.BindingType.Direct; + if (void 0 !== i) { + if ("morphTargetInfluences" === n) { + if (!t.geometry) return; + if (t.geometry.isBufferGeometry) { + if (!t.geometry.morphAttributes) return; + for (var c = 0; c < this.node.geometry.morphAttributes.position.length; c++) + if (t.geometry.morphAttributes.position[c].name === i) { + i = c; + break + } + } else { + if (!t.geometry.morphTargets) return; + for (var l = 0; l < this.node.geometry.morphTargets.length; l++) + if (t.geometry.morphTargets[l].name === i) { + i = l; + break + } + } + } + h = this.BindingType.ArrayElement, this.resolvedProperty = s, this.propertyIndex = i + } else void 0 !== s.fromArray && void 0 !== s.toArray ? (h = this.BindingType.HasFromToArray, this.resolvedProperty = s) : Array.isArray(s) ? (h = this.BindingType.EntireArray, this.resolvedProperty = s) : this.propertyName = n; + this.getValue = this.GetterByBindingType[h], this.setValue = this.SetterByBindingTypeAndVersioning[h][u] + } else e.nodeName + } + }, t.unbind = function() { + this.node = null, this.getValue = this._getValue_unbound, this.setValue = this._setValue_unbound + }, PropertyBinding + }(); + Object.assign(vt.prototype, { + BindingType: { + Direct: 0, + EntireArray: 1, + ArrayElement: 2, + HasFromToArray: 3 + }, + Versioning: { + None: 0, + NeedsUpdate: 1, + MatrixWorldNeedsUpdate: 2 + }, + GetterByBindingType: [function(t, e) { + t[e] = this.node[this.propertyName] + }, function(t, e) { + for (var r = this.resolvedProperty, n = 0, i = r.length; n !== i; ++n) t[e++] = r[n] + }, function(t, e) { + t[e] = this.resolvedProperty[this.propertyIndex] + }, function(t, e) { + this.resolvedProperty.toArray(t, e) + }], + SetterByBindingTypeAndVersioning: [ + [function(t, e) { + this.targetObject[this.propertyName] = t[e] + }, function(t, e) { + this.targetObject[this.propertyName] = t[e], this.targetObject.needsUpdate = !0 + }, function(t, e) { + this.targetObject[this.propertyName] = t[e], this.targetObject.matrixWorldNeedsUpdate = !0 + }], + [function(t, e) { + for (var r = this.resolvedProperty, n = 0, i = r.length; n !== i; ++n) r[n] = t[e++] + }, function(t, e) { + for (var r = this.resolvedProperty, n = 0, i = r.length; n !== i; ++n) r[n] = t[e++]; + this.targetObject.needsUpdate = !0 + }, function(t, e) { + for (var r = this.resolvedProperty, n = 0, i = r.length; n !== i; ++n) r[n] = t[e++]; + this.targetObject.matrixWorldNeedsUpdate = !0 + }], + [function(t, e) { + this.resolvedProperty[this.propertyIndex] = t[e] + }, function(t, e) { + this.resolvedProperty[this.propertyIndex] = t[e], this.targetObject.needsUpdate = !0 + }, function(t, e) { + this.resolvedProperty[this.propertyIndex] = t[e], this.targetObject.matrixWorldNeedsUpdate = !0 + }], + [function(t, e) { + this.resolvedProperty.fromArray(t, e) + }, function(t, e) { + this.resolvedProperty.fromArray(t, e), this.targetObject.needsUpdate = !0 + }, function(t, e) { + this.resolvedProperty.fromArray(t, e), this.targetObject.matrixWorldNeedsUpdate = !0 + }] + ] + }), Object.assign(vt, { + Composite: mt + }); + var gt = function() { + function PropertyMixer(t, e, r) { + this.binding = t, this.valueSize = r; + var n, i = Float64Array; + switch (e) { + case "quaternion": + n = this._slerp; + break; + case "string": + case "bool": + i = Array, n = this._select; + break; + default: + n = this._lerp + } + this.buffer = new i(4 * r), this._mixBufferRegion = n, this.cumulativeWeight = 0, this.useCount = 0, this.referenceCount = 0 + } + var t = PropertyMixer.prototype; + return t.accumulate = function(t, e) { + var r = this.buffer, + n = this.valueSize, + i = t * n + n, + o = this.cumulativeWeight; + if (0 === o) { + for (var a = 0; a !== n; ++a) r[i + a] = r[a]; + o = e + } else { + var s = e / (o += e); + this._mixBufferRegion(r, i, 0, s, n) + } + this.cumulativeWeight = o + }, t.apply = function(t) { + var e = this.valueSize, + r = this.buffer, + n = t * e + e, + i = this.cumulativeWeight, + o = this.binding; + if (this.cumulativeWeight = 0, i < 1) { + var a = 3 * e; + this._mixBufferRegion(r, n, a, 1 - i, e) + } + for (var s = e, u = e + e; s !== u; ++s) + if (r[s] !== r[s + e]) { + o.setValue(r, n); + break + } + }, t.saveOriginalState = function() { + var t = this.binding, + e = this.buffer, + r = this.valueSize, + n = 3 * r; + t.getValue(e, n); + for (var i = r, o = n; i !== o; ++i) e[i] = e[n + i % r]; + this.cumulativeWeight = 0 + }, t.restoreOriginalState = function() { + var t = 3 * this.valueSize; + this.binding.setValue(this.buffer, t) + }, t._select = function(t, e, r, n, i) { + if (.5 <= n) + for (var o = 0; o !== i; ++o) t[e + o] = t[r + o] + }, t._slerp = function(t, e, r, n) { + C.slerpFlat(t, e, t, e, t, r, n) + }, t._lerp = function(t, e, r, n, i) { + for (var o = 1 - n, a = 0; a !== i; ++a) { + var s = e + a; + t[s] = t[s] * o + t[r + a] * n + } + }, PropertyMixer + }(), + yt = function() { + function AnimationMixer(t) { + this._root = t, this._initMemoryManager(), this._accuIndex = 0, this.time = 0, this.timeScale = 1 + } + var t = AnimationMixer.prototype; + return t._bindAction = function(t, e) { + var r = t._localRoot || this._root, + n = t._clip.tracks, + i = n.length, + o = t._propertyBindings, + a = t._interpolants, + s = r.uuid, + u = this._bindingsByRootAndName, + h = u[s]; + void 0 === h && (h = {}, u[s] = h); + for (var c = 0; c !== i; ++c) { + var l = n[c], + f = l.name, + d = h[f]; + if (void 0 !== d) o[c] = d; + else { + if (void 0 !== (d = o[c])) { + null === d._cacheIndex && (++d.referenceCount, this._addInactiveBinding(d, s, f)); + continue + } + var p = e && e._propertyBindings[c].binding.parsedPath; + ++(d = new gt(vt.create(r, f, p), l.ValueTypeName, l.getValueSize())).referenceCount, this._addInactiveBinding(d, s, f), o[c] = d + } + a[c].resultBuffer = d.buffer + } + }, t._activateAction = function(t) { + if (!this._isActiveAction(t)) { + if (null === t._cacheIndex) { + var e = (t._localRoot || this._root).uuid, + r = t._clip.uuid, + n = this._actionsByClip[r]; + this._bindAction(t, n && n.knownActions[0]), this._addInactiveAction(t, r, e) + } + for (var i = t._propertyBindings, o = 0, a = i.length; o !== a; ++o) { + var s = i[o]; + 0 == s.useCount++ && (this._lendBinding(s), s.saveOriginalState()) + } + this._lendAction(t) + } + }, t._deactivateAction = function(t) { + if (this._isActiveAction(t)) { + for (var e = t._propertyBindings, r = 0, n = e.length; r !== n; ++r) { + var i = e[r]; + 0 == --i.useCount && (i.restoreOriginalState(), this._takeBackBinding(i)) + } + this._takeBackAction(t) + } + }, t._initMemoryManager = function() { + this._actions = [], this._nActiveActions = 0, this._actionsByClip = {}, this._bindings = [], this._nActiveBindings = 0, this._bindingsByRootAndName = {}, this._controlInterpolants = [], this._nActiveControlInterpolants = 0; + var t = this; + this.stats = { + actions: { + get total() { + return t._actions.length + }, + get inUse() { + return t._nActiveActions + } + }, + bindings: { + get total() { + return t._bindings.length + }, + get inUse() { + return t._nActiveBindings + } + }, + controlInterpolants: { + get total() { + return t._controlInterpolants.length + }, + get inUse() { + return t._nActiveControlInterpolants + } + } + } + }, t._isActiveAction = function(t) { + var e = t._cacheIndex; + return null !== e && e < this._nActiveActions + }, t._addInactiveAction = function(t, e, r) { + var n = this._actions, + i = this._actionsByClip, + o = i[e]; + if (void 0 === o) o = { + knownActions: [t], + actionByRoot: {} + }, t._byClipCacheIndex = 0, i[e] = o; + else { + var a = o.knownActions; + t._byClipCacheIndex = a.length, a.push(t) + } + t._cacheIndex = n.length, n.push(t), o.actionByRoot[r] = t + }, t._removeInactiveAction = function(t) { + var e = this._actions, + r = e[e.length - 1], + n = t._cacheIndex; + e[r._cacheIndex = n] = r, e.pop(), t._cacheIndex = null; + var i = t._clip.uuid, + o = this._actionsByClip, + a = o[i], + s = a.knownActions, + u = s[s.length - 1], + h = t._byClipCacheIndex; + s[u._byClipCacheIndex = h] = u, s.pop(), t._byClipCacheIndex = null, delete a.actionByRoot[(t._localRoot || this._root).uuid], 0 === s.length && delete o[i], this._removeInactiveBindingsForAction(t) + }, t._removeInactiveBindingsForAction = function(t) { + for (var e = t._propertyBindings, r = 0, n = e.length; r !== n; ++r) { + var i = e[r]; + 0 == --i.referenceCount && this._removeInactiveBinding(i) + } + }, t._lendAction = function(t) { + var e = this._actions, + r = t._cacheIndex, + n = this._nActiveActions++, + i = e[n]; + e[t._cacheIndex = n] = t, e[i._cacheIndex = r] = i + }, t._takeBackAction = function(t) { + var e = this._actions, + r = t._cacheIndex, + n = --this._nActiveActions, + i = e[n]; + e[t._cacheIndex = n] = t, e[i._cacheIndex = r] = i + }, t._addInactiveBinding = function(t, e, r) { + var n = this._bindingsByRootAndName, + i = n[e], + o = this._bindings; + void 0 === i && (i = {}, n[e] = i), (i[r] = t)._cacheIndex = o.length, o.push(t) + }, t._removeInactiveBinding = function(t) { + var e = this._bindings, + r = t.binding, + n = r.rootNode.uuid, + i = r.path, + o = this._bindingsByRootAndName, + a = o[n], + s = e[e.length - 1], + u = t._cacheIndex; + e[s._cacheIndex = u] = s, e.pop(), delete a[i]; + t: { + for (var h in a) break t;delete o[n] + } + }, t._lendBinding = function(t) { + var e = this._bindings, + r = t._cacheIndex, + n = this._nActiveBindings++, + i = e[n]; + e[t._cacheIndex = n] = t, e[i._cacheIndex = r] = i + }, t._takeBackBinding = function(t) { + var e = this._bindings, + r = t._cacheIndex, + n = --this._nActiveBindings, + i = e[n]; + e[t._cacheIndex = n] = t, e[i._cacheIndex = r] = i + }, t._lendControlInterpolant = function() { + var t = this._controlInterpolants, + e = this._nActiveControlInterpolants++, + r = t[e]; + return void 0 === r && (t[(r = new H(new Float32Array(2), new Float32Array(2), 1, this._controlInterpolantsResultBuffer)).__cacheIndex = e] = r), r + }, t._takeBackControlInterpolant = function(t) { + var e = this._controlInterpolants, + r = t.__cacheIndex, + n = --this._nActiveControlInterpolants, + i = e[n]; + e[t.__cacheIndex = n] = t, e[i.__cacheIndex = r] = i + }, t.clipAction = function(t, e) { + var r = e || this._root, + n = r.uuid, + i = "string" == typeof t ? nt.findByName(r, t) : t, + o = null !== i ? i.uuid : t, + a = this._actionsByClip[o], + s = null; + if (void 0 !== a) { + var u = a.actionByRoot[n]; + if (void 0 !== u) return u; + s = a.knownActions[0], null === i && (i = s._clip) + } + if (null === i) return null; + var h = new it(this, i, e); + return this._bindAction(h, s), this._addInactiveAction(h, o, n), h + }, t.existingAction = function(t, e) { + var r = e || this._root, + n = r.uuid, + i = "string" == typeof t ? nt.findByName(r, t) : t, + o = i ? i.uuid : t, + a = this._actionsByClip[o]; + return void 0 !== a && a.actionByRoot[n] || null + }, t.stopAllAction = function() { + var t = this._actions, + e = this._nActiveActions, + r = this._bindings, + n = this._nActiveBindings; + this._nActiveActions = 0; + for (var i = this._nActiveBindings = 0; i !== e; ++i) t[i].reset(); + for (var o = 0; o !== n; ++o) r[o].useCount = 0; + return this + }, t.update = function(t) { + t *= this.timeScale; + for (var e = this._actions, r = this._nActiveActions, n = this.time += t, i = Math.sign(t), o = this._accuIndex ^= 1, a = 0; a !== r; ++a) { + e[a]._update(n, t, i, o) + } + for (var s = this._bindings, u = this._nActiveBindings, h = 0; h !== u; ++h) s[h].apply(o); + return this + }, t.getRoot = function() { + return this._root + }, t.uncacheClip = function(t) { + var e = this._actions, + r = t.uuid, + n = this._actionsByClip, + i = n[r]; + if (void 0 !== i) { + for (var o = i.knownActions, a = 0, s = o.length; a !== s; ++a) { + var u = o[a]; + this._deactivateAction(u); + var h = u._cacheIndex, + c = e[e.length - 1]; + u._cacheIndex = null, u._byClipCacheIndex = null, e[c._cacheIndex = h] = c, e.pop(), this._removeInactiveBindingsForAction(u) + } + delete n[r] + } + }, t.uncacheRoot = function(t) { + var e = t.uuid, + r = this._actionsByClip; + for (var n in r) { + var i = r[n].actionByRoot[e]; + void 0 !== i && (this._deactivateAction(i), this._removeInactiveAction(i)) + } + var o = this._bindingsByRootAndName[e]; + if (void 0 !== o) + for (var a in o) { + var s = o[a]; + s.restoreOriginalState(), this._removeInactiveBinding(s) + } + }, t.uncacheAction = function(t, e) { + var r = this.existingAction(t, e); + null !== r && (this._deactivateAction(r), this._removeInactiveAction(r)) + }, t.dispatchEvent = function() {}, AnimationMixer + }(); + Object.assign(yt.prototype, { + _controlInterpolantsResultBuffer: new Float32Array(1) + }); + var _t = 0, + bt = new C, + xt = new S, + wt = new v, + Tt = new v, + St = function() { + function Object3D() { + Object.defineProperty(this, "id", { + value: _t++ + }), this.uuid = generateUUID(), this.name = "", this.type = "Object3D", this.parent = null, this.children = [], this.up = Object3D.DefaultUp.clone(); + var t = new v, + e = new F, + r = new C, + n = new v(1, 1, 1); + e.onChange(function() { + r.setFromEuler(e, !1) + }), r.onChange(function() { + e.setFromQuaternion(r, void 0, !1) + }), this.position = void 0, this.rotation = void 0, this.quaternion = void 0, this.scale = void 0, this.modelViewMatrix = void 0, this.normalMatrix = void 0, Object.defineProperties(this, { + position: { + configurable: !0, + enumerable: !0, + value: t + }, + rotation: { + configurable: !0, + enumerable: !0, + value: e + }, + quaternion: { + configurable: !0, + enumerable: !0, + value: r + }, + scale: { + configurable: !0, + enumerable: !0, + value: n + }, + modelViewMatrix: { + value: new S + }, + normalMatrix: { + value: new w + } + }), this.matrix = new S, this.matrixWorld = new S, this.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate, this.matrixWorldNeedsUpdate = !1, this.visible = !0, this.userData = {}, this.isObject3D = !0 + } + var t = Object3D.prototype; + return t.applyMatrix = function(t) { + this.matrix.multiplyMatrices(t, this.matrix), this.matrix.decompose(this.position, this.quaternion, this.scale) + }, t.lookAt = function(t, e, r) { + var n = bt, + i = xt, + o = wt, + a = Tt; + t.isVector3 ? o.copy(t) : o.set(t, e, r); + var s = this.parent; + this.updateWorldMatrix(!0, !1), a.setFromMatrixPosition(this.matrixWorld), this.isCamera || this.isLight ? i.lookAt(a, o, this.up) : i.lookAt(o, a, this.up), this.quaternion.setFromRotationMatrix(i), s && (i.extractRotation(s.matrixWorld), n.setFromRotationMatrix(i), this.quaternion.premultiply(n.inverse())) + }, t.add = function(t) { + if (1 < arguments.length) { + for (var e = 0; e < arguments.length; e++) this.add(arguments[e]); + return this + } + return t === this || t && t.isObject3D && (null !== t.parent && t.parent.remove(t), (t.parent = this).children.push(t)), this + }, t.remove = function(t) { + if (1 < arguments.length) { + for (var e = 0; e < arguments.length; e++) this.remove(arguments[e]); + return this + } + var r = this.children.indexOf(t); + return -1 !== r && (t.parent = null, t.dispatchEvent({ + type: "removed" + }), this.children.splice(r, 1)), this + }, t.getObjectById = function(t) { + return this.getObjectByProperty("id", t) + }, t.getObjectByName = function(t) { + return this.getObjectByProperty("name", t) + }, t.getObjectByProperty = function(t, e) { + if (this[t] === e) return this; + for (var r = 0, n = this.children.length; r < n; r++) { + var i = this.children[r].getObjectByProperty(t, e); + if (void 0 !== i) return i + } + }, t.getWorldPosition = function(t) { + return void 0 === t && (t = new v), this.updateMatrixWorld(!0), t.setFromMatrixPosition(this.matrixWorld) + }, t.getWorldQuaternion = function(t) { + var e = wt, + r = Tt; + return void 0 === t && (t = new C), this.updateMatrixWorld(!0), this.matrixWorld.decompose(e, t, r), t + }, t.getWorldScale = function(t) { + var e = wt, + r = bt; + return void 0 === t && (t = new v), this.updateMatrixWorld(!0), this.matrixWorld.decompose(e, r, t), t + }, t.getWorldDirection = function(t) { + void 0 === t && (t = new v), this.updateMatrixWorld(!0); + var e = this.matrixWorld.elements; + return t.set(e[8], e[9], e[10]).normalize() + }, t.traverse = function(t) { + t(this); + for (var e = this.children, r = 0, n = e.length; r < n; r++) e[r].traverse(t) + }, t.traverseVisible = function(t) { + if (!1 !== this.visible) { + t(this); + for (var e = this.children, r = 0, n = e.length; r < n; r++) e[r].traverseVisible(t) + } + }, t.traverseAncestors = function(t) { + var e = this.parent; + null !== e && (t(e), e.traverseAncestors(t)) + }, t.updateMatrix = function() { + this.matrix.compose(this.position, this.quaternion, this.scale), this.matrixWorldNeedsUpdate = !0 + }, t.updateMatrixWorld = function(t) { + this.matrixAutoUpdate && this.updateMatrix(), (this.matrixWorldNeedsUpdate || t) && (null === this.parent ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), t = !(this.matrixWorldNeedsUpdate = !1)); + for (var e = this.children, r = 0, n = e.length; r < n; r++) e[r].updateMatrixWorld(t) + }, t.updateWorldMatrix = function(t, e) { + var r = this.parent; + if (!0 === t && null !== r && r.updateWorldMatrix(!0, !1), this.matrixAutoUpdate && this.updateMatrix(), null === this.parent ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), !0 === e) + for (var n = this.children, i = 0, o = n.length; i < o; i++) n[i].updateWorldMatrix(!1, !0) + }, Object3D + }(); + St.DefaultUp = new v(0, 1, 0), St.DefaultMatrixAutoUpdate = !0; + var Mt = function(e) { + var t, r; + + function Group() { + var t; + return (t = e.call(this) || this).type = "Group", t.isGroup = !0, t + } + return r = e, (t = Group).prototype = Object.create(r.prototype), (t.prototype.constructor = t).__proto__ = r, Group + }(St); + var Et = function(e) { + var t, r; + + function Bone() { + var t; + return (t = e.call(this) || this).type = "Bone", t.isBone = !0, t.root = !1, t + } + return r = e, (t = Bone).prototype = Object.create(r.prototype), (t.prototype.constructor = t).__proto__ = r, Bone + }(St), + At = 1, + Pt = function() { + function BufferGeometry() { + Object.defineProperty(this, "id", { + value: At += 2 + }), this.uuid = generateUUID(), this.name = "", this.type = "BufferGeometry", this.index = null, this.attributes = {}, this.morphAttributes = {}, this.groups = [], this.isBufferGeometry = !0 + } + var t = BufferGeometry.prototype; + return t.getIndex = function() { + return this.index + }, t.setIndex = function(t) { + Array.isArray(t) ? this.index = new(65535 < arrayMax(t) ? Uint32BufferAttribute : Uint16BufferAttribute)(t, 1) : this.index = t + }, t.addAttribute = function(t, e) { + return e && e.isBufferAttribute || e && e.isInterleavedBufferAttribute ? ("index" === t ? this.setIndex(e) : this.attributes[t] = e, this) : this.addAttribute(t, new o(e, arguments[2])) + }, t.getAttribute = function(t) { + return this.attributes[t] + }, t.removeAttribute = function(t) { + return delete this.attributes[t], this + }, t.addGroup = function(t, e, r) { + this.groups.push({ + start: t, + count: e, + materialIndex: void 0 !== r ? r : 0 + }) + }, t.clearGroups = function() { + this.groups = [] + }, t.applyMatrix = function(t) { + var e = this.attributes.position; + void 0 !== e && (t.applyToBufferAttribute(e), e.needsUpdate = !0); + var r = this.attributes.normal; + void 0 !== r && ((new w).getNormalMatrix(t).applyToBufferAttribute(r), r.needsUpdate = !0); + var n = this.attributes.tangent; + void 0 !== n && ((new w).getNormalMatrix(t).applyToBufferAttribute(n), n.needsUpdate = !0); + return this + }, BufferGeometry + }(), + It = 0, + Ot = function Texture(t, e, r, n, i, o, a, s, u, h) { + Object.defineProperty(this, "id", { + value: It++ + }), this.uuid = generateUUID(), this.name = "", this.image = void 0 !== t ? t : Texture.DEFAULT_IMAGE, this.mapping = void 0 !== e ? e : Texture.DEFAULT_MAPPING, this.wrapS = void 0 !== r ? r : 33071, this.wrapT = void 0 !== n ? n : 33071, this.magFilter = void 0 !== i ? i : 1006, this.minFilter = void 0 !== o ? o : 1008, this.anisotropy = void 0 !== u ? u : 1, this.format = void 0 !== a ? a : 1023, this.type = void 0 !== s ? s : 1009, this.encoding = void 0 !== h ? h : 3e3 + }; + Ot.DEFAULT_IMAGE = void 0, Ot.DEFAULT_MAPPING = 300; + var Ct = new S, + Rt = new S, + Dt = function() { + function Skeleton(t, e) { + if (t = t || [], this.bones = t.slice(0), this.boneMatrices = new Float32Array(16 * this.bones.length), void 0 === e) this.calculateInverses(); + else if (this.bones.length === e.length) this.boneInverses = e.slice(0); + else { + this.boneInverses = []; + for (var r = 0, n = this.bones.length; r < n; r++) this.boneInverses.push(new S) + } + } + var t = Skeleton.prototype; + return t.calculateInverses = function() { + this.boneInverses = []; + for (var t = 0, e = this.bones.length; t < e; t++) { + var r = new S; + this.bones[t] && r.getInverse(this.bones[t].matrixWorld), this.boneInverses.push(r) + } + }, t.pose = function() { + var t, e, r; + for (e = 0, r = this.bones.length; e < r; e++)(t = this.bones[e]) && t.matrixWorld.getInverse(this.boneInverses[e]); + for (e = 0, r = this.bones.length; e < r; e++)(t = this.bones[e]) && (t.parent && t.parent.isBone ? (t.matrix.getInverse(t.parent.matrixWorld), t.matrix.multiply(t.matrixWorld)) : t.matrix.copy(t.matrixWorld), t.matrix.decompose(t.position, t.quaternion, t.scale)) + }, t.update = function() { + for (var t = Ct, e = Rt, r = this.bones, n = this.boneInverses, i = this.boneMatrices, o = this.boneTexture, a = 0, s = r.length; a < s; a++) { + var u = r[a] ? r[a].matrixWorld : e; + t.multiplyMatrices(u, n[a]), t.toArray(i, 16 * a) + } + void 0 !== o && (o.needsUpdate = !0) + }, t.clone = function() { + return new Skeleton(this.bones, this.boneInverses) + }, t.getBoneByName = function(t) { + for (var e = 0, r = this.bones.length; e < r; e++) { + var n = this.bones[e]; + if (n.name === t) return n + } + }, Skeleton + }(); + var Ft = function(n) { + var t, e; + + function Mesh(t, e) { + var r; + return (r = n.call(this) || this).type = "Bone", r.isMesh = !0, r.geometry = void 0 !== t ? t : new Pt, r.material = void 0 !== e ? e : new MeshBasicMaterial({ + color: 16777215 * Math.random() + }), r + } + return e = n, (t = Mesh).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e, Mesh + }(St); + var kt = function(n) { + var t, e; + + function SkinnedMesh(t, e) { + var r; + return (r = n.call(this, t, e) || this).type = "SkinnedMesh", r.isSkinnedMesh = !0, r.bindMode = "attached", r.bindMatrix = new S, r.bindMatrixInverse = new S, r + } + e = n, (t = SkinnedMesh).prototype = Object.create(e.prototype), (t.prototype.constructor = t).__proto__ = e; + var r = SkinnedMesh.prototype; + return r.bind = function(t, e) { + this.skeleton = t, void 0 === e && (this.updateMatrixWorld(!0), this.skeleton.calculateInverses(), e = this.matrixWorld), this.bindMatrix.copy(e), this.bindMatrixInverse.getInverse(e) + }, r.pose = function() { + this.skeleton.pose() + }, r.normalizeSkinWeights = function() { + for (var t = new _, e = this.geometry.attributes.skinWeight, r = 0, n = e.count; r < n; r++) { + t.x = e.getX(r), t.y = e.getY(r), t.z = e.getZ(r), t.w = e.getW(r); + var i = 1 / t.manhattanLength(); + i !== 1 / 0 ? t.multiplyScalar(i) : t.set(1, 0, 0, 0), e.setXYZW(r, t.x, t.y, t.z, t.w) + } + }, r.updateMatrixWorld = function(t) { + n.prototype.updateMatrixWorld.call(this, t), "attached" === this.bindMode ? this.bindMatrixInverse.getInverse(this.matrixWorld) : "detached" === this.bindMode && this.bindMatrixInverse.getInverse(this.bindMatrix) + }, SkinnedMesh + }(Ft); + r.d(e, "e", function() { + return o + }), r.d(e, "l", function() { + return a + }), r.d(e, "O", function() { + return s + }), r.d(e, "t", function() { + return n + }), r.d(e, "h", function() { + return m + }), r.d(e, "P", function() { + return v + }), r.d(e, "Q", function() { + return _ + }), r.d(e, "u", function() { + return w + }), r.d(e, "v", function() { + return S + }), r.d(e, "G", function() { + return C + }), r.d(e, "k", function() { + return F + }), r.d(e, "I", function() { + return 10497 + }), r.d(e, "g", function() { + return 33071 + }), r.d(e, "S", function() { + return 2 + }), r.d(e, "r", function() { + return 2200 + }), r.d(e, "s", function() { + return 2201 + }), r.d(e, "y", function() { + return j.a + }), r.d(e, "x", function() { + return X.a + }), r.d(e, "A", function() { + return tt + }), r.d(e, "H", function() { + return $ + }), r.d(e, "R", function() { + return et + }), r.d(e, "b", function() { + return nt + }), r.d(e, "c", function() { + return yt + }), r.d(e, "F", function() { + return vt + }), r.d(e, "q", function() { + return i + }), r.d(e, "B", function() { + return St + }), r.d(e, "m", function() { + return Mt + }), r.d(e, "d", function() { + return Et + }), r.d(e, "f", function() { + return Pt + }), r.d(e, "N", function() { + return Ot + }), r.d(e, "J", function() { + return Dt + }), r.d(e, "w", function() { + return Ft + }), r.d(e, "K", function() { + return kt + }) + }, function(t, e, r) { + "use strict"; + e.__esModule = !0; + var i = function() { + function defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + return function(t, e, r) { + return e && defineProperties(t.prototype, e), r && defineProperties(t, r), t + } + }(), + o = function(t) { + { + if (t && t.__esModule) return t; + var e = {}; + if (null != t) + for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + return e.default = t, e + } + }(r(0)), + n = _interopRequireDefault(r(418)), + a = _interopRequireDefault(r(423)); + + function _interopRequireDefault(t) { + return t && t.__esModule ? t : { + default: t + } + } + var s = function(n) { + function Entity3d(t) { + ! function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }(this, Entity3d); + var e = function(t, e) { + if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !e || "object" != typeof e && "function" != typeof e ? t : e + }(this, n.call(this)); + if (t) { + if (!t.state) { + var r = new o.State; + r.depthTest = !0, r.blend = !1, r.culling = !0, t.state = r + } + e.add(a.default, t) + } + return e + } + return function(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); + t.prototype = Object.create(e && e.prototype, { + constructor: { + value: t, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) + }(Entity3d, n), i(Entity3d, [{ + key: "x", + set: function(t) { + this.transform.position.x = t + }, + get: function() { + return this.transform.position.x + } + }, { + key: "y", + set: function(t) { + this.transform.position.y = t + }, + get: function() { + return this.transform.position.y + } + }, { + key: "z", + set: function(t) { + this.transform.position.z = t + }, + get: function() { + return this.transform.position.z + } + }, { + key: "sx", + set: function(t) { + this.transform.scale.x = t + }, + get: function() { + return this.transform.scale.x + } + }, { + key: "sy", + set: function(t) { + this.transform.scale.y = t + }, + get: function() { + return this.transform.scale.y + } + }, { + key: "sz", + set: function(t) { + this.transform.scale.z = t + }, + get: function() { + return this.transform.scale.z + } + }, { + key: "rx", + set: function(t) { + this.transform.rotation.x = t + }, + get: function() { + return this.transform.rotation.x + } + }, { + key: "ry", + set: function(t) { + this.transform.rotation.y = t + }, + get: function() { + return this.transform.rotation.y + } + }, { + key: "rz", + set: function(t) { + this.transform.rotation.z = t + }, + get: function() { + return this.transform.rotation.z + } + }, { + key: "position", + get: function() { + return this.transform.position + } + }, { + key: "scale", + get: function() { + return this.transform.scale + } + }, { + key: "rotation", + get: function() { + return this.transform.rotation + } + }]), Entity3d + }(n.default); + e.default = s + }, function(t, e, r) { + "use strict"; + r.r(e); + var n = {}; + r.r(n), r.d(n, "EPSILON", function() { + return F + }), r.d(n, "ARRAY_TYPE", function() { + return g + }), r.d(n, "RANDOM", function() { + return d + }), r.d(n, "setMatrixArrayType", function() { + return setMatrixArrayType + }), r.d(n, "toRadian", function() { + return toRadian + }), r.d(n, "equals", function() { + return equals + }); + var i = {}; + r.r(i), r.d(i, "create", function() { + return create + }), r.d(i, "clone", function() { + return clone + }), r.d(i, "copy", function() { + return copy + }), r.d(i, "identity", function() { + return identity + }), r.d(i, "fromValues", function() { + return fromValues + }), r.d(i, "set", function() { + return set + }), r.d(i, "transpose", function() { + return transpose + }), r.d(i, "invert", function() { + return invert + }), r.d(i, "adjoint", function() { + return adjoint + }), r.d(i, "determinant", function() { + return determinant + }), r.d(i, "multiply", function() { + return multiply + }), r.d(i, "rotate", function() { + return rotate + }), r.d(i, "scale", function() { + return mat2_scale + }), r.d(i, "fromRotation", function() { + return fromRotation + }), r.d(i, "fromScaling", function() { + return fromScaling + }), r.d(i, "str", function() { + return str + }), r.d(i, "frob", function() { + return frob + }), r.d(i, "LDU", function() { + return LDU + }), r.d(i, "add", function() { + return add + }), r.d(i, "subtract", function() { + return subtract + }), r.d(i, "exactEquals", function() { + return exactEquals + }), r.d(i, "equals", function() { + return mat2_equals + }), r.d(i, "multiplyScalar", function() { + return multiplyScalar + }), r.d(i, "multiplyScalarAndAdd", function() { + return multiplyScalarAndAdd + }), r.d(i, "mul", function() { + return m + }), r.d(i, "sub", function() { + return v + }); + var o = {}; + r.r(o), r.d(o, "create", function() { + return mat2d_create + }), r.d(o, "clone", function() { + return mat2d_clone + }), r.d(o, "copy", function() { + return mat2d_copy + }), r.d(o, "identity", function() { + return mat2d_identity + }), r.d(o, "fromValues", function() { + return mat2d_fromValues + }), r.d(o, "set", function() { + return mat2d_set + }), r.d(o, "invert", function() { + return mat2d_invert + }), r.d(o, "determinant", function() { + return mat2d_determinant + }), r.d(o, "multiply", function() { + return mat2d_multiply + }), r.d(o, "rotate", function() { + return mat2d_rotate + }), r.d(o, "scale", function() { + return mat2d_scale + }), r.d(o, "translate", function() { + return translate + }), r.d(o, "fromRotation", function() { + return mat2d_fromRotation + }), r.d(o, "fromScaling", function() { + return mat2d_fromScaling + }), r.d(o, "fromTranslation", function() { + return fromTranslation + }), r.d(o, "str", function() { + return mat2d_str + }), r.d(o, "frob", function() { + return mat2d_frob + }), r.d(o, "add", function() { + return mat2d_add + }), r.d(o, "subtract", function() { + return mat2d_subtract + }), r.d(o, "multiplyScalar", function() { + return mat2d_multiplyScalar + }), r.d(o, "multiplyScalarAndAdd", function() { + return mat2d_multiplyScalarAndAdd + }), r.d(o, "exactEquals", function() { + return mat2d_exactEquals + }), r.d(o, "equals", function() { + return mat2d_equals + }), r.d(o, "mul", function() { + return y + }), r.d(o, "sub", function() { + return _ + }); + var a = {}; + r.r(a), r.d(a, "create", function() { + return mat3_create + }), r.d(a, "fromMat4", function() { + return fromMat4 + }), r.d(a, "clone", function() { + return mat3_clone + }), r.d(a, "copy", function() { + return mat3_copy + }), r.d(a, "fromValues", function() { + return mat3_fromValues + }), r.d(a, "set", function() { + return mat3_set + }), r.d(a, "identity", function() { + return mat3_identity + }), r.d(a, "transpose", function() { + return mat3_transpose + }), r.d(a, "invert", function() { + return mat3_invert + }), r.d(a, "adjoint", function() { + return mat3_adjoint + }), r.d(a, "determinant", function() { + return mat3_determinant + }), r.d(a, "multiply", function() { + return mat3_multiply + }), r.d(a, "translate", function() { + return mat3_translate + }), r.d(a, "rotate", function() { + return mat3_rotate + }), r.d(a, "scale", function() { + return mat3_scale + }), r.d(a, "fromTranslation", function() { + return mat3_fromTranslation + }), r.d(a, "fromRotation", function() { + return mat3_fromRotation + }), r.d(a, "fromScaling", function() { + return mat3_fromScaling + }), r.d(a, "fromMat2d", function() { + return fromMat2d + }), r.d(a, "fromQuat", function() { + return fromQuat + }), r.d(a, "normalFromMat4", function() { + return normalFromMat4 + }), r.d(a, "projection", function() { + return projection + }), r.d(a, "str", function() { + return mat3_str + }), r.d(a, "frob", function() { + return mat3_frob + }), r.d(a, "add", function() { + return mat3_add + }), r.d(a, "subtract", function() { + return mat3_subtract + }), r.d(a, "multiplyScalar", function() { + return mat3_multiplyScalar + }), r.d(a, "multiplyScalarAndAdd", function() { + return mat3_multiplyScalarAndAdd + }), r.d(a, "exactEquals", function() { + return mat3_exactEquals + }), r.d(a, "equals", function() { + return mat3_equals + }), r.d(a, "mul", function() { + return b + }), r.d(a, "sub", function() { + return x + }); + var s = {}; + r.r(s), r.d(s, "create", function() { + return mat4_create + }), r.d(s, "clone", function() { + return mat4_clone + }), r.d(s, "copy", function() { + return mat4_copy + }), r.d(s, "fromValues", function() { + return mat4_fromValues + }), r.d(s, "set", function() { + return mat4_set + }), r.d(s, "identity", function() { + return mat4_identity + }), r.d(s, "transpose", function() { + return mat4_transpose + }), r.d(s, "invert", function() { + return mat4_invert + }), r.d(s, "adjoint", function() { + return mat4_adjoint + }), r.d(s, "determinant", function() { + return mat4_determinant + }), r.d(s, "multiply", function() { + return mat4_multiply + }), r.d(s, "translate", function() { + return mat4_translate + }), r.d(s, "scale", function() { + return mat4_scale + }), r.d(s, "rotate", function() { + return mat4_rotate + }), r.d(s, "rotateX", function() { + return rotateX + }), r.d(s, "rotateY", function() { + return rotateY + }), r.d(s, "rotateZ", function() { + return rotateZ + }), r.d(s, "fromTranslation", function() { + return mat4_fromTranslation + }), r.d(s, "fromScaling", function() { + return mat4_fromScaling + }), r.d(s, "fromRotation", function() { + return mat4_fromRotation + }), r.d(s, "fromXRotation", function() { + return fromXRotation + }), r.d(s, "fromYRotation", function() { + return fromYRotation + }), r.d(s, "fromZRotation", function() { + return fromZRotation + }), r.d(s, "fromRotationTranslation", function() { + return fromRotationTranslation + }), r.d(s, "fromQuat2", function() { + return fromQuat2 + }), r.d(s, "getTranslation", function() { + return getTranslation + }), r.d(s, "getScaling", function() { + return getScaling + }), r.d(s, "getRotation", function() { + return getRotation + }), r.d(s, "fromRotationTranslationScale", function() { + return fromRotationTranslationScale + }), r.d(s, "fromRotationTranslationScaleOrigin", function() { + return fromRotationTranslationScaleOrigin + }), r.d(s, "fromQuat", function() { + return mat4_fromQuat + }), r.d(s, "frustum", function() { + return frustum + }), r.d(s, "perspective", function() { + return perspective + }), r.d(s, "perspectiveFromFieldOfView", function() { + return perspectiveFromFieldOfView + }), r.d(s, "ortho", function() { + return ortho + }), r.d(s, "lookAt", function() { + return lookAt + }), r.d(s, "targetTo", function() { + return targetTo + }), r.d(s, "str", function() { + return mat4_str + }), r.d(s, "frob", function() { + return mat4_frob + }), r.d(s, "add", function() { + return mat4_add + }), r.d(s, "subtract", function() { + return mat4_subtract + }), r.d(s, "multiplyScalar", function() { + return mat4_multiplyScalar + }), r.d(s, "multiplyScalarAndAdd", function() { + return mat4_multiplyScalarAndAdd + }), r.d(s, "exactEquals", function() { + return mat4_exactEquals + }), r.d(s, "equals", function() { + return mat4_equals + }), r.d(s, "mul", function() { + return w + }), r.d(s, "sub", function() { + return T + }); + var u = {}; + r.r(u), r.d(u, "create", function() { + return vec3_create + }), r.d(u, "clone", function() { + return vec3_clone + }), r.d(u, "length", function() { + return vec3_length + }), r.d(u, "fromValues", function() { + return vec3_fromValues + }), r.d(u, "copy", function() { + return vec3_copy + }), r.d(u, "set", function() { + return vec3_set + }), r.d(u, "add", function() { + return vec3_add + }), r.d(u, "subtract", function() { + return vec3_subtract + }), r.d(u, "multiply", function() { + return vec3_multiply + }), r.d(u, "divide", function() { + return divide + }), r.d(u, "ceil", function() { + return ceil + }), r.d(u, "floor", function() { + return floor + }), r.d(u, "min", function() { + return min + }), r.d(u, "max", function() { + return max + }), r.d(u, "round", function() { + return round + }), r.d(u, "scale", function() { + return vec3_scale + }), r.d(u, "scaleAndAdd", function() { + return scaleAndAdd + }), r.d(u, "distance", function() { + return distance + }), r.d(u, "squaredDistance", function() { + return squaredDistance + }), r.d(u, "squaredLength", function() { + return squaredLength + }), r.d(u, "negate", function() { + return negate + }), r.d(u, "inverse", function() { + return inverse + }), r.d(u, "normalize", function() { + return normalize + }), r.d(u, "dot", function() { + return vec3_dot + }), r.d(u, "cross", function() { + return cross + }), r.d(u, "lerp", function() { + return lerp + }), r.d(u, "hermite", function() { + return hermite + }), r.d(u, "bezier", function() { + return bezier + }), r.d(u, "random", function() { + return random + }), r.d(u, "transformMat4", function() { + return transformMat4 + }), r.d(u, "transformMat3", function() { + return transformMat3 + }), r.d(u, "transformQuat", function() { + return transformQuat + }), r.d(u, "rotateX", function() { + return vec3_rotateX + }), r.d(u, "rotateY", function() { + return vec3_rotateY + }), r.d(u, "rotateZ", function() { + return vec3_rotateZ + }), r.d(u, "angle", function() { + return angle + }), r.d(u, "str", function() { + return vec3_str + }), r.d(u, "exactEquals", function() { + return vec3_exactEquals + }), r.d(u, "equals", function() { + return vec3_equals + }), r.d(u, "sub", function() { + return M + }), r.d(u, "mul", function() { + return E + }), r.d(u, "div", function() { + return A + }), r.d(u, "dist", function() { + return P + }), r.d(u, "sqrDist", function() { + return I + }), r.d(u, "len", function() { + return O + }), r.d(u, "sqrLen", function() { + return C + }), r.d(u, "forEach", function() { + return R + }); + var h = {}; + r.r(h), r.d(h, "create", function() { + return vec4_create + }), r.d(h, "clone", function() { + return vec4_clone + }), r.d(h, "fromValues", function() { + return vec4_fromValues + }), r.d(h, "copy", function() { + return vec4_copy + }), r.d(h, "set", function() { + return vec4_set + }), r.d(h, "add", function() { + return vec4_add + }), r.d(h, "subtract", function() { + return vec4_subtract + }), r.d(h, "multiply", function() { + return vec4_multiply + }), r.d(h, "divide", function() { + return vec4_divide + }), r.d(h, "ceil", function() { + return vec4_ceil + }), r.d(h, "floor", function() { + return vec4_floor + }), r.d(h, "min", function() { + return vec4_min + }), r.d(h, "max", function() { + return vec4_max + }), r.d(h, "round", function() { + return vec4_round + }), r.d(h, "scale", function() { + return vec4_scale + }), r.d(h, "scaleAndAdd", function() { + return vec4_scaleAndAdd + }), r.d(h, "distance", function() { + return vec4_distance + }), r.d(h, "squaredDistance", function() { + return vec4_squaredDistance + }), r.d(h, "length", function() { + return vec4_length + }), r.d(h, "squaredLength", function() { + return vec4_squaredLength + }), r.d(h, "negate", function() { + return vec4_negate + }), r.d(h, "inverse", function() { + return vec4_inverse + }), r.d(h, "normalize", function() { + return vec4_normalize + }), r.d(h, "dot", function() { + return vec4_dot + }), r.d(h, "lerp", function() { + return vec4_lerp + }), r.d(h, "random", function() { + return vec4_random + }), r.d(h, "transformMat4", function() { + return vec4_transformMat4 + }), r.d(h, "transformQuat", function() { + return vec4_transformQuat + }), r.d(h, "str", function() { + return vec4_str + }), r.d(h, "exactEquals", function() { + return vec4_exactEquals + }), r.d(h, "equals", function() { + return vec4_equals + }), r.d(h, "sub", function() { + return k + }), r.d(h, "mul", function() { + return L + }), r.d(h, "div", function() { + return N + }), r.d(h, "dist", function() { + return B + }), r.d(h, "sqrDist", function() { + return U + }), r.d(h, "len", function() { + return G + }), r.d(h, "sqrLen", function() { + return j + }), r.d(h, "forEach", function() { + return z + }); + var c = {}; + r.r(c), r.d(c, "create", function() { + return quat_create + }), r.d(c, "identity", function() { + return quat_identity + }), r.d(c, "setAxisAngle", function() { + return setAxisAngle + }), r.d(c, "getAxisAngle", function() { + return getAxisAngle + }), r.d(c, "multiply", function() { + return quat_multiply + }), r.d(c, "rotateX", function() { + return quat_rotateX + }), r.d(c, "rotateY", function() { + return quat_rotateY + }), r.d(c, "rotateZ", function() { + return quat_rotateZ + }), r.d(c, "calculateW", function() { + return calculateW + }), r.d(c, "slerp", function() { + return slerp + }), r.d(c, "random", function() { + return quat_random + }), r.d(c, "invert", function() { + return quat_invert + }), r.d(c, "conjugate", function() { + return conjugate + }), r.d(c, "fromMat3", function() { + return fromMat3 + }), r.d(c, "fromEuler", function() { + return fromEuler + }), r.d(c, "str", function() { + return quat_str + }), r.d(c, "clone", function() { + return K + }), r.d(c, "fromValues", function() { + return Z + }), r.d(c, "copy", function() { + return Q + }), r.d(c, "set", function() { + return J + }), r.d(c, "add", function() { + return $ + }), r.d(c, "mul", function() { + return tt + }), r.d(c, "scale", function() { + return et + }), r.d(c, "dot", function() { + return rt + }), r.d(c, "lerp", function() { + return nt + }), r.d(c, "length", function() { + return it + }), r.d(c, "len", function() { + return ot + }), r.d(c, "squaredLength", function() { + return at + }), r.d(c, "sqrLen", function() { + return st + }), r.d(c, "normalize", function() { + return ut + }), r.d(c, "exactEquals", function() { + return ht + }), r.d(c, "equals", function() { + return ct + }), r.d(c, "rotationTo", function() { + return lt + }), r.d(c, "sqlerp", function() { + return ft + }), r.d(c, "setAxes", function() { + return dt + }); + var l = {}; + r.r(l), r.d(l, "create", function() { + return quat2_create + }), r.d(l, "clone", function() { + return quat2_clone + }), r.d(l, "fromValues", function() { + return quat2_fromValues + }), r.d(l, "fromRotationTranslationValues", function() { + return fromRotationTranslationValues + }), r.d(l, "fromRotationTranslation", function() { + return quat2_fromRotationTranslation + }), r.d(l, "fromTranslation", function() { + return quat2_fromTranslation + }), r.d(l, "fromRotation", function() { + return quat2_fromRotation + }), r.d(l, "fromMat4", function() { + return quat2_fromMat4 + }), r.d(l, "copy", function() { + return quat2_copy + }), r.d(l, "identity", function() { + return quat2_identity + }), r.d(l, "set", function() { + return quat2_set + }), r.d(l, "getReal", function() { + return pt + }), r.d(l, "getDual", function() { + return getDual + }), r.d(l, "setReal", function() { + return mt + }), r.d(l, "setDual", function() { + return setDual + }), r.d(l, "getTranslation", function() { + return quat2_getTranslation + }), r.d(l, "translate", function() { + return quat2_translate + }), r.d(l, "rotateX", function() { + return quat2_rotateX + }), r.d(l, "rotateY", function() { + return quat2_rotateY + }), r.d(l, "rotateZ", function() { + return quat2_rotateZ + }), r.d(l, "rotateByQuatAppend", function() { + return rotateByQuatAppend + }), r.d(l, "rotateByQuatPrepend", function() { + return rotateByQuatPrepend + }), r.d(l, "rotateAroundAxis", function() { + return rotateAroundAxis + }), r.d(l, "add", function() { + return quat2_add + }), r.d(l, "multiply", function() { + return quat2_multiply + }), r.d(l, "mul", function() { + return vt + }), r.d(l, "scale", function() { + return quat2_scale + }), r.d(l, "dot", function() { + return gt + }), r.d(l, "lerp", function() { + return quat2_lerp + }), r.d(l, "invert", function() { + return quat2_invert + }), r.d(l, "conjugate", function() { + return quat2_conjugate + }), r.d(l, "length", function() { + return yt + }), r.d(l, "len", function() { + return _t + }), r.d(l, "squaredLength", function() { + return bt + }), r.d(l, "sqrLen", function() { + return xt + }), r.d(l, "normalize", function() { + return quat2_normalize + }), r.d(l, "str", function() { + return quat2_str + }), r.d(l, "exactEquals", function() { + return quat2_exactEquals + }), r.d(l, "equals", function() { + return quat2_equals + }); + var f = {}; + r.r(f), r.d(f, "create", function() { + return vec2_create + }), r.d(f, "clone", function() { + return vec2_clone + }), r.d(f, "fromValues", function() { + return vec2_fromValues + }), r.d(f, "copy", function() { + return vec2_copy + }), r.d(f, "set", function() { + return vec2_set + }), r.d(f, "add", function() { + return vec2_add + }), r.d(f, "subtract", function() { + return vec2_subtract + }), r.d(f, "multiply", function() { + return vec2_multiply + }), r.d(f, "divide", function() { + return vec2_divide + }), r.d(f, "ceil", function() { + return vec2_ceil + }), r.d(f, "floor", function() { + return vec2_floor + }), r.d(f, "min", function() { + return vec2_min + }), r.d(f, "max", function() { + return vec2_max + }), r.d(f, "round", function() { + return vec2_round + }), r.d(f, "scale", function() { + return vec2_scale + }), r.d(f, "scaleAndAdd", function() { + return vec2_scaleAndAdd + }), r.d(f, "distance", function() { + return vec2_distance + }), r.d(f, "squaredDistance", function() { + return vec2_squaredDistance + }), r.d(f, "length", function() { + return vec2_length + }), r.d(f, "squaredLength", function() { + return vec2_squaredLength + }), r.d(f, "negate", function() { + return vec2_negate + }), r.d(f, "inverse", function() { + return vec2_inverse + }), r.d(f, "normalize", function() { + return vec2_normalize + }), r.d(f, "dot", function() { + return vec2_dot + }), r.d(f, "cross", function() { + return vec2_cross + }), r.d(f, "lerp", function() { + return vec2_lerp + }), r.d(f, "random", function() { + return vec2_random + }), r.d(f, "transformMat2", function() { + return transformMat2 + }), r.d(f, "transformMat2d", function() { + return transformMat2d + }), r.d(f, "transformMat3", function() { + return vec2_transformMat3 + }), r.d(f, "transformMat4", function() { + return vec2_transformMat4 + }), r.d(f, "rotate", function() { + return vec2_rotate + }), r.d(f, "angle", function() { + return vec2_angle + }), r.d(f, "str", function() { + return vec2_str + }), r.d(f, "exactEquals", function() { + return vec2_exactEquals + }), r.d(f, "equals", function() { + return vec2_equals + }), r.d(f, "len", function() { + return Tt + }), r.d(f, "sub", function() { + return St + }), r.d(f, "mul", function() { + return Mt + }), r.d(f, "div", function() { + return Et + }), r.d(f, "dist", function() { + return At + }), r.d(f, "sqrDist", function() { + return Pt + }), r.d(f, "sqrLen", function() { + return It + }), r.d(f, "forEach", function() { + return Ot + }); + var F = 1e-6, + g = "undefined" != typeof Float32Array ? Float32Array : Array, + d = Math.random; + + function setMatrixArrayType(t) { + g = t + } + var p = Math.PI / 180; + + function toRadian(t) { + return t * p + } + + function equals(t, e) { + return Math.abs(t - e) <= F * Math.max(1, Math.abs(t), Math.abs(e)) + } + + function create() { + var t = new g(4); + return g != Float32Array && (t[1] = 0, t[2] = 0), t[0] = 1, t[3] = 1, t + } + + function clone(t) { + var e = new g(4); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e + } + + function copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t + } + + function identity(t) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t + } + + function fromValues(t, e, r, n) { + var i = new g(4); + return i[0] = t, i[1] = e, i[2] = r, i[3] = n, i + } + + function set(t, e, r, n, i) { + return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t + } + + function transpose(t, e) { + if (t === e) { + var r = e[1]; + t[1] = e[2], t[2] = r + } else t[0] = e[0], t[1] = e[2], t[2] = e[1], t[3] = e[3]; + return t + } + + function invert(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = r * o - i * n; + return a ? (a = 1 / a, t[0] = o * a, t[1] = -n * a, t[2] = -i * a, t[3] = r * a, t) : null + } + + function adjoint(t, e) { + var r = e[0]; + return t[0] = e[3], t[1] = -e[1], t[2] = -e[2], t[3] = r, t + } + + function determinant(t) { + return t[0] * t[3] - t[2] * t[1] + } + + function multiply(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = r[0], + u = r[1], + h = r[2], + c = r[3]; + return t[0] = n * s + o * u, t[1] = i * s + a * u, t[2] = n * h + o * c, t[3] = i * h + a * c, t + } + + function rotate(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = Math.sin(r), + u = Math.cos(r); + return t[0] = n * u + o * s, t[1] = i * u + a * s, t[2] = n * -s + o * u, t[3] = i * -s + a * u, t + } + + function mat2_scale(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = r[0], + u = r[1]; + return t[0] = n * s, t[1] = i * s, t[2] = o * u, t[3] = a * u, t + } + + function fromRotation(t, e) { + var r = Math.sin(e), + n = Math.cos(e); + return t[0] = n, t[1] = r, t[2] = -r, t[3] = n, t + } + + function fromScaling(t, e) { + return t[0] = e[0], t[1] = 0, t[2] = 0, t[3] = e[1], t + } + + function str(t) { + return "mat2(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ")" + } + + function frob(t) { + return Math.sqrt(Math.pow(t[0], 2) + Math.pow(t[1], 2) + Math.pow(t[2], 2) + Math.pow(t[3], 2)) + } + + function LDU(t, e, r, n) { + return t[2] = n[2] / n[0], r[0] = n[0], r[1] = n[1], r[3] = n[3] - t[2] * r[1], [t, e, r] + } + + function add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t[3] = e[3] + r[3], t + } + + function subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t[2] = e[2] - r[2], t[3] = e[3] - r[3], t + } + + function exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] && t[3] === e[3] + } + + function mat2_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = t[3], + a = e[0], + s = e[1], + u = e[2], + h = e[3]; + return Math.abs(r - a) <= F * Math.max(1, Math.abs(r), Math.abs(a)) && Math.abs(n - s) <= F * Math.max(1, Math.abs(n), Math.abs(s)) && Math.abs(i - u) <= F * Math.max(1, Math.abs(i), Math.abs(u)) && Math.abs(o - h) <= F * Math.max(1, Math.abs(o), Math.abs(h)) + } + + function multiplyScalar(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t[3] = e[3] * r, t + } + + function multiplyScalarAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t[2] = e[2] + r[2] * n, t[3] = e[3] + r[3] * n, t + } + var m = multiply, + v = subtract; + + function mat2d_create() { + var t = new g(6); + return g != Float32Array && (t[1] = 0, t[2] = 0, t[4] = 0, t[5] = 0), t[0] = 1, t[3] = 1, t + } + + function mat2d_clone(t) { + var e = new g(6); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], e + } + + function mat2d_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t + } + + function mat2d_identity(t) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t + } + + function mat2d_fromValues(t, e, r, n, i, o) { + var a = new g(6); + return a[0] = t, a[1] = e, a[2] = r, a[3] = n, a[4] = i, a[5] = o, a + } + + function mat2d_set(t, e, r, n, i, o, a) { + return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t[4] = o, t[5] = a, t + } + + function mat2d_invert(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + u = r * o - n * i; + return u ? (u = 1 / u, t[0] = o * u, t[1] = -n * u, t[2] = -i * u, t[3] = r * u, t[4] = (i * s - o * a) * u, t[5] = (n * a - r * s) * u, t) : null + } + + function mat2d_determinant(t) { + return t[0] * t[3] - t[1] * t[2] + } + + function mat2d_multiply(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = r[0], + c = r[1], + l = r[2], + f = r[3], + d = r[4], + p = r[5]; + return t[0] = n * h + o * c, t[1] = i * h + a * c, t[2] = n * l + o * f, t[3] = i * l + a * f, t[4] = n * d + o * p + s, t[5] = i * d + a * p + u, t + } + + function mat2d_rotate(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = Math.sin(r), + c = Math.cos(r); + return t[0] = n * c + o * h, t[1] = i * c + a * h, t[2] = n * -h + o * c, t[3] = i * -h + a * c, t[4] = s, t[5] = u, t + } + + function mat2d_scale(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = r[0], + c = r[1]; + return t[0] = n * h, t[1] = i * h, t[2] = o * c, t[3] = a * c, t[4] = s, t[5] = u, t + } + + function translate(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = r[0], + c = r[1]; + return t[0] = n, t[1] = i, t[2] = o, t[3] = a, t[4] = n * h + o * c + s, t[5] = i * h + a * c + u, t + } + + function mat2d_fromRotation(t, e) { + var r = Math.sin(e), + n = Math.cos(e); + return t[0] = n, t[1] = r, t[2] = -r, t[3] = n, t[4] = 0, t[5] = 0, t + } + + function mat2d_fromScaling(t, e) { + return t[0] = e[0], t[1] = 0, t[2] = 0, t[3] = e[1], t[4] = 0, t[5] = 0, t + } + + function fromTranslation(t, e) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = e[0], t[5] = e[1], t + } + + function mat2d_str(t) { + return "mat2d(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ", " + t[4] + ", " + t[5] + ")" + } + + function mat2d_frob(t) { + return Math.sqrt(Math.pow(t[0], 2) + Math.pow(t[1], 2) + Math.pow(t[2], 2) + Math.pow(t[3], 2) + Math.pow(t[4], 2) + Math.pow(t[5], 2) + 1) + } + + function mat2d_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t[3] = e[3] + r[3], t[4] = e[4] + r[4], t[5] = e[5] + r[5], t + } + + function mat2d_subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t[2] = e[2] - r[2], t[3] = e[3] - r[3], t[4] = e[4] - r[4], t[5] = e[5] - r[5], t + } + + function mat2d_multiplyScalar(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t[3] = e[3] * r, t[4] = e[4] * r, t[5] = e[5] * r, t + } + + function mat2d_multiplyScalarAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t[2] = e[2] + r[2] * n, t[3] = e[3] + r[3] * n, t[4] = e[4] + r[4] * n, t[5] = e[5] + r[5] * n, t + } + + function mat2d_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] && t[3] === e[3] && t[4] === e[4] && t[5] === e[5] + } + + function mat2d_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = t[3], + a = t[4], + s = t[5], + u = e[0], + h = e[1], + c = e[2], + l = e[3], + f = e[4], + d = e[5]; + return Math.abs(r - u) <= F * Math.max(1, Math.abs(r), Math.abs(u)) && Math.abs(n - h) <= F * Math.max(1, Math.abs(n), Math.abs(h)) && Math.abs(i - c) <= F * Math.max(1, Math.abs(i), Math.abs(c)) && Math.abs(o - l) <= F * Math.max(1, Math.abs(o), Math.abs(l)) && Math.abs(a - f) <= F * Math.max(1, Math.abs(a), Math.abs(f)) && Math.abs(s - d) <= F * Math.max(1, Math.abs(s), Math.abs(d)) + } + var y = mat2d_multiply, + _ = mat2d_subtract; + + function mat3_create() { + var t = new g(9); + return g != Float32Array && (t[1] = 0, t[2] = 0, t[3] = 0, t[5] = 0, t[6] = 0, t[7] = 0), t[0] = 1, t[4] = 1, t[8] = 1, t + } + + function fromMat4(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[4], t[4] = e[5], t[5] = e[6], t[6] = e[8], t[7] = e[9], t[8] = e[10], t + } + + function mat3_clone(t) { + var e = new g(9); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e[8] = t[8], e + } + + function mat3_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t[6] = e[6], t[7] = e[7], t[8] = e[8], t + } + + function mat3_fromValues(t, e, r, n, i, o, a, s, u) { + var h = new g(9); + return h[0] = t, h[1] = e, h[2] = r, h[3] = n, h[4] = i, h[5] = o, h[6] = a, h[7] = s, h[8] = u, h + } + + function mat3_set(t, e, r, n, i, o, a, s, u, h) { + return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t[4] = o, t[5] = a, t[6] = s, t[7] = u, t[8] = h, t + } + + function mat3_identity(t) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 1, t[5] = 0, t[6] = 0, t[7] = 0, t[8] = 1, t + } + + function mat3_transpose(t, e) { + if (t === e) { + var r = e[1], + n = e[2], + i = e[5]; + t[1] = e[3], t[2] = e[6], t[3] = r, t[5] = e[7], t[6] = n, t[7] = i + } else t[0] = e[0], t[1] = e[3], t[2] = e[6], t[3] = e[1], t[4] = e[4], t[5] = e[7], t[6] = e[2], t[7] = e[5], t[8] = e[8]; + return t + } + + function mat3_invert(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + u = e[6], + h = e[7], + c = e[8], + l = c * a - s * h, + f = -c * o + s * u, + d = h * o - a * u, + p = r * l + n * f + i * d; + return p ? (p = 1 / p, t[0] = l * p, t[1] = (-c * n + i * h) * p, t[2] = (s * n - i * a) * p, t[3] = f * p, t[4] = (c * r - i * u) * p, t[5] = (-s * r + i * o) * p, t[6] = d * p, t[7] = (-h * r + n * u) * p, t[8] = (a * r - n * o) * p, t) : null + } + + function mat3_adjoint(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + u = e[6], + h = e[7], + c = e[8]; + return t[0] = a * c - s * h, t[1] = i * h - n * c, t[2] = n * s - i * a, t[3] = s * u - o * c, t[4] = r * c - i * u, t[5] = i * o - r * s, t[6] = o * h - a * u, t[7] = n * u - r * h, t[8] = r * a - n * o, t + } + + function mat3_determinant(t) { + var e = t[0], + r = t[1], + n = t[2], + i = t[3], + o = t[4], + a = t[5], + s = t[6], + u = t[7], + h = t[8]; + return e * (h * o - a * u) + r * (-h * i + a * s) + n * (u * i - o * s) + } + + function mat3_multiply(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = e[8], + f = r[0], + d = r[1], + p = r[2], + m = r[3], + v = r[4], + g = r[5], + y = r[6], + _ = r[7], + b = r[8]; + return t[0] = f * n + d * a + p * h, t[1] = f * i + d * s + p * c, t[2] = f * o + d * u + p * l, t[3] = m * n + v * a + g * h, t[4] = m * i + v * s + g * c, t[5] = m * o + v * u + g * l, t[6] = y * n + _ * a + b * h, t[7] = y * i + _ * s + b * c, t[8] = y * o + _ * u + b * l, t + } + + function mat3_translate(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = e[8], + f = r[0], + d = r[1]; + return t[0] = n, t[1] = i, t[2] = o, t[3] = a, t[4] = s, t[5] = u, t[6] = f * n + d * a + h, t[7] = f * i + d * s + c, t[8] = f * o + d * u + l, t + } + + function mat3_rotate(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = e[8], + f = Math.sin(r), + d = Math.cos(r); + return t[0] = d * n + f * a, t[1] = d * i + f * s, t[2] = d * o + f * u, t[3] = d * a - f * n, t[4] = d * s - f * i, t[5] = d * u - f * o, t[6] = h, t[7] = c, t[8] = l, t + } + + function mat3_scale(t, e, r) { + var n = r[0], + i = r[1]; + return t[0] = n * e[0], t[1] = n * e[1], t[2] = n * e[2], t[3] = i * e[3], t[4] = i * e[4], t[5] = i * e[5], t[6] = e[6], t[7] = e[7], t[8] = e[8], t + } + + function mat3_fromTranslation(t, e) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 1, t[5] = 0, t[6] = e[0], t[7] = e[1], t[8] = 1, t + } + + function mat3_fromRotation(t, e) { + var r = Math.sin(e), + n = Math.cos(e); + return t[0] = n, t[1] = r, t[2] = 0, t[3] = -r, t[4] = n, t[5] = 0, t[6] = 0, t[7] = 0, t[8] = 1, t + } + + function mat3_fromScaling(t, e) { + return t[0] = e[0], t[1] = 0, t[2] = 0, t[3] = 0, t[4] = e[1], t[5] = 0, t[6] = 0, t[7] = 0, t[8] = 1, t + } + + function fromMat2d(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = 0, t[3] = e[2], t[4] = e[3], t[5] = 0, t[6] = e[4], t[7] = e[5], t[8] = 1, t + } + + function fromQuat(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = r + r, + s = n + n, + u = i + i, + h = r * a, + c = n * a, + l = n * s, + f = i * a, + d = i * s, + p = i * u, + m = o * a, + v = o * s, + g = o * u; + return t[0] = 1 - l - p, t[3] = c - g, t[6] = f + v, t[1] = c + g, t[4] = 1 - h - p, t[7] = d - m, t[2] = f - v, t[5] = d + m, t[8] = 1 - h - l, t + } + + function normalFromMat4(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + u = e[6], + h = e[7], + c = e[8], + l = e[9], + f = e[10], + d = e[11], + p = e[12], + m = e[13], + v = e[14], + g = e[15], + y = r * s - n * a, + _ = r * u - i * a, + b = r * h - o * a, + x = n * u - i * s, + w = n * h - o * s, + T = i * h - o * u, + S = c * m - l * p, + M = c * v - f * p, + E = c * g - d * p, + A = l * v - f * m, + P = l * g - d * m, + I = f * g - d * v, + O = y * I - _ * P + b * A + x * E - w * M + T * S; + return O ? (O = 1 / O, t[0] = (s * I - u * P + h * A) * O, t[1] = (u * E - a * I - h * M) * O, t[2] = (a * P - s * E + h * S) * O, t[3] = (i * P - n * I - o * A) * O, t[4] = (r * I - i * E + o * M) * O, t[5] = (n * E - r * P - o * S) * O, t[6] = (m * T - v * w + g * x) * O, t[7] = (v * b - p * T - g * _) * O, t[8] = (p * w - m * b + g * y) * O, t) : null + } + + function projection(t, e, r) { + return t[0] = 2 / e, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = -2 / r, t[5] = 0, t[6] = -1, t[7] = 1, t[8] = 1, t + } + + function mat3_str(t) { + return "mat3(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ", " + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ", " + t[8] + ")" + } + + function mat3_frob(t) { + return Math.sqrt(Math.pow(t[0], 2) + Math.pow(t[1], 2) + Math.pow(t[2], 2) + Math.pow(t[3], 2) + Math.pow(t[4], 2) + Math.pow(t[5], 2) + Math.pow(t[6], 2) + Math.pow(t[7], 2) + Math.pow(t[8], 2)) + } + + function mat3_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t[3] = e[3] + r[3], t[4] = e[4] + r[4], t[5] = e[5] + r[5], t[6] = e[6] + r[6], t[7] = e[7] + r[7], t[8] = e[8] + r[8], t + } + + function mat3_subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t[2] = e[2] - r[2], t[3] = e[3] - r[3], t[4] = e[4] - r[4], t[5] = e[5] - r[5], t[6] = e[6] - r[6], t[7] = e[7] - r[7], t[8] = e[8] - r[8], t + } + + function mat3_multiplyScalar(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t[3] = e[3] * r, t[4] = e[4] * r, t[5] = e[5] * r, t[6] = e[6] * r, t[7] = e[7] * r, t[8] = e[8] * r, t + } + + function mat3_multiplyScalarAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t[2] = e[2] + r[2] * n, t[3] = e[3] + r[3] * n, t[4] = e[4] + r[4] * n, t[5] = e[5] + r[5] * n, t[6] = e[6] + r[6] * n, t[7] = e[7] + r[7] * n, t[8] = e[8] + r[8] * n, t + } + + function mat3_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] && t[3] === e[3] && t[4] === e[4] && t[5] === e[5] && t[6] === e[6] && t[7] === e[7] && t[8] === e[8] + } + + function mat3_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = t[3], + a = t[4], + s = t[5], + u = t[6], + h = t[7], + c = t[8], + l = e[0], + f = e[1], + d = e[2], + p = e[3], + m = e[4], + v = e[5], + g = e[6], + y = e[7], + _ = e[8]; + return Math.abs(r - l) <= F * Math.max(1, Math.abs(r), Math.abs(l)) && Math.abs(n - f) <= F * Math.max(1, Math.abs(n), Math.abs(f)) && Math.abs(i - d) <= F * Math.max(1, Math.abs(i), Math.abs(d)) && Math.abs(o - p) <= F * Math.max(1, Math.abs(o), Math.abs(p)) && Math.abs(a - m) <= F * Math.max(1, Math.abs(a), Math.abs(m)) && Math.abs(s - v) <= F * Math.max(1, Math.abs(s), Math.abs(v)) && Math.abs(u - g) <= F * Math.max(1, Math.abs(u), Math.abs(g)) && Math.abs(h - y) <= F * Math.max(1, Math.abs(h), Math.abs(y)) && Math.abs(c - _) <= F * Math.max(1, Math.abs(c), Math.abs(_)) + } + var b = mat3_multiply, + x = mat3_subtract; + + function mat4_create() { + var t = new g(16); + return g != Float32Array && (t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0), t[0] = 1, t[5] = 1, t[10] = 1, t[15] = 1, t + } + + function mat4_clone(t) { + var e = new g(16); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e[8] = t[8], e[9] = t[9], e[10] = t[10], e[11] = t[11], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15], e + } + + function mat4_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t[6] = e[6], t[7] = e[7], t[8] = e[8], t[9] = e[9], t[10] = e[10], t[11] = e[11], t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15], t + } + + function mat4_fromValues(t, e, r, n, i, o, a, s, u, h, c, l, f, d, p, m) { + var v = new g(16); + return v[0] = t, v[1] = e, v[2] = r, v[3] = n, v[4] = i, v[5] = o, v[6] = a, v[7] = s, v[8] = u, v[9] = h, v[10] = c, v[11] = l, v[12] = f, v[13] = d, v[14] = p, v[15] = m, v + } + + function mat4_set(t, e, r, n, i, o, a, s, u, h, c, l, f, d, p, m, v) { + return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t[4] = o, t[5] = a, t[6] = s, t[7] = u, t[8] = h, t[9] = c, t[10] = l, t[11] = f, t[12] = d, t[13] = p, t[14] = m, t[15] = v, t + } + + function mat4_identity(t) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = 1, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = 1, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t + } + + function mat4_transpose(t, e) { + if (t === e) { + var r = e[1], + n = e[2], + i = e[3], + o = e[6], + a = e[7], + s = e[11]; + t[1] = e[4], t[2] = e[8], t[3] = e[12], t[4] = r, t[6] = e[9], t[7] = e[13], t[8] = n, t[9] = o, t[11] = e[14], t[12] = i, t[13] = a, t[14] = s + } else t[0] = e[0], t[1] = e[4], t[2] = e[8], t[3] = e[12], t[4] = e[1], t[5] = e[5], t[6] = e[9], t[7] = e[13], t[8] = e[2], t[9] = e[6], t[10] = e[10], t[11] = e[14], t[12] = e[3], t[13] = e[7], t[14] = e[11], t[15] = e[15]; + return t + } + + function mat4_invert(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + u = e[6], + h = e[7], + c = e[8], + l = e[9], + f = e[10], + d = e[11], + p = e[12], + m = e[13], + v = e[14], + g = e[15], + y = r * s - n * a, + _ = r * u - i * a, + b = r * h - o * a, + x = n * u - i * s, + w = n * h - o * s, + T = i * h - o * u, + S = c * m - l * p, + M = c * v - f * p, + E = c * g - d * p, + A = l * v - f * m, + P = l * g - d * m, + I = f * g - d * v, + O = y * I - _ * P + b * A + x * E - w * M + T * S; + return O ? (O = 1 / O, t[0] = (s * I - u * P + h * A) * O, t[1] = (i * P - n * I - o * A) * O, t[2] = (m * T - v * w + g * x) * O, t[3] = (f * w - l * T - d * x) * O, t[4] = (u * E - a * I - h * M) * O, t[5] = (r * I - i * E + o * M) * O, t[6] = (v * b - p * T - g * _) * O, t[7] = (c * T - f * b + d * _) * O, t[8] = (a * P - s * E + h * S) * O, t[9] = (n * E - r * P - o * S) * O, t[10] = (p * w - m * b + g * y) * O, t[11] = (l * b - c * w - d * y) * O, t[12] = (s * M - a * A - u * S) * O, t[13] = (r * A - n * M + i * S) * O, t[14] = (m * _ - p * x - v * y) * O, t[15] = (c * x - l * _ + f * y) * O, t) : null + } + + function mat4_adjoint(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + u = e[6], + h = e[7], + c = e[8], + l = e[9], + f = e[10], + d = e[11], + p = e[12], + m = e[13], + v = e[14], + g = e[15]; + return t[0] = s * (f * g - d * v) - l * (u * g - h * v) + m * (u * d - h * f), t[1] = -(n * (f * g - d * v) - l * (i * g - o * v) + m * (i * d - o * f)), t[2] = n * (u * g - h * v) - s * (i * g - o * v) + m * (i * h - o * u), t[3] = -(n * (u * d - h * f) - s * (i * d - o * f) + l * (i * h - o * u)), t[4] = -(a * (f * g - d * v) - c * (u * g - h * v) + p * (u * d - h * f)), t[5] = r * (f * g - d * v) - c * (i * g - o * v) + p * (i * d - o * f), t[6] = -(r * (u * g - h * v) - a * (i * g - o * v) + p * (i * h - o * u)), t[7] = r * (u * d - h * f) - a * (i * d - o * f) + c * (i * h - o * u), t[8] = a * (l * g - d * m) - c * (s * g - h * m) + p * (s * d - h * l), t[9] = -(r * (l * g - d * m) - c * (n * g - o * m) + p * (n * d - o * l)), t[10] = r * (s * g - h * m) - a * (n * g - o * m) + p * (n * h - o * s), t[11] = -(r * (s * d - h * l) - a * (n * d - o * l) + c * (n * h - o * s)), t[12] = -(a * (l * v - f * m) - c * (s * v - u * m) + p * (s * f - u * l)), t[13] = r * (l * v - f * m) - c * (n * v - i * m) + p * (n * f - i * l), t[14] = -(r * (s * v - u * m) - a * (n * v - i * m) + p * (n * u - i * s)), t[15] = r * (s * f - u * l) - a * (n * f - i * l) + c * (n * u - i * s), t + } + + function mat4_determinant(t) { + var e = t[0], + r = t[1], + n = t[2], + i = t[3], + o = t[4], + a = t[5], + s = t[6], + u = t[7], + h = t[8], + c = t[9], + l = t[10], + f = t[11], + d = t[12], + p = t[13], + m = t[14], + v = t[15]; + return (e * a - r * o) * (l * v - f * m) - (e * s - n * o) * (c * v - f * p) + (e * u - i * o) * (c * m - l * p) + (r * s - n * a) * (h * v - f * d) - (r * u - i * a) * (h * m - l * d) + (n * u - i * s) * (h * p - c * d) + } + + function mat4_multiply(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = e[8], + f = e[9], + d = e[10], + p = e[11], + m = e[12], + v = e[13], + g = e[14], + y = e[15], + _ = r[0], + b = r[1], + x = r[2], + w = r[3]; + return t[0] = _ * n + b * s + x * l + w * m, t[1] = _ * i + b * u + x * f + w * v, t[2] = _ * o + b * h + x * d + w * g, t[3] = _ * a + b * c + x * p + w * y, _ = r[4], b = r[5], x = r[6], w = r[7], t[4] = _ * n + b * s + x * l + w * m, t[5] = _ * i + b * u + x * f + w * v, t[6] = _ * o + b * h + x * d + w * g, t[7] = _ * a + b * c + x * p + w * y, _ = r[8], b = r[9], x = r[10], w = r[11], t[8] = _ * n + b * s + x * l + w * m, t[9] = _ * i + b * u + x * f + w * v, t[10] = _ * o + b * h + x * d + w * g, t[11] = _ * a + b * c + x * p + w * y, _ = r[12], b = r[13], x = r[14], w = r[15], t[12] = _ * n + b * s + x * l + w * m, t[13] = _ * i + b * u + x * f + w * v, t[14] = _ * o + b * h + x * d + w * g, t[15] = _ * a + b * c + x * p + w * y, t + } + + function mat4_translate(t, e, r) { + var n = r[0], + i = r[1], + o = r[2], + a = void 0, + s = void 0, + u = void 0, + h = void 0, + c = void 0, + l = void 0, + f = void 0, + d = void 0, + p = void 0, + m = void 0, + v = void 0, + g = void 0; + return t[15] = e === t ? (t[12] = e[0] * n + e[4] * i + e[8] * o + e[12], t[13] = e[1] * n + e[5] * i + e[9] * o + e[13], t[14] = e[2] * n + e[6] * i + e[10] * o + e[14], e[3] * n + e[7] * i + e[11] * o + e[15]) : (a = e[0], s = e[1], u = e[2], h = e[3], c = e[4], l = e[5], f = e[6], d = e[7], p = e[8], m = e[9], v = e[10], g = e[11], t[0] = a, t[1] = s, t[2] = u, t[3] = h, t[4] = c, t[5] = l, t[6] = f, t[7] = d, t[8] = p, t[9] = m, t[10] = v, t[11] = g, t[12] = a * n + c * i + p * o + e[12], t[13] = s * n + l * i + m * o + e[13], t[14] = u * n + f * i + v * o + e[14], h * n + d * i + g * o + e[15]), t + } + + function mat4_scale(t, e, r) { + var n = r[0], + i = r[1], + o = r[2]; + return t[0] = e[0] * n, t[1] = e[1] * n, t[2] = e[2] * n, t[3] = e[3] * n, t[4] = e[4] * i, t[5] = e[5] * i, t[6] = e[6] * i, t[7] = e[7] * i, t[8] = e[8] * o, t[9] = e[9] * o, t[10] = e[10] * o, t[11] = e[11] * o, t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15], t + } + + function mat4_rotate(t, e, r, n) { + var i, o, a, s, u, h, c, l, f, d, p, m, v, g, y, _, b, x, w, T, S, M, E, A, P = n[0], + I = n[1], + O = n[2], + C = Math.sqrt(P * P + I * I + O * O); + return C < F ? null : (P *= C = 1 / C, I *= C, O *= C, i = Math.sin(r), a = 1 - (o = Math.cos(r)), s = e[0], u = e[1], h = e[2], c = e[3], l = e[4], f = e[5], d = e[6], p = e[7], m = e[8], v = e[9], g = e[10], y = e[11], _ = P * P * a + o, b = I * P * a + O * i, x = O * P * a - I * i, w = P * I * a - O * i, T = I * I * a + o, S = O * I * a + P * i, M = P * O * a + I * i, E = I * O * a - P * i, A = O * O * a + o, t[0] = s * _ + l * b + m * x, t[1] = u * _ + f * b + v * x, t[2] = h * _ + d * b + g * x, t[3] = c * _ + p * b + y * x, t[4] = s * w + l * T + m * S, t[5] = u * w + f * T + v * S, t[6] = h * w + d * T + g * S, t[7] = c * w + p * T + y * S, t[8] = s * M + l * E + m * A, t[9] = u * M + f * E + v * A, t[10] = h * M + d * E + g * A, t[11] = c * M + p * E + y * A, e !== t && (t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15]), t) + } + + function rotateX(t, e, r) { + var n = Math.sin(r), + i = Math.cos(r), + o = e[4], + a = e[5], + s = e[6], + u = e[7], + h = e[8], + c = e[9], + l = e[10], + f = e[11]; + return e !== t && (t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15]), t[4] = o * i + h * n, t[5] = a * i + c * n, t[6] = s * i + l * n, t[7] = u * i + f * n, t[8] = h * i - o * n, t[9] = c * i - a * n, t[10] = l * i - s * n, t[11] = f * i - u * n, t + } + + function rotateY(t, e, r) { + var n = Math.sin(r), + i = Math.cos(r), + o = e[0], + a = e[1], + s = e[2], + u = e[3], + h = e[8], + c = e[9], + l = e[10], + f = e[11]; + return e !== t && (t[4] = e[4], t[5] = e[5], t[6] = e[6], t[7] = e[7], t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15]), t[0] = o * i - h * n, t[1] = a * i - c * n, t[2] = s * i - l * n, t[3] = u * i - f * n, t[8] = o * n + h * i, t[9] = a * n + c * i, t[10] = s * n + l * i, t[11] = u * n + f * i, t + } + + function rotateZ(t, e, r) { + var n = Math.sin(r), + i = Math.cos(r), + o = e[0], + a = e[1], + s = e[2], + u = e[3], + h = e[4], + c = e[5], + l = e[6], + f = e[7]; + return e !== t && (t[8] = e[8], t[9] = e[9], t[10] = e[10], t[11] = e[11], t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15]), t[0] = o * i + h * n, t[1] = a * i + c * n, t[2] = s * i + l * n, t[3] = u * i + f * n, t[4] = h * i - o * n, t[5] = c * i - a * n, t[6] = l * i - s * n, t[7] = f * i - u * n, t + } + + function mat4_fromTranslation(t, e) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = 1, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = 1, t[11] = 0, t[12] = e[0], t[13] = e[1], t[14] = e[2], t[15] = 1, t + } + + function mat4_fromScaling(t, e) { + return t[0] = e[0], t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = e[1], t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = e[2], t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t + } + + function mat4_fromRotation(t, e, r) { + var n, i, o, a = r[0], + s = r[1], + u = r[2], + h = Math.sqrt(a * a + s * s + u * u); + return h < F ? null : (a *= h = 1 / h, s *= h, u *= h, n = Math.sin(e), o = 1 - (i = Math.cos(e)), t[0] = a * a * o + i, t[1] = s * a * o + u * n, t[2] = u * a * o - s * n, t[3] = 0, t[4] = a * s * o - u * n, t[5] = s * s * o + i, t[6] = u * s * o + a * n, t[7] = 0, t[8] = a * u * o + s * n, t[9] = s * u * o - a * n, t[10] = u * u * o + i, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t) + } + + function fromXRotation(t, e) { + var r = Math.sin(e), + n = Math.cos(e); + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = n, t[6] = r, t[7] = 0, t[8] = 0, t[9] = -r, t[10] = n, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t + } + + function fromYRotation(t, e) { + var r = Math.sin(e), + n = Math.cos(e); + return t[0] = n, t[1] = 0, t[2] = -r, t[3] = 0, t[4] = 0, t[5] = 1, t[6] = 0, t[7] = 0, t[8] = r, t[9] = 0, t[10] = n, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t + } + + function fromZRotation(t, e) { + var r = Math.sin(e), + n = Math.cos(e); + return t[0] = n, t[1] = r, t[2] = 0, t[3] = 0, t[4] = -r, t[5] = n, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = 1, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t + } + + function fromRotationTranslation(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = n + n, + u = i + i, + h = o + o, + c = n * s, + l = n * u, + f = n * h, + d = i * u, + p = i * h, + m = o * h, + v = a * s, + g = a * u, + y = a * h; + return t[0] = 1 - (d + m), t[1] = l + y, t[2] = f - g, t[3] = 0, t[4] = l - y, t[5] = 1 - (c + m), t[6] = p + v, t[7] = 0, t[8] = f + g, t[9] = p - v, t[10] = 1 - (c + d), t[11] = 0, t[12] = r[0], t[13] = r[1], t[14] = r[2], t[15] = 1, t + } + + function fromQuat2(t, e) { + var r = new g(3), + n = -e[0], + i = -e[1], + o = -e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = n * n + i * i + o * o + a * a; + return r[2] = 0 < l ? (r[0] = 2 * (s * a + c * n + u * o - h * i) / l, r[1] = 2 * (u * a + c * i + h * n - s * o) / l, 2 * (h * a + c * o + s * i - u * n) / l) : (r[0] = 2 * (s * a + c * n + u * o - h * i), r[1] = 2 * (u * a + c * i + h * n - s * o), 2 * (h * a + c * o + s * i - u * n)), fromRotationTranslation(t, e, r), t + } + + function getTranslation(t, e) { + return t[0] = e[12], t[1] = e[13], t[2] = e[14], t + } + + function getScaling(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[4], + a = e[5], + s = e[6], + u = e[8], + h = e[9], + c = e[10]; + return t[0] = Math.sqrt(r * r + n * n + i * i), t[1] = Math.sqrt(o * o + a * a + s * s), t[2] = Math.sqrt(u * u + h * h + c * c), t + } + + function getRotation(t, e) { + var r = e[0] + e[5] + e[10], + n = 0; + return 0 < r ? (n = 2 * Math.sqrt(r + 1), t[3] = .25 * n, t[0] = (e[6] - e[9]) / n, t[1] = (e[8] - e[2]) / n, t[2] = (e[1] - e[4]) / n) : e[0] > e[5] && e[0] > e[10] ? (n = 2 * Math.sqrt(1 + e[0] - e[5] - e[10]), t[3] = (e[6] - e[9]) / n, t[0] = .25 * n, t[1] = (e[1] + e[4]) / n, t[2] = (e[8] + e[2]) / n) : e[5] > e[10] ? (n = 2 * Math.sqrt(1 + e[5] - e[0] - e[10]), t[3] = (e[8] - e[2]) / n, t[0] = (e[1] + e[4]) / n, t[1] = .25 * n, t[2] = (e[6] + e[9]) / n) : (n = 2 * Math.sqrt(1 + e[10] - e[0] - e[5]), t[3] = (e[1] - e[4]) / n, t[0] = (e[8] + e[2]) / n, t[1] = (e[6] + e[9]) / n, t[2] = .25 * n), t + } + + function fromRotationTranslationScale(t, e, r, n) { + var i = e[0], + o = e[1], + a = e[2], + s = e[3], + u = i + i, + h = o + o, + c = a + a, + l = i * u, + f = i * h, + d = i * c, + p = o * h, + m = o * c, + v = a * c, + g = s * u, + y = s * h, + _ = s * c, + b = n[0], + x = n[1], + w = n[2]; + return t[0] = (1 - (p + v)) * b, t[1] = (f + _) * b, t[2] = (d - y) * b, t[3] = 0, t[4] = (f - _) * x, t[5] = (1 - (l + v)) * x, t[6] = (m + g) * x, t[7] = 0, t[8] = (d + y) * w, t[9] = (m - g) * w, t[10] = (1 - (l + p)) * w, t[11] = 0, t[12] = r[0], t[13] = r[1], t[14] = r[2], t[15] = 1, t + } + + function fromRotationTranslationScaleOrigin(t, e, r, n, i) { + var o = e[0], + a = e[1], + s = e[2], + u = e[3], + h = o + o, + c = a + a, + l = s + s, + f = o * h, + d = o * c, + p = o * l, + m = a * c, + v = a * l, + g = s * l, + y = u * h, + _ = u * c, + b = u * l, + x = n[0], + w = n[1], + T = n[2], + S = i[0], + M = i[1], + E = i[2], + A = (1 - (m + g)) * x, + P = (d + b) * x, + I = (p - _) * x, + O = (d - b) * w, + C = (1 - (f + g)) * w, + R = (v + y) * w, + D = (p + _) * T, + F = (v - y) * T, + k = (1 - (f + m)) * T; + return t[0] = A, t[1] = P, t[2] = I, t[3] = 0, t[4] = O, t[5] = C, t[6] = R, t[7] = 0, t[8] = D, t[9] = F, t[10] = k, t[11] = 0, t[12] = r[0] + S - (A * S + O * M + D * E), t[13] = r[1] + M - (P * S + C * M + F * E), t[14] = r[2] + E - (I * S + R * M + k * E), t[15] = 1, t + } + + function mat4_fromQuat(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = r + r, + s = n + n, + u = i + i, + h = r * a, + c = n * a, + l = n * s, + f = i * a, + d = i * s, + p = i * u, + m = o * a, + v = o * s, + g = o * u; + return t[0] = 1 - l - p, t[1] = c + g, t[2] = f - v, t[3] = 0, t[4] = c - g, t[5] = 1 - h - p, t[6] = d + m, t[7] = 0, t[8] = f + v, t[9] = d - m, t[10] = 1 - h - l, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t + } + + function frustum(t, e, r, n, i, o, a) { + var s = 1 / (r - e), + u = 1 / (i - n), + h = 1 / (o - a); + return t[0] = 2 * o * s, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = 2 * o * u, t[6] = 0, t[7] = 0, t[8] = (r + e) * s, t[9] = (i + n) * u, t[10] = (a + o) * h, t[11] = -1, t[12] = 0, t[13] = 0, t[14] = a * o * 2 * h, t[15] = 0, t + } + + function perspective(t, e, r, n, i) { + var o = 1 / Math.tan(e / 2), + a = void 0; + return t[0] = o / r, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = o, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[11] = -1, t[12] = 0, t[13] = 0, t[15] = 0, t[14] = null != i && i !== 1 / 0 ? (a = 1 / (n - i), t[10] = (i + n) * a, 2 * i * n * a) : (t[10] = -1, -2 * n), t + } + + function perspectiveFromFieldOfView(t, e, r, n) { + var i = Math.tan(e.upDegrees * Math.PI / 180), + o = Math.tan(e.downDegrees * Math.PI / 180), + a = Math.tan(e.leftDegrees * Math.PI / 180), + s = Math.tan(e.rightDegrees * Math.PI / 180), + u = 2 / (a + s), + h = 2 / (i + o); + return t[0] = u, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = h, t[6] = 0, t[7] = 0, t[8] = -(a - s) * u * .5, t[9] = (i - o) * h * .5, t[10] = n / (r - n), t[11] = -1, t[12] = 0, t[13] = 0, t[14] = n * r / (r - n), t[15] = 0, t + } + + function ortho(t, e, r, n, i, o, a) { + var s = 1 / (e - r), + u = 1 / (n - i), + h = 1 / (o - a); + return t[0] = -2 * s, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = -2 * u, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = 2 * h, t[11] = 0, t[12] = (e + r) * s, t[13] = (i + n) * u, t[14] = (a + o) * h, t[15] = 1, t + } + + function lookAt(t, e, r, n) { + var i = void 0, + o = void 0, + a = void 0, + s = void 0, + u = void 0, + h = void 0, + c = void 0, + l = void 0, + f = void 0, + d = void 0, + p = e[0], + m = e[1], + v = e[2], + g = n[0], + y = n[1], + _ = n[2], + b = r[0], + x = r[1], + w = r[2]; + return Math.abs(p - b) < F && Math.abs(m - x) < F && Math.abs(v - w) < F ? mat4_identity(t) : (c = p - b, l = m - x, f = v - w, i = y * (f *= d = 1 / Math.sqrt(c * c + l * l + f * f)) - _ * (l *= d), o = _ * (c *= d) - g * f, a = g * l - y * c, (d = Math.sqrt(i * i + o * o + a * a)) ? (i *= d = 1 / d, o *= d, a *= d) : a = o = i = 0, s = l * a - f * o, u = f * i - c * a, h = c * o - l * i, (d = Math.sqrt(s * s + u * u + h * h)) ? (s *= d = 1 / d, u *= d, h *= d) : h = u = s = 0, t[0] = i, t[1] = s, t[2] = c, t[3] = 0, t[4] = o, t[5] = u, t[6] = l, t[7] = 0, t[8] = a, t[9] = h, t[10] = f, t[11] = 0, t[12] = -(i * p + o * m + a * v), t[13] = -(s * p + u * m + h * v), t[14] = -(c * p + l * m + f * v), t[15] = 1, t) + } + + function targetTo(t, e, r, n) { + var i = e[0], + o = e[1], + a = e[2], + s = n[0], + u = n[1], + h = n[2], + c = i - r[0], + l = o - r[1], + f = a - r[2], + d = c * c + l * l + f * f; + 0 < d && (c *= d = 1 / Math.sqrt(d), l *= d, f *= d); + var p = u * f - h * l, + m = h * c - s * f, + v = s * l - u * c; + return 0 < (d = p * p + m * m + v * v) && (p *= d = 1 / Math.sqrt(d), m *= d, v *= d), t[0] = p, t[1] = m, t[2] = v, t[3] = 0, t[4] = l * v - f * m, t[5] = f * p - c * v, t[6] = c * m - l * p, t[7] = 0, t[8] = c, t[9] = l, t[10] = f, t[11] = 0, t[12] = i, t[13] = o, t[14] = a, t[15] = 1, t + } + + function mat4_str(t) { + return "mat4(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ", " + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ", " + t[8] + ", " + t[9] + ", " + t[10] + ", " + t[11] + ", " + t[12] + ", " + t[13] + ", " + t[14] + ", " + t[15] + ")" + } + + function mat4_frob(t) { + return Math.sqrt(Math.pow(t[0], 2) + Math.pow(t[1], 2) + Math.pow(t[2], 2) + Math.pow(t[3], 2) + Math.pow(t[4], 2) + Math.pow(t[5], 2) + Math.pow(t[6], 2) + Math.pow(t[7], 2) + Math.pow(t[8], 2) + Math.pow(t[9], 2) + Math.pow(t[10], 2) + Math.pow(t[11], 2) + Math.pow(t[12], 2) + Math.pow(t[13], 2) + Math.pow(t[14], 2) + Math.pow(t[15], 2)) + } + + function mat4_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t[3] = e[3] + r[3], t[4] = e[4] + r[4], t[5] = e[5] + r[5], t[6] = e[6] + r[6], t[7] = e[7] + r[7], t[8] = e[8] + r[8], t[9] = e[9] + r[9], t[10] = e[10] + r[10], t[11] = e[11] + r[11], t[12] = e[12] + r[12], t[13] = e[13] + r[13], t[14] = e[14] + r[14], t[15] = e[15] + r[15], t + } + + function mat4_subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t[2] = e[2] - r[2], t[3] = e[3] - r[3], t[4] = e[4] - r[4], t[5] = e[5] - r[5], t[6] = e[6] - r[6], t[7] = e[7] - r[7], t[8] = e[8] - r[8], t[9] = e[9] - r[9], t[10] = e[10] - r[10], t[11] = e[11] - r[11], t[12] = e[12] - r[12], t[13] = e[13] - r[13], t[14] = e[14] - r[14], t[15] = e[15] - r[15], t + } + + function mat4_multiplyScalar(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t[3] = e[3] * r, t[4] = e[4] * r, t[5] = e[5] * r, t[6] = e[6] * r, t[7] = e[7] * r, t[8] = e[8] * r, t[9] = e[9] * r, t[10] = e[10] * r, t[11] = e[11] * r, t[12] = e[12] * r, t[13] = e[13] * r, t[14] = e[14] * r, t[15] = e[15] * r, t + } + + function mat4_multiplyScalarAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t[2] = e[2] + r[2] * n, t[3] = e[3] + r[3] * n, t[4] = e[4] + r[4] * n, t[5] = e[5] + r[5] * n, t[6] = e[6] + r[6] * n, t[7] = e[7] + r[7] * n, t[8] = e[8] + r[8] * n, t[9] = e[9] + r[9] * n, t[10] = e[10] + r[10] * n, t[11] = e[11] + r[11] * n, t[12] = e[12] + r[12] * n, t[13] = e[13] + r[13] * n, t[14] = e[14] + r[14] * n, t[15] = e[15] + r[15] * n, t + } + + function mat4_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] && t[3] === e[3] && t[4] === e[4] && t[5] === e[5] && t[6] === e[6] && t[7] === e[7] && t[8] === e[8] && t[9] === e[9] && t[10] === e[10] && t[11] === e[11] && t[12] === e[12] && t[13] === e[13] && t[14] === e[14] && t[15] === e[15] + } + + function mat4_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = t[3], + a = t[4], + s = t[5], + u = t[6], + h = t[7], + c = t[8], + l = t[9], + f = t[10], + d = t[11], + p = t[12], + m = t[13], + v = t[14], + g = t[15], + y = e[0], + _ = e[1], + b = e[2], + x = e[3], + w = e[4], + T = e[5], + S = e[6], + M = e[7], + E = e[8], + A = e[9], + P = e[10], + I = e[11], + O = e[12], + C = e[13], + R = e[14], + D = e[15]; + return Math.abs(r - y) <= F * Math.max(1, Math.abs(r), Math.abs(y)) && Math.abs(n - _) <= F * Math.max(1, Math.abs(n), Math.abs(_)) && Math.abs(i - b) <= F * Math.max(1, Math.abs(i), Math.abs(b)) && Math.abs(o - x) <= F * Math.max(1, Math.abs(o), Math.abs(x)) && Math.abs(a - w) <= F * Math.max(1, Math.abs(a), Math.abs(w)) && Math.abs(s - T) <= F * Math.max(1, Math.abs(s), Math.abs(T)) && Math.abs(u - S) <= F * Math.max(1, Math.abs(u), Math.abs(S)) && Math.abs(h - M) <= F * Math.max(1, Math.abs(h), Math.abs(M)) && Math.abs(c - E) <= F * Math.max(1, Math.abs(c), Math.abs(E)) && Math.abs(l - A) <= F * Math.max(1, Math.abs(l), Math.abs(A)) && Math.abs(f - P) <= F * Math.max(1, Math.abs(f), Math.abs(P)) && Math.abs(d - I) <= F * Math.max(1, Math.abs(d), Math.abs(I)) && Math.abs(p - O) <= F * Math.max(1, Math.abs(p), Math.abs(O)) && Math.abs(m - C) <= F * Math.max(1, Math.abs(m), Math.abs(C)) && Math.abs(v - R) <= F * Math.max(1, Math.abs(v), Math.abs(R)) && Math.abs(g - D) <= F * Math.max(1, Math.abs(g), Math.abs(D)) + } + var w = mat4_multiply, + T = mat4_subtract; + + function vec3_create() { + var t = new g(3); + return g != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0), t + } + + function vec3_clone(t) { + var e = new g(3); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e + } + + function vec3_length(t) { + var e = t[0], + r = t[1], + n = t[2]; + return Math.sqrt(e * e + r * r + n * n) + } + + function vec3_fromValues(t, e, r) { + var n = new g(3); + return n[0] = t, n[1] = e, n[2] = r, n + } + + function vec3_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t + } + + function vec3_set(t, e, r, n) { + return t[0] = e, t[1] = r, t[2] = n, t + } + + function vec3_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t + } + + function vec3_subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t[2] = e[2] - r[2], t + } + + function vec3_multiply(t, e, r) { + return t[0] = e[0] * r[0], t[1] = e[1] * r[1], t[2] = e[2] * r[2], t + } + + function divide(t, e, r) { + return t[0] = e[0] / r[0], t[1] = e[1] / r[1], t[2] = e[2] / r[2], t + } + + function ceil(t, e) { + return t[0] = Math.ceil(e[0]), t[1] = Math.ceil(e[1]), t[2] = Math.ceil(e[2]), t + } + + function floor(t, e) { + return t[0] = Math.floor(e[0]), t[1] = Math.floor(e[1]), t[2] = Math.floor(e[2]), t + } + + function min(t, e, r) { + return t[0] = Math.min(e[0], r[0]), t[1] = Math.min(e[1], r[1]), t[2] = Math.min(e[2], r[2]), t + } + + function max(t, e, r) { + return t[0] = Math.max(e[0], r[0]), t[1] = Math.max(e[1], r[1]), t[2] = Math.max(e[2], r[2]), t + } + + function round(t, e) { + return t[0] = Math.round(e[0]), t[1] = Math.round(e[1]), t[2] = Math.round(e[2]), t + } + + function vec3_scale(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t + } + + function scaleAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t[2] = e[2] + r[2] * n, t + } + + function distance(t, e) { + var r = e[0] - t[0], + n = e[1] - t[1], + i = e[2] - t[2]; + return Math.sqrt(r * r + n * n + i * i) + } + + function squaredDistance(t, e) { + var r = e[0] - t[0], + n = e[1] - t[1], + i = e[2] - t[2]; + return r * r + n * n + i * i + } + + function squaredLength(t) { + var e = t[0], + r = t[1], + n = t[2]; + return e * e + r * r + n * n + } + + function negate(t, e) { + return t[0] = -e[0], t[1] = -e[1], t[2] = -e[2], t + } + + function inverse(t, e) { + return t[0] = 1 / e[0], t[1] = 1 / e[1], t[2] = 1 / e[2], t + } + + function normalize(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = r * r + n * n + i * i; + return 0 < o && (o = 1 / Math.sqrt(o), t[0] = e[0] * o, t[1] = e[1] * o, t[2] = e[2] * o), t + } + + function vec3_dot(t, e) { + return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + } + + function cross(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = r[0], + s = r[1], + u = r[2]; + return t[0] = i * u - o * s, t[1] = o * a - n * u, t[2] = n * s - i * a, t + } + + function lerp(t, e, r, n) { + var i = e[0], + o = e[1], + a = e[2]; + return t[0] = i + n * (r[0] - i), t[1] = o + n * (r[1] - o), t[2] = a + n * (r[2] - a), t + } + + function hermite(t, e, r, n, i, o) { + var a = o * o, + s = a * (2 * o - 3) + 1, + u = a * (o - 2) + o, + h = a * (o - 1), + c = a * (3 - 2 * o); + return t[0] = e[0] * s + r[0] * u + n[0] * h + i[0] * c, t[1] = e[1] * s + r[1] * u + n[1] * h + i[1] * c, t[2] = e[2] * s + r[2] * u + n[2] * h + i[2] * c, t + } + + function bezier(t, e, r, n, i, o) { + var a = 1 - o, + s = a * a, + u = o * o, + h = s * a, + c = 3 * o * s, + l = 3 * u * a, + f = u * o; + return t[0] = e[0] * h + r[0] * c + n[0] * l + i[0] * f, t[1] = e[1] * h + r[1] * c + n[1] * l + i[1] * f, t[2] = e[2] * h + r[2] * c + n[2] * l + i[2] * f, t + } + + function random(t, e) { + e = e || 1; + var r = 2 * d() * Math.PI, + n = 2 * d() - 1, + i = Math.sqrt(1 - n * n) * e; + return t[0] = Math.cos(r) * i, t[1] = Math.sin(r) * i, t[2] = n * e, t + } + + function transformMat4(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = r[3] * n + r[7] * i + r[11] * o + r[15]; + return a = a || 1, t[0] = (r[0] * n + r[4] * i + r[8] * o + r[12]) / a, t[1] = (r[1] * n + r[5] * i + r[9] * o + r[13]) / a, t[2] = (r[2] * n + r[6] * i + r[10] * o + r[14]) / a, t + } + + function transformMat3(t, e, r) { + var n = e[0], + i = e[1], + o = e[2]; + return t[0] = n * r[0] + i * r[3] + o * r[6], t[1] = n * r[1] + i * r[4] + o * r[7], t[2] = n * r[2] + i * r[5] + o * r[8], t + } + + function transformQuat(t, e, r) { + var n = r[0], + i = r[1], + o = r[2], + a = r[3], + s = e[0], + u = e[1], + h = e[2], + c = i * h - o * u, + l = o * s - n * h, + f = n * u - i * s, + d = i * f - o * l, + p = o * c - n * f, + m = n * l - i * c, + v = 2 * a; + return c *= v, l *= v, f *= v, d *= 2, p *= 2, m *= 2, t[0] = s + c + d, t[1] = u + l + p, t[2] = h + f + m, t + } + + function vec3_rotateX(t, e, r, n) { + var i = [], + o = []; + return i[0] = e[0] - r[0], i[1] = e[1] - r[1], i[2] = e[2] - r[2], o[0] = i[0], o[1] = i[1] * Math.cos(n) - i[2] * Math.sin(n), o[2] = i[1] * Math.sin(n) + i[2] * Math.cos(n), t[0] = o[0] + r[0], t[1] = o[1] + r[1], t[2] = o[2] + r[2], t + } + + function vec3_rotateY(t, e, r, n) { + var i = [], + o = []; + return i[0] = e[0] - r[0], i[1] = e[1] - r[1], i[2] = e[2] - r[2], o[0] = i[2] * Math.sin(n) + i[0] * Math.cos(n), o[1] = i[1], o[2] = i[2] * Math.cos(n) - i[0] * Math.sin(n), t[0] = o[0] + r[0], t[1] = o[1] + r[1], t[2] = o[2] + r[2], t + } + + function vec3_rotateZ(t, e, r, n) { + var i = [], + o = []; + return i[0] = e[0] - r[0], i[1] = e[1] - r[1], i[2] = e[2] - r[2], o[0] = i[0] * Math.cos(n) - i[1] * Math.sin(n), o[1] = i[0] * Math.sin(n) + i[1] * Math.cos(n), o[2] = i[2], t[0] = o[0] + r[0], t[1] = o[1] + r[1], t[2] = o[2] + r[2], t + } + + function angle(t, e) { + var r = vec3_fromValues(t[0], t[1], t[2]), + n = vec3_fromValues(e[0], e[1], e[2]); + normalize(r, r), normalize(n, n); + var i = vec3_dot(r, n); + return 1 < i ? 0 : i < -1 ? Math.PI : Math.acos(i) + } + + function vec3_str(t) { + return "vec3(" + t[0] + ", " + t[1] + ", " + t[2] + ")" + } + + function vec3_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] + } + + function vec3_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = e[0], + a = e[1], + s = e[2]; + return Math.abs(r - o) <= F * Math.max(1, Math.abs(r), Math.abs(o)) && Math.abs(n - a) <= F * Math.max(1, Math.abs(n), Math.abs(a)) && Math.abs(i - s) <= F * Math.max(1, Math.abs(i), Math.abs(s)) + } + var S, M = vec3_subtract, + E = vec3_multiply, + A = divide, + P = distance, + I = squaredDistance, + O = vec3_length, + C = squaredLength, + R = (S = vec3_create(), function(t, e, r, n, i, o) { + var a = void 0, + s = void 0; + for (e || (e = 3), r || (r = 0), s = n ? Math.min(n * e + r, t.length) : t.length, a = r; a < s; a += e) S[0] = t[a], S[1] = t[a + 1], S[2] = t[a + 2], i(S, S, o), t[a] = S[0], t[a + 1] = S[1], t[a + 2] = S[2]; + return t + }); + + function vec4_create() { + var t = new g(4); + return g != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 0), t + } + + function vec4_clone(t) { + var e = new g(4); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e + } + + function vec4_fromValues(t, e, r, n) { + var i = new g(4); + return i[0] = t, i[1] = e, i[2] = r, i[3] = n, i + } + + function vec4_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t + } + + function vec4_set(t, e, r, n, i) { + return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t + } + + function vec4_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t[3] = e[3] + r[3], t + } + + function vec4_subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t[2] = e[2] - r[2], t[3] = e[3] - r[3], t + } + + function vec4_multiply(t, e, r) { + return t[0] = e[0] * r[0], t[1] = e[1] * r[1], t[2] = e[2] * r[2], t[3] = e[3] * r[3], t + } + + function vec4_divide(t, e, r) { + return t[0] = e[0] / r[0], t[1] = e[1] / r[1], t[2] = e[2] / r[2], t[3] = e[3] / r[3], t + } + + function vec4_ceil(t, e) { + return t[0] = Math.ceil(e[0]), t[1] = Math.ceil(e[1]), t[2] = Math.ceil(e[2]), t[3] = Math.ceil(e[3]), t + } + + function vec4_floor(t, e) { + return t[0] = Math.floor(e[0]), t[1] = Math.floor(e[1]), t[2] = Math.floor(e[2]), t[3] = Math.floor(e[3]), t + } + + function vec4_min(t, e, r) { + return t[0] = Math.min(e[0], r[0]), t[1] = Math.min(e[1], r[1]), t[2] = Math.min(e[2], r[2]), t[3] = Math.min(e[3], r[3]), t + } + + function vec4_max(t, e, r) { + return t[0] = Math.max(e[0], r[0]), t[1] = Math.max(e[1], r[1]), t[2] = Math.max(e[2], r[2]), t[3] = Math.max(e[3], r[3]), t + } + + function vec4_round(t, e) { + return t[0] = Math.round(e[0]), t[1] = Math.round(e[1]), t[2] = Math.round(e[2]), t[3] = Math.round(e[3]), t + } + + function vec4_scale(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t[3] = e[3] * r, t + } + + function vec4_scaleAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t[2] = e[2] + r[2] * n, t[3] = e[3] + r[3] * n, t + } + + function vec4_distance(t, e) { + var r = e[0] - t[0], + n = e[1] - t[1], + i = e[2] - t[2], + o = e[3] - t[3]; + return Math.sqrt(r * r + n * n + i * i + o * o) + } + + function vec4_squaredDistance(t, e) { + var r = e[0] - t[0], + n = e[1] - t[1], + i = e[2] - t[2], + o = e[3] - t[3]; + return r * r + n * n + i * i + o * o + } + + function vec4_length(t) { + var e = t[0], + r = t[1], + n = t[2], + i = t[3]; + return Math.sqrt(e * e + r * r + n * n + i * i) + } + + function vec4_squaredLength(t) { + var e = t[0], + r = t[1], + n = t[2], + i = t[3]; + return e * e + r * r + n * n + i * i + } + + function vec4_negate(t, e) { + return t[0] = -e[0], t[1] = -e[1], t[2] = -e[2], t[3] = -e[3], t + } + + function vec4_inverse(t, e) { + return t[0] = 1 / e[0], t[1] = 1 / e[1], t[2] = 1 / e[2], t[3] = 1 / e[3], t + } + + function vec4_normalize(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = r * r + n * n + i * i + o * o; + return 0 < a && (a = 1 / Math.sqrt(a), t[0] = r * a, t[1] = n * a, t[2] = i * a, t[3] = o * a), t + } + + function vec4_dot(t, e) { + return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + t[3] * e[3] + } + + function vec4_lerp(t, e, r, n) { + var i = e[0], + o = e[1], + a = e[2], + s = e[3]; + return t[0] = i + n * (r[0] - i), t[1] = o + n * (r[1] - o), t[2] = a + n * (r[2] - a), t[3] = s + n * (r[3] - s), t + } + + function vec4_random(t, e) { + var r, n, i, o, a, s; + for (e = e || 1; 1 <= (a = (r = 2 * d() - 1) * r + (n = 2 * d() - 1) * n);); + for (; 1 <= (s = (i = 2 * d() - 1) * i + (o = 2 * d() - 1) * o);); + var u = Math.sqrt((1 - a) / s); + return t[0] = e * r, t[1] = e * n, t[2] = e * i * u, t[3] = e * o * u, t + } + + function vec4_transformMat4(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3]; + return t[0] = r[0] * n + r[4] * i + r[8] * o + r[12] * a, t[1] = r[1] * n + r[5] * i + r[9] * o + r[13] * a, t[2] = r[2] * n + r[6] * i + r[10] * o + r[14] * a, t[3] = r[3] * n + r[7] * i + r[11] * o + r[15] * a, t + } + + function vec4_transformQuat(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = r[0], + s = r[1], + u = r[2], + h = r[3], + c = h * n + s * o - u * i, + l = h * i + u * n - a * o, + f = h * o + a * i - s * n, + d = -a * n - s * i - u * o; + return t[0] = c * h + d * -a + l * -u - f * -s, t[1] = l * h + d * -s + f * -a - c * -u, t[2] = f * h + d * -u + c * -s - l * -a, t[3] = e[3], t + } + + function vec4_str(t) { + return "vec4(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ")" + } + + function vec4_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] && t[3] === e[3] + } + + function vec4_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = t[3], + a = e[0], + s = e[1], + u = e[2], + h = e[3]; + return Math.abs(r - a) <= F * Math.max(1, Math.abs(r), Math.abs(a)) && Math.abs(n - s) <= F * Math.max(1, Math.abs(n), Math.abs(s)) && Math.abs(i - u) <= F * Math.max(1, Math.abs(i), Math.abs(u)) && Math.abs(o - h) <= F * Math.max(1, Math.abs(o), Math.abs(h)) + } + var D, k = vec4_subtract, + L = vec4_multiply, + N = vec4_divide, + B = vec4_distance, + U = vec4_squaredDistance, + G = vec4_length, + j = vec4_squaredLength, + z = (D = vec4_create(), function(t, e, r, n, i, o) { + var a = void 0, + s = void 0; + for (e || (e = 4), r || (r = 0), s = n ? Math.min(n * e + r, t.length) : t.length, a = r; a < s; a += e) D[0] = t[a], D[1] = t[a + 1], D[2] = t[a + 2], D[3] = t[a + 3], i(D, D, o), t[a] = D[0], t[a + 1] = D[1], t[a + 2] = D[2], t[a + 3] = D[3]; + return t + }); + + function quat_create() { + var t = new g(4); + return g != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0), t[3] = 1, t + } + + function quat_identity(t) { + return t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, t + } + + function setAxisAngle(t, e, r) { + r *= .5; + var n = Math.sin(r); + return t[0] = n * e[0], t[1] = n * e[1], t[2] = n * e[2], t[3] = Math.cos(r), t + } + + function getAxisAngle(t, e) { + var r = 2 * Math.acos(e[3]), + n = Math.sin(r / 2); + return t[2] = F < n ? (t[0] = e[0] / n, t[1] = e[1] / n, e[2] / n) : (t[0] = 1, t[1] = 0), r + } + + function quat_multiply(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = r[0], + u = r[1], + h = r[2], + c = r[3]; + return t[0] = n * c + a * s + i * h - o * u, t[1] = i * c + a * u + o * s - n * h, t[2] = o * c + a * h + n * u - i * s, t[3] = a * c - n * s - i * u - o * h, t + } + + function quat_rotateX(t, e, r) { + r *= .5; + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = Math.sin(r), + u = Math.cos(r); + return t[0] = n * u + a * s, t[1] = i * u + o * s, t[2] = o * u - i * s, t[3] = a * u - n * s, t + } + + function quat_rotateY(t, e, r) { + r *= .5; + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = Math.sin(r), + u = Math.cos(r); + return t[0] = n * u - o * s, t[1] = i * u + a * s, t[2] = o * u + n * s, t[3] = a * u - i * s, t + } + + function quat_rotateZ(t, e, r) { + r *= .5; + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = Math.sin(r), + u = Math.cos(r); + return t[0] = n * u + i * s, t[1] = i * u - n * s, t[2] = o * u + a * s, t[3] = a * u - o * s, t + } + + function calculateW(t, e) { + var r = e[0], + n = e[1], + i = e[2]; + return t[0] = r, t[1] = n, t[2] = i, t[3] = Math.sqrt(Math.abs(1 - r * r - n * n - i * i)), t + } + + function slerp(t, e, r, n) { + var i = e[0], + o = e[1], + a = e[2], + s = e[3], + u = r[0], + h = r[1], + c = r[2], + l = r[3], + f = void 0, + d = void 0, + p = void 0, + m = void 0, + v = void 0; + return (d = i * u + o * h + a * c + s * l) < 0 && (d = -d, u = -u, h = -h, c = -c, l = -l), v = F < 1 - d ? (f = Math.acos(d), p = Math.sin(f), m = Math.sin((1 - n) * f) / p, Math.sin(n * f) / p) : (m = 1 - n, n), t[0] = m * i + v * u, t[1] = m * o + v * h, t[2] = m * a + v * c, t[3] = m * s + v * l, t + } + + function quat_random(t) { + var e = d(), + r = d(), + n = d(), + i = Math.sqrt(1 - e), + o = Math.sqrt(e); + return t[0] = i * Math.sin(2 * Math.PI * r), t[1] = i * Math.cos(2 * Math.PI * r), t[2] = o * Math.sin(2 * Math.PI * n), t[3] = o * Math.cos(2 * Math.PI * n), t + } + + function quat_invert(t, e) { + var r = e[0], + n = e[1], + i = e[2], + o = e[3], + a = r * r + n * n + i * i + o * o, + s = a ? 1 / a : 0; + return t[0] = -r * s, t[1] = -n * s, t[2] = -i * s, t[3] = o * s, t + } + + function conjugate(t, e) { + return t[0] = -e[0], t[1] = -e[1], t[2] = -e[2], t[3] = e[3], t + } + + function fromMat3(t, e) { + var r = e[0] + e[4] + e[8], + n = void 0; + if (0 < r) n = Math.sqrt(r + 1), t[3] = .5 * n, n = .5 / n, t[0] = (e[5] - e[7]) * n, t[1] = (e[6] - e[2]) * n, t[2] = (e[1] - e[3]) * n; + else { + var i = 0; + e[4] > e[0] && (i = 1), e[8] > e[3 * i + i] && (i = 2); + var o = (i + 1) % 3, + a = (i + 2) % 3; + n = Math.sqrt(e[3 * i + i] - e[3 * o + o] - e[3 * a + a] + 1), t[i] = .5 * n, n = .5 / n, t[3] = (e[3 * o + a] - e[3 * a + o]) * n, t[o] = (e[3 * o + i] + e[3 * i + o]) * n, t[a] = (e[3 * a + i] + e[3 * i + a]) * n + } + return t + } + + function fromEuler(t, e, r, n) { + var i = .5 * Math.PI / 180; + e *= i, r *= i, n *= i; + var o = Math.sin(e), + a = Math.cos(e), + s = Math.sin(r), + u = Math.cos(r), + h = Math.sin(n), + c = Math.cos(n); + return t[0] = o * u * c - a * s * h, t[1] = a * s * c + o * u * h, t[2] = a * u * h - o * s * c, t[3] = a * u * c + o * s * h, t + } + + function quat_str(t) { + return "quat(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ")" + } + var X, V, q, H, W, Y, K = vec4_clone, + Z = vec4_fromValues, + Q = vec4_copy, + J = vec4_set, + $ = vec4_add, + tt = quat_multiply, + et = vec4_scale, + rt = vec4_dot, + nt = vec4_lerp, + it = vec4_length, + ot = it, + at = vec4_squaredLength, + st = at, + ut = vec4_normalize, + ht = vec4_exactEquals, + ct = vec4_equals, + lt = (X = vec3_create(), V = vec3_fromValues(1, 0, 0), q = vec3_fromValues(0, 1, 0), function(t, e, r) { + var n = vec3_dot(e, r); + return n < -.999999 ? (cross(X, V, e), O(X) < 1e-6 && cross(X, q, e), normalize(X, X), setAxisAngle(t, X, Math.PI), t) : .999999 < n ? (t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, t) : (cross(X, e, r), t[0] = X[0], t[1] = X[1], t[2] = X[2], t[3] = 1 + n, ut(t, t)) + }), + ft = (H = quat_create(), W = quat_create(), function(t, e, r, n, i, o) { + return slerp(H, e, i, o), slerp(W, r, n, o), slerp(t, H, W, 2 * o * (1 - o)), t + }), + dt = (Y = mat3_create(), function(t, e, r, n) { + return Y[0] = r[0], Y[3] = r[1], Y[6] = r[2], Y[1] = n[0], Y[4] = n[1], Y[7] = n[2], Y[2] = -e[0], Y[5] = -e[1], Y[8] = -e[2], ut(t, fromMat3(t, Y)) + }); + + function quat2_create() { + var t = new g(8); + return g != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0, t[4] = 0, t[5] = 0, t[6] = 0, t[7] = 0), t[3] = 1, t + } + + function quat2_clone(t) { + var e = new g(8); + return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e + } + + function quat2_fromValues(t, e, r, n, i, o, a, s) { + var u = new g(8); + return u[0] = t, u[1] = e, u[2] = r, u[3] = n, u[4] = i, u[5] = o, u[6] = a, u[7] = s, u + } + + function fromRotationTranslationValues(t, e, r, n, i, o, a) { + var s = new g(8); + s[0] = t, s[1] = e, s[2] = r, s[3] = n; + var u = .5 * i, + h = .5 * o, + c = .5 * a; + return s[4] = u * n + h * r - c * e, s[5] = h * n + c * t - u * r, s[6] = c * n + u * e - h * t, s[7] = -u * t - h * e - c * r, s + } + + function quat2_fromRotationTranslation(t, e, r) { + var n = .5 * r[0], + i = .5 * r[1], + o = .5 * r[2], + a = e[0], + s = e[1], + u = e[2], + h = e[3]; + return t[0] = a, t[1] = s, t[2] = u, t[3] = h, t[4] = n * h + i * u - o * s, t[5] = i * h + o * a - n * u, t[6] = o * h + n * s - i * a, t[7] = -n * a - i * s - o * u, t + } + + function quat2_fromTranslation(t, e) { + return t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = .5 * e[0], t[5] = .5 * e[1], t[6] = .5 * e[2], t[7] = 0, t + } + + function quat2_fromRotation(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = 0, t[5] = 0, t[6] = 0, t[7] = 0, t + } + + function quat2_fromMat4(t, e) { + var r = quat_create(); + getRotation(r, e); + var n = new g(3); + return getTranslation(n, e), quat2_fromRotationTranslation(t, r, n), t + } + + function quat2_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t[6] = e[6], t[7] = e[7], t + } + + function quat2_identity(t) { + return t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t[6] = 0, t[7] = 0, t + } + + function quat2_set(t, e, r, n, i, o, a, s, u) { + return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t[4] = o, t[5] = a, t[6] = s, t[7] = u, t + } + var pt = Q; + + function getDual(t, e) { + return t[0] = e[4], t[1] = e[5], t[2] = e[6], t[3] = e[7], t + } + var mt = Q; + + function setDual(t, e) { + return t[4] = e[0], t[5] = e[1], t[6] = e[2], t[7] = e[3], t + } + + function quat2_getTranslation(t, e) { + var r = e[4], + n = e[5], + i = e[6], + o = e[7], + a = -e[0], + s = -e[1], + u = -e[2], + h = e[3]; + return t[0] = 2 * (r * h + o * a + n * u - i * s), t[1] = 2 * (n * h + o * s + i * a - r * u), t[2] = 2 * (i * h + o * u + r * s - n * a), t + } + + function quat2_translate(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = .5 * r[0], + u = .5 * r[1], + h = .5 * r[2], + c = e[4], + l = e[5], + f = e[6], + d = e[7]; + return t[0] = n, t[1] = i, t[2] = o, t[3] = a, t[4] = a * s + i * h - o * u + c, t[5] = a * u + o * s - n * h + l, t[6] = a * h + n * u - i * s + f, t[7] = -n * s - i * u - o * h + d, t + } + + function quat2_rotateX(t, e, r) { + var n = -e[0], + i = -e[1], + o = -e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = s * a + c * n + u * o - h * i, + f = u * a + c * i + h * n - s * o, + d = h * a + c * o + s * i - u * n, + p = c * a - s * n - u * i - h * o; + return quat_rotateX(t, e, r), n = t[0], i = t[1], o = t[2], a = t[3], t[4] = l * a + p * n + f * o - d * i, t[5] = f * a + p * i + d * n - l * o, t[6] = d * a + p * o + l * i - f * n, t[7] = p * a - l * n - f * i - d * o, t + } + + function quat2_rotateY(t, e, r) { + var n = -e[0], + i = -e[1], + o = -e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = s * a + c * n + u * o - h * i, + f = u * a + c * i + h * n - s * o, + d = h * a + c * o + s * i - u * n, + p = c * a - s * n - u * i - h * o; + return quat_rotateY(t, e, r), n = t[0], i = t[1], o = t[2], a = t[3], t[4] = l * a + p * n + f * o - d * i, t[5] = f * a + p * i + d * n - l * o, t[6] = d * a + p * o + l * i - f * n, t[7] = p * a - l * n - f * i - d * o, t + } + + function quat2_rotateZ(t, e, r) { + var n = -e[0], + i = -e[1], + o = -e[2], + a = e[3], + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = s * a + c * n + u * o - h * i, + f = u * a + c * i + h * n - s * o, + d = h * a + c * o + s * i - u * n, + p = c * a - s * n - u * i - h * o; + return quat_rotateZ(t, e, r), n = t[0], i = t[1], o = t[2], a = t[3], t[4] = l * a + p * n + f * o - d * i, t[5] = f * a + p * i + d * n - l * o, t[6] = d * a + p * o + l * i - f * n, t[7] = p * a - l * n - f * i - d * o, t + } + + function rotateByQuatAppend(t, e, r) { + var n = r[0], + i = r[1], + o = r[2], + a = r[3], + s = e[0], + u = e[1], + h = e[2], + c = e[3]; + return t[0] = s * a + c * n + u * o - h * i, t[1] = u * a + c * i + h * n - s * o, t[2] = h * a + c * o + s * i - u * n, t[3] = c * a - s * n - u * i - h * o, s = e[4], u = e[5], h = e[6], c = e[7], t[4] = s * a + c * n + u * o - h * i, t[5] = u * a + c * i + h * n - s * o, t[6] = h * a + c * o + s * i - u * n, t[7] = c * a - s * n - u * i - h * o, t + } + + function rotateByQuatPrepend(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = r[0], + u = r[1], + h = r[2], + c = r[3]; + return t[0] = n * c + a * s + i * h - o * u, t[1] = i * c + a * u + o * s - n * h, t[2] = o * c + a * h + n * u - i * s, t[3] = a * c - n * s - i * u - o * h, s = r[4], u = r[5], h = r[6], c = r[7], t[4] = n * c + a * s + i * h - o * u, t[5] = i * c + a * u + o * s - n * h, t[6] = o * c + a * h + n * u - i * s, t[7] = a * c - n * s - i * u - o * h, t + } + + function rotateAroundAxis(t, e, r, n) { + if (Math.abs(n) < F) return quat2_copy(t, e); + var i = Math.sqrt(r[0] * r[0] + r[1] * r[1] + r[2] * r[2]); + n *= .5; + var o = Math.sin(n), + a = o * r[0] / i, + s = o * r[1] / i, + u = o * r[2] / i, + h = Math.cos(n), + c = e[0], + l = e[1], + f = e[2], + d = e[3]; + t[0] = c * h + d * a + l * u - f * s, t[1] = l * h + d * s + f * a - c * u, t[2] = f * h + d * u + c * s - l * a, t[3] = d * h - c * a - l * s - f * u; + var p = e[4], + m = e[5], + v = e[6], + g = e[7]; + return t[4] = p * h + g * a + m * u - v * s, t[5] = m * h + g * s + v * a - p * u, t[6] = v * h + g * u + p * s - m * a, t[7] = g * h - p * a - m * s - v * u, t + } + + function quat2_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t[2] = e[2] + r[2], t[3] = e[3] + r[3], t[4] = e[4] + r[4], t[5] = e[5] + r[5], t[6] = e[6] + r[6], t[7] = e[7] + r[7], t + } + + function quat2_multiply(t, e, r) { + var n = e[0], + i = e[1], + o = e[2], + a = e[3], + s = r[4], + u = r[5], + h = r[6], + c = r[7], + l = e[4], + f = e[5], + d = e[6], + p = e[7], + m = r[0], + v = r[1], + g = r[2], + y = r[3]; + return t[0] = n * y + a * m + i * g - o * v, t[1] = i * y + a * v + o * m - n * g, t[2] = o * y + a * g + n * v - i * m, t[3] = a * y - n * m - i * v - o * g, t[4] = n * c + a * s + i * h - o * u + l * y + p * m + f * g - d * v, t[5] = i * c + a * u + o * s - n * h + f * y + p * v + d * m - l * g, t[6] = o * c + a * h + n * u - i * s + d * y + p * g + l * v - f * m, t[7] = a * c - n * s - i * u - o * h + p * y - l * m - f * v - d * g, t + } + var vt = quat2_multiply; + + function quat2_scale(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t[2] = e[2] * r, t[3] = e[3] * r, t[4] = e[4] * r, t[5] = e[5] * r, t[6] = e[6] * r, t[7] = e[7] * r, t + } + var gt = rt; + + function quat2_lerp(t, e, r, n) { + var i = 1 - n; + return gt(e, r) < 0 && (n = -n), t[0] = e[0] * i + r[0] * n, t[1] = e[1] * i + r[1] * n, t[2] = e[2] * i + r[2] * n, t[3] = e[3] * i + r[3] * n, t[4] = e[4] * i + r[4] * n, t[5] = e[5] * i + r[5] * n, t[6] = e[6] * i + r[6] * n, t[7] = e[7] * i + r[7] * n, t + } + + function quat2_invert(t, e) { + var r = bt(e); + return t[0] = -e[0] / r, t[1] = -e[1] / r, t[2] = -e[2] / r, t[3] = e[3] / r, t[4] = -e[4] / r, t[5] = -e[5] / r, t[6] = -e[6] / r, t[7] = e[7] / r, t + } + + function quat2_conjugate(t, e) { + return t[0] = -e[0], t[1] = -e[1], t[2] = -e[2], t[3] = e[3], t[4] = -e[4], t[5] = -e[5], t[6] = -e[6], t[7] = e[7], t + } + var yt = it, + _t = yt, + bt = at, + xt = bt; + + function quat2_normalize(t, e) { + var r = bt(e); + if (0 < r) { + r = Math.sqrt(r); + var n = e[0] / r, + i = e[1] / r, + o = e[2] / r, + a = e[3] / r, + s = e[4], + u = e[5], + h = e[6], + c = e[7], + l = n * s + i * u + o * h + a * c; + t[0] = n, t[1] = i, t[2] = o, t[3] = a, t[4] = (s - n * l) / r, t[5] = (u - i * l) / r, t[6] = (h - o * l) / r, t[7] = (c - a * l) / r + } + return t + } + + function quat2_str(t) { + return "quat2(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ", " + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ")" + } + + function quat2_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] && t[2] === e[2] && t[3] === e[3] && t[4] === e[4] && t[5] === e[5] && t[6] === e[6] && t[7] === e[7] + } + + function quat2_equals(t, e) { + var r = t[0], + n = t[1], + i = t[2], + o = t[3], + a = t[4], + s = t[5], + u = t[6], + h = t[7], + c = e[0], + l = e[1], + f = e[2], + d = e[3], + p = e[4], + m = e[5], + v = e[6], + g = e[7]; + return Math.abs(r - c) <= F * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(n - l) <= F * Math.max(1, Math.abs(n), Math.abs(l)) && Math.abs(i - f) <= F * Math.max(1, Math.abs(i), Math.abs(f)) && Math.abs(o - d) <= F * Math.max(1, Math.abs(o), Math.abs(d)) && Math.abs(a - p) <= F * Math.max(1, Math.abs(a), Math.abs(p)) && Math.abs(s - m) <= F * Math.max(1, Math.abs(s), Math.abs(m)) && Math.abs(u - v) <= F * Math.max(1, Math.abs(u), Math.abs(v)) && Math.abs(h - g) <= F * Math.max(1, Math.abs(h), Math.abs(g)) + } + + function vec2_create() { + var t = new g(2); + return g != Float32Array && (t[0] = 0, t[1] = 0), t + } + + function vec2_clone(t) { + var e = new g(2); + return e[0] = t[0], e[1] = t[1], e + } + + function vec2_fromValues(t, e) { + var r = new g(2); + return r[0] = t, r[1] = e, r + } + + function vec2_copy(t, e) { + return t[0] = e[0], t[1] = e[1], t + } + + function vec2_set(t, e, r) { + return t[0] = e, t[1] = r, t + } + + function vec2_add(t, e, r) { + return t[0] = e[0] + r[0], t[1] = e[1] + r[1], t + } + + function vec2_subtract(t, e, r) { + return t[0] = e[0] - r[0], t[1] = e[1] - r[1], t + } + + function vec2_multiply(t, e, r) { + return t[0] = e[0] * r[0], t[1] = e[1] * r[1], t + } + + function vec2_divide(t, e, r) { + return t[0] = e[0] / r[0], t[1] = e[1] / r[1], t + } + + function vec2_ceil(t, e) { + return t[0] = Math.ceil(e[0]), t[1] = Math.ceil(e[1]), t + } + + function vec2_floor(t, e) { + return t[0] = Math.floor(e[0]), t[1] = Math.floor(e[1]), t + } + + function vec2_min(t, e, r) { + return t[0] = Math.min(e[0], r[0]), t[1] = Math.min(e[1], r[1]), t + } + + function vec2_max(t, e, r) { + return t[0] = Math.max(e[0], r[0]), t[1] = Math.max(e[1], r[1]), t + } + + function vec2_round(t, e) { + return t[0] = Math.round(e[0]), t[1] = Math.round(e[1]), t + } + + function vec2_scale(t, e, r) { + return t[0] = e[0] * r, t[1] = e[1] * r, t + } + + function vec2_scaleAndAdd(t, e, r, n) { + return t[0] = e[0] + r[0] * n, t[1] = e[1] + r[1] * n, t + } + + function vec2_distance(t, e) { + var r = e[0] - t[0], + n = e[1] - t[1]; + return Math.sqrt(r * r + n * n) + } + + function vec2_squaredDistance(t, e) { + var r = e[0] - t[0], + n = e[1] - t[1]; + return r * r + n * n + } + + function vec2_length(t) { + var e = t[0], + r = t[1]; + return Math.sqrt(e * e + r * r) + } + + function vec2_squaredLength(t) { + var e = t[0], + r = t[1]; + return e * e + r * r + } + + function vec2_negate(t, e) { + return t[0] = -e[0], t[1] = -e[1], t + } + + function vec2_inverse(t, e) { + return t[0] = 1 / e[0], t[1] = 1 / e[1], t + } + + function vec2_normalize(t, e) { + var r = e[0], + n = e[1], + i = r * r + n * n; + return 0 < i && (i = 1 / Math.sqrt(i), t[0] = e[0] * i, t[1] = e[1] * i), t + } + + function vec2_dot(t, e) { + return t[0] * e[0] + t[1] * e[1] + } + + function vec2_cross(t, e, r) { + var n = e[0] * r[1] - e[1] * r[0]; + return t[0] = t[1] = 0, t[2] = n, t + } + + function vec2_lerp(t, e, r, n) { + var i = e[0], + o = e[1]; + return t[0] = i + n * (r[0] - i), t[1] = o + n * (r[1] - o), t + } + + function vec2_random(t, e) { + e = e || 1; + var r = 2 * d() * Math.PI; + return t[0] = Math.cos(r) * e, t[1] = Math.sin(r) * e, t + } + + function transformMat2(t, e, r) { + var n = e[0], + i = e[1]; + return t[0] = r[0] * n + r[2] * i, t[1] = r[1] * n + r[3] * i, t + } + + function transformMat2d(t, e, r) { + var n = e[0], + i = e[1]; + return t[0] = r[0] * n + r[2] * i + r[4], t[1] = r[1] * n + r[3] * i + r[5], t + } + + function vec2_transformMat3(t, e, r) { + var n = e[0], + i = e[1]; + return t[0] = r[0] * n + r[3] * i + r[6], t[1] = r[1] * n + r[4] * i + r[7], t + } + + function vec2_transformMat4(t, e, r) { + var n = e[0], + i = e[1]; + return t[0] = r[0] * n + r[4] * i + r[12], t[1] = r[1] * n + r[5] * i + r[13], t + } + + function vec2_rotate(t, e, r, n) { + var i = e[0] - r[0], + o = e[1] - r[1], + a = Math.sin(n), + s = Math.cos(n); + return t[0] = i * s - o * a + r[0], t[1] = i * a + o * s + r[1], t + } + + function vec2_angle(t, e) { + var r = t[0], + n = t[1], + i = e[0], + o = e[1], + a = r * r + n * n; + 0 < a && (a = 1 / Math.sqrt(a)); + var s = i * i + o * o; + 0 < s && (s = 1 / Math.sqrt(s)); + var u = (r * i + n * o) * a * s; + return 1 < u ? 0 : u < -1 ? Math.PI : Math.acos(u) + } + + function vec2_str(t) { + return "vec2(" + t[0] + ", " + t[1] + ")" + } + + function vec2_exactEquals(t, e) { + return t[0] === e[0] && t[1] === e[1] + } + + function vec2_equals(t, e) { + var r = t[0], + n = t[1], + i = e[0], + o = e[1]; + return Math.abs(r - i) <= F * Math.max(1, Math.abs(r), Math.abs(i)) && Math.abs(n - o) <= F * Math.max(1, Math.abs(n), Math.abs(o)) + } + var wt, Tt = vec2_length, + St = vec2_subtract, + Mt = vec2_multiply, + Et = vec2_divide, + At = vec2_distance, + Pt = vec2_squaredDistance, + It = vec2_squaredLength, + Ot = (wt = vec2_create(), function(t, e, r, n, i, o) { + var a = void 0, + s = void 0; + for (e || (e = 2), r || (r = 0), s = n ? Math.min(n * e + r, t.length) : t.length, a = r; a < s; a += e) wt[0] = t[a], wt[1] = t[a + 1], i(wt, wt, o), t[a] = wt[0], t[a + 1] = wt[1]; + return t + }); + r.d(e, "glMatrix", function() { + return n + }), r.d(e, "mat2", function() { + return i + }), r.d(e, "mat2d", function() { + return o + }), r.d(e, "mat3", function() { + return a + }), r.d(e, "mat4", function() { + return s + }), r.d(e, "quat", function() { + return c + }), r.d(e, "quat2", function() { + return l + }), r.d(e, "vec2", function() { + return f + }), r.d(e, "vec3", function() { + return u + }), r.d(e, "vec4", function() { + return h + }) + }, function(t, e, r) { + "use strict"; + e.__esModule = !0; + var n = function() { + function Component(t, e) { + if (function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }(this, Component), !t) throw new Error("component requires an entity"); + this.entity = t, this.data = e, this.name = "", this.game = null, this.active = !1 + } + return Component.create = function(t, r) { + if (Component.mapHash[t]) return Component.mapHash[t]; + + function com(t, e) { + this.entity = t, this.data = e, r.constructor && r.constructor.call(this) + } + for (var e in com.prototype = Object.create(Component.prototype), com.id = t, r) com.prototype[e] = r[e]; + return Component.mapHash[t] = com + }, Component + }(); + (e.default = n).mapHash = {} + }, function(t, e, r) { + var n = r(11); + t.exports = function(t) { + if (!n(t)) throw TypeError(t + " is not an object!"); + return t + } + }, function(t, e, r) { + "use strict"; + + function _defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + + function mockPromise() { + for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r]; + return { + then: function(t) { + return t.apply(void 0, e) + } + } + } + r.d(e, "a", function() { + return s + }); + var n = function() { + function PokiSDKMockup() {} + var t = PokiSDKMockup.prototype; + return t.init = function() { + return mockPromise() + }, t.gameLoadingStart = function() { + return mockPromise() + }, t.gameLoadingFinished = function() { + return mockPromise() + }, t.gameplayStart = function() { + return mockPromise() + }, t.gameplayStop = function() { + return mockPromise() + }, t.commercialBreak = function() { + return mockPromise() + }, t.happyTime = function(t) { + return mockPromise() + }, t.rewardedBreak = function() { + return mockPromise(!0) + }, PokiSDKMockup + }(), + i = function() { + function PokiSDKHangoutMockup() {} + var t = PokiSDKHangoutMockup.prototype; + return t.setDebug = function() { + return mockPromise() + }, t.getLobbyId = function() { + return mockPromise() + }, t.getLeaderboard = function(t, e, r) { + return mockPromise([{ + name: "Yutani", + image: "icon_07_yutani", + score: 999999 + }, { + name: "Spike", + image: "icon_08_spike", + score: 810312 + }, { + name: "Fresh", + image: "icon_09_fresh", + score: 555555 + }, { + name: "Tricky", + image: "icon_11_tricky", + score: 345678 + }, { + name: "Lucy", + image: "icon_04_lucy", + score: 171110 + }, { + name: "Ninja", + image: "icon_03_ninja", + score: 123456 + }, { + name: "Brody", + image: "icon_00_brody", + score: 65900 + }, { + name: "Tagbot", + image: "icon_01_tagbot", + score: 15505 + }, { + name: "Tasha", + image: "icon_02_tasha", + score: 1e3 + }, { + name: "King", + image: "icon_05_king", + score: 500 + }, { + name: "ME", + image: "icon_friend", + score: r + }].sort(function(t, e) { + return e.score - t.score + })) + }, t.initHighscoreSession = function() { + return mockPromise() + }, t.saveHighscore = function() { + return mockPromise() + }, PokiSDKHangoutMockup + }(), + o = new n, + a = new i, + s = function() { + function Tabouzigt() {} + var t, e, r; + return Tabouzigt.sendCustomMessage = function(t, e, r) { + window.parent && window.parent.postMessage({ + type: "pokiMessageEvent", + content: { + event: "pokiTrackingCustom", + data: { + eventNoun: t, + eventVerb: e, + eventData: r + } + } + }, "*") + }, t = Tabouzigt, r = [{ + key: "SDK", + get: function() { + var t = window.Tabouzigtsdk || o; + return t && !t.sendCustomMessage && (t.sendCustomMessage = this.sendCustomMessage), t + } + }, { + key: "hangout", + get: function() { + var t = window.Tabouzigtsdk || o; + return t && t.hangout ? t.hangout : a + } + }], (e = null) && _defineProperties(t.prototype, e), r && _defineProperties(t, r), Tabouzigt + }() + }, function(t, e, r) { + "use strict"; + e.__esModule = !0; + var n = function() { + function defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + return function(t, e, r) { + return e && defineProperties(t.prototype, e), r && defineProperties(t, r), t + } + }(); + var i = function() { + function Runner(t) { + var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0; + ! function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }(this, Runner), this.items = [], this._name = t, this.running = !1, this.dispatch = Runner.generateRun(t, e), this.run = this.dispatch, this.emit = this.dispatch, this.dummy = {}, this.dummy[t] = function() {} + } + return Runner.prototype.add = function(t) { + t[this._name] && (this.remove(t), this.items.push(t), this.toRemove = [], this.needsTidy = !1) + }, Runner.prototype.tidy = function() { + for (var t = 0; t < this.toRemove.length; t++) { + var e = this.toRemove[t]; - 1 !== e && this.items.splice(e, 1) + } + }, Runner.prototype.remove = function(t) { + var e = this.items.indexOf(t); + this.running ? (this.needsTidy = !0, this.toRemove.push(e), this.items[e] = this.dummy) : -1 !== e && this.items.splice(e, 1) + }, Runner.prototype.contains = function(t) { + return -1 !== this.items.indexOf(t) + }, Runner.prototype.removeAll = function() { + this.items.length = 0 + }, Runner.generateRun = function(t, e) { + var r = t + "|" + e, + n = Runner.hash[r]; + if (!n) { + if (0 < e) { + for (var i = "arg0", o = 1; o < e; o++) i += ",arg" + o; + n = new Function(i, "this.running = true; \n var items = this.items; \n for(var i=0;i= e.length && e === convertArrayBufferToString(t, 0, e.length) + } + + function isFbxFormatASCII(t) { + var e, r, n = ["K", "a", "y", "d", "a", "r", "a", "\\", "F", "B", "X", "\\", "B", "i", "n", "a", "r", "y", "\\", "\\"], + i = 0; + for (var o = 0; o < n.length; ++o) { + if ((void 0, r = t[(e = 1) - 1], t = t.slice(i + e), i++, r) === n[o]) return !1 + } + return !0 + } + + function getFbxVersion(t) { + var e = t.match(/FBXVersion: (\d+)/); + if (e) return parseInt(e[1]); + throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.") + } + + function convertFBXTimeToSeconds(t) { + return t / 46186158e3 + } + var s = []; + + function getData(t, e, r, n) { + var i; + switch (n.mappingType) { + case "ByPolygonVertex": + i = t; + break; + case "ByPolygon": + i = e; + break; + case "ByVertice": + i = r; + break; + case "AllSame": + i = n.indices[0] + } + "IndexToDirect" === n.referenceType && (i = n.indices[i]); + var o = i * n.dataSize, + a = o + n.dataSize; + return function(t, e, r, n) { + for (var i = r, o = 0; i < n; i++, o++) t[o] = e[i]; + return t + }(s, n.buffer, o, a) + } + var I = new P.k, + O = new P.P; + + function generateTransform(t) { + var e = new P.v, + r = new P.v, + n = new P.v, + i = new P.v, + o = new P.v, + a = new P.v, + s = new P.v, + u = new P.v, + h = new P.v, + c = new P.v, + l = new P.v, + f = t.inheritType ? t.inheritType : 0; + if (t.translation && e.setPosition(O.fromArray(t.translation)), t.preRotation) { + var d = t.preRotation.map(P.t.degToRad); + d.push(t.eulerOrder), r.makeRotationFromEuler(I.fromArray(d)) + } + if (t.rotation) { + var p = t.rotation.map(P.t.degToRad); + p.push(t.eulerOrder), n.makeRotationFromEuler(I.fromArray(p)) + } + if (t.postRotation) { + var m = t.postRotation.map(P.t.degToRad); + m.push(t.eulerOrder), i.makeRotationFromEuler(I.fromArray(m)) + } + t.scale && o.scale(O.fromArray(t.scale)), t.scalingOffset && s.setPosition(O.fromArray(t.scalingOffset)), t.scalingPivot && a.setPosition(O.fromArray(t.scalingPivot)), t.rotationOffset && u.setPosition(O.fromArray(t.rotationOffset)), t.rotationPivot && h.setPosition(O.fromArray(t.rotationPivot)), t.parentMatrixWorld && (c = t.parentMatrixWorld); + var v = r.multiply(n).multiply(i), + g = new P.v; + c.extractRotation(g); + var y, _, b, x, w = new P.v; + if (w.copyPosition(c), b = w.getInverse(w).multiply(c), _ = g.getInverse(g).multiply(b), y = o, 0 === f) x = g.multiply(v).multiply(_).multiply(y); + else if (1 === f) x = g.multiply(_).multiply(v).multiply(y); + else { + var T = (new P.v).copy(o), + S = _.multiply(T.getInverse(T)); + x = g.multiply(v).multiply(S).multiply(y) + } + var M = e.multiply(u).multiply(h).multiply(r).multiply(n).multiply(i).multiply(h.getInverse(h)).multiply(s).multiply(a).multiply(o).multiply(a.getInverse(a)), + E = (new P.v).copyPosition(M), + A = c.multiply(E); + return l.copyPosition(A), M = l.multiply(x) + } + + function getEulerOrder(t) { + var e = ["ZYX", "YZX", "XZY", "ZXY", "YXZ", "XYZ"]; + return 6 === (t = t || 0) ? e[0] : e[t] + } + + function parseNumberArray(t) { + return t.split(",").map(function(t) { + return parseFloat(t) + }) + } + + function convertArrayBufferToString(t, e, r) { + return void 0 === e && (e = 0), void 0 === r && (r = t.byteLength), P.q.decodeText(new Uint8Array(t, e, r)) + } + + function append(t, e) { + for (var r = 0, n = t.length, i = e.length; r < i; r++, n++) t[n] = e[r] + } + + function inject(t, e, r) { + return t.slice(0, e).concat(r).concat(t.slice(e)) + } + }, function(t, e, r) { + var n = r(35), + i = Math.min; + t.exports = function(t) { + return 0 < t ? i(n(t), 9007199254740991) : 0 + } + }, function(t, e, r) { + "use strict"; + + function arraySlice(t, e, r) { + return isTypedArray(t) ? new t.constructor(t.subarray(e, void 0 !== r ? r : t.length)) : t.slice(e, r) + } + + function convertArray(t, e, r) { + return !t || !r && t.constructor === e ? t : "number" == typeof e.BYTES_PER_ELEMENT ? new e(t) : Array.prototype.slice.call(t) + } + + function isTypedArray(t) { + return ArrayBuffer.isView(t) && !(t instanceof DataView) + } + + function getKeyframeOrder(r) { + for (var t = r.length, e = new Array(t), n = 0; n !== t; ++n) e[n] = n; + return e.sort(function(t, e) { + return r[t] - r[e] + }), e + } + + function sortedArray(t, e, r) { + for (var n = t.length, i = new t.constructor(n), o = 0, a = 0; a !== n; ++o) + for (var s = r[o] * e, u = 0; u !== e; ++u) i[a++] = t[s + u]; + return i + } + + function flattenJSON(t, e, r, n) { + for (var i = 1, o = t[0]; void 0 !== o && void 0 === o[n];) o = t[i++]; + if (void 0 !== o) { + var a = o[n]; + if (void 0 !== a) + if (Array.isArray(a)) + for (; void 0 !== (a = o[n]) && (e.push(o.time), r.push.apply(r, a)), void 0 !== (o = t[i++]);); + else if (void 0 !== a.toArray) + for (; void 0 !== (a = o[n]) && (e.push(o.time), a.toArray(r, r.length)), void 0 !== (o = t[i++]);); + else + for (; void 0 !== (a = o[n]) && (e.push(o.time), r.push(a)), void 0 !== (o = t[i++]);); + } + } + + function subclip(t, e, r, n, i) { + i = i || 30; + var o = t.clone(); + o.name = e; + for (var a = [], s = 0; s < o.tracks.length; ++s) { + for (var u = o.tracks[s], h = u.getValueSize(), c = [], l = [], f = 0; f < u.times.length; ++f) { + var d = u.times[f] * i; + if (!(d < r || n <= d)) { + c.push(u.times[f]); + for (var p = 0; p < h; ++p) l.push(u.values[f * h + p]) + } + } + 0 !== c.length && (u.times = convertArray(c, u.times.constructor), u.values = convertArray(l, u.values.constructor), a.push(u)) + } + o.tracks = a; + var m = 1 / 0; + for (s = 0; s < o.tracks.length; ++s) m > o.tracks[s].times[0] && (m = o.tracks[s].times[0]); + for (s = 0; s < o.tracks.length; ++s) o.tracks[s].shift(-1 * m); + return o.resetDuration(), o + } + r.d(e, "a", function() { + return arraySlice + }), r.d(e, "b", function() { + return convertArray + }), r.d(e, "e", function() { + return isTypedArray + }), r.d(e, "d", function() { + return getKeyframeOrder + }), r.d(e, "f", function() { + return sortedArray + }), r.d(e, "c", function() { + return flattenJSON + }), r.d(e, "g", function() { + return subclip + }) + }, function(t, e, r) { + t.exports = !r(10)(function() { + return 7 != Object.defineProperty({}, "a", { + get: function() { + return 7 + } + }).a + }) + }, function(t, e, r) { + var n = r(6), + i = r(134), + o = r(38), + a = Object.defineProperty; + e.f = r(19) ? Object.defineProperty : function(t, e, r) { + if (n(t), e = o(e, !0), n(r), i) try { + return a(t, e, r) + } catch (t) {} + if ("get" in r || "set" in r) throw TypeError("Accessors not supported!"); + return "value" in r && (t[e] = r.value), t + } + }, function(t, e, r) { + "use strict"; + + function _defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + var n = function() { + function Device() { + this.arora = !1, this.chrome = !1, this.epiphany = !1, this.firefox = !1, this.mobileSafari = !1, this.ie = !1, this.ieVersion = 0, this.trident = !1, this.tridentVersion = 0, this.midori = !1, this.opera = !1, this.safari = !1, this.silk = !1, this.webApp = !1, this.cocoonJS = !1, this.android = !1, this.chromeOS = !1, this.iOS = !1, this.linux = !1, this.macOS = !1, this.windows = !1, this.desktop = !1, this.pixelRatio = 0, this.iPhone = !1, this.iPhone4 = !1, this.iPad = !1, this.blob = !1, this.canvas = !1, this.localStorage = !1, this.file = !1, this.fileSystem = !1, this.webGL = !1, this.worker = !1, this.audioData = !1, this.webAudio = !1, this.ogg = !1, this.opus = !1, this.mp3 = !1, this.wav = !1, this.m4a = !1, this.webm = !1; + var t = navigator.userAgent; + this._checkBrowser(t), this._checkOS(t), this._checkDevice(t), this._checkAudio(), this._checkFeatures(), this._checkIsMobile(), this._checkIsTouch() + } + var t, e, r, n = Device.prototype; + return n._checkBrowser = function(t) { + /Arora/.test(t) ? this.arora = !0 : /Opera|OPR|op/.test(t) ? (this.opera = !0, this.chrome = !1) : /Chrome/.test(t) ? this.chrome = !0 : /Epiphany/.test(t) ? this.epiphany = !0 : /Firefox/.test(t) ? this.firefox = !0 : /Mobile Safari/.test(t) ? this.mobileSafari = !0 : /MSIE (\d+\.\d+);/.test(t) || navigator.userAgent.match(/Trident.*rv[ :]*11\./) ? (this.ie = !0, this.ieVersion = parseInt(RegExp.$1, 10)) : /Midori/.test(t) ? this.midori = !0 : /Safari/.test(t) ? this.safari = !0 : /\bSilk\b/.test(t) ? this.silk = !0 : /Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(t) && (this.ie = !0, this.trident = !0, this.tridentVersion = parseInt(RegExp.$1, 10), this.ieVersion = parseInt(RegExp.$3, 10)), navigator.standalone && (this.webApp = !0), navigator.isCocoonJS && (this.cocoonJS = !0) + }, n._checkOS = function(t) { + if (/Android/.test(t)) this.android = !0; + else if (/CrOS/.test(t)) this.chromeOS = !0; + else if (/iP[ao]d|iPhone/i.test(t)) { + this.iOS = !0; + var e = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/); + this.iOS_version = [parseInt(e[1], 10), parseInt(e[2], 10), parseInt(e[3] || 0, 10)] + } else /Linux/.test(t) ? this.linux = !0 : /Mac OS/.test(t) ? this.macOS = !0 : /Windows/.test(t) && (this.windows = !0); + (this.windows || this.macOS || this.linux || this.chromeOS) && (this.desktop = !0) + }, n._checkDevice = function() { + this.pixelRatio = window.devicePixelRatio || 1, this.iPhone = -1 !== navigator.userAgent.toLowerCase().indexOf("iphone"), this.iPhone4 = 2 === this.pixelRatio && this.iPhone, this.iPhone4 && (this.iPhone4 = 480 == window.screen.height && 320 == window.screen.width || 480 == window.screen.width && 320 == window.screen.height), this.iPad = -1 !== navigator.userAgent.toLowerCase().indexOf("ipad") + }, n._checkFeatures = function() { + void 0 !== window.Blob && (this.blob = !0), this.canvas = !!window.CanvasRenderingContext2D; + try { + this.localStorage = !!localStorage.getItem + } catch (t) { + this.localStorage = !1 + } + this.file = !!(window.File && window.FileReader && window.FileList && window.Blob), this.fileSystem = !!window.requestFileSystem, this.webGL = function() { + try { + var t = document.createElement("canvas"); + return !!window.WebGLRenderingContext && (t.getContext("webgl") || t.getContext("experimental-webgl")) + } catch (t) { + return !1 + } + }(), (this.android || this.ie) && (this.webGL = !1), this.worker = !!window.Worker, ("ontouchstart" in document.documentElement || window.navigator.msPointerEnabled) && (this.touch = !0) + }, n._checkAudio = function() { + this.audioData = !!window.Audio, this.webaudio = !(!window.AudioContext && !window.webkitAudioContext); + var t = document.createElement("audio"); + try { + !1 == !!t.canPlayType && (t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "") && (this.ogg = !0), t.canPlayType("audio/mpeg;").replace(/^no$/, "") && (this.mp3 = !0), t.canPlayType('audio/wav; codecs="1"').replace(/^no$/, "") && (this.wav = !0), (t.canPlayType("audio/x-m4a;") || t.canPlayType("audio/aac;").replace(/^no$/, "")) && (this.m4a = !0)) + } catch (t) {} + }, n._checkIsMobile = function() { + var t, e = !1; + t = navigator.userAgent || navigator.vendor || window.opera, (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(t) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0, 4))) && (e = !0), this.isMobile = e, this.mobile = e + }, n._checkIsTouch = function() { + this.isTouch = "ontouchstart" in window || 0 < navigator.MaxTouchPoints || 0 < navigator.msMaxTouchPoints + }, n.is_touch_device = function() {}, n.getInfo = function() { + var t = "DEVICE OUTPUT\n\n"; + return t += "---\n", t += "Browser Info :: \n", t += "Arora : " + this.arora + "\n", t += "Chrome : " + this.chrome + "\n", t += "Epiphany : " + this.epiphany + "\n", t += "Firefox : " + this.firefox + "\n", t += "Mobile Safari : " + this.mobileSafari + "\n", t += "IE : " + this.ie, this.ie ? t += " (Version " + this.ieVersion + ")\n" : t += "\n", t += "Midori : " + this.midori + "\n", t += "Opera : " + this.opera + "\n", t += "Safari : " + this.safari + "\n", t += "Web App : " + this.webApp + "\n", t += "CocoonJS : " + this.cocoonJS + "\n", t += "Android : " + this.android + "\n", t += "---\n", t += "Operating System :: \n", t += "Chrome OS : " + this.chromeOS + "\n", t += "iOS : " + this.iOS + "\n", t += "Linux : " + this.linux + "\n", t += "Mac OS : " + this.macOS + "\n", t += "Windows : " + this.windows + "\n", t += "Desktop : " + this.desktop + "\n", t += "---\n", t += "Device Type : \n", t += "Pixel Ratio : " + this.pixelRatio + "\n", t += "iPhone : " + this.iPhone + "\n", t += "iPhone 4 : " + this.iPhone4 + "\n", t += "iPad : " + this.iPad + "\n", t += "---\n", t += "Features :: \n", t += "Blob : " + this.blob + "\n", t += "Canvas : " + this.canvas + "\n", t += "LocalStorage : " + this.localStorage + "\n", t += "File : " + this.file + "\n", t += "File System : " + this.fileSystem + "\n", t += "WebGL : " + this.webGL + "\n", t += "Workers : " + this.worker + "\n", t += "---\n", t += "Audio :: \n", t += "AudioData : " + this.audioData + "\n", t += "WebAudio : " + this.webAudio + "\n", t += "Supports .ogg : " + this.ogg + "\n", t += "Supports Opus : " + this.opus + "\n", t += "Supports .mp3 : " + this.mp3 + "\n", t += "Supports .wav : " + this.wav + "\n", t += "Supports .m4a : " + this.m4a + "\n", t += "Supports .webm : " + this.webm + }, t = Device, (e = [{ + key: "ie9", + get: function() { + return this.ie && 9 === this.ieVersion + } + }, { + key: "useSM2", + get: function() { + return this.ie || this.opera + } + }]) && _defineProperties(t.prototype, e), r && _defineProperties(t, r), Device + }(); + n.instance = new n, e.a = n + }, function(t, e, r) { + var n = r(39); + t.exports = function(t) { + return Object(n(t)) + } + }, function(i, f, t) { + (function(r) { + var n; + ! function() { + "use strict"; + var t = function() { + this.init() + }; + t.prototype = { + init: function() { + var t = this || b; + return t._counter = 1e3, t._html5AudioPool = [], t.html5PoolSize = 10, t._codecs = {}, t._howls = [], t._muted = !1, t._volume = 1, t._canPlayEvent = "canplaythrough", t._navigator = "undefined" != typeof window && window.navigator ? window.navigator : null, t.masterGain = null, t.noAudio = !1, t.usingWebAudio = !0, t.autoSuspend = !0, t.ctx = null, t.autoUnlock = !0, t._setup(), t + }, + volume: function(t) { + var e = this || b; + if (t = parseFloat(t), e.ctx || l(), void 0 !== t && 0 <= t && t <= 1) { + if (e._volume = t, e._muted) return e; + e.usingWebAudio && e.masterGain.gain.setValueAtTime(t, b.ctx.currentTime); + for (var r = 0; r < e._howls.length; r++) + if (!e._howls[r]._webAudio) + for (var n = e._howls[r]._getSoundIds(), i = 0; i < n.length; i++) { + var o = e._howls[r]._soundById(n[i]); + o && o._node && (o._node.volume = o._volume * t) + } + return e + } + return e._volume + }, + mute: function(t) { + var e = this || b; + e.ctx || l(), e._muted = t, e.usingWebAudio && e.masterGain.gain.setValueAtTime(t ? 0 : e._volume, b.ctx.currentTime); + for (var r = 0; r < e._howls.length; r++) + if (!e._howls[r]._webAudio) + for (var n = e._howls[r]._getSoundIds(), i = 0; i < n.length; i++) { + var o = e._howls[r]._soundById(n[i]); + o && o._node && (o._node.muted = !!t || o._muted) + } + return e + }, + unload: function() { + for (var t = this || b, e = t._howls.length - 1; 0 <= e; e--) t._howls[e].unload(); + return t.usingWebAudio && t.ctx && void 0 !== t.ctx.close && (t.ctx.close(), t.ctx = null, l()), t + }, + codecs: function(t) { + return (this || b)._codecs[t.replace(/^x-/, "")] + }, + _setup: function() { + var e = this || b; + if (e.state = e.ctx && e.ctx.state || "suspended", e._autoSuspend(), !e.usingWebAudio) + if ("undefined" != typeof Audio) try { + void 0 === (new Audio).oncanplaythrough && (e._canPlayEvent = "canplay") + } catch (t) { + e.noAudio = !0 + } else e.noAudio = !0; + try { + (new Audio).muted && (e.noAudio = !0) + } catch (t) {} + return e.noAudio || e._setupCodecs(), e + }, + _setupCodecs: function() { + var e = this || b, + t = null; + try { + t = "undefined" != typeof Audio ? new Audio : null + } catch (t) { + return e + } + if (!t || "function" != typeof t.canPlayType) return e; + var r = t.canPlayType("audio/mpeg;").replace(/^no$/, ""), + n = e._navigator && e._navigator.userAgent.match(/OPR\/([0-6].)/g), + i = n && parseInt(n[0].split("/")[1], 10) < 33; + return e._codecs = { + mp3: !(i || !r && !t.canPlayType("audio/mp3;").replace(/^no$/, "")), + mpeg: !!r, + opus: !!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ""), + ogg: !!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), + oga: !!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), + wav: !!t.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), + aac: !!t.canPlayType("audio/aac;").replace(/^no$/, ""), + caf: !!t.canPlayType("audio/x-caf;").replace(/^no$/, ""), + m4a: !!(t.canPlayType("audio/x-m4a;") || t.canPlayType("audio/m4a;") || t.canPlayType("audio/aac;")).replace(/^no$/, ""), + mp4: !!(t.canPlayType("audio/x-mp4;") || t.canPlayType("audio/mp4;") || t.canPlayType("audio/aac;")).replace(/^no$/, ""), + weba: !!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""), + webm: !!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""), + dolby: !!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ""), + flac: !!(t.canPlayType("audio/x-flac;") || t.canPlayType("audio/flac;")).replace(/^no$/, "") + }, e + }, + _unlockAudio: function() { + var s = this || b, + t = /iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi|Chrome|Safari/i.test(s._navigator && s._navigator.userAgent); + if (!s._audioUnlocked && s.ctx && t) { + s._audioUnlocked = !1, s.autoUnlock = !1, s._mobileUnloaded || 44100 === s.ctx.sampleRate || (s._mobileUnloaded = !0, s.unload()), s._scratchBuffer = s.ctx.createBuffer(1, 1, 22050); + var u = function(t) { + for (var e = 0; e < s.html5PoolSize; e++) { + var r = new Audio; + r._unlocked = !0, s._releaseHtml5Audio(r) + } + for (e = 0; e < s._howls.length; e++) + if (!s._howls[e]._webAudio) + for (var n = s._howls[e]._getSoundIds(), i = 0; i < n.length; i++) { + var o = s._howls[e]._soundById(n[i]); + o && o._node && !o._node._unlocked && (o._node._unlocked = !0, o._node.load()) + } + s._autoResume(); + var a = s.ctx.createBufferSource(); + a.buffer = s._scratchBuffer, a.connect(s.ctx.destination), void 0 === a.start ? a.noteOn(0) : a.start(0), "function" == typeof s.ctx.resume && s.ctx.resume(), a.onended = function() { + a.disconnect(0), s._audioUnlocked = !0, document.removeEventListener("touchstart", u, !0), document.removeEventListener("touchend", u, !0), document.removeEventListener("click", u, !0); + for (var t = 0; t < s._howls.length; t++) s._howls[t]._emit("unlock") + } + }; + return document.addEventListener("touchstart", u, !0), document.addEventListener("touchend", u, !0), document.addEventListener("click", u, !0), s + } + }, + _obtainHtml5Audio: function() { + var t = this || b; + if (t._html5AudioPool.length) return t._html5AudioPool.pop(); + var e = (new Audio).play(); + return e && "undefined" != typeof Promise && (e instanceof Promise || "function" == typeof e.then) && e.catch(function() {}), new Audio + }, + _releaseHtml5Audio: function(t) { + var e = this || b; + return t._unlocked && e._html5AudioPool.push(t), e + }, + _autoSuspend: function() { + var t = this; + if (t.autoSuspend && t.ctx && void 0 !== t.ctx.suspend && b.usingWebAudio) { + for (var e = 0; e < t._howls.length; e++) + if (t._howls[e]._webAudio) + for (var r = 0; r < t._howls[e]._sounds.length; r++) + if (!t._howls[e]._sounds[r]._paused) return t; + return t._suspendTimer && clearTimeout(t._suspendTimer), t._suspendTimer = setTimeout(function() { + t.autoSuspend && (t._suspendTimer = null, t.state = "suspending", t.ctx.suspend().then(function() { + t.state = "suspended", t._resumeAfterSuspend && (delete t._resumeAfterSuspend, t._autoResume()) + })) + }, 3e4), t + } + }, + _autoResume: function() { + var e = this; + if (e.ctx && void 0 !== e.ctx.resume && b.usingWebAudio) return "running" === e.state && e._suspendTimer ? (clearTimeout(e._suspendTimer), e._suspendTimer = null) : "suspended" === e.state ? (e.ctx.resume().then(function() { + e.state = "running"; + for (var t = 0; t < e._howls.length; t++) e._howls[t]._emit("resume") + }), e._suspendTimer && (clearTimeout(e._suspendTimer), e._suspendTimer = null)) : "suspending" === e.state && (e._resumeAfterSuspend = !0), e + } + }; + var b = new t, + e = function(t) { + t.src && 0 !== t.src.length && this.init(t) + }; + e.prototype = { + init: function(t) { + var e = this; + return b.ctx || l(), e._autoplay = t.autoplay || !1, e._format = "string" != typeof t.format ? t.format : [t.format], e._html5 = t.html5 || !1, e._muted = t.mute || !1, e._loop = t.loop || !1, e._pool = t.pool || 5, e._preload = "boolean" != typeof t.preload || t.preload, e._rate = t.rate || 1, e._sprite = t.sprite || {}, e._src = "string" != typeof t.src ? t.src : [t.src], e._volume = void 0 !== t.volume ? t.volume : 1, e._xhrWithCredentials = t.xhrWithCredentials || !1, e._duration = 0, e._state = "unloaded", e._sounds = [], e._endTimers = {}, e._queue = [], e._playLock = !1, e._onend = t.onend ? [{ + fn: t.onend + }] : [], e._onfade = t.onfade ? [{ + fn: t.onfade + }] : [], e._onload = t.onload ? [{ + fn: t.onload + }] : [], e._onloaderror = t.onloaderror ? [{ + fn: t.onloaderror + }] : [], e._onplayerror = t.onplayerror ? [{ + fn: t.onplayerror + }] : [], e._onpause = t.onpause ? [{ + fn: t.onpause + }] : [], e._onplay = t.onplay ? [{ + fn: t.onplay + }] : [], e._onstop = t.onstop ? [{ + fn: t.onstop + }] : [], e._onmute = t.onmute ? [{ + fn: t.onmute + }] : [], e._onvolume = t.onvolume ? [{ + fn: t.onvolume + }] : [], e._onrate = t.onrate ? [{ + fn: t.onrate + }] : [], e._onseek = t.onseek ? [{ + fn: t.onseek + }] : [], e._onunlock = t.onunlock ? [{ + fn: t.onunlock + }] : [], e._onresume = [], e._webAudio = b.usingWebAudio && !e._html5, void 0 !== b.ctx && b.ctx && b.autoUnlock && b._unlockAudio(), b._howls.push(e), e._autoplay && e._queue.push({ + event: "play", + action: function() { + e.play() + } + }), e._preload && e.load(), e + }, + load: function() { + var t = this, + e = null; + if (b.noAudio) t._emit("loaderror", null, "No audio support."); + else { + "string" == typeof t._src && (t._src = [t._src]); + for (var r = 0; r < t._src.length; r++) { + var n, i; + if (t._format && t._format[r]) n = t._format[r]; + else { + if ("string" != typeof(i = t._src[r])) { + t._emit("loaderror", null, "Non-string found in selected audio sources - ignoring."); + continue + }(n = /^data:audio\/([^;,]+);/i.exec(i)) || (n = /\.([^.]+)$/.exec(i.split("?", 1)[0])), n && (n = n[1].toLowerCase()) + } + if (n && b.codecs(n)) { + e = t._src[r]; + break + } + } + if (e) return t._src = e, t._state = "loading", "https:" === window.location.protocol && "http:" === e.slice(0, 5) && (t._html5 = !0, t._webAudio = !1), new o(t), t._webAudio && s(t), t; + t._emit("loaderror", null, "No codec support for selected audio sources.") + } + }, + play: function(e, r) { + var n = this, + t = null; + if ("number" == typeof e) t = e, e = null; + else { + if ("string" == typeof e && "loaded" === n._state && !n._sprite[e]) return null; + if (void 0 === e && (e = "__default", !n._playLock)) { + for (var i = 0, o = 0; o < n._sounds.length; o++) n._sounds[o]._paused && !n._sounds[o]._ended && (i++, t = n._sounds[o]._id); + 1 === i ? e = null : t = null + } + } + var a = t ? n._soundById(t) : n._inactiveSound(); + if (!a) return null; + if (t && !e && (e = a._sprite || "__default"), "loaded" !== n._state) { + a._sprite = e, a._ended = !1; + var s = a._id; + return n._queue.push({ + event: "play", + action: function() { + n.play(s) + } + }), s + } + if (t && !a._paused) return r || n._loadQueue("play"), a._id; + n._webAudio && b._autoResume(); + var u = Math.max(0, 0 < a._seek ? a._seek : n._sprite[e][0] / 1e3), + h = Math.max(0, (n._sprite[e][0] + n._sprite[e][1]) / 1e3 - u), + c = 1e3 * h / Math.abs(a._rate), + l = n._sprite[e][0] / 1e3, + f = (n._sprite[e][0] + n._sprite[e][1]) / 1e3, + d = !(!a._loop && !n._sprite[e][2]); + a._sprite = e, a._ended = !1; + var p = function() { + a._paused = !1, a._seek = u, a._start = l, a._stop = f, a._loop = d + }; + if (!(f <= u)) { + var m = a._node; + if (n._webAudio) { + var v = function() { + n._playLock = !1, p(), n._refreshBuffer(a); + var t = a._muted || n._muted ? 0 : a._volume; + m.gain.setValueAtTime(t, b.ctx.currentTime), a._playStart = b.ctx.currentTime, void 0 === m.bufferSource.start ? a._loop ? m.bufferSource.noteGrainOn(0, u, 86400) : m.bufferSource.noteGrainOn(0, u, h) : a._loop ? m.bufferSource.start(0, u, 86400) : m.bufferSource.start(0, u, h), c !== 1 / 0 && (n._endTimers[a._id] = setTimeout(n._ended.bind(n, a), c)), r || setTimeout(function() { + n._emit("play", a._id), n._loadQueue() + }, 0) + }; + "running" === b.state ? v() : (n._playLock = !0, n.once("resume", v), n._clearTimer(a._id)) + } else { + var g = function() { + m.currentTime = u, m.muted = a._muted || n._muted || b._muted || m.muted, m.volume = a._volume * b.volume(), m.playbackRate = a._rate; + try { + var t = m.play(); + if (t && "undefined" != typeof Promise && (t instanceof Promise || "function" == typeof t.then) ? (n._playLock = !0, p(), t.then(function() { + n._playLock = !1, m._unlocked = !0, r || (n._emit("play", a._id), n._loadQueue()) + }).catch(function() { + n._playLock = !1, n._emit("playerror", a._id, "Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."), a._ended = !0, a._paused = !0 + })) : r || (n._playLock = !1, p(), n._emit("play", a._id), n._loadQueue()), m.playbackRate = a._rate, m.paused) return void n._emit("playerror", a._id, "Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."); + "__default" !== e || a._loop ? n._endTimers[a._id] = setTimeout(n._ended.bind(n, a), c) : (n._endTimers[a._id] = function() { + n._ended(a), m.removeEventListener("ended", n._endTimers[a._id], !1) + }, m.addEventListener("ended", n._endTimers[a._id], !1)) + } catch (t) { + n._emit("playerror", a._id, t) + } + }, + y = window && window.ejecta || !m.readyState && b._navigator.isCocoonJS; + if (3 <= m.readyState || y) g(); + else { + n._playLock = !0; + var _ = function() { + g(), m.removeEventListener(b._canPlayEvent, _, !1) + }; + m.addEventListener(b._canPlayEvent, _, !1), n._clearTimer(a._id) + } + } + return a._id + } + n._ended(a) + }, + pause: function(t) { + var e = this; + if ("loaded" !== e._state || e._playLock) return e._queue.push({ + event: "pause", + action: function() { + e.pause(t) + } + }), e; + for (var r = e._getSoundIds(t), n = 0; n < r.length; n++) { + e._clearTimer(r[n]); + var i = e._soundById(r[n]); + if (i && !i._paused && (i._seek = e.seek(r[n]), i._rateSeek = 0, i._paused = !0, e._stopFade(r[n]), i._node)) + if (e._webAudio) { + if (!i._node.bufferSource) continue; + void 0 === i._node.bufferSource.stop ? i._node.bufferSource.noteOff(0) : i._node.bufferSource.stop(0), e._cleanBuffer(i._node) + } else isNaN(i._node.duration) && i._node.duration !== 1 / 0 || i._node.pause(); + arguments[1] || e._emit("pause", i ? i._id : null) + } + return e + }, + stop: function(t, e) { + var r = this; + if ("loaded" !== r._state || r._playLock) return r._queue.push({ + event: "stop", + action: function() { + r.stop(t) + } + }), r; + for (var n = r._getSoundIds(t), i = 0; i < n.length; i++) { + r._clearTimer(n[i]); + var o = r._soundById(n[i]); + o && (o._seek = o._start || 0, o._rateSeek = 0, o._paused = !0, o._ended = !0, r._stopFade(n[i]), o._node && (r._webAudio ? o._node.bufferSource && (void 0 === o._node.bufferSource.stop ? o._node.bufferSource.noteOff(0) : o._node.bufferSource.stop(0), r._cleanBuffer(o._node)) : isNaN(o._node.duration) && o._node.duration !== 1 / 0 || (o._node.currentTime = o._start || 0, o._node.pause())), e || r._emit("stop", o._id)) + } + return r + }, + mute: function(t, e) { + var r = this; + if ("loaded" !== r._state || r._playLock) return r._queue.push({ + event: "mute", + action: function() { + r.mute(t, e) + } + }), r; + if (void 0 === e) { + if ("boolean" != typeof t) return r._muted; + r._muted = t + } + for (var n = r._getSoundIds(e), i = 0; i < n.length; i++) { + var o = r._soundById(n[i]); + o && (o._muted = t, o._interval && r._stopFade(o._id), r._webAudio && o._node ? o._node.gain.setValueAtTime(t ? 0 : o._volume, b.ctx.currentTime) : o._node && (o._node.muted = !!b._muted || t), r._emit("mute", o._id)) + } + return r + }, + volume: function() { + var t, e, r, n = this, + i = arguments; + if (0 === i.length) return n._volume; + if (1 === i.length || 2 === i.length && void 0 === i[1] ? 0 <= n._getSoundIds().indexOf(i[0]) ? e = parseInt(i[0], 10) : t = parseFloat(i[0]) : 2 <= i.length && (t = parseFloat(i[0]), e = parseInt(i[1], 10)), !(void 0 !== t && 0 <= t && t <= 1)) return (r = e ? n._soundById(e) : n._sounds[0]) ? r._volume : 0; + if ("loaded" !== n._state || n._playLock) return n._queue.push({ + event: "volume", + action: function() { + n.volume.apply(n, i) + } + }), n; + void 0 === e && (n._volume = t), e = n._getSoundIds(e); + for (var o = 0; o < e.length; o++)(r = n._soundById(e[o])) && (r._volume = t, i[2] || n._stopFade(e[o]), n._webAudio && r._node && !r._muted ? r._node.gain.setValueAtTime(t, b.ctx.currentTime) : r._node && !r._muted && (r._node.volume = t * b.volume()), n._emit("volume", r._id)); + return n + }, + fade: function(t, e, r, n) { + var i = this; + if ("loaded" !== i._state || i._playLock) return i._queue.push({ + event: "fade", + action: function() { + i.fade(t, e, r, n) + } + }), i; + t = parseFloat(t), e = parseFloat(e), r = parseFloat(r), i.volume(t, n); + for (var o = i._getSoundIds(n), a = 0; a < o.length; a++) { + var s = i._soundById(o[a]); + if (s) { + if (n || i._stopFade(o[a]), i._webAudio && !s._muted) { + var u = b.ctx.currentTime, + h = u + r / 1e3; + s._volume = t, s._node.gain.setValueAtTime(t, u), s._node.gain.linearRampToValueAtTime(e, h) + } + i._startFadeInterval(s, t, e, r, o[a], void 0 === n) + } + } + return i + }, + _startFadeInterval: function(e, r, n, i, t, o) { + var a = this, + s = r, + u = n - r, + h = Math.abs(u / .01), + c = Math.max(4, 0 < h ? i / h : i), + l = Date.now(); + e._fadeTo = n, e._interval = setInterval(function() { + var t = (Date.now() - l) / i; + l = Date.now(), s += u * t, s = Math.max(0, s), s = Math.min(1, s), s = Math.round(100 * s) / 100, a._webAudio ? e._volume = s : a.volume(s, e._id, !0), o && (a._volume = s), (n < r && s <= n || r < n && n <= s) && (clearInterval(e._interval), e._interval = null, e._fadeTo = null, a.volume(n, e._id), a._emit("fade", e._id)) + }, c) + }, + _stopFade: function(t) { + var e = this._soundById(t); + return e && e._interval && (this._webAudio && e._node.gain.cancelScheduledValues(b.ctx.currentTime), clearInterval(e._interval), e._interval = null, this.volume(e._fadeTo, t), e._fadeTo = null, this._emit("fade", t)), this + }, + loop: function() { + var t, e, r, n = arguments; + if (0 === n.length) return this._loop; + if (1 === n.length) { + if ("boolean" != typeof n[0]) return !!(r = this._soundById(parseInt(n[0], 10))) && r._loop; + t = n[0], this._loop = t + } else 2 === n.length && (t = n[0], e = parseInt(n[1], 10)); + for (var i = this._getSoundIds(e), o = 0; o < i.length; o++)(r = this._soundById(i[o])) && (r._loop = t, this._webAudio && r._node && r._node.bufferSource && (r._node.bufferSource.loop = t) && (r._node.bufferSource.loopStart = r._start || 0, r._node.bufferSource.loopEnd = r._stop)); + return this + }, + rate: function() { + var t, e, r, n = this, + i = arguments; + if (0 === i.length) e = n._sounds[0]._id; + else if (1 === i.length) { + 0 <= n._getSoundIds().indexOf(i[0]) ? e = parseInt(i[0], 10) : t = parseFloat(i[0]) + } else 2 === i.length && (t = parseFloat(i[0]), e = parseInt(i[1], 10)); + if ("number" != typeof t) return (r = n._soundById(e)) ? r._rate : n._rate; + if ("loaded" !== n._state || n._playLock) return n._queue.push({ + event: "rate", + action: function() { + n.rate.apply(n, i) + } + }), n; + void 0 === e && (n._rate = t), e = n._getSoundIds(e); + for (var o = 0; o < e.length; o++) + if (r = n._soundById(e[o])) { + n.playing(e[o]) && (r._rateSeek = n.seek(e[o]), r._playStart = n._webAudio ? b.ctx.currentTime : r._playStart), r._rate = t, n._webAudio && r._node && r._node.bufferSource ? r._node.bufferSource.playbackRate.setValueAtTime(t, b.ctx.currentTime) : r._node && (r._node.playbackRate = t); + var a = n.seek(e[o]), + s = 1e3 * ((n._sprite[r._sprite][0] + n._sprite[r._sprite][1]) / 1e3 - a) / Math.abs(r._rate); + !n._endTimers[e[o]] && r._paused || (n._clearTimer(e[o]), n._endTimers[e[o]] = setTimeout(n._ended.bind(n, r), s)), n._emit("rate", r._id) + } + return n + }, + seek: function() { + var t, e, r = this, + n = arguments; + if (0 === n.length) e = r._sounds[0]._id; + else if (1 === n.length) { + 0 <= r._getSoundIds().indexOf(n[0]) ? e = parseInt(n[0], 10) : r._sounds.length && (e = r._sounds[0]._id, t = parseFloat(n[0])) + } else 2 === n.length && (t = parseFloat(n[0]), e = parseInt(n[1], 10)); + if (void 0 === e) return r; + if ("loaded" !== r._state || r._playLock) return r._queue.push({ + event: "seek", + action: function() { + r.seek.apply(r, n) + } + }), r; + var i = r._soundById(e); + if (i) { + if (!("number" == typeof t && 0 <= t)) { + if (r._webAudio) { + var o = r.playing(e) ? b.ctx.currentTime - i._playStart : 0, + a = i._rateSeek ? i._rateSeek - i._seek : 0; + return i._seek + (a + o * Math.abs(i._rate)) + } + return i._node.currentTime + } + var s = r.playing(e); + s && r.pause(e, !0), i._seek = t, i._ended = !1, r._clearTimer(e), r._webAudio || !i._node || isNaN(i._node.duration) || (i._node.currentTime = t); + var u = function() { + r._emit("seek", e), s && r.play(e, !0) + }; + if (s && !r._webAudio) { + var h = function() { + r._playLock ? setTimeout(h, 0) : u() + }; + setTimeout(h, 0) + } else u() + } + return r + }, + playing: function(t) { + if ("number" == typeof t) { + var e = this._soundById(t); + return !!e && !e._paused + } + for (var r = 0; r < this._sounds.length; r++) + if (!this._sounds[r]._paused) return !0; + return !1 + }, + duration: function(t) { + var e = this._duration, + r = this._soundById(t); + return r && (e = this._sprite[r._sprite][1] / 1e3), e + }, + state: function() { + return this._state + }, + unload: function() { + for (var t = this, e = t._sounds, r = 0; r < e.length; r++) { + if (e[r]._paused || t.stop(e[r]._id), !t._webAudio) /MSIE |Trident\//.test(b._navigator && b._navigator.userAgent) || (e[r]._node.src = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"), e[r]._node.removeEventListener("error", e[r]._errorFn, !1), e[r]._node.removeEventListener(b._canPlayEvent, e[r]._loadFn, !1), b._releaseHtml5Audio(e[r]._node); + delete e[r]._node, t._clearTimer(e[r]._id) + } + var n = b._howls.indexOf(t); + 0 <= n && b._howls.splice(n, 1); + var i = !0; + for (r = 0; r < b._howls.length; r++) + if (b._howls[r]._src === t._src || 0 <= t._src.indexOf(b._howls[r]._src)) { + i = !1; + break + } + return a && i && delete a[t._src], b.noAudio = !1, t._state = "unloaded", t._sounds = [], t = null + }, + on: function(t, e, r, n) { + var i = this["_on" + t]; + return "function" == typeof e && i.push(n ? { + id: r, + fn: e, + once: n + } : { + id: r, + fn: e + }), this + }, + off: function(t, e, r) { + var n = this["_on" + t], + i = 0; + if ("number" == typeof e && (r = e, e = null), e || r) + for (i = 0; i < n.length; i++) { + var o = r === n[i].id; + if (e === n[i].fn && o || !e && o) { + n.splice(i, 1); + break + } + } else if (t) this["_on" + t] = []; + else { + var a = Object.keys(this); + for (i = 0; i < a.length; i++) 0 === a[i].indexOf("_on") && Array.isArray(this[a[i]]) && (this[a[i]] = []) + } + return this + }, + once: function(t, e, r) { + return this.on(t, e, r, 1), this + }, + _emit: function(t, e, r) { + for (var n = this["_on" + t], i = n.length - 1; 0 <= i; i--) n[i].id && n[i].id !== e && "load" !== t || (setTimeout(function(t) { + t.call(this, e, r) + }.bind(this, n[i].fn), 0), n[i].once && this.off(t, n[i].fn, n[i].id)); + return this._loadQueue(t), this + }, + _loadQueue: function(t) { + if (0 < this._queue.length) { + var e = this._queue[0]; + e.event === t && (this._queue.shift(), this._loadQueue()), t || e.action() + } + return this + }, + _ended: function(t) { + var e = this, + r = t._sprite; + if (!e._webAudio && t._node && !t._node.paused && !t._node.ended && t._node.currentTime < t._stop) return setTimeout(e._ended.bind(e, t), 100), e; + var n = !(!t._loop && !e._sprite[r][2]); + if (e._emit("end", t._id), !e._webAudio && n && e.stop(t._id, !0).play(t._id), e._webAudio && n) { + e._emit("play", t._id), t._seek = t._start || 0, t._rateSeek = 0, t._playStart = b.ctx.currentTime; + var i = 1e3 * (t._stop - t._start) / Math.abs(t._rate); + e._endTimers[t._id] = setTimeout(e._ended.bind(e, t), i) + } + return e._webAudio && !n && (t._paused = !0, t._ended = !0, t._seek = t._start || 0, t._rateSeek = 0, e._clearTimer(t._id), e._cleanBuffer(t._node), b._autoSuspend()), e._webAudio || n || e.stop(t._id, !0), e + }, + _clearTimer: function(t) { + if (this._endTimers[t]) { + if ("function" != typeof this._endTimers[t]) clearTimeout(this._endTimers[t]); + else { + var e = this._soundById(t); + e && e._node && e._node.removeEventListener("ended", this._endTimers[t], !1) + } + delete this._endTimers[t] + } + return this + }, + _soundById: function(t) { + for (var e = 0; e < this._sounds.length; e++) + if (t === this._sounds[e]._id) return this._sounds[e]; + return null + }, + _inactiveSound: function() { + this._drain(); + for (var t = 0; t < this._sounds.length; t++) + if (this._sounds[t]._ended) return this._sounds[t].reset(); + return new o(this) + }, + _drain: function() { + var t = this, + e = t._pool, + r = 0, + n = 0; + if (!(t._sounds.length < e)) { + for (n = 0; n < t._sounds.length; n++) t._sounds[n]._ended && r++; + for (n = t._sounds.length - 1; 0 <= n; n--) { + if (r <= e) return; + t._sounds[n]._ended && (t._webAudio && t._sounds[n]._node && t._sounds[n]._node.disconnect(0), t._sounds.splice(n, 1), r--) + } + } + }, + _getSoundIds: function(t) { + if (void 0 !== t) return [t]; + for (var e = [], r = 0; r < this._sounds.length; r++) e.push(this._sounds[r]._id); + return e + }, + _refreshBuffer: function(t) { + return t._node.bufferSource = b.ctx.createBufferSource(), t._node.bufferSource.buffer = a[this._src], t._panner ? t._node.bufferSource.connect(t._panner) : t._node.bufferSource.connect(t._node), t._node.bufferSource.loop = t._loop, t._loop && (t._node.bufferSource.loopStart = t._start || 0, t._node.bufferSource.loopEnd = t._stop || 0), t._node.bufferSource.playbackRate.setValueAtTime(t._rate, b.ctx.currentTime), this + }, + _cleanBuffer: function(t) { + var e = b._navigator && 0 <= b._navigator.vendor.indexOf("Apple"); + if (b._scratchBuffer && t.bufferSource && (t.bufferSource.onended = null, t.bufferSource.disconnect(0), e)) try { + t.bufferSource.buffer = b._scratchBuffer + } catch (t) {} + return t.bufferSource = null, this + } + }; + var o = function(t) { + this._parent = t, this.init() + }; + o.prototype = { + init: function() { + var t = this, + e = t._parent; + return t._muted = e._muted, t._loop = e._loop, t._volume = e._volume, t._rate = e._rate, t._seek = 0, t._paused = !0, t._ended = !0, t._sprite = "__default", t._id = ++b._counter, e._sounds.push(t), t.create(), t + }, + create: function() { + var t = this, + e = t._parent, + r = b._muted || t._muted || t._parent._muted ? 0 : t._volume; + return e._webAudio ? (t._node = void 0 === b.ctx.createGain ? b.ctx.createGainNode() : b.ctx.createGain(), t._node.gain.setValueAtTime(r, b.ctx.currentTime), t._node.paused = !0, t._node.connect(b.masterGain)) : (t._node = b._obtainHtml5Audio(), t._errorFn = t._errorListener.bind(t), t._node.addEventListener("error", t._errorFn, !1), t._loadFn = t._loadListener.bind(t), t._node.addEventListener(b._canPlayEvent, t._loadFn, !1), t._node.src = e._src, t._node.preload = "auto", t._node.volume = r * b.volume(), t._node.load()), t + }, + reset: function() { + var t = this, + e = t._parent; + return t._muted = e._muted, t._loop = e._loop, t._volume = e._volume, t._rate = e._rate, t._seek = 0, t._rateSeek = 0, t._paused = !0, t._ended = !0, t._sprite = "__default", t._id = ++b._counter, t + }, + _errorListener: function() { + this._parent._emit("loaderror", this._id, this._node.error ? this._node.error.code : 0), this._node.removeEventListener("error", this._errorFn, !1) + }, + _loadListener: function() { + var t = this._parent; + t._duration = Math.ceil(10 * this._node.duration) / 10, 0 === Object.keys(t._sprite).length && (t._sprite = { + __default: [0, 1e3 * t._duration] + }), "loaded" !== t._state && (t._state = "loaded", t._emit("load"), t._loadQueue()), this._node.removeEventListener(b._canPlayEvent, this._loadFn, !1) + } + }; + var a = {}, + s = function(e) { + var t = e._src; + if (a[t]) return e._duration = a[t].duration, void c(e); + if (/^data:[^;]+;base64,/.test(t)) { + for (var r = atob(t.split(",")[1]), n = new Uint8Array(r.length), i = 0; i < r.length; ++i) n[i] = r.charCodeAt(i); + h(n.buffer, e) + } else { + var o = new XMLHttpRequest; + o.open("GET", t, !0), o.withCredentials = e._xhrWithCredentials, o.responseType = "arraybuffer", o.onload = function() { + var t = (o.status + "")[0]; + "0" === t || "2" === t || "3" === t ? h(o.response, e) : e._emit("loaderror", null, "Failed loading audio file with status: " + o.status + ".") + }, o.onerror = function() { + e._webAudio && (e._html5 = !0, e._webAudio = !1, e._sounds = [], delete a[t], e.load()) + }, u(o) + } + }, + u = function(e) { + try { + e.send() + } catch (t) { + e.onerror() + } + }, + h = function(t, e) { + var r = function() { + e._emit("loaderror", null, "Decoding audio data failed.") + }, + n = function(t) { + t && 0 < e._sounds.length ? (a[e._src] = t, c(e, t)) : r() + }; + "undefined" != typeof Promise && 1 === b.ctx.decodeAudioData.length ? b.ctx.decodeAudioData(t).then(n).catch(r) : b.ctx.decodeAudioData(t, n, r) + }, + c = function(t, e) { + e && !t._duration && (t._duration = e.duration), 0 === Object.keys(t._sprite).length && (t._sprite = { + __default: [0, 1e3 * t._duration] + }), "loaded" !== t._state && (t._state = "loaded", t._emit("load"), t._loadQueue()) + }, + l = function() { + if (b.usingWebAudio) { + try { + "undefined" != typeof AudioContext ? b.ctx = new AudioContext : "undefined" != typeof webkitAudioContext ? b.ctx = new webkitAudioContext : b.usingWebAudio = !1 + } catch (t) { + b.usingWebAudio = !1 + } + b.ctx || (b.usingWebAudio = !1); + var t = /iP(hone|od|ad)/.test(b._navigator && b._navigator.platform), + e = b._navigator && b._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/), + r = e ? parseInt(e[1], 10) : null; + if (t && r && r < 9) { + var n = /safari/.test(b._navigator && b._navigator.userAgent.toLowerCase()); + (b._navigator && b._navigator.standalone && !n || b._navigator && !b._navigator.standalone && !n) && (b.usingWebAudio = !1) + } + b.usingWebAudio && (b.masterGain = void 0 === b.ctx.createGain ? b.ctx.createGainNode() : b.ctx.createGain(), b.masterGain.gain.setValueAtTime(b._muted ? 0 : 1, b.ctx.currentTime), b.masterGain.connect(b.ctx.destination)), b._setup() + } + }; + void 0 === (n = function() { + return { + Howler: b, + Howl: e + } + }.apply(f, [])) || (i.exports = n), f.Howler = b, f.Howl = e, "undefined" != typeof window ? (window.HowlerGlobal = t, window.Howler = b, window.Howl = e, window.Sound = o) : void 0 !== r && (r.HowlerGlobal = t, r.Howler = b, r.Howl = e, r.Sound = o) + }(), + function() { + "use strict"; + var e, r, n; + HowlerGlobal.prototype._pos = [0, 0, 0], HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0], HowlerGlobal.prototype.stereo = function(t) { + if (!this.ctx || !this.ctx.listener) return this; + for (var e = this._howls.length - 1; 0 <= e; e--) this._howls[e].stereo(t); + return this + }, HowlerGlobal.prototype.pos = function(t, e, r) { + var n = this; + return n.ctx && n.ctx.listener ? (e = "number" != typeof e ? n._pos[1] : e, r = "number" != typeof r ? n._pos[2] : r, "number" != typeof t ? n._pos : (n._pos = [t, e, r], void 0 !== n.ctx.listener.positionX ? (n.ctx.listener.positionX.setTargetAtTime(n._pos[0], Howler.ctx.currentTime, .1), n.ctx.listener.positionY.setTargetAtTime(n._pos[1], Howler.ctx.currentTime, .1), n.ctx.listener.positionZ.setTargetAtTime(n._pos[2], Howler.ctx.currentTime, .1)) : n.ctx.listener.setPosition(n._pos[0], n._pos[1], n._pos[2]), n)) : n + }, HowlerGlobal.prototype.orientation = function(t, e, r, n, i, o) { + var a = this; + if (!a.ctx || !a.ctx.listener) return a; + var s = a._orientation; + return e = "number" != typeof e ? s[1] : e, r = "number" != typeof r ? s[2] : r, n = "number" != typeof n ? s[3] : n, i = "number" != typeof i ? s[4] : i, o = "number" != typeof o ? s[5] : o, "number" != typeof t ? s : (a._orientation = [t, e, r, n, i, o], void 0 !== a.ctx.listener.forwardX ? (a.ctx.listener.forwardX.setTargetAtTime(t, Howler.ctx.currentTime, .1), a.ctx.listener.forwardY.setTargetAtTime(e, Howler.ctx.currentTime, .1), a.ctx.listener.forwardZ.setTargetAtTime(r, Howler.ctx.currentTime, .1), a.ctx.listener.upX.setTargetAtTime(t, Howler.ctx.currentTime, .1), a.ctx.listener.upY.setTargetAtTime(e, Howler.ctx.currentTime, .1), a.ctx.listener.upZ.setTargetAtTime(r, Howler.ctx.currentTime, .1)) : a.ctx.listener.setOrientation(t, e, r, n, i, o), a) + }, Howl.prototype.init = (e = Howl.prototype.init, function(t) { + return this._orientation = t.orientation || [1, 0, 0], this._stereo = t.stereo || null, this._pos = t.pos || null, this._pannerAttr = { + coneInnerAngle: void 0 !== t.coneInnerAngle ? t.coneInnerAngle : 360, + coneOuterAngle: void 0 !== t.coneOuterAngle ? t.coneOuterAngle : 360, + coneOuterGain: void 0 !== t.coneOuterGain ? t.coneOuterGain : 0, + distanceModel: void 0 !== t.distanceModel ? t.distanceModel : "inverse", + maxDistance: void 0 !== t.maxDistance ? t.maxDistance : 1e4, + panningModel: void 0 !== t.panningModel ? t.panningModel : "HRTF", + refDistance: void 0 !== t.refDistance ? t.refDistance : 1, + rolloffFactor: void 0 !== t.rolloffFactor ? t.rolloffFactor : 1 + }, this._onstereo = t.onstereo ? [{ + fn: t.onstereo + }] : [], this._onpos = t.onpos ? [{ + fn: t.onpos + }] : [], this._onorientation = t.onorientation ? [{ + fn: t.onorientation + }] : [], e.call(this, t) + }), Howl.prototype.stereo = function(t, e) { + var r = this; + if (!r._webAudio) return r; + if ("loaded" !== r._state) return r._queue.push({ + event: "stereo", + action: function() { + r.stereo(t, e) + } + }), r; + var n = void 0 === Howler.ctx.createStereoPanner ? "spatial" : "stereo"; + if (void 0 === e) { + if ("number" != typeof t) return r._stereo; + r._stereo = t, r._pos = [t, 0, 0] + } + for (var i = r._getSoundIds(e), o = 0; o < i.length; o++) { + var a = r._soundById(i[o]); + if (a) { + if ("number" != typeof t) return a._stereo; + a._stereo = t, a._pos = [t, 0, 0], a._node && (a._pannerAttr.panningModel = "equalpower", a._panner && a._panner.pan || h(a, n), "spatial" === n ? void 0 !== a._panner.positionX ? (a._panner.positionX.setValueAtTime(t, Howler.ctx.currentTime), a._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime), a._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime)) : a._panner.setPosition(t, 0, 0) : a._panner.pan.setValueAtTime(t, Howler.ctx.currentTime)), r._emit("stereo", a._id) + } + } + return r + }, Howl.prototype.pos = function(t, e, r, n) { + var i = this; + if (!i._webAudio) return i; + if ("loaded" !== i._state) return i._queue.push({ + event: "pos", + action: function() { + i.pos(t, e, r, n) + } + }), i; + if (e = "number" != typeof e ? 0 : e, r = "number" != typeof r ? -.5 : r, void 0 === n) { + if ("number" != typeof t) return i._pos; + i._pos = [t, e, r] + } + for (var o = i._getSoundIds(n), a = 0; a < o.length; a++) { + var s = i._soundById(o[a]); + if (s) { + if ("number" != typeof t) return s._pos; + s._pos = [t, e, r], s._node && (s._panner && !s._panner.pan || h(s, "spatial"), void 0 !== s._panner.positionX ? (s._panner.positionX.setValueAtTime(t, Howler.ctx.currentTime), s._panner.positionY.setValueAtTime(e, Howler.ctx.currentTime), s._panner.positionZ.setValueAtTime(r, Howler.ctx.currentTime)) : s._panner.setPosition(t, e, r)), i._emit("pos", s._id) + } + } + return i + }, Howl.prototype.orientation = function(t, e, r, n) { + var i = this; + if (!i._webAudio) return i; + if ("loaded" !== i._state) return i._queue.push({ + event: "orientation", + action: function() { + i.orientation(t, e, r, n) + } + }), i; + if (e = "number" != typeof e ? i._orientation[1] : e, r = "number" != typeof r ? i._orientation[2] : r, void 0 === n) { + if ("number" != typeof t) return i._orientation; + i._orientation = [t, e, r] + } + for (var o = i._getSoundIds(n), a = 0; a < o.length; a++) { + var s = i._soundById(o[a]); + if (s) { + if ("number" != typeof t) return s._orientation; + s._orientation = [t, e, r], s._node && (s._panner || (s._pos || (s._pos = i._pos || [0, 0, -.5]), h(s, "spatial")), void 0 !== s._panner.orientationX ? (s._panner.orientationX.setValueAtTime(t, Howler.ctx.currentTime), s._panner.orientationY.setValueAtTime(e, Howler.ctx.currentTime), s._panner.orientationZ.setValueAtTime(r, Howler.ctx.currentTime)) : s._panner.setOrientation(t, e, r)), i._emit("orientation", s._id) + } + } + return i + }, Howl.prototype.pannerAttr = function() { + var t, e, r, n = this, + i = arguments; + if (!n._webAudio) return n; + if (0 === i.length) return n._pannerAttr; + if (1 === i.length) { + if ("object" != typeof i[0]) return (r = n._soundById(parseInt(i[0], 10))) ? r._pannerAttr : n._pannerAttr; + t = i[0], void 0 === e && (t.pannerAttr || (t.pannerAttr = { + coneInnerAngle: t.coneInnerAngle, + coneOuterAngle: t.coneOuterAngle, + coneOuterGain: t.coneOuterGain, + distanceModel: t.distanceModel, + maxDistance: t.maxDistance, + refDistance: t.refDistance, + rolloffFactor: t.rolloffFactor, + panningModel: t.panningModel + }), n._pannerAttr = { + coneInnerAngle: void 0 !== t.pannerAttr.coneInnerAngle ? t.pannerAttr.coneInnerAngle : n._coneInnerAngle, + coneOuterAngle: void 0 !== t.pannerAttr.coneOuterAngle ? t.pannerAttr.coneOuterAngle : n._coneOuterAngle, + coneOuterGain: void 0 !== t.pannerAttr.coneOuterGain ? t.pannerAttr.coneOuterGain : n._coneOuterGain, + distanceModel: void 0 !== t.pannerAttr.distanceModel ? t.pannerAttr.distanceModel : n._distanceModel, + maxDistance: void 0 !== t.pannerAttr.maxDistance ? t.pannerAttr.maxDistance : n._maxDistance, + refDistance: void 0 !== t.pannerAttr.refDistance ? t.pannerAttr.refDistance : n._refDistance, + rolloffFactor: void 0 !== t.pannerAttr.rolloffFactor ? t.pannerAttr.rolloffFactor : n._rolloffFactor, + panningModel: void 0 !== t.pannerAttr.panningModel ? t.pannerAttr.panningModel : n._panningModel + }) + } else 2 === i.length && (t = i[0], e = parseInt(i[1], 10)); + for (var o = n._getSoundIds(e), a = 0; a < o.length; a++) + if (r = n._soundById(o[a])) { + var s = r._pannerAttr; + s = { + coneInnerAngle: void 0 !== t.coneInnerAngle ? t.coneInnerAngle : s.coneInnerAngle, + coneOuterAngle: void 0 !== t.coneOuterAngle ? t.coneOuterAngle : s.coneOuterAngle, + coneOuterGain: void 0 !== t.coneOuterGain ? t.coneOuterGain : s.coneOuterGain, + distanceModel: void 0 !== t.distanceModel ? t.distanceModel : s.distanceModel, + maxDistance: void 0 !== t.maxDistance ? t.maxDistance : s.maxDistance, + refDistance: void 0 !== t.refDistance ? t.refDistance : s.refDistance, + rolloffFactor: void 0 !== t.rolloffFactor ? t.rolloffFactor : s.rolloffFactor, + panningModel: void 0 !== t.panningModel ? t.panningModel : s.panningModel + }; + var u = r._panner; + u ? (u.coneInnerAngle = s.coneInnerAngle, u.coneOuterAngle = s.coneOuterAngle, u.coneOuterGain = s.coneOuterGain, u.distanceModel = s.distanceModel, u.maxDistance = s.maxDistance, u.refDistance = s.refDistance, u.rolloffFactor = s.rolloffFactor, u.panningModel = s.panningModel) : (r._pos || (r._pos = n._pos || [0, 0, -.5]), h(r, "spatial")) + } + return n + }, Sound.prototype.init = (r = Sound.prototype.init, function() { + var t = this, + e = t._parent; + t._orientation = e._orientation, t._stereo = e._stereo, t._pos = e._pos, t._pannerAttr = e._pannerAttr, r.call(this), t._stereo ? e.stereo(t._stereo) : t._pos && e.pos(t._pos[0], t._pos[1], t._pos[2], t._id) + }), Sound.prototype.reset = (n = Sound.prototype.reset, function() { + var t = this, + e = t._parent; + return t._orientation = e._orientation, t._stereo = e._stereo, t._pos = e._pos, t._pannerAttr = e._pannerAttr, t._stereo ? e.stereo(t._stereo) : t._pos ? e.pos(t._pos[0], t._pos[1], t._pos[2], t._id) : t._panner && (t._panner.disconnect(0), t._panner = void 0, e._refreshBuffer(t)), n.call(this) + }); + var h = function(t, e) { + "spatial" === (e = e || "spatial") ? (t._panner = Howler.ctx.createPanner(), t._panner.coneInnerAngle = t._pannerAttr.coneInnerAngle, t._panner.coneOuterAngle = t._pannerAttr.coneOuterAngle, t._panner.coneOuterGain = t._pannerAttr.coneOuterGain, t._panner.distanceModel = t._pannerAttr.distanceModel, t._panner.maxDistance = t._pannerAttr.maxDistance, t._panner.refDistance = t._pannerAttr.refDistance, t._panner.rolloffFactor = t._pannerAttr.rolloffFactor, t._panner.panningModel = t._pannerAttr.panningModel, void 0 !== t._panner.positionX ? (t._panner.positionX.setValueAtTime(t._pos[0], Howler.ctx.currentTime), t._panner.positionY.setValueAtTime(t._pos[1], Howler.ctx.currentTime), t._panner.positionZ.setValueAtTime(t._pos[2], Howler.ctx.currentTime)) : t._panner.setPosition(t._pos[0], t._pos[1], t._pos[2]), void 0 !== t._panner.orientationX ? (t._panner.orientationX.setValueAtTime(t._orientation[0], Howler.ctx.currentTime), t._panner.orientationY.setValueAtTime(t._orientation[1], Howler.ctx.currentTime), t._panner.orientationZ.setValueAtTime(t._orientation[2], Howler.ctx.currentTime)) : t._panner.setOrientation(t._orientation[0], t._orientation[1], t._orientation[2])) : (t._panner = Howler.ctx.createStereoPanner(), t._panner.pan.setValueAtTime(t._stereo, Howler.ctx.currentTime)), t._panner.connect(t._node), t._paused || t._parent.pause(t._id, !0).play(t._id, !0) + } + }() + }).call(this, t(42)) + }, function(t, e) { + t.exports = function(t) { + if ("function" != typeof t) throw TypeError(t + " is not a function!"); + return t + } + }, function(t, e, r) { + var n = r(20), + i = r(51); + t.exports = r(19) ? function(t, e, r) { + return n.f(t, e, i(1, r)) + } : function(t, e, r) { + return t[e] = r, t + } + }, function(t, e, r) { + var o = r(9), + a = r(25), + s = r(28), + u = r(52)("src"), + n = "toString", + i = Function[n], + h = ("" + i).split(n); + r(32).inspectSource = function(t) { + return i.call(t) + }, (t.exports = function(t, e, r, n) { + var i = "function" == typeof r; + i && (s(r, "name") || a(r, "name", e)), t[e] !== r && (i && (s(r, u) || a(r, u, t[e] ? "" + t[e] : h.join(String(e)))), t === o ? t[e] = r : n ? t[e] ? t[e] = r : a(t, e, r) : (delete t[e], a(t, e, r))) + })(Function.prototype, n, function() { + return "function" == typeof this && this[u] || i.call(this) + }) + }, function(t, e, r) { + var n = r(1), + i = r(10), + a = r(39), + s = /"/g, + o = function(t, e, r, n) { + var i = String(a(t)), + o = "<" + e; + return "" !== r && (o += " " + r + '="' + String(n).replace(s, """) + '"'), o + ">" + i + "" + }; + t.exports = function(e, t) { + var r = {}; + r[e] = t(o), n(n.P + n.F * i(function() { + var t = "" [e]('"'); + return t !== t.toLowerCase() || 3 < t.split('"').length + }), "String", r) + } + }, function(t, e) { + var r = {}.hasOwnProperty; + t.exports = function(t, e) { + return r.call(t, e) + } + }, function(t, e, r) { + var n = r(69), + i = r(39); + t.exports = function(t) { + return n(i(t)) + } + }, function(t, e, r) { + var n = r(70), + i = r(51), + o = r(29), + a = r(38), + s = r(28), + u = r(134), + h = Object.getOwnPropertyDescriptor; + e.f = r(19) ? h : function(t, e) { + if (t = o(t), e = a(e, !0), u) try { + return h(t, e) + } catch (t) {} + if (s(t, e)) return i(!n.f.call(t, e), t[e]) + } + }, function(t, e, r) { + var n = r(28), + i = r(22), + o = r(100)("IE_PROTO"), + a = Object.prototype; + t.exports = Object.getPrototypeOf || function(t) { + return t = i(t), n(t, o) ? t[o] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? a : null + } + }, function(t, e) { + var r = t.exports = { + version: "2.6.3" + }; + "number" == typeof __e && (__e = r) + }, function(t, e, r) { + var o = r(24); + t.exports = function(n, i, t) { + if (o(n), void 0 === i) return n; + switch (t) { + case 1: + return function(t) { + return n.call(i, t) + }; + case 2: + return function(t, e) { + return n.call(i, t, e) + }; + case 3: + return function(t, e, r) { + return n.call(i, t, e, r) + } + } + return function() { + return n.apply(i, arguments) + } + } + }, function(t, e) { + var r = {}.toString; + t.exports = function(t) { + return r.call(t).slice(8, -1) + } + }, function(t, e) { + var r = Math.ceil, + n = Math.floor; + t.exports = function(t) { + return isNaN(t = +t) ? 0 : (0 < t ? n : r)(t) + } + }, function(t, e, r) { + "use strict"; + var n = r(10); + t.exports = function(t, e) { + return !!t && n(function() { + e ? t.call(null, function() {}, 1) : t.call(null) + }) + } + }, function(t, e, r) { + "use strict"; + e.__esModule = !0; + var n = function() { + function defineProperties(t, e) { + for (var r = 0; r < e.length; r++) { + var n = e[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + return function(t, e, r) { + return e && defineProperties(t.prototype, e), r && defineProperties(t, r), t + } + }(), + u = function(t) { + { + if (t && t.__esModule) return t; + var e = {}; + if (null != t) + for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + return e.default = t, e + } + }(r(0)), + h = r(4); + + function filterEmptyLine(t) { + return "" !== t + } + var c = { + uniformData: { + id: -1 + } + }, + l = 0, + i = {}, + f = {}, + o = function(s) { + function BaseMaterial() { + var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, + e = arguments[1], + r = arguments[2], + n = arguments[3], + i = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : "base"; + ! function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }(this, BaseMaterial); + var o = { + uShininess: t.shininess || 32, + uOpacity: void 0 === t.opacity ? 1 : t.opacity, + uSpecular: new Float32Array([0, 0, 0]), + uColor: new Float32Array([1, 1, 1]), + normal: h.mat3.create() + }, + a = function(t, e) { + if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !e || "object" != typeof e && "function" != typeof e ? t : e + }(this, s.call(this, c, o)); + return a.type = i, a.name = t.name || a.type + "-shader", a.options = {}, a.needsUpdate = !0, a.id = l++, a.skinning = !!t.skinning, a.skinning && (o.bones = new Float32Array(960)), a.specularColor = t.specular || 0, a.color = t.color || 16777215, a.instancing = !!t.instancing, a.emissive = !1, a.instancing && (a.name += "-instanced"), t.uniforms && Object.assign(o, t.uniforms), t.map && (o.uMap = t.map, o.uMapFrame = new u.Rectangle(0, 0, 1, 1)), t.enviromentMap && (o.uEnviromentMap = t.enviromentMap), t.shininessMap && (o.uShininessMap = t.shininessMap), t.occlusionMap && (o.uOcclusionMap = t.occlusionMap), a.emissive = !!(t.emissive || t.emissiveColor || t.emissiveMap), a.emissive && (void 0 !== t.emissive && (o.uEmissive = t.emissive), t.emissiveColor && (o.uEmissiveColor = new Float32Array([1, 1, 1]), a.emissiveColor = t.emissiveColor), t.emissiveMap && (o.uEmissiveMap = t.emissiveMap)), a.vertexSource = e, a.fragmentSource = r, a.fragmentInjection = t.fragment || {}, a.vertexInjection = t.vertex || {}, a.sig = a.getSignature(t), a.program = c, a.rebuildId = 0, a.defines = n || [], a + } + return function(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); + t.prototype = Object.create(e && e.prototype, { + constructor: { + value: t, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) + }(BaseMaterial, s), BaseMaterial.prototype.injectLights = function(t, e) { + var r = f[e.sig]; + if (!r) { + var n = [], + i = []; + e.lights.forEach(function(t) { + var e = t.light._lightId; + 0 === t.light.type ? (n.push("uniform vec3 uLightColor" + e + ";"), n.push("uniform vec3 uLightDirection" + e + ";"), i.push("\n\n attenuation = 1.;\n\n attenuation *= diffuseLighting(worldNormal,uLightDirection" + e + ");\n\n lighting += attenuation * uLightColor" + e + ";\n \n attenuation *= specularLighting(worldNormal, eyeToSurfaceDir,uLightDirection" + e + ");\n\n specular += attenuation * uSpecular * uLightColor" + e + ";\n \n ")) : 1 === t.light.type ? (n.push("uniform vec3 uLightColor" + e + ";"), n.push("uniform vec3 uLightDirection" + e + ";"), n.push("uniform vec3 uLightPosition" + e + ";"), n.push("uniform float uLightDistance" + e + ";"), i.push("\n \n lightDirection = vPosition - uLightPosition" + e + ";\n \n lightDirectionNormal = normalize(lightDirection);\n \n distancFromLight = length(lightDirection);\n \n attenuation = pow( saturate(-distancFromLight / uLightDistance" + e + " + 1.0) , 1. );\n \n if(attenuation > 0.0001)\n {\n attenuation *= diffuseLighting(worldNormal,lightDirectionNormal);\n\n lighting += attenuation * uLightColor" + e + ";\n \n attenuation *= specularLighting(worldNormal,eyeToSurfaceDir,lightDirectionNormal);\n\n specular += attenuation * uSpecular * uLightColor" + e + ";\n \n }")) : 2 === t.light.type && (n.push("uniform vec3 uLightColor" + e + ";"), n.push("uniform vec3 uLightDirection" + e + ";"), n.push("uniform vec3 uLightPosition" + e + ";"), n.push("uniform float uLightDistance" + e + ";"), i.push("\n \n lightDirection = uLightPosition" + e + " - vPosition;\n float dist = length(lightDirection);\n \n L = normalize(lightDirection);\n\n float attenuation = pow( saturate(-dist / uLightDistance" + e + " + 1.0) , 1. );\n \n float dotFromDirection = dot(L, -uLightDirection" + e + ");\n \n float limit = cos(30. * (3.14/180.) );\n\n if(dotFromDirection >= 0.000001)\n {\n if(attenuation > 0.001)\n {\n lighting += diffuseLighting(N,L,uLightColor" + e + ") * attenuation;\n lighting += specularLighting(N,L,V) * attenuation;\n lighting *= reflection;\n \n }\n }")) + }), f[e.sig] = r = { + uniforms: n.join("\n"), + code: i.join("\n") + } + } + var o = t.fragment, + a = t.vertex; + o = (o = o.replace(/#HOOK_LIGHT_UNIFROMS/g, r.uniforms)).replace(/#HOOK_LIGHT/g, r.code), a = (a = a.replace(/#HOOK_LIGHT_UNIFROMS/g, r.uniforms)).replace(/#HOOK_LIGHT/g, r.code), t.fragment = o, t.vertex = a + }, BaseMaterial.prototype.injectDefines = function(t, e) { + var r = this.uniforms, + n = [r.uColor ? "#define COLOR" : "", this.skinning ? "#define SKINNING" : "", r.uMap ? "#define MAP" : "", r.uOcclusionMap ? "#define OCCLUSION_MAP" : "", r.uShininess ? "#define SHININESS_FLOAT" : "", r.uShininessMap ? "#define SHININESS_MAP" : "", this.emissive ? "#define EMISSIVE" : "", void 0 !== r.uEmissive ? "#define EMISSIVE_FLOAT" : "", r.uEmissiveColor ? "#define EMISSIVE_COLOR" : "", r.uEmissiveMap ? "#define EMISSIVE_MAP" : "", r.uEnviromentMap ? "#define ENV_REFLECT" : "", this.instancing ? "#define INSTANCING" : "", e ? "#define FOG" : ""].concat(this.defines).filter(filterEmptyLine).join("\n"); + t.vertex = n + "\n" + t.vertex, t.fragment = n + "\n" + t.fragment + }, BaseMaterial.prototype.injectHooks = function(t) { + var e = this.vertexInjection, + r = t.vertex; + r = (r = (r = r.replace(/#HOOK_VERTEX_START/g, e.start || "")).replace(/#HOOK_VERTEX_MAIN/g, e.main || "")).replace(/#HOOK_VERTEX_END/g, e.end || ""); + var n = this.fragmentInjection, + i = t.fragment; + i = (i = (i = i.replace(/#HOOK_FRAGMENT_START/g, n.start || "")).replace(/#HOOK_FRAGMENT_MAIN/g, n.main || "")).replace(/#HOOK_FRAGMENT_END/g, n.end || ""), t.fragment = i, t.vertex = r + }, BaseMaterial.prototype.build = function(t, e) { + if (i[this.sig + t.sig]) this.program = i[this.sig + t.sig]; + else { + var r = { + vertex: this.vertexSource, + fragment: this.fragmentSource + }; + this.injectDefines(r, e), this.injectHooks(r), this.injectLights(r, t), this.program = u.Program.from(r.vertex, r.fragment, this.name), i[this.sig + t.sig] = this.program + } + }, BaseMaterial.prototype.getSignature = function(t) { + var e = [this.type]; + for (var r in t) e.push(r); + return e.sort(), t.vertex && e.push(t.vertex.start || "", t.vertex.main || "", t.vertex.end || ""), t.fragment && e.push(t.fragment.start || "", t.fragment.main || "", t.fragment.end || ""), e.join("-") + }, n(BaseMaterial, [{ + key: "opacity", + set: function(t) { + this.uniforms.uOpacity = t + }, + get: function() { + return this.uniforms.uOpacity + } + }, { + key: "map", + set: function(t) { + this.uniforms.uMap = t + }, + get: function() { + return this.uniforms.uMap + } + }, { + key: "occlusionMap", + set: function(t) { + this.uniforms.uOcclusionMap = t + }, + get: function() { + return this.uniforms.uOcclusionMap + } + }, { + key: "shininessMap", + set: function(t) { + this.uniforms.uShininessMap = t + }, + get: function() { + return this.uniforms.uShininessMap + } + }, { + key: "shininess", + set: function(t) { + this.uniforms.uShininess = t + }, + get: function() { + return this.uniforms.uShininess + } + }, { + key: "emissive", + set: function(t) { + this.uniforms.uEmissive = t + }, + get: function() { + return this.uniforms.uEmissive + } + }, { + key: "emissiveMap", + set: function(t) { + this.uniforms.uEmissiveMap = t + }, + get: function() { + return this.uniforms.uEmissiveMap + } + }, { + key: "enviromentMap", + set: function(t) { + this.uniforms.uEnviromentMap = t + }, + get: function() { + return this.uniforms.uEnviromentMap + } + }, { + key: "emissiveColor", + set: function(t) { + this._hexEmissiveColor = t, u.utils.hex2rgb(t, this.uniforms.uEmissiveColor) + }, + get: function() { + return this._hexEmissiveColor + } + }, { + key: "color", + set: function(t) { + this._hexColor = t, u.utils.hex2rgb(t, this.uniforms.uColor) + }, + get: function() { + return this._hexColor + } + }, { + key: "specularColor", + set: function(t) { + this._hexSpecularColor = t, u.utils.hex2rgb(t, this.uniforms.uSpecular) + }, + get: function() { + return this._hexSpecularColor + } + }]), BaseMaterial + }(u.Shader); + e.default = o + }, function(t, e, r) { + var i = r(11); + t.exports = function(t, e) { + if (!i(t)) return t; + var r, n; + if (e && "function" == typeof(r = t.toString) && !i(n = r.call(t))) return n; + if ("function" == typeof(r = t.valueOf) && !i(n = r.call(t))) return n; + if (!e && "function" == typeof(r = t.toString) && !i(n = r.call(t))) return n; + throw TypeError("Can't convert object to primitive value") + } + }, function(t, e) { + t.exports = function(t) { + if (null == t) throw TypeError("Can't call method on " + t); + return t + } + }, function(t, e, r) { + var i = r(1), + o = r(32), + a = r(10); + t.exports = function(t, e) { + var r = (o.Object || {})[t] || Object[t], + n = {}; + n[t] = e(r), i(i.S + i.F * a(function() { + r(1) + }), "Object", n) + } + }, function(t, e, r) { + var _ = r(33), + b = r(69), + x = r(22), + w = r(17), + n = r(116); + t.exports = function(l, t) { + var f = 1 == l, + d = 2 == l, + p = 3 == l, + m = 4 == l, + v = 6 == l, + g = 5 == l || v, + y = t || n; + return function(t, e, r) { + for (var n, i, o = x(t), a = b(o), s = _(e, r, 3), u = w(a.length), h = 0, c = f ? y(t, u) : d ? y(t, 0) : void 0; h < u; h++) + if ((g || h in a) && (i = s(n = a[h], h, o), l)) + if (f) c[h] = i; + else if (i) switch (l) { + case 3: + return !0; + case 5: + return n; + case 6: + return h; + case 2: + c.push(n) + } else if (m) return !1; + return v ? -1 : p || m ? m : c + } + } + }, function(t, e) { + var r; + r = function() { + return this + }(); + try { + r = r || new Function("return this")() + } catch (t) { + "object" == typeof window && (r = window) + } + t.exports = r + }, function(t, e, r) { + "use strict"; + if (r(19)) { + var g = r(49), + y = r(9), + _ = r(10), + b = r(1), + x = r(85), + n = r(124), + f = r(33), + w = r(58), + i = r(51), + T = r(25), + o = r(60), + a = r(35), + S = r(17), + M = r(162), + s = r(54), + u = r(38), + h = r(28), + E = r(62), + A = r(11), + d = r(22), + p = r(113), + P = r(55), + I = r(31), + O = r(56).f, + m = r(115), + c = r(52), + l = r(15), + v = r(41), + C = r(75), + R = r(72), + D = r(118), + F = r(64), + k = r(80), + L = r(57), + N = r(117), + B = r(151), + U = r(20), + G = r(30), + j = U.f, + z = G.f, + X = y.RangeError, + V = y.TypeError, + q = y.Uint8Array, + H = "ArrayBuffer", + W = "Shared" + H, + Y = "BYTES_PER_ELEMENT", + K = "prototype", + Z = Array[K], + Q = n.ArrayBuffer, + J = n.DataView, + $ = v(0), + tt = v(2), + et = v(3), + rt = v(4), + nt = v(5), + it = v(6), + ot = C(!0), + at = C(!1), + st = D.values, + ut = D.keys, + ht = D.entries, + ct = Z.lastIndexOf, + lt = Z.reduce, + ft = Z.reduceRight, + dt = Z.join, + pt = Z.sort, + mt = Z.slice, + vt = Z.toString, + gt = Z.toLocaleString, + yt = l("iterator"), + _t = l("toStringTag"), + bt = c("typed_constructor"), + xt = c("def_constructor"), + wt = x.CONSTR, + Tt = x.TYPED, + St = x.VIEW, + Mt = "Wrong length!", + Et = v(1, function(t, e) { + return Ct(R(t, t[xt]), e) + }), + At = _(function() { + return 1 === new q(new Uint16Array([1]).buffer)[0] + }), + Pt = !!q && !!q[K].set && _(function() { + new q(1).set({}) + }), + It = function(t, e) { + var r = a(t); + if (r < 0 || r % e) throw X("Wrong offset!"); + return r + }, + Ot = function(t) { + if (A(t) && Tt in t) return t; + throw V(t + " is not a typed array!") + }, + Ct = function(t, e) { + if (!(A(t) && bt in t)) throw V("It is not a typed array constructor!"); + return new t(e) + }, + Rt = function(t, e) { + return Dt(R(t, t[xt]), e) + }, + Dt = function(t, e) { + for (var r = 0, n = e.length, i = Ct(t, n); r < n;) i[r] = e[r++]; + return i + }, + Ft = function(t, e, r) { + j(t, e, { + get: function() { + return this._d[r] + } + }) + }, + kt = function(t) { + var e, r, n, i, o, a, s = d(t), + u = arguments.length, + h = 1 < u ? arguments[1] : void 0, + c = void 0 !== h, + l = m(s); + if (null != l && !p(l)) { + for (a = l.call(s), n = [], e = 0; !(o = a.next()).done; e++) n.push(o.value); + s = n + } + for (c && 2 < u && (h = f(h, arguments[2], 2)), e = 0, r = S(s.length), i = Ct(this, r); e < r; e++) i[e] = c ? h(s[e], e) : s[e]; + return i + }, + Lt = function() { + for (var t = 0, e = arguments.length, r = Ct(this, e); t < e;) r[t] = arguments[t++]; + return r + }, + Nt = !!q && _(function() { + gt.call(new q(1)) + }), + Bt = function() { + return gt.apply(Nt ? mt.call(Ot(this)) : Ot(this), arguments) + }, + Ut = { + copyWithin: function(t, e) { + return B.call(Ot(this), t, e, 2 < arguments.length ? arguments[2] : void 0) + }, + every: function(t) { + return rt(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + fill: function(t) { + return N.apply(Ot(this), arguments) + }, + filter: function(t) { + return Rt(this, tt(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0)) + }, + find: function(t) { + return nt(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + findIndex: function(t) { + return it(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + forEach: function(t) { + $(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + indexOf: function(t) { + return at(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + includes: function(t) { + return ot(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + join: function(t) { + return dt.apply(Ot(this), arguments) + }, + lastIndexOf: function(t) { + return ct.apply(Ot(this), arguments) + }, + map: function(t) { + return Et(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + reduce: function(t) { + return lt.apply(Ot(this), arguments) + }, + reduceRight: function(t) { + return ft.apply(Ot(this), arguments) + }, + reverse: function() { + for (var t, e = Ot(this).length, r = Math.floor(e / 2), n = 0; n < r;) t = this[n], this[n++] = this[--e], this[e] = t; + return this + }, + some: function(t) { + return et(Ot(this), t, 1 < arguments.length ? arguments[1] : void 0) + }, + sort: function(t) { + return pt.call(Ot(this), t) + }, + subarray: function(t, e) { + var r = Ot(this), + n = r.length, + i = s(t, n); + return new(R(r, r[xt]))(r.buffer, r.byteOffset + i * r.BYTES_PER_ELEMENT, S((void 0 === e ? n : s(e, n)) - i)) + } + }, + Gt = function(t, e) { + return Rt(this, mt.call(Ot(this), t, e)) + }, + jt = function(t) { + Ot(this); + var e = It(arguments[1], 1), + r = this.length, + n = d(t), + i = S(n.length), + o = 0; + if (r < i + e) throw X(Mt); + for (; o < i;) this[e + o] = n[o++] + }, + zt = { + entries: function() { + return ht.call(Ot(this)) + }, + keys: function() { + return ut.call(Ot(this)) + }, + values: function() { + return st.call(Ot(this)) + } + }, + Xt = function(t, e) { + return A(t) && t[Tt] && "symbol" != typeof e && e in t && String(+e) == String(e) + }, + Vt = function(t, e) { + return Xt(t, e = u(e, !0)) ? i(2, t[e]) : z(t, e) + }, + qt = function(t, e, r) { + return !(Xt(t, e = u(e, !0)) && A(r) && h(r, "value")) || h(r, "get") || h(r, "set") || r.configurable || h(r, "writable") && !r.writable || h(r, "enumerable") && !r.enumerable ? j(t, e, r) : (t[e] = r.value, t) + }; + wt || (G.f = Vt, U.f = qt), b(b.S + b.F * !wt, "Object", { + getOwnPropertyDescriptor: Vt, + defineProperty: qt + }), _(function() { + vt.call({}) + }) && (vt = gt = function() { + return dt.call(this) + }); + var Ht = o({}, Ut); + o(Ht, zt), T(Ht, yt, zt.values), o(Ht, { + slice: Gt, + set: jt, + constructor: function() {}, + toString: vt, + toLocaleString: Bt + }), Ft(Ht, "buffer", "b"), Ft(Ht, "byteOffset", "o"), Ft(Ht, "byteLength", "l"), Ft(Ht, "length", "e"), j(Ht, _t, { + get: function() { + return this[Tt] + } + }), t.exports = function(t, l, e, o) { + var f = t + ((o = !!o) ? "Clamped" : "") + "Array", + r = "get" + t, + a = "set" + t, + d = y[f], + s = d || {}, + n = d && I(d), + i = !d || !x.ABV, + u = {}, + h = d && d[K], + p = function(t, i) { + j(t, i, { + get: function() { + return t = i, (e = this._d).v[r](t * l + e.o, At); + var t, e + }, + set: function(t) { + return e = i, r = t, n = this._d, o && (r = (r = Math.round(r)) < 0 ? 0 : 255 < r ? 255 : 255 & r), void n.v[a](e * l + n.o, r, At); + var e, r, n + }, + enumerable: !0 + }) + }; + i ? (d = e(function(t, e, r, n) { + w(t, d, f, "_d"); + var i, o, a, s, u = 0, + h = 0; + if (A(e)) { + if (!(e instanceof Q || (s = E(e)) == H || s == W)) return Tt in e ? Dt(d, e) : kt.call(d, e); + i = e, h = It(r, l); + var c = e.byteLength; + if (void 0 === n) { + if (c % l) throw X(Mt); + if ((o = c - h) < 0) throw X(Mt) + } else if (c < (o = S(n) * l) + h) throw X(Mt); + a = o / l + } else a = M(e), i = new Q(o = a * l); + for (T(t, "_d", { + b: i, + o: h, + l: o, + e: a, + v: new J(i) + }); u < a;) p(t, u++) + }), h = d[K] = P(Ht), T(h, "constructor", d)) : _(function() { + d(1) + }) && _(function() { + new d(-1) + }) && k(function(t) { + new d, new d(null), new d(1.5), new d(t) + }, !0) || (d = e(function(t, e, r, n) { + var i; + return w(t, d, f), A(e) ? e instanceof Q || (i = E(e)) == H || i == W ? void 0 !== n ? new s(e, It(r, l), n) : void 0 !== r ? new s(e, It(r, l)) : new s(e) : Tt in e ? Dt(d, e) : kt.call(d, e) : new s(M(e)) + }), $(n !== Function.prototype ? O(s).concat(O(n)) : O(s), function(t) { + t in d || T(d, t, s[t]) + }), d[K] = h, g || (h.constructor = d)); + var c = h[yt], + m = !!c && ("values" == c.name || null == c.name), + v = zt.values; + T(d, bt, !0), T(h, Tt, f), T(h, St, !0), T(h, xt, d), (o ? new d(1)[_t] == f : _t in h) || j(h, _t, { + get: function() { + return f + } + }), u[f] = d, b(b.G + b.W + b.F * (d != s), u), b(b.S, f, { + BYTES_PER_ELEMENT: l + }), b(b.S + b.F * _(function() { + s.of.call(d, 1) + }), f, { + from: kt, + of: Lt + }), Y in h || T(h, Y, l), b(b.P, f, Ut), L(f), b(b.P + b.F * Pt, f, { + set: jt + }), b(b.P + b.F * !m, f, zt), g || h.toString == vt || (h.toString = vt), b(b.P + b.F * _(function() { + new d(1).slice() + }), f, { + slice: Gt + }), b(b.P + b.F * (_(function() { + return [1, 2].toLocaleString() != new d([1, 2]).toLocaleString() + }) || !_(function() { + h.toLocaleString.call([1, 2]) + })), f, { + toLocaleString: Bt + }), F[f] = m ? c : v, g || m || T(h, yt, v) + } + } else t.exports = function() {} + }, function(t, e, r) { + var o = r(157), + n = r(1), + i = r(74)("metadata"), + a = i.store || (i.store = new(r(160))), + s = function(t, e, r) { + var n = a.get(t); + if (!n) { + if (!r) return; + a.set(t, n = new o) + } + var i = n.get(e); + if (!i) { + if (!r) return; + n.set(e, i = new o) + } + return i + }; + t.exports = { + store: a, + map: s, + has: function(t, e, r) { + var n = s(e, r, !1); + return void 0 !== n && n.has(t) + }, + get: function(t, e, r) { + var n = s(e, r, !1); + return void 0 === n ? void 0 : n.get(t) + }, + set: function(t, e, r, n) { + s(r, n, !0).set(t, e) + }, + keys: function(t, e) { + var r = s(t, e, !1), + n = []; + return r && r.forEach(function(t, e) { + n.push(e) + }), n + }, + key: function(t) { + return void 0 === t || "symbol" == typeof t ? t : String(t) + }, + exp: function(t) { + n(n.S, "Reflect", t) + } + } + }, function(t, e, r) { + "use strict"; + e.__esModule = !0; + ! function(t) { + { + if (t && t.__esModule) return; + var e = {}; + if (null != t) + for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + e.default = t + } + }(r(0)); + var n = _interopRequireDefault(r(37)), + i = _interopRequireDefault(r(428)), + o = _interopRequireDefault(r(429)); + + function _interopRequireDefault(t) { + return t && t.__esModule ? t : { + default: t + } + } + var a = function(e) { + function PhongMaterial() { + var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; + return function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }(this, PhongMaterial), + function(t, e) { + if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !e || "object" != typeof e && "function" != typeof e ? t : e + }(this, e.call(this, t, i.default, o.default, [], "phong")) + } + return function(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); + t.prototype = Object.create(e && e.prototype, { + constructor: { + value: t, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) + }(PhongMaterial, e), PhongMaterial + }(n.default); + e.default = a + }, function(e, r, t) { + var n, b, x; + ! function(t) { + var o = /iPhone/i, + a = /iPod/i, + s = /iPad/i, + u = /\bAndroid(?:.+)Mobile\b/i, + h = /Android/i, + c = /\bAndroid(?:.+)SD4930UR\b/i, + l = /\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i, + f = /Windows Phone/i, + d = /\bWindows(?:.+)ARM\b/i, + p = /BlackBerry/i, + v = /BB10/i, + g = /Opera Mini/i, + y = /\b(CriOS|Chrome)(?:.+)Mobile/i, + _ = /\Mobile(?:.+)Firefox\b/i; + + function m(t, e) { + return t.test(e) + } + + function i(t) { + var e = t || ("undefined" != typeof navigator ? navigator.userAgent : ""), + r = e.split("[FBAN"); + void 0 !== r[1] && (e = r[0]), void 0 !== (r = e.split("Twitter"))[1] && (e = r[0]); + var n = { + apple: { + phone: m(o, e) && !m(f, e), + ipod: m(a, e), + tablet: !m(o, e) && m(s, e) && !m(f, e), + device: (m(o, e) || m(a, e) || m(s, e)) && !m(f, e) + }, + amazon: { + phone: m(c, e), + tablet: !m(c, e) && m(l, e), + device: m(c, e) || m(l, e) + }, + android: { + phone: !m(f, e) && m(c, e) || !m(f, e) && m(u, e), + tablet: !m(f, e) && !m(c, e) && !m(u, e) && (m(l, e) || m(h, e)), + device: !m(f, e) && (m(c, e) || m(l, e) || m(u, e) || m(h, e)) + }, + windows: { + phone: m(f, e), + tablet: m(d, e), + device: m(f, e) || m(d, e) + }, + other: { + blackberry: m(p, e), + blackberry10: m(v, e), + opera: m(g, e), + firefox: m(_, e), + chrome: m(y, e), + device: m(p, e) || m(v, e) || m(g, e) || m(_, e) || m(y, e) + } + }; + return n.any = n.apple.device || n.android.device || n.windows.device || n.other.device, n.phone = n.apple.phone || n.android.phone || n.windows.phone, n.tablet = n.apple.tablet || n.android.tablet || n.windows.tablet, n + } + e.exports && "undefined" == typeof window ? e.exports = i : e.exports && "undefined" != typeof window ? e.exports = i() : (b = [], n = t.isMobile = i(), void 0 === (x = "function" == typeof n ? n.apply(r, b) : n) || (e.exports = x)) + }(this) + }, function(t, e, r) { + "use strict"; + var n = r(12), + i = r.n(n), + o = r(68), + c = r(23), + a = function() { + function SoundManagerHowler() { + this.disabled = !1, (window.smm = this).preload = !0, this.currentSound = null, this.sounds = {}, this.groups = {}, this.globalVolume = 1, this.isMuted = !1, this._visibilityActive = !0, this.preload = !0, window.onfocus = this._onFocus.bind(this), this.onMuteToggle = new i.a, o.a.onHide.add(function() { + this.onVisibilityHide() + }.bind(this)), o.a.onShow.add(function() { + this.onVisibilityShow() + }.bind(this)) + } + var t = SoundManagerHowler.prototype; + return t.enableVisibility = function() { + this._visibilityActive = !0 + }, t.disableVisibility = function() { + this._visibilityActive = !1 + }, t.onVisibilityHide = function() { + this._visibilityActive && (c.Howler.mute(!0), c.Howler.volume(0)) + }, t.onVisibilityShow = function() { + this._visibilityActive && this._onFocus() + }, t._onFocus = function() { + this.isMuted ? this.mute() : this.unmute() + }, t.addSound = function(t, e, r) { + if (!this.disabled) { + for (var n, i = "", o = 1, a = null, s = 0; s < e.length; s++) "/" === e[s] && (a = s); + for (null !== a && (i = e.slice(a + 1, e.length)), e = i; this.exists(i);) i = e + "-" + o, o++; + r = r || {}; + var u = t.split(".").pop(); + n = "ogg" === u || "mp3" === u || "wav" === u ? [t] : [t + ".ogg", t + ".mp3"]; + var h = new c.Howl({ + src: n, + preload: this.preload, + autoplay: r.autoplay || !1, + loop: r.loop || !1, + volume: r.volume + }); + r.autoplay && (this.preload || h.load(), h.play()), h.realVolume = r.volume || 1, this.sounds[i] = h + } + }, t.addSounds = function(t, e) { + for (var r = 0; r < t.length; r++) { + var n = t[r]; + this.addSound(e + n, n) + } + }, t.addGroup = function(t, e) { + if (!this.disabled && !this.groups[e]) { + var r = { + index: 0, + type: 0, + sounds: t + }; + this.groups[e] = r + } + }, t.getSoundByAlias = function(t) { + return this.sounds[t] + }, t.getSound = function(t) { + return this.currentSound + }, t.exists = function(t) { + return this.sounds[t] + }, t.play = function(t, e) { + if (void 0 === e && (e = {}), !this.disabled && this.sounds[t]) return e.volume && (this.sounds[t].volume = e.volume * this.globalVolume), e.time && (this.sounds[t].currentTime = e.time), this.preload || this.sounds[t].load(), this.sounds[t].play(), this.currentSound = this.sounds[t], this.currentSound; + this.sounds[t] + }, t.fadeTo = function(t, e, r) { + if (void 0 === r && (r = 2.5), void 0 !== e) { + var n = this.sounds[t]; + n && TweenLite.to(n, r, { + _volume: e, + onUpdate: this.actuallyChangeVolume.bind(this), + onComplete: this.stopAndReset.bind(this), + onCompleteParams: [t], + onUpdateParams: ["{self}", t] + }) + } + }, t.actuallyChangeVolume = function(t, e) { + this.setVolume(e, t.target._volume) + }, t.setVolume = function(t, e) { + if (!this.disabled) { + var r = this.sounds[t]; + r.realVolume = e, r.volume(e * this.globalVolume) + } + }, t.stopAndReset = function(t) { + this.stop(t), this.setVolume(t, 1), this.stop(t) + }, t.isPlaying = function(t) { + if (!this.disabled) return !this.sounds[t]._audioNode[0].paused + }, t.playGroup = function(t) { + if (!this.disabled && this.groups[t]) { + var e = this.groups[t], + r = Math.random() * e.sounds.length | 0; + this.preload || this.sounds[e.sounds[r]].load(), this.sounds[e.sounds[r]].play(), this.currentSound = this.sounds[e.sounds[r]] + } + }, t.setVolume = function(t, e) { + if (!this.disabled) { + var r = this.sounds[t]; + r.realVolume = e, r.volume = e * this.globalVolume + } + }, t.stop = function(t) { + !this.disabled && this.sounds[t] && this.sounds[t].stop() + }, t.pause = function(t) { + !this.disabled && this.sounds[t] && this.sounds[t].pause() + }, t.stopAll = function() { + if (!this.disabled) + for (var t in this.sounds) this.sounds[t].stop() + }, t.setPlaybackSpeed = function(t, e) { + if (!this.disabled) { + var r = this.sounds[t]; + r._playbackSpeed = e; + var n = "music" == t ? 0 : 1; + r._webAudio && c.Howler._howls[n]._audioNode[0] && (c.Howler._howls[n]._audioNode[0].bufferSource.playbackRate.value = e) + } + }, t.getPlaybackSpeed = function(t) { + if (!this.disabled) return this.sounds[t]._playbackSpeed || 1 + }, t.setGlobalVolume = function(t) { + for (var e in this.globalVolume = t, this.sounds) { + var r = this.sounds[e]; + r.volume = r.realVolume * t + } + }, t.mute = function() { + for (var t in this.isMuted = !0, c.Howler.mute(!0), c.Howler.volume(0), this.sounds) this.sounds[t].mute(!0); + this.onMuteToggle.dispatch(!0) + }, t.unmute = function() { + for (var t in this.isMuted = !1, c.Howler.mute(!1), c.Howler.volume(1), this.sounds) this.sounds[t].mute(!1); + this.onMuteToggle.dispatch(!1) + }, t.check = function() { + this.lastSeen = Date.now(); + ! function loop() { + lastSeen = Date.now(), setTimeout(loop, 50) + }(), document.getElementById("music").addEventListener("timeupdate", function() { + 100 < Date.now() - exports.lastSeen && this.pause() + }, !1) + }, SoundManagerHowler + }(); + e.a = new a + }, function(t, e, r) { + var n = r(52)("meta"), + i = r(11), + o = r(28), + a = r(20).f, + s = 0, + u = Object.isExtensible || function() { + return !0 + }, + h = !r(10)(function() { + return u(Object.preventExtensions({})) + }), + c = function(t) { + a(t, n, { + value: { + i: "O" + ++s, + w: {} + } + }) + }, + l = t.exports = { + KEY: n, + NEED: !1, + fastKey: function(t, e) { + if (!i(t)) return "symbol" == typeof t ? t : ("string" == typeof t ? "S" : "P") + t; + if (!o(t, n)) { + if (!u(t)) return "F"; + if (!e) return "E"; + c(t) + } + return t[n].i + }, + getWeak: function(t, e) { + if (!o(t, n)) { + if (!u(t)) return !0; + if (!e) return !1; + c(t) + } + return t[n].w + }, + onFreeze: function(t) { + return h && l.NEED && u(t) && !o(t, n) && c(t), t + } + } + }, function(t, e) { + t.exports = !1 + }, function(t, e, r) { + var n = r(15)("unscopables"), + i = Array.prototype; + null == i[n] && r(25)(i, n, {}), t.exports = function(t) { + i[n][t] = !0 + } + }, function(t, e) { + t.exports = function(t, e) { + return { + enumerable: !(1 & t), + configurable: !(2 & t), + writable: !(4 & t), + value: e + } + } + }, function(t, e) { + var r = 0, + n = Math.random(); + t.exports = function(t) { + return "Symbol(".concat(void 0 === t ? "" : t, ")_", (++r + n).toString(36)) + } + }, function(t, e, r) { + var n = r(136), + i = r(101); + t.exports = Object.keys || function(t) { + return n(t, i) + } + }, function(t, e, r) { + var n = r(35), + i = Math.max, + o = Math.min; + t.exports = function(t, e) { + return (t = n(t)) < 0 ? i(t + e, 0) : o(t, e) + } + }, function(t, e, n) { + var i = n(6), + o = n(137), + a = n(101), + s = n(100)("IE_PROTO"), + u = function() {}, + h = "prototype", + c = function() { + var t, e = n(98)("iframe"), + r = a.length; + for (e.style.display = "none", n(102).appendChild(e), e.src = "javascript:", (t = e.contentWindow.document).open(), t.write("
If using custom web server, verify that web server is sending .br files with HTTP Response Header "Content-Encoding: br". Brotli compression may not be supported in Firefox over HTTP connections. '+d+' See https://bugzilla.mozilla.org/show_bug.cgi?id=1670675 for more information.':"Unable to parse "+l.frameworkUrl+'!
If using custom web server, verify that web server is sending .br files with HTTP Response Header "Content-Encoding: br". Brotli compression may not be supported over HTTP connections. Migrate your server to use HTTPS.'}return void n(a,"error")}}n("Unable to parse "+l.frameworkUrl+"! The file is corrupt, or compression was misconfigured? (check Content-Encoding HTTP Response Header on web server)","error")}var u=unityFramework;unityFramework=null,o.onload=null,URL.revokeObjectURL(t),e(u)},o.onerror=function(e){n("Unable to load file "+l.frameworkUrl+"! Check that the file exists on the remote server. (also check browser Console and Devtools Network tab to debug)","error")},document.body.appendChild(o),l.deinitializers.push(function(){document.body.removeChild(o)})})})}function c(){Promise.all([f(),u("codeUrl")]).then(function(e){l.wasmBinary=e[1],e[0](l)});var e=u("dataUrl");l.preRun.push(function(){l.addRunDependency("dataUrl"),e.then(function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0,n="UnityWebData1.0\0";if(!String.fromCharCode.apply(null,e.subarray(r,r+n.length))==n)throw"unknown data format";r+=n.length;var o=t.getUint32(r,!0);for(r+=4;r0;u=f,f=d.indexOf("/",u)+1)l.FS_createPath(d.substring(0,u),d.substring(u,f-1),!0,!0);l.FS_createDataFile(d,null,e.subarray(i,i+s),!0,!0,!0)}l.removeRunDependency("dataUrl")})})}r=r||function(){};var l={canvas:e,webglContextAttributes:{preserveDrawingBuffer:!1},cacheControl:function(e){return e==l.dataUrl?"must-revalidate":"no-store"},streamingAssetsUrl:"StreamingAssets",downloadProgress:{},deinitializers:[],intervals:{},setInterval:function(e,t){var r=window.setInterval(e,t);return this.intervals[r]=!0,r},clearInterval:function(e){delete this.intervals[e],window.clearInterval(e)},preRun:[],postRun:[],print:function(e){console.log(e)},printErr:function(e){console.error(e),"string"==typeof e&&e.indexOf("wasm streaming compile failed")!=-1&&(e.toLowerCase().indexOf("mime")!=-1?n('HTTP Response Header "Content-Type" configured incorrectly on the server for file '+l.codeUrl+' , should be "application/wasm". Startup time performance will suffer.',"warning"):n('WebAssembly streaming compilation failed! This can happen for example if "Content-Encoding" HTTP header is incorrectly enabled on the server for file '+l.codeUrl+", but the file is not pre-compressed on disk (or vice versa). Check the Network tab in browser Devtools to debug server header configuration.","warning"))},locateFile:function(e){return e},disabledCanvasEvents:["contextmenu","dragstart"]};for(var p in t)l[p]=t[p];l.streamingAssetsUrl=new URL(l.streamingAssetsUrl,document.URL).href;var h=l.disabledCanvasEvents.slice();h.forEach(function(t){e.addEventListener(t,i)}),window.addEventListener("error",o),window.addEventListener("unhandledrejection",o);var w="",b="";document.addEventListener("webkitfullscreenchange",function(t){var r=document.webkitCurrentFullScreenElement;r===e?e.style.width&&(w=e.style.width,b=e.style.height,e.style.width="100%",e.style.height="100%"):w&&(e.style.width=w,e.style.height=b,w="",b="")});var m={Module:l,SetFullscreen:function(){return l.SetFullscreen?l.SetFullscreen.apply(l,arguments):void l.print("Failed to set Fullscreen mode: Player not loaded yet.")},SendMessage:function(){return l.SendMessage?l.SendMessage.apply(l,arguments):void l.print("Failed to execute SendMessage: Player not loaded yet.")},Quit:function(){return new Promise(function(t,r){l.shouldQuit=!0,l.onQuit=t,h.forEach(function(t){e.removeEventListener(t,i)}),window.removeEventListener("error",o),window.removeEventListener("unhandledrejection",o)})}};l.SystemInfo=function(){function e(e,t,r){return e=RegExp(e,"i").exec(t),e&&e[r]}for(var t,r,n,o,i,s,a=navigator.userAgent+" ",d=[["Firefox","Firefox"],["OPR","Opera"],["Edg","Edge"],["SamsungBrowser","Samsung Browser"],["Trident","Internet Explorer"],["MSIE","Internet Explorer"],["Chrome","Chrome"],["CriOS","Chrome on iOS Safari"],["FxiOS","Firefox on iOS Safari"],["Safari","Safari"]],u=0;u0},n.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var e=this.buf_ptr_,t=this.input_.read(this.buf_,e,o);if(t<0)throw new Error("Unexpected end of input");if(t=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&s]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},n.prototype.readBits=function(e){32-this.bit_pos_>>this.bit_pos_&a[e];return this.bit_pos_+=e,t},t.exports=n},"dec/context.js":function(e,t,r){r.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),r.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512])},"dec/decode.js":function(e,t,r){function n(e){var t;return 0===e.readBits(1)?16:(t=e.readBits(3),t>0?17+t:(t=e.readBits(3),t>0?8+t:17))}function o(e){if(e.readBits(1)){var t=e.readBits(3);return 0===t?1:e.readBits(t)+(1<1&&0===s)throw new Error("Invalid size byte");o.meta_block_length|=s<<8*n}}else for(n=0;n4&&0===a)throw new Error("Invalid size nibble");o.meta_block_length|=a<<4*n}return++o.meta_block_length,o.input_end||o.is_metadata||(o.is_uncompressed=e.readBits(1)),o}function a(e,t,r){var n;return r.fillBitWindow(),t+=r.val_>>>r.bit_pos_&Y,n=e[t].bits-F,n>0&&(r.bit_pos_+=F,t+=e[t].value,t+=r.val_>>>r.bit_pos_&(1<0;){var c,l=0;if(n.readMoreInput(),n.fillBitWindow(),l+=n.val_>>>n.bit_pos_&31,n.bit_pos_+=u[l].bits,c=255&u[l].value,c>c);else{var p,h,w=c-14,b=0;if(c===q&&(b=i),a!==b&&(s=0,a=b),p=s,s>0&&(s-=2,s<<=w),s+=n.readBits(w)+3,h=s-p,o+h>t)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var m=0;m0;++a){var m,v=G[a],y=0;n.fillBitWindow(),y+=n.val_>>>n.bit_pos_&15,n.bit_pos_+=b[y].bits,m=b[y].value,p[v]=m,0!==m&&(h-=32>>m,++w)}if(1!==w&&0!==h)throw new Error("[ReadHuffmanCode] invalid num_codes or space");d(p,e,s,n)}if(i=k(t,r,F,s,e),0===i)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return i}function f(e,t,r){var n,o;return n=a(e,t,r),o=N.kBlockLengthPrefixCode[n].nbits,N.kBlockLengthPrefixCode[n].offset+r.readBits(o)}function c(e,t,r){var n;return e>>5]),this.htrees=new Uint32Array(t)}function w(e,t){var r,n,i,s={num_htrees:null,context_map:null},d=0;t.readMoreInput();var f=s.num_htrees=o(t)+1,c=s.context_map=new Uint8Array(e);if(f<=1)return s;for(r=t.readBits(1),r&&(d=t.readBits(4)+1),n=[],i=0;i=e)throw new Error("[DecodeContextMap] i >= context_map_size");c[i]=0,++i}else c[i]=l-d,++i}return t.readBits(1)&&p(c,e),s}function b(e,t,r,n,o,i,s){var d,u=2*r,f=r,c=a(t,r*I,s);d=0===c?o[u+(1&i[f])]:1===c?o[u+(i[f]-1&1)]+1:c-2,d>=e&&(d-=e),n[r]=d,o[u+(1&i[f])]=d,++i[f]}function m(e,t,r,n,o,i){var s,a=o+1,d=r&o,u=i.pos_&W.IBUF_MASK;if(t<8||i.bit_pos_+(t<<3)0;)i.readMoreInput(),n[d++]=i.readBits(8),d===a&&(e.write(n,a),d=0);else{if(i.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;i.bit_pos_<32;)n[d]=i.val_>>>i.bit_pos_,i.bit_pos_+=8,++d,--t;if(s=i.bit_end_pos_-i.bit_pos_>>3,u+s>W.IBUF_MASK){for(var f=W.IBUF_MASK+1-u,c=0;c=a){e.write(n,a),d-=a;for(var c=0;c=a;){if(s=a-d,i.input_.read(n,d,s)t.buffer.length){var ge=new Uint8Array(E+re);ge.set(t.buffer),t.buffer=ge}if(k=ye.input_end,C=ye.is_uncompressed,ye.is_metadata)for(v(U);re>0;--re)U.readMoreInput(),U.readBits(8);else if(0!==re)if(C)U.bit_pos_=U.bit_pos_+7&-8,m(t,re,E,p,l,U),E+=re;else{for(r=0;r<3;++r)ie[r]=o(U)+1,ie[r]>=2&&(u(ie[r]+2,g,r*I,U),u(P,x,r*I,U),ne[r]=f(x,r*I,U),ae[r]=1);for(U.readMoreInput(),j=U.readBits(2),z=X+(U.readBits(4)<0;){var Ee,We,Oe,Re,ke,He,Ne,Be,Ve,qe,Me;for(U.readMoreInput(),0===ne[1]&&(b(ie[1],g,1,oe,se,ae,U),ne[1]=f(x,I,U),te=D[1].htrees[oe[1]]),--ne[1],Ee=a(D[1].codes,te,U),We=Ee>>6,We>=2?(We-=2,Ne=-1):Ne=0,Oe=N.kInsertRangeLut[We]+(Ee>>3&7),Re=N.kCopyRangeLut[We]+(7&Ee),ke=N.kInsertLengthPrefixCode[Oe].offset+U.readBits(N.kInsertLengthPrefixCode[Oe].nbits),He=N.kCopyLengthPrefixCode[Re].offset+U.readBits(N.kCopyLengthPrefixCode[Re].nbits),Z=p[E-1&l],G=p[E-2&l],qe=0;qe4?3:He-2),be=fe[we+Ve],Ne=a(D[2].codes,D[2].htrees[be],U),Ne>=z){var Le,Pe,Te;Ne-=z,Pe=Ne&J,Ne>>=j,Le=(Ne>>1)+1,Te=(2+(1&Ne)<q){if(!(He>=O.minDictionaryWordLength&&He<=O.maxDictionaryWordLength))throw new Error("Invalid backward reference. pos: "+E+" distance: "+Be+" len: "+He+" bytes left: "+re);var Te=O.offsetsByLength[He],Ae=Be-q-1,Fe=O.sizeBitsByLength[He],Ye=(1<>Fe;if(Te+=Ie*He,!(Ze=y){t.write(p,d);for(var Xe=0;Xe0&&(F[3&Y]=Be,++Y),He>re)throw new Error("Invalid backward reference. pos: "+E+" distance: "+Be+" len: "+He+" bytes left: "+re);for(qe=0;qe>=1;return(e&r-1)+r}function i(e,t,r,o,i){do o-=r,e[t+o]=new n(i.bits,i.value);while(o>0)}function s(e,t,r){for(var n=1<0;--U[c])f=new n(255&c,65535&g[l++]),i(e,t+p,h,v,f),p=o(p,c);for(b=y-1,w=-1,c=r+1,h=2;c<=a;++c,h<<=1)for(;U[c]>0;--U[c])(p&b)!==w&&(t+=v,m=s(U,c,r),v=1<>r),h,v,f),p=o(p,c);return y}},"dec/prefix.js":function(e,t,r){function n(e,t){this.offset=e,this.nbits=t}r.kBlockLengthPrefixCode=[new n(1,2),new n(5,2),new n(9,2),new n(13,2),new n(17,3),new n(25,3),new n(33,3),new n(41,3),new n(49,4),new n(65,4),new n(81,4),new n(97,4),new n(113,5),new n(145,5),new n(177,5),new n(209,5),new n(241,6),new n(305,6),new n(369,7),new n(497,8),new n(753,9),new n(1265,10),new n(2289,11),new n(4337,12),new n(8433,13),new n(16625,24)],r.kInsertLengthPrefixCode=[new n(0,0),new n(1,0),new n(2,0),new n(3,0),new n(4,0),new n(5,0),new n(6,1),new n(8,1),new n(10,2),new n(14,2),new n(18,3),new n(26,3),new n(34,4),new n(50,4),new n(66,5),new n(98,5),new n(130,6),new n(194,7),new n(322,8),new n(578,9),new n(1090,10),new n(2114,12),new n(6210,14),new n(22594,24)],r.kCopyLengthPrefixCode=[new n(2,0),new n(3,0),new n(4,0),new n(5,0),new n(6,0),new n(7,0),new n(8,0),new n(9,0),new n(10,1),new n(12,1),new n(14,2),new n(18,2),new n(22,3),new n(30,3),new n(38,4),new n(54,4),new n(70,5),new n(102,5),new n(134,6),new n(198,7),new n(326,8),new n(582,9),new n(1094,10),new n(2118,24)],r.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],r.kCopyRangeLut=[0,8,0,8,16,0,16,8,16]},"dec/streams.js":function(e,t,r){function n(e){this.buffer=e,this.pos=0}function o(e){this.buffer=e,this.pos=0}n.prototype.read=function(e,t,r){this.pos+r>this.buffer.length&&(r=this.buffer.length-this.pos);for(var n=0;nthis.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(e.subarray(0,t),this.pos),this.pos+=t,t},r.BrotliOutput=o},"dec/transform.js":function(e,t,r){function n(e,t,r){this.prefix=new Uint8Array(e.length),this.transform=t,this.suffix=new Uint8Array(r.length);for(var n=0;n=97&&e[t]<=122&&(e[t]^=32),1):e[t]<224?(e[t+1]^=32,2):(e[t+2]^=5,3)}var i=e("./dictionary");const s=0,a=1,d=2,u=3,f=4,c=5,l=6,p=7,h=8,w=9,b=10,m=11,v=12,y=13,g=14,x=15,U=16,E=17,W=18,O=20;var R=[new n("",s,""),new n("",s," "),new n(" ",s," "),new n("",v,""),new n("",b," "),new n("",s," the "),new n(" ",s,""),new n("s ",s," "),new n("",s," of "),new n("",b,""),new n("",s," and "),new n("",y,""),new n("",a,""),new n(", ",s," "),new n("",s,", "),new n(" ",b," "),new n("",s," in "),new n("",s," to "),new n("e ",s," "),new n("",s,'"'),new n("",s,"."),new n("",s,'">'),new n("",s,"\n"),new n("",u,""),new n("",s,"]"),new n("",s," for "),new n("",g,""),new n("",d,""),new n("",s," a "),new n("",s," that "),new n(" ",b,""),new n("",s,". "),new n(".",s,""),new n(" ",s,", "),new n("",x,""),new n("",s," with "),new n("",s,"'"),new n("",s," from "),new n("",s," by "),new n("",U,""),new n("",E,""),new n(" the ",s,""),new n("",f,""),new n("",s,". The "),new n("",m,""),new n("",s," on "),new n("",s," as "),new n("",s," is "),new n("",p,""),new n("",a,"ing "),new n("",s,"\n\t"),new n("",s,":"),new n(" ",s,". "),new n("",s,"ed "),new n("",O,""),new n("",W,""),new n("",l,""),new n("",s,"("),new n("",b,", "),new n("",h,""),new n("",s," at "),new n("",s,"ly "),new n(" the ",s," of "),new n("",c,""),new n("",w,""),new n(" ",b,", "),new n("",b,'"'),new n(".",s,"("),new n("",m," "),new n("",b,'">'),new n("",s,'="'),new n(" ",s,"."),new n(".com/",s,""),new n(" the ",s," of the "),new n("",b,"'"),new n("",s,". This "),new n("",s,","),new n(".",s," "),new n("",b,"("),new n("",b,"."),new n("",s," not "),new n(" ",s,'="'),new n("",s,"er "),new n(" ",m," "),new n("",s,"al "),new n(" ",m,""),new n("",s,"='"),new n("",m,'"'),new n("",b,". "),new n(" ",s,"("),new n("",s,"ful "),new n(" ",b,". "),new n("",s,"ive "),new n("",s,"less "),new n("",m,"'"),new n("",s,"est "),new n(" ",b,"."),new n("",m,'">'),new n(" ",s,"='"),new n("",b,","),new n("",s,"ize "),new n("",m,"."),new n("\xc2\xa0",s,""),new n(" ",s,","),new n("",b,'="'),new n("",m,'="'),new n("",s,"ous "),new n("",m,", "),new n("",b,"='"),new n(" ",b,","),new n(" ",m,'="'),new n(" ",m,", "),new n("",m,","),new n("",m,"("),new n("",m,". "),new n(" ",m,"."),new n("",m,"='"),new n(" ",m,". "),new n(" ",b,'="'),new n(" ",m,"='"),new n(" ",b,"='")];r.kTransforms=R,r.kNumTransforms=R.length,r.transformDictionaryWord=function(e,t,r,n,s){var a,d=R[s].prefix,u=R[s].suffix,f=R[s].transform,c=fn&&(c=n);for(var h=0;h0;){var y=o(e,a);a+=y,n-=y}for(var g=0;g0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function o(e){return 3*e.length/4-n(e)}function i(e){var t,r,o,i,s,a,d=e.length;s=n(e),a=new c(3*d/4-s),o=s>0?d-4:d;var u=0;for(t=0,r=0;t>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===s?(i=f[e.charCodeAt(t)]<<2|f[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===s&&(i=f[e.charCodeAt(t)]<<10|f[e.charCodeAt(t+1)]<<4|f[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function s(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,r){for(var n,o=[],i=t;if?f:d+s));return 1===n?(t=e[r-1],o+=u[t>>2],o+=u[t<<4&63],o+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],o+=u[t>>10],o+=u[t>>4&63],o+=u[t<<2&63],o+="="),i.push(o),i.join("")}r.byteLength=o,r.toByteArray=i,r.fromByteArray=d;for(var u=[],f=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,h=l.length;p>3);if(commentOffset=r+1+2+1+2+(o<<3)+7>>3,17==n||commentOffset>e.length)return!1;for(var i=n+(6+(o<<4)+(t.length-1<<6)<>>=8)if(e[s]!=(255&i))return!1;return String.fromCharCode.apply(null,e.subarray(commentOffset,commentOffset+t.length))==t}}};return new Promise(function(e,t){l.SystemInfo.hasWebGL?l.SystemInfo.hasWasm?(1==l.SystemInfo.hasWebGL&&l.print('Warning: Your browser does not support "WebGL 2.0" Graphics API, switching to "WebGL 1.0"'),l.startupErrorHandler=t,r(0),l.postRun.push(function(){r(1),delete l.startupErrorHandler,e(m)}),c()):t("Your browser does not support WebAssembly."):t("Your browser does not support WebGL.")})} \ No newline at end of file diff --git a/games/time-shooter-3/TemplateData/favicon.ico b/games/time-shooter-3/TemplateData/favicon.ico new file mode 100644 index 00000000..bd3356bd --- /dev/null +++ b/games/time-shooter-3/TemplateData/favicon.ico @@ -0,0 +1,466 @@ + + + + + Unblocked Games - Free online games for school + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + +
+
+ +
+
+
+ + +
+
+
+
+

Welcome to the home of unblocked games!

+

Hi there! On our website you can play the most popular and fun unblocked games at school or at work. Bookmark us and play cool online games anytime, anywhere!

+
+

New Unblocked Games

+ +

Best Unblocked Games

+ +
+

What are unblocked games?

+

How often do you get bored at school? Tired of lessons? Favorite sites with online games blocked? There is a solution! On our website you can play for free the most popular + unblocked games with your friends from US, UK, Australia and many other countries. These games are always available from anywhere, such as at school or at work. + No additional applications or plugins need to be installed. Of the system requirements, we note only the presence of a PC or laptop with Chrome OS, Mac OS or Windows operating system. Everyone can choose a game from any genre: Action, Racing, Arcade, IO, Multiplayer, Logic, Defense and many others.

+

What are some unblocked games at school?

+

We always follow them and publish the most popular titles from these sites. Here is a list of the most popular unblocked games to play at school or at work:

+ +

What about Flash support at 2021?

+

If you don't know yet, Google will disable Flash support in Chrome browsers in December 2020. In this regard, we decided to upload games only in the new HTML 5 format (JavaScript and WebGL). Unfortunately, many popular unblocked games are still written in Flash, but the developers are trying to transfer them to HTML 5, so titles like + Run 3 or Happy Wheels will definitely be replaced with new versions and will continue to work on our site!

+

All games that we publish are thoroughly tested, so you can be sure that you will only get a positive experience. We also constantly check popular sites like Google Sites and Weebly for new and cool unblocked games.

+

If you want to publish a new game, write to us by email and we will consider your request. By the way, if you liked some kind of game, then do not forget to like it!

+
+
+
+
+
Unblocked Games © 2022
Privacy Policy · About Us · Contact
+ + +
+
+
+
+ + \ No newline at end of file diff --git a/games/time-shooter-3/TemplateData/style.css b/games/time-shooter-3/TemplateData/style.css new file mode 100644 index 00000000..d0ab0f7e --- /dev/null +++ b/games/time-shooter-3/TemplateData/style.css @@ -0,0 +1,104 @@ +html { + box-sizing: border-box; +} +*, *:before, *:after { + box-sizing: inherit; +} +html, body { + height: 100%; +} +canvas { + display: block; +} +body { + margin: 0; +} +#unity-container { + width: 100%; + height: 100%; +} +#unity-canvas { + width: 100%; + height: 100%; + background: #FFFFFF; +} +#loading-cover { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} +#unity-loading-bar { + flex: 1 1 auto; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +#unity-logo { + text-align: center; +} +#unity-logo img { + max-width: 80%; +} +#unity-progress-bar-empty { + width: 80%; + height: 24px; + margin: 10px 20px 20px 10px; + text-align: left; + border: 1px solid white; + padding: 2px; +} +#unity-progress-bar-full { + width: 0%; + height: 100%; + background: white; +} +.light #unity-progress-bar-empty { + border-color: black; +} +.light #unity-progress-bar-full { + background: black; +} + +#unity-fullscreen-button { + position: absolute; + right: 10px; + bottom: 10px; + width: 38px; + height: 38px; + background: url('fullscreen-button.png') no-repeat center; + background-size: contain; +} + +.spinner, +.spinner:after { + border-radius: 50%; + width: 5em; + height: 5em; +} +.spinner { + margin: 10px; + font-size: 10px; + position: relative; + text-indent: -9999em; + border-top: 1.1em solid rgba(255, 255, 255, 0.2); + border-right: 1.1em solid rgba(255, 255, 255, 0.2); + border-bottom: 1.1em solid rgba(255, 255, 255, 0.2); + border-left: 1.1em solid #ffffff; + transform: translateZ(0); + animation: spinner-spin 1.1s infinite linear; +} +@keyframes spinner-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + diff --git a/games/time-shooter-3/index.html b/games/time-shooter-3/index.html new file mode 100644 index 00000000..2c025ac9 --- /dev/null +++ b/games/time-shooter-3/index.html @@ -0,0 +1,105 @@ + + + + + + + + + + + Time Shooter SWAT + + + + +
+ +
+ + + + + + diff --git a/games/time-shooter-3/logo.png b/games/time-shooter-3/logo.png new file mode 100644 index 00000000..f0ae7112 Binary files /dev/null and b/games/time-shooter-3/logo.png differ diff --git a/games/x-trench-run/branding/gamelotte-splash.png b/games/x-trench-run/branding/gamelotte-splash.png new file mode 100644 index 00000000..ed732c3f Binary files /dev/null and b/games/x-trench-run/branding/gamelotte-splash.png differ diff --git a/games/x-trench-run/branding/logo.png b/games/x-trench-run/branding/logo.png new file mode 100644 index 00000000..6c5d06a1 Binary files /dev/null and b/games/x-trench-run/branding/logo.png differ diff --git a/games/x-trench-run/game.css b/games/x-trench-run/game.css new file mode 100644 index 00000000..6fef3169 --- /dev/null +++ b/games/x-trench-run/game.css @@ -0,0 +1,2 @@ +html,body{ margin:0; padding:0; position:relative; font-family:"Arial"; width:100%; background-color:#100A36;} @font-face{font-family:'mainfont';src:url('media/graphics/font/mainfont.woff') format('woff'),url('media/graphics/font/mainfont.ttf');} #webgl{ background-color:transparent; background:transparent; position:absolute; left:0; top:0; width:100%; height:100%;} #game{ background-color:transparent; background:transparent; position:absolute; left:0; top:0;} #ajaxbar{ background:url('media/graphics/loading/ajax-loader.gif') center no-repeat;} #canvas{ background-color:transparent; position:absolute; left:0; top:0; width:100%; height:100%; -ms-interpolation-mode:nearest-neighbor; -webkit-transform:scale3d(1,1,1); filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='sample_600x600.png',sizingMethod='scale'); background:none !important;} #webglcanvas{ background-color:transparent; position:absolute; left:0; top:0; width:100%; height:100%; -ms-interpolation-mode:nearest-neighbor; -webkit-transform:scale3d(1,1,1);} #orientate{ position:absolute; float:left; width:100%; height:100%; top:0; left:0; z-index:10002; display:none;} #orientate img{ position:absolute; float:left; width:100%; height:100%;} .play{ position:absolute; float:left; width:100%; height:100%; z-index:1000; background-color:#fff; left:0; top:0; display:none;} .play img{ position:absolute; float:left; width:100%; height:100%; z-index:1000; left:0; top:0;} #nohtml5{ position:absolute; top:0; left:0; width:100%; height:100%; background-color:#000; z-index:1002; visibility:hidden;} #nohtml5 img{ position:absolute; width:100%; height:100%;} #nohtml5-bubble{ position:absolute; bottom:20px; left:50px; width:380px; height:100px; z-index:1002; color:#000; background:rgba(255,255,255,0.75); -webkit-border-radius:10px; -moz-border-radius:10px; border-radius:10px; } #nohtml5-text{ padding:10px;} .horizontal-seperator{ height:10px; width:100%;} #MobileAdInGamePreroll,#MobileAdInGamePreroll2,#MobileAdInGamePreroll3{ position:absolute; float:left; min-width:320px; z-index:10000; left:0; top:0; display:none; background:rgba(0,0,0,0.7); -webkit-transition:all 0.6s ease; -moz-transition: all 0.6s ease; -o-transition: all 0.6s ease;} #MobileAdInGamePreroll-Box,#MobileAdInGamePreroll2-Box,#MobileAdInGamePreroll3-Box{ z-index:10000; position:absolute; width:302px; height:250px;} #MobileAdInGamePreroll-Box-Body,#MobileAdInGamePreroll2-Box-Body,#MobileAdInGamePreroll3-Box-Body{ z-index:10000; position:relative; background:transparent; } #MobileAdInGamePreroll-Box-Footer,#MobileAdInGamePreroll2-Box-Footer,#MobileAdInGamePreroll3-Box-Footer{ z-index:10000; position:relative; font-size:11px; height:20px; color:#fff; background:transparent; } #MobileAdInGamePreroll-Box-Header,#MobileAdInGamePreroll2-Box-Header,#MobileAdInGamePreroll3-Box-Header{ z-index:10000; position:relative; margin-top:-2px; font-size:11px; height:20px; text-align:right; color:#fff; background:transparent; } #MobileAdInGamePreroll-Box-Close,#MobileAdInGamePreroll2-Box-Close,#MobileAdInGamePreroll3-Box-Close{ position:absolute; z-index:10005; background-image:url('media/graphics/generic-ad/light/close-button.png'); background-repeat:no-repeat; width:22px; height:22px; top:-4px; margin-right:-1px; display:none;} #MobileAdInGameHeader,#MobileAdInGameHeader2,#MobileAdInGameHeader3{ display:none; position:absolute; background:transparent; } #MobileAdInGameFooter,#MobileAdInGameFooter2,#MobileAdInGameFooter3{ display:none; position:absolute; background:transparent; } #MobileAdInGameEnd,#MobileAdInGameEnd2,#MobileAdInGameEnd3{ position:absolute; float:left; min-width:320px; z-index:10000; left:0; top:0; display:none; background:rgba(0,0,0,0.7); -webkit-transition:all 0.6s ease; -moz-transition: all 0.6s ease; -o-transition: all 0.6s ease;} #MobileAdInGameEnd-Box,#MobileAdInGameEnd2-Box,#MobileAdInGameEnd3-Box{ z-index:10000; position:absolute; width:302px; height:250px;} #MobileAdInGameEnd-Box-Body,#MobileAdInGameEnd2-Box-Body,#MobileAdInGameEnd3-Box-Body{ z-index:10000; position:relative; background:transparent; } #MobileAdInGameEnd-Box-Footer,#MobileAdInGameEnd2-Box-Footer,#MobileAdInGameEnd3-Box-Footer{ z-index:10000; position:relative; font-size:11px; height:20px; color:#fff; background:transparent; } #MobileAdInGameEnd-Box-Header,#MobileAdInGameEnd2-Box-Header,#MobileAdInGameEnd3-Box-Header{ z-index:10000; position:relative; margin-top:-2px; font-size:11px; height:20px; text-align:right; color:#fff; background:transparent; } #MobileAdInGameEnd-Box-Close,#MobileAdInGameEnd2-Box-Close,#MobileAdInGameEnd3-Box-Close{ position:absolute; z-index:10005; background-image:url('media/graphics/generic-ad/light/close-button.png'); background-repeat:no-repeat; width:22px; height:22px; top:-4px; margin-right:-1px; display:none;} .ig_debug{ position:fixed; left:0; bottom:0; width:100%; background-color:#000; border-top:2px solid #f57401; font-size:12px; color:#fff; z-index:1000; -webkit-user-select:none; display:none;} .ig_debug_panel_menu{ height:28px; background:#222; background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#000000),color-stop(1,#333)); background:-moz-linear-gradient(center bottom,#000000 0%,#333 100%); background:-o-linear-gradient(#333,#000000);} .ig_debug_panel_menu div{ float:left; height:22px; padding:6px 8px 0 8px; border-right:1px solid #333;} .ig_debug_panel_menu .ig_debug_head { font-weight:bold; color:#888;} .ig_debug_menu_item:hover{ cursor:pointer; background-color:#fff; color:#000;} .ig_debug_menu_item.active,.ig_debug_menu_item.active:hover{ background-color:#000; color:#fff;} .ig_debug_stats{ position:absolute; right:0; top:0; float:right; color:#888; border-left:1px solid #333; text-align:right;} .ig_debug_stats span{ width:3em; display:inline-block; color:#fff !important; margin-right:0.2em; margin-left:0.3em; font-family:bitstream vera sans mono,courier new; white-space:nowrap;} .ig_debug_panel{ height:152px; overflow:auto; position:relative;} .ig_debug_panel canvas{ border-bottom:1px solid #444;} .ig_debug_panel .ig_debug_panel{ padding:8px; height:auto; float:left; background-color:#000; border-right:2px solid #222;} .ig_debug_option{ padding:2px 0 2px 8px; cursor:pointer;} .ig_debug_option:first-child{ margin-top:8px;} .ig_debug_option:hover{ background-color:#111;} .ig_debug_graph_mark{ position:absolute; color:#888; left:4px; font-size:10px; margin-top:-12px;} .ig_debug_legend{ color:#ccc;} .ig_debug_label_mark{ display:inline-block; width:10px; height:10px; margin-right:4px; -webkit-transition:0.1s linear; -moz-transition:0.1s linear;} .ig_debug_legend_color{ display:inline-block; width:6px; height:10px; margin-right:4px; margin-left:16px; } .ig_debug_legend_number{ width:3em; display:inline-block; text-align:right; font-family:bitstream vera sans mono,courier new; color:#fff; margin-right:0.2em;} .ig_debug_map_container{ position:relative; overflow:hidden; border:1px solid #888;} .ig_debug_map_container canvas{ position:absolute;} .ig_debug_map_screen{ position:absolute; border:1px solid #f0f;} + diff --git a/games/x-trench-run/game.js b/games/x-trench-run/game.js new file mode 100644 index 00000000..3472b3ee --- /dev/null +++ b/games/x-trench-run/game.js @@ -0,0 +1,1117 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("babylonjs",[],t):"object"==typeof exports?exports.babylonjs=t():e.BABYLON=t()}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=129)}([function(e,t,i){"use strict";i.d(t,"u",function(){return s}),i.d(t,"v",function(){return a}),i.d(t,"h",function(){return c}),i.d(t,"e",function(){return l}),i.d(t,"f",function(){return u}),i.d(t,"w",function(){return h}),i.d(t,"x",function(){return d}),i.d(t,"y",function(){return f}),i.d(t,"r",function(){return p}),i.d(t,"q",function(){return _}),i.d(t,"j",function(){return g}),i.d(t,"n",function(){return m}),i.d(t,"z",function(){return v}),i.d(t,"i",function(){return y}),i.d(t,"s",function(){return n}),i.d(t,"c",function(){return T}),i.d(t,"d",function(){return E}),i.d(t,"k",function(){return b}),i.d(t,"a",function(){return A}),i.d(t,"b",function(){return x}),i.d(t,"l",function(){return R}),i.d(t,"m",function(){return P}),i.d(t,"g",function(){return S}),i.d(t,"p",function(){return C}),i.d(t,"o",function(){return M}),i.d(t,"t",function(){return O});var n,r=i(34),o=i(12),s=1/2.2,a=2.2,c=.001,l=function(){function e(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),this.r=e,this.g=t,this.b=i}return e.prototype.toString=function(){return"{R: "+this.r+" G:"+this.g+" B:"+this.b+"}"},e.prototype.getClassName=function(){return"Color3"},e.prototype.getHashCode=function(){var e=this.r||0;return e=397*(e=397*e^(this.g||0))^(this.b||0)},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,this},e.prototype.toColor4=function(e){return void 0===e&&(e=1),new u(this.r,this.g,this.b,e)},e.prototype.asArray=function(){var e=new Array;return this.toArray(e,0),e},e.prototype.toLuminance=function(){return.3*this.r+.59*this.g+.11*this.b},e.prototype.multiply=function(t){return new e(this.r*t.r,this.g*t.g,this.b*t.b)},e.prototype.multiplyToRef=function(e,t){return t.r=this.r*e.r,t.g=this.g*e.g,t.b=this.b*e.b,this},e.prototype.equals=function(e){return e&&this.r===e.r&&this.g===e.g&&this.b===e.b},e.prototype.equalsFloats=function(e,t,i){return this.r===e&&this.g===t&&this.b===i},e.prototype.scale=function(t){return new e(this.r*t,this.g*t,this.b*t)},e.prototype.scaleToRef=function(e,t){return t.r=this.r*e,t.g=this.g*e,t.b=this.b*e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.r+=this.r*e,t.g+=this.g*e,t.b+=this.b*e,this},e.prototype.clampToRef=function(e,t,i){return void 0===e&&(e=0),void 0===t&&(t=1),i.r=o.a.Clamp(this.r,e,t),i.g=o.a.Clamp(this.g,e,t),i.b=o.a.Clamp(this.b,e,t),this},e.prototype.add=function(t){return new e(this.r+t.r,this.g+t.g,this.b+t.b)},e.prototype.addToRef=function(e,t){return t.r=this.r+e.r,t.g=this.g+e.g,t.b=this.b+e.b,this},e.prototype.subtract=function(t){return new e(this.r-t.r,this.g-t.g,this.b-t.b)},e.prototype.subtractToRef=function(e,t){return t.r=this.r-e.r,t.g=this.g-e.g,t.b=this.b-e.b,this},e.prototype.clone=function(){return new e(this.r,this.g,this.b)},e.prototype.copyFrom=function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this},e.prototype.copyFromFloats=function(e,t,i){return this.r=e,this.g=t,this.b=i,this},e.prototype.set=function(e,t,i){return this.copyFromFloats(e,t,i)},e.prototype.toHexString=function(){var e=255*this.r|0,t=255*this.g|0,i=255*this.b|0;return"#"+o.a.ToHex(e)+o.a.ToHex(t)+o.a.ToHex(i)},e.prototype.toLinearSpace=function(){var t=new e;return this.toLinearSpaceToRef(t),t},e.prototype.toLinearSpaceToRef=function(e){return e.r=Math.pow(this.r,a),e.g=Math.pow(this.g,a),e.b=Math.pow(this.b,a),this},e.prototype.toGammaSpace=function(){var t=new e;return this.toGammaSpaceToRef(t),t},e.prototype.toGammaSpaceToRef=function(e){return e.r=Math.pow(this.r,s),e.g=Math.pow(this.g,s),e.b=Math.pow(this.b,s),this},e.FromHexString=function(t){if("#"!==t.substring(0,1)||7!==t.length)return new e(0,0,0);var i=parseInt(t.substring(1,3),16),n=parseInt(t.substring(3,5),16),r=parseInt(t.substring(5,7),16);return e.FromInts(i,n,r)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1],t[i+2])},e.FromInts=function(t,i,n){return new e(t/255,i/255,n/255)},e.Lerp=function(t,i,n){var r=new e(0,0,0);return e.LerpToRef(t,i,n,r),r},e.LerpToRef=function(e,t,i,n){n.r=e.r+(t.r-e.r)*i,n.g=e.g+(t.g-e.g)*i,n.b=e.b+(t.b-e.b)*i},e.Red=function(){return new e(1,0,0)},e.Green=function(){return new e(0,1,0)},e.Blue=function(){return new e(0,0,1)},e.Black=function(){return new e(0,0,0)},Object.defineProperty(e,"BlackReadOnly",{get:function(){return e._BlackReadOnly},enumerable:!0,configurable:!0}),e.White=function(){return new e(1,1,1)},e.Purple=function(){return new e(.5,0,.5)},e.Magenta=function(){return new e(1,0,1)},e.Yellow=function(){return new e(1,1,0)},e.Gray=function(){return new e(.5,.5,.5)},e.Teal=function(){return new e(0,1,1)},e.Random=function(){return new e(Math.random(),Math.random(),Math.random())},e._BlackReadOnly=e.Black(),e}(),u=function(){function e(e,t,i,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),this.r=e,this.g=t,this.b=i,this.a=n}return e.prototype.addInPlace=function(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this.a+=e.a,this},e.prototype.asArray=function(){var e=new Array;return this.toArray(e,0),e},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e[t+3]=this.a,this},e.prototype.equals=function(e){return e&&this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a},e.prototype.add=function(t){return new e(this.r+t.r,this.g+t.g,this.b+t.b,this.a+t.a)},e.prototype.subtract=function(t){return new e(this.r-t.r,this.g-t.g,this.b-t.b,this.a-t.a)},e.prototype.subtractToRef=function(e,t){return t.r=this.r-e.r,t.g=this.g-e.g,t.b=this.b-e.b,t.a=this.a-e.a,this},e.prototype.scale=function(t){return new e(this.r*t,this.g*t,this.b*t,this.a*t)},e.prototype.scaleToRef=function(e,t){return t.r=this.r*e,t.g=this.g*e,t.b=this.b*e,t.a=this.a*e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.r+=this.r*e,t.g+=this.g*e,t.b+=this.b*e,t.a+=this.a*e,this},e.prototype.clampToRef=function(e,t,i){return void 0===e&&(e=0),void 0===t&&(t=1),i.r=o.a.Clamp(this.r,e,t),i.g=o.a.Clamp(this.g,e,t),i.b=o.a.Clamp(this.b,e,t),i.a=o.a.Clamp(this.a,e,t),this},e.prototype.multiply=function(t){return new e(this.r*t.r,this.g*t.g,this.b*t.b,this.a*t.a)},e.prototype.multiplyToRef=function(e,t){return t.r=this.r*e.r,t.g=this.g*e.g,t.b=this.b*e.b,t.a=this.a*e.a,t},e.prototype.toString=function(){return"{R: "+this.r+" G:"+this.g+" B:"+this.b+" A:"+this.a+"}"},e.prototype.getClassName=function(){return"Color4"},e.prototype.getHashCode=function(){var e=this.r||0;return e=397*(e=397*(e=397*e^(this.g||0))^(this.b||0))^(this.a||0)},e.prototype.clone=function(){return new e(this.r,this.g,this.b,this.a)},e.prototype.copyFrom=function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this},e.prototype.copyFromFloats=function(e,t,i,n){return this.r=e,this.g=t,this.b=i,this.a=n,this},e.prototype.set=function(e,t,i,n){return this.copyFromFloats(e,t,i,n)},e.prototype.toHexString=function(){var e=255*this.r|0,t=255*this.g|0,i=255*this.b|0,n=255*this.a|0;return"#"+o.a.ToHex(e)+o.a.ToHex(t)+o.a.ToHex(i)+o.a.ToHex(n)},e.prototype.toLinearSpace=function(){var t=new e;return this.toLinearSpaceToRef(t),t},e.prototype.toLinearSpaceToRef=function(e){return e.r=Math.pow(this.r,a),e.g=Math.pow(this.g,a),e.b=Math.pow(this.b,a),e.a=this.a,this},e.prototype.toGammaSpace=function(){var t=new e;return this.toGammaSpaceToRef(t),t},e.prototype.toGammaSpaceToRef=function(e){return e.r=Math.pow(this.r,s),e.g=Math.pow(this.g,s),e.b=Math.pow(this.b,s),e.a=this.a,this},e.FromHexString=function(t){if("#"!==t.substring(0,1)||9!==t.length)return new e(0,0,0,0);var i=parseInt(t.substring(1,3),16),n=parseInt(t.substring(3,5),16),r=parseInt(t.substring(5,7),16),o=parseInt(t.substring(7,9),16);return e.FromInts(i,n,r,o)},e.Lerp=function(t,i,n){var r=new e(0,0,0,0);return e.LerpToRef(t,i,n,r),r},e.LerpToRef=function(e,t,i,n){n.r=e.r+(t.r-e.r)*i,n.g=e.g+(t.g-e.g)*i,n.b=e.b+(t.b-e.b)*i,n.a=e.a+(t.a-e.a)*i},e.FromColor3=function(t,i){return void 0===i&&(i=1),new e(t.r,t.g,t.b,i)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1],t[i+2],t[i+3])},e.FromInts=function(t,i,n,r){return new e(t/255,i/255,n/255,r/255)},e.CheckColors4=function(e,t){if(e.length===3*t){for(var i=[],n=0;nn.x?n.x:r)n.y?n.y:o)i.x?t.x:i.x,t.y>i.y?t.y:i.y)},e.Transform=function(t,i){var n=e.Zero();return e.TransformToRef(t,i,n),n},e.TransformToRef=function(e,t,i){var n=t.m,r=e.x*n[0]+e.y*n[4]+n[12],o=e.x*n[1]+e.y*n[5]+n[13];i.x=r,i.y=o},e.PointInTriangle=function(e,t,i,n){var r=.5*(-i.y*n.x+t.y*(-i.x+n.x)+t.x*(i.y-n.y)+i.x*n.y),o=r<0?-1:1,s=(t.y*n.x-t.x*n.y+(n.y-t.y)*e.x+(t.x-n.x)*e.y)*o,a=(t.x*i.y-t.y*i.x+(t.y-i.y)*e.x+(i.x-t.x)*e.y)*o;return s>0&&a>0&&s+a<2*r*o},e.Distance=function(t,i){return Math.sqrt(e.DistanceSquared(t,i))},e.DistanceSquared=function(e,t){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},e.Center=function(e,t){var i=e.add(t);return i.scaleInPlace(.5),i},e.DistanceOfPointFromSegment=function(t,i,n){var r=e.DistanceSquared(i,n);if(0===r)return e.Distance(t,i);var o=n.subtract(i),s=Math.max(0,Math.min(1,e.Dot(t.subtract(i),o)/r)),a=i.add(o.multiplyByFloats(s,s));return e.Distance(t,a)},e}(),d=function(){function e(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),this.x=e,this.y=t,this.z=i}return e.prototype.toString=function(){return"{X: "+this.x+" Y:"+this.y+" Z:"+this.z+"}"},e.prototype.getClassName=function(){return"Vector3"},e.prototype.getHashCode=function(){var e=this.x||0;return e=397*(e=397*e^(this.y||0))^(this.z||0)},e.prototype.asArray=function(){var e=[];return this.toArray(e,0),e},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,this},e.prototype.toQuaternion=function(){return _.RotationYawPitchRoll(this.y,this.x,this.z)},e.prototype.addInPlace=function(e){return this.addInPlaceFromFloats(e.x,e.y,e.z)},e.prototype.addInPlaceFromFloats=function(e,t,i){return this.x+=e,this.y+=t,this.z+=i,this},e.prototype.add=function(t){return new e(this.x+t.x,this.y+t.y,this.z+t.z)},e.prototype.addToRef=function(e,t){return t.copyFromFloats(this.x+e.x,this.y+e.y,this.z+e.z)},e.prototype.subtractInPlace=function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this},e.prototype.subtract=function(t){return new e(this.x-t.x,this.y-t.y,this.z-t.z)},e.prototype.subtractToRef=function(e,t){return this.subtractFromFloatsToRef(e.x,e.y,e.z,t)},e.prototype.subtractFromFloats=function(t,i,n){return new e(this.x-t,this.y-i,this.z-n)},e.prototype.subtractFromFloatsToRef=function(e,t,i,n){return n.copyFromFloats(this.x-e,this.y-t,this.z-i)},e.prototype.negate=function(){return new e(-this.x,-this.y,-this.z)},e.prototype.scaleInPlace=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.scale=function(t){return new e(this.x*t,this.y*t,this.z*t)},e.prototype.scaleToRef=function(e,t){return t.copyFromFloats(this.x*e,this.y*e,this.z*e)},e.prototype.scaleAndAddToRef=function(e,t){return t.addInPlaceFromFloats(this.x*e,this.y*e,this.z*e)},e.prototype.equals=function(e){return e&&this.x===e.x&&this.y===e.y&&this.z===e.z},e.prototype.equalsWithEpsilon=function(e,t){return void 0===t&&(t=c),e&&o.a.WithinEpsilon(this.x,e.x,t)&&o.a.WithinEpsilon(this.y,e.y,t)&&o.a.WithinEpsilon(this.z,e.z,t)},e.prototype.equalsToFloats=function(e,t,i){return this.x===e&&this.y===t&&this.z===i},e.prototype.multiplyInPlace=function(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this},e.prototype.multiply=function(e){return this.multiplyByFloats(e.x,e.y,e.z)},e.prototype.multiplyToRef=function(e,t){return t.copyFromFloats(this.x*e.x,this.y*e.y,this.z*e.z)},e.prototype.multiplyByFloats=function(t,i,n){return new e(this.x*t,this.y*i,this.z*n)},e.prototype.divide=function(t){return new e(this.x/t.x,this.y/t.y,this.z/t.z)},e.prototype.divideToRef=function(e,t){return t.copyFromFloats(this.x/e.x,this.y/e.y,this.z/e.z)},e.prototype.divideInPlace=function(e){return this.divideToRef(e,this)},e.prototype.minimizeInPlace=function(e){return this.minimizeInPlaceFromFloats(e.x,e.y,e.z)},e.prototype.maximizeInPlace=function(e){return this.maximizeInPlaceFromFloats(e.x,e.y,e.z)},e.prototype.minimizeInPlaceFromFloats=function(e,t,i){return ethis.x&&(this.x=e),t>this.y&&(this.y=t),i>this.z&&(this.z=i),this},e.prototype.isNonUniformWithinEpsilon=function(e){var t=Math.abs(this.x),i=Math.abs(this.y);if(!o.a.WithinEpsilon(t,i,e))return!0;var n=Math.abs(this.z);return!o.a.WithinEpsilon(t,n,e)||!o.a.WithinEpsilon(i,n,e)},Object.defineProperty(e.prototype,"isNonUniform",{get:function(){var e=Math.abs(this.x),t=Math.abs(this.y);if(e!==t)return!0;var i=Math.abs(this.z);return e!==i||t!==i},enumerable:!0,configurable:!0}),e.prototype.floor=function(){return new e(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))},e.prototype.fract=function(){return new e(this.x-Math.floor(this.x),this.y-Math.floor(this.y),this.z-Math.floor(this.z))},e.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},e.prototype.lengthSquared=function(){return this.x*this.x+this.y*this.y+this.z*this.z},e.prototype.normalize=function(){return this.normalizeFromLength(this.length())},e.prototype.reorderInPlace=function(e){var t=this;return"xyz"===(e=e.toLowerCase())?this:(I.Vector3[0].copyFrom(this),["x","y","z"].forEach(function(i,n){t[i]=I.Vector3[0][e[n]]}),this)},e.prototype.rotateByQuaternionToRef=function(t,i){return t.toRotationMatrix(I.Matrix[0]),e.TransformCoordinatesToRef(this,I.Matrix[0],i),i},e.prototype.rotateByQuaternionAroundPointToRef=function(e,t,i){return this.subtractToRef(t,I.Vector3[0]),I.Vector3[0].rotateByQuaternionToRef(e,I.Vector3[0]),t.addToRef(I.Vector3[0],i),i},e.prototype.normalizeFromLength=function(e){return 0===e||1===e?this:this.scaleInPlace(1/e)},e.prototype.normalizeToNew=function(){var t=new e(0,0,0);return this.normalizeToRef(t),t},e.prototype.normalizeToRef=function(e){var t=this.length();return 0===t||1===t?e.copyFromFloats(this.x,this.y,this.z):this.scaleToRef(1/t,e)},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e.prototype.copyFrom=function(e){return this.copyFromFloats(e.x,e.y,e.z)},e.prototype.copyFromFloats=function(e,t,i){return this.x=e,this.y=t,this.z=i,this},e.prototype.set=function(e,t,i){return this.copyFromFloats(e,t,i)},e.prototype.setAll=function(e){return this.x=this.y=this.z=e,this},e.GetClipFactor=function(t,i,n,r){var o=e.Dot(t,n)-r;return o/(o-(e.Dot(i,n)-r))},e.GetAngleBetweenVectors=function(t,i,n){var r=t.normalizeToRef(I.Vector3[1]),o=i.normalizeToRef(I.Vector3[2]),s=e.Dot(r,o),a=I.Vector3[3];return e.CrossToRef(r,o,a),e.Dot(a,n)>0?Math.acos(s):-Math.acos(s)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1],t[i+2])},e.FromFloatArray=function(t,i){return e.FromArray(t,i)},e.FromArrayToRef=function(e,t,i){i.x=e[t],i.y=e[t+1],i.z=e[t+2]},e.FromFloatArrayToRef=function(t,i,n){return e.FromArrayToRef(t,i,n)},e.FromFloatsToRef=function(e,t,i,n){n.copyFromFloats(e,t,i)},e.Zero=function(){return new e(0,0,0)},e.One=function(){return new e(1,1,1)},e.Up=function(){return new e(0,1,0)},Object.defineProperty(e,"UpReadOnly",{get:function(){return e._UpReadOnly},enumerable:!0,configurable:!0}),e.Down=function(){return new e(0,-1,0)},e.Forward=function(){return new e(0,0,1)},e.Backward=function(){return new e(0,0,-1)},e.Right=function(){return new e(1,0,0)},e.Left=function(){return new e(-1,0,0)},e.TransformCoordinates=function(t,i){var n=e.Zero();return e.TransformCoordinatesToRef(t,i,n),n},e.TransformCoordinatesToRef=function(t,i,n){e.TransformCoordinatesFromFloatsToRef(t.x,t.y,t.z,i,n)},e.TransformCoordinatesFromFloatsToRef=function(e,t,i,n,r){var o=n.m,s=e*o[0]+t*o[4]+i*o[8]+o[12],a=e*o[1]+t*o[5]+i*o[9]+o[13],c=e*o[2]+t*o[6]+i*o[10]+o[14],l=1/(e*o[3]+t*o[7]+i*o[11]+o[15]);r.x=s*l,r.y=a*l,r.z=c*l},e.TransformNormal=function(t,i){var n=e.Zero();return e.TransformNormalToRef(t,i,n),n},e.TransformNormalToRef=function(e,t,i){this.TransformNormalFromFloatsToRef(e.x,e.y,e.z,t,i)},e.TransformNormalFromFloatsToRef=function(e,t,i,n,r){var o=n.m;r.x=e*o[0]+t*o[4]+i*o[8],r.y=e*o[1]+t*o[5]+i*o[9],r.z=e*o[2]+t*o[6]+i*o[10]},e.CatmullRom=function(t,i,n,r,o){var s=o*o,a=o*s;return new e(.5*(2*i.x+(-t.x+n.x)*o+(2*t.x-5*i.x+4*n.x-r.x)*s+(-t.x+3*i.x-3*n.x+r.x)*a),.5*(2*i.y+(-t.y+n.y)*o+(2*t.y-5*i.y+4*n.y-r.y)*s+(-t.y+3*i.y-3*n.y+r.y)*a),.5*(2*i.z+(-t.z+n.z)*o+(2*t.z-5*i.z+4*n.z-r.z)*s+(-t.z+3*i.z-3*n.z+r.z)*a))},e.Clamp=function(t,i,n){var r=new e;return e.ClampToRef(t,i,n,r),r},e.ClampToRef=function(e,t,i,n){var r=e.x;r=(r=r>i.x?i.x:r)i.y?i.y:o)i.z?i.z:s)this.x&&(this.x=e.x),e.y>this.y&&(this.y=e.y),e.z>this.z&&(this.z=e.z),e.w>this.w&&(this.w=e.w),this},e.prototype.floor=function(){return new e(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z),Math.floor(this.w))},e.prototype.fract=function(){return new e(this.x-Math.floor(this.x),this.y-Math.floor(this.y),this.z-Math.floor(this.z),this.w-Math.floor(this.w))},e.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.prototype.lengthSquared=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},e.prototype.normalize=function(){var e=this.length();return 0===e?this:this.scaleInPlace(1/e)},e.prototype.toVector3=function(){return new d(this.x,this.y,this.z)},e.prototype.clone=function(){return new e(this.x,this.y,this.z,this.w)},e.prototype.copyFrom=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},e.prototype.copyFromFloats=function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},e.prototype.set=function(e,t,i,n){return this.copyFromFloats(e,t,i,n)},e.prototype.setAll=function(e){return this.x=this.y=this.z=this.w=e,this},e.FromArray=function(t,i){return i||(i=0),new e(t[i],t[i+1],t[i+2],t[i+3])},e.FromArrayToRef=function(e,t,i){i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3]},e.FromFloatArrayToRef=function(t,i,n){e.FromArrayToRef(t,i,n)},e.FromFloatsToRef=function(e,t,i,n,r){r.x=e,r.y=t,r.z=i,r.w=n},e.Zero=function(){return new e(0,0,0,0)},e.One=function(){return new e(1,1,1,1)},e.Normalize=function(t){var i=e.Zero();return e.NormalizeToRef(t,i),i},e.NormalizeToRef=function(e,t){t.copyFrom(e),t.normalize()},e.Minimize=function(e,t){var i=e.clone();return i.minimizeInPlace(t),i},e.Maximize=function(e,t){var i=e.clone();return i.maximizeInPlace(t),i},e.Distance=function(t,i){return Math.sqrt(e.DistanceSquared(t,i))},e.DistanceSquared=function(e,t){var i=e.x-t.x,n=e.y-t.y,r=e.z-t.z,o=e.w-t.w;return i*i+n*n+r*r+o*o},e.Center=function(e,t){var i=e.add(t);return i.scaleInPlace(.5),i},e.TransformNormal=function(t,i){var n=e.Zero();return e.TransformNormalToRef(t,i,n),n},e.TransformNormalToRef=function(e,t,i){var n=t.m,r=e.x*n[0]+e.y*n[4]+e.z*n[8],o=e.x*n[1]+e.y*n[5]+e.z*n[9],s=e.x*n[2]+e.y*n[6]+e.z*n[10];i.x=r,i.y=o,i.z=s,i.w=e.w},e.TransformNormalFromFloatsToRef=function(e,t,i,n,r,o){var s=r.m;o.x=e*s[0]+t*s[4]+i*s[8],o.y=e*s[1]+t*s[5]+i*s[9],o.z=e*s[2]+t*s[6]+i*s[10],o.w=n},e.FromVector3=function(t,i){return void 0===i&&(i=0),new e(t.x,t.y,t.z,i)},e}(),p=function(){function e(e,t){this.width=e,this.height=t}return e.prototype.toString=function(){return"{W: "+this.width+", H: "+this.height+"}"},e.prototype.getClassName=function(){return"Size"},e.prototype.getHashCode=function(){var e=this.width||0;return e=397*e^(this.height||0)},e.prototype.copyFrom=function(e){this.width=e.width,this.height=e.height},e.prototype.copyFromFloats=function(e,t){return this.width=e,this.height=t,this},e.prototype.set=function(e,t){return this.copyFromFloats(e,t)},e.prototype.multiplyByFloats=function(t,i){return new e(this.width*t,this.height*i)},e.prototype.clone=function(){return new e(this.width,this.height)},e.prototype.equals=function(e){return!!e&&(this.width===e.width&&this.height===e.height)},Object.defineProperty(e.prototype,"surface",{get:function(){return this.width*this.height},enumerable:!0,configurable:!0}),e.Zero=function(){return new e(0,0)},e.prototype.add=function(t){return new e(this.width+t.width,this.height+t.height)},e.prototype.subtract=function(t){return new e(this.width-t.width,this.height-t.height)},e.Lerp=function(t,i,n){return new e(t.width+(i.width-t.width)*n,t.height+(i.height-t.height)*n)},e}(),_=function(){function e(e,t,i,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),this.x=e,this.y=t,this.z=i,this.w=n}return e.prototype.toString=function(){return"{X: "+this.x+" Y:"+this.y+" Z:"+this.z+" W:"+this.w+"}"},e.prototype.getClassName=function(){return"Quaternion"},e.prototype.getHashCode=function(){var e=this.x||0;return e=397*(e=397*(e=397*e^(this.y||0))^(this.z||0))^(this.w||0)},e.prototype.asArray=function(){return[this.x,this.y,this.z,this.w]},e.prototype.equals=function(e){return e&&this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w},e.prototype.clone=function(){return new e(this.x,this.y,this.z,this.w)},e.prototype.copyFrom=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},e.prototype.copyFromFloats=function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},e.prototype.set=function(e,t,i,n){return this.copyFromFloats(e,t,i,n)},e.prototype.add=function(t){return new e(this.x+t.x,this.y+t.y,this.z+t.z,this.w+t.w)},e.prototype.addInPlace=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this},e.prototype.subtract=function(t){return new e(this.x-t.x,this.y-t.y,this.z-t.z,this.w-t.w)},e.prototype.scale=function(t){return new e(this.x*t,this.y*t,this.z*t,this.w*t)},e.prototype.scaleToRef=function(e,t){return t.x=this.x*e,t.y=this.y*e,t.z=this.z*e,t.w=this.w*e,this},e.prototype.scaleInPlace=function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.x+=this.x*e,t.y+=this.y*e,t.z+=this.z*e,t.w+=this.w*e,this},e.prototype.multiply=function(t){var i=new e(0,0,0,1);return this.multiplyToRef(t,i),i},e.prototype.multiplyToRef=function(e,t){var i=this.x*e.w+this.y*e.z-this.z*e.y+this.w*e.x,n=-this.x*e.z+this.y*e.w+this.z*e.x+this.w*e.y,r=this.x*e.y-this.y*e.x+this.z*e.w+this.w*e.z,o=-this.x*e.x-this.y*e.y-this.z*e.z+this.w*e.w;return t.copyFromFloats(i,n,r,o),this},e.prototype.multiplyInPlace=function(e){return this.multiplyToRef(e,this),this},e.prototype.conjugateToRef=function(e){return e.copyFromFloats(-this.x,-this.y,-this.z,this.w),this},e.prototype.conjugateInPlace=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},e.prototype.conjugate=function(){return new e(-this.x,-this.y,-this.z,this.w)},e.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.prototype.normalize=function(){var e=this.length();if(0===e)return this;var t=1/e;return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},e.prototype.toEulerAngles=function(e){void 0===e&&(e="YZX");var t=d.Zero();return this.toEulerAnglesToRef(t),t},e.prototype.toEulerAnglesToRef=function(e){var t=this.z,i=this.x,n=this.y,r=this.w,o=r*r,s=t*t,a=i*i,c=n*n,l=n*t-i*r;return l<-.4999999?(e.y=2*Math.atan2(n,r),e.x=Math.PI/2,e.z=0):l>.4999999?(e.y=2*Math.atan2(n,r),e.x=-Math.PI/2,e.z=0):(e.z=Math.atan2(2*(i*n+t*r),-s-a+c+o),e.x=Math.asin(-2*(t*n-i*r)),e.y=Math.atan2(2*(t*i+n*r),s-a-c+o)),this},e.prototype.toRotationMatrix=function(e){return g.FromQuaternionToRef(this,e),this},e.prototype.fromRotationMatrix=function(t){return e.FromRotationMatrixToRef(t,this),this},e.FromRotationMatrix=function(t){var i=new e;return e.FromRotationMatrixToRef(t,i),i},e.FromRotationMatrixToRef=function(e,t){var i,n=e.m,r=n[0],o=n[4],s=n[8],a=n[1],c=n[5],l=n[9],u=n[2],h=n[6],d=n[10],f=r+c+d;f>0?(i=.5/Math.sqrt(f+1),t.w=.25/i,t.x=(h-l)*i,t.y=(s-u)*i,t.z=(a-o)*i):r>c&&r>d?(i=2*Math.sqrt(1+r-c-d),t.w=(h-l)/i,t.x=.25*i,t.y=(o+a)/i,t.z=(s+u)/i):c>d?(i=2*Math.sqrt(1+c-r-d),t.w=(s-u)/i,t.x=(o+a)/i,t.y=.25*i,t.z=(l+h)/i):(i=2*Math.sqrt(1+d-r-c),t.w=(a-o)/i,t.x=(s+u)/i,t.y=(l+h)/i,t.z=.25*i)},e.Dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},e.AreClose=function(t,i){return e.Dot(t,i)>=0},e.Zero=function(){return new e(0,0,0,0)},e.Inverse=function(t){return new e(-t.x,-t.y,-t.z,t.w)},e.InverseToRef=function(e,t){return t.set(-e.x,-e.y,-e.z,e.w),t},e.Identity=function(){return new e(0,0,0,1)},e.IsIdentity=function(e){return e&&0===e.x&&0===e.y&&0===e.z&&1===e.w},e.RotationAxis=function(t,i){return e.RotationAxisToRef(t,i,new e)},e.RotationAxisToRef=function(e,t,i){var n=Math.sin(t/2);return e.normalize(),i.w=Math.cos(t/2),i.x=e.x*n,i.y=e.y*n,i.z=e.z*n,i},e.FromArray=function(t,i){return i||(i=0),new e(t[i],t[i+1],t[i+2],t[i+3])},e.FromEulerAngles=function(t,i,n){var r=new e;return e.RotationYawPitchRollToRef(i,t,n,r),r},e.FromEulerAnglesToRef=function(t,i,n,r){return e.RotationYawPitchRollToRef(i,t,n,r),r},e.FromEulerVector=function(t){var i=new e;return e.RotationYawPitchRollToRef(t.y,t.x,t.z,i),i},e.FromEulerVectorToRef=function(t,i){return e.RotationYawPitchRollToRef(t.y,t.x,t.z,i),i},e.RotationYawPitchRoll=function(t,i,n){var r=new e;return e.RotationYawPitchRollToRef(t,i,n,r),r},e.RotationYawPitchRollToRef=function(e,t,i,n){var r=.5*i,o=.5*t,s=.5*e,a=Math.sin(r),c=Math.cos(r),l=Math.sin(o),u=Math.cos(o),h=Math.sin(s),d=Math.cos(s);n.x=d*l*c+h*u*a,n.y=h*u*c-d*l*a,n.z=d*u*a-h*l*c,n.w=d*u*c+h*l*a},e.RotationAlphaBetaGamma=function(t,i,n){var r=new e;return e.RotationAlphaBetaGammaToRef(t,i,n,r),r},e.RotationAlphaBetaGammaToRef=function(e,t,i,n){var r=.5*(i+e),o=.5*(i-e),s=.5*t;n.x=Math.cos(o)*Math.sin(s),n.y=Math.sin(o)*Math.sin(s),n.z=Math.sin(r)*Math.cos(s),n.w=Math.cos(r)*Math.cos(s)},e.RotationQuaternionFromAxis=function(t,i,n){var r=new e(0,0,0,0);return e.RotationQuaternionFromAxisToRef(t,i,n,r),r},e.RotationQuaternionFromAxisToRef=function(t,i,n,r){var o=I.Matrix[0];g.FromXYZAxesToRef(t.normalize(),i.normalize(),n.normalize(),o),e.FromRotationMatrixToRef(o,r)},e.Slerp=function(t,i,n){var r=e.Identity();return e.SlerpToRef(t,i,n,r),r},e.SlerpToRef=function(e,t,i,n){var r,o,s=e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w,a=!1;if(s<0&&(a=!0,s=-s),s>.999999)o=1-i,r=a?-i:i;else{var c=Math.acos(s),l=1/Math.sin(c);o=Math.sin((1-i)*c)*l,r=a?-Math.sin(i*c)*l:Math.sin(i*c)*l}n.x=o*e.x+r*t.x,n.y=o*e.y+r*t.y,n.z=o*e.z+r*t.z,n.w=o*e.w+r*t.w},e.Hermite=function(t,i,n,r,o){var s=o*o,a=o*s,c=2*a-3*s+1,l=-2*a+3*s,u=a-2*s+o,h=a-s;return new e(t.x*c+n.x*l+i.x*u+r.x*h,t.y*c+n.y*l+i.y*u+r.y*h,t.z*c+n.z*l+i.z*u+r.z*h,t.w*c+n.w*l+i.w*u+r.w*h)},e}(),g=function(){function e(){this._isIdentity=!1,this._isIdentityDirty=!0,this._isIdentity3x2=!0,this._isIdentity3x2Dirty=!0,this.updateFlag=-1,this._m=new Float32Array(16),this._updateIdentityStatus(!1)}return Object.defineProperty(e.prototype,"m",{get:function(){return this._m},enumerable:!0,configurable:!0}),e.prototype._markAsUpdated=function(){this.updateFlag=e._updateFlagSeed++,this._isIdentity=!1,this._isIdentity3x2=!1,this._isIdentityDirty=!0,this._isIdentity3x2Dirty=!0},e.prototype._updateIdentityStatus=function(t,i,n,r){void 0===i&&(i=!1),void 0===n&&(n=!1),void 0===r&&(r=!0),this.updateFlag=e._updateFlagSeed++,this._isIdentity=t,this._isIdentity3x2=t||n,this._isIdentityDirty=!this._isIdentity&&i,this._isIdentity3x2Dirty=!this._isIdentity3x2&&r},e.prototype.isIdentity=function(){if(this._isIdentityDirty){this._isIdentityDirty=!1;var e=this._m;this._isIdentity=1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15]}return this._isIdentity},e.prototype.isIdentityAs3x2=function(){return this._isIdentity3x2Dirty&&(this._isIdentity3x2Dirty=!1,1!==this._m[0]||1!==this._m[5]||1!==this._m[15]?this._isIdentity3x2=!1:0!==this._m[1]||0!==this._m[2]||0!==this._m[3]||0!==this._m[4]||0!==this._m[6]||0!==this._m[7]||0!==this._m[8]||0!==this._m[9]||0!==this._m[10]||0!==this._m[11]||0!==this._m[12]||0!==this._m[13]||0!==this._m[14]?this._isIdentity3x2=!1:this._isIdentity3x2=!0),this._isIdentity3x2},e.prototype.determinant=function(){if(!0===this._isIdentity)return 1;var e=this._m,t=e[0],i=e[1],n=e[2],r=e[3],o=e[4],s=e[5],a=e[6],c=e[7],l=e[8],u=e[9],h=e[10],d=e[11],f=e[12],p=e[13],_=e[14],g=e[15],m=h*g-_*d,v=u*g-p*d,y=u*_-p*h,b=l*g-f*d,T=l*_-h*f,E=l*p-f*u;return t*+(s*m-a*v+c*y)+i*-(o*m-a*b+c*T)+n*+(o*v-s*b+c*E)+r*-(o*y-s*T+a*E)},e.prototype.toArray=function(){return this._m},e.prototype.asArray=function(){return this._m},e.prototype.invert=function(){return this.invertToRef(this),this},e.prototype.reset=function(){return e.FromValuesToRef(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,this),this._updateIdentityStatus(!1),this},e.prototype.add=function(t){var i=new e;return this.addToRef(t,i),i},e.prototype.addToRef=function(e,t){for(var i=this._m,n=t._m,r=e.m,o=0;o<16;o++)n[o]=i[o]+r[o];return t._markAsUpdated(),this},e.prototype.addToSelf=function(e){for(var t=this._m,i=e.m,n=0;n<16;n++)t[n]+=i[n];return this._markAsUpdated(),this},e.prototype.invertToRef=function(t){if(!0===this._isIdentity)return e.IdentityToRef(t),this;var i=this._m,n=i[0],r=i[1],o=i[2],s=i[3],a=i[4],c=i[5],l=i[6],u=i[7],h=i[8],d=i[9],f=i[10],p=i[11],_=i[12],g=i[13],m=i[14],v=i[15],y=f*v-m*p,b=d*v-g*p,T=d*m-g*f,E=h*v-_*p,A=h*m-f*_,x=h*g-_*d,R=+(c*y-l*b+u*T),P=-(a*y-l*E+u*A),S=+(a*b-c*E+u*x),C=-(a*T-c*A+l*x),M=n*R+r*P+o*S+s*C;if(0===M)return t.copyFrom(this),this;var O=1/M,I=l*v-m*u,D=c*v-g*u,L=c*m-g*l,w=a*v-_*u,F=a*m-_*l,N=a*g-_*c,B=l*p-f*u,U=c*p-d*u,V=c*f-d*l,G=a*p-h*u,k=a*f-h*l,z=a*d-h*c,j=-(r*y-o*b+s*T),H=+(n*y-o*E+s*A),W=-(n*b-r*E+s*x),X=+(n*T-r*A+o*x),Y=+(r*I-o*D+s*L),K=-(n*I-o*w+s*F),Q=+(n*D-r*w+s*N),q=-(n*L-r*F+o*N),Z=-(r*B-o*U+s*V),J=+(n*B-o*G+s*k),$=-(n*U-r*G+s*z),ee=+(n*V-r*k+o*z);return e.FromValuesToRef(R*O,j*O,Y*O,Z*O,P*O,H*O,K*O,J*O,S*O,W*O,Q*O,$*O,C*O,X*O,q*O,ee*O,t),this},e.prototype.addAtIndex=function(e,t){return this._m[e]+=t,this._markAsUpdated(),this},e.prototype.multiplyAtIndex=function(e,t){return this._m[e]*=t,this._markAsUpdated(),this},e.prototype.setTranslationFromFloats=function(e,t,i){return this._m[12]=e,this._m[13]=t,this._m[14]=i,this._markAsUpdated(),this},e.prototype.addTranslationFromFloats=function(e,t,i){return this._m[12]+=e,this._m[13]+=t,this._m[14]+=i,this._markAsUpdated(),this},e.prototype.setTranslation=function(e){return this.setTranslationFromFloats(e.x,e.y,e.z)},e.prototype.getTranslation=function(){return new d(this._m[12],this._m[13],this._m[14])},e.prototype.getTranslationToRef=function(e){return e.x=this._m[12],e.y=this._m[13],e.z=this._m[14],this},e.prototype.removeRotationAndScaling=function(){var t=this.m;return e.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,t[12],t[13],t[14],t[15],this),this._updateIdentityStatus(0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]),this},e.prototype.multiply=function(t){var i=new e;return this.multiplyToRef(t,i),i},e.prototype.copyFrom=function(e){e.copyToArray(this._m);var t=e;return this._updateIdentityStatus(t._isIdentity,t._isIdentityDirty,t._isIdentity3x2,t._isIdentity3x2Dirty),this},e.prototype.copyToArray=function(e,t){void 0===t&&(t=0);for(var i=0;i<16;i++)e[t+i]=this._m[i];return this},e.prototype.multiplyToRef=function(e,t){return this._isIdentity?(t.copyFrom(e),this):e._isIdentity?(t.copyFrom(this),this):(this.multiplyToArray(e,t._m,0),t._markAsUpdated(),this)},e.prototype.multiplyToArray=function(e,t,i){var n=this._m,r=e.m,o=n[0],s=n[1],a=n[2],c=n[3],l=n[4],u=n[5],h=n[6],d=n[7],f=n[8],p=n[9],_=n[10],g=n[11],m=n[12],v=n[13],y=n[14],b=n[15],T=r[0],E=r[1],A=r[2],x=r[3],R=r[4],P=r[5],S=r[6],C=r[7],M=r[8],O=r[9],I=r[10],D=r[11],L=r[12],w=r[13],F=r[14],N=r[15];return t[i]=o*T+s*R+a*M+c*L,t[i+1]=o*E+s*P+a*O+c*w,t[i+2]=o*A+s*S+a*I+c*F,t[i+3]=o*x+s*C+a*D+c*N,t[i+4]=l*T+u*R+h*M+d*L,t[i+5]=l*E+u*P+h*O+d*w,t[i+6]=l*A+u*S+h*I+d*F,t[i+7]=l*x+u*C+h*D+d*N,t[i+8]=f*T+p*R+_*M+g*L,t[i+9]=f*E+p*P+_*O+g*w,t[i+10]=f*A+p*S+_*I+g*F,t[i+11]=f*x+p*C+_*D+g*N,t[i+12]=m*T+v*R+y*M+b*L,t[i+13]=m*E+v*P+y*O+b*w,t[i+14]=m*A+v*S+y*I+b*F,t[i+15]=m*x+v*C+y*D+b*N,this},e.prototype.equals=function(e){var t=e;if(!t)return!1;if((this._isIdentity||t._isIdentity)&&!this._isIdentityDirty&&!t._isIdentityDirty)return this._isIdentity&&t._isIdentity;var i=this.m,n=t.m;return i[0]===n[0]&&i[1]===n[1]&&i[2]===n[2]&&i[3]===n[3]&&i[4]===n[4]&&i[5]===n[5]&&i[6]===n[6]&&i[7]===n[7]&&i[8]===n[8]&&i[9]===n[9]&&i[10]===n[10]&&i[11]===n[11]&&i[12]===n[12]&&i[13]===n[13]&&i[14]===n[14]&&i[15]===n[15]},e.prototype.clone=function(){var t=new e;return t.copyFrom(this),t},e.prototype.getClassName=function(){return"Matrix"},e.prototype.getHashCode=function(){for(var e=this._m[0]||0,t=1;t<16;t++)e=397*e^(this._m[t]||0);return e},e.prototype.decompose=function(t,i,n){if(this._isIdentity)return n&&n.setAll(0),t&&t.setAll(1),i&&i.copyFromFloats(0,0,0,1),!0;var r=this._m;if(n&&n.copyFromFloats(r[12],r[13],r[14]),(t=t||I.Vector3[0]).x=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]),t.y=Math.sqrt(r[4]*r[4]+r[5]*r[5]+r[6]*r[6]),t.z=Math.sqrt(r[8]*r[8]+r[9]*r[9]+r[10]*r[10]),this.determinant()<=0&&(t.y*=-1),0===t.x||0===t.y||0===t.z)return i&&i.copyFromFloats(0,0,0,1),!1;if(i){var o=1/t.x,s=1/t.y,a=1/t.z;e.FromValuesToRef(r[0]*o,r[1]*o,r[2]*o,0,r[4]*s,r[5]*s,r[6]*s,0,r[8]*a,r[9]*a,r[10]*a,0,0,0,0,1,I.Matrix[0]),_.FromRotationMatrixToRef(I.Matrix[0],i)}return!0},e.prototype.getRow=function(e){if(e<0||e>3)return null;var t=4*e;return new f(this._m[t+0],this._m[t+1],this._m[t+2],this._m[t+3])},e.prototype.setRow=function(e,t){return this.setRowFromFloats(e,t.x,t.y,t.z,t.w)},e.prototype.transpose=function(){return e.Transpose(this)},e.prototype.transposeToRef=function(t){return e.TransposeToRef(this,t),this},e.prototype.setRowFromFloats=function(e,t,i,n,r){if(e<0||e>3)return this;var o=4*e;return this._m[o+0]=t,this._m[o+1]=i,this._m[o+2]=n,this._m[o+3]=r,this._markAsUpdated(),this},e.prototype.scale=function(t){var i=new e;return this.scaleToRef(t,i),i},e.prototype.scaleToRef=function(e,t){for(var i=0;i<16;i++)t._m[i]=this._m[i]*e;return t._markAsUpdated(),this},e.prototype.scaleAndAddToRef=function(e,t){for(var i=0;i<16;i++)t._m[i]+=this._m[i]*e;return t._markAsUpdated(),this},e.prototype.toNormalMatrix=function(t){var i=I.Matrix[0];this.invertToRef(i),i.transposeToRef(t);var n=t._m;e.FromValuesToRef(n[0],n[1],n[2],0,n[4],n[5],n[6],0,n[8],n[9],n[10],0,0,0,0,1,t)},e.prototype.getRotationMatrix=function(){var t=new e;return this.getRotationMatrixToRef(t),t},e.prototype.getRotationMatrixToRef=function(t){var i=I.Vector3[0];if(!this.decompose(i))return e.IdentityToRef(t),this;var n=this._m,r=1/i.x,o=1/i.y,s=1/i.z;return e.FromValuesToRef(n[0]*r,n[1]*r,n[2]*r,0,n[4]*o,n[5]*o,n[6]*o,0,n[8]*s,n[9]*s,n[10]*s,0,0,0,0,1,t),this},e.prototype.toggleModelMatrixHandInPlace=function(){var e=this._m;e[2]*=-1,e[6]*=-1,e[8]*=-1,e[9]*=-1,e[14]*=-1,this._markAsUpdated()},e.prototype.toggleProjectionMatrixHandInPlace=function(){var e=this._m;e[8]*=-1,e[9]*=-1,e[10]*=-1,e[11]*=-1,this._markAsUpdated()},e.FromArray=function(t,i){void 0===i&&(i=0);var n=new e;return e.FromArrayToRef(t,i,n),n},e.FromArrayToRef=function(e,t,i){for(var n=0;n<16;n++)i._m[n]=e[n+t];i._markAsUpdated()},e.FromFloat32ArrayToRefScaled=function(e,t,i,n){for(var r=0;r<16;r++)n._m[r]=e[r+t]*i;n._markAsUpdated()},Object.defineProperty(e,"IdentityReadOnly",{get:function(){return e._identityReadOnly},enumerable:!0,configurable:!0}),e.FromValuesToRef=function(e,t,i,n,r,o,s,a,c,l,u,h,d,f,p,_,g){var m=g._m;m[0]=e,m[1]=t,m[2]=i,m[3]=n,m[4]=r,m[5]=o,m[6]=s,m[7]=a,m[8]=c,m[9]=l,m[10]=u,m[11]=h,m[12]=d,m[13]=f,m[14]=p,m[15]=_,g._markAsUpdated()},e.FromValues=function(t,i,n,r,o,s,a,c,l,u,h,d,f,p,_,g){var m=new e,v=m._m;return v[0]=t,v[1]=i,v[2]=n,v[3]=r,v[4]=o,v[5]=s,v[6]=a,v[7]=c,v[8]=l,v[9]=u,v[10]=h,v[11]=d,v[12]=f,v[13]=p,v[14]=_,v[15]=g,m._markAsUpdated(),m},e.Compose=function(t,i,n){var r=new e;return e.ComposeToRef(t,i,n,r),r},e.ComposeToRef=function(e,t,i,n){var r=n._m,o=t.x,s=t.y,a=t.z,c=t.w,l=o+o,u=s+s,h=a+a,d=o*l,f=o*u,p=o*h,_=s*u,g=s*h,m=a*h,v=c*l,y=c*u,b=c*h,T=e.x,E=e.y,A=e.z;r[0]=(1-(_+m))*T,r[1]=(f+b)*T,r[2]=(p-y)*T,r[3]=0,r[4]=(f-b)*E,r[5]=(1-(d+m))*E,r[6]=(g+v)*E,r[7]=0,r[8]=(p+y)*A,r[9]=(g-v)*A,r[10]=(1-(d+_))*A,r[11]=0,r[12]=i.x,r[13]=i.y,r[14]=i.z,r[15]=1,n._markAsUpdated()},e.Identity=function(){var t=e.FromValues(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return t._updateIdentityStatus(!0),t},e.IdentityToRef=function(t){e.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,t),t._updateIdentityStatus(!0)},e.Zero=function(){var t=e.FromValues(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return t._updateIdentityStatus(!1),t},e.RotationX=function(t){var i=new e;return e.RotationXToRef(t,i),i},e.Invert=function(t){var i=new e;return t.invertToRef(i),i},e.RotationXToRef=function(t,i){var n=Math.sin(t),r=Math.cos(t);e.FromValuesToRef(1,0,0,0,0,r,n,0,0,-n,r,0,0,0,0,1,i),i._updateIdentityStatus(1===r&&0===n)},e.RotationY=function(t){var i=new e;return e.RotationYToRef(t,i),i},e.RotationYToRef=function(t,i){var n=Math.sin(t),r=Math.cos(t);e.FromValuesToRef(r,0,-n,0,0,1,0,0,n,0,r,0,0,0,0,1,i),i._updateIdentityStatus(1===r&&0===n)},e.RotationZ=function(t){var i=new e;return e.RotationZToRef(t,i),i},e.RotationZToRef=function(t,i){var n=Math.sin(t),r=Math.cos(t);e.FromValuesToRef(r,n,0,0,-n,r,0,0,0,0,1,0,0,0,0,1,i),i._updateIdentityStatus(1===r&&0===n)},e.RotationAxis=function(t,i){var n=new e;return e.RotationAxisToRef(t,i,n),n},e.RotationAxisToRef=function(e,t,i){var n=Math.sin(-t),r=Math.cos(-t),o=1-r;e.normalize();var s=i._m;s[0]=e.x*e.x*o+r,s[1]=e.x*e.y*o-e.z*n,s[2]=e.x*e.z*o+e.y*n,s[3]=0,s[4]=e.y*e.x*o+e.z*n,s[5]=e.y*e.y*o+r,s[6]=e.y*e.z*o-e.x*n,s[7]=0,s[8]=e.z*e.x*o-e.y*n,s[9]=e.z*e.y*o+e.x*n,s[10]=e.z*e.z*o+r,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,i._markAsUpdated()},e.RotationAlignToRef=function(e,t,i){var n=d.Cross(t,e),r=d.Dot(t,e),o=1/(1+r),s=i._m;s[0]=n.x*n.x*o+r,s[1]=n.y*n.x*o-n.z,s[2]=n.z*n.x*o+n.y,s[3]=0,s[4]=n.x*n.y*o+n.z,s[5]=n.y*n.y*o+r,s[6]=n.z*n.y*o-n.x,s[7]=0,s[8]=n.x*n.z*o-n.y,s[9]=n.y*n.z*o+n.x,s[10]=n.z*n.z*o+r,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,i._markAsUpdated()},e.RotationYawPitchRoll=function(t,i,n){var r=new e;return e.RotationYawPitchRollToRef(t,i,n,r),r},e.RotationYawPitchRollToRef=function(e,t,i,n){_.RotationYawPitchRollToRef(e,t,i,I.Quaternion[0]),I.Quaternion[0].toRotationMatrix(n)},e.Scaling=function(t,i,n){var r=new e;return e.ScalingToRef(t,i,n,r),r},e.ScalingToRef=function(t,i,n,r){e.FromValuesToRef(t,0,0,0,0,i,0,0,0,0,n,0,0,0,0,1,r),r._updateIdentityStatus(1===t&&1===i&&1===n)},e.Translation=function(t,i,n){var r=new e;return e.TranslationToRef(t,i,n,r),r},e.TranslationToRef=function(t,i,n,r){e.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,t,i,n,1,r),r._updateIdentityStatus(0===t&&0===i&&0===n)},e.Lerp=function(t,i,n){var r=new e;return e.LerpToRef(t,i,n,r),r},e.LerpToRef=function(e,t,i,n){for(var r=n._m,o=e.m,s=t.m,a=0;a<16;a++)r[a]=o[a]*(1-i)+s[a]*i;n._markAsUpdated()},e.DecomposeLerp=function(t,i,n){var r=new e;return e.DecomposeLerpToRef(t,i,n,r),r},e.DecomposeLerpToRef=function(t,i,n,r){var o=I.Vector3[0],s=I.Quaternion[0],a=I.Vector3[1];t.decompose(o,s,a);var c=I.Vector3[2],l=I.Quaternion[1],u=I.Vector3[3];i.decompose(c,l,u);var h=I.Vector3[4];d.LerpToRef(o,c,n,h);var f=I.Quaternion[2];_.SlerpToRef(s,l,n,f);var p=I.Vector3[5];d.LerpToRef(a,u,n,p),e.ComposeToRef(h,f,p,r)},e.LookAtLH=function(t,i,n){var r=new e;return e.LookAtLHToRef(t,i,n,r),r},e.LookAtLHToRef=function(t,i,n,r){var o=I.Vector3[0],s=I.Vector3[1],a=I.Vector3[2];i.subtractToRef(t,a),a.normalize(),d.CrossToRef(n,a,o);var c=o.lengthSquared();0===c?o.x=1:o.normalizeFromLength(Math.sqrt(c)),d.CrossToRef(a,o,s),s.normalize();var l=-d.Dot(o,t),u=-d.Dot(s,t),h=-d.Dot(a,t);e.FromValuesToRef(o.x,s.x,a.x,0,o.y,s.y,a.y,0,o.z,s.z,a.z,0,l,u,h,1,r)},e.LookAtRH=function(t,i,n){var r=new e;return e.LookAtRHToRef(t,i,n,r),r},e.LookAtRHToRef=function(t,i,n,r){var o=I.Vector3[0],s=I.Vector3[1],a=I.Vector3[2];t.subtractToRef(i,a),a.normalize(),d.CrossToRef(n,a,o);var c=o.lengthSquared();0===c?o.x=1:o.normalizeFromLength(Math.sqrt(c)),d.CrossToRef(a,o,s),s.normalize();var l=-d.Dot(o,t),u=-d.Dot(s,t),h=-d.Dot(a,t);e.FromValuesToRef(o.x,s.x,a.x,0,o.y,s.y,a.y,0,o.z,s.z,a.z,0,l,u,h,1,r)},e.OrthoLH=function(t,i,n,r){var o=new e;return e.OrthoLHToRef(t,i,n,r,o),o},e.OrthoLHToRef=function(t,i,n,r,o){var s=2/t,a=2/i,c=2/(r-n),l=-(r+n)/(r-n);e.FromValuesToRef(s,0,0,0,0,a,0,0,0,0,c,0,0,0,l,1,o),o._updateIdentityStatus(1===s&&1===a&&1===c&&0===l)},e.OrthoOffCenterLH=function(t,i,n,r,o,s){var a=new e;return e.OrthoOffCenterLHToRef(t,i,n,r,o,s,a),a},e.OrthoOffCenterLHToRef=function(t,i,n,r,o,s,a){var c=2/(i-t),l=2/(r-n),u=2/(s-o),h=-(s+o)/(s-o),d=(t+i)/(t-i),f=(r+n)/(n-r);e.FromValuesToRef(c,0,0,0,0,l,0,0,0,0,u,0,d,f,h,1,a),a._markAsUpdated()},e.OrthoOffCenterRH=function(t,i,n,r,o,s){var a=new e;return e.OrthoOffCenterRHToRef(t,i,n,r,o,s,a),a},e.OrthoOffCenterRHToRef=function(t,i,n,r,o,s,a){e.OrthoOffCenterLHToRef(t,i,n,r,o,s,a),a._m[10]*=-1},e.PerspectiveLH=function(t,i,n,r){var o=new e,s=2*n/t,a=2*n/i,c=(r+n)/(r-n),l=-2*r*n/(r-n);return e.FromValuesToRef(s,0,0,0,0,a,0,0,0,0,c,1,0,0,l,0,o),o._updateIdentityStatus(!1),o},e.PerspectiveFovLH=function(t,i,n,r){var o=new e;return e.PerspectiveFovLHToRef(t,i,n,r,o),o},e.PerspectiveFovLHToRef=function(t,i,n,r,o,s){void 0===s&&(s=!0);var a=n,c=r,l=1/Math.tan(.5*t),u=s?l/i:l,h=s?l:l*i,d=(c+a)/(c-a),f=-2*c*a/(c-a);e.FromValuesToRef(u,0,0,0,0,h,0,0,0,0,d,1,0,0,f,0,o),o._updateIdentityStatus(!1)},e.PerspectiveFovRH=function(t,i,n,r){var o=new e;return e.PerspectiveFovRHToRef(t,i,n,r,o),o},e.PerspectiveFovRHToRef=function(t,i,n,r,o,s){void 0===s&&(s=!0);var a=n,c=r,l=1/Math.tan(.5*t),u=s?l/i:l,h=s?l:l*i,d=-(c+a)/(c-a),f=-2*c*a/(c-a);e.FromValuesToRef(u,0,0,0,0,h,0,0,0,0,d,-1,0,0,f,0,o),o._updateIdentityStatus(!1)},e.PerspectiveFovWebVRToRef=function(e,t,i,n,r){void 0===r&&(r=!1);var o=r?-1:1,s=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),c=Math.tan(e.leftDegrees*Math.PI/180),l=Math.tan(e.rightDegrees*Math.PI/180),u=2/(c+l),h=2/(s+a),d=n._m;d[0]=u,d[1]=d[2]=d[3]=d[4]=0,d[5]=h,d[6]=d[7]=0,d[8]=(c-l)*u*.5,d[9]=-(s-a)*h*.5,d[10]=-i/(t-i),d[11]=1*o,d[12]=d[13]=d[15]=0,d[14]=-2*i*t/(i-t),n._markAsUpdated()},e.GetFinalMatrix=function(t,i,n,r,o,s){var a=t.width,c=t.height,l=t.x,u=t.y,h=e.FromValues(a/2,0,0,0,0,-c/2,0,0,0,0,s-o,0,l+a/2,c/2+u,o,1),d=I.Matrix[0];return i.multiplyToRef(n,d),d.multiplyToRef(r,d),d.multiply(h)},e.GetAsMatrix2x2=function(e){var t=e.m;return new Float32Array([t[0],t[1],t[4],t[5]])},e.GetAsMatrix3x3=function(e){var t=e.m;return new Float32Array([t[0],t[1],t[2],t[4],t[5],t[6],t[8],t[9],t[10]])},e.Transpose=function(t){var i=new e;return e.TransposeToRef(t,i),i},e.TransposeToRef=function(e,t){var i=t._m,n=e.m;i[0]=n[0],i[1]=n[4],i[2]=n[8],i[3]=n[12],i[4]=n[1],i[5]=n[5],i[6]=n[9],i[7]=n[13],i[8]=n[2],i[9]=n[6],i[10]=n[10],i[11]=n[14],i[12]=n[3],i[13]=n[7],i[14]=n[11],i[15]=n[15],t._updateIdentityStatus(e._isIdentity,e._isIdentityDirty)},e.Reflection=function(t){var i=new e;return e.ReflectionToRef(t,i),i},e.ReflectionToRef=function(t,i){t.normalize();var n=t.normal.x,r=t.normal.y,o=t.normal.z,s=-2*n,a=-2*r,c=-2*o;e.FromValuesToRef(s*n+1,a*n,c*n,0,s*r,a*r+1,c*r,0,s*o,a*o,c*o+1,0,s*t.d,a*t.d,c*t.d,1,i)},e.FromXYZAxesToRef=function(t,i,n,r){e.FromValuesToRef(t.x,t.y,t.z,0,i.x,i.y,i.z,0,n.x,n.y,n.z,0,0,0,0,1,r)},e.FromQuaternionToRef=function(e,t){var i=e.x*e.x,n=e.y*e.y,r=e.z*e.z,o=e.x*e.y,s=e.z*e.w,a=e.z*e.x,c=e.y*e.w,l=e.y*e.z,u=e.x*e.w;t._m[0]=1-2*(n+r),t._m[1]=2*(o+s),t._m[2]=2*(a-c),t._m[3]=0,t._m[4]=2*(o-s),t._m[5]=1-2*(r+i),t._m[6]=2*(l+u),t._m[7]=0,t._m[8]=2*(a+c),t._m[9]=2*(l-u),t._m[10]=1-2*(n+i),t._m[11]=0,t._m[12]=0,t._m[13]=0,t._m[14]=0,t._m[15]=1,t._markAsUpdated()},e._updateFlagSeed=0,e._identityReadOnly=e.Identity(),e}(),m=function(){function e(e,t,i,n){this.normal=new d(e,t,i),this.d=n}return e.prototype.asArray=function(){return[this.normal.x,this.normal.y,this.normal.z,this.d]},e.prototype.clone=function(){return new e(this.normal.x,this.normal.y,this.normal.z,this.d)},e.prototype.getClassName=function(){return"Plane"},e.prototype.getHashCode=function(){var e=this.normal.getHashCode();return e=397*e^(this.d||0)},e.prototype.normalize=function(){var e=Math.sqrt(this.normal.x*this.normal.x+this.normal.y*this.normal.y+this.normal.z*this.normal.z),t=0;return 0!==e&&(t=1/e),this.normal.x*=t,this.normal.y*=t,this.normal.z*=t,this.d*=t,this},e.prototype.transform=function(t){var i=I.Matrix[0];g.TransposeToRef(t,i);var n=i.m,r=this.normal.x,o=this.normal.y,s=this.normal.z,a=this.d;return new e(r*n[0]+o*n[1]+s*n[2]+a*n[3],r*n[4]+o*n[5]+s*n[6]+a*n[7],r*n[8]+o*n[9]+s*n[10]+a*n[11],r*n[12]+o*n[13]+s*n[14]+a*n[15])},e.prototype.dotCoordinate=function(e){return this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z+this.d},e.prototype.copyFromPoints=function(e,t,i){var n,r=t.x-e.x,o=t.y-e.y,s=t.z-e.z,a=i.x-e.x,c=i.y-e.y,l=i.z-e.z,u=o*l-s*c,h=s*a-r*l,d=r*c-o*a,f=Math.sqrt(u*u+h*h+d*d);return n=0!==f?1/f:0,this.normal.x=u*n,this.normal.y=h*n,this.normal.z=d*n,this.d=-(this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z),this},e.prototype.isFrontFacingTo=function(e,t){return d.Dot(this.normal,e)<=t},e.prototype.signedDistanceTo=function(e){return d.Dot(e,this.normal)+this.d},e.FromArray=function(t){return new e(t[0],t[1],t[2],t[3])},e.FromPoints=function(t,i,n){var r=new e(0,0,0,0);return r.copyFromPoints(t,i,n),r},e.FromPositionAndNormal=function(t,i){var n=new e(0,0,0,0);return i.normalize(),n.normal=i,n.d=-(i.x*t.x+i.y*t.y+i.z*t.z),n},e.SignedDistanceToPlaneFromPositionAndNormal=function(e,t,i){var n=-(t.x*e.x+t.y*e.y+t.z*e.z);return d.Dot(i,t)+n},e}(),v=function(){function e(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n}return e.prototype.toGlobal=function(t,i){return new e(this.x*t,this.y*i,this.width*t,this.height*i)},e.prototype.toGlobalToRef=function(e,t,i){return i.x=this.x*e,i.y=this.y*t,i.width=this.width*e,i.height=this.height*t,this},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e}(),y=function(){function e(){}return e.GetPlanes=function(t){for(var i=[],n=0;n<6;n++)i.push(new m(0,0,0,0));return e.GetPlanesToRef(t,i),i},e.GetNearPlaneToRef=function(e,t){var i=e.m;t.normal.x=i[3]+i[2],t.normal.y=i[7]+i[6],t.normal.z=i[11]+i[10],t.d=i[15]+i[14],t.normalize()},e.GetFarPlaneToRef=function(e,t){var i=e.m;t.normal.x=i[3]-i[2],t.normal.y=i[7]-i[6],t.normal.z=i[11]-i[10],t.d=i[15]-i[14],t.normalize()},e.GetLeftPlaneToRef=function(e,t){var i=e.m;t.normal.x=i[3]+i[0],t.normal.y=i[7]+i[4],t.normal.z=i[11]+i[8],t.d=i[15]+i[12],t.normalize()},e.GetRightPlaneToRef=function(e,t){var i=e.m;t.normal.x=i[3]-i[0],t.normal.y=i[7]-i[4],t.normal.z=i[11]-i[8],t.d=i[15]-i[12],t.normalize()},e.GetTopPlaneToRef=function(e,t){var i=e.m;t.normal.x=i[3]-i[1],t.normal.y=i[7]-i[5],t.normal.z=i[11]-i[9],t.d=i[15]-i[13],t.normalize()},e.GetBottomPlaneToRef=function(e,t){var i=e.m;t.normal.x=i[3]+i[1],t.normal.y=i[7]+i[5],t.normal.z=i[11]+i[9],t.d=i[15]+i[13],t.normalize()},e.GetPlanesToRef=function(t,i){e.GetNearPlaneToRef(t,i[0]),e.GetFarPlaneToRef(t,i[1]),e.GetLeftPlaneToRef(t,i[2]),e.GetRightPlaneToRef(t,i[3]),e.GetTopPlaneToRef(t,i[4]),e.GetBottomPlaneToRef(t,i[5])},e}();!function(e){e[e.LOCAL=0]="LOCAL",e[e.WORLD=1]="WORLD",e[e.BONE=2]="BONE"}(n||(n={}));var b,T=function(){function e(){}return e.X=new d(1,0,0),e.Y=new d(0,1,0),e.Z=new d(0,0,1),e}(),E=function(){function e(){}return e.Interpolate=function(e,t,i,n,r){for(var o=1-3*n+3*t,s=3*n-6*t,a=3*t,c=e,l=0;l<5;l++){var u=c*c;c-=(o*(u*c)+s*u+a*c-e)*(1/(3*o*u+2*s*c+a)),c=Math.min(1,Math.max(0,c))}return 3*Math.pow(1-c,2)*c*i+3*(1-c)*Math.pow(c,2)*r+Math.pow(c,3)},e}();!function(e){e[e.CW=0]="CW",e[e.CCW=1]="CCW"}(b||(b={}));var A=function(){function e(e){this._radians=e,this._radians<0&&(this._radians+=2*Math.PI)}return e.prototype.degrees=function(){return 180*this._radians/Math.PI},e.prototype.radians=function(){return this._radians},e.BetweenTwoPoints=function(t,i){var n=i.subtract(t);return new e(Math.atan2(n.y,n.x))},e.FromRadians=function(t){return new e(t)},e.FromDegrees=function(t){return new e(t*Math.PI/180)},e}(),x=function(){return function(e,t,i){this.startPoint=e,this.midPoint=t,this.endPoint=i;var n=Math.pow(t.x,2)+Math.pow(t.y,2),r=(Math.pow(e.x,2)+Math.pow(e.y,2)-n)/2,o=(n-Math.pow(i.x,2)-Math.pow(i.y,2))/2,s=(e.x-t.x)*(t.y-i.y)-(t.x-i.x)*(e.y-t.y);this.centerPoint=new h((r*(t.y-i.y)-o*(e.y-t.y))/s,((e.x-t.x)*o-(t.x-i.x)*r)/s),this.radius=this.centerPoint.subtract(this.startPoint).length(),this.startAngle=A.BetweenTwoPoints(this.centerPoint,this.startPoint);var a=this.startAngle.degrees(),c=A.BetweenTwoPoints(this.centerPoint,this.midPoint).degrees(),l=A.BetweenTwoPoints(this.centerPoint,this.endPoint).degrees();c-a>180&&(c-=360),c-a<-180&&(c+=360),l-c>180&&(l-=360),l-c<-180&&(l+=360),this.orientation=c-a<0?b.CW:b.CCW,this.angle=A.FromDegrees(this.orientation===b.CW?a-l:l-a)}}(),R=function(){function e(e,t){this._points=new Array,this._length=0,this.closed=!1,this._points.push(new h(e,t))}return e.prototype.addLineTo=function(e,t){if(this.closed)return this;var i=new h(e,t),n=this._points[this._points.length-1];return this._points.push(i),this._length+=i.subtract(n).length(),this},e.prototype.addArcTo=function(e,t,i,n,r){if(void 0===r&&(r=36),this.closed)return this;var o=this._points[this._points.length-1],s=new h(e,t),a=new h(i,n),c=new x(o,s,a),l=c.angle.radians()/r;c.orientation===b.CW&&(l*=-1);for(var u=c.startAngle.radians()+l,d=0;d1)return h.Zero();for(var t=e*this.length(),i=0,n=0;n=i&&t<=a){var c=s.normalize(),l=t-i;return new h(o.x+c.x*l,o.y+c.y*l)}i=a}return h.Zero()},e.StartingAt=function(t,i){return new e(t,i)},e}(),P=function(){function e(e,t,i){void 0===t&&(t=null),this.path=e,this._curve=new Array,this._distances=new Array,this._tangents=new Array,this._normals=new Array,this._binormals=new Array;for(var n=0;nt+1;)t++,i=this._curve[e].subtract(this._curve[e-t]);return i},e.prototype._normalVector=function(e,t){var i,n,r=e.length();(0===r&&(r=1),null==t)?(n=o.a.WithinEpsilon(Math.abs(e.y)/r,1,c)?o.a.WithinEpsilon(Math.abs(e.x)/r,1,c)?o.a.WithinEpsilon(Math.abs(e.z)/r,1,c)?d.Zero():new d(0,0,1):new d(1,0,0):new d(0,-1,0),i=d.Cross(e,n)):(i=d.Cross(e,t),d.CrossToRef(i,e,i));return i.normalize(),i},e}(),S=function(){function e(e){this._length=0,this._points=e,this._length=this._computeLength(e)}return e.CreateQuadraticBezier=function(t,i,n,r){r=r>2?r:3;for(var o=new Array,s=function(e,t,i,n){return(1-e)*(1-e)*t+2*e*(1-e)*i+e*e*n},a=0;a<=r;a++)o.push(new d(s(a/r,t.x,i.x,n.x),s(a/r,t.y,i.y,n.y),s(a/r,t.z,i.z,n.z)));return new e(o)},e.CreateCubicBezier=function(t,i,n,r,o){o=o>3?o:4;for(var s=new Array,a=function(e,t,i,n,r){return(1-e)*(1-e)*(1-e)*t+3*e*(1-e)*(1-e)*i+3*e*e*(1-e)*n+e*e*e*r},c=0;c<=o;c++)s.push(new d(a(c/o,t.x,i.x,n.x,r.x),a(c/o,t.y,i.y,n.y,r.y),a(c/o,t.z,i.z,n.z,r.z)));return new e(s)},e.CreateHermiteSpline=function(t,i,n,r,o){for(var s=new Array,a=1/o,c=0;c<=o;c++)s.push(d.Hermite(t,i,n,r,c*a));return new e(s)},e.CreateCatmullRomSpline=function(t,i,n){var r=new Array,o=1/i,s=0;if(n){for(var a=t.length,c=0;c=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,i,s):r(t,i))||s);return o>3&&s&&Object.defineProperty(t,i,s),s}function a(e,t,i,n){return new(i||(i=Promise))(function(r,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){e.done?r(e.value):new i(function(t){t(e.value)}).then(s,a)}c((n=n.apply(e,t||[])).next())})}function c(e,t){var i,n,r,o,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(i)throw new TypeError("Generator is already executing.");for(;s;)try{if(i=1,n&&(r=2&o[0]?n.return:o[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,o[1])).done)return r;switch(n=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(r=(r=s.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]this._maxRank&&(this._maxRank=e),this._defines[e]=new Array),this._defines[e].push(t)},e.prototype.addCPUSkinningFallback=function(e,t){this._mesh=t,ethis._maxRank&&(this._maxRank=e)},Object.defineProperty(e.prototype,"isMoreFallbacks",{get:function(){return this._currentRank<=this._maxRank},enumerable:!0,configurable:!0}),e.prototype.reduce=function(e,t){if(this._mesh&&this._mesh.computeBonesUsingShaders&&this._mesh.numBoneInfluencers>0&&this._mesh.material){this._mesh.computeBonesUsingShaders=!1,e=e.replace("#define NUM_BONE_INFLUENCERS "+this._mesh.numBoneInfluencers,"#define NUM_BONE_INFLUENCERS 0"),t._bonesComputationForcedToCPU=!0;for(var i=this._mesh.getScene(),n=0;n-1?t:e.ShadersRepository+t,this._engine._loadFile(n+".vertex.fx",i)):i(window.atob(t.substr(7)))},e.prototype._loadFragmentShader=function(t,i){var n;if(o.a.IsWindowObjectExist()&&t instanceof HTMLElement)return void i(o.a.GetDOMTextContent(t));"base64:"!==t.substr(0,7)?e.ShadersStore[t+"PixelShader"]?i(e.ShadersStore[t+"PixelShader"]):e.ShadersStore[t+"FragmentShader"]?i(e.ShadersStore[t+"FragmentShader"]):(n="."===t[0]||"/"===t[0]||t.indexOf("http")>-1?t:e.ShadersRepository+t,this._engine._loadFile(n+".fragment.fx",i)):i(window.atob(t.substr(7)))},e.prototype._dumpShadersSource=function(e,t,i){var n=(this._engine.webGLVersion>1?"#version 300 es\n#define WEBGL2 \n":"")+(i?i+"\n":"");t=n+t;var r=2,o=/\n/gm,a="\n1\t"+(e=n+e).replace(o,function(){return"\n"+r+++"\t"});r=2;var c="\n1\t"+t.replace(o,function(){return"\n"+r+++"\t"});this.name.vertexElement?(s.a.Error("Vertex shader: "+this.name.vertexElement+a),s.a.Error("Fragment shader: "+this.name.fragmentElement+c)):this.name.vertex?(s.a.Error("Vertex shader: "+this.name.vertex+a),s.a.Error("Fragment shader: "+this.name.fragment+c)):(s.a.Error("Vertex shader: "+this.name+a),s.a.Error("Fragment shader: "+this.name+c))},e.prototype._processShaderConversion=function(e,t,i){var n=this._processPrecision(e);if(1!=this._engine.webGLVersion)if(-1===n.indexOf("#version 3")){var r=-1!==n.search(/#extension.+GL_EXT_draw_buffers.+require/),o=n.replace(/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g,"");o=(o=(o=(o=o.replace(/varying(?![\n\r])\s/g,t?"in ":"out ")).replace(/attribute[ \t]/g,"in ")).replace(/[ \t]attribute/g," in")).replace(/texture2D\s*\(/g,"texture("),t&&(o=(o=(o=(o=(o=(o=(o=o.replace(/texture2DLodEXT\s*\(/g,"textureLod(")).replace(/textureCubeLodEXT\s*\(/g,"textureLod(")).replace(/textureCube\s*\(/g,"texture(")).replace(/gl_FragDepthEXT/g,"gl_FragDepth")).replace(/gl_FragColor/g,"glFragColor")).replace(/gl_FragData/g,"glFragData")).replace(/void\s+?main\s*\(/g,(r?"":"out vec4 glFragColor;\n")+"void main(")),-1!==this.defines.indexOf("#define MULTIVIEW\n")&&!t&&(o="#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n"+o),i(o)}else i(n.replace("#version 300 es",""));else i(n)},e.prototype._processIncludes=function(t,i){for(var n=this,r=/#include<(.+)>(\((.*)\))*(\[(.*)\])*/g,o=r.exec(t),s=new String(t);null!=o;){var a=o[1];if(-1!==a.indexOf("__decl__")&&(a=a.replace(/__decl__/,""),this._engine.supportsUniformBuffers&&(a=(a=a.replace(/Vertex/,"Ubo")).replace(/Fragment/,"Ubo")),a+="Declaration"),!e.IncludesShadersStore[a]){var c=e.ShadersRepository+"ShadersInclude/"+a+".fx";return void this._engine._loadFile(c,function(t){e.IncludesShadersStore[a]=t,n._processIncludes(s,i)})}var l=e.IncludesShadersStore[a];if(o[2])for(var u=o[3].split(","),h=0;h
";e._AddLogEntry(n)},e._WarnDisabled=function(e){},e._WarnEnabled=function(t){var i=e._FormatMessage(t);console.warn("BJS - "+i);var n="
"+i+"

";e._AddLogEntry(n)},e._ErrorDisabled=function(e){},e._ErrorEnabled=function(t){e.errorsCount++;var i=e._FormatMessage(t);console.error("BJS - "+i);var n="
"+i+"

";e._AddLogEntry(n)},Object.defineProperty(e,"LogCache",{get:function(){return e._LogCache},enumerable:!0,configurable:!0}),e.ClearLogCache=function(){e._LogCache="",e.errorsCount=0},Object.defineProperty(e,"LogLevels",{set:function(t){(t&e.MessageLogLevel)===e.MessageLogLevel?e.Log=e._LogEnabled:e.Log=e._LogDisabled,(t&e.WarningLogLevel)===e.WarningLogLevel?e.Warn=e._WarnEnabled:e.Warn=e._WarnDisabled,(t&e.ErrorLogLevel)===e.ErrorLogLevel?e.Error=e._ErrorEnabled:e.Error=e._ErrorDisabled},enumerable:!0,configurable:!0}),e.NoneLogLevel=0,e.MessageLogLevel=1,e.WarningLogLevel=2,e.ErrorLogLevel=4,e.AllLogLevel=7,e._LogCache="",e.errorsCount=0,e.Log=e._LogEnabled,e.Warn=e._WarnEnabled,e.Error=e._ErrorEnabled,e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return d});var n=i(1),r=i(2),o=i(8),s=i(9),a=i(0),c=i(44),l=i(3),u=i(22),h=i(19),d=function(e){function t(i,n,r,a,c,u,h,d,f,p){void 0===r&&(r=!1),void 0===a&&(a=!0),void 0===c&&(c=t.TRILINEAR_SAMPLINGMODE),void 0===u&&(u=null),void 0===h&&(h=null),void 0===d&&(d=null),void 0===f&&(f=!1);var _=e.call(this,n)||this;if(_.url=null,_.uOffset=0,_.vOffset=0,_.uScale=1,_.vScale=1,_.uAng=0,_.vAng=0,_.wAng=0,_.uRotationCenter=.5,_.vRotationCenter=.5,_.wRotationCenter=.5,_.inspectableCustomProperties=null,_._noMipmap=!1,_._invertY=!1,_._rowGenerationMatrix=null,_._cachedTextureMatrix=null,_._projectionModeMatrix=null,_._t0=null,_._t1=null,_._t2=null,_._cachedUOffset=-1,_._cachedVOffset=-1,_._cachedUScale=0,_._cachedVScale=0,_._cachedUAng=-1,_._cachedVAng=-1,_._cachedWAng=-1,_._cachedProjectionMatrixId=-1,_._cachedCoordinatesMode=-1,_._initialSamplingMode=t.BILINEAR_SAMPLINGMODE,_._buffer=null,_._deleteBuffer=!1,_._format=null,_._delayedOnLoad=null,_._delayedOnError=null,_.onLoadObservable=new o.c,_._isBlocking=!0,_.name=i||"",_.url=i,_._noMipmap=r,_._invertY=a,_._initialSamplingMode=c,_._buffer=d,_._deleteBuffer=f,p&&(_._format=p),!(n=_.getScene()))return _;n.getEngine().onBeforeTextureInitObservable.notifyObservers(_);var g=function(){_._texture&&_._texture._invertVScale&&(_.vScale=-1),_.onLoadObservable.hasObservers()&&_.onLoadObservable.notifyObservers(_),u&&u(),!_.isBlocking&&n&&n.resetCachedMaterial()};return _.url?(_._texture=_._getFromCache(_.url,r,c,a),_._texture?_._texture.isReady?s.h.SetImmediate(function(){return g()}):_._texture.onLoadedObservable.add(g):n.useDelayedTextureLoading?(_.delayLoadState=l.a.DELAYLOADSTATE_NOTLOADED,_._delayedOnLoad=g,_._delayedOnError=h):(_._texture=n.getEngine().createTexture(_.url,r,a,n,c,g,h,_._buffer,void 0,_._format),f&&delete _._buffer),_):(_._delayedOnLoad=g,_._delayedOnError=h,_)}return n.d(t,e),Object.defineProperty(t.prototype,"noMipmap",{get:function(){return this._noMipmap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isBlocking",{get:function(){return this._isBlocking},set:function(e){this._isBlocking=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"samplingMode",{get:function(){return this._texture?this._texture.samplingMode:this._initialSamplingMode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invertY",{get:function(){return this._invertY},enumerable:!0,configurable:!0}),t.prototype.updateURL=function(e,t,i){void 0===t&&(t=null),this.url&&(this.releaseInternalTexture(),this.getScene().markAllMaterialsAsDirty(l.a.MATERIAL_TextureDirtyFlag)),this.url=e,this._buffer=t,this.delayLoadState=l.a.DELAYLOADSTATE_NOTLOADED,i&&(this._delayedOnLoad=i),this.delayLoad()},t.prototype.delayLoad=function(){if(this.delayLoadState===l.a.DELAYLOADSTATE_NOTLOADED){var e=this.getScene();e&&(this.delayLoadState=l.a.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,this._noMipmap,this.samplingMode,this._invertY),this._texture?this._delayedOnLoad&&(this._texture.isReady?s.h.SetImmediate(this._delayedOnLoad):this._texture.onLoadedObservable.add(this._delayedOnLoad)):(this._texture=e.getEngine().createTexture(this.url,this._noMipmap,this._invertY,e,this.samplingMode,this._delayedOnLoad,this._delayedOnError,this._buffer,null,this._format),this._deleteBuffer&&delete this._buffer),this._delayedOnLoad=null,this._delayedOnError=null)}},t.prototype._prepareRowForTextureGeneration=function(e,t,i,n){e*=this.uScale,t*=this.vScale,e-=this.uRotationCenter*this.uScale,t-=this.vRotationCenter*this.vScale,i-=this.wRotationCenter,a.x.TransformCoordinatesFromFloatsToRef(e,t,i,this._rowGenerationMatrix,n),n.x+=this.uRotationCenter*this.uScale+this.uOffset,n.y+=this.vRotationCenter*this.vScale+this.vOffset,n.z+=this.wRotationCenter},t.prototype.getTextureMatrix=function(){var e=this;if(this.uOffset===this._cachedUOffset&&this.vOffset===this._cachedVOffset&&this.uScale===this._cachedUScale&&this.vScale===this._cachedVScale&&this.uAng===this._cachedUAng&&this.vAng===this._cachedVAng&&this.wAng===this._cachedWAng)return this._cachedTextureMatrix;this._cachedUOffset=this.uOffset,this._cachedVOffset=this.vOffset,this._cachedUScale=this.uScale,this._cachedVScale=this.vScale,this._cachedUAng=this.uAng,this._cachedVAng=this.vAng,this._cachedWAng=this.wAng,this._cachedTextureMatrix||(this._cachedTextureMatrix=a.j.Zero(),this._rowGenerationMatrix=new a.j,this._t0=a.x.Zero(),this._t1=a.x.Zero(),this._t2=a.x.Zero()),a.j.RotationYawPitchRollToRef(this.vAng,this.uAng,this.wAng,this._rowGenerationMatrix),this._prepareRowForTextureGeneration(0,0,0,this._t0),this._prepareRowForTextureGeneration(1,0,0,this._t1),this._prepareRowForTextureGeneration(0,1,0,this._t2),this._t1.subtractInPlace(this._t0),this._t2.subtractInPlace(this._t0),a.j.FromValuesToRef(this._t1.x,this._t1.y,this._t1.z,0,this._t2.x,this._t2.y,this._t2.z,0,this._t0.x,this._t0.y,this._t0.z,0,0,0,0,1,this._cachedTextureMatrix);var t=this.getScene();return t?(t.markAllMaterialsAsDirty(l.a.MATERIAL_TextureDirtyFlag,function(t){return t.hasTexture(e)}),this._cachedTextureMatrix):this._cachedTextureMatrix},t.prototype.getReflectionTextureMatrix=function(){var e=this,i=this.getScene();if(!i)return this._cachedTextureMatrix;if(this.uOffset===this._cachedUOffset&&this.vOffset===this._cachedVOffset&&this.uScale===this._cachedUScale&&this.vScale===this._cachedVScale&&this.coordinatesMode===this._cachedCoordinatesMode){if(this.coordinatesMode!==t.PROJECTION_MODE)return this._cachedTextureMatrix;if(this._cachedProjectionMatrixId===i.getProjectionMatrix().updateFlag)return this._cachedTextureMatrix}switch(this._cachedTextureMatrix||(this._cachedTextureMatrix=a.j.Zero()),this._projectionModeMatrix||(this._projectionModeMatrix=a.j.Zero()),this._cachedUOffset=this.uOffset,this._cachedVOffset=this.vOffset,this._cachedUScale=this.uScale,this._cachedVScale=this.vScale,this._cachedCoordinatesMode=this.coordinatesMode,this.coordinatesMode){case t.PLANAR_MODE:a.j.IdentityToRef(this._cachedTextureMatrix),this._cachedTextureMatrix[0]=this.uScale,this._cachedTextureMatrix[5]=this.vScale,this._cachedTextureMatrix[12]=this.uOffset,this._cachedTextureMatrix[13]=this.vOffset;break;case t.PROJECTION_MODE:a.j.FromValuesToRef(.5,0,0,0,0,-.5,0,0,0,0,0,0,.5,.5,1,1,this._projectionModeMatrix);var n=i.getProjectionMatrix();this._cachedProjectionMatrixId=n.updateFlag,n.multiplyToRef(this._projectionModeMatrix,this._cachedTextureMatrix);break;default:a.j.IdentityToRef(this._cachedTextureMatrix)}return i.markAllMaterialsAsDirty(l.a.MATERIAL_TextureDirtyFlag,function(t){return-1!==t.getActiveTextures().indexOf(e)}),this._cachedTextureMatrix},t.prototype.clone=function(){var e=this;return r.a.Clone(function(){return new t(e._texture?e._texture.url:null,e.getScene(),e._noMipmap,e._invertY,e.samplingMode,void 0,void 0,e._texture?e._texture._buffer:void 0)},this)},t.prototype.serialize=function(){var t=e.prototype.serialize.call(this);return"string"==typeof this._buffer&&"data:"===this._buffer.substr(0,5)&&(t.base64String=this._buffer,t.name=t.name.replace("data:","")),t.invertY=this._invertY,t.samplingMode=this.samplingMode,t},t.prototype.getClassName=function(){return"Texture"},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.onLoadObservable.clear(),this._delayedOnLoad=null,this._delayedOnError=null},t.Parse=function(e,i,n){if(e.customType){var o=s.h.Instantiate(e.customType).Parse(e,i,n);return e.samplingMode&&o.updateSamplingMode&&o._samplingMode&&o._samplingMode!==e.samplingMode&&o.updateSamplingMode(e.samplingMode),o}if(e.isCube&&!e.isRenderTarget)return t._CubeTextureParser(e,i,n);if(!e.name&&!e.isRenderTarget)return null;var c=r.a.Parse(function(){var r,o=!0;if(e.noMipmap&&(o=!1),e.mirrorPlane){var s=t._CreateMirror(e.name,e.renderTargetSize,i,o);return s._waitingRenderList=e.renderList,s.mirrorPlane=a.n.FromArray(e.mirrorPlane),s}if(e.isRenderTarget){var c=null;if(e.isCube){if(i.reflectionProbes)for(var l=0;l0},e.prototype.clear=function(){this._observers=new Array,this._onObserverAdded=null},e.prototype.clone=function(){var t=new e;return t._observers=this._observers.slice(0),t},e.prototype.hasSpecificMask=function(e){void 0===e&&(e=-1);for(var t=0,i=this._observers;t=e||-1!==i.indexOf("file:")?-1:Math.pow(2,r)*t}},e}(),T=function(){function e(){}return e.FetchToRef=function(e,t,i,n,r,o){var s=4*((Math.abs(e)*i%i|0)+(Math.abs(t)*n%n|0)*i);o.r=r[s]/255,o.g=r[s+1]/255,o.b=r[s+2]/255,o.a=r[s+3]/255},e.Mix=function(e,t,i){return e*(1-i)+t*i},e.Instantiate=function(t){if(e.RegisteredExternalClasses&&e.RegisteredExternalClasses[t])return e.RegisteredExternalClasses[t];var i=h.a.GetClass(t);if(i)return i;u.a.Warn(t+" not found, you may have missed an import.");for(var n=t.split("."),r=window||this,o=0,s=n.length;o>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},e.FloorPOT=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,(e|=e>>16)-(e>>1)},e.NearestPOT=function(t){var i=e.CeilingPOT(t),n=e.FloorPOT(t);return i-t>t-n?n:i},e.GetExponentOfTwo=function(t,i,n){var r;switch(void 0===n&&(n=c.a.SCALEMODE_NEAREST),n){case c.a.SCALEMODE_FLOOR:r=e.FloorPOT(t);break;case c.a.SCALEMODE_NEAREST:r=e.NearestPOT(t);break;case c.a.SCALEMODE_CEILING:default:r=e.CeilingPOT(t)}return Math.min(r,i)},e.GetFilename=function(e){var t=e.lastIndexOf("/");return t<0?e:e.substring(t+1)},e.GetFolderPath=function(e,t){void 0===t&&(t=!1);var i=e.lastIndexOf("/");return i<0?t?e:"":e.substring(0,i+1)},e.ToDegrees=function(e){return 180*e/Math.PI},e.ToRadians=function(e){return e*Math.PI/180},e.EncodeArrayBufferTobase64=function(e){for(var t,i,n,r,o,s,a,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="",u=0,h=new Uint8Array(e);u>2,o=(3&t)<<4|(i=u>4,s=(15&i)<<2|(n=u>6,a=63&n,isNaN(i)?s=a=64:isNaN(n)&&(a=64),l+=c.charAt(r)+c.charAt(o)+c.charAt(s)+c.charAt(a);return"data:image/png;base64,"+l},e.ExtractMinAndMaxIndexed=function(e,t,i,n,o){void 0===o&&(o=null);for(var s=new r.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),a=new r.x(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=i;c=200&&t.status<300||0===t.status&&(!l.a.IsWindowObjectExist()||e.IsFileURL()))return void i(o?t.response:t.responseText,t.responseURL);var n=e.DefaultRetryStrategy;if(n){var f=n(h,t,a);if(-1!==f)return t.removeEventListener("loadend",u),t=new _.a,void(r=setTimeout(function(){return s(a+1)},f))}var g=new y("Error status: "+t.status+" "+t.statusText+" - Unable to load "+h,t);if(!c)throw g;c(t,g)}};t.addEventListener("readystatechange",p),t.send()};s(0)};if(r&&r.enableSceneOffline){var g=function(e){e&&e.status>400?c&&c(e):d||p()};r.open(function(){d||r&&r.loadFile(t,function(e){d||i(e),f.onCompleteObservable.notifyObservers(f)},n?function(e){d||n(e)}:void 0,g,o)},g)}else p();return f},e.LoadScript=function(e,t,i,n){if(l.a.IsWindowObjectExist()){var r=document.getElementsByTagName("head")[0],o=document.createElement("script");o.setAttribute("type","text/javascript"),o.setAttribute("src",e),n&&(o.id=n),o.onload=function(){t&&t()},o.onerror=function(t){i&&i("Unable to load script '"+e+"'",t)},r.appendChild(o)}},e.LoadScriptAsync=function(e,t){return new Promise(function(i,n){if(l.a.IsWindowObjectExist()){var r=document.getElementsByTagName("head")[0],o=document.createElement("script");o.setAttribute("type","text/javascript"),o.setAttribute("src",e),t&&(o.id=t),o.onload=function(){i(!0)},o.onerror=function(e){i(!1)},r.appendChild(o)}else i(!1)})},e.ReadFileAsDataURL=function(e,t,i){var n=new FileReader,r={onCompleteObservable:new s.c,abort:function(){return n.abort()}};return n.onloadend=function(e){r.onCompleteObservable.notifyObservers(r)},n.onload=function(e){t(e.target.result)},n.onprogress=i,n.readAsDataURL(e),r},e.ReadFile=function(e,t,i,n){var r=new FileReader,o={onCompleteObservable:new s.c,abort:function(){return r.abort()}};return r.onloadend=function(e){return o.onCompleteObservable.notifyObservers(o)},r.onerror=function(i){u.a.Log("Error while reading file: "+e.name),t(JSON.stringify({autoClear:!0,clearColor:[1,0,0],ambientColor:[0,0,0],gravity:[0,-9.807,0],meshes:[],cameras:[],lights:[]}))},r.onload=function(e){t(e.target.result)},i&&(r.onprogress=i),n?r.readAsArrayBuffer(e):r.readAsText(e),o},e.FileAsURL=function(e){var t=new Blob([e]);return(window.URL||window.webkitURL).createObjectURL(t)},e.Format=function(e,t){return void 0===t&&(t=2),e.toFixed(t)},e.CheckExtends=function(e,t,i){t.minimizeInPlace(e),i.maximizeInPlace(e)},e.DeepCopy=function(e,t,i,n){d.a.DeepCopy(e,t,i,n)},e.IsEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},e.EndsWith=function(e,t){return-1!==e.indexOf(t,e.length-t.length)},e.RegisterTopRootEvents=function(e){for(var t=0;t=r.gradient&&e<=o.gradient)return void i(r,o,(e-r.gradient)/(o.gradient-r.gradient))}var s=t.length-1;i(t[s],t[s],1)},e.BaseUrl="",e.UseCustomRequestHeaders=!1,e.CustomRequestHeaders=_.a.CustomRequestHeaders,e.DefaultRetryStrategy=b.ExponentialBackoff(),e.CorsBehavior="anonymous",e.UseFallbackTexture=!0,e.RegisteredExternalClasses={},e.fallbackTexture="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z",e._tmpFloatArray=new Float32Array(1),e.GetDOMTextContent=l.a.GetDOMTextContent,e.PreprocessUrl=function(e){return e},e.NoneLogLevel=u.a.NoneLogLevel,e.MessageLogLevel=u.a.MessageLogLevel,e.WarningLogLevel=u.a.WarningLogLevel,e.ErrorLogLevel=u.a.ErrorLogLevel,e.AllLogLevel=u.a.AllLogLevel,e.IsWindowObjectExist=l.a.IsWindowObjectExist,e.PerformanceNoneLogLevel=0,e.PerformanceUserMarkLogLevel=1,e.PerformanceConsoleLogLevel=2,e.StartPerformanceCounter=e._StartPerformanceCounterDisabled,e.EndPerformanceCounter=e._EndPerformanceCounterDisabled,e}(),E=function(){function e(){this._startMonitoringTime=0,this._min=0,this._max=0,this._average=0,this._lastSecAverage=0,this._current=0,this._totalValueCount=0,this._totalAccumulated=0,this._lastSecAccumulated=0,this._lastSecTime=0,this._lastSecValueCount=0}return Object.defineProperty(e.prototype,"min",{get:function(){return this._min},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"max",{get:function(){return this._max},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"average",{get:function(){return this._average},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastSecAverage",{get:function(){return this._lastSecAverage},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"total",{get:function(){return this._totalAccumulated},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._totalValueCount},enumerable:!0,configurable:!0}),e.prototype.fetchNewFrame=function(){this._totalValueCount++,this._current=0,this._lastSecValueCount++},e.prototype.addCount=function(t,i){e.Enabled&&(this._current+=t,i&&this._fetchResult())},e.prototype.beginMonitoring=function(){e.Enabled&&(this._startMonitoringTime=f.a.Now)},e.prototype.endMonitoring=function(t){if(void 0===t&&(t=!0),e.Enabled){t&&this.fetchNewFrame();var i=f.a.Now;this._current=i-this._startMonitoringTime,t&&this._fetchResult()}},e.prototype._fetchResult=function(){this._totalAccumulated+=this._current,this._lastSecAccumulated+=this._current,this._min=Math.min(this._min,this._current),this._max=Math.max(this._max,this._current),this._average=this._totalAccumulated/this._totalValueCount;var e=f.a.Now;e-this._lastSecTime>1e3&&(this._lastSecAverage=this._lastSecAccumulated/this._lastSecValueCount,this._lastSecTime=e,this._lastSecAccumulated=0,this._lastSecValueCount=0)},e.Enabled=!0,e}();function A(e,t){return function(i){i.__bjsclassName__=e,i.__bjsmoduleName__=null!=t?t:null}}var x=function(){function e(e,t,i,n){void 0===n&&(n=0),this.iterations=e,this.index=n-1,this._done=!1,this._fn=t,this._successCallback=i}return e.prototype.executeNext=function(){this._done||(this.index+1=t)break;if(n(s),o&&o()){e.breakLoop();break}}e.executeNext()},s)},r)},e}()},function(e,t,i){"use strict";i.d(t,"d",function(){return x}),i.d(t,"a",function(){return R}),i.d(t,"c",function(){return P}),i.d(t,"b",function(){return S});var n=i(1),r=i(8),o=i(105),s=i(61),a=i(106),c=i(9),l=i(0),u=i(12),h=i(5),d=i(20),f=i(26),p=i(94),_=i(3),g=i(35),m=i(6),v=i(23),y=i(92),b=i(19),T=i(107),E=i(73),A=function(){return function(){}}(),x=function(){return function(){}}(),R=function(){return function(){}}(),P=function(){return function(){}}(),S=function(){function e(t,i,n,s){var u=this;void 0===s&&(s=!1),this.forcePOTTextures=!1,this.isFullscreen=!1,this.isPointerLock=!1,this.cullBackFaces=!0,this.renderEvenInBackground=!0,this.preventCacheWipeBetweenFrames=!1,this.enableOfflineSupport=!1,this.disableManifestCheck=!1,this.scenes=new Array,this.onNewSceneAddedObservable=new r.c,this.postProcesses=new Array,this.validateShaderPrograms=!1,this.onResizeObservable=new r.c,this.onCanvasBlurObservable=new r.c,this.onCanvasFocusObservable=new r.c,this.onCanvasPointerOutObservable=new r.c,this.onBeforeTextureInitObservable=new r.c,this.disableUniformBuffers=!1,this._uniformBuffers=new Array,this.onBeginFrameObservable=new r.c,this.customAnimationFrameRequester=null,this.onEndFrameObservable=new r.c,this.onBeforeShaderCompilationObservable=new r.c,this.onAfterShaderCompilationObservable=new r.c,this._windowIsBackground=!1,this._webGLVersion=1,this._highPrecisionShadersAllowed=!0,this._badOS=!1,this._badDesktopOS=!1,this._colorWrite=!0,this._drawCalls=new c.f,this._renderingQueueLaunched=!1,this._activeRenderLoops=new Array,this._deterministicLockstep=!1,this._lockstepMaxSteps=4,this.onContextLostObservable=new r.c,this.onContextRestoredObservable=new r.c,this._contextWasLost=!1,this._doNotHandleContextLost=!1,this._performanceMonitor=new o.a,this._fps=60,this._deltaTime=0,this.disablePerformanceMonitorInBackground=!1,this.disableVertexArrayObjects=!1,this._depthCullingState=new p.b,this._stencilState=new p.c,this._alphaState=new p.a,this._alphaMode=e.ALPHA_DISABLE,this._internalTexturesCache=new Array,this._activeChannel=0,this._currentTextureChannel=-1,this._boundTexturesCache={},this._compiledEffects={},this._vertexAttribArraysEnabled=[],this._uintIndicesCurrentlySet=!1,this._currentBoundBuffer=new Array,this._currentFramebuffer=null,this._currentBufferPointers=new Array,this._currentInstanceLocations=new Array,this._currentInstanceBuffers=new Array,this._vaoRecordInProgress=!1,this._mustWipeVertexAttributes=!1,this._nextFreeTextureSlots=new Array,this._maxSimultaneousTextures=0,this._activeRequests=new Array,this._texturesSupported=new Array,this.premultipliedAlpha=!0,this._viewportCached=new l.y(0,0,0,0),this._unpackFlipYCached=null,this.enableUnpackFlipYCached=!0,this._boundUniforms={},a.a.Apply();var h=null;if(e.Instances.push(this),t){if(n=n||{},t.getContext){if(h=t,this._renderingCanvas=h,null!=i&&(n.antialias=i),void 0===n.deterministicLockstep&&(n.deterministicLockstep=!1),void 0===n.lockstepMaxSteps&&(n.lockstepMaxSteps=4),void 0===n.preserveDrawingBuffer&&(n.preserveDrawingBuffer=!1),void 0===n.audioEngine&&(n.audioEngine=!0),void 0===n.stencil&&(n.stencil=!0),!1===n.premultipliedAlpha&&(this.premultipliedAlpha=!1),this._deterministicLockstep=n.deterministicLockstep,this._lockstepMaxSteps=n.lockstepMaxSteps,this._doNotHandleContextLost=!!n.doNotHandleContextLost,navigator&&navigator.userAgent)for(var d=navigator.userAgent,f=0,_=e.ExceptionList;f<_.length;f++){var v=_[f],y=v.key,b=v.targets;if(new RegExp(y).test(d)){if(v.capture&&v.captureConstraint){var T=v.capture,E=v.captureConstraint,x=new RegExp(T).exec(d);if(x&&x.length>0)if(parseInt(x[x.length-1])>=E)continue}for(var R=0,P=b;R1&&!this.disableUniformBuffers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_shouldUseHighPrecisionShader",{get:function(){return this._caps.highPrecisionShaderSupported&&this._highPrecisionShadersAllowed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needPOTTextures",{get:function(){return this._webGLVersion<2||this.forcePOTTextures},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"doNotHandleContextLost",{get:function(){return this._doNotHandleContextLost},set:function(e){this._doNotHandleContextLost=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"performanceMonitor",{get:function(){return this._performanceMonitor},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"texturesSupported",{get:function(){return this._texturesSupported},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textureFormatInUse",{get:function(){return this._textureFormatInUse},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentViewport",{get:function(){return this._cachedViewport},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"emptyTexture",{get:function(){return this._emptyTexture||(this._emptyTexture=this.createRawTexture(new Uint8Array(4),1,1,e.TEXTUREFORMAT_RGBA,!1,!1,e.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"emptyTexture3D",{get:function(){return this._emptyTexture3D||(this._emptyTexture3D=this.createRawTexture3D(new Uint8Array(4),1,1,1,e.TEXTUREFORMAT_RGBA,!1,!1,e.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture3D},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"emptyCubeTexture",{get:function(){if(!this._emptyCubeTexture){var t=new Uint8Array(4),i=[t,t,t,t,t,t];this._emptyCubeTexture=this.createRawCubeTexture(i,1,e.TEXTUREFORMAT_RGBA,e.TEXTURETYPE_UNSIGNED_INT,!1,!1,e.TEXTURE_NEAREST_SAMPLINGMODE)}return this._emptyCubeTexture},enumerable:!0,configurable:!0}),e.prototype.initWebVR=function(){throw b.a.WarnImport("WebVRCamera")},e.prototype._prepareVRComponent=function(){},e.prototype._connectVREvents=function(e,t){},e.prototype._submitVRFrame=function(){},e.prototype.disableVR=function(){},e.prototype.isVRPresenting=function(){return!1},e.prototype._requestVRFrame=function(){},e.prototype._disableTouchAction=function(){this._renderingCanvas&&(this._renderingCanvas.setAttribute("touch-action","none"),this._renderingCanvas.style.touchAction="none",this._renderingCanvas.style.msTouchAction="none")},e.prototype._rebuildInternalTextures=function(){for(var e=0,t=this._internalTexturesCache.slice();e1||null!==this._gl.getExtension("OES_standard_derivatives"),this._caps.astc=this._gl.getExtension("WEBGL_compressed_texture_astc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"),this._caps.s3tc=this._gl.getExtension("WEBGL_compressed_texture_s3tc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"),this._caps.pvrtc=this._gl.getExtension("WEBGL_compressed_texture_pvrtc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),this._caps.etc1=this._gl.getExtension("WEBGL_compressed_texture_etc1")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"),this._caps.etc2=this._gl.getExtension("WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBGL_compressed_texture_es3_0"),this._caps.textureAnisotropicFilterExtension=this._gl.getExtension("EXT_texture_filter_anisotropic")||this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic")||this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"),this._caps.maxAnisotropy=this._caps.textureAnisotropicFilterExtension?this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,this._caps.uintIndices=this._webGLVersion>1||null!==this._gl.getExtension("OES_element_index_uint"),this._caps.fragmentDepthSupported=this._webGLVersion>1||null!==this._gl.getExtension("EXT_frag_depth"),this._caps.highPrecisionShaderSupported=!1,this._caps.timerQuery=this._gl.getExtension("EXT_disjoint_timer_query_webgl2")||this._gl.getExtension("EXT_disjoint_timer_query"),this._caps.timerQuery&&(1===this._webGLVersion&&(this._gl.getQuery=this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),this._caps.canUseTimestampForTimerQuery=this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT,this._caps.timerQuery.QUERY_COUNTER_BITS_EXT)>0),this._caps.colorBufferFloat=this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_float"),this._caps.textureFloat=!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_float")),this._caps.textureFloatLinearFiltering=!(!this._caps.textureFloat||!this._gl.getExtension("OES_texture_float_linear")),this._caps.textureFloatRender=!(!this._caps.textureFloat||!this._canRenderToFloatFramebuffer()),this._caps.textureHalfFloat=!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_half_float")),this._caps.textureHalfFloatLinearFiltering=!!(this._webGLVersion>1||this._caps.textureHalfFloat&&this._gl.getExtension("OES_texture_half_float_linear")),this._webGLVersion>1&&(this._gl.HALF_FLOAT_OES=5131),this._caps.textureHalfFloatRender=this._caps.textureHalfFloat&&this._canRenderToHalfFloatFramebuffer(),this._caps.textureLOD=!!(this._webGLVersion>1||this._gl.getExtension("EXT_shader_texture_lod")),this._caps.multiview=this._gl.getExtension("OVR_multiview2"),this._webGLVersion>1)this._caps.drawBuffersExtension=!0;else{var t=this._gl.getExtension("WEBGL_draw_buffers");if(null!==t){this._caps.drawBuffersExtension=!0,this._gl.drawBuffers=t.drawBuffersWEBGL.bind(t),this._gl.DRAW_FRAMEBUFFER=this._gl.FRAMEBUFFER;for(var i=0;i<16;i++)this._gl["COLOR_ATTACHMENT"+i+"_WEBGL"]=t["COLOR_ATTACHMENT"+i+"_WEBGL"]}else this._caps.drawBuffersExtension=!1}if(this._caps.parallelShaderCompile=this._gl.getExtension("KHR_parallel_shader_compile"),this._webGLVersion>1)this._caps.depthTextureExtension=!0;else{var n=this._gl.getExtension("WEBGL_depth_texture");null!=n&&(this._caps.depthTextureExtension=!0,this._gl.UNSIGNED_INT_24_8=n.UNSIGNED_INT_24_8_WEBGL)}if(this.disableVertexArrayObjects)this._caps.vertexArrayObject=!1;else if(this._webGLVersion>1)this._caps.vertexArrayObject=!0;else{var r=this._gl.getExtension("OES_vertex_array_object");null!=r?(this._caps.vertexArrayObject=!0,this._gl.createVertexArray=r.createVertexArrayOES.bind(r),this._gl.bindVertexArray=r.bindVertexArrayOES.bind(r),this._gl.deleteVertexArray=r.deleteVertexArrayOES.bind(r)):this._caps.vertexArrayObject=!1}if(this._webGLVersion>1)this._caps.instancedArrays=!0;else{var o=this._gl.getExtension("ANGLE_instanced_arrays");null!=o?(this._caps.instancedArrays=!0,this._gl.drawArraysInstanced=o.drawArraysInstancedANGLE.bind(o),this._gl.drawElementsInstanced=o.drawElementsInstancedANGLE.bind(o),this._gl.vertexAttribDivisor=o.vertexAttribDivisorANGLE.bind(o)):this._caps.instancedArrays=!1}if(this._caps.astc&&this.texturesSupported.push("-astc.ktx"),this._caps.s3tc&&this.texturesSupported.push("-dxt.ktx"),this._caps.pvrtc&&this.texturesSupported.push("-pvrtc.ktx"),this._caps.etc2&&this.texturesSupported.push("-etc2.ktx"),this._caps.etc1&&this.texturesSupported.push("-etc1.ktx"),this._gl.getShaderPrecisionFormat){var s=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.HIGH_FLOAT),a=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.HIGH_FLOAT);s&&a&&(this._caps.highPrecisionShaderSupported=0!==s.precision&&0!==a.precision)}this.setDepthBuffer(!0),this.setDepthFunctionToLessOrEqual(),this.setDepthWrite(!0),this._maxSimultaneousTextures=this._caps.maxCombinedTexturesImageUnits;for(var c=0;c=0&&this._activeRenderLoops.splice(t,1)}else this._activeRenderLoops=[]},e.prototype._renderLoop=function(){if(!this._contextWasLost){var e=!0;if(!this.renderEvenInBackground&&this._windowIsBackground&&(e=!1),e){this.beginFrame();for(var t=0;t0?this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=c.h.QueueNewFrame(this.customAnimationFrameRequester.renderFunction||this._bindedRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this.isVRPresenting()?this._requestVRFrame():this._frameHandler=c.h.QueueNewFrame(this._bindedRenderFunction):this._renderingQueueLaunched=!1},e.prototype.runRenderLoop=function(e){-1===this._activeRenderLoops.indexOf(e)&&(this._activeRenderLoops.push(e),this._renderingQueueLaunched||(this._renderingQueueLaunched=!0,this._bindedRenderFunction=this._renderLoop.bind(this),this._frameHandler=c.h.QueueNewFrame(this._bindedRenderFunction)))},e.prototype.switchFullscreen=function(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)},e.prototype.enterFullscreen=function(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&c.h.RequestFullscreen(this._renderingCanvas))},e.prototype.exitFullscreen=function(){this.isFullscreen&&c.h.ExitFullscreen()},e.prototype.clear=function(e,t,i,n){void 0===n&&(n=!1),this.applyStates();var r=0;t&&e&&(this._gl.clearColor(e.r,e.g,e.b,void 0!==e.a?e.a:1),r|=this._gl.COLOR_BUFFER_BIT),i&&(this._gl.clearDepth(1),r|=this._gl.DEPTH_BUFFER_BIT),n&&(this._gl.clearStencil(0),r|=this._gl.STENCIL_BUFFER_BIT),this._gl.clear(r)},e.prototype.scissorClear=function(e,t,i,n,r){this.enableScissor(e,t,i,n),this.clear(r,!0,!0,!0),this.disableScissor()},e.prototype.enableScissor=function(e,t,i,n){var r=this._gl;r.enable(r.SCISSOR_TEST),r.scissor(e,t,i,n)},e.prototype.disableScissor=function(){var e=this._gl;e.disable(e.SCISSOR_TEST)},e.prototype._viewport=function(e,t,i,n){e===this._viewportCached.x&&t===this._viewportCached.y&&i===this._viewportCached.z&&n===this._viewportCached.w||(this._viewportCached.x=e,this._viewportCached.y=t,this._viewportCached.z=i,this._viewportCached.w=n,this._gl.viewport(e,t,i,n))},e.prototype.setViewport=function(e,t,i){var n=t||this.getRenderWidth(),r=i||this.getRenderHeight(),o=e.x||0,s=e.y||0;this._cachedViewport=e,this._viewport(o*n,s*r,n*e.width,r*e.height)},e.prototype.setDirectViewport=function(e,t,i,n){var r=this._cachedViewport;return this._cachedViewport=null,this._viewport(e,t,i,n),r},e.prototype.beginFrame=function(){this.onBeginFrameObservable.notifyObservers(this),this._measureFps()},e.prototype.endFrame=function(){this._badOS&&this.flushFramebuffer(),this._submitVRFrame(),this.onEndFrameObservable.notifyObservers(this)},e.prototype.resize=function(){if(!this.isVRPresenting()){var e=this._renderingCanvas?this._renderingCanvas.clientWidth:window.innerWidth,t=this._renderingCanvas?this._renderingCanvas.clientHeight:window.innerHeight;this.setSize(e/this._hardwareScalingLevel,t/this._hardwareScalingLevel)}},e.prototype.setSize=function(e,t){if(this._renderingCanvas&&(this._renderingCanvas.width!==e||this._renderingCanvas.height!==t)){this._renderingCanvas.width=e,this._renderingCanvas.height=t;for(var i=0;i65535){o=!0;break}i=o?new Uint32Array(e):new Uint16Array(e)}else i=new Uint16Array(e);return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,i,t?this._gl.DYNAMIC_DRAW:this._gl.STATIC_DRAW),this._resetIndexBufferBinding(),r.references=1,r.is32Bits=o,r},e.prototype.bindArrayBuffer=function(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.bindBuffer(e,this._gl.ARRAY_BUFFER)},e.prototype.bindUniformBuffer=function(e){this._gl.bindBuffer(this._gl.UNIFORM_BUFFER,e?e.underlyingResource:null)},e.prototype.bindUniformBufferBase=function(e,t){this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER,t,e?e.underlyingResource:null)},e.prototype.bindUniformBlock=function(e,t,i){var n=e.program,r=this._gl.getUniformBlockIndex(n,t);this._gl.uniformBlockBinding(n,r,i)},e.prototype.bindIndexBuffer=function(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.bindBuffer(e,this._gl.ELEMENT_ARRAY_BUFFER)},e.prototype.bindBuffer=function(e,t){(this._vaoRecordInProgress||this._currentBoundBuffer[t]!==e)&&(this._gl.bindBuffer(t,e?e.underlyingResource:null),this._currentBoundBuffer[t]=e)},e.prototype.updateArrayBuffer=function(e){this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,e)},e.prototype._vertexAttribPointer=function(e,t,i,n,r,o,s){var a=this._currentBufferPointers[t],c=!1;a.active?(a.buffer!==e&&(a.buffer=e,c=!0),a.size!==i&&(a.size=i,c=!0),a.type!==n&&(a.type=n,c=!0),a.normalized!==r&&(a.normalized=r,c=!0),a.stride!==o&&(a.stride=o,c=!0),a.offset!==s&&(a.offset=s,c=!0)):(c=!0,a.active=!0,a.index=t,a.size=i,a.type=n,a.normalized=r,a.stride=o,a.offset=s,a.buffer=e),(c||this._vaoRecordInProgress)&&(this.bindArrayBuffer(e),this._gl.vertexAttribPointer(t,i,n,r,o,s))},e.prototype._bindIndexBufferWithCache=function(e){null!=e&&this._cachedIndexBuffer!==e&&(this._cachedIndexBuffer=e,this.bindIndexBuffer(e),this._uintIndicesCurrentlySet=e.is32Bits)},e.prototype._bindVertexBuffersAttributes=function(e,t){var i=t.getAttributesNames();this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.unbindAllAttributes();for(var n=0;n=0){var o=e[i[n]];if(!o)continue;this._gl.enableVertexAttribArray(r),this._vaoRecordInProgress||(this._vertexAttribArraysEnabled[r]=!0);var s=o.getBuffer();s&&(this._vertexAttribPointer(s,r,o.getSize(),o.type,o.normalized,o.byteStride,o.byteOffset),o.getIsInstanced()&&(this._gl.vertexAttribDivisor(r,o.getInstanceDivisor()),this._vaoRecordInProgress||(this._currentInstanceLocations.push(r),this._currentInstanceBuffers.push(s))))}}},e.prototype.recordVertexArrayObject=function(e,t,i){var n=this._gl.createVertexArray();return this._vaoRecordInProgress=!0,this._gl.bindVertexArray(n),this._mustWipeVertexAttributes=!0,this._bindVertexBuffersAttributes(e,i),this.bindIndexBuffer(t),this._vaoRecordInProgress=!1,this._gl.bindVertexArray(null),n},e.prototype.bindVertexArrayObject=function(e,t){this._cachedVertexArrayObject!==e&&(this._cachedVertexArrayObject=e,this._gl.bindVertexArray(e),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._uintIndicesCurrentlySet=null!=t&&t.is32Bits,this._mustWipeVertexAttributes=!0)},e.prototype.bindBuffersDirectly=function(e,t,i,n,r){if(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==r){this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=r;var o=r.getAttributesCount();this._unbindVertexArrayObject(),this.unbindAllAttributes();for(var s=0,a=0;a=0&&(this._gl.enableVertexAttribArray(c),this._vertexAttribArraysEnabled[c]=!0,this._vertexAttribPointer(e,c,i[a],this._gl.FLOAT,!1,n,s)),s+=4*i[a]}}this._bindIndexBufferWithCache(t)},e.prototype._unbindVertexArrayObject=function(){this._cachedVertexArrayObject&&(this._cachedVertexArrayObject=null,this._gl.bindVertexArray(null))},e.prototype.bindBuffers=function(e,t,i){this._cachedVertexBuffers===e&&this._cachedEffectForVertexBuffers===i||(this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=i,this._bindVertexBuffersAttributes(e,i)),this._bindIndexBufferWithCache(t)},e.prototype.unbindInstanceAttributes=function(){for(var e,t=0,i=this._currentInstanceLocations.length;t1?"#version 300 es\n#define WEBGL2 \n":"",a=this._compileShader(t,"vertex",n,s),c=this._compileShader(i,"fragment",n,s),l=this._createShaderProgram(e,a,c,r,o);return this.onAfterShaderCompilationObservable.notifyObservers(this),l},e.prototype.createPipelineContext=function(){var e=new T.a;return e.engine=this,this._caps.parallelShaderCompile&&(e.isParallelCompiled=!0),e},e.prototype._createShaderProgram=function(e,t,i,n,r){void 0===r&&(r=null);var o=n.createProgram();if(e.program=o,!o)throw new Error("Unable to create program");if(n.attachShader(o,t),n.attachShader(o,i),this.webGLVersion>1&&r){var s=this.createTransformFeedback();this.bindTransformFeedback(s),this.setTranformFeedbackVaryings(o,r),e.transformFeedback=s}return n.linkProgram(o),this.webGLVersion>1&&r&&this.bindTransformFeedback(null),e.context=n,e.vertexShader=t,e.fragmentShader=i,e.isParallelCompiled||this._finalizePipelineContext(e),o},e.prototype._finalizePipelineContext=function(e){var t=e.context,i=e.vertexShader,n=e.fragmentShader,r=e.program;if(!t.getProgramParameter(r,t.LINK_STATUS)){var o,s;if(!this._gl.getShaderParameter(i,this._gl.COMPILE_STATUS))if(o=this._gl.getShaderInfoLog(i))throw new Error(o);if(!this._gl.getShaderParameter(n,this._gl.COMPILE_STATUS))if(o=this._gl.getShaderInfoLog(n))throw new Error(o);if(s=t.getProgramInfoLog(r))throw new Error(s)}if(this.validateShaderPrograms&&(t.validateProgram(r),!t.getProgramParameter(r,t.VALIDATE_STATUS)&&(s=t.getProgramInfoLog(r))))throw new Error(s);t.deleteShader(i),t.deleteShader(n),e.vertexShader=void 0,e.fragmentShader=void 0,e.onCompiled&&(e.onCompiled(),e.onCompiled=void 0)},e.prototype._preparePipelineContext=function(e,t,i,n,r,o,s){var a=e;a.program=n?this.createRawShaderProgram(a,t,i,void 0,s):this.createShaderProgram(a,t,i,o,void 0,s),a.program.__SPECTOR_rebuildProgram=r},e.prototype._isRenderingStateCompiled=function(e){var t=e;return!!this._gl.getProgramParameter(t.program,this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR)&&(this._finalizePipelineContext(t),!0)},e.prototype._executeWhenRenderingStateIsCompiled=function(e,t){var i=e;i.isParallelCompiled?i.onCompiled=t:t()},e.prototype.getUniforms=function(e,t){for(var i=new Array,n=e,r=0;r-1?g.substring(T).toLowerCase():""),A=null,x=0,R=e._TextureLoaders;xl||t.height>l||null===e._RescalePostProcessFactory)return _._prepareWorkingCanvas(),!(!_._workingCanvas||!_._workingContext)&&(_._workingCanvas.width=i,_._workingCanvas.height=n,_._workingContext.drawImage(t,0,0,t.width,t.height,0,0,i,n),s.texImage2D(s.TEXTURE_2D,0,c,c,s.UNSIGNED_BYTE,_._workingCanvas),b.width=i,b.height=n,!1);var u=new f.a(_,f.a.DATASOURCE_TEMP);return _._bindTextureDirectly(s.TEXTURE_2D,u,!0),s.texImage2D(s.TEXTURE_2D,0,c,c,s.UNSIGNED_BYTE,t),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),_._rescaleTexture(u,b,r,c,function(){_._releaseTexture(u),_._bindTextureDirectly(s.TEXTURE_2D,b,!0),o()}),!0},o)};!m||y?l instanceof HTMLImageElement?O(l):c.h.LoadImage(g,O,C,r?r.offlineProvider:null):"string"==typeof l||l instanceof ArrayBuffer||l instanceof Blob?c.h.LoadImage(l,O,C,r?r.offlineProvider:null):O(l)}return b},e.prototype._rescaleTexture=function(t,i,n,r,o){var s=this,a=this.createRenderTargetTexture({width:i.width,height:i.height},{generateMipMaps:!1,type:e.TEXTURETYPE_UNSIGNED_INT,samplingMode:e.TEXTURE_BILINEAR_SAMPLINGMODE,generateDepthBuffer:!1,generateStencilBuffer:!1});!this._rescalePostProcess&&e._RescalePostProcessFactory&&(this._rescalePostProcess=e._RescalePostProcessFactory(this)),this._rescalePostProcess.getEffect().executeWhenCompiled(function(){s._rescalePostProcess.onApply=function(e){e._bindTexture("textureSampler",t)};var e=n;e||(e=s.scenes[s.scenes.length-1]),e.postProcessManager.directRender([s._rescalePostProcess],a,!0),s._bindTextureDirectly(s._gl.TEXTURE_2D,i,!0),s._gl.copyTexImage2D(s._gl.TEXTURE_2D,0,r,0,0,i.width,i.height,0),s.unBindFramebuffer(a),s._releaseTexture(a),o&&o()})},e.prototype.createRawTexture=function(t,i,n,r,o,s,a,c,l){throw void 0===c&&(c=null),void 0===l&&(l=e.TEXTURETYPE_UNSIGNED_INT),b.a.WarnImport("Engine.RawTexture")},e.prototype._unpackFlipY=function(e){this._unpackFlipYCached!==e&&(this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL,e?1:0),this.enableUnpackFlipYCached&&(this._unpackFlipYCached=e))},e.prototype._getUnpackAlignement=function(){return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT)},e.prototype.createDynamicTexture=function(e,t,i,n){var r=new f.a(this,f.a.DATASOURCE_DYNAMIC);return r.baseWidth=e,r.baseHeight=t,i&&(e=this.needPOTTextures?c.h.GetExponentOfTwo(e,this._caps.maxTextureSize):e,t=this.needPOTTextures?c.h.GetExponentOfTwo(t,this._caps.maxTextureSize):t),r.width=e,r.height=t,r.isReady=!1,r.generateMipMaps=i,r.samplingMode=n,this.updateTextureSamplingMode(n,r),this._internalTexturesCache.push(r),r},e.prototype.updateTextureSamplingMode=function(e,t){var i=this._getSamplingParameters(e,t.generateMipMaps);t.isCube?(this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP,this._gl.TEXTURE_MAG_FILTER,i.mag,t),this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP,this._gl.TEXTURE_MIN_FILTER,i.min),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):t.is3D?(this._setTextureParameterInteger(this._gl.TEXTURE_3D,this._gl.TEXTURE_MAG_FILTER,i.mag,t),this._setTextureParameterInteger(this._gl.TEXTURE_3D,this._gl.TEXTURE_MIN_FILTER,i.min),this._bindTextureDirectly(this._gl.TEXTURE_3D,null)):(this._setTextureParameterInteger(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,i.mag,t),this._setTextureParameterInteger(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,i.min),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),t.samplingMode=e},e.prototype.updateDynamicTexture=function(e,t,i,n,r,o){if(void 0===n&&(n=!1),void 0===o&&(o=!1),e){this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0,o),this._unpackFlipY(i),n&&this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);var s=r?this._getInternalFormat(r):this._gl.RGBA;this._gl.texImage2D(this._gl.TEXTURE_2D,0,s,s,this._gl.UNSIGNED_BYTE,t),e.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),n&&this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),e.isReady=!0}},e.prototype.updateVideoTexture=function(e,t,i){if(e&&!e._isDisabled){var n=this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0);this._unpackFlipY(!i);try{if(void 0===this._videoTextureSupported&&(this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,t),0!==this._gl.getError()?this._videoTextureSupported=!1:this._videoTextureSupported=!0),this._videoTextureSupported)this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,t);else{if(!e._workingCanvas){e._workingCanvas=document.createElement("canvas");var r=e._workingCanvas.getContext("2d");if(!r)throw new Error("Unable to get 2d context");e._workingContext=r,e._workingCanvas.width=e.width,e._workingCanvas.height=e.height}e._workingContext.drawImage(t,0,0,t.videoWidth,t.videoHeight,0,0,e.width,e.height),this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,e._workingCanvas)}e.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),n||this._bindTextureDirectly(this._gl.TEXTURE_2D,null),e.isReady=!0}catch(t){e._isDisabled=!0}}},e.prototype.updateTextureComparisonFunction=function(t,i){if(1!==this.webGLVersion){var n=this._gl;t.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,t,!0),0===i?(n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_COMPARE_FUNC,e.LEQUAL),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_COMPARE_MODE,n.NONE)):(n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_COMPARE_FUNC,i),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,t,!0),0===i?(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_COMPARE_FUNC,e.LEQUAL),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_COMPARE_MODE,n.NONE)):(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_COMPARE_FUNC,i),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),t._comparisonFunction=i}else m.a.Error("WebGL 1 does not support texture comparison.")},e.prototype._setupDepthStencilTexture=function(t,i,n,r,o){var s=i.width||i,a=i.height||i;t.baseWidth=s,t.baseHeight=a,t.width=s,t.height=a,t.isReady=!0,t.samples=1,t.generateMipMaps=!1,t._generateDepthBuffer=!0,t._generateStencilBuffer=n,t.samplingMode=r?e.TEXTURE_BILINEAR_SAMPLINGMODE:e.TEXTURE_NEAREST_SAMPLINGMODE,t.type=e.TEXTURETYPE_UNSIGNED_INT,t._comparisonFunction=o;var c=this._gl,l=t.isCube?c.TEXTURE_CUBE_MAP:c.TEXTURE_2D,u=this._getSamplingParameters(t.samplingMode,!1);c.texParameteri(l,c.TEXTURE_MAG_FILTER,u.mag),c.texParameteri(l,c.TEXTURE_MIN_FILTER,u.min),c.texParameteri(l,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(l,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),0===o?(c.texParameteri(l,c.TEXTURE_COMPARE_FUNC,e.LEQUAL),c.texParameteri(l,c.TEXTURE_COMPARE_MODE,c.NONE)):(c.texParameteri(l,c.TEXTURE_COMPARE_FUNC,o),c.texParameteri(l,c.TEXTURE_COMPARE_MODE,c.COMPARE_REF_TO_TEXTURE))},e.prototype.createDepthStencilTexture=function(e,t){if(t.isCube){var i=e.width||e;return this._createDepthStencilCubeTexture(i,t)}return this._createDepthStencilTexture(e,t)},e.prototype._createDepthStencilTexture=function(e,t){var i=new f.a(this,f.a.DATASOURCE_DEPTHTEXTURE);if(!this._caps.depthTextureExtension)return m.a.Error("Depth texture is not supported by your browser or hardware."),i;var r=n.a({bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1},t),o=this._gl;return this._bindTextureDirectly(o.TEXTURE_2D,i,!0),this._setupDepthStencilTexture(i,e,r.generateStencil,r.bilinearFiltering,r.comparisonFunction),this.webGLVersion>1?r.generateStencil?o.texImage2D(o.TEXTURE_2D,0,o.DEPTH24_STENCIL8,i.width,i.height,0,o.DEPTH_STENCIL,o.UNSIGNED_INT_24_8,null):o.texImage2D(o.TEXTURE_2D,0,o.DEPTH_COMPONENT24,i.width,i.height,0,o.DEPTH_COMPONENT,o.UNSIGNED_INT,null):r.generateStencil?o.texImage2D(o.TEXTURE_2D,0,o.DEPTH_STENCIL,i.width,i.height,0,o.DEPTH_STENCIL,o.UNSIGNED_INT_24_8,null):o.texImage2D(o.TEXTURE_2D,0,o.DEPTH_COMPONENT,i.width,i.height,0,o.DEPTH_COMPONENT,o.UNSIGNED_INT,null),this._bindTextureDirectly(o.TEXTURE_2D,null),i},e.prototype.setFrameBufferDepthStencilTexture=function(e){var t=e.getInternalTexture();if(t&&t._framebuffer&&e.depthStencilTexture){var i=this._gl,n=e.depthStencilTexture;this._bindUnboundFramebuffer(t._framebuffer),n.isCube?n._generateStencilBuffer?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.TEXTURE_CUBE_MAP_POSITIVE_X,n._webGLTexture,0):i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_CUBE_MAP_POSITIVE_X,n._webGLTexture,0):n._generateStencilBuffer?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.TEXTURE_2D,n._webGLTexture,0):i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,n._webGLTexture,0),this._bindUnboundFramebuffer(null)}},e.prototype.createRenderTargetTexture=function(t,i){var n=new y.a;void 0!==i&&"object"==typeof i?(n.generateMipMaps=i.generateMipMaps,n.generateDepthBuffer=void 0===i.generateDepthBuffer||i.generateDepthBuffer,n.generateStencilBuffer=n.generateDepthBuffer&&i.generateStencilBuffer,n.type=void 0===i.type?e.TEXTURETYPE_UNSIGNED_INT:i.type,n.samplingMode=void 0===i.samplingMode?e.TEXTURE_TRILINEAR_SAMPLINGMODE:i.samplingMode,n.format=void 0===i.format?e.TEXTUREFORMAT_RGBA:i.format):(n.generateMipMaps=i,n.generateDepthBuffer=!0,n.generateStencilBuffer=!1,n.type=e.TEXTURETYPE_UNSIGNED_INT,n.samplingMode=e.TEXTURE_TRILINEAR_SAMPLINGMODE,n.format=e.TEXTUREFORMAT_RGBA),(n.type!==e.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(n.type!==e.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(n.samplingMode=e.TEXTURE_NEAREST_SAMPLINGMODE);var r=this._gl,o=new f.a(this,f.a.DATASOURCE_RENDERTARGET);this._bindTextureDirectly(r.TEXTURE_2D,o,!0);var s=t.width||t,a=t.height||t,c=this._getSamplingParameters(n.samplingMode,!!n.generateMipMaps);n.type!==e.TEXTURETYPE_FLOAT||this._caps.textureFloat||(n.type=e.TEXTURETYPE_UNSIGNED_INT,m.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,c.mag),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,c.min),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texImage2D(r.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(n.type,n.format),s,a,0,this._getInternalFormat(n.format),this._getWebGLTextureType(n.type),null);var l=this._currentFramebuffer,u=r.createFramebuffer();return this._bindUnboundFramebuffer(u),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o._webGLTexture,0),o._depthStencilBuffer=this._setupFramebufferDepthAttachments(!!n.generateStencilBuffer,n.generateDepthBuffer,s,a),n.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(r.TEXTURE_2D,null),r.bindRenderbuffer(r.RENDERBUFFER,null),this._bindUnboundFramebuffer(l),o._framebuffer=u,o.baseWidth=s,o.baseHeight=a,o.width=s,o.height=a,o.isReady=!0,o.samples=1,o.generateMipMaps=!!n.generateMipMaps,o.samplingMode=n.samplingMode,o.type=n.type,o.format=n.format,o._generateDepthBuffer=n.generateDepthBuffer,o._generateStencilBuffer=!!n.generateStencilBuffer,this._internalTexturesCache.push(o),o},e.prototype._setupFramebufferDepthAttachments=function(e,t,i,n,r){void 0===r&&(r=1);var o=null,s=this._gl;return e?(o=s.createRenderbuffer(),s.bindRenderbuffer(s.RENDERBUFFER,o),r>1?s.renderbufferStorageMultisample(s.RENDERBUFFER,r,s.DEPTH24_STENCIL8,i,n):s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_STENCIL,i,n),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,o)):t&&(o=s.createRenderbuffer(),s.bindRenderbuffer(s.RENDERBUFFER,o),r>1?s.renderbufferStorageMultisample(s.RENDERBUFFER,r,s.DEPTH_COMPONENT16,i,n):s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT16,i,n),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,o)),o},e.prototype.updateRenderTargetTextureSampleCount=function(e,t){if(this.webGLVersion<2||!e)return 1;if(e.samples===t)return t;var i=this._gl;if(t=Math.min(t,i.getParameter(i.MAX_SAMPLES)),e._depthStencilBuffer&&(i.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=null),e._MSAAFramebuffer&&(i.deleteFramebuffer(e._MSAAFramebuffer),e._MSAAFramebuffer=null),e._MSAARenderBuffer&&(i.deleteRenderbuffer(e._MSAARenderBuffer),e._MSAARenderBuffer=null),t>1){var n=i.createFramebuffer();if(!n)throw new Error("Unable to create multi sampled framebuffer");e._MSAAFramebuffer=n,this._bindUnboundFramebuffer(e._MSAAFramebuffer);var r=i.createRenderbuffer();if(!r)throw new Error("Unable to create multi sampled framebuffer");i.bindRenderbuffer(i.RENDERBUFFER,r),i.renderbufferStorageMultisample(i.RENDERBUFFER,t,this._getRGBAMultiSampleBufferFormat(e.type),e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,r),e._MSAARenderBuffer=r}else this._bindUnboundFramebuffer(e._framebuffer);return e.samples=t,e._depthStencilBuffer=this._setupFramebufferDepthAttachments(e._generateStencilBuffer,e._generateDepthBuffer,e.width,e.height,t),i.bindRenderbuffer(i.RENDERBUFFER,null),this._bindUnboundFramebuffer(null),t},e.prototype._uploadCompressedDataToTextureDirectly=function(e,t,i,n,r,o,s){void 0===o&&(o=0),void 0===s&&(s=0);var a=this._gl,c=a.TEXTURE_2D;e.isCube&&(c=a.TEXTURE_CUBE_MAP_POSITIVE_X+o),this._gl.compressedTexImage2D(c,s,t,i,n,0,r)},e.prototype._uploadDataToTextureDirectly=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=this._gl,o=this._getWebGLTextureType(e.type),s=this._getInternalFormat(e.format),a=this._getRGBABufferInternalSizedFormat(e.type,s);this._unpackFlipY(e.invertY);var c=r.TEXTURE_2D;e.isCube&&(c=r.TEXTURE_CUBE_MAP_POSITIVE_X+i);var l=Math.round(u.a.Log2(e.width)),h=Math.round(u.a.Log2(e.height)),d=Math.pow(2,Math.max(l-n,0)),f=Math.pow(2,Math.max(h-n,0));r.texImage2D(c,n,a,d,f,0,s,o,t)},e.prototype._uploadArrayBufferViewToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=this._gl,o=e.isCube?r.TEXTURE_CUBE_MAP:r.TEXTURE_2D;this._bindTextureDirectly(o,e,!0),this._uploadDataToTextureDirectly(e,t,i,n),this._bindTextureDirectly(o,null,!0)},e.prototype._uploadImageToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=this._gl,o=this._getWebGLTextureType(e.type),s=this._getInternalFormat(e.format),a=this._getRGBABufferInternalSizedFormat(e.type,s),c=e.isCube?r.TEXTURE_CUBE_MAP:r.TEXTURE_2D;this._bindTextureDirectly(c,e,!0),this._unpackFlipY(e.invertY);var l=r.TEXTURE_2D;e.isCube&&(l=r.TEXTURE_CUBE_MAP_POSITIVE_X+i),r.texImage2D(l,n,a,s,o,t),this._bindTextureDirectly(c,null,!0)},e.prototype._setCubeMapTextureParams=function(e){var t=this._gl;t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MIN_FILTER,e?t.LINEAR_MIPMAP_LINEAR:t.LINEAR),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this._bindTextureDirectly(t.TEXTURE_CUBE_MAP,null)},e.prototype.createRawCubeTexture=function(e,t,i,n,r,o,s,a){throw void 0===a&&(a=null),b.a.WarnImport("Engine.RawTexture")},e.prototype.createRawTexture3D=function(t,i,n,r,o,s,a,c,l,u){throw void 0===l&&(l=null),void 0===u&&(u=e.TEXTURETYPE_UNSIGNED_INT),b.a.WarnImport("Engine.RawTexture")},e.prototype._prepareWebGLTextureContinuation=function(e,t,i,n,r){var o=this._gl;if(o){var s=this._getSamplingParameters(r,!i);o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,s.mag),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,s.min),i||n||o.generateMipmap(o.TEXTURE_2D),this._bindTextureDirectly(o.TEXTURE_2D,null),t&&t._removePendingData(e),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear()}},e.prototype._prepareWebGLTexture=function(t,i,n,r,o,s,a,l,u){var h=this;void 0===u&&(u=e.TEXTURE_TRILINEAR_SAMPLINGMODE);var d=this.getCaps().maxTextureSize,f=Math.min(d,this.needPOTTextures?c.h.GetExponentOfTwo(n,d):n),p=Math.min(d,this.needPOTTextures?c.h.GetExponentOfTwo(r,d):r),_=this._gl;_&&(t._webGLTexture?(this._bindTextureDirectly(_.TEXTURE_2D,t,!0),this._unpackFlipY(void 0===o||!!o),t.baseWidth=n,t.baseHeight=r,t.width=f,t.height=p,t.isReady=!0,l(f,p,function(){h._prepareWebGLTextureContinuation(t,i,s,a,u)})||this._prepareWebGLTextureContinuation(t,i,s,a,u)):i&&i._removePendingData(t))},e.prototype._convertRGBtoRGBATextureData=function(t,i,n,r){var o;o=r===e.TEXTURETYPE_FLOAT?new Float32Array(i*n*4):new Uint32Array(i*n*4);for(var s=0;s-1;return i&&o&&(this._activeChannel=t._associatedChannel),this._boundTexturesCache[this._activeChannel]!==t||n?(this._activateCurrentTexture(),t&&t.isMultiview?this._gl.bindTexture(e,t?t._colorTextureArray:null):this._gl.bindTexture(e,t?t._webGLTexture:null),this._boundTexturesCache[this._activeChannel]=t,t&&(t._associatedChannel=this._activeChannel)):i&&(r=!0,this._activateCurrentTexture()),o&&!i&&this._bindSamplerUniformToChannel(t._associatedChannel,this._activeChannel),r},e.prototype._bindTexture=function(e,t){void 0!==e&&(t&&(t._associatedChannel=e),this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,t))},e.prototype.setTextureFromPostProcess=function(e,t){this._bindTexture(e,t?t._textures.data[t._currentRenderTextureInd]:null)},e.prototype.setTextureFromPostProcessOutput=function(e,t){this._bindTexture(e,t?t._outputTexture:null)},e.prototype.unbindAllTextures=function(){for(var e=0;e1&&this._bindTextureDirectly(this._gl.TEXTURE_3D,null)},e.prototype.setTexture=function(e,t,i){void 0!==e&&(t&&(this._boundUniforms[e]=t),this._setTexture(e,i))},e.prototype.setDepthStencilTexture=function(e,t,i){void 0!==e&&(t&&(this._boundUniforms[e]=t),i&&i.depthStencilTexture?this._setTexture(e,i,!1,!0):this._setTexture(e,null))},e.prototype._bindSamplerUniformToChannel=function(e,t){var i=this._boundUniforms[e];i._currentState!==t&&(this._gl.uniform1i(i,t),i._currentState=t)},e.prototype._getTextureWrapMode=function(t){switch(t){case e.TEXTURE_WRAP_ADDRESSMODE:return this._gl.REPEAT;case e.TEXTURE_CLAMP_ADDRESSMODE:return this._gl.CLAMP_TO_EDGE;case e.TEXTURE_MIRROR_ADDRESSMODE:return this._gl.MIRRORED_REPEAT}return this._gl.REPEAT},e.prototype._setTexture=function(t,i,n,r){if(void 0===n&&(n=!1),void 0===r&&(r=!1),!i)return null!=this._boundTexturesCache[t]&&(this._activeChannel=t,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&this._bindTextureDirectly(this._gl.TEXTURE_3D,null)),!1;if(i.video)this._activeChannel=t,i.update();else if(i.delayLoadState===e.DELAYLOADSTATE_NOTLOADED)return i.delayLoad(),!1;var o;o=r?i.depthStencilTexture:i.isReady()?i.getInternalTexture():i.isCube?this.emptyCubeTexture:i.is3D?this.emptyTexture3D:this.emptyTexture,!n&&o&&(o._associatedChannel=t);var s=!0;if(this._boundTexturesCache[t]===o&&(n||this._bindSamplerUniformToChannel(o._associatedChannel,t),s=!1),this._activeChannel=t,o&&o.isMultiview)s&&this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,o,n);else if(o&&o.is3D)s&&this._bindTextureDirectly(this._gl.TEXTURE_3D,o,n),o&&o._cachedWrapU!==i.wrapU&&(o._cachedWrapU=i.wrapU,this._setTextureParameterInteger(this._gl.TEXTURE_3D,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(i.wrapU),o)),o&&o._cachedWrapV!==i.wrapV&&(o._cachedWrapV=i.wrapV,this._setTextureParameterInteger(this._gl.TEXTURE_3D,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(i.wrapV),o)),o&&o._cachedWrapR!==i.wrapR&&(o._cachedWrapR=i.wrapR,this._setTextureParameterInteger(this._gl.TEXTURE_3D,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(i.wrapR),o)),this._setAnisotropicLevel(this._gl.TEXTURE_3D,i);else if(o&&o.isCube){if(s&&this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,o,n),o._cachedCoordinatesMode!==i.coordinatesMode){o._cachedCoordinatesMode=i.coordinatesMode;var a=i.coordinatesMode!==e.TEXTURE_CUBIC_MODE&&i.coordinatesMode!==e.TEXTURE_SKYBOX_MODE?this._gl.REPEAT:this._gl.CLAMP_TO_EDGE;this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP,this._gl.TEXTURE_WRAP_S,a,o),this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP,this._gl.TEXTURE_WRAP_T,a)}this._setAnisotropicLevel(this._gl.TEXTURE_CUBE_MAP,i)}else s&&this._bindTextureDirectly(this._gl.TEXTURE_2D,o,n),o&&o._cachedWrapU!==i.wrapU&&(o._cachedWrapU=i.wrapU,this._setTextureParameterInteger(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(i.wrapU),o)),o&&o._cachedWrapV!==i.wrapV&&(o._cachedWrapV=i.wrapV,this._setTextureParameterInteger(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(i.wrapV),o)),this._setAnisotropicLevel(this._gl.TEXTURE_2D,i);return!0},e.prototype.setTextureArray=function(e,t,i){if(void 0!==e&&t){this._textureUnits&&this._textureUnits.length===i.length||(this._textureUnits=new Int32Array(i.length));for(var n=0;n=this._caps.maxVertexAttribs||!this._vertexAttribArraysEnabled[e]||(this._gl.disableVertexAttribArray(e),this._vertexAttribArraysEnabled[e]=!1,this._currentBufferPointers[e].active=!1)}},e.prototype.releaseEffects=function(){for(var e in this._compiledEffects){var t=this._compiledEffects[e].getPipelineContext();this._deletePipelineContext(t)}this._compiledEffects={}},e.prototype.dispose=function(){for(this.hideLoadingUI(),this.stopRenderLoop(),this.onNewSceneAddedObservable.clear();this.postProcesses.length;)this.postProcesses[0].dispose();for(this._emptyTexture&&(this._releaseTexture(this._emptyTexture),this._emptyTexture=null),this._emptyCubeTexture&&(this._releaseTexture(this._emptyCubeTexture),this._emptyCubeTexture=null),this._rescalePostProcess&&this._rescalePostProcess.dispose();this.scenes.length;)this.scenes[0].dispose();1===e.Instances.length&&e.audioEngine&&e.audioEngine.dispose(),this.releaseEffects(),this.unbindAllAttributes(),this._boundUniforms=[],this._dummyFramebuffer&&this._gl.deleteFramebuffer(this._dummyFramebuffer),this.disableVR(),g.a.IsWindowObjectExist()&&(window.removeEventListener("blur",this._onBlur),window.removeEventListener("focus",this._onFocus),this._renderingCanvas&&(this._renderingCanvas.removeEventListener("focus",this._onCanvasFocus),this._renderingCanvas.removeEventListener("blur",this._onCanvasBlur),this._renderingCanvas.removeEventListener("pointerout",this._onCanvasPointerOut),this._doNotHandleContextLost||(this._renderingCanvas.removeEventListener("webglcontextlost",this._onContextLost),this._renderingCanvas.removeEventListener("webglcontextrestored",this._onContextRestored))),document.removeEventListener("fullscreenchange",this._onFullscreenChange),document.removeEventListener("mozfullscreenchange",this._onFullscreenChange),document.removeEventListener("webkitfullscreenchange",this._onFullscreenChange),document.removeEventListener("msfullscreenchange",this._onFullscreenChange),document.removeEventListener("pointerlockchange",this._onPointerLockChange),document.removeEventListener("mspointerlockchange",this._onPointerLockChange),document.removeEventListener("mozpointerlockchange",this._onPointerLockChange),document.removeEventListener("webkitpointerlockchange",this._onPointerLockChange));var t=e.Instances.indexOf(this);t>=0&&e.Instances.splice(t,1),this._workingCanvas=null,this._workingContext=null,this._currentBufferPointers=[],this._renderingCanvas=null,this._currentProgram=null,this._bindedRenderFunction=null,this.onResizeObservable.clear(),this.onCanvasBlurObservable.clear(),this.onCanvasFocusObservable.clear(),this.onCanvasPointerOutObservable.clear(),this.onBeginFrameObservable.clear(),this.onEndFrameObservable.clear(),h.a.ResetCache();for(var i=0,n=this._activeRequests;i-1?s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_CUBE_MAP_POSITIVE_X+n,e._webGLTexture,r):s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,e._webGLTexture,r);var c=void 0!==e.type?this._getWebGLTextureType(e.type):s.UNSIGNED_BYTE;switch(c){case s.UNSIGNED_BYTE:o||(o=new Uint8Array(4*t*i)),c=s.UNSIGNED_BYTE;break;default:o||(o=new Float32Array(4*t*i)),c=s.FLOAT}return s.readPixels(0,0,t,i,s.RGBA,c,o),s.bindFramebuffer(s.FRAMEBUFFER,this._currentFramebuffer),o},e.prototype._canRenderToFloatFramebuffer=function(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(e.TEXTURETYPE_FLOAT)},e.prototype._canRenderToHalfFloatFramebuffer=function(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(e.TEXTURETYPE_HALF_FLOAT)},e.prototype._canRenderToFramebuffer=function(e){for(var t=this._gl;t.getError()!==t.NO_ERROR;);var i=!0,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(e),1,1,0,t.RGBA,this._getWebGLTextureType(e),null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST);var r=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n,0);var o=t.checkFramebufferStatus(t.FRAMEBUFFER);if((i=(i=i&&o===t.FRAMEBUFFER_COMPLETE)&&t.getError()===t.NO_ERROR)&&(t.clear(t.COLOR_BUFFER_BIT),i=i&&t.getError()===t.NO_ERROR),i){t.bindFramebuffer(t.FRAMEBUFFER,null);var s=t.RGBA,a=t.UNSIGNED_BYTE,c=new Uint8Array(4);t.readPixels(0,0,1,1,s,a,c),i=i&&t.getError()===t.NO_ERROR}for(t.deleteTexture(n),t.deleteFramebuffer(r),t.bindFramebuffer(t.FRAMEBUFFER,null);!i&&t.getError()!==t.NO_ERROR;);return i},e.prototype._getWebGLTextureType=function(t){if(1===this._webGLVersion){switch(t){case e.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case e.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT_OES;case e.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE}return this._gl.UNSIGNED_BYTE}switch(t){case e.TEXTURETYPE_BYTE:return this._gl.BYTE;case e.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case e.TEXTURETYPE_SHORT:return this._gl.SHORT;case e.TEXTURETYPE_UNSIGNED_SHORT:return this._gl.UNSIGNED_SHORT;case e.TEXTURETYPE_INT:return this._gl.INT;case e.TEXTURETYPE_UNSIGNED_INTEGER:return this._gl.UNSIGNED_INT;case e.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case e.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT;case e.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case e.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case e.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5;case e.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:return this._gl.UNSIGNED_INT_2_10_10_10_REV;case e.TEXTURETYPE_UNSIGNED_INT_24_8:return this._gl.UNSIGNED_INT_24_8;case e.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.UNSIGNED_INT_10F_11F_11F_REV;case e.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.UNSIGNED_INT_5_9_9_9_REV;case e.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV:return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV}return this._gl.UNSIGNED_BYTE},e.prototype._getInternalFormat=function(t){var i=this._gl.RGBA;switch(t){case e.TEXTUREFORMAT_ALPHA:i=this._gl.ALPHA;break;case e.TEXTUREFORMAT_LUMINANCE:i=this._gl.LUMINANCE;break;case e.TEXTUREFORMAT_LUMINANCE_ALPHA:i=this._gl.LUMINANCE_ALPHA;break;case e.TEXTUREFORMAT_RED:i=this._gl.RED;break;case e.TEXTUREFORMAT_RG:i=this._gl.RG;break;case e.TEXTUREFORMAT_RGB:i=this._gl.RGB;break;case e.TEXTUREFORMAT_RGBA:i=this._gl.RGBA}if(this._webGLVersion>1)switch(t){case e.TEXTUREFORMAT_RED_INTEGER:i=this._gl.RED_INTEGER;break;case e.TEXTUREFORMAT_RG_INTEGER:i=this._gl.RG_INTEGER;break;case e.TEXTUREFORMAT_RGB_INTEGER:i=this._gl.RGB_INTEGER;break;case e.TEXTUREFORMAT_RGBA_INTEGER:i=this._gl.RGBA_INTEGER}return i},e.prototype._getRGBABufferInternalSizedFormat=function(t,i){if(1===this._webGLVersion){if(void 0!==i)switch(i){case e.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case e.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case e.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA}return this._gl.RGBA}switch(t){case e.TEXTURETYPE_BYTE:switch(i){case e.TEXTUREFORMAT_RED:return this._gl.R8_SNORM;case e.TEXTUREFORMAT_RG:return this._gl.RG8_SNORM;case e.TEXTUREFORMAT_RGB:return this._gl.RGB8_SNORM;case e.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8I;case e.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8I;case e.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8I;case e.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8I;default:return this._gl.RGBA8_SNORM}case e.TEXTURETYPE_UNSIGNED_BYTE:switch(i){case e.TEXTUREFORMAT_RED:return this._gl.R8;case e.TEXTUREFORMAT_RG:return this._gl.RG8;case e.TEXTUREFORMAT_RGB:return this._gl.RGB8;case e.TEXTUREFORMAT_RGBA:return this._gl.RGBA8;case e.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8UI;case e.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8UI;case e.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8UI;case e.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8UI;case e.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case e.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case e.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;default:return this._gl.RGBA8}case e.TEXTURETYPE_SHORT:switch(i){case e.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16I;case e.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16I;case e.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16I;case e.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16I}case e.TEXTURETYPE_UNSIGNED_SHORT:switch(i){case e.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16UI;case e.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16UI;case e.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16UI;case e.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16UI}case e.TEXTURETYPE_INT:switch(i){case e.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32I;case e.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32I;case e.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32I;case e.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32I}case e.TEXTURETYPE_UNSIGNED_INTEGER:switch(i){case e.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32UI;case e.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32UI;case e.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32UI;case e.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32UI}case e.TEXTURETYPE_FLOAT:switch(i){case e.TEXTUREFORMAT_RED:return this._gl.R32F;case e.TEXTUREFORMAT_RG:return this._gl.RG32F;case e.TEXTUREFORMAT_RGB:return this._gl.RGB32F;case e.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA32F}case e.TEXTURETYPE_HALF_FLOAT:switch(i){case e.TEXTUREFORMAT_RED:return this._gl.R16F;case e.TEXTUREFORMAT_RG:return this._gl.RG16F;case e.TEXTUREFORMAT_RGB:return this._gl.RGB16F;case e.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA16F}case e.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.RGB565;case e.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.R11F_G11F_B10F;case e.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.RGB9_E5;case e.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.RGBA4;case e.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.RGB5_A1;case e.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:switch(i){case e.TEXTUREFORMAT_RGBA:return this._gl.RGB10_A2;case e.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGB10_A2UI;default:return this._gl.RGB10_A2}}return this._gl.RGBA8},e.prototype._getRGBAMultiSampleBufferFormat=function(t){return t===e.TEXTURETYPE_FLOAT?this._gl.RGBA32F:t===e.TEXTURETYPE_HALF_FLOAT?this._gl.RGBA16F:this._gl.RGBA8},e.prototype._loadFile=function(e,t,i,n,r,o){var s=this,a=c.h.LoadFile(e,t,i,n,r,o);return this._activeRequests.push(a),a.onCompleteObservable.add(function(e){s._activeRequests.splice(s._activeRequests.indexOf(e),1)}),a},e.prototype._loadFileAsync=function(e,t,i){var n=this;return new Promise(function(r,o){n._loadFile(e,function(e){r(e)},void 0,t,i,function(e,t){o(t)})})},e.isSupported=function(){try{var e=document.createElement("canvas");return null!=(e.getContext("webgl")||e.getContext("experimental-webgl"))&&!!window.WebGLRenderingContext}catch(e){return!1}},e.ExceptionList=[{key:"Chrome/63.0",capture:"63\\.0\\.3239\\.(\\d+)",captureConstraint:108,targets:["uniformBuffer"]},{key:"Firefox/58",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Firefox/59",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/72.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/73.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/74.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/71",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/72",capture:null,captureConstraint:null,targets:["vao"]}],e._TextureLoaders=[],e.ALPHA_DISABLE=_.a.ALPHA_DISABLE,e.ALPHA_ADD=_.a.ALPHA_ADD,e.ALPHA_COMBINE=_.a.ALPHA_COMBINE,e.ALPHA_SUBTRACT=_.a.ALPHA_SUBTRACT,e.ALPHA_MULTIPLY=_.a.ALPHA_MULTIPLY,e.ALPHA_MAXIMIZED=_.a.ALPHA_MAXIMIZED,e.ALPHA_ONEONE=_.a.ALPHA_ONEONE,e.ALPHA_PREMULTIPLIED=_.a.ALPHA_PREMULTIPLIED,e.ALPHA_PREMULTIPLIED_PORTERDUFF=_.a.ALPHA_PREMULTIPLIED_PORTERDUFF,e.ALPHA_INTERPOLATE=_.a.ALPHA_INTERPOLATE,e.ALPHA_SCREENMODE=_.a.ALPHA_SCREENMODE,e.DELAYLOADSTATE_NONE=_.a.DELAYLOADSTATE_NONE,e.DELAYLOADSTATE_LOADED=_.a.DELAYLOADSTATE_LOADED,e.DELAYLOADSTATE_LOADING=_.a.DELAYLOADSTATE_LOADING,e.DELAYLOADSTATE_NOTLOADED=_.a.DELAYLOADSTATE_NOTLOADED,e.NEVER=_.a.NEVER,e.ALWAYS=_.a.ALWAYS,e.LESS=_.a.LESS,e.EQUAL=_.a.EQUAL,e.LEQUAL=_.a.LEQUAL,e.GREATER=_.a.GREATER,e.GEQUAL=_.a.GEQUAL,e.NOTEQUAL=_.a.NOTEQUAL,e.KEEP=_.a.KEEP,e.REPLACE=_.a.REPLACE,e.INCR=_.a.INCR,e.DECR=_.a.DECR,e.INVERT=_.a.INVERT,e.INCR_WRAP=_.a.INCR_WRAP,e.DECR_WRAP=_.a.DECR_WRAP,e.TEXTURE_CLAMP_ADDRESSMODE=_.a.TEXTURE_CLAMP_ADDRESSMODE,e.TEXTURE_WRAP_ADDRESSMODE=_.a.TEXTURE_WRAP_ADDRESSMODE,e.TEXTURE_MIRROR_ADDRESSMODE=_.a.TEXTURE_MIRROR_ADDRESSMODE,e.TEXTUREFORMAT_ALPHA=_.a.TEXTUREFORMAT_ALPHA,e.TEXTUREFORMAT_LUMINANCE=_.a.TEXTUREFORMAT_LUMINANCE,e.TEXTUREFORMAT_LUMINANCE_ALPHA=_.a.TEXTUREFORMAT_LUMINANCE_ALPHA,e.TEXTUREFORMAT_RGB=_.a.TEXTUREFORMAT_RGB,e.TEXTUREFORMAT_RGBA=_.a.TEXTUREFORMAT_RGBA,e.TEXTUREFORMAT_RED=_.a.TEXTUREFORMAT_RED,e.TEXTUREFORMAT_R=_.a.TEXTUREFORMAT_R,e.TEXTUREFORMAT_RG=_.a.TEXTUREFORMAT_RG,e.TEXTUREFORMAT_RED_INTEGER=_.a.TEXTUREFORMAT_RED_INTEGER,e.TEXTUREFORMAT_R_INTEGER=_.a.TEXTUREFORMAT_R_INTEGER,e.TEXTUREFORMAT_RG_INTEGER=_.a.TEXTUREFORMAT_RG_INTEGER,e.TEXTUREFORMAT_RGB_INTEGER=_.a.TEXTUREFORMAT_RGB_INTEGER,e.TEXTUREFORMAT_RGBA_INTEGER=_.a.TEXTUREFORMAT_RGBA_INTEGER,e.TEXTURETYPE_UNSIGNED_BYTE=_.a.TEXTURETYPE_UNSIGNED_BYTE,e.TEXTURETYPE_UNSIGNED_INT=_.a.TEXTURETYPE_UNSIGNED_INT,e.TEXTURETYPE_FLOAT=_.a.TEXTURETYPE_FLOAT,e.TEXTURETYPE_HALF_FLOAT=_.a.TEXTURETYPE_HALF_FLOAT,e.TEXTURETYPE_BYTE=_.a.TEXTURETYPE_BYTE,e.TEXTURETYPE_SHORT=_.a.TEXTURETYPE_SHORT,e.TEXTURETYPE_UNSIGNED_SHORT=_.a.TEXTURETYPE_UNSIGNED_SHORT,e.TEXTURETYPE_INT=_.a.TEXTURETYPE_INT,e.TEXTURETYPE_UNSIGNED_INTEGER=_.a.TEXTURETYPE_UNSIGNED_INTEGER,e.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=_.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4,e.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=_.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1,e.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=_.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,e.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=_.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV,e.TEXTURETYPE_UNSIGNED_INT_24_8=_.a.TEXTURETYPE_UNSIGNED_INT_24_8,e.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=_.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV,e.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=_.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV,e.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=_.a.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,e.TEXTURE_NEAREST_SAMPLINGMODE=_.a.TEXTURE_NEAREST_SAMPLINGMODE,e.TEXTURE_BILINEAR_SAMPLINGMODE=_.a.TEXTURE_BILINEAR_SAMPLINGMODE,e.TEXTURE_TRILINEAR_SAMPLINGMODE=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE,e.TEXTURE_NEAREST_NEAREST_MIPLINEAR=_.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR,e.TEXTURE_LINEAR_LINEAR_MIPNEAREST=_.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST,e.TEXTURE_LINEAR_LINEAR_MIPLINEAR=_.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR,e.TEXTURE_NEAREST_NEAREST_MIPNEAREST=_.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST,e.TEXTURE_NEAREST_LINEAR_MIPNEAREST=_.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST,e.TEXTURE_NEAREST_LINEAR_MIPLINEAR=_.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR,e.TEXTURE_NEAREST_LINEAR=_.a.TEXTURE_NEAREST_LINEAR,e.TEXTURE_NEAREST_NEAREST=_.a.TEXTURE_NEAREST_NEAREST,e.TEXTURE_LINEAR_NEAREST_MIPNEAREST=_.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST,e.TEXTURE_LINEAR_NEAREST_MIPLINEAR=_.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR,e.TEXTURE_LINEAR_LINEAR=_.a.TEXTURE_LINEAR_LINEAR,e.TEXTURE_LINEAR_NEAREST=_.a.TEXTURE_LINEAR_NEAREST,e.TEXTURE_EXPLICIT_MODE=_.a.TEXTURE_EXPLICIT_MODE,e.TEXTURE_SPHERICAL_MODE=_.a.TEXTURE_SPHERICAL_MODE,e.TEXTURE_PLANAR_MODE=_.a.TEXTURE_PLANAR_MODE,e.TEXTURE_CUBIC_MODE=_.a.TEXTURE_CUBIC_MODE,e.TEXTURE_PROJECTION_MODE=_.a.TEXTURE_PROJECTION_MODE,e.TEXTURE_SKYBOX_MODE=_.a.TEXTURE_SKYBOX_MODE,e.TEXTURE_INVCUBIC_MODE=_.a.TEXTURE_INVCUBIC_MODE,e.TEXTURE_EQUIRECTANGULAR_MODE=_.a.TEXTURE_EQUIRECTANGULAR_MODE,e.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=_.a.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,e.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=_.a.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,e.SCALEMODE_FLOOR=_.a.SCALEMODE_FLOOR,e.SCALEMODE_NEAREST=_.a.SCALEMODE_NEAREST,e.SCALEMODE_CEILING=_.a.SCALEMODE_CEILING,e.CollisionsEpsilon=.001,e._RescalePostProcessFactory=null,e}()},function(e,t,i){"use strict";i.d(t,"b",function(){return P}),i.d(t,"c",function(){return C}),i.d(t,"a",function(){return O});var n=i(1),r=i(8),o=i(9),s=i(32),a=i(29),c=i(0),l=i(25),u=i(4),h=i(13),d=i(57),f=i(24),p=i(49),_=i(43),g=i(20),m=i(66),v=i(55),y=i(3),b=i(2),T=i(6),E=i(22),A=i(19),x=i(14),R=i(110),P=function(){return function(){}}(),S=function(){return function(){this.visibleInstances={},this.batchCache=new C,this.instancesBufferSize=2048}}(),C=function(){return function(){this.mustReturn=!1,this.visibleInstances=new Array,this.renderSelf=new Array,this.hardwareInstancedRendering=new Array}}(),M=function(){return function(){this._areNormalsFrozen=!1,this._source=null,this.meshMap=null,this._preActivateId=-1,this._LODLevels=new Array,this._morphTargetManager=null}}(),O=function(e){function t(i,n,r,o,c,l){void 0===n&&(n=null),void 0===r&&(r=null),void 0===o&&(o=null),void 0===l&&(l=!0);var u=e.call(this,i,n)||this;if(u._internalMeshDataInfo=new M,u.delayLoadState=y.a.DELAYLOADSTATE_NONE,u.instances=new Array,u._creationDataStorage=null,u._geometry=null,u._instanceDataStorage=new S,u._effectiveMaterial=null,u._shouldGenerateFlatShading=!1,u._originalBuilderSideOrientation=t.DEFAULTSIDE,u.overrideMaterialSideOrientation=null,n=u.getScene(),o){if(o._geometry&&o._geometry.applyToMesh(u),s.a.DeepCopy(o,u,["name","material","skeleton","instances","parent","uniqueId","source","metadata","hasLODLevels","geometry","isBlocked","areNormalsFrozen","onBeforeDrawObservable","onBeforeRenderObservable","onAfterRenderObservable","onBeforeDraw","onAfterWorldMatrixUpdateObservable","onCollideObservable","onCollisionPositionChangeObservable","onRebuildObservable","onDisposeObservable"],["_poseMatrix"]),u._internalMeshDataInfo._source=o,n.useClonedMeshhMap&&(o._internalMeshDataInfo.meshMap||(o._internalMeshDataInfo.meshMap={}),o._internalMeshDataInfo.meshMap[u.uniqueId]=u),u._originalBuilderSideOrientation=o._originalBuilderSideOrientation,u._creationDataStorage=o._creationDataStorage,o._ranges){var h=o._ranges;for(var i in h)h.hasOwnProperty(i)&&h[i]&&u.createAnimationRange(i,h[i].from,h[i].to)}var d;if(o.metadata&&o.metadata.clone?u.metadata=o.metadata.clone():u.metadata=o.metadata,a.a&&a.a.HasTags(o)&&a.a.AddTagsTo(u,a.a.GetTags(o,!0)),u.parent=o.parent,u.setPivotMatrix(o.getPivotMatrix()),u.id=i+"."+o.id,u.material=o.material,!c)for(var f=o.getDescendants(!0),p=0;p0},enumerable:!0,configurable:!0}),t.prototype.getLODLevels=function(){return this._internalMeshDataInfo._LODLevels},t.prototype._sortLODLevels=function(){this._internalMeshDataInfo._LODLevels.sort(function(e,t){return e.distancet.distance?-1:0})},t.prototype.addLODLevel=function(e,t){if(t&&t._masterMesh)return T.a.Warn("You cannot use a mesh as LOD level twice"),this;var i=new R.a(e,t);return this._internalMeshDataInfo._LODLevels.push(i),t&&(t._masterMesh=this),this._sortLODLevels(),this},t.prototype.getLODLevelAtDistance=function(e){for(var t=this._internalMeshDataInfo,i=0;ir)return this.onLODLevelSelection&&this.onLODLevelSelection(r,this,n._LODLevels[n._LODLevels.length-1].mesh),this;for(var o=0;o0;this.computeWorldMatrix();var s=this.material||r.defaultMaterial;if(s)if(s._storeEffectOnSubMeshes)for(var a=0,c=this.subMeshes;a0){var i=this.getIndices();if(!i)return null;var n=i.length,r=!1;if(e)r=!0;else for(var o=0,s=this.subMeshes;o=n){r=!0;break}if(a.verticesStart+a.verticesCount>=t){r=!0;break}}if(!r)return this.subMeshes[0]}return this.releaseSubMeshes(),new p.b(0,0,t,0,this.getTotalIndices(),this)},t.prototype.subdivide=function(e){if(!(e<1)){for(var t=this.getTotalIndices(),i=t/e|0,n=0;i%3!=0;)i++;this.releaseSubMeshes();for(var r=0;r=t);r++)p.b.CreateFromIndices(0,n,Math.min(i,t-n),this),n+=i;this.synchronizeInstances()}},t.prototype.setVerticesData=function(e,t,i,n){if(void 0===i&&(i=!1),this._geometry)this._geometry.setVerticesData(e,t,i,n);else{var r=new h.a;r.set(t,e);var o=this.getScene();new d.a(d.a.RandomId(),o,r,i,this)}return this},t.prototype.markVerticesDataAsUpdatable=function(e,t){void 0===t&&(t=!0);var i=this.getVertexBuffer(e);i&&i.isUpdatable()!==t&&this.setVerticesData(e,this.getVerticesData(e),t)},t.prototype.setVerticesBuffer=function(e){return this._geometry||(this._geometry=d.a.CreateGeometryForMesh(this)),this._geometry.setVerticesBuffer(e),this},t.prototype.updateVerticesData=function(e,t,i,n){return this._geometry?(n?(this.makeGeometryUnique(),this.updateVerticesData(e,t,i,!1)):this._geometry.updateVerticesData(e,t,i),this):this},t.prototype.updateMeshPositions=function(e,t){void 0===t&&(t=!0);var i=this.getVerticesData(u.b.PositionKind);if(!i)return this;if(e(i),this.updateVerticesData(u.b.PositionKind,i,!1,!1),t){var n=this.getIndices(),r=this.getVerticesData(u.b.NormalKind);if(!r)return this;h.a.ComputeNormals(i,n,r),this.updateVerticesData(u.b.NormalKind,r,!1,!1)}return this},t.prototype.makeGeometryUnique=function(){if(!this._geometry)return this;var e=this._geometry,t=this._geometry.copy(d.a.RandomId());return e.releaseForMesh(this,!0),t.applyToMesh(this),this},t.prototype.setIndices=function(e,t,i){if(void 0===t&&(t=null),void 0===i&&(i=!1),this._geometry)this._geometry.setIndices(e,t,i);else{var n=new h.a;n.indices=e;var r=this.getScene();new d.a(d.a.RandomId(),r,n,i,this)}return this},t.prototype.updateIndices=function(e,t,i){return void 0===i&&(i=!1),this._geometry?(this._geometry.updateIndices(e,t,i),this):this},t.prototype.toLeftHanded=function(){return this._geometry?(this._geometry.toLeftHanded(),this):this},t.prototype._bind=function(e,t,i){if(!this._geometry)return this;var n,r=this.getScene().getEngine();if(this._unIndexed)n=null;else switch(i){case g.a.PointFillMode:n=null;break;case g.a.WireFrameFillMode:n=e._getLinesIndexBuffer(this.getIndices(),r);break;default:case g.a.TriangleFillMode:n=this._geometry.getIndexBuffer()}return this._geometry._bind(t,n),this},t.prototype._draw=function(e,t,i){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;this._internalMeshDataInfo._onBeforeDrawObservable&&this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this);var n=this.getScene().getEngine();return this._unIndexed||t==g.a.PointFillMode?n.drawArraysType(t,e.verticesStart,e.verticesCount,i):t==g.a.WireFrameFillMode?n.drawElementsType(t,0,e._linesIndexCount,i):n.drawElementsType(t,e.indexStart,e.indexCount,i),this},t.prototype.registerBeforeRender=function(e){return this.onBeforeRenderObservable.add(e),this},t.prototype.unregisterBeforeRender=function(e){return this.onBeforeRenderObservable.removeCallback(e),this},t.prototype.registerAfterRender=function(e){return this.onAfterRenderObservable.add(e),this},t.prototype.unregisterAfterRender=function(e){return this.onAfterRenderObservable.removeCallback(e),this},t.prototype._getInstancesRenderList=function(e){if(this._instanceDataStorage.isFrozen&&this._instanceDataStorage.previousBatch)return this._instanceDataStorage.previousBatch;var t=this.getScene(),i=t._isInIntermediateRendering(),n=i?this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate:this._internalAbstractMeshDataInfo._onlyForInstances,r=this._instanceDataStorage.batchCache;if(r.mustReturn=!1,r.renderSelf[e]=!n&&this.isEnabled()&&this.isVisible,r.visibleInstances[e]=null,this._instanceDataStorage.visibleInstances){var o=this._instanceDataStorage.visibleInstances,s=t.getRenderId(),a=i?o.intermediateDefaultRenderId:o.defaultRenderId;r.visibleInstances[e]=o[s],!r.visibleInstances[e]&&a&&(r.visibleInstances[e]=o[a])}return r.hardwareInstancedRendering[e]=this._instanceDataStorage.hardwareInstancedRendering&&null!==r.visibleInstances[e]&&void 0!==r.visibleInstances[e],this._instanceDataStorage.previousBatch=r,r},t.prototype._renderWithInstances=function(e,t,i,n,r){var o=i.visibleInstances[e._id];if(!o)return this;for(var s=this._instanceDataStorage,a=s.instancesBufferSize,c=s.instancesBuffer,l=16*(o.length+1)*4;s.instancesBufferSizeh&&n++,0!==_&&f++,d+=_,h=_}if(c[f]++,f>o&&(o=f),0===d)r++;else{var g=1/d,m=0;for(p=0;p.001&&s++}}var v=this.skeleton.bones.length,y=this.getVerticesData(u.b.MatricesIndicesKind),b=this.getVerticesData(u.b.MatricesIndicesExtraKind),T=0;for(l=0;l=v||E<0)&&T++}return{skinned:!0,valid:0===r&&0===s&&0===T,report:"Number of Weights = "+i/4+"\nMaximum influences = "+o+"\nMissing Weights = "+r+"\nNot Sorted = "+n+"\nNot Normalized = "+s+"\nWeightCounts = ["+c+"]\nNumber of bones = "+v+"\nBad Bone Indices = "+T}},t.prototype._checkDelayState=function(){var e=this.getScene();return this._geometry?this._geometry.load(e):this.delayLoadState===y.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=y.a.DELAYLOADSTATE_LOADING,this._queueLoad(e)),this},t.prototype._queueLoad=function(e){var t=this;e._addPendingData(this);var i=-1!==this.delayLoadingFile.indexOf(".babylonbinarymeshdata");return o.h.LoadFile(this.delayLoadingFile,function(i){i instanceof ArrayBuffer?t._delayLoadingFunction(i,t):t._delayLoadingFunction(JSON.parse(i),t),t.instances.forEach(function(e){e.refreshBoundingInfo(),e._syncSubMeshes()}),t.delayLoadState=y.a.DELAYLOADSTATE_LOADED,e._removePendingData(t)},function(){},e.offlineProvider,i),this},t.prototype.isInFrustum=function(t){return this.delayLoadState!==y.a.DELAYLOADSTATE_LOADING&&(!!e.prototype.isInFrustum.call(this,t)&&(this._checkDelayState(),!0))},t.prototype.setMaterialByID=function(e){var t,i=this.getScene().materials;for(t=i.length-1;t>-1;t--)if(i[t].id===e)return this.material=i[t],this;var n=this.getScene().multiMaterials;for(t=n.length-1;t>-1;t--)if(n[t].id===e)return this.material=n[t],this;return this},t.prototype.getAnimatables=function(){var e=new Array;return this.material&&e.push(this.material),this.skeleton&&e.push(this.skeleton),e},t.prototype.bakeTransformIntoVertices=function(e){if(!this.isVerticesDataPresent(u.b.PositionKind))return this;var t=this.subMeshes.splice(0);this._resetPointsArrayCache();var i,n=this.getVerticesData(u.b.PositionKind),r=new Array;for(i=0;i-1&&(r.morphTargetManager=i.getMorphTargetManagerById(e.morphTargetManagerId)),e.skeletonId>-1&&(r.skeleton=i.getLastSkeletonByID(e.skeletonId),e.numBoneInfluencers&&(r.numBoneInfluencers=e.numBoneInfluencers)),e.animations){for(var o=0;o4,h=l?this.getVerticesData(u.b.MatricesIndicesExtraKind):null,d=l?this.getVerticesData(u.b.MatricesWeightsExtraKind):null,f=e.getTransformMatrices(this),p=c.x.Zero(),_=new c.j,g=new c.j,m=0,v=0;v0&&(c.j.FromFloat32ArrayToRefScaled(f,Math.floor(16*o[m+a]),y,g),_.addToSelf(g));if(l)for(a=0;a<4;a++)(y=d[m+a])>0&&(c.j.FromFloat32ArrayToRefScaled(f,Math.floor(16*h[m+a]),y,g),_.addToSelf(g));c.x.TransformCoordinatesFromFloatsToRef(t._sourcePositions[v],t._sourcePositions[v+1],t._sourcePositions[v+2],_,p),p.toArray(n,v),c.x.TransformNormalFromFloatsToRef(t._sourceNormals[v],t._sourceNormals[v+1],t._sourceNormals[v+2],_,p),p.toArray(r,v),_.reset()}return this.updateVerticesData(u.b.PositionKind,n),this.updateVerticesData(u.b.NormalKind,r),this},t.MinMax=function(e){var t=null,i=null;return e.forEach(function(e){var n=e.getBoundingInfo().boundingBox;t&&i?(t.minimizeInPlace(n.minimumWorld),i.maximizeInPlace(n.maximumWorld)):(t=n.minimumWorld,i=n.maximumWorld)}),t&&i?{min:t,max:i}:{min:c.x.Zero(),max:c.x.Zero()}},t.Center=function(e){var i=e instanceof Array?t.MinMax(e):e;return c.x.Center(i.min,i.max)},t.MergeMeshes=function(e,i,n,r,o,s){var a;if(void 0===i&&(i=!0),!n){var c=0;for(a=0;a65536)return T.a.Warn("Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices"),null}if(s){var l,u,d=null;o=!1}var f,_=new Array,g=new Array,v=null,y=new Array,b=null;for(a=0;a0?1:-1},e.Clamp=function(e,t,i){return void 0===t&&(t=0),void 0===i&&(i=1),Math.min(i,Math.max(t,e))},e.Log2=function(e){return Math.log(e)*Math.LOG2E},e.Repeat=function(e,t){return e-Math.floor(e/t)*t},e.Normalize=function(e,t,i){return(e-t)/(i-t)},e.Denormalize=function(e,t,i){return e*(i-t)+t},e.DeltaAngle=function(t,i){var n=e.Repeat(i-t,360);return n>180&&(n-=360),n},e.PingPong=function(t,i){var n=e.Repeat(t,2*i);return i-Math.abs(n-i)},e.SmoothStep=function(t,i,n){var r=e.Clamp(n);return i*(r=-2*r*r*r+3*r*r)+t*(1-r)},e.MoveTowards=function(t,i,n){return Math.abs(i-t)<=n?i:t+e.Sign(i-t)*n},e.MoveTowardsAngle=function(t,i,n){var r=e.DeltaAngle(t,i),o=0;return-n180&&(r-=360),t+r*e.Clamp(n)},e.InverseLerp=function(t,i,n){return t!=i?e.Clamp((n-t)/(i-t)):0},e.Hermite=function(e,t,i,n,r){var o=r*r,s=r*o;return e*(2*s-3*o+1)+i*(-2*s+3*o)+t*(s-2*o+r)+n*(s-o)},e.RandomRange=function(e,t){return e===t?e:Math.random()*(t-e)+e},e.RangeToPercent=function(e,t,i){return(e-t)/(i-t)},e.PercentToRange=function(e,t,i){return(i-t)*e+t},e.NormalizeRadians=function(t){return t-=e.TwoPi*Math.floor((t+Math.PI)/e.TwoPi)},e.TwoPi=2*Math.PI,e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return s});var n=i(0),r=i(4),o=i(19),s=function(){function e(){}return e.prototype.set=function(e,t){switch(t){case r.b.PositionKind:this.positions=e;break;case r.b.NormalKind:this.normals=e;break;case r.b.TangentKind:this.tangents=e;break;case r.b.UVKind:this.uvs=e;break;case r.b.UV2Kind:this.uvs2=e;break;case r.b.UV3Kind:this.uvs3=e;break;case r.b.UV4Kind:this.uvs4=e;break;case r.b.UV5Kind:this.uvs5=e;break;case r.b.UV6Kind:this.uvs6=e;break;case r.b.ColorKind:this.colors=e;break;case r.b.MatricesIndicesKind:this.matricesIndices=e;break;case r.b.MatricesWeightsKind:this.matricesWeights=e;break;case r.b.MatricesIndicesExtraKind:this.matricesIndicesExtra=e;break;case r.b.MatricesWeightsExtraKind:this.matricesWeightsExtra=e}},e.prototype.applyToMesh=function(e,t){return this._applyTo(e,t),this},e.prototype.applyToGeometry=function(e,t){return this._applyTo(e,t),this},e.prototype.updateMesh=function(e){return this._update(e),this},e.prototype.updateGeometry=function(e){return this._update(e),this},e.prototype._applyTo=function(e,t){return void 0===t&&(t=!1),this.positions&&e.setVerticesData(r.b.PositionKind,this.positions,t),this.normals&&e.setVerticesData(r.b.NormalKind,this.normals,t),this.tangents&&e.setVerticesData(r.b.TangentKind,this.tangents,t),this.uvs&&e.setVerticesData(r.b.UVKind,this.uvs,t),this.uvs2&&e.setVerticesData(r.b.UV2Kind,this.uvs2,t),this.uvs3&&e.setVerticesData(r.b.UV3Kind,this.uvs3,t),this.uvs4&&e.setVerticesData(r.b.UV4Kind,this.uvs4,t),this.uvs5&&e.setVerticesData(r.b.UV5Kind,this.uvs5,t),this.uvs6&&e.setVerticesData(r.b.UV6Kind,this.uvs6,t),this.colors&&e.setVerticesData(r.b.ColorKind,this.colors,t),this.matricesIndices&&e.setVerticesData(r.b.MatricesIndicesKind,this.matricesIndices,t),this.matricesWeights&&e.setVerticesData(r.b.MatricesWeightsKind,this.matricesWeights,t),this.matricesIndicesExtra&&e.setVerticesData(r.b.MatricesIndicesExtraKind,this.matricesIndicesExtra,t),this.matricesWeightsExtra&&e.setVerticesData(r.b.MatricesWeightsExtraKind,this.matricesWeightsExtra,t),this.indices?e.setIndices(this.indices,null,t):e.setIndices([],null),this},e.prototype._update=function(e,t,i){return this.positions&&e.updateVerticesData(r.b.PositionKind,this.positions,t,i),this.normals&&e.updateVerticesData(r.b.NormalKind,this.normals,t,i),this.tangents&&e.updateVerticesData(r.b.TangentKind,this.tangents,t,i),this.uvs&&e.updateVerticesData(r.b.UVKind,this.uvs,t,i),this.uvs2&&e.updateVerticesData(r.b.UV2Kind,this.uvs2,t,i),this.uvs3&&e.updateVerticesData(r.b.UV3Kind,this.uvs3,t,i),this.uvs4&&e.updateVerticesData(r.b.UV4Kind,this.uvs4,t,i),this.uvs5&&e.updateVerticesData(r.b.UV5Kind,this.uvs5,t,i),this.uvs6&&e.updateVerticesData(r.b.UV6Kind,this.uvs6,t,i),this.colors&&e.updateVerticesData(r.b.ColorKind,this.colors,t,i),this.matricesIndices&&e.updateVerticesData(r.b.MatricesIndicesKind,this.matricesIndices,t,i),this.matricesWeights&&e.updateVerticesData(r.b.MatricesWeightsKind,this.matricesWeights,t,i),this.matricesIndicesExtra&&e.updateVerticesData(r.b.MatricesIndicesExtraKind,this.matricesIndicesExtra,t,i),this.matricesWeightsExtra&&e.updateVerticesData(r.b.MatricesWeightsExtraKind,this.matricesWeightsExtra,t,i),this.indices&&e.setIndices(this.indices,null),this},e.prototype.transform=function(e){var t,i=e.m[0]*e.m[5]*e.m[10]<0,r=n.x.Zero();if(this.positions){var o=n.x.Zero();for(t=0;tr.bbSize.y?r.bbSize.x:r.bbSize.y;$=$>r.bbSize.z?$:r.bbSize.z,L=r.subDiv.X*O/r.bbSize.x,w=r.subDiv.Y*O/r.bbSize.y,F=r.subDiv.Z*O/r.bbSize.z,N=r.subDiv.max*r.subDiv.max,r.facetPartitioning.length=0}for(o=0;o0,t.NUM_MORPH_INFLUENCERS=l.numInfluencers):(t.MORPHTARGETS_TANGENT=!1,t.MORPHTARGETS_NORMAL=!1,t.MORPHTARGETS=!1,t.NUM_MORPH_INFLUENCERS=0)}return!0},e.PrepareDefinesForMultiview=function(e,t){if(e.activeCamera){var i=t.MULTIVIEW;t.MULTIVIEW=null!==e.activeCamera.outputRenderTarget&&e.activeCamera.outputRenderTarget.getViewCount()>1,t.MULTIVIEW!=i&&t.markAsUnprocessed()}},e.PrepareDefinesForLights=function(e,t,i,n,r,o){if(void 0===r&&(r=4),void 0===o&&(o=!1),!i._areLightsDirty)return i._needNormals;var s=0,a=!1,l=!1,u=!1,h=!1,d=!1;if(e.lightsEnabled&&!o)for(var f=0,p=t.lightSources;f0&&(h=!0,g.prepareDefines(i,s))}}if(_.lightmapMode!=c.a.LIGHTMAP_DEFAULT?(u=!0,i["LIGHTMAPEXCLUDED"+s]=!0,i["LIGHTMAPNOSPECULAR"+s]=_.lightmapMode==c.a.LIGHTMAP_SHADOWSONLY):(i["LIGHTMAPEXCLUDED"+s]=!1,i["LIGHTMAPNOSPECULAR"+s]=!1),++s===r)break}i.SPECULARTERM=d,i.SHADOWS=h;for(var v=s;v0&&(r=n+o,t.addFallback(r,"LIGHT"+o)),e.SHADOWS||(e["SHADOW"+o]&&t.addFallback(n,"SHADOW"+o),e["SHADOWPCF"+o]&&t.addFallback(n,"SHADOWPCF"+o),e["SHADOWPCSS"+o]&&t.addFallback(n,"SHADOWPCSS"+o),e["SHADOWPOISSON"+o]&&t.addFallback(n,"SHADOWPOISSON"+o),e["SHADOWESM"+o]&&t.addFallback(n,"SHADOWESM"+o));return r++},e.PrepareAttributesForMorphTargets=function(e,t,i){var r=i.NUM_MORPH_INFLUENCERS;if(r>0&&s.a.LastCreatedEngine)for(var o=s.a.LastCreatedEngine.getCaps().maxVertexAttribs,c=t.morphTargetManager,l=c&&c.supportsNormals&&i.NORMAL,u=c&&c.supportsTangents&&i.TANGENT,h=0;ho&&n.a.Error("Cannot add more vertex attributes for mesh "+t.name)},e.PrepareAttributesForBones=function(e,t,i,n){i.NUM_BONE_INFLUENCERS>0&&(n.addCPUSkinningFallback(0,t),e.push(a.b.MatricesIndicesKind),e.push(a.b.MatricesWeightsKind),i.NUM_BONE_INFLUENCERS>4&&(e.push(a.b.MatricesIndicesExtraKind),e.push(a.b.MatricesWeightsExtraKind)))},e.PrepareAttributesForInstances=function(e,t){t.INSTANCES&&(e.push("world0"),e.push("world1"),e.push("world2"),e.push("world3"))},e.BindLightShadow=function(e,t,i,n){if(e.shadowEnabled&&t.receiveShadows){var r=e.getShadowGenerator();r&&r.bindShadowLight(i,n)}},e.BindLightProperties=function(e,t,i){e.transferToEffect(t,i+"")},e.BindLights=function(t,i,n,r,s,a){void 0===s&&(s=4),void 0===a&&(a=!1);for(var c=Math.min(i.lightSources.length,s),l=0;l-1){var n=i.getTransformMatrixTexture();t.setTexture("boneSampler",n),t.setFloat("boneTextureWidth",4*(i.bones.length+1))}else{var r=i.getTransformMatrices(e);r&&t.setMatrices("mBones",r)}}},e.BindMorphTargetParameters=function(e,t){var i=e.morphTargetManager;e&&i&&t.setFloatArray("morphTargetInfluences",i.influences)},e.BindLogDepth=function(e,t,i){e.LOGARITHMICDEPTH&&t.setFloat("logarithmicDepthConstant",2/(Math.log(i.activeCamera.maxZ+1)/Math.LN2))},e.BindClipPlane=function(e,t){if(t.clipPlane){var i=t.clipPlane;e.setFloat4("vClipPlane",i.normal.x,i.normal.y,i.normal.z,i.d)}if(t.clipPlane2){i=t.clipPlane2;e.setFloat4("vClipPlane2",i.normal.x,i.normal.y,i.normal.z,i.d)}if(t.clipPlane3){i=t.clipPlane3;e.setFloat4("vClipPlane3",i.normal.x,i.normal.y,i.normal.z,i.d)}if(t.clipPlane4){i=t.clipPlane4;e.setFloat4("vClipPlane4",i.normal.x,i.normal.y,i.normal.z,i.d)}},e._tempFogColor=o.e.Black(),e}()},function(e,t,i){"use strict";var n=i(1),r=i(9),o=i(47),s=i(8),a=i(28),c=i(61),l=i(29),u=i(0),h=i(42),d=i(24),f=i(21),p=i(30),_=i(31),g=i(63),m=i(38),v=i(50),y=i(36),b=i(83),T=i(91),E=i(14),A=i(3),x=i(35),R=i(6),P=i(23),S=i(19),C=i(17),M=i(79),O=i(51),I=function(){function e(){this._singleClick=!1,this._doubleClick=!1,this._hasSwiped=!1,this._ignore=!1}return Object.defineProperty(e.prototype,"singleClick",{get:function(){return this._singleClick},set:function(e){this._singleClick=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"doubleClick",{get:function(){return this._doubleClick},set:function(e){this._doubleClick=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasSwiped",{get:function(){return this._hasSwiped},set:function(e){this._hasSwiped=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ignore",{get:function(){return this._ignore},set:function(e){this._ignore=e},enumerable:!0,configurable:!0}),e}(),D=function(){function e(e){this._wheelEventName="",this._meshPickProceed=!1,this._currentPickResult=null,this._previousPickResult=null,this._totalPointersPressed=0,this._doubleClickOccured=!1,this._pointerX=0,this._pointerY=0,this._startingPointerPosition=new u.w(0,0),this._previousStartingPointerPosition=new u.w(0,0),this._startingPointerTime=0,this._previousStartingPointerTime=0,this._pointerCaptures={},this._scene=e}return Object.defineProperty(e.prototype,"meshUnderPointer",{get:function(){return this._pointerOverMesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"unTranslatedPointer",{get:function(){return new u.w(this._unTranslatedPointerX,this._unTranslatedPointerY)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pointerX",{get:function(){return this._pointerX},set:function(e){this._pointerX=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pointerY",{get:function(){return this._pointerY},set:function(e){this._pointerY=e},enumerable:!0,configurable:!0}),e.prototype._updatePointerPosition=function(e){var t=this._scene.getEngine().getRenderingCanvasClientRect();t&&(this._pointerX=e.clientX-t.left,this._pointerY=e.clientY-t.top,this._unTranslatedPointerX=this._pointerX,this._unTranslatedPointerY=this._pointerY)},e.prototype._processPointerMove=function(e,t){var i=this._scene,n=i.getEngine().getRenderingCanvas();if(n){n.tabIndex=1,n.style.cursor=i.defaultCursor;var r=!!(e&&e.hit&&e.pickedMesh);r?(i.setPointerOverMesh(e.pickedMesh),this._pointerOverMesh&&this._pointerOverMesh.actionManager&&this._pointerOverMesh.actionManager.hasPointerTriggers&&(this._pointerOverMesh.actionManager.hoverCursor?n.style.cursor=this._pointerOverMesh.actionManager.hoverCursor:n.style.cursor=i.hoverCursor)):i.setPointerOverMesh(null);for(var o=0,s=i._pointerMoveStage;oe.LongPressDelay&&!n._isPointerSwiping()&&(n._startingPointerTime=0,o.processTrigger(A.a.ACTION_OnLongPressTrigger,y.a.CreateNew(t.pickedMesh,i)))},e.LongPressDelay)}}else for(var s=0,a=r._pointerDownStage;se.DragMovementThreshold||Math.abs(this._startingPointerPosition.y-this._pointerY)>e.DragMovementThreshold},e.prototype.simulatePointerUp=function(e,t,i){var n=new PointerEvent("pointerup",t),r=new I;i?r.doubleClick=!0:r.singleClick=!0,this._checkPrePointerObservable(e,n,C.a.POINTERUP)||this._processPointerUp(e,n,r)},e.prototype._processPointerUp=function(e,t,i){var n=this._scene;if(e&&e&&e.pickedMesh){if(this._pickedUpMesh=e.pickedMesh,this._pickedDownMesh===this._pickedUpMesh&&(n.onPointerPick&&n.onPointerPick(t,e),i.singleClick&&!i.ignore&&n.onPointerObservable.hasObservers())){var r=C.a.POINTERPICK,o=new C.b(r,t,e);this._setRayOnPointerInfo(o),n.onPointerObservable.notifyObservers(o,r)}var s=e.pickedMesh._getActionManagerForTrigger();if(s&&!i.ignore){s.processTrigger(A.a.ACTION_OnPickUpTrigger,y.a.CreateNew(e.pickedMesh,t)),!i.hasSwiped&&i.singleClick&&s.processTrigger(A.a.ACTION_OnPickTrigger,y.a.CreateNew(e.pickedMesh,t));var a=e.pickedMesh._getActionManagerForTrigger(A.a.ACTION_OnDoublePickTrigger);i.doubleClick&&a&&a.processTrigger(A.a.ACTION_OnDoublePickTrigger,y.a.CreateNew(e.pickedMesh,t))}}else if(!i.ignore)for(var c=0,l=n._pointerUpStage;ce.DoubleClickDelay&&!o._doubleClickOccured||t!==o._previousButtonPressed)&&(o._doubleClickOccured=!1,i.singleClick=!0,i.ignore=!1,n(i,o._currentPickResult))},this._initClickEvent=function(t,i,n,r){var s=new I;o._currentPickResult=null;var a=null,c=t.hasSpecificMask(C.a.POINTERPICK)||i.hasSpecificMask(C.a.POINTERPICK)||t.hasSpecificMask(C.a.POINTERTAP)||i.hasSpecificMask(C.a.POINTERTAP)||t.hasSpecificMask(C.a.POINTERDOUBLETAP)||i.hasSpecificMask(C.a.POINTERDOUBLETAP);!c&&M.a&&(a=o._initActionManager(a,s))&&(c=a.hasPickTriggers);var l=!1;if(c){var u=n.button;if(s.hasSwiped=o._isPointerSwiping(),!s.hasSwiped){var h=!e.ExclusiveDoubleClickMode;h||(h=!t.hasSpecificMask(C.a.POINTERDOUBLETAP)&&!i.hasSpecificMask(C.a.POINTERDOUBLETAP))&&!M.a.HasSpecificTrigger(A.a.ACTION_OnDoublePickTrigger)&&(a=o._initActionManager(a,s))&&(h=!a.hasSpecificTrigger(A.a.ACTION_OnDoublePickTrigger)),h?(Date.now()-o._previousStartingPointerTime>e.DoubleClickDelay||u!==o._previousButtonPressed)&&(s.singleClick=!0,r(s,o._currentPickResult),l=!0):(o._previousDelayedSimpleClickTimeout=o._delayedSimpleClickTimeout,o._delayedSimpleClickTimeout=window.setTimeout(o._delayedSimpleClick.bind(o,u,s,r),e.DoubleClickDelay));var d=t.hasSpecificMask(C.a.POINTERDOUBLETAP)||i.hasSpecificMask(C.a.POINTERDOUBLETAP);!d&&M.a.HasSpecificTrigger(A.a.ACTION_OnDoublePickTrigger)&&(a=o._initActionManager(a,s))&&(d=a.hasSpecificTrigger(A.a.ACTION_OnDoublePickTrigger)),d&&(u===o._previousButtonPressed&&Date.now()-o._previousStartingPointerTime0){for(var e=0,t=this._transientComponents;e0)return!1;for(e=0;e0,r=0,o=this._isReadyForMeshStage;r0)for(var s=0,a=this.activeCameras;s0},enumerable:!0,configurable:!0}),t.prototype.executeWhenReady=function(e){var t=this;this.onReadyObservable.add(e),-1===this._executeWhenReadyTimeoutId&&(this._executeWhenReadyTimeoutId=setTimeout(function(){t._checkIsReady()},150))},t.prototype.whenReadyAsync=function(){var e=this;return new Promise(function(t){e.executeWhenReady(function(){t()})})},t.prototype._checkIsReady=function(){var e=this;if(this._registerTransientComponents(),this.isReady())return this.onReadyObservable.notifyObservers(this),this.onReadyObservable.clear(),void(this._executeWhenReadyTimeoutId=-1);this._executeWhenReadyTimeoutId=setTimeout(function(){e._checkIsReady()},150)},Object.defineProperty(t.prototype,"animatables",{get:function(){return this._activeAnimatables},enumerable:!0,configurable:!0}),t.prototype.resetLastAnimationTimeFrame=function(){this._animationTimeLast=o.a.Now},t.prototype.getViewMatrix=function(){return this._viewMatrix},t.prototype.getProjectionMatrix=function(){return this._projectionMatrix},t.prototype.getTransformMatrix=function(){return this._transformMatrix},t.prototype.setTransformMatrix=function(e,t,i,n){this._viewUpdateFlag===e.updateFlag&&this._projectionUpdateFlag===t.updateFlag||(this._viewUpdateFlag=e.updateFlag,this._projectionUpdateFlag=t.updateFlag,this._viewMatrix=e,this._projectionMatrix=t,this._viewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._frustumPlanes?u.i.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=u.i.GetPlanes(this._transformMatrix),this._multiviewSceneUbo&&this._multiviewSceneUbo.useUbo?this._updateMultiviewUbo(i,n):this._sceneUbo.useUbo&&(this._sceneUbo.updateMatrix("viewProjection",this._transformMatrix),this._sceneUbo.updateMatrix("view",this._viewMatrix),this._sceneUbo.update()))},t.prototype.getSceneUniformBuffer=function(){return this._multiviewSceneUbo?this._multiviewSceneUbo:this._sceneUbo},t.prototype.getUniqueId=function(){var e=t._uniqueIdCounter;return t._uniqueIdCounter++,e},t.prototype.addMesh=function(e,t){var i=this;void 0===t&&(t=!1),this.meshes.push(e),e._resyncLightSources(),this.onNewMeshAddedObservable.notifyObservers(e),t&&e.getChildMeshes().forEach(function(e){i.addMesh(e)})},t.prototype.removeMesh=function(e,t){var i=this;void 0===t&&(t=!1);var n=this.meshes.indexOf(e);return-1!==n&&(this.meshes[n]=this.meshes[this.meshes.length-1],this.meshes.pop()),this.onMeshRemovedObservable.notifyObservers(e),t&&e.getChildMeshes().forEach(function(e){i.removeMesh(e)}),n},t.prototype.addTransformNode=function(e){e._indexInSceneTransformNodesArray=this.transformNodes.length,this.transformNodes.push(e),this.onNewTransformNodeAddedObservable.notifyObservers(e)},t.prototype.removeTransformNode=function(e){var t=e._indexInSceneTransformNodesArray;if(-1!==t){if(t!==this.transformNodes.length-1){var i=this.transformNodes[this.transformNodes.length-1];this.transformNodes[t]=i,i._indexInSceneTransformNodesArray=t}e._indexInSceneTransformNodesArray=-1,this.transformNodes.pop()}return this.onTransformNodeRemovedObservable.notifyObservers(e),t},t.prototype.removeSkeleton=function(e){var t=this.skeletons.indexOf(e);return-1!==t&&(this.skeletons.splice(t,1),this.onSkeletonRemovedObservable.notifyObservers(e)),t},t.prototype.removeMorphTargetManager=function(e){var t=this.morphTargetManagers.indexOf(e);return-1!==t&&this.morphTargetManagers.splice(t,1),t},t.prototype.removeLight=function(e){var t=this.lights.indexOf(e);if(-1!==t){for(var i=0,n=this.meshes;i0?this.activeCamera=this.cameras[0]:this.activeCamera=null),this.onCameraRemovedObservable.notifyObservers(e),t},t.prototype.removeParticleSystem=function(e){var t=this.particleSystems.indexOf(e);return-1!==t&&this.particleSystems.splice(t,1),t},t.prototype.removeAnimation=function(e){var t=this.animations.indexOf(e);return-1!==t&&this.animations.splice(t,1),t},t.prototype.stopAnimation=function(e,t,i){},t.prototype.removeAnimationGroup=function(e){var t=this.animationGroups.indexOf(e);return-1!==t&&this.animationGroups.splice(t,1),t},t.prototype.removeMultiMaterial=function(e){var t=this.multiMaterials.indexOf(e);return-1!==t&&this.multiMaterials.splice(t,1),t},t.prototype.removeMaterial=function(e){var t=e._indexInSceneMaterialArray;if(-1!==t&&t=0;t--)if(this.meshes[t].id===e)return this.meshes[t];return null},t.prototype.getLastEntryByID=function(e){var t;for(t=this.meshes.length-1;t>=0;t--)if(this.meshes[t].id===e)return this.meshes[t];for(t=this.transformNodes.length-1;t>=0;t--)if(this.transformNodes[t].id===e)return this.transformNodes[t];for(t=this.cameras.length-1;t>=0;t--)if(this.cameras[t].id===e)return this.cameras[t];for(t=this.lights.length-1;t>=0;t--)if(this.lights[t].id===e)return this.lights[t];return null},t.prototype.getNodeByID=function(e){var t=this.getMeshByID(e);if(t)return t;var i=this.getTransformNodeByID(e);if(i)return i;var n=this.getLightByID(e);if(n)return n;var r=this.getCameraByID(e);if(r)return r;var o=this.getBoneByID(e);return o||null},t.prototype.getNodeByName=function(e){var t=this.getMeshByName(e);if(t)return t;var i=this.getTransformNodeByName(e);if(i)return i;var n=this.getLightByName(e);if(n)return n;var r=this.getCameraByName(e);if(r)return r;var o=this.getBoneByName(e);return o||null},t.prototype.getMeshByName=function(e){for(var t=0;t=0;t--)if(this.skeletons[t].id===e)return this.skeletons[t];return null},t.prototype.getSkeletonByUniqueId=function(e){for(var t=0;t0&&0!=(s.layerMask&this.activeCamera.layerMask)&&(s.alwaysSelectAsActiveMesh||s.isInFrustum(this._frustumPlanes))&&(this._activeMeshes.push(s),this.activeCamera._activeMeshes.push(s),a!==s&&a._activate(this._renderId,!1),s._activate(this._renderId,!1)&&(s.isAnInstance||(a._internalAbstractMeshDataInfo._onlyForInstances=!1),a._internalAbstractMeshDataInfo._isActive=!0,this._activeMesh(s,a)),s._postActivate()))}}if(this.onAfterActiveMeshesEvaluationObservable.notifyObservers(this),this.particlesEnabled){this.onBeforeParticlesRenderingObservable.notifyObservers(this);for(var c=0;c0)for(var r=this.getActiveSubMeshCandidates(t),o=r.length,s=0;s1)this.activeCamera.outputRenderTarget._bindFrameBuffer();else{var e=this.activeCamera.outputRenderTarget.getInternalTexture();e?this.getEngine().bindFramebuffer(e):R.a.Error("Camera contains invalid customDefaultRenderTarget")}}else this.getEngine().restoreDefaultFramebuffer()},t.prototype._renderForCamera=function(e,t){if(!e||!e._skipRendering){var i=this._engine;if(this._activeCamera=e,!this.activeCamera)throw new Error("Active camera not set");i.setViewport(this.activeCamera.viewport),this.resetCachedMaterial(),this._renderId++,this.getEngine().getCaps().multiview&&e.outputRenderTarget&&e.outputRenderTarget.getViewCount()>1?this.setTransformMatrix(e._rigCameras[0].getViewMatrix(),e._rigCameras[0].getProjectionMatrix(),e._rigCameras[1].getViewMatrix(),e._rigCameras[1].getProjectionMatrix()):this.updateTransformMatrix(),this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera),this._evaluateActiveMeshes();for(var n=0;n0&&this._renderTargets.concatWithNoDuplicate(e.customRenderTargets),t&&t.customRenderTargets&&t.customRenderTargets.length>0&&this._renderTargets.concatWithNoDuplicate(t.customRenderTargets);for(var s=0,a=this._gatherActiveCameraRenderTargetsStage;s0){r.h.StartPerformanceCounter("Render targets",this._renderTargets.length>0);for(var l=0;l0),this._renderId++}for(var d=0,f=this._cameraDrawRenderTargetStage;d1&&this.getEngine().getCaps().multiview)this._renderForCamera(e);else{if(e._useMultiviewToSingleView)this._renderMultiviewToSingleView(e);else for(var t=0;t-1&&(n.trigger===A.a.ACTION_OnIntersectionExitTrigger&&n._executeCurrent(y.a.CreateNew(t,void 0,o)),t.actionManager.hasSpecificTrigger(A.a.ACTION_OnIntersectionExitTrigger,function(e){var t=e instanceof d.a?e:e.mesh;return o===t})&&n.trigger!==A.a.ACTION_OnIntersectionExitTrigger||t._intersectionsInProgress.splice(a,1))}}}},t.prototype._advancePhysicsEngineStep=function(e){},t.prototype._animate=function(){},t.prototype.animate=function(){if(this._engine.isDeterministicLockStep()){var e=Math.max(t.MinDeltaTime,Math.min(this._engine.getDeltaTime(),t.MaxDeltaTime))+this._timeAccumulator,i=this.getDeterministicFrameTime(),n=0,r=this._engine.getLockstepMaxSteps(),o=Math.floor(e/60);o=Math.min(o,r);do{this.onBeforeStepObservable.notifyObservers(this),this._animationRatio=.06*i,this._animate(),this.onAfterAnimationsObservable.notifyObservers(this),this._advancePhysicsEngineStep(i),this.onAfterStepObservable.notifyObservers(this),this._currentStepId++,n++,e-=i}while(e>0&&n0)for(var o=0;o0),this._intermediateRendering=!0;for(var u=0;u0),this._intermediateRendering=!1,this._renderId++}this.activeCamera=l,this._bindFrameBuffer(),this.onAfterRenderTargetsRenderObservable.notifyObservers(this);for(var d=0,p=this._beforeClearStage;d0)for(o=0;o0&&this._engine.clear(null,!1,!0,!0),this._processSubCameras(this.activeCameras[o]);else{if(!this.activeCamera)throw new Error("No camera defined");this._processSubCameras(this.activeCamera)}this._checkIntersections();for(var m=0,v=this._afterRenderStage;m-1&&this._engine.scenes.splice(r,1),this._engine.wipeCaches(!0),this._isDisposed=!0},Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),t.prototype.clearCachedVertexData=function(){for(var e=0;e-1?(u.a.Error("You're trying to reuse a post process not defined as reusable."),0):(null==t||t<0?this._postProcesses.push(e):null===this._postProcesses[t]?this._postProcesses[t]=e:this._postProcesses.splice(t,0,e),this._cascadePostProcessesToRigCams(),this._postProcesses.indexOf(e))},t.prototype.detachPostProcess=function(e){var t=this._postProcesses.indexOf(e);-1!==t&&(this._postProcesses[t]=null),this._cascadePostProcessesToRigCams()},t.prototype.getWorldMatrix=function(){return this._isSynchronizedViewMatrix()?this._worldMatrix:(this.getViewMatrix(),this._worldMatrix)},t.prototype._getViewMatrix=function(){return c.j.Identity()},t.prototype.getViewMatrix=function(e){return!e&&this._isSynchronizedViewMatrix()?this._computedViewMatrix:(this.updateCache(),this._computedViewMatrix=this._getViewMatrix(),this._currentRenderId=this.getScene().getRenderId(),this._childUpdateId++,this._refreshFrustumPlanes=!0,this._cameraRigParams&&this._cameraRigParams.vrPreViewMatrix&&this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix,this._computedViewMatrix),this.parent&&this.parent.onViewMatrixChangedObservable&&this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent),this.onViewMatrixChangedObservable.notifyObservers(this),this._computedViewMatrix.invertToRef(this._worldMatrix),this._computedViewMatrix)},t.prototype.freezeProjectionMatrix=function(e){this._doNotComputeProjectionMatrix=!0,void 0!==e&&(this._projectionMatrix=e)},t.prototype.unfreezeProjectionMatrix=function(){this._doNotComputeProjectionMatrix=!1},t.prototype.getProjectionMatrix=function(e){if(this._doNotComputeProjectionMatrix||!e&&this._isSynchronizedProjectionMatrix())return this._projectionMatrix;this._cache.mode=this.mode,this._cache.minZ=this.minZ,this._cache.maxZ=this.maxZ,this._refreshFrustumPlanes=!0;var i=this.getEngine(),n=this.getScene();if(this.mode===t.PERSPECTIVE_CAMERA)this._cache.fov=this.fov,this._cache.fovMode=this.fovMode,this._cache.aspectRatio=i.getAspectRatio(this),this.minZ<=0&&(this.minZ=.1),n.useRightHandedSystem?c.j.PerspectiveFovRHToRef(this.fov,i.getAspectRatio(this),this.minZ,this.maxZ,this._projectionMatrix,this.fovMode===t.FOVMODE_VERTICAL_FIXED):c.j.PerspectiveFovLHToRef(this.fov,i.getAspectRatio(this),this.minZ,this.maxZ,this._projectionMatrix,this.fovMode===t.FOVMODE_VERTICAL_FIXED);else{var r=i.getRenderWidth()/2,o=i.getRenderHeight()/2;n.useRightHandedSystem?c.j.OrthoOffCenterRHToRef(this.orthoLeft||-r,this.orthoRight||r,this.orthoBottom||-o,this.orthoTop||o,this.minZ,this.maxZ,this._projectionMatrix):c.j.OrthoOffCenterLHToRef(this.orthoLeft||-r,this.orthoRight||r,this.orthoBottom||-o,this.orthoTop||o,this.minZ,this.maxZ,this._projectionMatrix),this._cache.orthoLeft=this.orthoLeft,this._cache.orthoRight=this.orthoRight,this._cache.orthoBottom=this.orthoBottom,this._cache.orthoTop=this.orthoTop,this._cache.renderWidth=i.getRenderWidth(),this._cache.renderHeight=i.getRenderHeight()}return this.onProjectionMatrixChangedObservable.notifyObservers(this),this._projectionMatrix},t.prototype.getTransformationMatrix=function(){return this._computedViewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._transformMatrix},t.prototype._updateFrustumPlanes=function(){this._refreshFrustumPlanes&&(this.getTransformationMatrix(),this._frustumPlanes?c.i.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=c.i.GetPlanes(this._transformMatrix),this._refreshFrustumPlanes=!1)},t.prototype.isInFrustum=function(e,t){if(void 0===t&&(t=!1),this._updateFrustumPlanes(),t&&this.rigCameras.length>0){var i=!1;return this.rigCameras.forEach(function(t){t._updateFrustumPlanes(),i=i||e.isInFrustum(t._frustumPlanes)}),i}return e.isInFrustum(this._frustumPlanes)},t.prototype.isCompletelyInFrustum=function(e){return this._updateFrustumPlanes(),e.isCompletelyInFrustum(this._frustumPlanes)},t.prototype.getForwardRay=function(e,t,i){throw void 0===e&&(e=100),d.a.WarnImport("Ray")},t.prototype.dispose=function(i,n){for(void 0===n&&(n=!1),this.onViewMatrixChangedObservable.clear(),this.onProjectionMatrixChangedObservable.clear(),this.onAfterCheckInputsObservable.clear(),this.onRestoreStateObservable.clear(),this.inputs&&this.inputs.clear(),this.getScene().stopAnimation(this),this.getScene().removeCamera(this);this._rigCameras.length>0;){var r=this._rigCameras.pop();r&&r.dispose()}if(this._rigPostProcess)this._rigPostProcess.dispose(this),this._rigPostProcess=null,this._postProcesses=[];else if(this.cameraRigMode!==t.RIG_MODE_NONE)this._rigPostProcess=null,this._postProcesses=[];else for(var o=this._postProcesses.length;--o>=0;){var s=this._postProcesses[o];s&&s.dispose(this)}for(o=this.customRenderTargets.length;--o>=0;)this.customRenderTargets[o].dispose();this.customRenderTargets=[],this._activeMeshes.dispose(),e.prototype.dispose.call(this,i,n)},Object.defineProperty(t.prototype,"isLeftCamera",{get:function(){return this._isLeftCamera},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isRightCamera",{get:function(){return this._isRightCamera},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"leftCamera",{get:function(){return this._rigCameras.length<1?null:this._rigCameras[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rightCamera",{get:function(){return this._rigCameras.length<2?null:this._rigCameras[1]},enumerable:!0,configurable:!0}),t.prototype.getLeftTarget=function(){return this._rigCameras.length<1?null:this._rigCameras[0].getTarget()},t.prototype.getRightTarget=function(){return this._rigCameras.length<2?null:this._rigCameras[1].getTarget()},t.prototype.setCameraRigMode=function(e,i){if(this.cameraRigMode!==e){for(;this._rigCameras.length>0;){var n=this._rigCameras.pop();n&&n.dispose()}if(this.cameraRigMode=e,this._cameraRigParams={},this._cameraRigParams.interaxialDistance=i.interaxialDistance||.0637,this._cameraRigParams.stereoHalfAngle=s.h.ToRadians(this._cameraRigParams.interaxialDistance/.0637),this.cameraRigMode!==t.RIG_MODE_NONE){var r=this.createRigCamera(this.name+"_L",0);r&&(r._isLeftCamera=!0);var o=this.createRigCamera(this.name+"_R",1);o&&(o._isRightCamera=!0),r&&o&&(this._rigCameras.push(r),this._rigCameras.push(o))}switch(this.cameraRigMode){case t.RIG_MODE_STEREOSCOPIC_ANAGLYPH:t._setStereoscopicAnaglyphRigMode(this);break;case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:case t.RIG_MODE_STEREOSCOPIC_OVERUNDER:t._setStereoscopicRigMode(this);break;case t.RIG_MODE_VR:t._setVRRigMode(this,i);break;case t.RIG_MODE_WEBVR:t._setWebVRRigMode(this,i)}this._cascadePostProcessesToRigCams(),this.update()}},t._setStereoscopicRigMode=function(e){throw"Import Cameras/RigModes/stereoscopicRigMode before using stereoscopic rig mode"},t._setStereoscopicAnaglyphRigMode=function(e){throw"Import Cameras/RigModes/stereoscopicAnaglyphRigMode before using stereoscopic anaglyph rig mode"},t._setVRRigMode=function(e,t){throw"Import Cameras/RigModes/vrRigMode before using VR rig mode"},t._setWebVRRigMode=function(e,t){throw"Import Cameras/RigModes/WebVRRigMode before using Web VR rig mode"},t.prototype._getVRProjectionMatrix=function(){return c.j.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov,this._cameraRigParams.vrMetrics.aspectRatio,this.minZ,this.maxZ,this._cameraRigParams.vrWorkMatrix),this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix,this._projectionMatrix),this._projectionMatrix},t.prototype._updateCameraRotationMatrix=function(){},t.prototype._updateWebVRCameraRotationMatrix=function(){},t.prototype._getWebVRProjectionMatrix=function(){return c.j.Identity()},t.prototype._getWebVRViewMatrix=function(){return c.j.Identity()},t.prototype.setCameraRigParameter=function(e,t){this._cameraRigParams||(this._cameraRigParams={}),this._cameraRigParams[e]=t,"interaxialDistance"===e&&(this._cameraRigParams.stereoHalfAngle=s.h.ToRadians(t/.0637))},t.prototype.createRigCamera=function(e,t){return null},t.prototype._updateRigCameras=function(){for(var e=0;ea.b.CollisionsEpsilon&&r.position.addInPlace(r._meshCollisionData._diffPositionForCollisions),i&&r.onCollideObservable.notifyObservers(i),r.onCollisionPositionChangeObservable.notifyObservers(r.position)},r.getScene().addMesh(r),r._resyncLightSources(),r}return n.d(t,e),Object.defineProperty(t,"BILLBOARDMODE_NONE",{get:function(){return u.a.BILLBOARDMODE_NONE},enumerable:!0,configurable:!0}),Object.defineProperty(t,"BILLBOARDMODE_X",{get:function(){return u.a.BILLBOARDMODE_X},enumerable:!0,configurable:!0}),Object.defineProperty(t,"BILLBOARDMODE_Y",{get:function(){return u.a.BILLBOARDMODE_Y},enumerable:!0,configurable:!0}),Object.defineProperty(t,"BILLBOARDMODE_Z",{get:function(){return u.a.BILLBOARDMODE_Z},enumerable:!0,configurable:!0}),Object.defineProperty(t,"BILLBOARDMODE_ALL",{get:function(){return u.a.BILLBOARDMODE_ALL},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"facetNb",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetNb},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"partitioningSubdivisions",{get:function(){return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions},set:function(e){this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"partitioningBBoxRatio",{get:function(){return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio},set:function(e){this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mustDepthSortFacets",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSort},set:function(e){this._internalAbstractMeshDataInfo._facetData.facetDepthSort=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"facetDepthSortFrom",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom},set:function(e){this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFacetDataEnabled",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled},enumerable:!0,configurable:!0}),t.prototype._updateNonUniformScalingState=function(t){return!!e.prototype._updateNonUniformScalingState.call(this,t)&&(this._markSubMeshesAsMiscDirty(),!0)},Object.defineProperty(t.prototype,"onCollide",{set:function(e){this._meshCollisionData._onCollideObserver&&this.onCollideObservable.remove(this._meshCollisionData._onCollideObserver),this._meshCollisionData._onCollideObserver=this.onCollideObservable.add(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onCollisionPositionChange",{set:function(e){this._meshCollisionData._onCollisionPositionChangeObserver&&this.onCollisionPositionChangeObservable.remove(this._meshCollisionData._onCollisionPositionChangeObserver),this._meshCollisionData._onCollisionPositionChangeObserver=this.onCollisionPositionChangeObservable.add(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"visibility",{get:function(){return this._internalAbstractMeshDataInfo._visibility},set:function(e){this._internalAbstractMeshDataInfo._visibility!==e&&(this._internalAbstractMeshDataInfo._visibility=e,this._markSubMeshesAsMiscDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"material",{get:function(){return this._material},set:function(e){this._material!==e&&(this._material&&this._material.meshMap&&(this._material.meshMap[this.uniqueId]=void 0),this._material=e,e&&e.meshMap&&(e.meshMap[this.uniqueId]=this),this.onMaterialChangedObservable.hasObservers&&this.onMaterialChangedObservable.notifyObservers(this),this.subMeshes&&this._unBindEffect())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"receiveShadows",{get:function(){return this._internalAbstractMeshDataInfo._receiveShadows},set:function(e){this._internalAbstractMeshDataInfo._receiveShadows!==e&&(this._internalAbstractMeshDataInfo._receiveShadows=e,this._markSubMeshesAsLightDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasVertexAlpha",{get:function(){return this._internalAbstractMeshDataInfo._hasVertexAlpha},set:function(e){this._internalAbstractMeshDataInfo._hasVertexAlpha!==e&&(this._internalAbstractMeshDataInfo._hasVertexAlpha=e,this._markSubMeshesAsAttributesDirty(),this._markSubMeshesAsMiscDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useVertexColors",{get:function(){return this._internalAbstractMeshDataInfo._useVertexColors},set:function(e){this._internalAbstractMeshDataInfo._useVertexColors!==e&&(this._internalAbstractMeshDataInfo._useVertexColors=e,this._markSubMeshesAsAttributesDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"computeBonesUsingShaders",{get:function(){return this._internalAbstractMeshDataInfo._computeBonesUsingShaders},set:function(e){this._internalAbstractMeshDataInfo._computeBonesUsingShaders!==e&&(this._internalAbstractMeshDataInfo._computeBonesUsingShaders=e,this._markSubMeshesAsAttributesDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"numBoneInfluencers",{get:function(){return this._internalAbstractMeshDataInfo._numBoneInfluencers},set:function(e){this._internalAbstractMeshDataInfo._numBoneInfluencers!==e&&(this._internalAbstractMeshDataInfo._numBoneInfluencers=e,this._markSubMeshesAsAttributesDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"applyFog",{get:function(){return this._internalAbstractMeshDataInfo._applyFog},set:function(e){this._internalAbstractMeshDataInfo._applyFog!==e&&(this._internalAbstractMeshDataInfo._applyFog=e,this._markSubMeshesAsMiscDirty())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"layerMask",{get:function(){return this._internalAbstractMeshDataInfo._layerMask},set:function(e){e!==this._internalAbstractMeshDataInfo._layerMask&&(this._internalAbstractMeshDataInfo._layerMask=e,this._resyncLightSources())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"collisionMask",{get:function(){return this._meshCollisionData._collisionMask},set:function(e){this._meshCollisionData._collisionMask=isNaN(e)?-1:e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"collisionGroup",{get:function(){return this._meshCollisionData._collisionGroup},set:function(e){this._meshCollisionData._collisionGroup=isNaN(e)?-1:e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lightSources",{get:function(){return this._lightSources},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_positions",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"skeleton",{get:function(){return this._internalAbstractMeshDataInfo._skeleton},set:function(e){var t=this._internalAbstractMeshDataInfo._skeleton;t&&t.needInitialSkinMatrix&&t._unregisterMeshWithPoseMatrix(this),e&&e.needInitialSkinMatrix&&e._registerMeshWithPoseMatrix(this),this._internalAbstractMeshDataInfo._skeleton=e,this._internalAbstractMeshDataInfo._skeleton||(this._bonesTransformMatrices=null),this._markSubMeshesAsAttributesDirty()},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"AbstractMesh"},t.prototype.toString=function(e){var t="Name: "+this.name+", isInstance: "+("InstancedMesh"!==this.getClassName()?"YES":"NO");t+=", # of submeshes: "+(this.subMeshes?this.subMeshes.length:0);var i=this._internalAbstractMeshDataInfo._skeleton;return i&&(t+=", skeleton: "+i.name),e&&(t+=", billboard mode: "+["NONE","X","Y",null,"Z",null,null,"ALL"][this.billboardMode],t+=", freeze wrld mat: "+(this._isWorldMatrixFrozen||this._waitingData.freezeWorldMatrix?"YES":"NO")),t},t.prototype._getEffectiveParent=function(){return this._masterMesh&&this.billboardMode!==u.a.BILLBOARDMODE_NONE?this._masterMesh:e.prototype._getEffectiveParent.call(this)},t.prototype._getActionManagerForTrigger=function(e,t){if(void 0===t&&(t=!0),this.actionManager&&(t||this.actionManager.isRecursive)){if(!e)return this.actionManager;if(this.actionManager.hasSpecificTrigger(e))return this.actionManager}return this.parent?this.parent._getActionManagerForTrigger(e,!1):null},t.prototype._rebuild=function(){if(this.onRebuildObservable.notifyObservers(this),this._occlusionQuery&&(this._occlusionQuery=null),this.subMeshes)for(var e=0,t=this.subMeshes;e4,a=o?this.getVerticesData(c.b.MatricesIndicesExtraKind):null,l=o?this.getVerticesData(c.b.MatricesWeightsExtraKind):null;this.skeleton.prepare();for(var u=this.skeleton.getTransformMatrices(this),h=s.t.Vector3[0],d=s.t.Matrix[0],f=s.t.Matrix[1],p=0,_=0;_0&&(s.j.FromFloat32ArrayToRefScaled(u,Math.floor(16*i[p+g]),m,f),d.addToSelf(f));if(o)for(g=0;g<4;g++)(m=l[p+g])>0&&(s.j.FromFloat32ArrayToRefScaled(u,Math.floor(16*a[p+g]),m,f),d.addToSelf(f));s.x.TransformCoordinatesFromFloatsToRef(t[_],t[_+1],t[_+2],d,h),h.toArray(t,_),this._positions&&this._positions[_/3].copyFrom(h)}}}return t},t.prototype._updateBoundingInfo=function(){var e=this._effectiveMesh;return this._boundingInfo?this._boundingInfo.update(e.worldMatrixFromCache):this._boundingInfo=new d.a(this.absolutePosition,this.absolutePosition,e.worldMatrixFromCache),this._updateSubMeshesBoundingInfo(e.worldMatrixFromCache),this},t.prototype._updateSubMeshesBoundingInfo=function(e){if(!this.subMeshes)return this;for(var t=this.subMeshes.length,i=0;i1||!n.IsGlobal)&&n.updateBoundingInfo(e)}return this},t.prototype._afterComputeWorldMatrix=function(){this.doNotSyncBoundingInfo||this._updateBoundingInfo()},Object.defineProperty(t.prototype,"_effectiveMesh",{get:function(){return this.skeleton&&this.skeleton.overrideMesh||this},enumerable:!0,configurable:!0}),t.prototype.isInFrustum=function(e){return null!==this._boundingInfo&&this._boundingInfo.isInFrustum(e,this.cullingStrategy)},t.prototype.isCompletelyInFrustum=function(e){return null!==this._boundingInfo&&this._boundingInfo.isCompletelyInFrustum(e)},t.prototype.intersectsMesh=function(e,t,i){if(void 0===t&&(t=!1),!this._boundingInfo||!e._boundingInfo)return!1;if(this._boundingInfo.intersects(e._boundingInfo,t))return!0;if(i)for(var n=0,r=this.getChildMeshes();n1&&!o._checkCollision(e)||this._collideForSubMesh(o,t,e)}return this},t.prototype._checkCollision=function(e){if(!this._boundingInfo||!this._boundingInfo._checkCollision(e))return this;var t=s.t.Matrix[0],i=s.t.Matrix[1];return s.j.ScalingToRef(1/e._radius.x,1/e._radius.y,1/e._radius.z,t),this.worldMatrixFromCache.multiplyToRef(t,i),this._processCollisionsForSubMeshes(e,i),this},t.prototype._generatePointsArray=function(){return!1},t.prototype.intersects=function(e,t,i){var n=new h.a,r="InstancedLinesMesh"===this.getClassName()||"LinesMesh"===this.getClassName()?this.intersectionThreshold:0,o=this._boundingInfo;if(!(this.subMeshes&&o&&e.intersectsSphere(o.boundingSphere,r)&&e.intersectsBox(o.boundingBox,r)))return n;if(!this._generatePointsArray())return n;for(var a=null,c=this._scene.getIntersectingSubMeshCandidates(this,e),l=c.length,u=0;u1)||d.canIntersects(e)){var f=d.intersects(e,this._positions,this.getIndices(),t,i);if(f&&(t||!a||f.distance65535){o=!0;break}e.depthSortedIndices=o?new Uint32Array(i):new Uint16Array(i)}if(e.facetDepthSortFunction=function(e,t){return t.sqDistance-e.sqDistance},!e.facetDepthSortFrom){var u=this.getScene().activeCamera;e.facetDepthSortFrom=u?u.position:s.x.Zero()}e.depthSortedFacets=[];for(var h=0;hs.h?r.maximum.x-r.minimum.x:s.h,e.bbSize.y=r.maximum.y-r.minimum.y>s.h?r.maximum.y-r.minimum.y:s.h,e.bbSize.z=r.maximum.z-r.minimum.z>s.h?r.maximum.z-r.minimum.z:s.h;var f=e.bbSize.x>e.bbSize.y?e.bbSize.x:e.bbSize.y;if(f=f>e.bbSize.z?f:e.bbSize.z,e.subDiv.max=e.partitioningSubdivisions,e.subDiv.X=Math.floor(e.subDiv.max*e.bbSize.x/f),e.subDiv.Y=Math.floor(e.subDiv.max*e.bbSize.y/f),e.subDiv.Z=Math.floor(e.subDiv.max*e.bbSize.z/f),e.subDiv.X=e.subDiv.X<1?1:e.subDiv.X,e.subDiv.Y=e.subDiv.Y<1?1:e.subDiv.Y,e.subDiv.Z=e.subDiv.Z<1?1:e.subDiv.Z,e.facetParameters.facetNormals=this.getFacetLocalNormals(),e.facetParameters.facetPositions=this.getFacetLocalPositions(),e.facetParameters.facetPartitioning=this.getFacetLocalPartitioning(),e.facetParameters.bInfo=r,e.facetParameters.bbSize=e.bbSize,e.facetParameters.subDiv=e.subDiv,e.facetParameters.ratio=this.partitioningBBoxRatio,e.facetParameters.depthSort=e.facetDepthSort,e.facetDepthSort&&e.facetDepthSortEnabled&&(this.computeWorldMatrix(!0),this._worldMatrix.invertToRef(e.invertedMatrix),s.x.TransformCoordinatesToRef(e.facetDepthSortFrom,e.invertedMatrix,e.facetDepthSortOrigin),e.facetParameters.distanceTo=e.facetDepthSortOrigin),e.facetParameters.depthSortedFacets=e.depthSortedFacets,l.a.ComputeNormals(t,i,n,e.facetParameters),e.facetDepthSort&&e.facetDepthSortEnabled){e.depthSortedFacets.sort(e.facetDepthSortFunction);var p=e.depthSortedIndices.length/3|0;for(h=0;hr.subDiv.max||s<0||s>r.subDiv.max||a<0||a>r.subDiv.max?null:r.facetPartitioning[o+r.subDiv.max*s+r.subDiv.max*r.subDiv.max*a]},t.prototype.getClosestFacetAtCoordinates=function(e,t,i,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=!0);var a=this.getWorldMatrix(),c=s.t.Matrix[5];a.invertToRef(c);var l=s.t.Vector3[8];s.x.TransformCoordinatesFromFloatsToRef(e,t,i,c,l);var u=this.getClosestFacetAtLocalCoordinates(l.x,l.y,l.z,n,r,o);return n&&s.x.TransformCoordinatesFromFloatsToRef(n.x,n.y,n.z,a,n),u},t.prototype.getClosestFacetAtLocalCoordinates=function(e,t,i,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=!0);var s=null,a=0,c=0,l=0,u=0,h=0,d=0,f=0,p=0,_=this.getFacetLocalPositions(),g=this.getFacetLocalNormals(),m=this.getFacetsAtLocalCoordinates(e,t,i);if(!m)return null;for(var v,y,b,T=Number.MAX_VALUE,E=T,A=0;A=0||r&&!o&&u<=0)&&(u=y.x*b.x+y.y*b.y+y.z*b.z,h=-(y.x*e+y.y*t+y.z*i-u)/(y.x*y.x+y.y*y.y+y.z*y.z),(E=(a=(d=e+y.x*h)-e)*a+(c=(f=t+y.y*h)-t)*c+(l=(p=i+y.z*h)-i)*l)100&&(this.soft=!0),this._physicsEngine=this._scene.getPhysicsEngine(),this._physicsEngine?(this.object.rotationQuaternion||(this.object.rotation?this.object.rotationQuaternion=o.q.RotationYawPitchRoll(this.object.rotation.y,this.object.rotation.x,this.object.rotation.z):this.object.rotationQuaternion=new o.q),this._options.mass=void 0===i.mass?0:i.mass,this._options.friction=void 0===i.friction?.2:i.friction,this._options.restitution=void 0===i.restitution?.2:i.restitution,this.soft&&(this._options.mass=this._options.mass>0?this._options.mass:1,this._options.pressure=void 0===i.pressure?200:i.pressure,this._options.stiffness=void 0===i.stiffness?1:i.stiffness,this._options.velocityIterations=void 0===i.velocityIterations?20:i.velocityIterations,this._options.positionIterations=void 0===i.positionIterations?20:i.positionIterations,this._options.fixedPoints=void 0===i.fixedPoints?0:i.fixedPoints,this._options.margin=void 0===i.margin?0:i.margin,this._options.damping=void 0===i.damping?0:i.damping,this._options.path=void 0===i.path?null:i.path,this._options.shape=void 0===i.shape?null:i.shape),this._joints=[],!this.object.parent||this._options.ignoreParent?this._init():this.object.parent.physicsImpostor&&n.a.Warn("You must affect impostors to children before affecting impostor to parent.")):n.a.Error("Physics not enabled. Please use scene.enablePhysics(...) before creating impostors."))):n.a.Error("No object was provided. A physics object is obligatory")}return Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mass",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyMass(this):0},set:function(e){this.setMass(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"friction",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyFriction(this):0},set:function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyFriction(this,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"restitution",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this):0},set:function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pressure",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.setBodyPressure?e.getBodyPressure(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyPressure&&t.setBodyPressure(this,e)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"stiffness",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.getBodyStiffness?e.getBodyStiffness(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyStiffness&&t.setBodyStiffness(this,e)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"velocityIterations",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.getBodyVelocityIterations?e.getBodyVelocityIterations(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyVelocityIterations&&t.setBodyVelocityIterations(this,e)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"positionIterations",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.getBodyPositionIterations?e.getBodyPositionIterations(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyPositionIterations&&t.setBodyPositionIterations(this,e)}},enumerable:!0,configurable:!0}),e.prototype._init=function(){this._physicsEngine&&(this._physicsEngine.removeImpostor(this),this.physicsBody=null,this._parent=this._parent||this._getPhysicsParent(),this._isDisposed||this.parent&&!this._options.ignoreParent||this._physicsEngine.addImpostor(this))},e.prototype._getPhysicsParent=function(){return this.object.parent instanceof s.a?this.object.parent.physicsImpostor:null},e.prototype.isBodyInitRequired=function(){return this._bodyUpdateRequired||!this._physicsBody&&!this._parent},e.prototype.setScalingUpdated=function(){this.forceUpdate()},e.prototype.forceUpdate=function(){this._init(),this.parent&&!this._options.ignoreParent&&this.parent.forceUpdate()},Object.defineProperty(e.prototype,"physicsBody",{get:function(){return this._parent&&!this._options.ignoreParent?this._parent.physicsBody:this._physicsBody},set:function(e){this._physicsBody&&this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this),this._physicsBody=e,this.resetUpdateFlags()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return!this._options.ignoreParent&&this._parent?this._parent:null},set:function(e){this._parent=e},enumerable:!0,configurable:!0}),e.prototype.resetUpdateFlags=function(){this._bodyUpdateRequired=!1},e.prototype.getObjectExtendSize=function(){if(this.object.getBoundingInfo){var t=this.object.rotationQuaternion;this.object.rotationQuaternion=e.IDENTITY_QUATERNION,this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0);var i=this.object.getBoundingInfo().boundingBox.extendSizeWorld.scale(2);return this.object.rotationQuaternion=t,this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0),i}return e.DEFAULT_OBJECT_SIZE},e.prototype.getObjectCenter=function(){return this.object.getBoundingInfo?this.object.getBoundingInfo().boundingBox.centerWorld:this.object.position},e.prototype.getParam=function(e){return this._options[e]},e.prototype.setParam=function(e,t){this._options[e]=t,this._bodyUpdateRequired=!0},e.prototype.setMass=function(e){this.getParam("mass")!==e&&this.setParam("mass",e),this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyMass(this,e)},e.prototype.getLinearVelocity=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this):o.x.Zero()},e.prototype.setLinearVelocity=function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this,e)},e.prototype.getAngularVelocity=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this):o.x.Zero()},e.prototype.setAngularVelocity=function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this,e)},e.prototype.executeNativeFunction=function(e){this._physicsEngine&&e(this._physicsEngine.getPhysicsPlugin().world,this.physicsBody)},e.prototype.registerBeforePhysicsStep=function(e){this._onBeforePhysicsStepCallbacks.push(e)},e.prototype.unregisterBeforePhysicsStep=function(e){var t=this._onBeforePhysicsStepCallbacks.indexOf(e);t>-1?this._onBeforePhysicsStepCallbacks.splice(t,1):n.a.Warn("Function to remove was not found")},e.prototype.registerAfterPhysicsStep=function(e){this._onAfterPhysicsStepCallbacks.push(e)},e.prototype.unregisterAfterPhysicsStep=function(e){var t=this._onAfterPhysicsStepCallbacks.indexOf(e);t>-1?this._onAfterPhysicsStepCallbacks.splice(t,1):n.a.Warn("Function to remove was not found")},e.prototype.registerOnPhysicsCollide=function(e,t){var i=e instanceof Array?e:[e];this._onPhysicsCollideCallbacks.push({callback:t,otherImpostors:i})},e.prototype.unregisterOnPhysicsCollide=function(e,t){var i=e instanceof Array?e:[e],r=-1;this._onPhysicsCollideCallbacks.some(function(e,n){if(e.callback===t&&e.otherImpostors.length===i.length){var o=e.otherImpostors.every(function(e){return i.indexOf(e)>-1});return o&&(r=n),o}return!1})?this._onPhysicsCollideCallbacks.splice(r,1):n.a.Warn("Function to remove was not found")},e.prototype.getParentsRotation=function(){var e=this.object.parent;for(this._tmpQuat.copyFromFloats(0,0,0,1);e;)e.rotationQuaternion?this._tmpQuat2.copyFrom(e.rotationQuaternion):o.q.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,e.rotation.z,this._tmpQuat2),this._tmpQuat.multiplyToRef(this._tmpQuat2,this._tmpQuat),e=e.parent;return this._tmpQuat},e.prototype.applyForce=function(e,t){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyForce(this,e,t),this},e.prototype.applyImpulse=function(e,t){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyImpulse(this,e,t),this},e.prototype.createJoint=function(e,t,i){var n=new c.e(t,i);return this.addJoint(e,n),this},e.prototype.addJoint=function(e,t){return this._joints.push({otherImpostor:e,joint:t}),this._physicsEngine&&this._physicsEngine.addJoint(this,e,t),this},e.prototype.addAnchor=function(e,t,i,n,r){if(!this._physicsEngine)return this;var o=this._physicsEngine.getPhysicsPlugin();return o.appendAnchor?(this._physicsEngine&&o.appendAnchor(this,e,t,i,n,r),this):this},e.prototype.addHook=function(e,t,i,n){if(!this._physicsEngine)return this;var r=this._physicsEngine.getPhysicsPlugin();return r.appendAnchor?(this._physicsEngine&&r.appendHook(this,e,t,i,n),this):this},e.prototype.sleep=function(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().sleepBody(this),this},e.prototype.wakeUp=function(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().wakeUpBody(this),this},e.prototype.clone=function(t){return t?new e(t,this.type,this._options,this._scene):null},e.prototype.dispose=function(){var e=this;this._physicsEngine&&(this._joints.forEach(function(t){e._physicsEngine&&e._physicsEngine.removeJoint(e,t.otherImpostor,t.joint)}),this._physicsEngine.removeImpostor(this),this.parent&&this.parent.forceUpdate(),this._isDisposed=!0)},e.prototype.setDeltaPosition=function(e){this._deltaPosition.copyFrom(e)},e.prototype.setDeltaRotation=function(e){this._deltaRotation||(this._deltaRotation=new o.q),this._deltaRotation.copyFrom(e),this._deltaRotationConjugated=this._deltaRotation.conjugate()},e.prototype.getBoxSizeToRef=function(e){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this,e),this},e.prototype.getRadius=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getRadius(this):0},e.prototype.syncBoneWithImpostor=function(t,i,n,r,s){var a=e._tmpVecs[0],c=this.object;if(c.rotationQuaternion)if(s){var l=e._tmpQuat;c.rotationQuaternion.multiplyToRef(s,l),t.setRotationQuaternion(l,o.s.WORLD,i)}else t.setRotationQuaternion(c.rotationQuaternion,o.s.WORLD,i);a.x=0,a.y=0,a.z=0,n&&(a.x=n.x,a.y=n.y,a.z=n.z,t.getDirectionToRef(a,i,a),null==r&&(r=n.length()),a.x*=r,a.y*=r,a.z*=r),t.getParent()?(a.addInPlace(c.getAbsolutePosition()),t.setAbsolutePosition(a,i)):(i.setAbsolutePosition(c.getAbsolutePosition()),i.position.x-=a.x,i.position.y-=a.y,i.position.z-=a.z)},e.prototype.syncImpostorWithBone=function(t,i,n,r,s,a){var c=this.object;if(c.rotationQuaternion)if(s){var l=e._tmpQuat;t.getRotationQuaternionToRef(o.s.WORLD,i,l),l.multiplyToRef(s,c.rotationQuaternion)}else t.getRotationQuaternionToRef(o.s.WORLD,i,c.rotationQuaternion);var u=e._tmpVecs[0],h=e._tmpVecs[1];a||((a=e._tmpVecs[2]).x=0,a.y=1,a.z=0),t.getDirectionToRef(a,i,h),t.getAbsolutePositionToRef(i,u),null==r&&n&&(r=n.length()),null!=r&&(u.x+=h.x*r,u.y+=h.y*r,u.z+=h.z*r),c.setAbsolutePosition(u)},e.DEFAULT_OBJECT_SIZE=new o.x(1,1,1),e.IDENTITY_QUATERNION=o.q.Identity(),e._tmpVecs=r.a.BuildArray(3,o.x.Zero),e._tmpQuat=o.q.Identity(),e.NoImpostor=0,e.SphereImpostor=1,e.BoxImpostor=2,e.PlaneImpostor=3,e.MeshImpostor=4,e.CylinderImpostor=7,e.ParticleImpostor=8,e.HeightmapImpostor=9,e.ConvexHullImpostor=10,e.RopeImpostor=101,e.ClothImpostor=102,e.SoftbodyImpostor=103,e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return r}),i.d(t,"b",function(){return o});var n=i(1),r=function(){function e(t){this.length=0,this.data=new Array(t),this._id=e._GlobalId++}return e.prototype.push=function(e){this.data[this.length++]=e,this.length>this.data.length&&(this.data.length*=2)},e.prototype.forEach=function(e){for(var t=0;tthis.data.length&&(this.data.length=2*(this.length+e.length));for(var t=0;t=this.length?-1:t},e.prototype.contains=function(e){return-1!==this.indexOf(e)},e._GlobalId=0,e}(),o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._duplicateId=0,t}return n.d(t,e),t.prototype.push=function(t){e.prototype.push.call(this,t),t.__smartArrayFlags||(t.__smartArrayFlags={}),t.__smartArrayFlags[this._id]=this._duplicateId},t.prototype.pushNoDuplicate=function(e){return(!e.__smartArrayFlags||e.__smartArrayFlags[this._id]!==this._duplicateId)&&(this.push(e),!0)},t.prototype.reset=function(){e.prototype.reset.call(this),this._duplicateId++},t.prototype.concatWithNoDuplicate=function(e){if(0!==e.length){this.length+e.length>this.data.length&&(this.data.length=2*(this.length+e.length));for(var t=0;t0)if("object"==typeof s[0])for(var c=0;c0,o.REFLECTIONOVERALPHA=this._useReflectionOverAlpha,o.INVERTCUBICMAP=this._reflectionTexture.coordinatesMode===p.a.INVCUBIC_MODE,o.REFLECTIONMAP_3D=this._reflectionTexture.isCube,this._reflectionTexture.coordinatesMode){case p.a.EXPLICIT_MODE:o.setReflectionMode("REFLECTIONMAP_EXPLICIT");break;case p.a.PLANAR_MODE:o.setReflectionMode("REFLECTIONMAP_PLANAR");break;case p.a.PROJECTION_MODE:o.setReflectionMode("REFLECTIONMAP_PROJECTION");break;case p.a.SKYBOX_MODE:o.setReflectionMode("REFLECTIONMAP_SKYBOX"),o.REFLECTIONMAP_SKYBOX_TRANSFORMED=!this._reflectionTexture.getReflectionTextureMatrix().isIdentity();break;case p.a.SPHERICAL_MODE:o.setReflectionMode("REFLECTIONMAP_SPHERICAL");break;case p.a.EQUIRECTANGULAR_MODE:o.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR");break;case p.a.FIXED_EQUIRECTANGULAR_MODE:o.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR_FIXED");break;case p.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:o.setReflectionMode("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED");break;case p.a.CUBIC_MODE:case p.a.INVCUBIC_MODE:default:o.setReflectionMode("REFLECTIONMAP_CUBIC")}o.USE_LOCAL_REFLECTIONMAP_CUBIC=!!this._reflectionTexture.boundingBoxSize}else o.REFLECTION=!1;if(this._emissiveTexture&&t.EmissiveTextureEnabled){if(!this._emissiveTexture.isReadyOrNotBlocking())return!1;f.a.PrepareDefinesForMergedUV(this._emissiveTexture,o,"EMISSIVE")}else o.EMISSIVE=!1;if(this._lightmapTexture&&t.LightmapTextureEnabled){if(!this._lightmapTexture.isReadyOrNotBlocking())return!1;f.a.PrepareDefinesForMergedUV(this._lightmapTexture,o,"LIGHTMAP"),o.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap}else o.LIGHTMAP=!1;if(this._specularTexture&&t.SpecularTextureEnabled){if(!this._specularTexture.isReadyOrNotBlocking())return!1;f.a.PrepareDefinesForMergedUV(this._specularTexture,o,"SPECULAR"),o.GLOSSINESS=this._useGlossinessFromSpecularMapAlpha}else o.SPECULAR=!1;if(r.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&t.BumpTextureEnabled){if(!this._bumpTexture.isReady())return!1;f.a.PrepareDefinesForMergedUV(this._bumpTexture,o,"BUMP"),o.PARALLAX=this._useParallax,o.PARALLAXOCCLUSION=this._useParallaxOcclusion,o.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap}else o.BUMP=!1;if(this._refractionTexture&&t.RefractionTextureEnabled){if(!this._refractionTexture.isReadyOrNotBlocking())return!1;o._needUVs=!0,o.REFRACTION=!0,o.REFRACTIONMAP_3D=this._refractionTexture.isCube}else o.REFRACTION=!1;o.TWOSIDEDLIGHTING=!this._backFaceCulling&&this._twoSidedLighting}else o.DIFFUSE=!1,o.AMBIENT=!1,o.OPACITY=!1,o.REFLECTION=!1,o.EMISSIVE=!1,o.LIGHTMAP=!1,o.BUMP=!1,o.REFRACTION=!1;o.ALPHAFROMDIFFUSE=this._shouldUseAlphaFromDiffuseTexture(),o.EMISSIVEASILLUMINATION=this._useEmissiveAsIllumination,o.LINKEMISSIVEWITHDIFFUSE=this._linkEmissiveWithDiffuse,o.SPECULAROVERALPHA=this._useSpecularOverAlpha,o.PREMULTIPLYALPHA=this.alphaMode===A.a.ALPHA_PREMULTIPLIED||this.alphaMode===A.a.ALPHA_PREMULTIPLIED_PORTERDUFF}if(o._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(o),o.IS_REFLECTION_LINEAR=null!=this.reflectionTexture&&!this.reflectionTexture.gammaSpace,o.IS_REFRACTION_LINEAR=null!=this.refractionTexture&&!this.refractionTexture.gammaSpace}if(o._areFresnelDirty&&(t.FresnelEnabled?(this._diffuseFresnelParameters||this._opacityFresnelParameters||this._emissiveFresnelParameters||this._refractionFresnelParameters||this._reflectionFresnelParameters)&&(o.DIFFUSEFRESNEL=this._diffuseFresnelParameters&&this._diffuseFresnelParameters.isEnabled,o.OPACITYFRESNEL=this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled,o.REFLECTIONFRESNEL=this._reflectionFresnelParameters&&this._reflectionFresnelParameters.isEnabled,o.REFLECTIONFRESNELFROMSPECULAR=this._useReflectionFresnelFromSpecular,o.REFRACTIONFRESNEL=this._refractionFresnelParameters&&this._refractionFresnelParameters.isEnabled,o.EMISSIVEFRESNEL=this._emissiveFresnelParameters&&this._emissiveFresnelParameters.isEnabled,o._needNormals=!0,o.FRESNEL=!0):o.FRESNEL=!1),f.a.PrepareDefinesForMisc(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e),o),f.a.PrepareDefinesForAttributes(e,o,!0,!0,!0),f.a.PrepareDefinesForFrameBoundValues(r,s,o,n),o.isDirty){o.markAsProcessed();var a=new u.c;o.REFLECTION&&a.addFallback(0,"REFLECTION"),o.SPECULAR&&a.addFallback(0,"SPECULAR"),o.BUMP&&a.addFallback(0,"BUMP"),o.PARALLAX&&a.addFallback(1,"PARALLAX"),o.PARALLAXOCCLUSION&&a.addFallback(0,"PARALLAXOCCLUSION"),o.SPECULAROVERALPHA&&a.addFallback(0,"SPECULAROVERALPHA"),o.FOG&&a.addFallback(1,"FOG"),o.POINTSIZE&&a.addFallback(0,"POINTSIZE"),o.LOGARITHMICDEPTH&&a.addFallback(0,"LOGARITHMICDEPTH"),f.a.HandleFallbacksForShadows(o,a,this._maxSimultaneousLights),o.SPECULARTERM&&a.addFallback(0,"SPECULARTERM"),o.DIFFUSEFRESNEL&&a.addFallback(1,"DIFFUSEFRESNEL"),o.OPACITYFRESNEL&&a.addFallback(2,"OPACITYFRESNEL"),o.REFLECTIONFRESNEL&&a.addFallback(3,"REFLECTIONFRESNEL"),o.EMISSIVEFRESNEL&&a.addFallback(4,"EMISSIVEFRESNEL"),o.FRESNEL&&a.addFallback(4,"FRESNEL"),o.MULTIVIEW&&a.addFallback(0,"MULTIVIEW");var h=[c.b.PositionKind];o.NORMAL&&h.push(c.b.NormalKind),o.UV1&&h.push(c.b.UVKind),o.UV2&&h.push(c.b.UV2Kind),o.VERTEXCOLOR&&h.push(c.b.ColorKind),f.a.PrepareAttributesForBones(h,e,o,a),f.a.PrepareAttributesForInstances(h,o),f.a.PrepareAttributesForMorphTargets(h,e,o);var d="default",_=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vDiffuseColor","vSpecularColor","vEmissiveColor","visibility","vFogInfos","vFogColor","pointSize","vDiffuseInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vEmissiveInfos","vSpecularInfos","vBumpInfos","vLightmapInfos","vRefractionInfos","mBones","vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","diffuseMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","specularMatrix","bumpMatrix","normalMatrix","lightmapMatrix","refractionMatrix","diffuseLeftColor","diffuseRightColor","opacityParts","reflectionLeftColor","reflectionRightColor","emissiveLeftColor","emissiveRightColor","refractionLeftColor","refractionRightColor","vReflectionPosition","vReflectionSize","logarithmicDepthConstant","vTangentSpaceParams","alphaCutOff","boneTextureWidth"],g=["diffuseSampler","ambientSampler","opacitySampler","reflectionCubeSampler","reflection2DSampler","emissiveSampler","specularSampler","bumpSampler","lightmapSampler","refractionCubeSampler","refraction2DSampler","boneSampler"],m=["Material","Scene"];l.a&&(l.a.PrepareUniforms(_,o),l.a.PrepareSamplers(g,o)),f.a.PrepareUniformsAndSamplersList({uniformsNames:_,uniformBuffersNames:m,samplers:g,defines:o,maxSimultaneousLights:this._maxSimultaneousLights}),this.customShaderNameResolve&&(d=this.customShaderNameResolve(d,_,m,g,o));var v=o.toString(),y=i.effect,b=r.getEngine().createEffect(d,{attributes:h,uniformsNames:_,uniformBuffersNames:m,samplers:g,defines:v,fallbacks:a,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:o.NUM_MORPH_INFLUENCERS}},s);b&&(this.allowShaderHotSwapping&&y&&!b.isReady()?(b=y,o.markAsUnprocessed()):(r.resetCachedMaterial(),i.setEffect(b,o),this.buildUniformLayout()))}return!(!i.effect||!i.effect.isReady())&&(o._renderId=r.getRenderId(),this._wasPreviouslyReady=!0,!0)},t.prototype.buildUniformLayout=function(){var e=this._uniformBuffer;e.addUniform("diffuseLeftColor",4),e.addUniform("diffuseRightColor",4),e.addUniform("opacityParts",4),e.addUniform("reflectionLeftColor",4),e.addUniform("reflectionRightColor",4),e.addUniform("refractionLeftColor",4),e.addUniform("refractionRightColor",4),e.addUniform("emissiveLeftColor",4),e.addUniform("emissiveRightColor",4),e.addUniform("vDiffuseInfos",2),e.addUniform("vAmbientInfos",2),e.addUniform("vOpacityInfos",2),e.addUniform("vReflectionInfos",2),e.addUniform("vReflectionPosition",3),e.addUniform("vReflectionSize",3),e.addUniform("vEmissiveInfos",2),e.addUniform("vLightmapInfos",2),e.addUniform("vSpecularInfos",2),e.addUniform("vBumpInfos",3),e.addUniform("diffuseMatrix",16),e.addUniform("ambientMatrix",16),e.addUniform("opacityMatrix",16),e.addUniform("reflectionMatrix",16),e.addUniform("emissiveMatrix",16),e.addUniform("lightmapMatrix",16),e.addUniform("specularMatrix",16),e.addUniform("bumpMatrix",16),e.addUniform("vTangentSpaceParams",2),e.addUniform("pointSize",1),e.addUniform("refractionMatrix",16),e.addUniform("vRefractionInfos",4),e.addUniform("vSpecularColor",4),e.addUniform("vEmissiveColor",3),e.addUniform("visibility",1),e.addUniform("vDiffuseColor",4),e.create()},t.prototype.unbind=function(){if(this._activeEffect){var t=!1;this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&(this._activeEffect.setTexture("reflection2DSampler",null),t=!0),this._refractionTexture&&this._refractionTexture.isRenderTarget&&(this._activeEffect.setTexture("refraction2DSampler",null),t=!0),t&&this._markAllSubMeshesAsTexturesDirty()}e.prototype.unbind.call(this)},t.prototype.bindForSubMesh=function(e,i,n){var r=this.getScene(),o=n._materialDefines;if(o){var c=n.effect;if(c){this._activeEffect=c,o.INSTANCES||this.bindOnlyWorldMatrix(e),o.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));var l=this._mustRebind(r,c,i.visibility);f.a.BindBonesParameters(i,c);var u=this._uniformBuffer;if(l){if(u.bindToEffect(c,"Material"),this.bindViewProjection(c),!u.useUbo||!this.isFrozen||!u.isSync){if(t.FresnelEnabled&&o.FRESNEL&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled&&(u.updateColor4("diffuseLeftColor",this.diffuseFresnelParameters.leftColor,this.diffuseFresnelParameters.power),u.updateColor4("diffuseRightColor",this.diffuseFresnelParameters.rightColor,this.diffuseFresnelParameters.bias)),this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled&&u.updateColor4("opacityParts",new a.e(this.opacityFresnelParameters.leftColor.toLuminance(),this.opacityFresnelParameters.rightColor.toLuminance(),this.opacityFresnelParameters.bias),this.opacityFresnelParameters.power),this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled&&(u.updateColor4("reflectionLeftColor",this.reflectionFresnelParameters.leftColor,this.reflectionFresnelParameters.power),u.updateColor4("reflectionRightColor",this.reflectionFresnelParameters.rightColor,this.reflectionFresnelParameters.bias)),this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled&&(u.updateColor4("refractionLeftColor",this.refractionFresnelParameters.leftColor,this.refractionFresnelParameters.power),u.updateColor4("refractionRightColor",this.refractionFresnelParameters.rightColor,this.refractionFresnelParameters.bias)),this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled&&(u.updateColor4("emissiveLeftColor",this.emissiveFresnelParameters.leftColor,this.emissiveFresnelParameters.power),u.updateColor4("emissiveRightColor",this.emissiveFresnelParameters.rightColor,this.emissiveFresnelParameters.bias))),r.texturesEnabled){if(this._diffuseTexture&&t.DiffuseTextureEnabled&&(u.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),f.a.BindTextureMatrix(this._diffuseTexture,u,"diffuse"),this._diffuseTexture.hasAlpha&&c.setFloat("alphaCutOff",this.alphaCutOff)),this._ambientTexture&&t.AmbientTextureEnabled&&(u.updateFloat2("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level),f.a.BindTextureMatrix(this._ambientTexture,u,"ambient")),this._opacityTexture&&t.OpacityTextureEnabled&&(u.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),f.a.BindTextureMatrix(this._opacityTexture,u,"opacity")),this._reflectionTexture&&t.ReflectionTextureEnabled&&(u.updateFloat2("vReflectionInfos",this._reflectionTexture.level,this.roughness),u.updateMatrix("reflectionMatrix",this._reflectionTexture.getReflectionTextureMatrix()),this._reflectionTexture.boundingBoxSize)){var h=this._reflectionTexture;u.updateVector3("vReflectionPosition",h.boundingBoxPosition),u.updateVector3("vReflectionSize",h.boundingBoxSize)}if(this._emissiveTexture&&t.EmissiveTextureEnabled&&(u.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),f.a.BindTextureMatrix(this._emissiveTexture,u,"emissive")),this._lightmapTexture&&t.LightmapTextureEnabled&&(u.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),f.a.BindTextureMatrix(this._lightmapTexture,u,"lightmap")),this._specularTexture&&t.SpecularTextureEnabled&&(u.updateFloat2("vSpecularInfos",this._specularTexture.coordinatesIndex,this._specularTexture.level),f.a.BindTextureMatrix(this._specularTexture,u,"specular")),this._bumpTexture&&r.getEngine().getCaps().standardDerivatives&&t.BumpTextureEnabled&&(u.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,1/this._bumpTexture.level,this.parallaxScaleBias),f.a.BindTextureMatrix(this._bumpTexture,u,"bump"),r._mirroredCameraPosition?u.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):u.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1)),this._refractionTexture&&t.RefractionTextureEnabled){var d=1;this._refractionTexture.isCube||(u.updateMatrix("refractionMatrix",this._refractionTexture.getReflectionTextureMatrix()),this._refractionTexture.depth&&(d=this._refractionTexture.depth)),u.updateFloat4("vRefractionInfos",this._refractionTexture.level,this.indexOfRefraction,d,this.invertRefractionY?-1:1)}}this.pointsCloud&&u.updateFloat("pointSize",this.pointSize),o.SPECULARTERM&&u.updateColor4("vSpecularColor",this.specularColor,this.specularPower),u.updateColor3("vEmissiveColor",t.EmissiveTextureEnabled?this.emissiveColor:a.e.BlackReadOnly),u.updateFloat("visibility",i.visibility),u.updateColor4("vDiffuseColor",this.diffuseColor,this.alpha)}if(r.texturesEnabled&&(this._diffuseTexture&&t.DiffuseTextureEnabled&&c.setTexture("diffuseSampler",this._diffuseTexture),this._ambientTexture&&t.AmbientTextureEnabled&&c.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&t.OpacityTextureEnabled&&c.setTexture("opacitySampler",this._opacityTexture),this._reflectionTexture&&t.ReflectionTextureEnabled&&(this._reflectionTexture.isCube?c.setTexture("reflectionCubeSampler",this._reflectionTexture):c.setTexture("reflection2DSampler",this._reflectionTexture)),this._emissiveTexture&&t.EmissiveTextureEnabled&&c.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&t.LightmapTextureEnabled&&c.setTexture("lightmapSampler",this._lightmapTexture),this._specularTexture&&t.SpecularTextureEnabled&&c.setTexture("specularSampler",this._specularTexture),this._bumpTexture&&r.getEngine().getCaps().standardDerivatives&&t.BumpTextureEnabled&&c.setTexture("bumpSampler",this._bumpTexture),this._refractionTexture&&t.RefractionTextureEnabled)){d=1;this._refractionTexture.isCube?c.setTexture("refractionCubeSampler",this._refractionTexture):c.setTexture("refraction2DSampler",this._refractionTexture)}f.a.BindClipPlane(c,r),r.ambientColor.multiplyToRef(this.ambientColor,this._globalAmbientColor),f.a.BindEyePosition(c,r),c.setColor3("vAmbientColor",this._globalAmbientColor)}!l&&this.isFrozen||(r.lightsEnabled&&!this._disableLighting&&f.a.BindLights(r,i,c,o,this._maxSimultaneousLights),(r.fogEnabled&&i.applyFog&&r.fogMode!==s.a.FOGMODE_NONE||this._reflectionTexture||this._refractionTexture)&&this.bindView(c),f.a.BindFogParameters(r,i,c),o.NUM_MORPH_INFLUENCERS&&f.a.BindMorphTargetParameters(i,c),f.a.BindLogDepth(o,c,r),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._activeEffect)),u.update(),this._afterBind(i,this._activeEffect)}}},t.prototype.getAnimatables=function(){var e=[];return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._specularTexture&&this._specularTexture.animations&&this._specularTexture.animations.length>0&&e.push(this._specularTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture),e},t.prototype.getActiveTextures=function(){var t=e.prototype.getActiveTextures.call(this);return this._diffuseTexture&&t.push(this._diffuseTexture),this._ambientTexture&&t.push(this._ambientTexture),this._opacityTexture&&t.push(this._opacityTexture),this._reflectionTexture&&t.push(this._reflectionTexture),this._emissiveTexture&&t.push(this._emissiveTexture),this._specularTexture&&t.push(this._specularTexture),this._bumpTexture&&t.push(this._bumpTexture),this._lightmapTexture&&t.push(this._lightmapTexture),this._refractionTexture&&t.push(this._refractionTexture),t},t.prototype.hasTexture=function(t){return!!e.prototype.hasTexture.call(this,t)||(this._diffuseTexture===t||(this._ambientTexture===t||(this._opacityTexture===t||(this._reflectionTexture===t||(this._emissiveTexture===t||(this._specularTexture===t||(this._bumpTexture===t||(this._lightmapTexture===t||this._refractionTexture===t))))))))},t.prototype.dispose=function(t,i){i&&(this._diffuseTexture&&this._diffuseTexture.dispose(),this._ambientTexture&&this._ambientTexture.dispose(),this._opacityTexture&&this._opacityTexture.dispose(),this._reflectionTexture&&this._reflectionTexture.dispose(),this._emissiveTexture&&this._emissiveTexture.dispose(),this._specularTexture&&this._specularTexture.dispose(),this._bumpTexture&&this._bumpTexture.dispose(),this._lightmapTexture&&this._lightmapTexture.dispose(),this._refractionTexture&&this._refractionTexture.dispose()),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e.prototype.dispose.call(this,t,i)},t.prototype.clone=function(e){var i=this,n=r.a.Clone(function(){return new t(e,i.getScene())},this);return n.name=e,n.id=e,n},t.prototype.serialize=function(){return r.a.Serialize(this)},t.Parse=function(e,i,n){return r.a.Parse(function(){return new t(e.name,i)},e,i,n)},Object.defineProperty(t,"DiffuseTextureEnabled",{get:function(){return g.a.DiffuseTextureEnabled},set:function(e){g.a.DiffuseTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"AmbientTextureEnabled",{get:function(){return g.a.AmbientTextureEnabled},set:function(e){g.a.AmbientTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"OpacityTextureEnabled",{get:function(){return g.a.OpacityTextureEnabled},set:function(e){g.a.OpacityTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"ReflectionTextureEnabled",{get:function(){return g.a.ReflectionTextureEnabled},set:function(e){g.a.ReflectionTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"EmissiveTextureEnabled",{get:function(){return g.a.EmissiveTextureEnabled},set:function(e){g.a.EmissiveTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"SpecularTextureEnabled",{get:function(){return g.a.SpecularTextureEnabled},set:function(e){g.a.SpecularTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"BumpTextureEnabled",{get:function(){return g.a.BumpTextureEnabled},set:function(e){g.a.BumpTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"LightmapTextureEnabled",{get:function(){return g.a.LightmapTextureEnabled},set:function(e){g.a.LightmapTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"RefractionTextureEnabled",{get:function(){return g.a.RefractionTextureEnabled},set:function(e){g.a.RefractionTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"ColorGradingTextureEnabled",{get:function(){return g.a.ColorGradingTextureEnabled},set:function(e){g.a.ColorGradingTextureEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"FresnelEnabled",{get:function(){return g.a.FresnelEnabled},set:function(e){g.a.FresnelEnabled=e},enumerable:!0,configurable:!0}),n.c([Object(r.m)("diffuseTexture")],t.prototype,"_diffuseTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"diffuseTexture",void 0),n.c([Object(r.m)("ambientTexture")],t.prototype,"_ambientTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTexture",void 0),n.c([Object(r.m)("opacityTexture")],t.prototype,"_opacityTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"opacityTexture",void 0),n.c([Object(r.m)("reflectionTexture")],t.prototype,"_reflectionTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionTexture",void 0),n.c([Object(r.m)("emissiveTexture")],t.prototype,"_emissiveTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveTexture",void 0),n.c([Object(r.m)("specularTexture")],t.prototype,"_specularTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"specularTexture",void 0),n.c([Object(r.m)("bumpTexture")],t.prototype,"_bumpTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"bumpTexture",void 0),n.c([Object(r.m)("lightmapTexture")],t.prototype,"_lightmapTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"lightmapTexture",void 0),n.c([Object(r.m)("refractionTexture")],t.prototype,"_refractionTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"refractionTexture",void 0),n.c([Object(r.e)("ambient")],t.prototype,"ambientColor",void 0),n.c([Object(r.e)("diffuse")],t.prototype,"diffuseColor",void 0),n.c([Object(r.e)("specular")],t.prototype,"specularColor",void 0),n.c([Object(r.e)("emissive")],t.prototype,"emissiveColor",void 0),n.c([Object(r.c)()],t.prototype,"specularPower",void 0),n.c([Object(r.c)("useAlphaFromDiffuseTexture")],t.prototype,"_useAlphaFromDiffuseTexture",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAlphaFromDiffuseTexture",void 0),n.c([Object(r.c)("useEmissiveAsIllumination")],t.prototype,"_useEmissiveAsIllumination",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useEmissiveAsIllumination",void 0),n.c([Object(r.c)("linkEmissiveWithDiffuse")],t.prototype,"_linkEmissiveWithDiffuse",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"linkEmissiveWithDiffuse",void 0),n.c([Object(r.c)("useSpecularOverAlpha")],t.prototype,"_useSpecularOverAlpha",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useSpecularOverAlpha",void 0),n.c([Object(r.c)("useReflectionOverAlpha")],t.prototype,"_useReflectionOverAlpha",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useReflectionOverAlpha",void 0),n.c([Object(r.c)("disableLighting")],t.prototype,"_disableLighting",void 0),n.c([Object(r.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"disableLighting",void 0),n.c([Object(r.c)("useObjectSpaceNormalMap")],t.prototype,"_useObjectSpaceNormalMap",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useObjectSpaceNormalMap",void 0),n.c([Object(r.c)("useParallax")],t.prototype,"_useParallax",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useParallax",void 0),n.c([Object(r.c)("useParallaxOcclusion")],t.prototype,"_useParallaxOcclusion",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useParallaxOcclusion",void 0),n.c([Object(r.c)()],t.prototype,"parallaxScaleBias",void 0),n.c([Object(r.c)("roughness")],t.prototype,"_roughness",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"roughness",void 0),n.c([Object(r.c)()],t.prototype,"indexOfRefraction",void 0),n.c([Object(r.c)()],t.prototype,"invertRefractionY",void 0),n.c([Object(r.c)()],t.prototype,"alphaCutOff",void 0),n.c([Object(r.c)("useLightmapAsShadowmap")],t.prototype,"_useLightmapAsShadowmap",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useLightmapAsShadowmap",void 0),n.c([Object(r.h)("diffuseFresnelParameters")],t.prototype,"_diffuseFresnelParameters",void 0),n.c([Object(r.b)("_markAllSubMeshesAsFresnelDirty")],t.prototype,"diffuseFresnelParameters",void 0),n.c([Object(r.h)("opacityFresnelParameters")],t.prototype,"_opacityFresnelParameters",void 0),n.c([Object(r.b)("_markAllSubMeshesAsFresnelAndMiscDirty")],t.prototype,"opacityFresnelParameters",void 0),n.c([Object(r.h)("reflectionFresnelParameters")],t.prototype,"_reflectionFresnelParameters",void 0),n.c([Object(r.b)("_markAllSubMeshesAsFresnelDirty")],t.prototype,"reflectionFresnelParameters",void 0),n.c([Object(r.h)("refractionFresnelParameters")],t.prototype,"_refractionFresnelParameters",void 0),n.c([Object(r.b)("_markAllSubMeshesAsFresnelDirty")],t.prototype,"refractionFresnelParameters",void 0),n.c([Object(r.h)("emissiveFresnelParameters")],t.prototype,"_emissiveFresnelParameters",void 0),n.c([Object(r.b)("_markAllSubMeshesAsFresnelDirty")],t.prototype,"emissiveFresnelParameters",void 0),n.c([Object(r.c)("useReflectionFresnelFromSpecular")],t.prototype,"_useReflectionFresnelFromSpecular",void 0),n.c([Object(r.b)("_markAllSubMeshesAsFresnelDirty")],t.prototype,"useReflectionFresnelFromSpecular",void 0),n.c([Object(r.c)("useGlossinessFromSpecularMapAlpha")],t.prototype,"_useGlossinessFromSpecularMapAlpha",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useGlossinessFromSpecularMapAlpha",void 0),n.c([Object(r.c)("maxSimultaneousLights")],t.prototype,"_maxSimultaneousLights",void 0),n.c([Object(r.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"maxSimultaneousLights",void 0),n.c([Object(r.c)("invertNormalMapX")],t.prototype,"_invertNormalMapX",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"invertNormalMapX",void 0),n.c([Object(r.c)("invertNormalMapY")],t.prototype,"_invertNormalMapY",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"invertNormalMapY",void 0),n.c([Object(r.c)("twoSidedLighting")],t.prototype,"_twoSidedLighting",void 0),n.c([Object(r.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"twoSidedLighting",void 0),n.c([Object(r.c)()],t.prototype,"useLogarithmicDepth",null),t}(d.a);_.a.RegisteredTypes["BABYLON.StandardMaterial"]=R,s.a.DefaultMaterialFactory=function(e){return new R("default material",e)}},function(e,t,i){"use strict";i.d(t,"a",function(){return n});var n=function(){function e(){}return e.BuildArray=function(e,t){for(var i=[],n=0;n0&&-1===this.includedOnlyMeshes.indexOf(e))&&(!(this.excludedMeshes&&this.excludedMeshes.length>0&&-1!==this.excludedMeshes.indexOf(e))&&((0===this.includeOnlyWithLayerMask||0!=(this.includeOnlyWithLayerMask&e.layerMask))&&!(0!==this.excludeWithLayerMask&&this.excludeWithLayerMask&e.layerMask)))},t.CompareLightsPriority=function(e,t){return e.shadowEnabled!==t.shadowEnabled?(t.shadowEnabled?1:0)-(e.shadowEnabled?1:0):t.renderPriority-e.renderPriority},t.prototype.dispose=function(t,i){void 0===i&&(i=!1),this._shadowGenerator&&(this._shadowGenerator.dispose(),this._shadowGenerator=null),this.getScene().stopAnimation(this);for(var n=0,r=this.getScene().meshes;n0&&(e.excludedMeshesIds=[],this.excludedMeshes.forEach(function(t){e.excludedMeshesIds.push(t.id)})),this.includedOnlyMeshes.length>0&&(e.includedOnlyMeshesIds=[],this.includedOnlyMeshes.forEach(function(t){e.includedOnlyMeshesIds.push(t.id)})),r.a.AppendSerializedAnimations(this,e),e.ranges=this.serializeAnimationRanges(),e},t.GetConstructorFromName=function(e,t,i){var n=s.a.Construct("Light_Type_"+e,t,i);return n||null},t.Parse=function(e,i){var n=t.GetConstructorFromName(e.type,e.name,i);if(!n)return null;var o=r.a.Parse(n,e,i);if(e.excludedMeshesIds&&(o._excludedMeshesIds=e.excludedMeshesIds),e.includedOnlyMeshesIds&&(o._includedOnlyMeshesIds=e.includedOnlyMeshesIds),e.parentId&&(o._waitingParentId=e.parentId),void 0!==e.falloffType&&(o.falloffType=e.falloffType),void 0!==e.lightmapMode&&(o.lightmapMode=e.lightmapMode),e.animations){for(var a=0;al.x)return!1}else if(r=1/this.direction.x,o=(c.x-this.origin.x)*r,(s=(l.x-this.origin.x)*r)===-1/0&&(s=1/0),o>s&&(a=o,o=s,s=a),(u=Math.max(o,u))>(h=Math.min(s,h)))return!1;if(Math.abs(this.direction.y)<1e-7){if(this.origin.yl.y)return!1}else if(r=1/this.direction.y,o=(c.y-this.origin.y)*r,(s=(l.y-this.origin.y)*r)===-1/0&&(s=1/0),o>s&&(a=o,o=s,s=a),(u=Math.max(o,u))>(h=Math.min(s,h)))return!1;if(Math.abs(this.direction.z)<1e-7){if(this.origin.zl.z)return!1}else if(r=1/this.direction.z,o=(c.z-this.origin.z)*r,(s=(l.z-this.origin.z)*r)===-1/0&&(s=1/0),o>s&&(a=o,o=s,s=a),(u=Math.max(o,u))>(h=Math.min(s,h)))return!1;return!0},e.prototype.intersectsBox=function(e,t){return void 0===t&&(t=0),this.intersectsBoxMinMax(e.minimum,e.maximum,t)},e.prototype.intersectsSphere=function(e,t){void 0===t&&(t=0);var i=e.center.x-this.origin.x,n=e.center.y-this.origin.y,r=e.center.z-this.origin.z,o=i*i+n*n+r*r,s=e.radius+t,a=s*s;if(o<=a)return!0;var c=i*this.direction.x+n*this.direction.y+r*this.direction.z;return!(c<0)&&o-c*c<=a},e.prototype.intersectsTriangle=function(t,i,n){var o=e.TmpVector3[0],a=e.TmpVector3[1],c=e.TmpVector3[2],l=e.TmpVector3[3],u=e.TmpVector3[4];i.subtractToRef(t,o),n.subtractToRef(t,a),r.x.CrossToRef(this.direction,a,c);var h=r.x.Dot(o,c);if(0===h)return null;var d=1/h;this.origin.subtractToRef(t,l);var f=r.x.Dot(l,c)*d;if(f<0||f>1)return null;r.x.CrossToRef(l,o,u);var p=r.x.Dot(this.direction,u)*d;if(p<0||f+p>1)return null;var _=r.x.Dot(a,u)*d;return _>this.length?null:new s.a(f,p,_)},e.prototype.intersectsPlane=function(e){var t,i=r.x.Dot(e.normal,this.direction);if(Math.abs(i)<9.99999997475243e-7)return null;var n=r.x.Dot(e.normal,this.origin);return(t=(-e.d-n)/i)<0?t<-9.99999997475243e-7?null:0:t},e.prototype.intersectsMesh=function(t,i){var n=r.t.Matrix[0];return t.getWorldMatrix().invertToRef(n),this._tmpRay?e.TransformToRef(this,n,this._tmpRay):this._tmpRay=e.Transform(this,n),t.intersects(this._tmpRay,i)},e.prototype.intersectsMeshes=function(e,t,i){i?i.length=0:i=[];for(var n=0;nt.distance?1:0},e.prototype.intersectionSegment=function(t,i,n){var o=this.origin,s=r.t.Vector3[0],a=r.t.Vector3[1],c=r.t.Vector3[2],l=r.t.Vector3[3];i.subtractToRef(t,s),this.direction.scaleToRef(e.rayl,c),o.addToRef(c,a),t.subtractToRef(o,l);var u,h,d,f,p=r.x.Dot(s,s),_=r.x.Dot(s,c),g=r.x.Dot(c,c),m=r.x.Dot(s,l),v=r.x.Dot(c,l),y=p*g-_*_,b=y,T=y;yb&&(h=b,f=v+_,T=g)),f<0?(f=0,-m<0?h=0:-m>p?h=b:(h=-m,b=p)):f>T&&(f=T,-m+_<0?h=0:-m+_>p?h=b:(h=-m+_,b=p)),u=Math.abs(h)0&&d<=this.length&&x.lengthSquared()=r.distance))&&(r=l,i)))break}return r||new o.a},a.a.prototype._internalMultiPick=function(e,t,i){if(!o.a)return null;for(var n=new Array,r=0;r0&&(t.push(a-1),t.push(a)),a++}var d=new o.a;return d.indices=t,d.positions=i,r&&(d.colors=s),d},o.a.CreateDashedLines=function(e){var t,i,r=e.dashSize||3,s=e.gapSize||1,a=e.dashNb||200,c=e.points,l=new Array,u=new Array,h=n.x.Zero(),d=0,f=0,p=0,_=0,g=0;for(g=0;g0)):!i._pointerCaptures[c.pointerId]&&s.distance>a.distance&&(i.mainSceneTrackerPredicate&&i.mainSceneTrackerPredicate(a.pickedMesh)?(i._notifyObservers(t,a,c),t.skipOnPointerObservable=!0):i._lastPointerEvents[c.pointerId]&&(i.onPointerOutObservable.notifyObservers(c.pointerId),delete i._lastPointerEvents[c.pointerId])),t.type===o.a.POINTERUP&&i._pointerCaptures[c.pointerId]&&(i._pointerCaptures[c.pointerId]=!1))}}}}),this._originalPointerObserver&&e.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)),this.utilityLayerScene.autoClear=!1,this._afterRenderObserver=this.originalScene.onAfterRenderObservable.add(function(){i.shouldRender&&i.render()}),this._sceneDisposeObserver=this.originalScene.onDisposeObservable.add(function(){i.dispose()}),this._updateCamera()}return e.prototype._getSharedGizmoLight=function(){return this._sharedGizmoLight||(this._sharedGizmoLight=new a.a("shared gizmo light",new c.x(0,1,0),this.utilityLayerScene),this._sharedGizmoLight.intensity=2,this._sharedGizmoLight.groundColor=c.e.Gray()),this._sharedGizmoLight},Object.defineProperty(e,"DefaultUtilityLayer",{get:function(){return null==e._DefaultUtilityLayer&&(e._DefaultUtilityLayer=new e(s.a.LastCreatedScene),e._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce(function(){e._DefaultUtilityLayer=null})),e._DefaultUtilityLayer},enumerable:!0,configurable:!0}),Object.defineProperty(e,"DefaultKeepDepthUtilityLayer",{get:function(){return null==e._DefaultKeepDepthUtilityLayer&&(e._DefaultKeepDepthUtilityLayer=new e(s.a.LastCreatedScene),e._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil=!1,e._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce(function(){e._DefaultKeepDepthUtilityLayer=null})),e._DefaultKeepDepthUtilityLayer},enumerable:!0,configurable:!0}),e.prototype._notifyObservers=function(e,t,i){e.skipOnPointerObservable||(this.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(e.type,e.event,t)),this._lastPointerEvents[i.pointerId]=!0)},e.prototype.render=function(){if(this._updateCamera(),this.utilityLayerScene.activeCamera){var e=this.utilityLayerScene.activeCamera.getScene(),t=this.utilityLayerScene.activeCamera;t._scene=this.utilityLayerScene,t.leftCamera&&(t.leftCamera._scene=this.utilityLayerScene),t.rightCamera&&(t.rightCamera._scene=this.utilityLayerScene),this.utilityLayerScene.render(!1),t._scene=e,t.leftCamera&&(t.leftCamera._scene=e),t.rightCamera&&(t.rightCamera._scene=e)}},e.prototype.dispose=function(){this.onPointerOutObservable.clear(),this._afterRenderObserver&&this.originalScene.onAfterRenderObservable.remove(this._afterRenderObserver),this._sceneDisposeObserver&&this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver),this._originalPointerObserver&&this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver),this.utilityLayerScene.dispose()},e.prototype._updateCamera=function(){this.originalScene.activeCameras.length>1?this.utilityLayerScene.activeCamera=this.originalScene.activeCameras[this.originalScene.activeCameras.length-1]:this.utilityLayerScene.activeCamera=this.originalScene.activeCamera},e._DefaultUtilityLayer=null,e._DefaultKeepDepthUtilityLayer=null,e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return a});var n=i(1),r=i(2),o=i(8),s=i(0),a=function(e){function t(i,n,r){void 0===n&&(n=null),void 0===r&&(r=!0);var a=e.call(this,i,n)||this;return a._forward=new s.x(0,0,1),a._forwardInverted=new s.x(0,0,-1),a._up=new s.x(0,1,0),a._right=new s.x(1,0,0),a._rightInverted=new s.x(-1,0,0),a._position=s.x.Zero(),a._rotation=s.x.Zero(),a._rotationQuaternion=null,a._scaling=s.x.One(),a._isDirty=!1,a._transformToBoneReferal=null,a._billboardMode=t.BILLBOARDMODE_NONE,a._preserveParentRotationForBillboard=!1,a.scalingDeterminant=1,a._infiniteDistance=!1,a.ignoreNonUniformScaling=!1,a.reIntegrateRotationIntoRotationQuaternion=!1,a._poseMatrix=null,a._localMatrix=s.j.Zero(),a._usePivotMatrix=!1,a._absolutePosition=s.x.Zero(),a._pivotMatrix=s.j.Identity(),a._postMultiplyPivotMatrix=!1,a._isWorldMatrixFrozen=!1,a._indexInSceneTransformNodesArray=-1,a.onAfterWorldMatrixUpdateObservable=new o.c,a._nonUniformScaling=!1,r&&a.getScene().addTransformNode(a),a}return n.d(t,e),Object.defineProperty(t.prototype,"billboardMode",{get:function(){return this._billboardMode},set:function(e){this._billboardMode!==e&&(this._billboardMode=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveParentRotationForBillboard",{get:function(){return this._preserveParentRotationForBillboard},set:function(e){e!==this._preserveParentRotationForBillboard&&(this._preserveParentRotationForBillboard=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"infiniteDistance",{get:function(){return this._infiniteDistance},set:function(e){this._infiniteDistance!==e&&(this._infiniteDistance=e)},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"TransformNode"},Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(e){this._position=e,this._isDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this._rotation},set:function(e){this._rotation=e,this._rotationQuaternion=null,this._isDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scaling",{get:function(){return this._scaling},set:function(e){this._scaling=e,this._isDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rotationQuaternion",{get:function(){return this._rotationQuaternion},set:function(e){this._rotationQuaternion=e,e&&this._rotation.setAll(0),this._isDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"forward",{get:function(){return s.x.Normalize(s.x.TransformNormal(this.getScene().useRightHandedSystem?this._forwardInverted:this._forward,this.getWorldMatrix()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"up",{get:function(){return s.x.Normalize(s.x.TransformNormal(this._up,this.getWorldMatrix()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"right",{get:function(){return s.x.Normalize(s.x.TransformNormal(this.getScene().useRightHandedSystem?this._rightInverted:this._right,this.getWorldMatrix()))},enumerable:!0,configurable:!0}),t.prototype.updatePoseMatrix=function(e){return this._poseMatrix?(this._poseMatrix.copyFrom(e),this):(this._poseMatrix=e.clone(),this)},t.prototype.getPoseMatrix=function(){return this._poseMatrix||(this._poseMatrix=s.j.Identity()),this._poseMatrix},t.prototype._isSynchronized=function(){var e=this._cache;if(this.billboardMode!==e.billboardMode||this.billboardMode!==t.BILLBOARDMODE_NONE)return!1;if(e.pivotMatrixUpdated)return!1;if(this.infiniteDistance)return!1;if(!e.position.equals(this._position))return!1;if(this._rotationQuaternion){if(!e.rotationQuaternion.equals(this._rotationQuaternion))return!1}else if(!e.rotation.equals(this._rotation))return!1;return!!e.scaling.equals(this._scaling)},t.prototype._initCache=function(){e.prototype._initCache.call(this);var t=this._cache;t.localMatrixUpdated=!1,t.position=s.x.Zero(),t.scaling=s.x.Zero(),t.rotation=s.x.Zero(),t.rotationQuaternion=new s.q(0,0,0,0),t.billboardMode=-1,t.infiniteDistance=!1},t.prototype.markAsDirty=function(e){return this._currentRenderId=Number.MAX_VALUE,this._isDirty=!0,this},Object.defineProperty(t.prototype,"absolutePosition",{get:function(){return this._absolutePosition},enumerable:!0,configurable:!0}),t.prototype.setPreTransformMatrix=function(e){return this.setPivotMatrix(e,!1)},t.prototype.setPivotMatrix=function(e,t){return void 0===t&&(t=!0),this._pivotMatrix.copyFrom(e),this._usePivotMatrix=!this._pivotMatrix.isIdentity(),this._cache.pivotMatrixUpdated=!0,this._postMultiplyPivotMatrix=t,this._postMultiplyPivotMatrix&&(this._pivotMatrixInverse?this._pivotMatrix.invertToRef(this._pivotMatrixInverse):this._pivotMatrixInverse=s.j.Invert(this._pivotMatrix)),this},t.prototype.getPivotMatrix=function(){return this._pivotMatrix},t.prototype.freezeWorldMatrix=function(){return this._isWorldMatrixFrozen=!1,this.computeWorldMatrix(!0),this._isWorldMatrixFrozen=!0,this},t.prototype.unfreezeWorldMatrix=function(){return this._isWorldMatrixFrozen=!1,this.computeWorldMatrix(!0),this},Object.defineProperty(t.prototype,"isWorldMatrixFrozen",{get:function(){return this._isWorldMatrixFrozen},enumerable:!0,configurable:!0}),t.prototype.getAbsolutePosition=function(){return this.computeWorldMatrix(),this._absolutePosition},t.prototype.setAbsolutePosition=function(e){if(!e)return this;var t,i,n;if(void 0===e.x){if(arguments.length<3)return this;t=arguments[0],i=arguments[1],n=arguments[2]}else t=e.x,i=e.y,n=e.z;if(this.parent){var r=s.t.Matrix[0];this.parent.getWorldMatrix().invertToRef(r),s.x.TransformCoordinatesFromFloatsToRef(t,i,n,r,this.position)}else this.position.x=t,this.position.y=i,this.position.z=n;return this},t.prototype.setPositionWithLocalVector=function(e){return this.computeWorldMatrix(),this.position=s.x.TransformNormal(e,this._localMatrix),this},t.prototype.getPositionExpressedInLocalSpace=function(){this.computeWorldMatrix();var e=s.t.Matrix[0];return this._localMatrix.invertToRef(e),s.x.TransformNormal(this.position,e)},t.prototype.locallyTranslate=function(e){return this.computeWorldMatrix(!0),this.position=s.x.TransformCoordinates(e,this._localMatrix),this},t.prototype.lookAt=function(e,i,n,r,o){void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===o&&(o=s.s.LOCAL);var a=t._lookAtVectorCache,c=o===s.s.LOCAL?this.position:this.getAbsolutePosition();if(e.subtractToRef(c,a),this.setDirection(a,i,n,r),o===s.s.WORLD&&this.parent)if(this.rotationQuaternion){var l=s.t.Matrix[0];this.rotationQuaternion.toRotationMatrix(l);var u=s.t.Matrix[1];this.parent.getWorldMatrix().getRotationMatrixToRef(u),u.invert(),l.multiplyToRef(u,l),this.rotationQuaternion.fromRotationMatrix(l)}else{var h=s.t.Quaternion[0];s.q.FromEulerVectorToRef(this.rotation,h);l=s.t.Matrix[0];h.toRotationMatrix(l);u=s.t.Matrix[1];this.parent.getWorldMatrix().getRotationMatrixToRef(u),u.invert(),l.multiplyToRef(u,l),h.fromRotationMatrix(l),h.toEulerAnglesToRef(this.rotation)}return this},t.prototype.getDirection=function(e){var t=s.x.Zero();return this.getDirectionToRef(e,t),t},t.prototype.getDirectionToRef=function(e,t){return s.x.TransformNormalToRef(e,this.getWorldMatrix(),t),this},t.prototype.setDirection=function(e,t,i,n){void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=0);var r=-Math.atan2(e.z,e.x)+Math.PI/2,o=Math.sqrt(e.x*e.x+e.z*e.z),a=-Math.atan2(e.y,o);return this.rotationQuaternion?s.q.RotationYawPitchRollToRef(r+t,a+i,n,this.rotationQuaternion):(this.rotation.x=a+i,this.rotation.y=r+t,this.rotation.z=n),this},t.prototype.setPivotPoint=function(e,t){void 0===t&&(t=s.s.LOCAL),0==this.getScene().getRenderId()&&this.computeWorldMatrix(!0);var i=this.getWorldMatrix();if(t==s.s.WORLD){var n=s.t.Matrix[0];i.invertToRef(n),e=s.x.TransformCoordinates(e,n)}return this.setPivotMatrix(s.j.Translation(-e.x,-e.y,-e.z),!0)},t.prototype.getPivotPoint=function(){var e=s.x.Zero();return this.getPivotPointToRef(e),e},t.prototype.getPivotPointToRef=function(e){return e.x=-this._pivotMatrix.m[12],e.y=-this._pivotMatrix.m[13],e.z=-this._pivotMatrix.m[14],this},t.prototype.getAbsolutePivotPoint=function(){var e=s.x.Zero();return this.getAbsolutePivotPointToRef(e),e},t.prototype.getAbsolutePivotPointToRef=function(e){return e.x=this._pivotMatrix.m[12],e.y=this._pivotMatrix.m[13],e.z=this._pivotMatrix.m[14],this.getPivotPointToRef(e),s.x.TransformCoordinatesToRef(e,this.getWorldMatrix(),e),this},t.prototype.setParent=function(e){if(!e&&!this.parent)return this;var t=s.t.Quaternion[0],i=s.t.Vector3[0],n=s.t.Vector3[1];if(e){var r=s.t.Matrix[0],o=s.t.Matrix[1];this.computeWorldMatrix(!0),e.computeWorldMatrix(!0),e.getWorldMatrix().invertToRef(o),this.getWorldMatrix().multiplyToRef(o,r),r.decompose(n,t,i)}else this.parent&&this.parent.computeWorldMatrix&&this.parent.computeWorldMatrix(!0),this.computeWorldMatrix(!0),this.getWorldMatrix().decompose(n,t,i);return this.rotationQuaternion?this.rotationQuaternion.copyFrom(t):t.toEulerAnglesToRef(this.rotation),this.scaling.copyFrom(n),this.position.copyFrom(i),this.parent=e,this},Object.defineProperty(t.prototype,"nonUniformScaling",{get:function(){return this._nonUniformScaling},enumerable:!0,configurable:!0}),t.prototype._updateNonUniformScalingState=function(e){return this._nonUniformScaling!==e&&(this._nonUniformScaling=e,!0)},t.prototype.attachToBone=function(e,t){return this._transformToBoneReferal=t,this.parent=e,e.getWorldMatrix().determinant()<0&&(this.scalingDeterminant*=-1),this},t.prototype.detachFromBone=function(){return this.parent?(this.parent.getWorldMatrix().determinant()<0&&(this.scalingDeterminant*=-1),this._transformToBoneReferal=null,this.parent=null,this):this},t.prototype.rotate=function(e,i,n){var r;if(e.normalize(),this.rotationQuaternion||(this.rotationQuaternion=this.rotation.toQuaternion(),this.rotation.setAll(0)),n&&n!==s.s.LOCAL){if(this.parent){var o=s.t.Matrix[0];this.parent.getWorldMatrix().invertToRef(o),e=s.x.TransformNormal(e,o)}(r=s.q.RotationAxisToRef(e,i,t._rotationAxisCache)).multiplyToRef(this.rotationQuaternion,this.rotationQuaternion)}else r=s.q.RotationAxisToRef(e,i,t._rotationAxisCache),this.rotationQuaternion.multiplyToRef(r,this.rotationQuaternion);return this},t.prototype.rotateAround=function(e,t,i){t.normalize(),this.rotationQuaternion||(this.rotationQuaternion=s.q.RotationYawPitchRoll(this.rotation.y,this.rotation.x,this.rotation.z),this.rotation.setAll(0));var n=s.t.Vector3[0],r=s.t.Vector3[1],o=s.t.Vector3[2],a=s.t.Quaternion[0],c=s.t.Matrix[0],l=s.t.Matrix[1],u=s.t.Matrix[2],h=s.t.Matrix[3];return e.subtractToRef(this.position,n),s.j.TranslationToRef(n.x,n.y,n.z,c),s.j.TranslationToRef(-n.x,-n.y,-n.z,l),s.j.RotationAxisToRef(t,i,u),l.multiplyToRef(u,h),h.multiplyToRef(c,h),h.decompose(r,a,o),this.position.addInPlace(o),a.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion),this},t.prototype.translate=function(e,t,i){var n=e.scale(t);if(i&&i!==s.s.LOCAL)this.setAbsolutePosition(this.getAbsolutePosition().add(n));else{var r=this.getPositionExpressedInLocalSpace().add(n);this.setPositionWithLocalVector(r)}return this},t.prototype.addRotation=function(e,t,i){var n;this.rotationQuaternion?n=this.rotationQuaternion:(n=s.t.Quaternion[1],s.q.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,n));var r=s.t.Quaternion[0];return s.q.RotationYawPitchRollToRef(t,e,i,r),n.multiplyInPlace(r),this.rotationQuaternion||n.toEulerAnglesToRef(this.rotation),this},t.prototype._getEffectiveParent=function(){return this.parent},t.prototype.computeWorldMatrix=function(e){if(this._isWorldMatrixFrozen&&!this._isDirty)return this._worldMatrix;var i=this.getScene().getRenderId();if(!this._isDirty&&!e&&this.isSynchronized())return this._currentRenderId=i,this._worldMatrix;this._updateCache();var n=this._cache;n.pivotMatrixUpdated=!1,n.billboardMode=this.billboardMode,n.infiniteDistance=this.infiniteDistance,this._currentRenderId=i,this._childUpdateId++,this._isDirty=!1;var r=this._getEffectiveParent(),o=this._billboardMode!==t.BILLBOARDMODE_NONE&&!this.preserveParentRotationForBillboard,a=this.getScene().activeCamera,c=n.scaling,l=n.position;if(this._infiniteDistance)if(!this.parent&&a){var u=a.getWorldMatrix(),h=new s.x(u.m[12],u.m[13],u.m[14]);l.copyFromFloats(this._position.x+h.x,this._position.y+h.y,this._position.z+h.z)}else l.copyFrom(this._position);else l.copyFrom(this._position);c.copyFromFloats(this._scaling.x*this.scalingDeterminant,this._scaling.y*this.scalingDeterminant,this._scaling.z*this.scalingDeterminant);var d=n.rotationQuaternion;if(this._rotationQuaternion){if(this.reIntegrateRotationIntoRotationQuaternion)this.rotation.lengthSquared()&&(this._rotationQuaternion.multiplyInPlace(s.q.RotationYawPitchRoll(this._rotation.y,this._rotation.x,this._rotation.z)),this._rotation.copyFromFloats(0,0,0));d.copyFrom(this._rotationQuaternion)}else s.q.RotationYawPitchRollToRef(this._rotation.y,this._rotation.x,this._rotation.z,d),n.rotation.copyFrom(this._rotation);if(this._usePivotMatrix){var f=s.t.Matrix[1];s.j.ScalingToRef(c.x,c.y,c.z,f);var p=s.t.Matrix[0];d.toRotationMatrix(p),this._pivotMatrix.multiplyToRef(f,s.t.Matrix[4]),s.t.Matrix[4].multiplyToRef(p,this._localMatrix),this._postMultiplyPivotMatrix&&this._localMatrix.multiplyToRef(this._pivotMatrixInverse,this._localMatrix),this._localMatrix.addTranslationFromFloats(l.x,l.y,l.z)}else s.j.ComposeToRef(c,d,l,this._localMatrix);if(r&&r.getWorldMatrix){if(o){this._transformToBoneReferal?r.getWorldMatrix().multiplyToRef(this._transformToBoneReferal.getWorldMatrix(),s.t.Matrix[7]):s.t.Matrix[7].copyFrom(r.getWorldMatrix());var _=s.t.Vector3[5],g=s.t.Vector3[6];s.t.Matrix[7].decompose(g,void 0,_),s.j.ScalingToRef(g.x,g.y,g.z,s.t.Matrix[7]),s.t.Matrix[7].setTranslation(_),this._localMatrix.multiplyToRef(s.t.Matrix[7],this._worldMatrix)}else this._transformToBoneReferal?(this._localMatrix.multiplyToRef(r.getWorldMatrix(),s.t.Matrix[6]),s.t.Matrix[6].multiplyToRef(this._transformToBoneReferal.getWorldMatrix(),this._worldMatrix)):this._localMatrix.multiplyToRef(r.getWorldMatrix(),this._worldMatrix);this._markSyncedWithParent()}else this._worldMatrix.copyFrom(this._localMatrix);if(o&&a){var m=s.t.Vector3[0];if(this._worldMatrix.getTranslationToRef(m),s.t.Matrix[1].copyFrom(a.getViewMatrix()),s.t.Matrix[1].setTranslationFromFloats(0,0,0),s.t.Matrix[1].invertToRef(s.t.Matrix[0]),(this.billboardMode&t.BILLBOARDMODE_ALL)!==t.BILLBOARDMODE_ALL){s.t.Matrix[0].decompose(void 0,s.t.Quaternion[0],void 0);var v=s.t.Vector3[1];s.t.Quaternion[0].toEulerAnglesToRef(v),(this.billboardMode&t.BILLBOARDMODE_X)!==t.BILLBOARDMODE_X&&(v.x=0),(this.billboardMode&t.BILLBOARDMODE_Y)!==t.BILLBOARDMODE_Y&&(v.y=0),(this.billboardMode&t.BILLBOARDMODE_Z)!==t.BILLBOARDMODE_Z&&(v.z=0),s.j.RotationYawPitchRollToRef(v.y,v.x,v.z,s.t.Matrix[0])}this._worldMatrix.setTranslationFromFloats(0,0,0),this._worldMatrix.multiplyToRef(s.t.Matrix[0],this._worldMatrix),this._worldMatrix.setTranslation(s.t.Vector3[0])}return this.ignoreNonUniformScaling?this._updateNonUniformScalingState(!1):this._scaling.isNonUniform?this._updateNonUniformScalingState(!0):r&&r._nonUniformScaling?this._updateNonUniformScalingState(r._nonUniformScaling):this._updateNonUniformScalingState(!1),this._afterComputeWorldMatrix(),this._absolutePosition.copyFromFloats(this._worldMatrix.m[12],this._worldMatrix.m[13],this._worldMatrix.m[14]),this.onAfterWorldMatrixUpdateObservable.notifyObservers(this),this._poseMatrix||(this._poseMatrix=s.j.Invert(this._worldMatrix)),this._worldMatrixDeterminantIsDirty=!0,this._worldMatrix},t.prototype._afterComputeWorldMatrix=function(){},t.prototype.registerAfterWorldMatrixUpdate=function(e){return this.onAfterWorldMatrixUpdateObservable.add(e),this},t.prototype.unregisterAfterWorldMatrixUpdate=function(e){return this.onAfterWorldMatrixUpdateObservable.removeCallback(e),this},t.prototype.getPositionInCameraSpace=function(e){return void 0===e&&(e=null),e||(e=this.getScene().activeCamera),s.x.TransformCoordinates(this.absolutePosition,e.getViewMatrix())},t.prototype.getDistanceToCamera=function(e){return void 0===e&&(e=null),e||(e=this.getScene().activeCamera),this.absolutePosition.subtract(e.globalPosition).length()},t.prototype.clone=function(e,i,n){var o=this,s=r.a.Clone(function(){return new t(e,o.getScene())},this);if(s.name=e,s.id=e,i&&(s.parent=i),!n)for(var a=this.getDescendants(!0),c=0;cl.max||l.min>c.max)},d=function(){function e(e,t,i){this._isLocked=!1,this.boundingBox=new s.a(e,t,i),this.boundingSphere=new a.a(e,t,i)}return e.prototype.reConstruct=function(e,t,i){this.boundingBox.reConstruct(e,t,i),this.boundingSphere.reConstruct(e,t,i)},Object.defineProperty(e.prototype,"minimum",{get:function(){return this.boundingBox.minimum},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maximum",{get:function(){return this.boundingBox.maximum},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLocked",{get:function(){return this._isLocked},set:function(e){this._isLocked=e},enumerable:!0,configurable:!0}),e.prototype.update=function(e){this._isLocked||(this.boundingBox._update(e),this.boundingSphere._update(e))},e.prototype.centerOn=function(t,i){var n=e.TmpVector3[0].copyFrom(t).subtractInPlace(i),r=e.TmpVector3[1].copyFrom(t).addInPlace(i);return this.boundingBox.reConstruct(n,r,this.boundingBox.getWorldMatrix()),this.boundingSphere.reConstruct(n,r,this.boundingBox.getWorldMatrix()),this},e.prototype.scale=function(e){return this.boundingBox.scale(e),this.boundingSphere.scale(e),this},e.prototype.isInFrustum=function(e,t){return void 0===t&&(t=o.a.MESHES_CULLINGSTRATEGY_STANDARD),!(t!==o.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION&&t!==o.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY||!this.boundingSphere.isCenterInFrustum(e))||!!this.boundingSphere.isInFrustum(e)&&(!(t!==o.a.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY&&t!==o.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY)||this.boundingBox.isInFrustum(e))},Object.defineProperty(e.prototype,"diagonalLength",{get:function(){var t=this.boundingBox;return t.maximumWorld.subtractToRef(t.minimumWorld,e.TmpVector3[0]).length()},enumerable:!0,configurable:!0}),e.prototype.isCompletelyInFrustum=function(e){return this.boundingBox.isCompletelyInFrustum(e)},e.prototype._checkCollision=function(e){return e._canDoCollision(this.boundingSphere.centerWorld,this.boundingSphere.radiusWorld,this.boundingBox.minimumWorld,this.boundingBox.maximumWorld)},e.prototype.intersectsPoint=function(e){return!!this.boundingSphere.centerWorld&&(!!this.boundingSphere.intersectsPoint(e)&&!!this.boundingBox.intersectsPoint(e))},e.prototype.intersects=function(e,t){if(!a.a.Intersects(this.boundingSphere,e.boundingSphere))return!1;if(!s.a.Intersects(this.boundingBox,e.boundingBox))return!1;if(!t)return!0;var i=this.boundingBox,n=e.boundingBox;return!!h(i.directions[0],i,n)&&(!!h(i.directions[1],i,n)&&(!!h(i.directions[2],i,n)&&(!!h(n.directions[0],i,n)&&(!!h(n.directions[1],i,n)&&(!!h(n.directions[2],i,n)&&(!!h(r.x.Cross(i.directions[0],n.directions[0]),i,n)&&(!!h(r.x.Cross(i.directions[0],n.directions[1]),i,n)&&(!!h(r.x.Cross(i.directions[0],n.directions[2]),i,n)&&(!!h(r.x.Cross(i.directions[1],n.directions[0]),i,n)&&(!!h(r.x.Cross(i.directions[1],n.directions[1]),i,n)&&(!!h(r.x.Cross(i.directions[1],n.directions[2]),i,n)&&(!!h(r.x.Cross(i.directions[2],n.directions[0]),i,n)&&(!!h(r.x.Cross(i.directions[2],n.directions[1]),i,n)&&!!h(r.x.Cross(i.directions[2],n.directions[2]),i,n))))))))))))))},e.TmpVector3=n.a.BuildArray(2,r.x.Zero),e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return h});var n=i(1),r=i(2),o=i(8),s=i(9),a=i(71),c=i(0),l=i(23),u=i(3),h=function(){function e(t){this.metadata=null,this.reservedDataStore=null,this._hasAlpha=!1,this.getAlphaFromRGB=!1,this.level=1,this.coordinatesIndex=0,this._coordinatesMode=u.a.TEXTURE_EXPLICIT_MODE,this.wrapU=u.a.TEXTURE_WRAP_ADDRESSMODE,this.wrapV=u.a.TEXTURE_WRAP_ADDRESSMODE,this.wrapR=u.a.TEXTURE_WRAP_ADDRESSMODE,this.anisotropicFilteringLevel=e.DEFAULT_ANISOTROPIC_FILTERING_LEVEL,this.gammaSpace=!0,this.invertZ=!1,this.lodLevelInAlpha=!1,this.isRenderTarget=!1,this.animations=new Array,this.onDisposeObservable=new o.c,this._onDisposeObserver=null,this.delayLoadState=u.a.DELAYLOADSTATE_NONE,this._scene=null,this._texture=null,this._uid=null,this._cachedSize=c.r.Zero(),this._scene=t||l.a.LastCreatedScene,this._scene&&(this.uniqueId=this._scene.getUniqueId(),this._scene.addTexture(this)),this._uid=null}return Object.defineProperty(e.prototype,"hasAlpha",{get:function(){return this._hasAlpha},set:function(e){this._hasAlpha!==e&&(this._hasAlpha=e,this._scene&&this._scene.markAllMaterialsAsDirty(u.a.MATERIAL_TextureDirtyFlag|u.a.MATERIAL_MiscDirtyFlag))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"coordinatesMode",{get:function(){return this._coordinatesMode},set:function(e){this._coordinatesMode!==e&&(this._coordinatesMode=e,this._scene&&this._scene.markAllMaterialsAsDirty(u.a.MATERIAL_TextureDirtyFlag))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCube",{get:function(){return!!this._texture&&this._texture.isCube},set:function(e){this._texture&&(this._texture.isCube=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"is3D",{get:function(){return!!this._texture&&this._texture.is3D},set:function(e){this._texture&&(this._texture.is3D=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isRGBD",{get:function(){return null!=this._texture&&this._texture._isRGBD},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"noMipmap",{get:function(){return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lodGenerationOffset",{get:function(){return this._texture?this._texture._lodGenerationOffset:0},set:function(e){this._texture&&(this._texture._lodGenerationOffset=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lodGenerationScale",{get:function(){return this._texture?this._texture._lodGenerationScale:0},set:function(e){this._texture&&(this._texture._lodGenerationScale=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"uid",{get:function(){return this._uid||(this._uid=s.h.RandomId()),this._uid},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.name},e.prototype.getClassName=function(){return"BaseTexture"},Object.defineProperty(e.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isBlocking",{get:function(){return!0},enumerable:!0,configurable:!0}),e.prototype.getScene=function(){return this._scene},e.prototype.getTextureMatrix=function(){return c.j.IdentityReadOnly},e.prototype.getReflectionTextureMatrix=function(){return c.j.IdentityReadOnly},e.prototype.getInternalTexture=function(){return this._texture},e.prototype.isReadyOrNotBlocking=function(){return!this.isBlocking||this.isReady()},e.prototype.isReady=function(){return this.delayLoadState===u.a.DELAYLOADSTATE_NOTLOADED?(this.delayLoad(),!1):!!this._texture&&this._texture.isReady},e.prototype.getSize=function(){if(this._texture){if(this._texture.width)return this._cachedSize.width=this._texture.width,this._cachedSize.height=this._texture.height,this._cachedSize;if(this._texture._size)return this._cachedSize.width=this._texture._size,this._cachedSize.height=this._texture._size,this._cachedSize}return this._cachedSize},e.prototype.getBaseSize=function(){return this.isReady()&&this._texture?this._texture._size?new c.r(this._texture._size,this._texture._size):new c.r(this._texture.baseWidth,this._texture.baseHeight):c.r.Zero()},e.prototype.updateSamplingMode=function(e){if(this._texture){var t=this.getScene();t&&t.getEngine().updateTextureSamplingMode(e,this._texture)}},e.prototype.scale=function(e){},Object.defineProperty(e.prototype,"canRescale",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype._getFromCache=function(e,t,i,n){if(!this._scene)return null;for(var r=this._scene.getEngine().getLoadedTexturesCache(),o=0;o=0&&this._scene.textures.splice(e,1),this._scene.onTextureRemovedObservable.notifyObservers(this),void 0!==this._texture&&(this.releaseInternalTexture(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear())}},e.prototype.serialize=function(){if(!this.name)return null;var e=r.a.Serialize(this);return r.a.AppendSerializedAnimations(this,e),e},e.WhenAllReady=function(e,t){var i=e.length;if(0!==i)for(var n,r,o=function(){if((n=e[s]).isReady())0==--i&&t();else{r=n.onLoadObservable;var o=function(){r.removeCallback(o),0==--i&&t()};r.add(o)}},s=0;s1)?1:e.arc||1,c=e.slice&&e.slice<=0?1:e.slice||1,l=0===e.sideOrientation?0:e.sideOrientation||o.a.DEFAULTSIDE,u=new n.x(i/2,r/2,s/2),h=2+t,d=2*h,f=[],p=[],_=[],g=[],m=0;m<=h;m++){for(var v=m/h,y=v*Math.PI*c,b=0;b<=d;b++){var T=b/d,E=T*Math.PI*2*a,A=n.j.RotationZ(-y),x=n.j.RotationY(E),R=n.x.TransformCoordinates(n.x.Up(),A),P=n.x.TransformCoordinates(R,x),S=P.multiply(u),C=P.divide(u).normalize();p.push(S.x,S.y,S.z),_.push(C.x,C.y,C.z),g.push(T,v)}if(m>0)for(var M=p.length/3,O=M-2*(d+1);O+d+2a&&(a=u)}return new t(e,s,a-s+1,i,n,r,o)},t}(l)},function(e,t,i){"use strict";i.d(t,"a",function(){return o});var n=i(0),r=i(4),o=function(){function e(){this._pickingUnavailable=!1,this.hit=!1,this.distance=0,this.pickedPoint=null,this.pickedMesh=null,this.bu=0,this.bv=0,this.faceId=-1,this.subMeshId=0,this.pickedSprite=null,this.originMesh=null,this.ray=null}return e.prototype.getNormal=function(e,t){if(void 0===e&&(e=!1),void 0===t&&(t=!0),!this.pickedMesh||!this.pickedMesh.isVerticesDataPresent(r.b.NormalKind))return null;var i,o=this.pickedMesh.getIndices();if(!o)return null;if(t){var s=this.pickedMesh.getVerticesData(r.b.NormalKind),a=n.x.FromArray(s,3*o[3*this.faceId]),c=n.x.FromArray(s,3*o[3*this.faceId+1]),l=n.x.FromArray(s,3*o[3*this.faceId+2]);a=a.scale(this.bu),c=c.scale(this.bv),l=l.scale(1-this.bu-this.bv),i=new n.x(a.x+c.x+l.x,a.y+c.y+l.y,a.z+c.z+l.z)}else{var u=this.pickedMesh.getVerticesData(r.b.PositionKind),h=n.x.FromArray(u,3*o[3*this.faceId]),d=n.x.FromArray(u,3*o[3*this.faceId+1]),f=n.x.FromArray(u,3*o[3*this.faceId+2]),p=h.subtract(d),_=f.subtract(d);i=n.x.Cross(p,_)}if(e){var g=this.pickedMesh.getWorldMatrix();this.pickedMesh.nonUniformScaling&&(n.t.Matrix[0].copyFrom(g),(g=n.t.Matrix[0]).setTranslationFromFloats(0,0,0),g.invert(),g.transposeToRef(n.t.Matrix[1]),g=n.t.Matrix[1]),i=n.x.TransformNormal(i,g)}return i.normalize(),i},e.prototype.getTextureCoordinates=function(){if(!this.pickedMesh||!this.pickedMesh.isVerticesDataPresent(r.b.UVKind))return null;var e=this.pickedMesh.getIndices();if(!e)return null;var t=this.pickedMesh.getVerticesData(r.b.UVKind);if(!t)return null;var i=n.w.FromArray(t,2*e[3*this.faceId]),o=n.w.FromArray(t,2*e[3*this.faceId+1]),s=n.w.FromArray(t,2*e[3*this.faceId+2]);return i=i.scale(1-this.bu-this.bv),o=o.scale(this.bu),s=s.scale(this.bv),new n.w(i.x+o.x+s.x,i.y+o.y+s.y)},e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return r}),i.d(t,"b",function(){return o}),i.d(t,"c",function(){return s});var n=i(1),r=function(){function e(){}return e.KEYDOWN=1,e.KEYUP=2,e}(),o=function(){return function(e,t){this.type=e,this.event=t}}(),s=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.type=t,n.event=i,n.skipOnPointerObservable=!1,n}return n.d(t,e),t}(o)},function(e,t,i){"use strict";i.d(t,"a",function(){return s});var n=i(0),r=i(11),o=i(13);o.a.CreateBox=function(e){var t,i=[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23],r=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0],s=[],a=e.width||e.size||1,c=e.height||e.size||1,l=e.depth||e.size||1,u=e.wrap||!1,h=void 0===e.topBaseAt?1:e.topBaseAt,d=void 0===e.bottomBaseAt?0:e.bottomBaseAt,f=[2,0,3,1][h=(h+4)%4],p=[2,0,1,3][d=(d+4)%4],_=[1,-1,1,-1,-1,1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,-1,1,-1,-1,1,-1,1,1,1,1,-1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,-1,1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1];if(u){i=[2,3,0,2,0,1,4,5,6,4,6,7,9,10,11,9,11,8,12,14,15,12,13,14],_=[-1,1,1,1,1,1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,-1,-1,-1];for(var g=[[1,1,1],[-1,1,1],[-1,1,-1],[1,1,-1]],m=[[-1,-1,1],[1,-1,1],[1,-1,-1],[-1,-1,-1]],v=[17,18,19,16],y=[22,23,20,21];f>0;)g.unshift(g.pop()),v.unshift(v.pop()),f--;for(;p>0;)m.unshift(m.pop()),y.unshift(y.pop()),p--;g=g.flat(),m=m.flat(),_=_.concat(g).concat(m),i.push(v[0],v[2],v[3],v[0],v[1],v[2]),i.push(y[0],y[2],y[3],y[0],y[1],y[2])}var b=[a/2,c/2,l/2];t=_.reduce(function(e,t,i){return e.concat(t*b[i%3])},[]);for(var T=0===e.sideOrientation?0:e.sideOrientation||o.a.DEFAULTSIDE,E=e.faceUV||new Array(6),A=e.faceColors,x=[],R=0;R<6;R++)void 0===E[R]&&(E[R]=new n.y(0,0,1,1)),A&&void 0===A[R]&&(A[R]=new n.f(1,1,1,1));for(var P=0;P<6;P++)if(s.push(E[P].z,E[P].w),s.push(E[P].x,E[P].w),s.push(E[P].x,E[P].y),s.push(E[P].z,E[P].y),A)for(var S=0;S<4;S++)x.push(A[P].r,A[P].g,A[P].b,A[P].a);o.a._ComputeSides(T,t,i,r,s,e.frontUVs,e.backUVs);var C=new o.a;if(C.indices=i,C.positions=t,C.normals=r,C.uvs=s,A){var M=T===o.a.DOUBLESIDE?x.concat(x):x;C.colors=M}return C},r.a.CreateBox=function(e,t,i,n,r){void 0===i&&(i=null);var o={size:t,sideOrientation:r,updatable:n};return s.CreateBox(e,o,i)};var s=function(){function e(){}return e.CreateBox=function(e,t,i){void 0===i&&(i=null);var n=new r.a(e,i);return t.sideOrientation=r.a._GetDefaultSideOrientation(t.sideOrientation),n._originalBuilderSideOrientation=t.sideOrientation,o.a.CreateBox(t).applyToMesh(n,t.updatable),n},e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return a});var n=i(0),r=i(11),o=i(13),s=i(16);o.a.CreateCylinder=function(e){var t,i=e.height||2,r=0===e.diameterTop?0:e.diameterTop||e.diameter||1,s=0===e.diameterBottom?0:e.diameterBottom||e.diameter||1,a=e.tessellation||24,c=e.subdivisions||1,l=!!e.hasRings,u=!!e.enclose,h=e.arc&&(e.arc<=0||e.arc>1)?1:e.arc||1,d=0===e.sideOrientation?0:e.sideOrientation||o.a.DEFAULTSIDE,f=e.faceUV||new Array(3),p=e.faceColors,_=2+(1+(1!==h&&u?2:0))*(l?c:1);for(t=0;t<_;t++)p&&void 0===p[t]&&(p[t]=new n.f(1,1,1,1));for(t=0;t<_;t++)f&&void 0===f[t]&&(f[t]=new n.y(0,0,1,1));var g,m,v,y,b,T,E=new Array,A=new Array,x=new Array,R=new Array,P=new Array,S=2*Math.PI*h/a,C=(s-r)/2/i,M=n.x.Zero(),O=n.x.Zero(),I=n.x.Zero(),D=n.x.Zero(),L=n.x.Zero(),w=n.c.Y,F=1,N=1,B=0,U=0;for(y=0;y<=c;y++)for(v=((m=y/c)*(r-s)+s)/2,F=l&&0!==y&&y!==c?2:1,T=0;T1)throw"Multiple drag modes specified in dragBehavior options. Only one expected"}return Object.defineProperty(e.prototype,"name",{get:function(){return"PointerDrag"},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(t){var i=this;this._scene=t.getScene(),this._attachedNode=t,e._planeScene||(this._debugMode?e._planeScene=this._scene:(e._planeScene=new r.a(this._scene.getEngine(),{virtual:!0}),e._planeScene.detachControl(),this._scene.onDisposeObservable.addOnce(function(){e._planeScene.dispose(),e._planeScene=null}))),this._dragPlane=n.a.CreatePlane("pointerDragPlane",this._debugMode?1:1e4,e._planeScene,!1,n.a.DOUBLESIDE),this.lastDragPosition=new s.x(0,0,0);this._pointerObserver=this._scene.onPointerObservable.add(function(t,n){var r;if(i.enabled)if(t.type==a.a.POINTERDOWN)!i.dragging&&t.pickInfo&&t.pickInfo.hit&&t.pickInfo.pickedMesh&&t.pickInfo.pickedPoint&&t.pickInfo.ray&&(r=t.pickInfo.pickedMesh,i._attachedNode==r||r.isDescendantOf(i._attachedNode))&&i._startDrag(t.event.pointerId,t.pickInfo.ray,t.pickInfo.pickedPoint);else if(t.type==a.a.POINTERUP)i.currentDraggingPointerID==t.event.pointerId&&i.releaseDrag();else if(t.type==a.a.POINTERMOVE){var o=t.event.pointerId;i.currentDraggingPointerID===e._AnyMouseID&&o!==e._AnyMouseID&&"mouse"==t.event.pointerType&&(i._lastPointerRay[i.currentDraggingPointerID]&&(i._lastPointerRay[o]=i._lastPointerRay[i.currentDraggingPointerID],delete i._lastPointerRay[i.currentDraggingPointerID]),i.currentDraggingPointerID=o),i._lastPointerRay[o]||(i._lastPointerRay[o]=new c.a(new s.x,new s.x)),t.pickInfo&&t.pickInfo.ray&&(i._lastPointerRay[o].origin.copyFrom(t.pickInfo.ray.origin),i._lastPointerRay[o].direction.copyFrom(t.pickInfo.ray.direction),i.currentDraggingPointerID==o&&i.dragging&&i._moveDrag(t.pickInfo.ray))}}),this._beforeRenderObserver=this._scene.onBeforeRenderObservable.add(function(){i._moving&&i.moveAttached&&(l.a._RemoveAndStorePivotPoint(i._attachedNode),i._targetPosition.subtractToRef(i._attachedNode.absolutePosition,i._tmpVector),i._tmpVector.scaleInPlace(i.dragDeltaRatio),i._attachedNode.getAbsolutePosition().addToRef(i._tmpVector,i._tmpVector),i.validateDrag(i._tmpVector)&&i._attachedNode.setAbsolutePosition(i._tmpVector),l.a._RestorePivotPoint(i._attachedNode))})},e.prototype.releaseDrag=function(){this.dragging=!1,this.onDragEndObservable.notifyObservers({dragPlanePoint:this.lastDragPosition,pointerId:this.currentDraggingPointerID}),this.currentDraggingPointerID=-1,this._moving=!1,this.detachCameraControls&&this._attachedElement&&this._scene.activeCamera&&!this._scene.activeCamera.leftCamera&&this._scene.activeCamera.attachControl(this._attachedElement,!0)},e.prototype.startDrag=function(t,i,n){void 0===t&&(t=e._AnyMouseID),this._startDrag(t,i,n);var r=this._lastPointerRay[t];t===e._AnyMouseID&&(r=this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]),r&&this._moveDrag(r)},e.prototype._startDrag=function(e,t,i){if(this._scene.activeCamera&&!this.dragging&&this._attachedNode){l.a._RemoveAndStorePivotPoint(this._attachedNode),t?(this._startDragRay.direction.copyFrom(t.direction),this._startDragRay.origin.copyFrom(t.origin)):(this._startDragRay.origin.copyFrom(this._scene.activeCamera.position),this._attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector),this._tmpVector.subtractToRef(this._scene.activeCamera.position,this._startDragRay.direction)),this._updateDragPlanePosition(this._startDragRay,i||this._tmpVector);var n=this._pickWithRayOnDragPlane(this._startDragRay);n&&(this.dragging=!0,this.currentDraggingPointerID=e,this.lastDragPosition.copyFrom(n),this.onDragStartObservable.notifyObservers({dragPlanePoint:n,pointerId:this.currentDraggingPointerID}),this._targetPosition.copyFrom(this._attachedNode.absolutePosition),this.detachCameraControls&&this._scene.activeCamera&&!this._scene.activeCamera.leftCamera&&(this._scene.activeCamera.inputs.attachedElement?(this._attachedElement=this._scene.activeCamera.inputs.attachedElement,this._scene.activeCamera.detachControl(this._scene.activeCamera.inputs.attachedElement)):this._attachedElement=null)),l.a._RestorePivotPoint(this._attachedNode)}},e.prototype._moveDrag=function(e){this._moving=!0;var t=this._pickWithRayOnDragPlane(e);if(t){this.updateDragPlane&&this._updateDragPlanePosition(e,t);var i=0;this._options.dragAxis?(s.x.TransformCoordinatesToRef(this._options.dragAxis,this._attachedNode.getWorldMatrix().getRotationMatrix(),this._worldDragAxis),t.subtractToRef(this.lastDragPosition,this._tmpVector),i=s.x.Dot(this._tmpVector,this._worldDragAxis),this._worldDragAxis.scaleToRef(i,this._dragDelta)):(i=this._dragDelta.length(),t.subtractToRef(this.lastDragPosition,this._dragDelta)),this._targetPosition.addInPlace(this._dragDelta),this.onDragObservable.notifyObservers({dragDistance:i,delta:this._dragDelta,dragPlanePoint:t,dragPlaneNormal:this._dragPlane.forward,pointerId:this.currentDraggingPointerID}),this.lastDragPosition.copyFrom(t)}},e.prototype._pickWithRayOnDragPlane=function(t){var i=this;if(!t)return null;var n=Math.acos(s.x.Dot(this._dragPlane.forward,t.direction));if(n>Math.PI/2&&(n=Math.PI-n),this.maxDragAngle>0&&n>this.maxDragAngle){if(this._useAlternatePickedPointAboveMaxDragAngle){this._tmpVector.copyFrom(t.direction),this._attachedNode.absolutePosition.subtractToRef(t.origin,this._alternatePickedPoint),this._alternatePickedPoint.normalize(),this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed*s.x.Dot(this._alternatePickedPoint,this._tmpVector)),this._tmpVector.addInPlace(this._alternatePickedPoint);var r=s.x.Dot(this._dragPlane.forward,this._tmpVector);return this._dragPlane.forward.scaleToRef(-r,this._alternatePickedPoint),this._alternatePickedPoint.addInPlace(this._tmpVector),this._alternatePickedPoint.addInPlace(this._attachedNode.absolutePosition),this._alternatePickedPoint}return null}var o=e._planeScene.pickWithRay(t,function(e){return e==i._dragPlane});return o&&o.hit&&o.pickedMesh&&o.pickedPoint?o.pickedPoint:null},e.prototype._updateDragPlanePosition=function(e,t){this._pointA.copyFrom(t),this._options.dragAxis?(this.useObjectOrienationForDragging?s.x.TransformCoordinatesToRef(this._options.dragAxis,this._attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragAxis),this._pointA.addToRef(this._localAxis,this._pointB),e.origin.subtractToRef(this._pointA,this._pointC),this._pointA.addToRef(this._pointC.normalize(),this._pointC),this._pointB.subtractToRef(this._pointA,this._lineA),this._pointC.subtractToRef(this._pointA,this._lineB),s.x.CrossToRef(this._lineA,this._lineB,this._lookAt),s.x.CrossToRef(this._lineA,this._lookAt,this._lookAt),this._lookAt.normalize(),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._lookAt,this._lookAt),this._dragPlane.lookAt(this._lookAt)):this._options.dragPlaneNormal?(this.useObjectOrienationForDragging?s.x.TransformCoordinatesToRef(this._options.dragPlaneNormal,this._attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragPlaneNormal),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._localAxis,this._lookAt),this._dragPlane.lookAt(this._lookAt)):(this._dragPlane.position.copyFrom(this._pointA),this._dragPlane.lookAt(e.origin)),this._dragPlane.position.copyFrom(this._attachedNode.absolutePosition),this._dragPlane.computeWorldMatrix(!0)},e.prototype.detach=function(){this._pointerObserver&&this._scene.onPointerObservable.remove(this._pointerObserver),this._beforeRenderObserver&&this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver),this.releaseDrag()},e._AnyMouseID=-2,e}())},function(e,t,i){"use strict";i.d(t,"a",function(){return r});var n=i(3),r=function(){function e(){}return Object.defineProperty(e,"ForceFullSceneLoadingForIncremental",{get:function(){return e._ForceFullSceneLoadingForIncremental},set:function(t){e._ForceFullSceneLoadingForIncremental=t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"ShowLoadingScreen",{get:function(){return e._ShowLoadingScreen},set:function(t){e._ShowLoadingScreen=t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"loggingLevel",{get:function(){return e._loggingLevel},set:function(t){e._loggingLevel=t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CleanBoneMatrixWeights",{get:function(){return e._CleanBoneMatrixWeights},set:function(t){e._CleanBoneMatrixWeights=t},enumerable:!0,configurable:!0}),e._ForceFullSceneLoadingForIncremental=!1,e._ShowLoadingScreen=!0,e._CleanBoneMatrixWeights=!1,e._loggingLevel=n.a.SCENELOADER_NO_LOGGING,e}()},function(e,t,i){"use strict";var n="helperFunctions",r="const float PI=3.1415926535897932384626433832795;\nconst float LinearEncodePowerApprox=2.2;\nconst float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;\nconst vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);\nconst float Epsilon=0.0000001;\n#define saturate(x) clamp(x,0.0,1.0)\n#define absEps(x) abs(x)+Epsilon\n#define maxEps(x) max(x,Epsilon)\n#define saturateEps(x) clamp(x,Epsilon,1.0)\nmat3 transposeMat3(mat3 inMatrix) {\nvec3 i0=inMatrix[0];\nvec3 i1=inMatrix[1];\nvec3 i2=inMatrix[2];\nmat3 outMatrix=mat3(\nvec3(i0.x,i1.x,i2.x),\nvec3(i0.y,i1.y,i2.y),\nvec3(i0.z,i1.z,i2.z)\n);\nreturn outMatrix;\n}\n\nmat3 inverseMat3(mat3 inMatrix) {\nfloat a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];\nfloat a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];\nfloat a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];\nfloat b01=a22*a11-a12*a21;\nfloat b11=-a22*a10+a12*a20;\nfloat b21=a21*a10-a11*a20;\nfloat det=a00*b01+a01*b11+a02*b21;\nreturn mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\nb11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\nb21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;\n}\nvec3 toLinearSpace(vec3 color)\n{\nreturn pow(color,vec3(LinearEncodePowerApprox));\n}\nvec3 toGammaSpace(vec3 color)\n{\nreturn pow(color,vec3(GammaEncodePowerApprox));\n}\nfloat square(float value)\n{\nreturn value*value;\n}\nfloat pow5(float value) {\nfloat sq=value*value;\nreturn sq*sq*value;\n}\nfloat getLuminance(vec3 color)\n{\nreturn clamp(dot(color,LuminanceEncodeApprox),0.,1.);\n}\n\nfloat getRand(vec2 seed) {\nreturn fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);\n}\nfloat dither(vec2 seed,float varianceAmount) {\nfloat rand=getRand(seed);\nfloat dither=mix(-varianceAmount/255.0,varianceAmount/255.0,rand);\nreturn dither;\n}\n\nconst float rgbdMaxRange=255.0;\nvec4 toRGBD(vec3 color) {\nfloat maxRGB=maxEps(max(color.r,max(color.g,color.b)));\nfloat D=max(rgbdMaxRange/maxRGB,1.);\nD=clamp(floor(D)/255.0,0.,1.);\n\nvec3 rgb=color.rgb*D;\n\nrgb=toGammaSpace(rgb);\nreturn vec4(rgb,D);\n}\nvec3 fromRGBD(vec4 rgbd) {\n\nrgbd.rgb=toLinearSpace(rgbd.rgb);\n\nreturn rgbd.rgb/rgbd.a;\n}";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){"use strict";i.d(t,"a",function(){return d});var n=i(0),r=i(13),o=i(4),s=i(49),a=i(55),c=i(43),l=i(3),u=i(9),h=i(29),d=function(){function e(e,t,i,n,r){void 0===n&&(n=!1),void 0===r&&(r=null),this.delayLoadState=l.a.DELAYLOADSTATE_NONE,this._totalVertices=0,this._isDisposed=!1,this._indexBufferIsUpdatable=!1,this.id=e,this.uniqueId=t.getUniqueId(),this._engine=t.getEngine(),this._meshes=[],this._scene=t,this._vertexBuffers={},this._indices=[],this._updatable=n,i?this.setAllVerticesData(i,n):(this._totalVertices=0,this._indices=[]),this._engine.getCaps().vertexArrayObject&&(this._vertexArrayObjects={}),r&&(this.applyToMesh(r),r.computeWorldMatrix(!0))}return Object.defineProperty(e.prototype,"boundingBias",{get:function(){return this._boundingBias},set:function(e){this._boundingBias?this._boundingBias.copyFrom(e):this._boundingBias=e.clone(),this._updateBoundingInfo(!0,null)},enumerable:!0,configurable:!0}),e.CreateGeometryForMesh=function(t){var i=new e(e.RandomId(),t.getScene());return i.applyToMesh(t),i},Object.defineProperty(e.prototype,"extend",{get:function(){return this._extend},enumerable:!0,configurable:!0}),e.prototype.getScene=function(){return this._scene},e.prototype.getEngine=function(){return this._engine},e.prototype.isReady=function(){return this.delayLoadState===l.a.DELAYLOADSTATE_LOADED||this.delayLoadState===l.a.DELAYLOADSTATE_NONE},Object.defineProperty(e.prototype,"doNotSerialize",{get:function(){for(var e=0;e0&&(this._indexBuffer=this._engine.createIndexBuffer(this._indices)),this._indexBuffer&&(this._indexBuffer.references=t),e._syncGeometryWithMorphTargetManager(),e.synchronizeInstances()},e.prototype.notifyUpdate=function(e){this.onGeometryUpdated&&this.onGeometryUpdated(this,e);for(var t=0,i=this._meshes;t0){for(var t=0;t0){for(t=0;t0){for(t=0;t0){var u=new Float32Array(t,l.positionsAttrDesc.offset,l.positionsAttrDesc.count);i.setVerticesData(o.b.PositionKind,u,!1)}if(l.normalsAttrDesc&&l.normalsAttrDesc.count>0){var h=new Float32Array(t,l.normalsAttrDesc.offset,l.normalsAttrDesc.count);i.setVerticesData(o.b.NormalKind,h,!1)}if(l.tangetsAttrDesc&&l.tangetsAttrDesc.count>0){var d=new Float32Array(t,l.tangetsAttrDesc.offset,l.tangetsAttrDesc.count);i.setVerticesData(o.b.TangentKind,d,!1)}if(l.uvsAttrDesc&&l.uvsAttrDesc.count>0){var f=new Float32Array(t,l.uvsAttrDesc.offset,l.uvsAttrDesc.count);i.setVerticesData(o.b.UVKind,f,!1)}if(l.uvs2AttrDesc&&l.uvs2AttrDesc.count>0){var p=new Float32Array(t,l.uvs2AttrDesc.offset,l.uvs2AttrDesc.count);i.setVerticesData(o.b.UV2Kind,p,!1)}if(l.uvs3AttrDesc&&l.uvs3AttrDesc.count>0){var _=new Float32Array(t,l.uvs3AttrDesc.offset,l.uvs3AttrDesc.count);i.setVerticesData(o.b.UV3Kind,_,!1)}if(l.uvs4AttrDesc&&l.uvs4AttrDesc.count>0){var g=new Float32Array(t,l.uvs4AttrDesc.offset,l.uvs4AttrDesc.count);i.setVerticesData(o.b.UV4Kind,g,!1)}if(l.uvs5AttrDesc&&l.uvs5AttrDesc.count>0){var m=new Float32Array(t,l.uvs5AttrDesc.offset,l.uvs5AttrDesc.count);i.setVerticesData(o.b.UV5Kind,m,!1)}if(l.uvs6AttrDesc&&l.uvs6AttrDesc.count>0){var v=new Float32Array(t,l.uvs6AttrDesc.offset,l.uvs6AttrDesc.count);i.setVerticesData(o.b.UV6Kind,v,!1)}if(l.colorsAttrDesc&&l.colorsAttrDesc.count>0){var y=new Float32Array(t,l.colorsAttrDesc.offset,l.colorsAttrDesc.count);i.setVerticesData(o.b.ColorKind,y,!1,l.colorsAttrDesc.stride)}if(l.matricesIndicesAttrDesc&&l.matricesIndicesAttrDesc.count>0){for(var b=new Int32Array(t,l.matricesIndicesAttrDesc.offset,l.matricesIndicesAttrDesc.count),T=[],E=0;E>8),T.push((16711680&A)>>16),T.push(A>>24)}i.setVerticesData(o.b.MatricesIndicesKind,T,!1)}if(l.matricesWeightsAttrDesc&&l.matricesWeightsAttrDesc.count>0){var x=new Float32Array(t,l.matricesWeightsAttrDesc.offset,l.matricesWeightsAttrDesc.count);i.setVerticesData(o.b.MatricesWeightsKind,x,!1)}if(l.indicesAttrDesc&&l.indicesAttrDesc.count>0){var R=new Int32Array(t,l.indicesAttrDesc.offset,l.indicesAttrDesc.count);i.setIndices(R,null)}if(l.subMeshesAttrDesc&&l.subMeshesAttrDesc.count>0){var P=new Int32Array(t,l.subMeshesAttrDesc.offset,5*l.subMeshesAttrDesc.count);i.subMeshes=[];for(E=0;E>8),T.push((16711680&D)>>16),T.push(D>>24)}i.setVerticesData(o.b.MatricesIndicesKind,T,t.matricesIndices._updatable)}if(t.matricesIndicesExtra)if(t.matricesIndicesExtra._isExpanded)delete t.matricesIndices._isExpanded,i.setVerticesData(o.b.MatricesIndicesExtraKind,t.matricesIndicesExtra,t.matricesIndicesExtra._updatable);else{for(T=[],E=0;E>8),T.push((16711680&D)>>16),T.push(D>>24)}i.setVerticesData(o.b.MatricesIndicesExtraKind,T,t.matricesIndicesExtra._updatable)}t.matricesWeights&&(e._CleanMatricesWeights(t,i),i.setVerticesData(o.b.MatricesWeightsKind,t.matricesWeights,t.matricesWeights._updatable)),t.matricesWeightsExtra&&i.setVerticesData(o.b.MatricesWeightsExtraKind,t.matricesWeightsExtra,t.matricesWeights._updatable),i.setIndices(t.indices,null)}if(t.subMeshes){i.subMeshes=[];for(var L=0;L-1){var n=t.getScene().getLastSkeletonByID(e.skeletonId);if(n){i=n.bones.length;for(var r=t.getVerticesData(o.b.MatricesIndicesKind),s=t.getVerticesData(o.b.MatricesIndicesExtraKind),c=e.matricesWeights,l=e.matricesWeightsExtra,u=e.numBoneInfluencer,h=c.length,d=0;du-1)&&(p=u-1),f>.001){var m=1/f;for(_=0;_<4;_++)c[d+_]*=m;if(l)for(_=0;_<4;_++)l[d+_]*=m}else p>=4?(l[d+p-4]=1-f,s[d+p-4]=i):(c[d+p]=1-f,r[d+p]=i)}t.setVerticesData(o.b.MatricesIndicesKind,r),e.matricesWeightsExtra&&t.setVerticesData(o.b.MatricesIndicesExtraKind,s)}}}},e.Parse=function(t,i,s){if(i.getGeometryByID(t.id))return null;var a=new e(t.id,i,void 0,t.updatable);return h.a&&h.a.AddTagsTo(a,t.tags),t.delayLoadingFile?(a.delayLoadState=l.a.DELAYLOADSTATE_NOTLOADED,a.delayLoadingFile=s+t.delayLoadingFile,a._boundingInfo=new c.a(n.x.FromArray(t.boundingBoxMinimum),n.x.FromArray(t.boundingBoxMaximum)),a._delayInfo=[],t.hasUVs&&a._delayInfo.push(o.b.UVKind),t.hasUVs2&&a._delayInfo.push(o.b.UV2Kind),t.hasUVs3&&a._delayInfo.push(o.b.UV3Kind),t.hasUVs4&&a._delayInfo.push(o.b.UV4Kind),t.hasUVs5&&a._delayInfo.push(o.b.UV5Kind),t.hasUVs6&&a._delayInfo.push(o.b.UV6Kind),t.hasColors&&a._delayInfo.push(o.b.ColorKind),t.hasMatricesIndices&&a._delayInfo.push(o.b.MatricesIndicesKind),t.hasMatricesWeights&&a._delayInfo.push(o.b.MatricesWeightsKind),a._delayLoadingFunction=r.a.ImportVertexData):r.a.ImportVertexData(t,a),i.pushGeometry(a,!0),a},e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return d});var n=i(1),r=i(8),o=i(0),s=i(42),a=i(53),c=i(54),l=i(48),u=i(41),h=i(33),d=function(e){function t(i,n,s){void 0===n&&(n=o.e.Gray()),void 0===s&&(s=u.a.DefaultUtilityLayer);var a=e.call(this,s)||this;a._pointerObserver=null,a.snapDistance=0,a.onSnapObservable=new r.c;var l=new h.a("",s.utilityLayerScene);l.diffuseColor=n,l.specularColor=n.subtract(new o.e(.1,.1,.1));var d=new h.a("",s.utilityLayerScene);d.diffuseColor=n.add(new o.e(.3,.3,.3));var f=t._CreateArrow(s.utilityLayerScene,l);f.lookAt(a._rootMesh.position.add(i)),f.scaling.scaleInPlace(1/3),f.parent=a._rootMesh;var p=0,_=new o.x,g={snapDistance:0};a.dragBehavior=new c.a({dragAxis:i}),a.dragBehavior.moveAttached=!1,a._rootMesh.addBehavior(a.dragBehavior);var m=new o.x,v=new o.j;a.dragBehavior.onDragObservable.add(function(e){if(a.attachedMesh)if(a.attachedMesh.parent?(a.attachedMesh.parent.computeWorldMatrix().invertToRef(v),v.setTranslationFromFloats(0,0,0),o.x.TransformCoordinatesToRef(e.delta,v,m)):m.copyFrom(e.delta),0==a.snapDistance)a.attachedMesh.position.addInPlace(m);else if(p+=e.dragDistance,Math.abs(p)>a.snapDistance){var t=Math.floor(Math.abs(p)/a.snapDistance);p%=a.snapDistance,m.normalizeToRef(_),_.scaleInPlace(a.snapDistance*t),a.attachedMesh.position.addInPlace(_),g.snapDistance=a.snapDistance*t,a.onSnapObservable.notifyObservers(g)}}),a._pointerObserver=s.utilityLayerScene.onPointerObservable.add(function(e){if(!a._customMeshSet){var t=e.pickInfo&&-1!=a._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh)?d:l;a._rootMesh.getChildMeshes().forEach(function(e){e.material=t,e.color&&(e.color=t.diffuseColor)})}});var y=s._getSharedGizmoLight();return y.includedOnlyMeshes=y.includedOnlyMeshes.concat(a._rootMesh.getChildMeshes(!1)),a}return n.d(t,e),t._CreateArrow=function(e,t){var i=new s.a("arrow",e),n=a.a.CreateCylinder("cylinder",{diameterTop:0,height:.075,diameterBottom:.0375,tessellation:96},e),r=a.a.CreateCylinder("cylinder",{diameterTop:.005,height:.275,diameterBottom:.005,tessellation:96},e);return r.material=t,n.parent=i,r.parent=i,n.material=t,n.rotation.x=Math.PI/2,n.position.z+=.3,r.position.z+=.1375,r.rotation.x=Math.PI/2,i},t._CreateArrowInstance=function(e,t){for(var i=new s.a("arrow",e),n=0,r=t.getChildMeshes();n=this.subMaterials.length?this.getScene().defaultMaterial:this.subMaterials[e]},t.prototype.getActiveTextures=function(){var t;return(t=e.prototype.getActiveTextures.call(this)).concat.apply(t,this.subMaterials.map(function(e){return e?e.getActiveTextures():[]}))},t.prototype.getClassName=function(){return"MultiMaterial"},t.prototype.isReadyForSubMesh=function(e,t,i){for(var n=0;n=0&&r.multiMaterials.splice(o,1),e.prototype.dispose.call(this,t,i)}},t.ParseMultiMaterial=function(e,i){var n=new t(e.name,i);n.id=e.id,o.a&&o.a.AddTagsTo(n,e.tags);for(var r=0;r-1&&this._debugMeshMeshes.splice(o,1),this._numMeshes--,this._numMeshes>0?(this._meshes[n]=this._meshes[this._numMeshes],this._impostors[n]=this._impostors[this._numMeshes],this._meshes[this._numMeshes]=null,this._impostors[this._numMeshes]=null):(this._meshes[0]=null,this._impostors[0]=null),t=!0;break}t&&0===this._numMeshes&&this._scene.unregisterBeforeRender(this._renderFunction)}},e.prototype._getDebugMaterial=function(e){return this._debugMaterial||(this._debugMaterial=new r.a("",e),this._debugMaterial.wireframe=!0,this._debugMaterial.emissiveColor=n.e.White(),this._debugMaterial.disableLighting=!0),this._debugMaterial},e.prototype._getDebugBoxMesh=function(e){return this._debugBoxMesh||(this._debugBoxMesh=_.a.CreateBox("physicsBodyBoxViewMesh",{size:1},e),this._debugBoxMesh.rotationQuaternion=n.q.Identity(),this._debugBoxMesh.material=this._getDebugMaterial(e),this._debugBoxMesh.setEnabled(!1)),this._debugBoxMesh.createInstance("physicsBodyBoxViewInstance")},e.prototype._getDebugSphereMesh=function(e){return this._debugSphereMesh||(this._debugSphereMesh=g.a.CreateSphere("physicsBodySphereViewMesh",{diameter:1},e),this._debugSphereMesh.rotationQuaternion=n.q.Identity(),this._debugSphereMesh.material=this._getDebugMaterial(e),this._debugSphereMesh.setEnabled(!1)),this._debugSphereMesh.createInstance("physicsBodyBoxViewInstance")},e.prototype._getDebugCylinderMesh=function(e){return this._debugCylinderMesh||(this._debugCylinderMesh=b.a.CreateCylinder("physicsBodyCylinderViewMesh",{diameterTop:1,diameterBottom:1,height:1},e),this._debugCylinderMesh.rotationQuaternion=n.q.Identity(),this._debugCylinderMesh.material=this._getDebugMaterial(e),this._debugCylinderMesh.setEnabled(!1)),this._debugCylinderMesh.createInstance("physicsBodyBoxViewInstance")},e.prototype._getDebugMeshMesh=function(e,t){var i=new p.a(e.name,t,null,e);return i.position=n.x.Zero(),i.setParent(e),i.material=this._getDebugMaterial(t),this._debugMeshMeshes.push(i),i},e.prototype._getDebugMesh=function(e,t){var i=this;if(!this._utilityLayer)return null;if(t&&t.parent&&t.parent.physicsImpostor)return null;var n=null,r=this._utilityLayer.utilityLayerScene;switch(e.type){case v.a.BoxImpostor:n=this._getDebugBoxMesh(r),e.getBoxSizeToRef(n.scaling);break;case v.a.SphereImpostor:n=this._getDebugSphereMesh(r);var o=e.getRadius();n.scaling.x=2*o,n.scaling.y=2*o,n.scaling.z=2*o;break;case v.a.MeshImpostor:t&&(n=this._getDebugMeshMesh(t,r));break;case v.a.NoImpostor:if(t)t.getChildMeshes().filter(function(e){return e.physicsImpostor?1:0}).forEach(function(e){i._getDebugBoxMesh(r).parent=e});break;case v.a.CylinderImpostor:n=this._getDebugCylinderMesh(r);var s=e.object.getBoundingInfo();n.scaling.x=s.boundingBox.maximum.x-s.boundingBox.minimum.x,n.scaling.y=s.boundingBox.maximum.y-s.boundingBox.minimum.y,n.scaling.z=s.boundingBox.maximum.z-s.boundingBox.minimum.z}return n},e.prototype.dispose=function(){for(var e=this._numMeshes,t=0;t=0;a--){var c=e[a],l=c.getParent();if(l){var u=this._debugLines[r];u||(u=[n.x.Zero(),n.x.Zero()],this._debugLines[r]=u),c.getAbsolutePositionToRef(o,u[0]),l.getAbsolutePositionToRef(o,u[1]),u[0].subtractInPlace(s),u[1].subtractInPlace(s),r++}}},e.prototype.update=function(){if(this._utilityLayer){this.autoUpdateBonesMatrices&&this.skeleton.computeAbsoluteTransforms();var e=this.mesh._effectiveMesh;void 0===this.skeleton.bones[0].length?this._getLinesForBonesNoLength(this.skeleton.bones,e.getWorldMatrix()):this._getLinesForBonesWithLength(this.skeleton.bones,e.getWorldMatrix());var t=this._utilityLayer.utilityLayerScene;this._debugMesh?E.a.CreateLineSystem("",{lines:this._debugLines,updatable:!0,instance:this._debugMesh},t):(this._debugMesh=E.a.CreateLineSystem("",{lines:this._debugLines,updatable:!0,instance:null},t),this._debugMesh.renderingGroupId=this.renderingGroupId),this._debugMesh.position.copyFrom(this.mesh.position),this._debugMesh.color=this.color}},e.prototype.dispose=function(){this.isEnabled=!1,this._debugMesh&&(this.isEnabled=!1,this._debugMesh.dispose(),this._debugMesh=null),this._utilityLayer&&(this._utilityLayer.dispose(),this._utilityLayer=null)},e}();i.d(t,"AxesViewer",function(){return s}),i.d(t,"BoneAxesViewer",function(){return c}),i.d(t,"DebugLayer",function(){return f}),i.d(t,"PhysicsViewer",function(){return T}),i.d(t,"RayHelper",function(){return A}),i.d(t,"SkeletonViewer",function(){return x})},function(e,t,i){"use strict";i.d(t,"a",function(){return o});var n=i(1),r=i(0),o=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n._normalMatrix=new r.j,n.allowShaderHotSwapping=!0,n._storeEffectOnSubMeshes=!0,n}return n.d(t,e),t.prototype.getEffect=function(){return this._activeEffect},t.prototype.isReady=function(e,t){return!!e&&(!e.subMeshes||0===e.subMeshes.length||this.isReadyForSubMesh(e,e.subMeshes[0],t))},t.prototype.bindOnlyWorldMatrix=function(e){this._activeEffect.setMatrix("world",e)},t.prototype.bindOnlyNormalMatrix=function(e){this._activeEffect.setMatrix("normalMatrix",e)},t.prototype.bind=function(e,t){t&&this.bindForSubMesh(e,t,t.subMeshes[0])},t.prototype._afterBind=function(t,i){void 0===i&&(i=null),e.prototype._afterBind.call(this,t),this.getScene()._cachedEffect=i},t.prototype._mustRebind=function(e,t,i){return void 0===i&&(i=1),e.isCachedMaterialInvalid(this,t,i)},t}(i(20).a)},function(e,t,i){"use strict";i.d(t,"a",function(){return d});var n=i(1),r=i(2),o=i(0),s=i(4),a=i(7),c=i(15),l=i(5),u=i(20),h=i(22),d=function(e){function t(t,i,r,s){void 0===s&&(s={});var a=e.call(this,t,i)||this;return a._textures={},a._textureArrays={},a._floats={},a._ints={},a._floatsArrays={},a._colors3={},a._colors3Arrays={},a._colors4={},a._vectors2={},a._vectors3={},a._vectors4={},a._matrices={},a._matrices3x3={},a._matrices2x2={},a._vectors2Arrays={},a._vectors3Arrays={},a._cachedWorldViewMatrix=new o.j,a._shaderPath=r,a._options=n.a({needAlphaBlending:!1,needAlphaTesting:!1,attributes:["position","normal","uv"],uniforms:["worldViewProjection"],uniformBuffers:[],samplers:[],defines:[]},s),a}return n.d(t,e),Object.defineProperty(t.prototype,"options",{get:function(){return this._options},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"ShaderMaterial"},t.prototype.needAlphaBlending=function(){return this.alpha<1||this._options.needAlphaBlending},t.prototype.needAlphaTesting=function(){return this._options.needAlphaTesting},t.prototype._checkUniform=function(e){-1===this._options.uniforms.indexOf(e)&&this._options.uniforms.push(e)},t.prototype.setTexture=function(e,t){return-1===this._options.samplers.indexOf(e)&&this._options.samplers.push(e),this._textures[e]=t,this},t.prototype.setTextureArray=function(e,t){return-1===this._options.samplers.indexOf(e)&&this._options.samplers.push(e),this._checkUniform(e),this._textureArrays[e]=t,this},t.prototype.setFloat=function(e,t){return this._checkUniform(e),this._floats[e]=t,this},t.prototype.setInt=function(e,t){return this._checkUniform(e),this._ints[e]=t,this},t.prototype.setFloats=function(e,t){return this._checkUniform(e),this._floatsArrays[e]=t,this},t.prototype.setColor3=function(e,t){return this._checkUniform(e),this._colors3[e]=t,this},t.prototype.setColor3Array=function(e,t){return this._checkUniform(e),this._colors3Arrays[e]=t.reduce(function(e,t){return t.toArray(e,e.length),e},[]),this},t.prototype.setColor4=function(e,t){return this._checkUniform(e),this._colors4[e]=t,this},t.prototype.setVector2=function(e,t){return this._checkUniform(e),this._vectors2[e]=t,this},t.prototype.setVector3=function(e,t){return this._checkUniform(e),this._vectors3[e]=t,this},t.prototype.setVector4=function(e,t){return this._checkUniform(e),this._vectors4[e]=t,this},t.prototype.setMatrix=function(e,t){return this._checkUniform(e),this._matrices[e]=t,this},t.prototype.setMatrix3x3=function(e,t){return this._checkUniform(e),this._matrices3x3[e]=t,this},t.prototype.setMatrix2x2=function(e,t){return this._checkUniform(e),this._matrices2x2[e]=t,this},t.prototype.setArray2=function(e,t){return this._checkUniform(e),this._vectors2Arrays[e]=t,this},t.prototype.setArray3=function(e,t){return this._checkUniform(e),this._vectors3Arrays[e]=t,this},t.prototype._checkCache=function(e,t){return!e||(this._effect&&this._effect.defines.indexOf("#define INSTANCES"),!1)},t.prototype.isReadyForSubMesh=function(e,t,i){return this.isReady(e,i)},t.prototype.isReady=function(e,t){var i=this.getScene(),n=i.getEngine();if(!this.checkReadyOnEveryCall&&this._renderId===i.getRenderId()&&this._checkCache(e,t))return!0;for(var r=[],o=[],a=new l.c,u=0;u4&&(o.push(s.b.MatricesIndicesExtraKind),o.push(s.b.MatricesWeightsExtraKind));var h=e.skeleton;r.push("#define NUM_BONE_INFLUENCERS "+e.numBoneInfluencers),a.addCPUSkinningFallback(0,e),h.isUsingTextureForMatrices?(r.push("#define BONETEXTURE"),-1===this._options.uniforms.indexOf("boneTextureWidth")&&this._options.uniforms.push("boneTextureWidth"),-1===this._options.samplers.indexOf("boneSampler")&&this._options.samplers.push("boneSampler")):(r.push("#define BonesPerMesh "+(h.bones.length+1)),-1===this._options.uniforms.indexOf("mBones")&&this._options.uniforms.push("mBones"))}else r.push("#define NUM_BONE_INFLUENCERS 0");for(var d in this._textures)if(!this._textures[d].isReady())return!1;e&&this._shouldTurnAlphaTestOn(e)&&r.push("#define ALPHATEST");var f=this._effect,p=r.join("\n");return this._effect=n.createEffect(this._shaderPath,{attributes:o,uniformsNames:this._options.uniforms,uniformBuffersNames:this._options.uniformBuffers,samplers:this._options.samplers,defines:p,fallbacks:a,onCompiled:this.onCompiled,onError:this.onError},n),!!this._effect.isReady()&&(f!==this._effect&&i.resetCachedMaterial(),this._renderId=i.getRenderId(),!0)},t.prototype.bindOnlyWorldMatrix=function(e){var t=this.getScene();this._effect&&(-1!==this._options.uniforms.indexOf("world")&&this._effect.setMatrix("world",e),-1!==this._options.uniforms.indexOf("worldView")&&(e.multiplyToRef(t.getViewMatrix(),this._cachedWorldViewMatrix),this._effect.setMatrix("worldView",this._cachedWorldViewMatrix)),-1!==this._options.uniforms.indexOf("worldViewProjection")&&this._effect.setMatrix("worldViewProjection",e.multiply(t.getTransformMatrix())))},t.prototype.bind=function(e,t){if(this.bindOnlyWorldMatrix(e),this._effect&&this.getScene().getCachedMaterial()!==this){var i;for(i in-1!==this._options.uniforms.indexOf("view")&&this._effect.setMatrix("view",this.getScene().getViewMatrix()),-1!==this._options.uniforms.indexOf("projection")&&this._effect.setMatrix("projection",this.getScene().getProjectionMatrix()),-1!==this._options.uniforms.indexOf("viewProjection")&&this._effect.setMatrix("viewProjection",this.getScene().getTransformMatrix()),c.a.BindBonesParameters(t,this._effect),this._textures)this._effect.setTexture(i,this._textures[i]);for(i in this._textureArrays)this._effect.setTextureArray(i,this._textureArrays[i]);for(i in this._ints)this._effect.setInt(i,this._ints[i]);for(i in this._floats)this._effect.setFloat(i,this._floats[i]);for(i in this._floatsArrays)this._effect.setArray(i,this._floatsArrays[i]);for(i in this._colors3)this._effect.setColor3(i,this._colors3[i]);for(i in this._colors3Arrays)this._effect.setArray3(i,this._colors3Arrays[i]);for(i in this._colors4){var n=this._colors4[i];this._effect.setFloat4(i,n.r,n.g,n.b,n.a)}for(i in this._vectors2)this._effect.setVector2(i,this._vectors2[i]);for(i in this._vectors3)this._effect.setVector3(i,this._vectors3[i]);for(i in this._vectors4)this._effect.setVector4(i,this._vectors4[i]);for(i in this._matrices)this._effect.setMatrix(i,this._matrices[i]);for(i in this._matrices3x3)this._effect.setMatrix3x3(i,this._matrices3x3[i]);for(i in this._matrices2x2)this._effect.setMatrix2x2(i,this._matrices2x2[i]);for(i in this._vectors2Arrays)this._effect.setArray2(i,this._vectors2Arrays[i]);for(i in this._vectors3Arrays)this._effect.setArray3(i,this._vectors3Arrays[i])}this._afterBind(t)},t.prototype.getActiveTextures=function(){var t=e.prototype.getActiveTextures.call(this);for(var i in this._textures)t.push(this._textures[i]);for(var i in this._textureArrays)for(var n=this._textureArrays[i],r=0;ru-n)&&(!(c-hh-o)&&!(l-dd-s))},e.prototype.intersectsSphere=function(t){return e.IntersectsSphere(this.minimumWorld,this.maximumWorld,t.centerWorld,t.radiusWorld)},e.prototype.intersectsMinMax=function(e,t){var i=this.minimumWorld,n=this.maximumWorld,r=i.x,o=i.y,s=i.z,a=n.x,c=n.y,l=n.z,u=e.x,h=e.y,d=e.z,f=t.x,p=t.y,_=t.z;return!(af)&&(!(cp)&&!(l_))},e.Intersects=function(e,t){return e.intersectsMinMax(t.minimumWorld,t.maximumWorld)},e.IntersectsSphere=function(t,i,n,o){var s=e.TmpVector3[0];return r.x.ClampToRef(n,t,i,s),r.x.DistanceSquared(n,s)<=o*o},e.IsCompletelyInFrustum=function(e,t){for(var i=0;i<6;++i)for(var n=t[i],r=0;r<8;++r)if(n.dotCoordinate(e[r])<0)return!1;return!0},e.IsInFrustum=function(e,t){for(var i=0;i<6;++i){for(var n=!0,r=t[i],o=0;o<8;++o)if(r.dotCoordinate(e[o])>=0){n=!1;break}if(n)return!1}return!0},e.TmpVector3=n.a.BuildArray(3,r.x.Zero),e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return n});var n=function(){function e(){this.references=0,this.capacity=0,this.is32Bits=!1}return Object.defineProperty(e.prototype,"underlyingResource",{get:function(){return null},enumerable:!0,configurable:!0}),e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return r});var n=i(3),r=function(){function e(){this.hoverCursor="",this.actions=new Array,this.isRecursive=!1}return Object.defineProperty(e,"HasTriggers",{get:function(){for(var t in e.Triggers)if(e.Triggers.hasOwnProperty(t))return!0;return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e,"HasPickTriggers",{get:function(){for(var t in e.Triggers)if(e.Triggers.hasOwnProperty(t)){var i=parseInt(t);if(i>=n.a.ACTION_OnPickTrigger&&i<=n.a.ACTION_OnPickUpTrigger)return!0}return!1},enumerable:!0,configurable:!0}),e.HasSpecificTrigger=function(t){for(var i in e.Triggers){if(e.Triggers.hasOwnProperty(i))if(parseInt(i)===t)return!0}return!1},e.Triggers={},e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return o});var n=i(11),r=i(13);r.a.CreatePlane=function(e){var t=[],i=[],n=[],o=[],s=e.width||e.size||1,a=e.height||e.size||1,c=0===e.sideOrientation?0:e.sideOrientation||r.a.DEFAULTSIDE,l=s/2,u=a/2;i.push(-l,-u,0),n.push(0,0,-1),o.push(0,0),i.push(l,-u,0),n.push(0,0,-1),o.push(1,0),i.push(l,u,0),n.push(0,0,-1),o.push(1,1),i.push(-l,u,0),n.push(0,0,-1),o.push(0,1),t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),r.a._ComputeSides(c,i,t,n,o,e.frontUVs,e.backUVs);var h=new r.a;return h.indices=t,h.positions=i,h.normals=n,h.uvs=o,h},n.a.CreatePlane=function(e,t,i,n,r){var s={size:t,width:t,height:t,sideOrientation:r,updatable:n};return o.CreatePlane(e,s,i)};var o=function(){function e(){}return e.CreatePlane=function(e,t,i){void 0===i&&(i=null);var o=new n.a(e,i);return t.sideOrientation=n.a._GetDefaultSideOrientation(t.sideOrientation),o._originalBuilderSideOrientation=t.sideOrientation,r.a.CreatePlane(t).applyToMesh(o,t.updatable),t.sourcePlane&&(o.translate(t.sourcePlane.normal,-t.sourcePlane.d),o.setDirection(t.sourcePlane.normal.scale(-1))),o},e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return n});var n=function(){return function(e,t,i){this.bu=e,this.bv=t,this.distance=i,this.faceId=0,this.subMeshId=0}}()},function(e,t,i){"use strict";i.d(t,"a",function(){return o});var n=i(34),r=i(0),o=function(){function e(e,t,i){this.center=r.x.Zero(),this.centerWorld=r.x.Zero(),this.minimum=r.x.Zero(),this.maximum=r.x.Zero(),this.reConstruct(e,t,i)}return e.prototype.reConstruct=function(e,t,i){this.minimum.copyFrom(e),this.maximum.copyFrom(t);var n=r.x.Distance(e,t);t.addToRef(e,this.center).scaleInPlace(.5),this.radius=.5*n,this._update(i||r.j.IdentityReadOnly)},e.prototype.scale=function(t){var i=this.radius*t,n=e.TmpVector3,r=n[0].setAll(i),o=this.center.subtractToRef(r,n[1]),s=this.center.addToRef(r,n[2]);return this.reConstruct(o,s,this._worldMatrix),this},e.prototype.getWorldMatrix=function(){return this._worldMatrix},e.prototype._update=function(t){if(t.isIdentity())this.centerWorld.copyFrom(this.center),this.radiusWorld=this.radius;else{r.x.TransformCoordinatesToRef(this.center,t,this.centerWorld);var i=e.TmpVector3[0];r.x.TransformNormalFromFloatsToRef(1,1,1,t,i),this.radiusWorld=Math.max(Math.abs(i.x),Math.abs(i.y),Math.abs(i.z))*this.radius}},e.prototype.isInFrustum=function(e){for(var t=this.centerWorld,i=this.radiusWorld,n=0;n<6;n++)if(e[n].dotCoordinate(t)<=-i)return!1;return!0},e.prototype.isCenterInFrustum=function(e){for(var t=this.centerWorld,i=0;i<6;i++)if(e[i].dotCoordinate(t)<0)return!1;return!0},e.prototype.intersectsPoint=function(e){var t=r.x.DistanceSquared(this.centerWorld,e);return!(this.radiusWorld*this.radiusWorldthis.value;case t.IsLesser:return this._effectiveTarget[this._property]-1&&this._scene.actionManagers.splice(e,1)},t.prototype.getScene=function(){return this._scene},t.prototype.hasSpecificTriggers=function(e){for(var t=0;t-1)return!0}return!1},t.prototype.hasSpecificTriggers2=function(e,t){for(var i=0;i=t.OnPickTrigger&&i.trigger<=t.OnPointerOutTrigger)return!0}return!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasPickTriggers",{get:function(){for(var e=0;e=t.OnPickTrigger&&i.trigger<=t.OnPickUpTrigger)return!0}return!1},enumerable:!0,configurable:!0}),t.prototype.registerAction=function(e){return e.trigger===t.OnEveryFrameTrigger&&this.getScene().actionManager!==this?(p.a.Warn("OnEveryFrameTrigger can only be used with scene.actionManager"),null):(this.actions.push(e),t.Triggers[e.trigger]?t.Triggers[e.trigger]++:t.Triggers[e.trigger]=1,e._actionManager=this,e._prepare(),e)},t.prototype.unregisterAction=function(e){var i=this.actions.indexOf(e);return-1!==i&&(this.actions.splice(i,1),t.Triggers[e.trigger]-=1,0===t.Triggers[e.trigger]&&delete t.Triggers[e.trigger],delete e._actionManager,!0)},t.prototype.processTrigger=function(e,i){for(var n=0;n0;if(2===e.type?f.push(r):f.push(i),g){for(var m=new Array,v=0;v0){var p=f.properties[0].value,_=null===f.properties[0].targetType?p:n.getMeshByName(p);_._meshId&&(_.mesh=n.getMeshByID(_._meshId)),d={trigger:t[f.name],parameter:_}}else d=t[f.name];for(var g=0;g=0;o--)this._keys[o].frame>=n&&this._keys[o].frame<=r&&this._keys.splice(o,1);this._ranges[e]=null}},e.prototype.getRange=function(e){return this._ranges[e]},e.prototype.getKeys=function(){return this._keys},e.prototype.getHighestFrame=function(){for(var e=0,t=0,i=this._keys.length;t0)return i.highLimitValue.clone?i.highLimitValue.clone():i.highLimitValue;var n=this._keys;if(1===n.length)return this._getKeyValue(n[0].value);var r=i.key;if(n[r].frame>=t)for(;r-1>=0&&n[r].frame>=t;)r--;for(var o=r;o=t){i.key=o;var a=n[o],c=this._getKeyValue(a.value);if(a.interpolation===I.STEP)return c;var l=this._getKeyValue(s.value),u=void 0!==a.outTangent&&void 0!==s.inTangent,h=s.frame-a.frame,d=(t-a.frame)/h,f=this.getEasingFunction();switch(null!=f&&(d=f.ease(d)),this.dataType){case e.ANIMATIONTYPE_FLOAT:var p=u?this.floatInterpolateFunctionWithTangents(c,a.outTangent*h,l,s.inTangent*h,d):this.floatInterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return p;case e.ANIMATIONLOOPMODE_RELATIVE:return i.offsetValue*i.repeatCount+p}break;case e.ANIMATIONTYPE_QUATERNION:var _=u?this.quaternionInterpolateFunctionWithTangents(c,a.outTangent.scale(h),l,s.inTangent.scale(h),d):this.quaternionInterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return _;case e.ANIMATIONLOOPMODE_RELATIVE:return _.addInPlace(i.offsetValue.scale(i.repeatCount))}return _;case e.ANIMATIONTYPE_VECTOR3:var g=u?this.vector3InterpolateFunctionWithTangents(c,a.outTangent.scale(h),l,s.inTangent.scale(h),d):this.vector3InterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return g;case e.ANIMATIONLOOPMODE_RELATIVE:return g.add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_VECTOR2:var m=u?this.vector2InterpolateFunctionWithTangents(c,a.outTangent.scale(h),l,s.inTangent.scale(h),d):this.vector2InterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return m;case e.ANIMATIONLOOPMODE_RELATIVE:return m.add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_SIZE:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return this.sizeInterpolateFunction(c,l,d);case e.ANIMATIONLOOPMODE_RELATIVE:return this.sizeInterpolateFunction(c,l,d).add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_COLOR3:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return this.color3InterpolateFunction(c,l,d);case e.ANIMATIONLOOPMODE_RELATIVE:return this.color3InterpolateFunction(c,l,d).add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_MATRIX:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:if(e.AllowMatricesInterpolation)return this.matrixInterpolateFunction(c,l,d,i.workValue);case e.ANIMATIONLOOPMODE_RELATIVE:return c}}break}}return this._getKeyValue(n[n.length-1].value)},e.prototype.matrixInterpolateFunction=function(t,i,n,r){return e.AllowMatrixDecomposeForInterpolation?r?(o.j.DecomposeLerpToRef(t,i,n,r),r):o.j.DecomposeLerp(t,i,n):r?(o.j.LerpToRef(t,i,n,r),r):o.j.Lerp(t,i,n)},e.prototype.clone=function(){var t=new e(this.name,this.targetPropertyPath.join("."),this.framePerSecond,this.dataType,this.loopMode);if(t.enableBlending=this.enableBlending,t.blendingSpeed=this.blendingSpeed,this._keys&&t.setKeys(this._keys),this._ranges)for(var i in t._ranges={},this._ranges){var n=this._ranges[i];n&&(t._ranges[i]=n.clone())}return t},e.prototype.setKeys=function(e){this._keys=e.slice(0)},e.prototype.serialize=function(){var t={};t.name=this.name,t.property=this.targetProperty,t.framePerSecond=this.framePerSecond,t.dataType=this.dataType,t.loopBehavior=this.loopMode,t.enableBlending=this.enableBlending,t.blendingSpeed=this.blendingSpeed;var i=this.dataType;t.keys=[];for(var n=this.getKeys(),r=0;r=1&&(c=u.values[1]),u.values.length>=2&&(l=u.values[2]);break;case e.ANIMATIONTYPE_QUATERNION:if(i=o.q.FromArray(u.values),u.values.length>=8){var h=o.q.FromArray(u.values.slice(4,8));h.equals(o.q.Zero())||(c=h)}if(u.values.length>=12){var d=o.q.FromArray(u.values.slice(8,12));d.equals(o.q.Zero())||(l=d)}break;case e.ANIMATIONTYPE_MATRIX:i=o.j.FromArray(u.values);break;case e.ANIMATIONTYPE_COLOR3:i=o.e.FromArray(u.values);break;case e.ANIMATIONTYPE_VECTOR3:default:i=o.x.FromArray(u.values)}var f={};f.frame=u.frame,f.value=i,null!=c&&(f.inTangent=c),null!=l&&(f.outTangent=l),a.push(f)}if(r.setKeys(a),t.ranges)for(n=0;n0&&h.forEach(function(e){r._events.push(e._clone())}),this._enableBlending=e&&e.animationPropertiesOverride?e.animationPropertiesOverride.enableBlending:this._animation.enableBlending}return Object.defineProperty(e.prototype,"currentFrame",{get:function(){return this._currentFrame},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"weight",{get:function(){return this._weight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentValue",{get:function(){return this._currentValue},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"targetPath",{get:function(){return this._targetPath},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"target",{get:function(){return this._currentActiveTarget},enumerable:!0,configurable:!0}),e.prototype._preparePath=function(e,t){void 0===t&&(t=0);var i=this._animation.targetPropertyPath;if(i.length>1){for(var n=e[i[0]],r=1;r-1&&this._animation.runtimeAnimations.splice(e,1)},e.prototype.setValue=function(e,t){if(this._targetIsArray)for(var i=0;it[t.length-1].frame&&(e=t[t.length-1].frame),this._currentFrame=e;var i=this._animation._interpolate(e,this._animationState);this.setValue(i,-1)},e.prototype._prepareForSpeedRatioChange=function(e){var t=this._previousDelay*(this._animation.framePerSecond*e)/1e3;this._ratioOffset=this._previousRatio-t},e.prototype.animate=function(e,t,i,n,r,o){void 0===o&&(o=-1);var s=this._animation,a=s.targetPropertyPath;if(!a||a.length<1)return this._stopped=!0,!1;var c=!0;(tthis._maxFrame)&&(t=this._minFrame),(ithis._maxFrame)&&(i=this._maxFrame);var l,u,h=i-t,d=e*(s.framePerSecond*r)/1e3+this._ratioOffset,f=0;if(this._previousDelay=e,this._previousRatio=d,!n&&i>=t&&d>=h)c=!1,f=s._getKeyValue(this._maxValue);else if(!n&&t>=i&&d<=h)c=!1,f=s._getKeyValue(this._minValue);else if(this._animationState.loopMode!==B.ANIMATIONLOOPMODE_CYCLE){var p=i.toString()+t.toString();if(!this._offsetsCache[p]){this._animationState.repeatCount=0,this._animationState.loopMode=B.ANIMATIONLOOPMODE_CYCLE;var _=s._interpolate(t,this._animationState),g=s._interpolate(i,this._animationState);switch(this._animationState.loopMode=this._getCorrectLoopMode(),s.dataType){case B.ANIMATIONTYPE_FLOAT:this._offsetsCache[p]=g-_;break;case B.ANIMATIONTYPE_QUATERNION:this._offsetsCache[p]=g.subtract(_);break;case B.ANIMATIONTYPE_VECTOR3:this._offsetsCache[p]=g.subtract(_);case B.ANIMATIONTYPE_VECTOR2:this._offsetsCache[p]=g.subtract(_);case B.ANIMATIONTYPE_SIZE:this._offsetsCache[p]=g.subtract(_);case B.ANIMATIONTYPE_COLOR3:this._offsetsCache[p]=g.subtract(_)}this._highLimitsCache[p]=g}f=this._highLimitsCache[p],l=this._offsetsCache[p]}if(void 0===l)switch(s.dataType){case B.ANIMATIONTYPE_FLOAT:l=0;break;case B.ANIMATIONTYPE_QUATERNION:l=V;break;case B.ANIMATIONTYPE_VECTOR3:l=G;break;case B.ANIMATIONTYPE_VECTOR2:l=k;break;case B.ANIMATIONTYPE_SIZE:l=z;break;case B.ANIMATIONTYPE_COLOR3:l=j}if(this._host&&this._host.syncRoot){var m=this._host.syncRoot;u=t+(i-t)*((m.masterFrame-m.fromFrame)/(m.toFrame-m.fromFrame))}else u=c&&0!==h?t+d%h:i;var v=this._events;if((h>0&&this.currentFrame>u||h<0&&this.currentFrame>0,this._animationState.highLimitValue=f,this._animationState.offsetValue=l;var b=s._interpolate(u,this._animationState);if(this.setValue(b,o),v.length)for(y=0;y0&&u>=v[y].frame&&v[y].frame>=t||h<0&&u<=v[y].frame&&v[y].frame<=t){var T=v[y];T.isDone||(T.onlyOnce&&(v.splice(y,1),y--),T.isDone=!0,T.action(u))}return c||(this._stopped=!0),c},e}(),W=i(16),X=i(47),Y=i(34),K=function(e){function t(t,i,n,r,s,a,c){void 0===n&&(n=null),void 0===r&&(r=null),void 0===s&&(s=null),void 0===a&&(a=null),void 0===c&&(c=null);var l=e.call(this,t,i.getScene(),!1)||this;return l.name=t,l.children=new Array,l.animations=new Array,l._index=null,l._absoluteTransform=new o.j,l._invertedAbsoluteTransform=new o.j,l._scalingDeterminant=1,l._worldTransform=new o.j,l._needToDecompose=!0,l._needToCompose=!1,l._linkedTransformNode=null,l._waitingTransformNodeId=null,l._skeleton=i,l._localMatrix=r?r.clone():o.j.Identity(),l._restPose=s||l._localMatrix.clone(),l._baseMatrix=a||l._localMatrix.clone(),l._index=c,i.bones.push(l),l.setParent(n,!1),(a||r)&&l._updateDifferenceMatrix(),l}return l.d(t,e),Object.defineProperty(t.prototype,"_matrix",{get:function(){return this._compose(),this._localMatrix},set:function(e){this._localMatrix.copyFrom(e),this._needToDecompose=!0},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"Bone"},t.prototype.getSkeleton=function(){return this._skeleton},t.prototype.getParent=function(){return this._parent},t.prototype.getChildren=function(){return this.children},t.prototype.setParent=function(e,t){if(void 0===t&&(t=!0),this._parent!==e){if(this._parent){var i=this._parent.children.indexOf(this);-1!==i&&this._parent.children.splice(i,1)}this._parent=e,this._parent&&this._parent.children.push(this),t&&this._updateDifferenceMatrix(),this.markAsDirty()}},t.prototype.getLocalMatrix=function(){return this._compose(),this._localMatrix},t.prototype.getBaseMatrix=function(){return this._baseMatrix},t.prototype.getRestPose=function(){return this._restPose},t.prototype.getWorldMatrix=function(){return this._worldTransform},t.prototype.returnToRest=function(){this.updateMatrix(this._restPose.clone())},t.prototype.getInvertedAbsoluteTransform=function(){return this._invertedAbsoluteTransform},t.prototype.getAbsoluteTransform=function(){return this._absoluteTransform},t.prototype.linkTransformNode=function(e){this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode--,this._linkedTransformNode=e,this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode++},Object.defineProperty(t.prototype,"position",{get:function(){return this._decompose(),this._localPosition},set:function(e){this._decompose(),this._localPosition.copyFrom(e),this._markAsDirtyAndCompose()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this.getRotation()},set:function(e){this.setRotation(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rotationQuaternion",{get:function(){return this._decompose(),this._localRotation},set:function(e){this.setRotationQuaternion(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scaling",{get:function(){return this.getScale()},set:function(e){this.setScale(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animationPropertiesOverride",{get:function(){return this._skeleton.animationPropertiesOverride},enumerable:!0,configurable:!0}),t.prototype._decompose=function(){this._needToDecompose&&(this._needToDecompose=!1,this._localScaling||(this._localScaling=o.x.Zero(),this._localRotation=o.q.Zero(),this._localPosition=o.x.Zero()),this._localMatrix.decompose(this._localScaling,this._localRotation,this._localPosition))},t.prototype._compose=function(){this._needToCompose&&(this._needToCompose=!1,o.j.ComposeToRef(this._localScaling,this._localRotation,this._localPosition,this._localMatrix))},t.prototype.updateMatrix=function(e,t,i){void 0===t&&(t=!0),void 0===i&&(i=!0),this._baseMatrix.copyFrom(e),t&&this._updateDifferenceMatrix(),i?(this._localMatrix.copyFrom(e),this._markAsDirtyAndDecompose()):this.markAsDirty()},t.prototype._updateDifferenceMatrix=function(e,t){if(void 0===t&&(t=!0),e||(e=this._baseMatrix),this._parent?e.multiplyToRef(this._parent._absoluteTransform,this._absoluteTransform):this._absoluteTransform.copyFrom(e),this._absoluteTransform.invertToRef(this._invertedAbsoluteTransform),t)for(var i=0;i-1&&(this._scene._activeAnimatables.splice(t,1),this._scene._activeAnimatables.push(this))}return this},e.prototype.getAnimations=function(){return this._runtimeAnimations},e.prototype.appendAnimations=function(e,t){for(var i=this,n=0;n-1){for(var n=(o=this._runtimeAnimations).length-1;n>=0;n--){var r=o[n];e&&r.animation.name!=e||(t&&!t(r.target)||(r.dispose(),o.splice(n,1)))}0==o.length&&(this._scene._activeAnimatables.splice(i,1),this._raiseOnAnimationEnd())}}else{if((n=this._scene._activeAnimatables.indexOf(this))>-1){this._scene._activeAnimatables.splice(n,1);var o=this._runtimeAnimations;for(n=0;n0)return;this._animationTimeLast=t}var i=this.useConstantAnimationDeltaTime?16:(t-this._animationTimeLast)*this.animationTimeScale;this._animationTime+=i;var n=this._animationTime;this._animationTimeLast=t;for(var r=0;ri&&r>0&&(r*=-1),a&&this.stopAnimation(e,void 0,c),s||(s=new Q(this,e,t,i,n,r,o,void 0,l));var u=!c||c(e);if(e.animations&&u&&s.appendAnimations(e,e.animations),e.getAnimatables)for(var h=e.getAnimatables(),d=0;d=l&&s.frame<=u&&(n?(c=s.value.clone(),_?(a=c.getTranslation(),c.setTranslation(a.scaleInPlace(g))):m&&r?(a=c.getTranslation(),c.setTranslation(a.multiplyInPlace(r))):c=s.value):c=s.value,v.push({frame:s.frame+i,value:c}));return this.animations[0].createRange(t,l+i,u+i),!0};var q=function(){return function(){}}(),Z=function(){function e(e,t){void 0===t&&(t=null),this.name=e,this._targetedAnimations=new Array,this._animatables=new Array,this._from=Number.MAX_VALUE,this._to=-Number.MAX_VALUE,this._speedRatio=1,this._loopAnimation=!1,this.onAnimationEndObservable=new r.c,this.onAnimationLoopObservable=new r.c,this.onAnimationGroupEndObservable=new r.c,this.onAnimationGroupPauseObservable=new r.c,this.onAnimationGroupPlayObservable=new r.c,this._scene=t||P.a.LastCreatedScene,this.uniqueId=this._scene.getUniqueId(),this._scene.animationGroups.push(this)}return Object.defineProperty(e.prototype,"from",{get:function(){return this._from},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"to",{get:function(){return this._to},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isStarted",{get:function(){return this._isStarted},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isPlaying",{get:function(){return this._isStarted&&!this._isPaused},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"speedRatio",{get:function(){return this._speedRatio},set:function(e){if(this._speedRatio!==e){this._speedRatio=e;for(var t=0;tn[0].frame&&(this._from=n[0].frame),this._toe){var s={frame:e,value:r.value,inTangent:r.inTangent,outTangent:r.outTangent,interpolation:r.interpolation};n.splice(0,0,s)}if(o.framen&&this._speedRatio>0&&(this._speedRatio=-t);return this._isStarted=!0,this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this},e.prototype.pause=function(){if(!this._isStarted)return this;this._isPaused=!0;for(var e=0;e-1&&this._scene.animationGroups.splice(e,1),this.onAnimationEndObservable.clear(),this.onAnimationGroupEndObservable.clear(),this.onAnimationGroupPauseObservable.clear(),this.onAnimationGroupPlayObservable.clear(),this.onAnimationLoopObservable.clear()},e.prototype._checkAnimationGroupEnded=function(e){var t=this._animatables.indexOf(e);t>-1&&this._animatables.splice(t,1),0===this._animatables.length&&(this._isStarted=!1,this.onAnimationGroupEndObservable.notifyObservers(this))},e.prototype.clone=function(t,i){for(var n=new e(t||this.name,this._scene),r=0,o=this._targetedAnimations;r=.5?.5*(1-this.easeInCore(2*(1-t)))+.5:.5*this.easeInCore(2*t)},e.EASINGMODE_EASEIN=0,e.EASINGMODE_EASEOUT=1,e.EASINGMODE_EASEINOUT=2,e}(),ee=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.easeInCore=function(e){return e=Math.max(0,Math.min(1,e)),1-Math.sqrt(1-e*e)},t}($),te=function(e){function t(t){void 0===t&&(t=1);var i=e.call(this)||this;return i.amplitude=t,i}return l.d(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.amplitude);return Math.pow(e,3)-e*t*Math.sin(3.141592653589793*e)},t}($),ie=function(e){function t(t,i){void 0===t&&(t=3),void 0===i&&(i=2);var n=e.call(this)||this;return n.bounces=t,n.bounciness=i,n}return l.d(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.bounces),i=this.bounciness;i<=1&&(i=1.001);var n=Math.pow(i,t),r=1-i,o=(1-n)/r+.5*n,s=e*o,a=Math.log(-s*(1-i)+1)/Math.log(i),c=Math.floor(a),l=c+1,u=(1-Math.pow(i,c))/(r*o),h=.5*(u+(1-Math.pow(i,l))/(r*o)),d=e-h,f=h-u;return-Math.pow(1/i,t-c)/(f*f)*(d-f)*(d+f)},t}($),ne=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.easeInCore=function(e){return e*e*e},t}($),re=function(e){function t(t,i){void 0===t&&(t=3),void 0===i&&(i=3);var n=e.call(this)||this;return n.oscillations=t,n.springiness=i,n}return l.d(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.oscillations),i=Math.max(0,this.springiness);return(0==i?e:(Math.exp(i*e)-1)/(Math.exp(i)-1))*Math.sin((6.283185307179586*t+1.5707963267948966)*e)},t}($),oe=function(e){function t(t){void 0===t&&(t=2);var i=e.call(this)||this;return i.exponent=t,i}return l.d(t,e),t.prototype.easeInCore=function(e){return this.exponent<=0?e:(Math.exp(this.exponent*e)-1)/(Math.exp(this.exponent)-1)},t}($),se=function(e){function t(t){void 0===t&&(t=2);var i=e.call(this)||this;return i.power=t,i}return l.d(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.power);return Math.pow(e,t)},t}($),ae=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.easeInCore=function(e){return e*e},t}($),ce=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.easeInCore=function(e){return e*e*e*e},t}($),le=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.easeInCore=function(e){return e*e*e*e*e},t}($),ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.easeInCore=function(e){return 1-Math.sin(1.5707963267948966*(1-e))},t}($),he=function(e){function t(t,i,n,r){void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),void 0===r&&(r=1);var o=e.call(this)||this;return o.x1=t,o.y1=i,o.x2=n,o.y2=r,o}return l.d(t,e),t.prototype.easeInCore=function(e){return o.d.Interpolate(e,this.x1,this.y1,this.x2,this.y2)},t}($),de=function(){function e(e,t,i){this.frame=e,this.action=t,this.onlyOnce=i,this.isDone=!1}return e.prototype._clone=function(){return new e(this.frame,this.action,this.onlyOnce)},e}(),fe=i(11),pe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t}(n.a),_e=function(e){function t(t){var i=e.call(this)||this;return i.scene=t,i.sounds=[],i.effectLayers=[],i.layers=[],i.lensFlareSystems=[],i.proceduralTextures=[],i.reflectionProbes=[],i}return l.d(t,e),t.prototype.addAllToScene=function(){var e=this;this.cameras.forEach(function(t){e.scene.addCamera(t)}),this.lights.forEach(function(t){e.scene.addLight(t)}),this.meshes.forEach(function(t){e.scene.addMesh(t)}),this.skeletons.forEach(function(t){e.scene.addSkeleton(t)}),this.animations.forEach(function(t){e.scene.addAnimation(t)}),this.animationGroups.forEach(function(t){e.scene.addAnimationGroup(t)}),this.multiMaterials.forEach(function(t){e.scene.addMultiMaterial(t)}),this.materials.forEach(function(t){e.scene.addMaterial(t)}),this.morphTargetManagers.forEach(function(t){e.scene.addMorphTargetManager(t)}),this.geometries.forEach(function(t){e.scene.addGeometry(t)}),this.transformNodes.forEach(function(t){e.scene.addTransformNode(t)}),this.actionManagers.forEach(function(t){e.scene.addActionManager(t)}),this.textures.forEach(function(t){e.scene.addTexture(t)}),this.reflectionProbes.forEach(function(t){e.scene.addReflectionProbe(t)}),this.environmentTexture&&(this.scene.environmentTexture=this.environmentTexture);for(var t=0,i=this.scene._serializableComponents;t0&&(h=!0,this._soundLoaded(i));break;case"String":u.push(i);case"Array":0===u.length&&(u=i);for(var d=0;d0&&(this._htmlAudioElement.currentTime=0)):this._streamingSource.disconnect(),this.isPlaying=!1;else if(ge.b.audioEngine.audioContext&&this._soundSource){var i=e?ge.b.audioEngine.audioContext.currentTime+e:ge.b.audioEngine.audioContext.currentTime;this._soundSource.stop(i),this._soundSource.onended=function(){t.isPlaying=!1},this.isPaused||(this._startOffset=0)}},e.prototype.pause=function(){this.isPlaying&&(this.isPaused=!0,this._streaming?this._htmlAudioElement?this._htmlAudioElement.pause():this._streamingSource.disconnect():ge.b.audioEngine.audioContext&&(this.stop(0),this._startOffset+=ge.b.audioEngine.audioContext.currentTime-this._startTime))},e.prototype.setVolume=function(e,t){ge.b.audioEngine.canUseWebAudio&&this._soundGain&&(t&&ge.b.audioEngine.audioContext?(this._soundGain.gain.cancelScheduledValues(ge.b.audioEngine.audioContext.currentTime),this._soundGain.gain.setValueAtTime(this._soundGain.gain.value,ge.b.audioEngine.audioContext.currentTime),this._soundGain.gain.linearRampToValueAtTime(e,ge.b.audioEngine.audioContext.currentTime+t)):this._soundGain.gain.value=e),this._volume=e},e.prototype.setPlaybackRate=function(e){this._playbackRate=e,this.isPlaying&&(this._streaming&&this._htmlAudioElement?this._htmlAudioElement.playbackRate=this._playbackRate:this._soundSource&&(this._soundSource.playbackRate.value=this._playbackRate))},e.prototype.getVolume=function(){return this._volume},e.prototype.attachToMesh=function(e){var t=this;this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null),this._connectedTransformNode=e,this.spatialSound||(this.spatialSound=!0,this._createSpatialParameters(),this.isPlaying&&this.loop&&(this.stop(),this.play())),this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),this._registerFunc=function(e){return t._onRegisterAfterWorldMatrixUpdate(e)},this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc)},e.prototype.detachFromMesh=function(){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null,this._connectedTransformNode=null)},e.prototype._onRegisterAfterWorldMatrixUpdate=function(e){if(e.getBoundingInfo){var t=e;if(this._positionInEmitterSpace)t.worldMatrixFromCache.invertToRef(o.t.Matrix[0]),this.setPosition(o.t.Matrix[0].getTranslation());else{var i=t.getBoundingInfo();this.setPosition(i.boundingSphere.centerWorld)}ge.b.audioEngine.canUseWebAudio&&this._isDirectional&&this.isPlaying&&this._updateDirection()}},e.prototype.clone=function(){var t=this;if(this._streaming)return null;var i=function(){t._isReadyToPlay?(r._audioBuffer=t.getAudioBuffer(),r._isReadyToPlay=!0,r.autoplay&&r.play()):window.setTimeout(i,300)},n={autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,useCustomAttenuation:this.useCustomAttenuation,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel},r=new e(this.name+"_cloned",new ArrayBuffer(0),this._scene,null,n);return this.useCustomAttenuation&&r.setAttenuationFunction(this._customAttenuationFunction),r.setPosition(this._position),r.setPlaybackRate(this._playbackRate),i(),r},e.prototype.getAudioBuffer=function(){return this._audioBuffer},e.prototype.serialize=function(){var e={name:this.name,url:this.name,autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel,playbackRate:this._playbackRate,panningModel:this._panningModel,soundTrackId:this.soundTrackId};return this.spatialSound&&(this._connectedTransformNode&&(e.connectedMeshId=this._connectedTransformNode.id),e.position=this._position.asArray(),e.refDistance=this.refDistance,e.distanceModel=this.distanceModel,e.isDirectional=this._isDirectional,e.localDirectionToMesh=this._localDirection.asArray(),e.coneInnerAngle=this._coneInnerAngle,e.coneOuterAngle=this._coneOuterAngle,e.coneOuterGain=this._coneOuterGain),e},e.Parse=function(t,i,n,r){var s,a=t.name;s=t.url?n+t.url:n+a;var c,l={autoplay:t.autoplay,loop:t.loop,volume:t.volume,spatialSound:t.spatialSound,maxDistance:t.maxDistance,rolloffFactor:t.rolloffFactor,refDistance:t.refDistance,distanceModel:t.distanceModel,playbackRate:t.playbackRate};if(r){var u=function(){r._isReadyToPlay?(c._audioBuffer=r.getAudioBuffer(),c._isReadyToPlay=!0,c.autoplay&&c.play()):window.setTimeout(u,300)};c=new e(a,new ArrayBuffer(0),i,null,l),u()}else c=new e(a,s,i,function(){i._removePendingData(c)},l),i._addPendingData(c);if(t.position){var h=o.x.FromArray(t.position);c.setPosition(h)}if(t.isDirectional&&(c.setDirectionalCone(t.coneInnerAngle||360,t.coneOuterAngle||360,t.coneOuterGain||0),t.localDirectionToMesh)){var d=o.x.FromArray(t.localDirectionToMesh);c.setLocalDirectionToMesh(d)}if(t.connectedMeshId){var f=i.getMeshByID(t.connectedMeshId);f&&c.attachToMesh(f)}return c},e._SceneComponentInitialization=function(e){throw be.a.WarnImport("AudioSceneComponent")},e}(),Ee=function(){function e(e,t){void 0===t&&(t={}),this.id=-1,this._isMainTrack=!1,this._isInitialized=!1,this._scene=e,this.soundCollection=new Array,this._options=t,!this._isMainTrack&&this._scene.soundTracks&&(this._scene.soundTracks.push(this),this.id=this._scene.soundTracks.length-1)}return e.prototype._initializeSoundTrackAudioGraph=function(){ge.b.audioEngine.canUseWebAudio&&ge.b.audioEngine.audioContext&&(this._outputAudioNode=ge.b.audioEngine.audioContext.createGain(),this._outputAudioNode.connect(ge.b.audioEngine.masterGain),this._options&&(this._options.volume&&(this._outputAudioNode.gain.value=this._options.volume),this._options.mainTrack&&(this._isMainTrack=this._options.mainTrack)),this._isInitialized=!0)},e.prototype.dispose=function(){if(ge.b.audioEngine&&ge.b.audioEngine.canUseWebAudio){for(this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas();this.soundCollection.length;)this.soundCollection[0].dispose();this._outputAudioNode&&this._outputAudioNode.disconnect(),this._outputAudioNode=null}},e.prototype.AddSound=function(e){this._isInitialized||this._initializeSoundTrackAudioGraph(),ge.b.audioEngine.canUseWebAudio&&this._outputAudioNode&&e.connectToSoundTrackAudioNode(this._outputAudioNode),e.soundTrackId&&(-1===e.soundTrackId?this._scene.mainSoundTrack.RemoveSound(e):this._scene.soundTracks&&this._scene.soundTracks[e.soundTrackId].RemoveSound(e)),this.soundCollection.push(e),e.soundTrackId=this.id},e.prototype.RemoveSound=function(e){var t=this.soundCollection.indexOf(e);-1!==t&&this.soundCollection.splice(t,1)},e.prototype.setVolume=function(e){ge.b.audioEngine.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.gain.value=e)},e.prototype.switchPanningModelToHRTF=function(){if(ge.b.audioEngine.canUseWebAudio)for(var e=0;e0?e.activeCameras[0]:e.activeCamera)&&i.audioContext){i.audioContext.listener.setPosition(t.position.x,t.position.y,t.position.z),t.rigCameras&&t.rigCameras.length>0&&(t=t.rigCameras[0]);var n,r=o.j.Invert(t.getViewMatrix()),s=o.x.TransformNormal(new o.x(0,0,-1),r);for(s.normalize(),isNaN(s.x)||isNaN(s.y)||isNaN(s.z)||i.audioContext.listener.setOrientation(s.x,s.y,s.z,0,1,0),n=0;n0?1/r:0,c=0;c0},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(e){var t=this;this._attachedCamera=e;var i=this._attachedCamera.getScene();this._onPrePointerObservableObserver=i.onPrePointerObservable.add(function(e){e.type!==Pe.a.POINTERDOWN?e.type===Pe.a.POINTERUP&&(t._isPointerDown=!1):t._isPointerDown=!0}),this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add(function(){var e=X.a.Now,i=0;null!=t._lastFrameTime&&(i=e-t._lastFrameTime),t._lastFrameTime=e,t._applyUserInteraction();var n=e-t._lastInteractionTime-t._idleRotationWaitTime,r=Math.max(Math.min(n/t._idleRotationSpinupTime,1),0);t._cameraRotationSpeed=t._idleRotationSpeed*r,t._attachedCamera&&(t._attachedCamera.alpha-=t._cameraRotationSpeed*(i/1e3))})},e.prototype.detach=function(){if(this._attachedCamera){var e=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._attachedCamera=null}},e.prototype._userIsZooming=function(){return!!this._attachedCamera&&0!==this._attachedCamera.inertialRadiusOffset},e.prototype._shouldAnimationStopForInteraction=function(){if(!this._attachedCamera)return!1;var e=!1;return this._lastFrameRadius===this._attachedCamera.radius&&0!==this._attachedCamera.inertialRadiusOffset&&(e=!0),this._lastFrameRadius=this._attachedCamera.radius,this._zoomStopsAnimation?e:this._userIsZooming()},e.prototype._applyUserInteraction=function(){this._userIsMoving()&&!this._shouldAnimationStopForInteraction()&&(this._lastInteractionTime=X.a.Now)},e.prototype._userIsMoving=function(){return!!this._attachedCamera&&(0!==this._attachedCamera.inertialAlphaOffset||0!==this._attachedCamera.inertialBetaOffset||0!==this._attachedCamera.inertialRadiusOffset||0!==this._attachedCamera.inertialPanningX||0!==this._attachedCamera.inertialPanningY||this._isPointerDown)},e}(),Ce=function(){function e(){this.transitionDuration=450,this.lowerRadiusTransitionRange=2,this.upperRadiusTransitionRange=-2,this._autoTransitionRange=!1,this._radiusIsAnimating=!1,this._radiusBounceTransition=null,this._animatables=new Array}return Object.defineProperty(e.prototype,"name",{get:function(){return"Bouncing"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"autoTransitionRange",{get:function(){return this._autoTransitionRange},set:function(e){var t=this;if(this._autoTransitionRange!==e){this._autoTransitionRange=e;var i=this._attachedCamera;i&&(e?this._onMeshTargetChangedObserver=i.onMeshTargetChangedObservable.add(function(e){if(e){e.computeWorldMatrix(!0);var i=e.getBoundingInfo().diagonalLength;t.lowerRadiusTransitionRange=.05*i,t.upperRadiusTransitionRange=.05*i}}):this._onMeshTargetChangedObserver&&i.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver))}},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(e){var t=this;this._attachedCamera=e,this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add(function(){t._attachedCamera&&(t._isRadiusAtLimit(t._attachedCamera.lowerRadiusLimit)&&t._applyBoundRadiusAnimation(t.lowerRadiusTransitionRange),t._isRadiusAtLimit(t._attachedCamera.upperRadiusLimit)&&t._applyBoundRadiusAnimation(t.upperRadiusTransitionRange))})},e.prototype.detach=function(){this._attachedCamera&&(this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null)},e.prototype._isRadiusAtLimit=function(e){return!!this._attachedCamera&&(this._attachedCamera.radius===e&&!this._radiusIsAnimating)},e.prototype._applyBoundRadiusAnimation=function(t){var i=this;if(this._attachedCamera){this._radiusBounceTransition||(e.EasingFunction.setEasingMode(e.EasingMode),this._radiusBounceTransition=B.CreateAnimation("radius",B.ANIMATIONTYPE_FLOAT,60,e.EasingFunction)),this._cachedWheelPrecision=this._attachedCamera.wheelPrecision,this._attachedCamera.wheelPrecision=1/0,this._attachedCamera.inertialRadiusOffset=0,this.stopAllAnimations(),this._radiusIsAnimating=!0;var n=B.TransitionTo("radius",this._attachedCamera.radius+t,this._attachedCamera,this._attachedCamera.getScene(),60,this._radiusBounceTransition,this.transitionDuration,function(){return i._clearAnimationLocks()});n&&this._animatables.push(n)}},e.prototype._clearAnimationLocks=function(){this._radiusIsAnimating=!1,this._attachedCamera&&(this._attachedCamera.wheelPrecision=this._cachedWheelPrecision)},e.prototype.stopAllAnimations=function(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0].onAnimationEnd=null,this._animatables[0].stop(),this._animatables.shift()},e.EasingFunction=new te(.3),e.EasingMode=$.EASINGMODE_EASEOUT,e}(),Me=function(){function e(){this._mode=e.FitFrustumSidesMode,this._radiusScale=1,this._positionScale=.5,this._defaultElevation=.3,this._elevationReturnTime=1500,this._elevationReturnWaitTime=1e3,this._zoomStopsAnimation=!1,this._framingTime=1500,this.autoCorrectCameraLimitsAndSensibility=!0,this._isPointerDown=!1,this._lastInteractionTime=-1/0,this._animatables=new Array,this._betaIsAnimating=!1}return Object.defineProperty(e.prototype,"name",{get:function(){return"Framing"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mode",{get:function(){return this._mode},set:function(e){this._mode=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radiusScale",{get:function(){return this._radiusScale},set:function(e){this._radiusScale=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"positionScale",{get:function(){return this._positionScale},set:function(e){this._positionScale=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultElevation",{get:function(){return this._defaultElevation},set:function(e){this._defaultElevation=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elevationReturnTime",{get:function(){return this._elevationReturnTime},set:function(e){this._elevationReturnTime=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"elevationReturnWaitTime",{get:function(){return this._elevationReturnWaitTime},set:function(e){this._elevationReturnWaitTime=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoomStopsAnimation",{get:function(){return this._zoomStopsAnimation},set:function(e){this._zoomStopsAnimation=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"framingTime",{get:function(){return this._framingTime},set:function(e){this._framingTime=e},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(t){var i=this;this._attachedCamera=t;var n=this._attachedCamera.getScene();e.EasingFunction.setEasingMode(e.EasingMode),this._onPrePointerObservableObserver=n.onPrePointerObservable.add(function(e){e.type!==Pe.a.POINTERDOWN?e.type===Pe.a.POINTERUP&&(i._isPointerDown=!1):i._isPointerDown=!0}),this._onMeshTargetChangedObserver=t.onMeshTargetChangedObservable.add(function(e){e&&i.zoomOnMesh(e)}),this._onAfterCheckInputsObserver=t.onAfterCheckInputsObservable.add(function(){i._applyUserInteraction(),i._maintainCameraAboveGround()})},e.prototype.detach=function(){if(this._attachedCamera){var e=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null}},e.prototype.zoomOnMesh=function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=null),e.computeWorldMatrix(!0);var n=e.getBoundingInfo().boundingBox;this.zoomOnBoundingInfo(n.minimumWorld,n.maximumWorld,t,i)},e.prototype.zoomOnMeshHierarchy=function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=null),e.computeWorldMatrix(!0);var n=e.getHierarchyBoundingVectors(!0);this.zoomOnBoundingInfo(n.min,n.max,t,i)},e.prototype.zoomOnMeshesHierarchy=function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=null);for(var n=new o.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r=new o.x(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),s=0;sl.upperRadiusLimit?l.upperRadiusLimit:c),c):0},e.prototype._maintainCameraAboveGround=function(){var t=this;if(!(this._elevationReturnTime<0)){var i=X.a.Now-this._lastInteractionTime,n=.5*Math.PI-this._defaultElevation,r=.5*Math.PI;if(this._attachedCamera&&!this._betaIsAnimating&&this._attachedCamera.beta>r&&i>=this._elevationReturnWaitTime){this._betaIsAnimating=!0,this.stopAllAnimations(),this._betaTransition||(this._betaTransition=B.CreateAnimation("beta",B.ANIMATIONTYPE_FLOAT,60,e.EasingFunction));var o=B.TransitionTo("beta",n,this._attachedCamera,this._attachedCamera.getScene(),60,this._betaTransition,this._elevationReturnTime,function(){t._clearAnimationLocks(),t.stopAllAnimations()});o&&this._animatables.push(o)}}},e.prototype._getFrustumSlope=function(){var e=this._attachedCamera;if(!e)return o.w.Zero();var t=e.getScene().getEngine().getAspectRatio(e),i=Math.tan(e.fov/2),n=i*t;return new o.w(n,i)},e.prototype._clearAnimationLocks=function(){this._betaIsAnimating=!1},e.prototype._applyUserInteraction=function(){this.isUserIsMoving&&(this._lastInteractionTime=X.a.Now,this.stopAllAnimations(),this._clearAnimationLocks())},e.prototype.stopAllAnimations=function(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0]&&(this._animatables[0].onAnimationEnd=null,this._animatables[0].stop()),this._animatables.shift()},Object.defineProperty(e.prototype,"isUserIsMoving",{get:function(){return!!this._attachedCamera&&(0!==this._attachedCamera.inertialAlphaOffset||0!==this._attachedCamera.inertialBetaOffset||0!==this._attachedCamera.inertialRadiusOffset||0!==this._attachedCamera.inertialPanningX||0!==this._attachedCamera.inertialPanningY||this._isPointerDown)},enumerable:!0,configurable:!0}),e.EasingFunction=new oe,e.EasingMode=$.EASINGMODE_EASEINOUT,e.IgnoreBoundsSizeMode=0,e.FitFrustumSidesMode=1,e}(),Oe=function(){return function(e,t,i,n){void 0===t&&(t=new o.x),void 0===i&&(i=0),void 0===n&&(n=!1),this.direction=e,this.rotatedDirection=t,this.diff=i,this.ignore=n}}(),Ie=function(){function e(e){this.ui=e,this.name="AttachToBoxBehavior",this.distanceAwayFromFace=.15,this.distanceAwayFromBottomOfFace=.15,this._faceVectors=[new Oe(o.x.Up()),new Oe(o.x.Down()),new Oe(o.x.Left()),new Oe(o.x.Right()),new Oe(o.x.Forward()),new Oe(o.x.Forward().scaleInPlace(-1))],this._tmpMatrix=new o.j,this._tmpVector=new o.x,this._zeroVector=o.x.Zero(),this._lookAtTmpMatrix=new o.j}return e.prototype.init=function(){},e.prototype._closestFace=function(e){var t=this;return this._faceVectors.forEach(function(i){t._target.rotationQuaternion||(t._target.rotationQuaternion=o.q.RotationYawPitchRoll(t._target.rotation.y,t._target.rotation.x,t._target.rotation.z)),t._target.rotationQuaternion.toRotationMatrix(t._tmpMatrix),o.x.TransformCoordinatesToRef(i.direction,t._tmpMatrix,i.rotatedDirection),i.diff=o.x.GetAngleBetweenVectors(i.rotatedDirection,e,o.x.Cross(i.rotatedDirection,e))}),this._faceVectors.reduce(function(e,t){return e.ignore?t:t.ignore?e:e.diff1)return e._setAllVisibility(e._ownerNode,1),void(e._hoverValue=e.fadeInTime+e.delay);if(e._ownerNode.visibility<0&&(e._setAllVisibility(e._ownerNode,0),e._hoverValue<0))return void(e._hoverValue=0);setTimeout(e._update,e._millisecondsPerFrame)}}}return Object.defineProperty(e.prototype,"name",{get:function(){return"FadeInOut"},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(e){this._ownerNode=e,this._setAllVisibility(this._ownerNode,0)},e.prototype.detach=function(){this._ownerNode=null},e.prototype.fadeIn=function(e){this._hovered=e,this._update()},e.prototype._setAllVisibility=function(e,t){var i=this;e.visibility=t,e.getChildMeshes().forEach(function(e){i._setAllVisibility(e,t)})},e}(),Le=i(54),we=function(){function e(){this._startDistance=0,this._initialScale=new o.x(0,0,0),this._targetScale=new o.x(0,0,0),this._sceneRenderObserver=null,this._dragBehaviorA=new Le.a({}),this._dragBehaviorA.moveAttached=!1,this._dragBehaviorB=new Le.a({}),this._dragBehaviorB.moveAttached=!1}return Object.defineProperty(e.prototype,"name",{get:function(){return"MultiPointerScale"},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype._getCurrentDistance=function(){return this._dragBehaviorA.lastDragPosition.subtract(this._dragBehaviorB.lastDragPosition).length()},e.prototype.attach=function(e){var t=this;this._ownerNode=e,this._dragBehaviorA.onDragStartObservable.add(function(i){t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging&&(t._dragBehaviorA.currentDraggingPointerID==t._dragBehaviorB.currentDraggingPointerID?t._dragBehaviorA.releaseDrag():(t._initialScale.copyFrom(e.scaling),t._startDistance=t._getCurrentDistance()))}),this._dragBehaviorB.onDragStartObservable.add(function(i){t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging&&(t._dragBehaviorA.currentDraggingPointerID==t._dragBehaviorB.currentDraggingPointerID?t._dragBehaviorB.releaseDrag():(t._initialScale.copyFrom(e.scaling),t._startDistance=t._getCurrentDistance()))}),[this._dragBehaviorA,this._dragBehaviorB].forEach(function(e){e.onDragObservable.add(function(){if(t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging){var e=t._getCurrentDistance()/t._startDistance;t._initialScale.scaleToRef(e,t._targetScale)}})}),e.addBehavior(this._dragBehaviorA),e.addBehavior(this._dragBehaviorB),this._sceneRenderObserver=e.getScene().onBeforeRenderObservable.add(function(){if(t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging){var i=t._targetScale.subtract(e.scaling).scaleInPlace(.1);i.length()>.01&&e.scaling.addInPlace(i)}})},e.prototype.detach=function(){var e=this;this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),[this._dragBehaviorA,this._dragBehaviorB].forEach(function(t){t.onDragStartObservable.clear(),t.onDragObservable.clear(),e._ownerNode.removeBehavior(t)})},e}(),Fe=i(24),Ne=i(21),Be=i(45),Ue=function(){function e(){this._sceneRenderObserver=null,this._targetPosition=new o.x(0,0,0),this._moving=!1,this._startingOrientation=new o.q,this.zDragFactor=3,this.rotateDraggedObject=!0,this.dragging=!1,this.dragDeltaRatio=.2,this.currentDraggingPointerID=-1,this.detachCameraControls=!0,this.onDragStartObservable=new r.c,this.onDragEndObservable=new r.c}return Object.defineProperty(e.prototype,"name",{get:function(){return"SixDofDrag"},enumerable:!0,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(t){var i=this;this._ownerNode=t,this._scene=this._ownerNode.getScene(),e._virtualScene||(e._virtualScene=new W.a(this._scene.getEngine()),e._virtualScene.detachControl(),this._scene.getEngine().scenes.pop());var n=null,r=new o.x(0,0,0);this._virtualOriginMesh=new Fe.a("",e._virtualScene),this._virtualOriginMesh.rotationQuaternion=new o.q,this._virtualDragMesh=new Fe.a("",e._virtualScene),this._virtualDragMesh.rotationQuaternion=new o.q;var s=null;this._pointerObserver=this._scene.onPointerObservable.add(function(e,t){if(e.type==Pe.a.POINTERDOWN){if(!i.dragging&&e.pickInfo&&e.pickInfo.hit&&e.pickInfo.pickedMesh&&e.pickInfo.ray&&(h=e.pickInfo.pickedMesh,i._ownerNode==h||h.isDescendantOf(i._ownerNode))){i._scene.activeCamera&&i._scene.activeCamera.cameraRigMode==Ne.a.RIG_MODE_NONE&&e.pickInfo.ray.origin.copyFrom(i._scene.activeCamera.globalPosition),n=i._ownerNode,Be.a._RemoveAndStorePivotPoint(n),r.copyFrom(e.pickInfo.ray.origin),i._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin),i._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)),i._virtualOriginMesh.removeChild(i._virtualDragMesh),n.computeWorldMatrix(),i._virtualDragMesh.position.copyFrom(n.absolutePosition),n.rotationQuaternion||(n.rotationQuaternion=o.q.RotationYawPitchRoll(n.rotation.y,n.rotation.x,n.rotation.z));var a=n.parent;n.setParent(null),i._virtualDragMesh.rotationQuaternion.copyFrom(n.rotationQuaternion),n.setParent(a),i._virtualOriginMesh.addChild(i._virtualDragMesh),i._targetPosition.copyFrom(i._virtualDragMesh.absolutePosition),i.dragging=!0,i.currentDraggingPointerID=e.event.pointerId,i.detachCameraControls&&i._scene.activeCamera&&!i._scene.activeCamera.leftCamera&&(i._scene.activeCamera.inputs.attachedElement?(s=i._scene.activeCamera.inputs.attachedElement,i._scene.activeCamera.detachControl(i._scene.activeCamera.inputs.attachedElement)):s=null),Be.a._RestorePivotPoint(n),i.onDragStartObservable.notifyObservers({})}}else if(e.type==Pe.a.POINTERUP)i.currentDraggingPointerID==e.event.pointerId&&(i.dragging=!1,i._moving=!1,i.currentDraggingPointerID=-1,n=null,i._virtualOriginMesh.removeChild(i._virtualDragMesh),i.detachCameraControls&&s&&i._scene.activeCamera&&!i._scene.activeCamera.leftCamera&&i._scene.activeCamera.attachControl(s,!0),i.onDragEndObservable.notifyObservers({}));else if(e.type==Pe.a.POINTERMOVE&&i.currentDraggingPointerID==e.event.pointerId&&i.dragging&&e.pickInfo&&e.pickInfo.ray&&n){var c=i.zDragFactor;i._scene.activeCamera&&i._scene.activeCamera.cameraRigMode==Ne.a.RIG_MODE_NONE&&(e.pickInfo.ray.origin.copyFrom(i._scene.activeCamera.globalPosition),c=0);var l=e.pickInfo.ray.origin.subtract(r);r.copyFrom(e.pickInfo.ray.origin);var u=-o.x.Dot(l,e.pickInfo.ray.direction);i._virtualOriginMesh.addChild(i._virtualDragMesh),i._virtualDragMesh.position.z-=i._virtualDragMesh.position.z<1?u*i.zDragFactor:u*c*i._virtualDragMesh.position.z,i._virtualDragMesh.position.z<0&&(i._virtualDragMesh.position.z=0),i._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin),i._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)),i._virtualOriginMesh.removeChild(i._virtualDragMesh),i._targetPosition.copyFrom(i._virtualDragMesh.absolutePosition),n.parent&&o.x.TransformCoordinatesToRef(i._targetPosition,o.j.Invert(n.parent.getWorldMatrix()),i._targetPosition),i._moving||i._startingOrientation.copyFrom(i._virtualDragMesh.rotationQuaternion),i._moving=!0}var h});var a=new o.q;this._sceneRenderObserver=t.getScene().onBeforeRenderObservable.add(function(){if(i.dragging&&i._moving&&n){if(Be.a._RemoveAndStorePivotPoint(n),n.position.addInPlace(i._targetPosition.subtract(n.position).scale(i.dragDeltaRatio)),i.rotateDraggedObject){a.copyFrom(i._startingOrientation),a.x=-a.x,a.y=-a.y,a.z=-a.z,i._virtualDragMesh.rotationQuaternion.multiplyToRef(a,a),o.q.RotationYawPitchRollToRef(a.toEulerAngles("xyz").y,0,0,a),a.multiplyToRef(i._startingOrientation,a);var e=n.parent;(!e||e.scaling&&!e.scaling.isNonUniformWithinEpsilon(.001))&&(n.setParent(null),o.q.SlerpToRef(n.rotationQuaternion,a,i.dragDeltaRatio,n.rotationQuaternion),n.setParent(e))}Be.a._RestorePivotPoint(n)}})},e.prototype.detach=function(){this._scene&&this._scene.onPointerObservable.remove(this._pointerObserver),this._ownerNode&&this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),this._virtualOriginMesh&&this._virtualOriginMesh.dispose(),this._virtualDragMesh&&this._virtualDragMesh.dispose(),this.onDragEndObservable.clear(),this.onDragStartObservable.clear()},e}(),Ve=function(){function e(e,t,i){if(this.targetPosition=o.x.Zero(),this.poleTargetPosition=o.x.Zero(),this.poleTargetLocalOffset=o.x.Zero(),this.poleAngle=0,this.slerpAmount=1,this._bone1Quat=o.q.Identity(),this._bone1Mat=o.j.Identity(),this._bone2Ang=Math.PI,this._maxAngle=Math.PI,this._rightHandedSystem=!1,this._bendAxis=o.x.Right(),this._slerping=!1,this._adjustRoll=0,this._bone2=t,this._bone1=t.getParent(),this._bone1){this.mesh=e;var n=t.getPosition();if(t.getAbsoluteTransform().determinant()>0&&(this._rightHandedSystem=!0,this._bendAxis.x=0,this._bendAxis.y=0,this._bendAxis.z=-1,n.x>n.y&&n.x>n.z&&(this._adjustRoll=.5*Math.PI,this._bendAxis.z=1)),this._bone1.length){var r=this._bone1.getScale(),s=this._bone2.getScale();this._bone1Length=this._bone1.length*r.y*this.mesh.scaling.y,this._bone2Length=this._bone2.length*s.y*this.mesh.scaling.y}else if(this._bone1.children[0]){e.computeWorldMatrix(!0);var a=this._bone2.children[0].getAbsolutePosition(e),c=this._bone2.getAbsolutePosition(e),l=this._bone1.getAbsolutePosition(e);this._bone1Length=o.x.Distance(a,c),this._bone2Length=o.x.Distance(c,l)}this._bone1.getRotationMatrixToRef(o.s.WORLD,e,this._bone1Mat),this.maxAngle=Math.PI,i&&(i.targetMesh&&(this.targetMesh=i.targetMesh,this.targetMesh.computeWorldMatrix(!0)),i.poleTargetMesh?(this.poleTargetMesh=i.poleTargetMesh,this.poleTargetMesh.computeWorldMatrix(!0)):i.poleTargetBone?this.poleTargetBone=i.poleTargetBone:this._bone1.getParent()&&(this.poleTargetBone=this._bone1.getParent()),i.poleTargetLocalOffset&&this.poleTargetLocalOffset.copyFrom(i.poleTargetLocalOffset),i.poleAngle&&(this.poleAngle=i.poleAngle),i.bendAxis&&this._bendAxis.copyFrom(i.bendAxis),i.maxAngle&&(this.maxAngle=i.maxAngle),i.slerpAmount&&(this.slerpAmount=i.slerpAmount))}}return Object.defineProperty(e.prototype,"maxAngle",{get:function(){return this._maxAngle},set:function(e){this._setMaxAngle(e)},enumerable:!0,configurable:!0}),e.prototype._setMaxAngle=function(e){e<0&&(e=0),(e>Math.PI||null==e)&&(e=Math.PI),this._maxAngle=e;var t=this._bone1Length,i=this._bone2Length;this._maxReach=Math.sqrt(t*t+i*i-2*t*i*Math.cos(e))},e.prototype.update=function(){var t=this._bone1;if(t){var i=this.targetPosition,n=this.poleTargetPosition,r=e._tmpMats[0],s=e._tmpMats[1];this.targetMesh&&i.copyFrom(this.targetMesh.getAbsolutePosition()),this.poleTargetBone?this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset,this.mesh,n):this.poleTargetMesh&&o.x.TransformCoordinatesToRef(this.poleTargetLocalOffset,this.poleTargetMesh.getWorldMatrix(),n);var a=e._tmpVecs[0],c=e._tmpVecs[1],l=e._tmpVecs[2],u=e._tmpVecs[3],h=e._tmpVecs[4],d=e._tmpQuat;t.getAbsolutePositionToRef(this.mesh,a),n.subtractToRef(a,h),0==h.x&&0==h.y&&0==h.z?h.y=1:h.normalize(),i.subtractToRef(a,u),u.normalize(),o.x.CrossToRef(u,h,c),c.normalize(),o.x.CrossToRef(u,c,l),l.normalize(),o.j.FromXYZAxesToRef(l,u,c,r);var f=this._bone1Length,p=this._bone2Length,_=o.x.Distance(a,i);this._maxReach>0&&(_=Math.min(this._maxReach,_));var g=(p*p+_*_-f*f)/(2*p*_),m=(_*_+f*f-p*p)/(2*_*f);g>1&&(g=1),m>1&&(m=1),g<-1&&(g=-1),m<-1&&(m=-1);var v=Math.acos(g),y=Math.acos(m),b=-v-y;if(this._rightHandedSystem)o.j.RotationYawPitchRollToRef(0,0,this._adjustRoll,s),s.multiplyToRef(r,r),o.j.RotationAxisToRef(this._bendAxis,y,s),s.multiplyToRef(r,r);else{var T=e._tmpVecs[5];T.copyFrom(this._bendAxis),T.x*=-1,o.j.RotationAxisToRef(T,-y,s),s.multiplyToRef(r,r)}this.poleAngle&&(o.j.RotationAxisToRef(u,this.poleAngle,s),r.multiplyToRef(s,r)),this._bone1&&(this.slerpAmount<1?(this._slerping||o.q.FromRotationMatrixToRef(this._bone1Mat,this._bone1Quat),o.q.FromRotationMatrixToRef(r,d),o.q.SlerpToRef(this._bone1Quat,d,this.slerpAmount,this._bone1Quat),b=this._bone2Ang*(1-this.slerpAmount)+b*this.slerpAmount,this._bone1.setRotationQuaternion(this._bone1Quat,o.s.WORLD,this.mesh),this._slerping=!0):(this._bone1.setRotationMatrix(r,o.s.WORLD,this.mesh),this._bone1Mat.copyFrom(r),this._slerping=!1)),this._bone2.setAxisAngle(this._bendAxis,b,o.s.LOCAL),this._bone2Ang=b}},e._tmpVecs=[o.x.Zero(),o.x.Zero(),o.x.Zero(),o.x.Zero(),o.x.Zero(),o.x.Zero()],e._tmpQuat=o.q.Identity(),e._tmpMats=[o.j.Identity(),o.j.Identity()],e}(),Ge=function(){function e(e,t,i,n){if(this.upAxis=o.x.Up(),this.upAxisSpace=o.s.LOCAL,this.adjustYaw=0,this.adjustPitch=0,this.adjustRoll=0,this.slerpAmount=1,this._boneQuat=o.q.Identity(),this._slerping=!1,this._firstFrameSkipped=!1,this._fowardAxis=o.x.Forward(),this.mesh=e,this.bone=t,this.target=i,n&&(n.adjustYaw&&(this.adjustYaw=n.adjustYaw),n.adjustPitch&&(this.adjustPitch=n.adjustPitch),n.adjustRoll&&(this.adjustRoll=n.adjustRoll),null!=n.maxYaw?this.maxYaw=n.maxYaw:this.maxYaw=Math.PI,null!=n.minYaw?this.minYaw=n.minYaw:this.minYaw=-Math.PI,null!=n.maxPitch?this.maxPitch=n.maxPitch:this.maxPitch=Math.PI,null!=n.minPitch?this.minPitch=n.minPitch:this.minPitch=-Math.PI,null!=n.slerpAmount&&(this.slerpAmount=n.slerpAmount),null!=n.upAxis&&(this.upAxis=n.upAxis),null!=n.upAxisSpace&&(this.upAxisSpace=n.upAxisSpace),null!=n.yawAxis||null!=n.pitchAxis)){var r=o.c.Y,s=o.c.X;null!=n.yawAxis&&(r=n.yawAxis.clone()).normalize(),null!=n.pitchAxis&&(s=n.pitchAxis.clone()).normalize();var a=o.x.Cross(s,r);this._transformYawPitch=o.j.Identity(),o.j.FromXYZAxesToRef(s,r,a,this._transformYawPitch),this._transformYawPitchInv=this._transformYawPitch.clone(),this._transformYawPitch.invert()}t.getParent()||this.upAxisSpace!=o.s.BONE||(this.upAxisSpace=o.s.LOCAL)}return Object.defineProperty(e.prototype,"minYaw",{get:function(){return this._minYaw},set:function(e){this._minYaw=e,this._minYawSin=Math.sin(e),this._minYawCos=Math.cos(e),null!=this._maxYaw&&(this._midYawConstraint=.5*this._getAngleDiff(this._minYaw,this._maxYaw)+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxYaw",{get:function(){return this._maxYaw},set:function(e){this._maxYaw=e,this._maxYawSin=Math.sin(e),this._maxYawCos=Math.cos(e),null!=this._minYaw&&(this._midYawConstraint=.5*this._getAngleDiff(this._minYaw,this._maxYaw)+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minPitch",{get:function(){return this._minPitch},set:function(e){this._minPitch=e,this._minPitchTan=Math.tan(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxPitch",{get:function(){return this._maxPitch},set:function(e){this._maxPitch=e,this._maxPitchTan=Math.tan(e)},enumerable:!0,configurable:!0}),e.prototype.update=function(){if(this.slerpAmount<1&&!this._firstFrameSkipped)this._firstFrameSkipped=!0;else{var t=this.bone,i=e._tmpVecs[0];t.getAbsolutePositionToRef(this.mesh,i);var n=this.target,r=e._tmpMats[0],s=e._tmpMats[1],a=this.mesh,c=t.getParent(),l=e._tmpVecs[1];l.copyFrom(this.upAxis),this.upAxisSpace==o.s.BONE&&c?(this._transformYawPitch&&o.x.TransformCoordinatesToRef(l,this._transformYawPitchInv,l),c.getDirectionToRef(l,this.mesh,l)):this.upAxisSpace==o.s.LOCAL&&(a.getDirectionToRef(l,l),1==a.scaling.x&&1==a.scaling.y&&1==a.scaling.z||l.normalize());var u=!1,h=!1;if(this._maxYaw==Math.PI&&this._minYaw==-Math.PI||(u=!0),this._maxPitch==Math.PI&&this._minPitch==-Math.PI||(h=!0),u||h){var d=e._tmpMats[2],f=e._tmpMats[3];if(this.upAxisSpace==o.s.BONE&&1==l.y&&c)c.getRotationMatrixToRef(o.s.WORLD,this.mesh,d);else if(this.upAxisSpace!=o.s.LOCAL||1!=l.y||c){(_=e._tmpVecs[2]).copyFrom(this._fowardAxis),this._transformYawPitch&&o.x.TransformCoordinatesToRef(_,this._transformYawPitchInv,_),c?c.getDirectionToRef(_,this.mesh,_):a.getDirectionToRef(_,_);var p=o.x.Cross(l,_);p.normalize();var _=o.x.Cross(p,l);o.j.FromXYZAxesToRef(p,l,_,d)}else d.copyFrom(a.getWorldMatrix());d.invertToRef(f);var g=null;if(h){var m=e._tmpVecs[3];n.subtractToRef(i,m),o.x.TransformCoordinatesToRef(m,f,m),g=Math.sqrt(m.x*m.x+m.z*m.z);var v=Math.atan2(m.y,g),y=v;v>this._maxPitch?(m.y=this._maxPitchTan*g,y=this._maxPitch):vthis._maxYaw||bMath.PI?this._isAngleBetween(b,this._maxYaw,this._midYawConstraint)?(m.z=this._maxYawCos*g,m.x=this._maxYawSin*g,T=this._maxYaw):this._isAngleBetween(b,this._midYawConstraint,this._minYaw)&&(m.z=this._minYawCos*g,m.x=this._minYawSin*g,T=this._minYaw):b>this._maxYaw?(m.z=this._maxYawCos*g,m.x=this._maxYawSin*g,T=this._maxYaw):bMath.PI){var E=e._tmpVecs[8];E.copyFrom(o.c.Z),this._transformYawPitch&&o.x.TransformCoordinatesToRef(E,this._transformYawPitchInv,E);var A=e._tmpMats[4];this._boneQuat.toRotationMatrix(A),this.mesh.getWorldMatrix().multiplyToRef(A,A),o.x.TransformCoordinatesToRef(E,A,E),o.x.TransformCoordinatesToRef(E,f,E);var x=Math.atan2(E.x,E.z);if(this._getAngleBetween(x,b)>this._getAngleBetween(x,this._midYawConstraint)){null==g&&(g=Math.sqrt(m.x*m.x+m.z*m.z));var R=this._getAngleBetween(x,this._maxYaw);this._getAngleBetween(x,this._minYaw)Math.PI?i-=2*Math.PI:i<-Math.PI&&(i+=2*Math.PI),i},e.prototype._getAngleBetween=function(e,t){var i=0;return(i=(e=(e%=2*Math.PI)<0?e+2*Math.PI:e)<(t=(t%=2*Math.PI)<0?t+2*Math.PI:t)?t-e:e-t)>Math.PI&&(i=2*Math.PI-i),i},e.prototype._isAngleBetween=function(e,t,i){if(e=(e%=2*Math.PI)<0?e+2*Math.PI:e,(t=(t%=2*Math.PI)<0?t+2*Math.PI:t)<(i=(i%=2*Math.PI)<0?i+2*Math.PI:i)){if(e>t&&ei&&e>v,b=0;b<6;b++){var T=m[v][b];g&&(T=d._convertRGBtoRGBATextureData(T,y,y,r)),f.texImage2D(b,v,_,y,y,0,u,l,T)}d._bindTextureDirectly(f.TEXTURE_CUBE_MAP,null)}else d.updateRawCubeTexture(p,o,n,r,h);p.isReady=!0,t._removePendingData(p),c&&c()}}(e)},void 0,t.offlineProvider,!0,function(e,i){t._removePendingData(p),l&&e&&l(e.status+" "+e.statusText,i)}),p},ge.b.prototype.createRawTexture3D=function(e,t,i,n,r,o,s,a,c,l){void 0===c&&(c=null),void 0===l&&(l=ge.b.TEXTURETYPE_UNSIGNED_INT);var u=new ze.a(this,ze.a.DATASOURCE_RAW3D);u.baseWidth=t,u.baseHeight=i,u.baseDepth=n,u.width=t,u.height=i,u.depth=n,u.format=r,u.type=l,u.generateMipMaps=o,u.samplingMode=a,u.is3D=!0,this._doNotHandleContextLost||(u._bufferView=e),this.updateRawTexture3D(u,e,r,s,c,l),this._bindTextureDirectly(this._gl.TEXTURE_3D,u,!0);var h=this._getSamplingParameters(a,o);return this._gl.texParameteri(this._gl.TEXTURE_3D,this._gl.TEXTURE_MAG_FILTER,h.mag),this._gl.texParameteri(this._gl.TEXTURE_3D,this._gl.TEXTURE_MIN_FILTER,h.min),o&&this._gl.generateMipmap(this._gl.TEXTURE_3D),this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._internalTexturesCache.push(u),u},ge.b.prototype.updateRawTexture3D=function(e,t,i,n,r,o){void 0===r&&(r=null),void 0===o&&(o=ge.b.TEXTURETYPE_UNSIGNED_INT);var s=this._getWebGLTextureType(o),a=this._getInternalFormat(i),c=this._getRGBABufferInternalSizedFormat(o,i);this._bindTextureDirectly(this._gl.TEXTURE_3D,e,!0),this._unpackFlipY(void 0===n||!!n),this._doNotHandleContextLost||(e._bufferView=t,e.format=i,e.invertY=n,e._compression=r),e.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),r&&t?this._gl.compressedTexImage3D(this._gl.TEXTURE_3D,0,this.getCaps().s3tc[r],e.width,e.height,e.depth,0,t):this._gl.texImage3D(this._gl.TEXTURE_3D,0,c,e.width,e.height,e.depth,0,a,s,t),e.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_3D),this._bindTextureDirectly(this._gl.TEXTURE_3D,null),e.isReady=!0};var je=function(e){function t(t,i,n,r,o,s,a,c,l){void 0===s&&(s=!0),void 0===a&&(a=!1),void 0===c&&(c=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===l&&(l=_.a.TEXTURETYPE_UNSIGNED_INT);var u=e.call(this,null,o,!s,a)||this;return u.format=r,u._engine=o.getEngine(),u._texture=o.getEngine().createRawTexture(t,i,n,r,s,a,c,null,l),u.wrapU=ke.a.CLAMP_ADDRESSMODE,u.wrapV=ke.a.CLAMP_ADDRESSMODE,u}return l.d(t,e),t.prototype.update=function(e){this._engine.updateRawTexture(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type)},t.CreateLuminanceTexture=function(e,i,n,r,o,s,a){return void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===a&&(a=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,i,n,_.a.TEXTUREFORMAT_LUMINANCE,r,o,s,a)},t.CreateLuminanceAlphaTexture=function(e,i,n,r,o,s,a){return void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===a&&(a=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,i,n,_.a.TEXTUREFORMAT_LUMINANCE_ALPHA,r,o,s,a)},t.CreateAlphaTexture=function(e,i,n,r,o,s,a){return void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===a&&(a=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,i,n,_.a.TEXTUREFORMAT_ALPHA,r,o,s,a)},t.CreateRGBTexture=function(e,i,n,r,o,s,a,c){return void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===a&&(a=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===c&&(c=_.a.TEXTURETYPE_UNSIGNED_INT),new t(e,i,n,_.a.TEXTUREFORMAT_RGB,r,o,s,a,c)},t.CreateRGBATexture=function(e,i,n,r,o,s,a,c){return void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===a&&(a=_.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===c&&(c=_.a.TEXTURETYPE_UNSIGNED_INT),new t(e,i,n,_.a.TEXTUREFORMAT_RGBA,r,o,s,a,c)},t.CreateRTexture=function(e,i,n,r,o,s,a,c){return void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===a&&(a=ke.a.TRILINEAR_SAMPLINGMODE),void 0===c&&(c=_.a.TEXTURETYPE_FLOAT),new t(e,i,n,_.a.TEXTUREFORMAT_R,r,o,s,a,c)},t}(ke.a),He=function(){function e(e,t,i){this.name=e,this.id=t,this.bones=new Array,this.needInitialSkinMatrix=!1,this.overrideMesh=null,this._isDirty=!0,this._meshesWithPoseMatrix=new Array,this._identity=o.j.Identity(),this._ranges={},this._lastAbsoluteTransformsUpdateId=-1,this._canUseTextureForBones=!1,this._uniqueId=0,this._numBonesWithLinkedTransformNode=0,this._hasWaitingData=null,this.doNotSerialize=!1,this._useTextureToStoreBoneMatrices=!0,this._animationPropertiesOverride=null,this.onBeforeComputeObservable=new r.c,this.bones=[],this._scene=i||P.a.LastCreatedScene,this._uniqueId=this._scene.getUniqueId(),this._scene.addSkeleton(this),this._isDirty=!0;var n=this._scene.getEngine().getCaps();this._canUseTextureForBones=n.textureFloat&&n.maxVertexTextureImageUnits>0}return Object.defineProperty(e.prototype,"useTextureToStoreBoneMatrices",{get:function(){return this._useTextureToStoreBoneMatrices},set:function(e){this._useTextureToStoreBoneMatrices=e,this._markAsDirty()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationPropertiesOverride",{get:function(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride},set:function(e){this._animationPropertiesOverride=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isUsingTextureForMatrices",{get:function(){return this.useTextureToStoreBoneMatrices&&this._canUseTextureForBones&&!this.needInitialSkinMatrix},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"uniqueId",{get:function(){return this._uniqueId},enumerable:!0,configurable:!0}),e.prototype.getClassName=function(){return"Skeleton"},e.prototype.getChildren=function(){return this.bones.filter(function(e){return!e.getParent()})},e.prototype.getTransformMatrices=function(e){return this.needInitialSkinMatrix&&e._bonesTransformMatrices?e._bonesTransformMatrices:(this._transformMatrices||this.prepare(),this._transformMatrices)},e.prototype.getTransformMatrixTexture=function(){return this._transformMatrixTexture},e.prototype.getScene=function(){return this._scene},e.prototype.toString=function(e){var t="Name: "+this.name+", nBones: "+this.bones.length;if(t+=", nAnimationRanges: "+(this._ranges?Object.keys(this._ranges).length:"none"),e){t+=", Ranges: {";var i=!0;for(var n in this._ranges)i&&(t+=", ",i=!1),t+=n;t+="}"}return t},e.prototype.getBoneIndexByName=function(e){for(var t=0,i=this.bones.length;t-1&&this._meshesWithPoseMatrix.splice(t,1)},e.prototype._computeTransformMatrices=function(e,t){this.onBeforeComputeObservable.notifyObservers(this);for(var i=0;i0)for(var e=0,t=this.bones;e0&&(r.animation=i.animations[0].serialize()),e.ranges=[],this._ranges){var s=this._ranges[o];if(s){var a={};a.name=o,a.from=s.from,a.to=s.to,e.ranges.push(a)}}}return e},e.Parse=function(t,i){var n,r=new e(t.name,t.id,i);for(t.dimensionsAtRest&&(r.dimensionsAtRest=o.x.FromArray(t.dimensionsAtRest)),r.needInitialSkinMatrix=t.needInitialSkinMatrix,n=0;n-1&&(a=r.bones[s.parentBoneIndex]);var c=s.rest?o.j.FromArray(s.rest):null,l=new K(s.name,r,a,o.j.FromArray(s.matrix),c);void 0!==s.id&&null!==s.id&&(l.id=s.id),s.length&&(l.length=s.length),s.metadata&&(l.metadata=s.metadata),s.animation&&l.animations.push(B.Parse(s.animation)),void 0!==s.linkedTransformNodeId&&null!==s.linkedTransformNodeId&&(r._hasWaitingData=!0,l._waitingTransformNodeId=s.linkedTransformNodeId)}if(t.ranges)for(n=0;n0&&(e=this._meshesWithPoseMatrix[0].getPoseMatrix()),e},e.prototype.sortBones=function(){for(var e=new Array,t=new Array(this.bones.length),i=0;i=2&&(this._leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]}),this.browserGamepad.axes.length>=4&&(this._rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})}return Object.defineProperty(e.prototype,"isConnected",{get:function(){return this._isConnected},enumerable:!0,configurable:!0}),e.prototype.onleftstickchanged=function(e){this._onleftstickchanged=e},e.prototype.onrightstickchanged=function(e){this._onrightstickchanged=e},Object.defineProperty(e.prototype,"leftStick",{get:function(){return this._leftStick},set:function(e){!this._onleftstickchanged||this._leftStick.x===e.x&&this._leftStick.y===e.y||this._onleftstickchanged(e),this._leftStick=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rightStick",{get:function(){return this._rightStick},set:function(e){!this._onrightstickchanged||this._rightStick.x===e.x&&this._rightStick.y===e.y||this._onrightstickchanged(e),this._rightStick=e},enumerable:!0,configurable:!0}),e.prototype.update=function(){this._leftStick&&(this.leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]},this._invertLeftStickY&&(this.leftStick.y*=-1)),this._rightStick&&(this.rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})},e.prototype.dispose=function(){},e.GAMEPAD=0,e.GENERIC=1,e.XBOX=2,e.POSE_ENABLED=3,e}(),Qe=function(e){function t(t,i,n){var o=e.call(this,t,i,n)||this;return o.onButtonDownObservable=new r.c,o.onButtonUpObservable=new r.c,o.type=Ke.GENERIC,o._buttons=new Array(n.buttons.length),o}return l.d(t,e),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype._setButtonValue=function(e,t,i){return e!==t&&(1===e&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),0===e&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype.update=function(){e.prototype.update.call(this);for(var t=0;t.005&&(e.inertialAlphaOffset+=i)}if(0!=t.y){var n=t.y/this.gamepadRotationSensibility;0!=n&&Math.abs(n)>.005&&(e.inertialBetaOffset+=n)}}var r=this.gamepad.leftStick;if(r&&0!=r.y){var o=r.y/this.gamepadMoveSensibility;0!=o&&Math.abs(o)>.005&&(this.camera.inertialRadiusOffset-=o)}}},e.prototype.getClassName=function(){return"ArcRotateCameraGamepadInput"},e.prototype.getSimpleName=function(){return"gamepad"},l.c([Object(L.c)()],e.prototype,"gamepadRotationSensibility",void 0),l.c([Object(L.c)()],e.prototype,"gamepadMoveSensibility",void 0),e}();We.ArcRotateCameraGamepadInput=qe;var Ze=i(51),Je=function(){function e(){this.keysUp=[38],this.keysDown=[40],this.keysLeft=[37],this.keysRight=[39],this.keysReset=[220],this.panningSensibility=50,this.zoomingSensibility=25,this.useAltToZoom=!0,this.angularSpeed=.01,this._keys=new Array}return e.prototype.attachControl=function(e,t){var i=this;this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(function(){i._keys=[]}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(function(e){var n,r=e.event;r.metaKey||(e.type===Ze.a.KEYDOWN?(i._ctrlPressed=r.ctrlKey,i._altPressed=r.altKey,(-1!==i.keysUp.indexOf(r.keyCode)||-1!==i.keysDown.indexOf(r.keyCode)||-1!==i.keysLeft.indexOf(r.keyCode)||-1!==i.keysRight.indexOf(r.keyCode)||-1!==i.keysReset.indexOf(r.keyCode))&&(-1===(n=i._keys.indexOf(r.keyCode))&&i._keys.push(r.keyCode),r.preventDefault&&(t||r.preventDefault()))):-1===i.keysUp.indexOf(r.keyCode)&&-1===i.keysDown.indexOf(r.keyCode)&&-1===i.keysLeft.indexOf(r.keyCode)&&-1===i.keysRight.indexOf(r.keyCode)&&-1===i.keysReset.indexOf(r.keyCode)||((n=i._keys.indexOf(r.keyCode))>=0&&i._keys.splice(n,1),r.preventDefault&&(t||r.preventDefault())))}))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var e=this.camera,t=0;t0?i/(1+this.wheelDeltaPercentage):i*(1+this.wheelDeltaPercentage)},e.prototype.attachControl=function(e,t){var i=this;this._wheel=function(e,n){if(e.type===Pe.a.POINTERWHEEL){var r=e.event,o=0,s=r;if(s.wheelDelta)if(i.wheelDeltaPercentage){if((o=i.computeDeltaFromMouseWheelLegacyEvent(s,i.camera.radius))>0){for(var a=i.camera.radius,c=i.camera.inertialRadiusOffset+o,l=0;l<20&&Math.abs(c)>.001;l++)a-=c,c*=i.camera.inertia;a=D.a.Clamp(a,0,Number.MAX_VALUE),o=i.computeDeltaFromMouseWheelLegacyEvent(s,a)}}else o=s.wheelDelta/(40*i.wheelPrecision);else o=-(r.deltaY||r.detail)/i.wheelPrecision;o&&(i.camera.inertialRadiusOffset+=o),r.preventDefault&&(t||r.preventDefault())}},this._observer=this.camera.getScene().onPointerObservable.add(this._wheel,Pe.a.POINTERWHEEL)},e.prototype.detachControl=function(e){this._observer&&e&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this._wheel=null)},e.prototype.getClassName=function(){return"ArcRotateCameraMouseWheelInput"},e.prototype.getSimpleName=function(){return"mousewheel"},l.c([Object(L.c)()],e.prototype,"wheelPrecision",void 0),l.c([Object(L.c)()],e.prototype,"wheelDeltaPercentage",void 0),e}();We.ArcRotateCameraMouseWheelInput=$e;var et=function(){function e(){this.buttons=[0,1,2]}return e.prototype.attachControl=function(e,t){var i=this,n=this.camera.getEngine(),r=0,o=null;this.pointA=null,this.pointB=null,this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0,this._pointerInput=function(s,a){var c=s.event,l="touch"===c.pointerType;if(!n.isInVRExclusivePointerMode&&(s.type===Pe.a.POINTERMOVE||-1!==i.buttons.indexOf(c.button))){var u=c.srcElement||c.target;if(i._altKey=c.altKey,i._ctrlKey=c.ctrlKey,i._metaKey=c.metaKey,i._shiftKey=c.shiftKey,i._buttonsPressed=c.buttons,n.isPointerLock){var h=c.movementX||c.mozMovementX||c.webkitMovementX||c.msMovementX||0,d=c.movementY||c.mozMovementY||c.webkitMovementY||c.msMovementY||0;i.onTouch(null,h,d),i.pointA=null,i.pointB=null}else if(s.type===Pe.a.POINTERDOWN&&u){try{u.setPointerCapture(c.pointerId)}catch(e){}null===i.pointA?i.pointA={x:c.clientX,y:c.clientY,pointerId:c.pointerId,type:c.pointerType}:null===i.pointB&&(i.pointB={x:c.clientX,y:c.clientY,pointerId:c.pointerId,type:c.pointerType}),i.onButtonDown(c),t||(c.preventDefault(),e.focus())}else if(s.type===Pe.a.POINTERDOUBLETAP)i.onDoubleTap(c.pointerType);else if(s.type===Pe.a.POINTERUP&&u){try{u.releasePointerCapture(c.pointerId)}catch(e){}l||(i.pointB=null),n._badOS?i.pointA=i.pointB=null:i.pointB&&i.pointA&&i.pointA.pointerId==c.pointerId?(i.pointA=i.pointB,i.pointB=null):i.pointA&&i.pointB&&i.pointB.pointerId==c.pointerId?i.pointB=null:i.pointA=i.pointB=null,(0!==r||o)&&(i.onMultiTouch(i.pointA,i.pointB,r,0,o,null),r=0,o=null),i.onButtonUp(c),t||c.preventDefault()}else if(s.type===Pe.a.POINTERMOVE)if(t||c.preventDefault(),i.pointA&&null===i.pointB){h=c.clientX-i.pointA.x,d=c.clientY-i.pointA.y;i.onTouch(i.pointA,h,d),i.pointA.x=c.clientX,i.pointA.y=c.clientY}else if(i.pointA&&i.pointB){var f=i.pointA.pointerId===c.pointerId?i.pointA:i.pointB;f.x=c.clientX,f.y=c.clientY;var p=i.pointA.x-i.pointB.x,_=i.pointA.y-i.pointB.y,g=p*p+_*_,m={x:(i.pointA.x+i.pointB.x)/2,y:(i.pointA.y+i.pointB.y)/2,pointerId:c.pointerId,type:s.type};i.onMultiTouch(i.pointA,i.pointB,r,g,o,m),o=m,r=g}}},this._observer=this.camera.getScene().onPointerObservable.add(this._pointerInput,Pe.a.POINTERDOWN|Pe.a.POINTERUP|Pe.a.POINTERMOVE),this._onLostFocus=function(){i.pointA=i.pointB=null,r=0,o=null,i.onLostFocus()},e.addEventListener("contextmenu",this.onContextMenu.bind(this),!1),ye.h.RegisterTopRootEvents([{name:"blur",handler:this._onLostFocus}])},e.prototype.detachControl=function(e){this._onLostFocus&&ye.h.UnregisterTopRootEvents([{name:"blur",handler:this._onLostFocus}]),e&&this._observer&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this.onContextMenu&&e.removeEventListener("contextmenu",this.onContextMenu),this._onLostFocus=null),this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0},e.prototype.getClassName=function(){return"BaseCameraPointersInput"},e.prototype.getSimpleName=function(){return"pointers"},e.prototype.onDoubleTap=function(e){},e.prototype.onTouch=function(e,t,i){},e.prototype.onMultiTouch=function(e,t,i,n,r,o){},e.prototype.onContextMenu=function(e){e.preventDefault()},e.prototype.onButtonDown=function(e){},e.prototype.onButtonUp=function(e){},e.prototype.onLostFocus=function(){},l.c([Object(L.c)()],e.prototype,"buttons",void 0),e}(),tt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.buttons=[0,1,2],t.angularSensibilityX=1e3,t.angularSensibilityY=1e3,t.pinchPrecision=12,t.pinchDeltaPercentage=0,t.panningSensibility=1e3,t.multiTouchPanning=!0,t.multiTouchPanAndZoom=!0,t.pinchInwards=!0,t._isPanClick=!1,t._twoFingerActivityCount=0,t._isPinching=!1,t}return l.d(t,e),t.prototype.getClassName=function(){return"ArcRotateCameraPointersInput"},t.prototype.onTouch=function(e,t,i){0!==this.panningSensibility&&(this._ctrlKey&&this.camera._useCtrlForPanning||this._isPanClick)?(this.camera.inertialPanningX+=-t/this.panningSensibility,this.camera.inertialPanningY+=i/this.panningSensibility):(this.camera.inertialAlphaOffset-=t/this.angularSensibilityX,this.camera.inertialBetaOffset-=i/this.angularSensibilityY)},t.prototype.onDoubleTap=function(e){this.camera.useInputToRestoreState&&this.camera.restoreState()},t.prototype.onMultiTouch=function(e,t,i,n,r,o){if(!(0===i&&null===r||0===n&&null===o)){var s=this.pinchInwards?1:-1;if(this.multiTouchPanAndZoom){if(this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=.001*(n-i)*this.camera.radius*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(n-i)/(this.pinchPrecision*s*(this.angularSensibilityX+this.angularSensibilityY)/2),0!==this.panningSensibility&&r&&o){var a=o.x-r.x,c=o.y-r.y;this.camera.inertialPanningX+=-a/this.panningSensibility,this.camera.inertialPanningY+=c/this.panningSensibility}}else{this._twoFingerActivityCount++;var l=Math.sqrt(i),u=Math.sqrt(n);if(this._isPinching||this._twoFingerActivityCount<20&&Math.abs(u-l)>this.camera.pinchToPanMaxDistance)this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=.001*(n-i)*this.camera.radius*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(n-i)/(this.pinchPrecision*s*(this.angularSensibilityX+this.angularSensibilityY)/2),this._isPinching=!0;else if(0!==this.panningSensibility&&this.multiTouchPanning&&o&&r){a=o.x-r.x,c=o.y-r.y;this.camera.inertialPanningX+=-a/this.panningSensibility,this.camera.inertialPanningY+=c/this.panningSensibility}}}},t.prototype.onButtonDown=function(e){this._isPanClick=e.button===this.camera._panningMouseButton},t.prototype.onButtonUp=function(e){this._twoFingerActivityCount=0,this._isPinching=!1},t.prototype.onLostFocus=function(){this._isPanClick=!1,this._twoFingerActivityCount=0,this._isPinching=!1},l.c([Object(L.c)()],t.prototype,"buttons",void 0),l.c([Object(L.c)()],t.prototype,"angularSensibilityX",void 0),l.c([Object(L.c)()],t.prototype,"angularSensibilityY",void 0),l.c([Object(L.c)()],t.prototype,"pinchPrecision",void 0),l.c([Object(L.c)()],t.prototype,"pinchDeltaPercentage",void 0),l.c([Object(L.c)()],t.prototype,"panningSensibility",void 0),l.c([Object(L.c)()],t.prototype,"multiTouchPanning",void 0),l.c([Object(L.c)()],t.prototype,"multiTouchPanAndZoom",void 0),t}(et);We.ArcRotateCameraPointersInput=tt;var it=function(e){function t(t){return e.call(this,t)||this}return l.d(t,e),t.prototype.addMouseWheel=function(){return this.add(new $e),this},t.prototype.addPointers=function(){return this.add(new tt),this},t.prototype.addKeyboard=function(){return this.add(new Je),this},t}(Xe);it.prototype.addVRDeviceOrientation=function(){return this.add(new nt),this};var nt=function(){function e(){this.alphaCorrection=1,this.gammaCorrection=1,this._alpha=0,this._gamma=0,this._dirty=!1,this._deviceOrientationHandler=this._onOrientationEvent.bind(this)}return e.prototype.attachControl=function(e,t){this.camera.attachControl(e,t),window.addEventListener("deviceorientation",this._deviceOrientationHandler)},e.prototype._onOrientationEvent=function(e){null!==e.alpha&&(this._alpha=(0|+e.alpha)*this.alphaCorrection),null!==e.gamma&&(this._gamma=(0|+e.gamma)*this.gammaCorrection),this._dirty=!0},e.prototype.checkInputs=function(){this._dirty&&(this._dirty=!1,this._gamma<0&&(this._gamma=180+this._gamma),this.camera.alpha=-this._alpha/180*Math.PI%Math.PI*2,this.camera.beta=this._gamma/180*Math.PI)},e.prototype.detachControl=function(e){window.removeEventListener("deviceorientation",this._deviceOrientationHandler)},e.prototype.getClassName=function(){return"ArcRotateCameraVRDeviceOrientationInput"},e.prototype.getSimpleName=function(){return"VRDeviceOrientation"},e}();We.ArcRotateCameraVRDeviceOrientationInput=nt;var rt=function(){function e(){this.keysForward=[87],this.keysBackward=[83],this.keysUp=[69],this.keysDown=[81],this.keysRight=[68],this.keysLeft=[65],this._keys=new Array}return e.prototype.attachControl=function(e,t){var i=this;this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(function(){i._keys=[]}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(function(e){var n,r=e.event;e.type===Ze.a.KEYDOWN?-1===i.keysForward.indexOf(r.keyCode)&&-1===i.keysBackward.indexOf(r.keyCode)&&-1===i.keysUp.indexOf(r.keyCode)&&-1===i.keysDown.indexOf(r.keyCode)&&-1===i.keysLeft.indexOf(r.keyCode)&&-1===i.keysRight.indexOf(r.keyCode)||(-1===(n=i._keys.indexOf(r.keyCode))&&i._keys.push(r.keyCode),t||r.preventDefault()):-1===i.keysForward.indexOf(r.keyCode)&&-1===i.keysBackward.indexOf(r.keyCode)&&-1===i.keysUp.indexOf(r.keyCode)&&-1===i.keysDown.indexOf(r.keyCode)&&-1===i.keysLeft.indexOf(r.keyCode)&&-1===i.keysRight.indexOf(r.keyCode)||((n=i._keys.indexOf(r.keyCode))>=0&&i._keys.splice(n,1),t||r.preventDefault())}))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.getClassName=function(){return"FlyCameraKeyboardInput"},e.prototype._onLostFocus=function(e){this._keys=[]},e.prototype.getSimpleName=function(){return"keyboard"},e.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var e=this.camera,t=0;t=0&&i._keys.splice(n,1),r.preventDefault&&(t||r.preventDefault())))}))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.checkInputs=function(){var e=this;this._onKeyboardObserver&&this._keys.forEach(function(t){-1!==e.keysHeightOffsetIncr.indexOf(t)&&e._modifierHeightOffset()?e.camera.heightOffset+=e.heightSensibility:-1!==e.keysHeightOffsetDecr.indexOf(t)&&e._modifierHeightOffset()?e.camera.heightOffset-=e.heightSensibility:-1!==e.keysRotationOffsetIncr.indexOf(t)&&e._modifierRotationOffset()?(e.camera.rotationOffset+=e.rotationSensibility,e.camera.rotationOffset%=360):-1!==e.keysRotationOffsetDecr.indexOf(t)&&e._modifierRotationOffset()?(e.camera.rotationOffset-=e.rotationSensibility,e.camera.rotationOffset%=360):-1!==e.keysRadiusIncr.indexOf(t)&&e._modifierRadius()?e.camera.radius+=e.radiusSensibility:-1!==e.keysRadiusDecr.indexOf(t)&&e._modifierRadius()&&(e.camera.radius-=e.radiusSensibility)})},e.prototype.getClassName=function(){return"FollowCameraKeyboardMoveInput"},e.prototype.getSimpleName=function(){return"keyboard"},e.prototype._modifierHeightOffset=function(){return this.keysHeightOffsetModifierAlt===this._altPressed&&this.keysHeightOffsetModifierCtrl===this._ctrlPressed&&this.keysHeightOffsetModifierShift===this._shiftPressed},e.prototype._modifierRotationOffset=function(){return this.keysRotationOffsetModifierAlt===this._altPressed&&this.keysRotationOffsetModifierCtrl===this._ctrlPressed&&this.keysRotationOffsetModifierShift===this._shiftPressed},e.prototype._modifierRadius=function(){return this.keysRadiusModifierAlt===this._altPressed&&this.keysRadiusModifierCtrl===this._ctrlPressed&&this.keysRadiusModifierShift===this._shiftPressed},l.c([Object(L.c)()],e.prototype,"keysHeightOffsetIncr",void 0),l.c([Object(L.c)()],e.prototype,"keysHeightOffsetDecr",void 0),l.c([Object(L.c)()],e.prototype,"keysHeightOffsetModifierAlt",void 0),l.c([Object(L.c)()],e.prototype,"keysHeightOffsetModifierCtrl",void 0),l.c([Object(L.c)()],e.prototype,"keysHeightOffsetModifierShift",void 0),l.c([Object(L.c)()],e.prototype,"keysRotationOffsetIncr",void 0),l.c([Object(L.c)()],e.prototype,"keysRotationOffsetDecr",void 0),l.c([Object(L.c)()],e.prototype,"keysRotationOffsetModifierAlt",void 0),l.c([Object(L.c)()],e.prototype,"keysRotationOffsetModifierCtrl",void 0),l.c([Object(L.c)()],e.prototype,"keysRotationOffsetModifierShift",void 0),l.c([Object(L.c)()],e.prototype,"keysRadiusIncr",void 0),l.c([Object(L.c)()],e.prototype,"keysRadiusDecr",void 0),l.c([Object(L.c)()],e.prototype,"keysRadiusModifierAlt",void 0),l.c([Object(L.c)()],e.prototype,"keysRadiusModifierCtrl",void 0),l.c([Object(L.c)()],e.prototype,"keysRadiusModifierShift",void 0),l.c([Object(L.c)()],e.prototype,"heightSensibility",void 0),l.c([Object(L.c)()],e.prototype,"rotationSensibility",void 0),l.c([Object(L.c)()],e.prototype,"radiusSensibility",void 0),e}();We.FollowCameraKeyboardMoveInput=st;var at=function(){function e(){this.axisControlRadius=!0,this.axisControlHeight=!1,this.axisControlRotation=!1,this.wheelPrecision=3,this.wheelDeltaPercentage=0}return e.prototype.attachControl=function(e,t){var i=this;this._wheel=function(e,n){if(e.type===Pe.a.POINTERWHEEL){var r=e.event,o=0,s=Math.max(-1,Math.min(1,r.deltaY||r.wheelDelta||-r.detail));i.wheelDeltaPercentage?(console.assert(i.axisControlRadius+i.axisControlHeight+i.axisControlRotation<=1,"wheelDeltaPercentage only usable when mouse wheel controlls ONE axis. Currently enabled: axisControlRadius: "+i.axisControlRadius+", axisControlHeightOffset: "+i.axisControlHeight+", axisControlRotationOffset: "+i.axisControlRotation),i.axisControlRadius?o=.01*s*i.wheelDeltaPercentage*i.camera.radius:i.axisControlHeight?o=.01*s*i.wheelDeltaPercentage*i.camera.heightOffset:i.axisControlRotation&&(o=.01*s*i.wheelDeltaPercentage*i.camera.rotationOffset)):o=s*i.wheelPrecision,o&&(i.axisControlRadius?i.camera.radius+=o:i.axisControlHeight?i.camera.heightOffset-=o:i.axisControlRotation&&(i.camera.rotationOffset-=o)),r.preventDefault&&(t||r.preventDefault())}},this._observer=this.camera.getScene().onPointerObservable.add(this._wheel,Pe.a.POINTERWHEEL)},e.prototype.detachControl=function(e){this._observer&&e&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this._wheel=null)},e.prototype.getClassName=function(){return"ArcRotateCameraMouseWheelInput"},e.prototype.getSimpleName=function(){return"mousewheel"},l.c([Object(L.c)()],e.prototype,"axisControlRadius",void 0),l.c([Object(L.c)()],e.prototype,"axisControlHeight",void 0),l.c([Object(L.c)()],e.prototype,"axisControlRotation",void 0),l.c([Object(L.c)()],e.prototype,"wheelPrecision",void 0),l.c([Object(L.c)()],e.prototype,"wheelDeltaPercentage",void 0),e}();We.FollowCameraMouseWheelInput=at;var ct=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.angularSensibilityX=1,t.angularSensibilityY=1,t.pinchPrecision=1e4,t.pinchDeltaPercentage=0,t.axisXControlRadius=!1,t.axisXControlHeight=!1,t.axisXControlRotation=!0,t.axisYControlRadius=!1,t.axisYControlHeight=!0,t.axisYControlRotation=!1,t.axisPinchControlRadius=!0,t.axisPinchControlHeight=!1,t.axisPinchControlRotation=!1,t.warningEnable=!0,t._warningCounter=0,t}return l.d(t,e),t.prototype.getClassName=function(){return"FollowCameraPointersInput"},t.prototype.onTouch=function(e,t,i){this._warning(),this.axisXControlRotation?this.camera.rotationOffset+=t/this.angularSensibilityX:this.axisYControlRotation&&(this.camera.rotationOffset+=i/this.angularSensibilityX),this.axisXControlHeight?this.camera.heightOffset+=t/this.angularSensibilityY:this.axisYControlHeight&&(this.camera.heightOffset+=i/this.angularSensibilityY),this.axisXControlRadius?this.camera.radius-=t/this.angularSensibilityY:this.axisYControlRadius&&(this.camera.radius-=i/this.angularSensibilityY)},t.prototype.onMultiTouch=function(e,t,i,n,r,o){if(!(0===i&&null===r||0===n&&null===o)){var s=(n-i)/(this.pinchPrecision*(this.angularSensibilityX+this.angularSensibilityY)/2);this.pinchDeltaPercentage?(s*=.01*this.pinchDeltaPercentage,this.axisPinchControlRotation&&(this.camera.rotationOffset+=s*this.camera.rotationOffset),this.axisPinchControlHeight&&(this.camera.heightOffset+=s*this.camera.heightOffset),this.axisPinchControlRadius&&(this.camera.radius-=s*this.camera.radius)):(this.axisPinchControlRotation&&(this.camera.rotationOffset+=s),this.axisPinchControlHeight&&(this.camera.heightOffset+=s),this.axisPinchControlRadius&&(this.camera.radius-=s))}},t.prototype._warning=function(){if(this.warningEnable&&this._warningCounter++%100==0){var e="It probably only makes sense to control ONE camera property with each pointer axis. Set 'warningEnable = false' if you are sure. Currently enabled: ";console.assert(this.axisXControlRotation+this.axisXControlHeight+this.axisXControlRadius<=1,e+"axisXControlRotation: "+this.axisXControlRotation+", axisXControlHeight: "+this.axisXControlHeight+", axisXControlRadius: "+this.axisXControlRadius),console.assert(this.axisYControlRotation+this.axisYControlHeight+this.axisYControlRadius<=1,e+"axisYControlRotation: "+this.axisYControlRotation+", axisYControlHeight: "+this.axisYControlHeight+", axisYControlRadius: "+this.axisYControlRadius),console.assert(this.axisPinchControlRotation+this.axisPinchControlHeight+this.axisPinchControlRadius<=1,e+"axisPinchControlRotation: "+this.axisPinchControlRotation+", axisPinchControlHeight: "+this.axisPinchControlHeight+", axisPinchControlRadius: "+this.axisPinchControlRadius)}},l.c([Object(L.c)()],t.prototype,"angularSensibilityX",void 0),l.c([Object(L.c)()],t.prototype,"angularSensibilityY",void 0),l.c([Object(L.c)()],t.prototype,"pinchPrecision",void 0),l.c([Object(L.c)()],t.prototype,"pinchDeltaPercentage",void 0),l.c([Object(L.c)()],t.prototype,"axisXControlRadius",void 0),l.c([Object(L.c)()],t.prototype,"axisXControlHeight",void 0),l.c([Object(L.c)()],t.prototype,"axisXControlRotation",void 0),l.c([Object(L.c)()],t.prototype,"axisYControlRadius",void 0),l.c([Object(L.c)()],t.prototype,"axisYControlHeight",void 0),l.c([Object(L.c)()],t.prototype,"axisYControlRotation",void 0),l.c([Object(L.c)()],t.prototype,"axisPinchControlRadius",void 0),l.c([Object(L.c)()],t.prototype,"axisPinchControlHeight",void 0),l.c([Object(L.c)()],t.prototype,"axisPinchControlRotation",void 0),t}(et);We.FollowCameraPointersInput=ct;var lt=function(){function e(){this.keysUp=[38],this.keysDown=[40],this.keysLeft=[37],this.keysRight=[39],this._keys=new Array}return e.prototype.attachControl=function(e,t){var i=this;this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(function(){i._keys=[]}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(function(e){var n,r=e.event;r.metaKey||(e.type===Ze.a.KEYDOWN?-1===i.keysUp.indexOf(r.keyCode)&&-1===i.keysDown.indexOf(r.keyCode)&&-1===i.keysLeft.indexOf(r.keyCode)&&-1===i.keysRight.indexOf(r.keyCode)||(-1===(n=i._keys.indexOf(r.keyCode))&&i._keys.push(r.keyCode),t||r.preventDefault()):-1===i.keysUp.indexOf(r.keyCode)&&-1===i.keysDown.indexOf(r.keyCode)&&-1===i.keysLeft.indexOf(r.keyCode)&&-1===i.keysRight.indexOf(r.keyCode)||((n=i._keys.indexOf(r.keyCode))>=0&&i._keys.splice(n,1),t||r.preventDefault()))}))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var e=this.camera,t=0;t1)e.cameraRotation.x+=-this._offsetY/this.touchAngularSensibility;else{var t=e._computeLocalCameraSpeed(),i=new o.x(0,0,t*this._offsetY/this.touchMoveSensibility);o.j.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,0,e._cameraRotationMatrix),e.cameraDirection.addInPlace(o.x.TransformCoordinates(i,e._cameraRotationMatrix))}}},e.prototype.getClassName=function(){return"FreeCameraTouchInput"},e.prototype.getSimpleName=function(){return"touch"},l.c([Object(L.c)()],e.prototype,"touchAngularSensibility",void 0),l.c([Object(L.c)()],e.prototype,"touchMoveSensibility",void 0),e}();We.FreeCameraTouchInput=ht;var dt=function(e){function t(t){var i=e.call(this,t)||this;return i._mouseInput=null,i}return l.d(t,e),t.prototype.addKeyboard=function(){return this.add(new lt),this},t.prototype.addMouse=function(e){return void 0===e&&(e=!0),this._mouseInput||(this._mouseInput=new ut(e),this.add(this._mouseInput)),this},t.prototype.removeMouse=function(){return this._mouseInput&&this.remove(this._mouseInput),this},t.prototype.addTouch=function(){return this.add(new ht),this},t.prototype.clear=function(){e.prototype.clear.call(this),this._mouseInput=null},t}(Xe);dt.prototype.addDeviceOrientation=function(){return this._deviceOrientationInput||(this._deviceOrientationInput=new ft,this.add(this._deviceOrientationInput)),this};var ft=function(){function e(){var e=this;this._screenOrientationAngle=0,this._screenQuaternion=new o.q,this._alpha=0,this._beta=0,this._gamma=0,this._onDeviceOrientationChangedObservable=new r.c,this._orientationChanged=function(){e._screenOrientationAngle=void 0!==window.orientation?+window.orientation:window.screen.orientation&&window.screen.orientation.angle?window.screen.orientation.angle:0,e._screenOrientationAngle=-ye.h.ToRadians(e._screenOrientationAngle/2),e._screenQuaternion.copyFromFloats(0,Math.sin(e._screenOrientationAngle),0,Math.cos(e._screenOrientationAngle))},this._deviceOrientation=function(t){e._alpha=null!==t.alpha?t.alpha:0,e._beta=null!==t.beta?t.beta:0,e._gamma=null!==t.gamma?t.gamma:0,null!==t.alpha&&e._onDeviceOrientationChangedObservable.notifyObservers()},this._constantTranform=new o.q(-Math.sqrt(.5),0,0,Math.sqrt(.5)),this._orientationChanged()}return Object.defineProperty(e.prototype,"camera",{get:function(){return this._camera},set:function(e){var t=this;this._camera=e,null==this._camera||this._camera.rotationQuaternion||(this._camera.rotationQuaternion=new o.q),this._camera&&this._camera.onDisposeObservable.add(function(){t._onDeviceOrientationChangedObservable.clear()})},enumerable:!0,configurable:!0}),e.prototype.attachControl=function(e,t){window.addEventListener("orientationchange",this._orientationChanged),window.addEventListener("deviceorientation",this._deviceOrientation),this._orientationChanged()},e.prototype.detachControl=function(e){window.removeEventListener("orientationchange",this._orientationChanged),window.removeEventListener("deviceorientation",this._deviceOrientation),this._alpha=0},e.prototype.checkInputs=function(){this._alpha&&(o.q.RotationYawPitchRollToRef(ye.h.ToRadians(this._alpha),ye.h.ToRadians(this._beta),-ye.h.ToRadians(this._gamma),this.camera.rotationQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._constantTranform),this._camera.rotationQuaternion.z*=-1,this._camera.rotationQuaternion.w*=-1)},e.prototype.getClassName=function(){return"FreeCameraDeviceOrientationInput"},e.prototype.getSimpleName=function(){return"deviceOrientation"},e}();We.FreeCameraDeviceOrientationInput=ft;var pt=function(){function e(){this.gamepadAngularSensibility=200,this.gamepadMoveSensibility=40,this._cameraTransform=o.j.Identity(),this._deltaTransform=o.x.Zero(),this._vector3=o.x.Zero(),this._vector2=o.w.Zero()}return e.prototype.attachControl=function(e,t){var i=this,n=this.camera.getScene().gamepadManager;this._onGamepadConnectedObserver=n.onGamepadConnectedObservable.add(function(e){e.type!==Ke.POSE_ENABLED&&(i.gamepad&&e.type!==Ke.XBOX||(i.gamepad=e))}),this._onGamepadDisconnectedObserver=n.onGamepadDisconnectedObservable.add(function(e){i.gamepad===e&&(i.gamepad=null)}),this.gamepad=n.getGamepadByType(Ke.XBOX)},e.prototype.detachControl=function(e){this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),this.gamepad=null},e.prototype.checkInputs=function(){if(this.gamepad&&this.gamepad.leftStick){var e=this.camera,t=this.gamepad.leftStick,i=t.x/this.gamepadMoveSensibility,n=t.y/this.gamepadMoveSensibility;t.x=Math.abs(i)>.005?0+i:0,t.y=Math.abs(n)>.005?0+n:0;var r=this.gamepad.rightStick;if(r){var s=r.x/this.gamepadAngularSensibility,a=r.y/this.gamepadAngularSensibility;r.x=Math.abs(s)>.001?0+s:0,r.y=Math.abs(a)>.001?0+a:0}else r={x:0,y:0};e.rotationQuaternion?e.rotationQuaternion.toRotationMatrix(this._cameraTransform):o.j.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,0,this._cameraTransform);var c=50*e._computeLocalCameraSpeed();this._vector3.copyFromFloats(t.x*c,0,-t.y*c),o.x.TransformCoordinatesToRef(this._vector3,this._cameraTransform,this._deltaTransform),e.cameraDirection.addInPlace(this._deltaTransform),this._vector2.copyFromFloats(r.y,r.x),e.cameraRotation.addInPlace(this._vector2)}},e.prototype.getClassName=function(){return"FreeCameraGamepadInput"},e.prototype.getSimpleName=function(){return"gamepad"},l.c([Object(L.c)()],e.prototype,"gamepadAngularSensibility",void 0),l.c([Object(L.c)()],e.prototype,"gamepadMoveSensibility",void 0),e}();We.FreeCameraGamepadInput=pt;var _t,gt=i(61);!function(e){e[e.X=0]="X",e[e.Y=1]="Y",e[e.Z=2]="Z"}(_t||(_t={}));var mt=function(){function e(t){var i=this;if(this._leftJoystick=!!t,e._globalJoystickIndex++,this._axisTargetedByLeftAndRight=_t.X,this._axisTargetedByUpAndDown=_t.Y,this.reverseLeftRight=!1,this.reverseUpDown=!1,this._touches=new gt.a,this.deltaPosition=o.x.Zero(),this._joystickSensibility=25,this._inversedSensibility=1/(this._joystickSensibility/1e3),this._onResize=function(t){e.vjCanvasWidth=window.innerWidth,e.vjCanvasHeight=window.innerHeight,e.Canvas&&(e.Canvas.width=e.vjCanvasWidth,e.Canvas.height=e.vjCanvasHeight),e.halfWidth=e.vjCanvasWidth/2},!e.Canvas){window.addEventListener("resize",this._onResize,!1),e.Canvas=document.createElement("canvas"),e.vjCanvasWidth=window.innerWidth,e.vjCanvasHeight=window.innerHeight,e.Canvas.width=window.innerWidth,e.Canvas.height=window.innerHeight,e.Canvas.style.width="100%",e.Canvas.style.height="100%",e.Canvas.style.position="absolute",e.Canvas.style.backgroundColor="transparent",e.Canvas.style.top="0px",e.Canvas.style.left="0px",e.Canvas.style.zIndex="5",e.Canvas.style.msTouchAction="none",e.Canvas.setAttribute("touch-action","none");var n=e.Canvas.getContext("2d");if(!n)throw new Error("Unable to create canvas for virtual joystick");e.vjCanvasContext=n,e.vjCanvasContext.strokeStyle="#ffffff",e.vjCanvasContext.lineWidth=2,document.body.appendChild(e.Canvas)}e.halfWidth=e.Canvas.width/2,this.pressed=!1,this._joystickColor="cyan",this._joystickPointerID=-1,this._joystickPointerPos=new o.w(0,0),this._joystickPreviousPointerPos=new o.w(0,0),this._joystickPointerStartPos=new o.w(0,0),this._deltaJoystickVector=new o.w(0,0),this._onPointerDownHandlerRef=function(e){i._onPointerDown(e)},this._onPointerMoveHandlerRef=function(e){i._onPointerMove(e)},this._onPointerUpHandlerRef=function(e){i._onPointerUp(e)},e.Canvas.addEventListener("pointerdown",this._onPointerDownHandlerRef,!1),e.Canvas.addEventListener("pointermove",this._onPointerMoveHandlerRef,!1),e.Canvas.addEventListener("pointerup",this._onPointerUpHandlerRef,!1),e.Canvas.addEventListener("pointerout",this._onPointerUpHandlerRef,!1),e.Canvas.addEventListener("contextmenu",function(e){e.preventDefault()},!1),requestAnimationFrame(function(){i._drawVirtualJoystick()})}return e.prototype.setJoystickSensibility=function(e){this._joystickSensibility=e,this._inversedSensibility=1/(this._joystickSensibility/1e3)},e.prototype._onPointerDown=function(t){t.preventDefault(),(!0===this._leftJoystick?t.clientXe.halfWidth)&&this._joystickPointerID<0?(this._joystickPointerID=t.pointerId,this._joystickPointerStartPos.x=t.clientX,this._joystickPointerStartPos.y=t.clientY,this._joystickPointerPos=this._joystickPointerStartPos.clone(),this._joystickPreviousPointerPos=this._joystickPointerStartPos.clone(),this._deltaJoystickVector.x=0,this._deltaJoystickVector.y=0,this.pressed=!0,this._touches.add(t.pointerId.toString(),t)):e._globalJoystickIndex<2&&this._action&&(this._action(),this._touches.add(t.pointerId.toString(),{x:t.clientX,y:t.clientY,prevX:t.clientX,prevY:t.clientY}))},e.prototype._onPointerMove=function(e){if(this._joystickPointerID==e.pointerId){this._joystickPointerPos.x=e.clientX,this._joystickPointerPos.y=e.clientY,this._deltaJoystickVector=this._joystickPointerPos.clone(),this._deltaJoystickVector=this._deltaJoystickVector.subtract(this._joystickPointerStartPos);var t=(this.reverseLeftRight?-1:1)*this._deltaJoystickVector.x/this._inversedSensibility;switch(this._axisTargetedByLeftAndRight){case _t.X:this.deltaPosition.x=Math.min(1,Math.max(-1,t));break;case _t.Y:this.deltaPosition.y=Math.min(1,Math.max(-1,t));break;case _t.Z:this.deltaPosition.z=Math.min(1,Math.max(-1,t))}var i=(this.reverseUpDown?1:-1)*this._deltaJoystickVector.y/this._inversedSensibility;switch(this._axisTargetedByUpAndDown){case _t.X:this.deltaPosition.x=Math.min(1,Math.max(-1,i));break;case _t.Y:this.deltaPosition.y=Math.min(1,Math.max(-1,i));break;case _t.Z:this.deltaPosition.z=Math.min(1,Math.max(-1,i))}}else{var n=this._touches.get(e.pointerId.toString());n&&(n.x=e.clientX,n.y=e.clientY)}},e.prototype._onPointerUp=function(t){if(this._joystickPointerID==t.pointerId)e.vjCanvasContext.clearRect(this._joystickPointerStartPos.x-64,this._joystickPointerStartPos.y-64,128,128),e.vjCanvasContext.clearRect(this._joystickPreviousPointerPos.x-42,this._joystickPreviousPointerPos.y-42,84,84),this._joystickPointerID=-1,this.pressed=!1;else{var i=this._touches.get(t.pointerId.toString());i&&e.vjCanvasContext.clearRect(i.prevX-44,i.prevY-44,88,88)}this._deltaJoystickVector.x=0,this._deltaJoystickVector.y=0,this._touches.remove(t.pointerId.toString())},e.prototype.setJoystickColor=function(e){this._joystickColor=e},e.prototype.setActionOnTouch=function(e){this._action=e},e.prototype.setAxisForLeftRight=function(e){switch(e){case _t.X:case _t.Y:case _t.Z:this._axisTargetedByLeftAndRight=e;break;default:this._axisTargetedByLeftAndRight=_t.X}},e.prototype.setAxisForUpDown=function(e){switch(e){case _t.X:case _t.Y:case _t.Z:this._axisTargetedByUpAndDown=e;break;default:this._axisTargetedByUpAndDown=_t.Y}},e.prototype._drawVirtualJoystick=function(){var t=this;this.pressed&&this._touches.forEach(function(i,n){n.pointerId===t._joystickPointerID?(e.vjCanvasContext.clearRect(t._joystickPointerStartPos.x-64,t._joystickPointerStartPos.y-64,128,128),e.vjCanvasContext.clearRect(t._joystickPreviousPointerPos.x-42,t._joystickPreviousPointerPos.y-42,84,84),e.vjCanvasContext.beginPath(),e.vjCanvasContext.lineWidth=6,e.vjCanvasContext.strokeStyle=t._joystickColor,e.vjCanvasContext.arc(t._joystickPointerStartPos.x,t._joystickPointerStartPos.y,40,0,2*Math.PI,!0),e.vjCanvasContext.stroke(),e.vjCanvasContext.closePath(),e.vjCanvasContext.beginPath(),e.vjCanvasContext.strokeStyle=t._joystickColor,e.vjCanvasContext.lineWidth=2,e.vjCanvasContext.arc(t._joystickPointerStartPos.x,t._joystickPointerStartPos.y,60,0,2*Math.PI,!0),e.vjCanvasContext.stroke(),e.vjCanvasContext.closePath(),e.vjCanvasContext.beginPath(),e.vjCanvasContext.strokeStyle=t._joystickColor,e.vjCanvasContext.arc(t._joystickPointerPos.x,t._joystickPointerPos.y,40,0,2*Math.PI,!0),e.vjCanvasContext.stroke(),e.vjCanvasContext.closePath(),t._joystickPreviousPointerPos=t._joystickPointerPos.clone()):(e.vjCanvasContext.clearRect(n.prevX-44,n.prevY-44,88,88),e.vjCanvasContext.beginPath(),e.vjCanvasContext.fillStyle="white",e.vjCanvasContext.beginPath(),e.vjCanvasContext.strokeStyle="red",e.vjCanvasContext.lineWidth=6,e.vjCanvasContext.arc(n.x,n.y,40,0,2*Math.PI,!0),e.vjCanvasContext.stroke(),e.vjCanvasContext.closePath(),n.prevX=n.x,n.prevY=n.y)}),requestAnimationFrame(function(){t._drawVirtualJoystick()})},e.prototype.releaseCanvas=function(){e.Canvas&&(e.Canvas.removeEventListener("pointerdown",this._onPointerDownHandlerRef),e.Canvas.removeEventListener("pointermove",this._onPointerMoveHandlerRef),e.Canvas.removeEventListener("pointerup",this._onPointerUpHandlerRef),e.Canvas.removeEventListener("pointerout",this._onPointerUpHandlerRef),window.removeEventListener("resize",this._onResize),document.body.removeChild(e.Canvas),e.Canvas=null)},e._globalJoystickIndex=0,e}();dt.prototype.addVirtualJoystick=function(){return this.add(new vt),this};var vt=function(){function e(){}return e.prototype.getLeftJoystick=function(){return this._leftjoystick},e.prototype.getRightJoystick=function(){return this._rightjoystick},e.prototype.checkInputs=function(){if(this._leftjoystick){var e=this.camera,t=50*e._computeLocalCameraSpeed(),i=o.j.RotationYawPitchRoll(e.rotation.y,e.rotation.x,0),n=o.x.TransformCoordinates(new o.x(this._leftjoystick.deltaPosition.x*t,this._leftjoystick.deltaPosition.y*t,this._leftjoystick.deltaPosition.z*t),i);e.cameraDirection=e.cameraDirection.add(n),e.cameraRotation=e.cameraRotation.addVector3(this._rightjoystick.deltaPosition),this._leftjoystick.pressed||(this._leftjoystick.deltaPosition=this._leftjoystick.deltaPosition.scale(.9)),this._rightjoystick.pressed||(this._rightjoystick.deltaPosition=this._rightjoystick.deltaPosition.scale(.9))}},e.prototype.attachControl=function(e,t){this._leftjoystick=new mt(!0),this._leftjoystick.setAxisForUpDown(_t.Z),this._leftjoystick.setAxisForLeftRight(_t.X),this._leftjoystick.setJoystickSensibility(.15),this._rightjoystick=new mt(!1),this._rightjoystick.setAxisForUpDown(_t.X),this._rightjoystick.setAxisForLeftRight(_t.Y),this._rightjoystick.reverseUpDown=!0,this._rightjoystick.setJoystickSensibility(.05),this._rightjoystick.setJoystickColor("yellow")},e.prototype.detachControl=function(e){this._leftjoystick.releaseCanvas(),this._rightjoystick.releaseCanvas()},e.prototype.getClassName=function(){return"FreeCameraVirtualJoystickInput"},e.prototype.getSimpleName=function(){return"virtualJoystick"},e}();We.FreeCameraVirtualJoystickInput=vt;var yt=function(e){function t(t,i,n,r){void 0===r&&(r=!0);var s=e.call(this,t,i,n,r)||this;return s.cameraDirection=new o.x(0,0,0),s.cameraRotation=new o.w(0,0),s.updateUpVectorFromRotation=!1,s._tmpQuaternion=new o.q,s.rotation=new o.x(0,0,0),s.speed=2,s.noRotationConstraint=!1,s.lockedTarget=null,s._currentTarget=o.x.Zero(),s._initialFocalDistance=1,s._viewMatrix=o.j.Zero(),s._camMatrix=o.j.Zero(),s._cameraTransformMatrix=o.j.Zero(),s._cameraRotationMatrix=o.j.Zero(),s._referencePoint=new o.x(0,0,1),s._transformedReferencePoint=o.x.Zero(),s._globalCurrentTarget=o.x.Zero(),s._globalCurrentUpVector=o.x.Zero(),s._defaultUp=o.x.Up(),s._cachedRotationZ=0,s._cachedQuaternionRotationZ=0,s}return l.d(t,e),t.prototype.getFrontPosition=function(e){this.getWorldMatrix();var t=this.getTarget().subtract(this.position);return t.normalize(),t.scaleInPlace(e),this.globalPosition.add(t)},t.prototype._getLockedTargetPosition=function(){return this.lockedTarget?(this.lockedTarget.absolutePosition&&this.lockedTarget.computeWorldMatrix(),this.lockedTarget.absolutePosition||this.lockedTarget):null},t.prototype.storeState=function(){return this._storedPosition=this.position.clone(),this._storedRotation=this.rotation.clone(),this.rotationQuaternion&&(this._storedRotationQuaternion=this.rotationQuaternion.clone()),e.prototype.storeState.call(this)},t.prototype._restoreStateValues=function(){return!!e.prototype._restoreStateValues.call(this)&&(this.position=this._storedPosition.clone(),this.rotation=this._storedRotation.clone(),this.rotationQuaternion&&(this.rotationQuaternion=this._storedRotationQuaternion.clone()),this.cameraDirection.copyFromFloats(0,0,0),this.cameraRotation.copyFromFloats(0,0),!0)},t.prototype._initCache=function(){e.prototype._initCache.call(this),this._cache.lockedTarget=new o.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.rotation=new o.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.rotationQuaternion=new o.q(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)},t.prototype._updateCache=function(t){t||e.prototype._updateCache.call(this);var i=this._getLockedTargetPosition();i?this._cache.lockedTarget?this._cache.lockedTarget.copyFrom(i):this._cache.lockedTarget=i.clone():this._cache.lockedTarget=null,this._cache.rotation.copyFrom(this.rotation),this.rotationQuaternion&&this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion)},t.prototype._isSynchronizedViewMatrix=function(){if(!e.prototype._isSynchronizedViewMatrix.call(this))return!1;var t=this._getLockedTargetPosition();return(this._cache.lockedTarget?this._cache.lockedTarget.equals(t):!t)&&(this.rotationQuaternion?this.rotationQuaternion.equals(this._cache.rotationQuaternion):this._cache.rotation.equals(this.rotation))},t.prototype._computeLocalCameraSpeed=function(){var e=this.getEngine();return this.speed*Math.sqrt(e.getDeltaTime()/(100*e.getFps()))},t.prototype.setTarget=function(e){this.upVector.normalize(),this._initialFocalDistance=e.subtract(this.position).length(),this.position.z===e.z&&(this.position.z+=o.h),o.j.LookAtLHToRef(this.position,e,this._defaultUp,this._camMatrix),this._camMatrix.invert(),this.rotation.x=Math.atan(this._camMatrix.m[6]/this._camMatrix.m[10]);var t=e.subtract(this.position);t.x>=0?this.rotation.y=-Math.atan(t.z/t.x)+Math.PI/2:this.rotation.y=-Math.atan(t.z/t.x)-Math.PI/2,this.rotation.z=0,isNaN(this.rotation.x)&&(this.rotation.x=0),isNaN(this.rotation.y)&&(this.rotation.y=0),isNaN(this.rotation.z)&&(this.rotation.z=0),this.rotationQuaternion&&o.q.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion)},t.prototype.getTarget=function(){return this._currentTarget},t.prototype._decideIfNeedsToMove=function(){return Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){if(this.parent)return this.parent.getWorldMatrix().invertToRef(o.t.Matrix[0]),o.x.TransformNormalToRef(this.cameraDirection,o.t.Matrix[0],o.t.Vector3[0]),void this.position.addInPlace(o.t.Vector3[0]);this.position.addInPlace(this.cameraDirection)},t.prototype._checkInputs=function(){var t=this._decideIfNeedsToMove(),i=Math.abs(this.cameraRotation.x)>0||Math.abs(this.cameraRotation.y)>0;if(t&&this._updatePosition(),i){if(this.rotation.x+=this.cameraRotation.x,this.rotation.y+=this.cameraRotation.y,this.rotationQuaternion)this.rotation.lengthSquared()&&o.q.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion);if(!this.noRotationConstraint){var n=Math.PI/2*.95;this.rotation.x>n&&(this.rotation.x=n),this.rotation.x<-n&&(this.rotation.x=-n)}}t&&(Math.abs(this.cameraDirection.x)ge.b.CollisionsEpsilon&&(s.position.addInPlace(s._diffPosition),s.onCollide&&i&&s.onCollide(i))},s.inputs=new dt(s),s.inputs.addKeyboard().addMouse(),s}return l.d(t,e),Object.defineProperty(t.prototype,"angularSensibility",{get:function(){var e=this.inputs.attached.mouse;return e?e.angularSensibility:0},set:function(e){var t=this.inputs.attached.mouse;t&&(t.angularSensibility=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysUp",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUp=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysDown",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDown=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysLeft",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysRight",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysRight=e)},enumerable:!0,configurable:!0}),t.prototype.attachControl=function(e,t){this.inputs.attachElement(e,t)},t.prototype.detachControl=function(e){this.inputs.detachElement(e),this.cameraDirection=new o.x(0,0,0),this.cameraRotation=new o.w(0,0)},Object.defineProperty(t.prototype,"collisionMask",{get:function(){return this._collisionMask},set:function(e){this._collisionMask=isNaN(e)?-1:e},enumerable:!0,configurable:!0}),t.prototype._collideWithWorld=function(e){(this.parent?o.x.TransformCoordinates(this.position,this.parent.getWorldMatrix()):this.position).subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);var t=this.getScene().collisionCoordinator;this._collider||(this._collider=t.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;var i=e;this.applyGravity&&(i=e.add(this.getScene().gravity)),t.getNewPosition(this._oldPosition,i,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)},t.prototype._checkInputs=function(){this._localDirection||(this._localDirection=o.x.Zero(),this._transformedDirection=o.x.Zero()),this.inputs.checkInputs(),e.prototype._checkInputs.call(this)},t.prototype._decideIfNeedsToMove=function(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):e.prototype._updatePosition.call(this)},t.prototype.dispose=function(){this.inputs.clear(),e.prototype.dispose.call(this)},t.prototype.getClassName=function(){return"FreeCamera"},l.c([Object(L.o)()],t.prototype,"ellipsoid",void 0),l.c([Object(L.o)()],t.prototype,"ellipsoidOffset",void 0),l.c([Object(L.c)()],t.prototype,"checkCollisions",void 0),l.c([Object(L.c)()],t.prototype,"applyGravity",void 0),t}(yt);F.a.AddNodeConstructor("TouchCamera",function(e,t){return function(){return new Tt(e,o.x.Zero(),t)}});var Tt=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r.inputs.addTouch(),r._setupInputs(),r}return l.d(t,e),Object.defineProperty(t.prototype,"touchAngularSensibility",{get:function(){var e=this.inputs.attached.touch;return e?e.touchAngularSensibility:0},set:function(e){var t=this.inputs.attached.touch;t&&(t.touchAngularSensibility=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touchMoveSensibility",{get:function(){var e=this.inputs.attached.touch;return e?e.touchMoveSensibility:0},set:function(e){var t=this.inputs.attached.touch;t&&(t.touchMoveSensibility=e)},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"TouchCamera"},t.prototype._setupInputs=function(){var e=this.inputs.attached.mouse;e&&(e.touchEnabled=!1)},t}(bt);F.a.AddNodeConstructor("ArcRotateCamera",function(e,t){return function(){return new Et(e,0,0,1,o.x.Zero(),t)}});var Et=function(e){function t(t,i,n,s,a,c,l){void 0===l&&(l=!0);var u=e.call(this,t,o.x.Zero(),c,l)||this;return u._upVector=o.x.Up(),u.inertialAlphaOffset=0,u.inertialBetaOffset=0,u.inertialRadiusOffset=0,u.lowerAlphaLimit=null,u.upperAlphaLimit=null,u.lowerBetaLimit=.01,u.upperBetaLimit=Math.PI-.01,u.lowerRadiusLimit=null,u.upperRadiusLimit=null,u.inertialPanningX=0,u.inertialPanningY=0,u.pinchToPanMaxDistance=20,u.panningDistanceLimit=null,u.panningOriginTarget=o.x.Zero(),u.panningInertia=.9,u.zoomOnFactor=1,u.targetScreenOffset=o.w.Zero(),u.allowUpsideDown=!0,u.useInputToRestoreState=!0,u._viewMatrix=new o.j,u.panningAxis=new o.x(1,1,0),u.onMeshTargetChangedObservable=new r.c,u.checkCollisions=!1,u.collisionRadius=new o.x(.5,.5,.5),u._previousPosition=o.x.Zero(),u._collisionVelocity=o.x.Zero(),u._newPosition=o.x.Zero(),u._computationVector=o.x.Zero(),u._onCollisionPositionChange=function(e,t,i){void 0===i&&(i=null),i?(u.setPosition(t),u.onCollide&&u.onCollide(i)):u._previousPosition.copyFrom(u._position);var n=Math.cos(u.alpha),r=Math.sin(u.alpha),o=Math.cos(u.beta),s=Math.sin(u.beta);0===s&&(s=1e-4);var a=u._getTargetPosition();u._computationVector.copyFromFloats(u.radius*n*s,u.radius*o,u.radius*r*s),a.addToRef(u._computationVector,u._newPosition),u._position.copyFrom(u._newPosition);var c=u.upVector;u.allowUpsideDown&&u.beta<0&&(c=(c=c.clone()).negate()),u._computeViewMatrix(u._position,a,c),u._viewMatrix.addAtIndex(12,u.targetScreenOffset.x),u._viewMatrix.addAtIndex(13,u.targetScreenOffset.y),u._collisionTriggered=!1},u._target=o.x.Zero(),a&&u.setTarget(a),u.alpha=i,u.beta=n,u.radius=s,u.getViewMatrix(),u.inputs=new it(u),u.inputs.addKeyboard().addMouseWheel().addPointers(),u}return l.d(t,e),Object.defineProperty(t.prototype,"target",{get:function(){return this._target},set:function(e){this.setTarget(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(e){this.setPosition(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"upVector",{get:function(){return this._upVector},set:function(e){this._upToYMatrix||(this._YToUpMatrix=new o.j,this._upToYMatrix=new o.j,this._upVector=o.x.Zero()),e.normalize(),this._upVector.copyFrom(e),this.setMatUp()},enumerable:!0,configurable:!0}),t.prototype.setMatUp=function(){o.j.RotationAlignToRef(o.x.UpReadOnly,this._upVector,this._YToUpMatrix),o.j.RotationAlignToRef(this._upVector,o.x.UpReadOnly,this._upToYMatrix)},Object.defineProperty(t.prototype,"angularSensibilityX",{get:function(){var e=this.inputs.attached.pointers;return e?e.angularSensibilityX:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.angularSensibilityX=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"angularSensibilityY",{get:function(){var e=this.inputs.attached.pointers;return e?e.angularSensibilityY:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.angularSensibilityY=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pinchPrecision",{get:function(){var e=this.inputs.attached.pointers;return e?e.pinchPrecision:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.pinchPrecision=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pinchDeltaPercentage",{get:function(){var e=this.inputs.attached.pointers;return e?e.pinchDeltaPercentage:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.pinchDeltaPercentage=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"panningSensibility",{get:function(){var e=this.inputs.attached.pointers;return e?e.panningSensibility:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.panningSensibility=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysUp",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUp=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysDown",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDown=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysLeft",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysRight",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysRight=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"wheelPrecision",{get:function(){var e=this.inputs.attached.mousewheel;return e?e.wheelPrecision:0},set:function(e){var t=this.inputs.attached.mousewheel;t&&(t.wheelPrecision=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"wheelDeltaPercentage",{get:function(){var e=this.inputs.attached.mousewheel;return e?e.wheelDeltaPercentage:0},set:function(e){var t=this.inputs.attached.mousewheel;t&&(t.wheelDeltaPercentage=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bouncingBehavior",{get:function(){return this._bouncingBehavior},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useBouncingBehavior",{get:function(){return null!=this._bouncingBehavior},set:function(e){e!==this.useBouncingBehavior&&(e?(this._bouncingBehavior=new Ce,this.addBehavior(this._bouncingBehavior)):this._bouncingBehavior&&(this.removeBehavior(this._bouncingBehavior),this._bouncingBehavior=null))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"framingBehavior",{get:function(){return this._framingBehavior},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useFramingBehavior",{get:function(){return null!=this._framingBehavior},set:function(e){e!==this.useFramingBehavior&&(e?(this._framingBehavior=new Me,this.addBehavior(this._framingBehavior)):this._framingBehavior&&(this.removeBehavior(this._framingBehavior),this._framingBehavior=null))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"autoRotationBehavior",{get:function(){return this._autoRotationBehavior},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useAutoRotationBehavior",{get:function(){return null!=this._autoRotationBehavior},set:function(e){e!==this.useAutoRotationBehavior&&(e?(this._autoRotationBehavior=new Se,this.addBehavior(this._autoRotationBehavior)):this._autoRotationBehavior&&(this.removeBehavior(this._autoRotationBehavior),this._autoRotationBehavior=null))},enumerable:!0,configurable:!0}),t.prototype._initCache=function(){e.prototype._initCache.call(this),this._cache._target=new o.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.alpha=void 0,this._cache.beta=void 0,this._cache.radius=void 0,this._cache.targetScreenOffset=o.w.Zero()},t.prototype._updateCache=function(t){t||e.prototype._updateCache.call(this),this._cache._target.copyFrom(this._getTargetPosition()),this._cache.alpha=this.alpha,this._cache.beta=this.beta,this._cache.radius=this.radius,this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset)},t.prototype._getTargetPosition=function(){if(this._targetHost&&this._targetHost.getAbsolutePosition){var e=this._targetHost.absolutePosition;this._targetBoundingCenter?e.addToRef(this._targetBoundingCenter,this._target):this._target.copyFrom(e)}var t=this._getLockedTargetPosition();return t||this._target},t.prototype.storeState=function(){return this._storedAlpha=this.alpha,this._storedBeta=this.beta,this._storedRadius=this.radius,this._storedTarget=this._getTargetPosition().clone(),e.prototype.storeState.call(this)},t.prototype._restoreStateValues=function(){return!!e.prototype._restoreStateValues.call(this)&&(this.alpha=this._storedAlpha,this.beta=this._storedBeta,this.radius=this._storedRadius,this.setTarget(this._storedTarget.clone()),this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.inertialPanningX=0,this.inertialPanningY=0,!0)},t.prototype._isSynchronizedViewMatrix=function(){return!!e.prototype._isSynchronizedViewMatrix.call(this)&&(this._cache._target.equals(this._getTargetPosition())&&this._cache.alpha===this.alpha&&this._cache.beta===this.beta&&this._cache.radius===this.radius&&this._cache.targetScreenOffset.equals(this.targetScreenOffset))},t.prototype.attachControl=function(e,t,i,n){var r=this;void 0===i&&(i=!0),void 0===n&&(n=2),this._useCtrlForPanning=i,this._panningMouseButton=n,this.inputs.attachElement(e,t),this._reset=function(){r.inertialAlphaOffset=0,r.inertialBetaOffset=0,r.inertialRadiusOffset=0,r.inertialPanningX=0,r.inertialPanningY=0}},t.prototype.detachControl=function(e){this.inputs.detachElement(e),this._reset&&this._reset()},t.prototype._checkInputs=function(){if(!this._collisionTriggered){if(this.inputs.checkInputs(),0!==this.inertialAlphaOffset||0!==this.inertialBetaOffset||0!==this.inertialRadiusOffset){var t=this.inertialAlphaOffset;this.beta<=0&&(t*=-1),this.getScene().useRightHandedSystem&&(t*=-1),this.parent&&this.parent._getWorldMatrixDeterminant()<0&&(t*=-1),this.alpha+=t,this.beta+=this.inertialBetaOffset,this.radius-=this.inertialRadiusOffset,this.inertialAlphaOffset*=this.inertia,this.inertialBetaOffset*=this.inertia,this.inertialRadiusOffset*=this.inertia,Math.abs(this.inertialAlphaOffset)Math.PI&&(this.beta=this.beta-2*Math.PI):this.betathis.upperBetaLimit&&(this.beta=this.upperBetaLimit),null!==this.lowerAlphaLimit&&this.alphathis.upperAlphaLimit&&(this.alpha=this.upperAlphaLimit),null!==this.lowerRadiusLimit&&this.radiusthis.upperRadiusLimit&&(this.radius=this.upperRadiusLimit,this.inertialRadiusOffset=0)},t.prototype.rebuildAnglesAndRadius=function(){this._position.subtractToRef(this._getTargetPosition(),this._computationVector),0===this._upVector.x&&1===this._upVector.y&&0===this._upVector.z||o.x.TransformCoordinatesToRef(this._computationVector,this._upToYMatrix,this._computationVector),this.radius=this._computationVector.length(),0===this.radius&&(this.radius=1e-4),0===this._computationVector.x&&0===this._computationVector.z?this.alpha=Math.PI/2:this.alpha=Math.acos(this._computationVector.x/Math.sqrt(Math.pow(this._computationVector.x,2)+Math.pow(this._computationVector.z,2))),this._computationVector.z<0&&(this.alpha=2*Math.PI-this.alpha),this.beta=Math.acos(this._computationVector.y/this.radius),this._checkLimits()},t.prototype.setPosition=function(e){this._position.equals(e)||(this._position.copyFrom(e),this.rebuildAnglesAndRadius())},t.prototype.setTarget=function(e,t,i){if(void 0===t&&(t=!1),void 0===i&&(i=!1),e.getBoundingInfo)this._targetBoundingCenter=t?e.getBoundingInfo().boundingBox.centerWorld.clone():null,e.computeWorldMatrix(),this._targetHost=e,this._target=this._getTargetPosition(),this.onMeshTargetChangedObservable.notifyObservers(this._targetHost);else{var n=e,r=this._getTargetPosition();if(r&&!i&&r.equals(n))return;this._targetHost=null,this._target=n,this._targetBoundingCenter=null,this.onMeshTargetChangedObservable.notifyObservers(null)}this.rebuildAnglesAndRadius()},t.prototype._getViewMatrix=function(){var e=Math.cos(this.alpha),t=Math.sin(this.alpha),i=Math.cos(this.beta),n=Math.sin(this.beta);0===n&&(n=1e-4);var r=this._getTargetPosition();if(this._computationVector.copyFromFloats(this.radius*e*n,this.radius*i,this.radius*t*n),0===this._upVector.x&&1===this._upVector.y&&0===this._upVector.z||o.x.TransformCoordinatesToRef(this._computationVector,this._YToUpMatrix,this._computationVector),r.addToRef(this._computationVector,this._newPosition),this.getScene().collisionsEnabled&&this.checkCollisions){var s=this.getScene().collisionCoordinator;this._collider||(this._collider=s.createCollider()),this._collider._radius=this.collisionRadius,this._newPosition.subtractToRef(this._position,this._collisionVelocity),this._collisionTriggered=!0,s.getNewPosition(this._position,this._collisionVelocity,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)}else{this._position.copyFrom(this._newPosition);var a=this.upVector;this.allowUpsideDown&&n<0&&(a=(a=a.clone()).negate()),this._computeViewMatrix(this._position,r,a),this._viewMatrix.addAtIndex(12,this.targetScreenOffset.x),this._viewMatrix.addAtIndex(13,this.targetScreenOffset.y)}return this._currentTarget=r,this._viewMatrix},t.prototype.zoomOn=function(e,t){void 0===t&&(t=!1),e=e||this.getScene().meshes;var i=fe.a.MinMax(e),n=o.x.Distance(i.min,i.max);this.radius=n*this.zoomOnFactor,this.focusOn({min:i.min,max:i.max,distance:n},t)},t.prototype.focusOn=function(e,t){var i,n;if(void 0===t&&(t=!1),void 0===e.min){var r=e||this.getScene().meshes;i=fe.a.MinMax(r),n=o.x.Distance(i.min,i.max)}else{i=e,n=e.distance}this._target=fe.a.Center(i),t||(this.maxZ=2*n)},t.prototype.createRigCamera=function(e,i){var n=0;switch(this.cameraRigMode){case Ne.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case Ne.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:case Ne.a.RIG_MODE_VR:n=this._cameraRigParams.stereoHalfAngle*(0===i?1:-1);break;case Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:n=this._cameraRigParams.stereoHalfAngle*(0===i?-1:1)}var r=new t(e,this.alpha+n,this.beta,this.radius,this._target,this.getScene());return r._cameraRigParams={},r},t.prototype._updateRigCameras=function(){var t=this._rigCameras[0],i=this._rigCameras[1];switch(t.beta=i.beta=this.beta,this.cameraRigMode){case Ne.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case Ne.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:case Ne.a.RIG_MODE_VR:t.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle,i.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle;break;case Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:t.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle,i.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle}e.prototype._updateRigCameras.call(this)},t.prototype.dispose=function(){this.inputs.clear(),e.prototype.dispose.call(this)},t.prototype.getClassName=function(){return"ArcRotateCamera"},l.c([Object(L.c)()],t.prototype,"alpha",void 0),l.c([Object(L.c)()],t.prototype,"beta",void 0),l.c([Object(L.c)()],t.prototype,"radius",void 0),l.c([Object(L.o)("target")],t.prototype,"_target",void 0),l.c([Object(L.o)("upVector")],t.prototype,"_upVector",void 0),l.c([Object(L.c)()],t.prototype,"inertialAlphaOffset",void 0),l.c([Object(L.c)()],t.prototype,"inertialBetaOffset",void 0),l.c([Object(L.c)()],t.prototype,"inertialRadiusOffset",void 0),l.c([Object(L.c)()],t.prototype,"lowerAlphaLimit",void 0),l.c([Object(L.c)()],t.prototype,"upperAlphaLimit",void 0),l.c([Object(L.c)()],t.prototype,"lowerBetaLimit",void 0),l.c([Object(L.c)()],t.prototype,"upperBetaLimit",void 0),l.c([Object(L.c)()],t.prototype,"lowerRadiusLimit",void 0),l.c([Object(L.c)()],t.prototype,"upperRadiusLimit",void 0),l.c([Object(L.c)()],t.prototype,"inertialPanningX",void 0),l.c([Object(L.c)()],t.prototype,"inertialPanningY",void 0),l.c([Object(L.c)()],t.prototype,"pinchToPanMaxDistance",void 0),l.c([Object(L.c)()],t.prototype,"panningDistanceLimit",void 0),l.c([Object(L.o)()],t.prototype,"panningOriginTarget",void 0),l.c([Object(L.c)()],t.prototype,"panningInertia",void 0),l.c([Object(L.c)()],t.prototype,"zoomOnFactor",void 0),l.c([Object(L.c)()],t.prototype,"targetScreenOffset",void 0),l.c([Object(L.c)()],t.prototype,"allowUpsideDown",void 0),l.c([Object(L.c)()],t.prototype,"useInputToRestoreState",void 0),t}(yt);F.a.AddNodeConstructor("DeviceOrientationCamera",function(e,t){return function(){return new At(e,o.x.Zero(),t)}});var At=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r._tmpDragQuaternion=new o.q,r._disablePointerInputWhenUsingDeviceOrientation=!0,r._dragFactor=0,r._quaternionCache=new o.q,r.inputs.addDeviceOrientation(),r.inputs._deviceOrientationInput&&r.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce(function(){r._disablePointerInputWhenUsingDeviceOrientation&&r.inputs._mouseInput&&(r.inputs._mouseInput._allowCameraRotation=!1,r.inputs._mouseInput.onPointerMovedObservable.add(function(e){0!=r._dragFactor&&(r._initialQuaternion||(r._initialQuaternion=new o.q),o.q.FromEulerAnglesToRef(0,e.offsetX*r._dragFactor,0,r._tmpDragQuaternion),r._initialQuaternion.multiplyToRef(r._tmpDragQuaternion,r._initialQuaternion))}))}),r}return l.d(t,e),t.prototype.enableHorizontalDragging=function(e){void 0===e&&(e=1/300),this._dragFactor=e},t.prototype.getClassName=function(){return"DeviceOrientationCamera"},t.prototype._checkInputs=function(){e.prototype._checkInputs.call(this),this._quaternionCache.copyFrom(this.rotationQuaternion),this._initialQuaternion&&this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion)},t.prototype.resetToCurrentRotation=function(e){var t=this;void 0===e&&(e=o.c.Y),this.rotationQuaternion&&(this._initialQuaternion||(this._initialQuaternion=new o.q),this._initialQuaternion.copyFrom(this._quaternionCache||this.rotationQuaternion),["x","y","z"].forEach(function(i){e[i]?t._initialQuaternion[i]*=-1:t._initialQuaternion[i]=0}),this._initialQuaternion.normalize(),this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion))},t}(bt),xt=function(e){function t(t){return e.call(this,t)||this}return l.d(t,e),t.prototype.addKeyboard=function(){return this.add(new rt),this},t.prototype.addMouse=function(e){return void 0===e&&(e=!0),this.add(new ot(e)),this},t}(Xe),Rt=function(e){function t(t,i,n,r){void 0===r&&(r=!0);var s=e.call(this,t,i,n,r)||this;return s.ellipsoid=new o.x(1,1,1),s.ellipsoidOffset=new o.x(0,0,0),s.checkCollisions=!1,s.applyGravity=!1,s.cameraDirection=o.x.Zero(),s._trackRoll=0,s.rollCorrect=100,s.bankedTurn=!1,s.bankedTurnLimit=Math.PI/2,s.bankedTurnMultiplier=1,s._needMoveForGravity=!1,s._oldPosition=o.x.Zero(),s._diffPosition=o.x.Zero(),s._newPosition=o.x.Zero(),s._collisionMask=-1,s._onCollisionPositionChange=function(e,t,i){void 0===i&&(i=null);var n;n=t,s._newPosition.copyFrom(n),s._newPosition.subtractToRef(s._oldPosition,s._diffPosition),s._diffPosition.length()>ge.b.CollisionsEpsilon&&(s.position.addInPlace(s._diffPosition),s.onCollide&&i&&s.onCollide(i))},s.inputs=new xt(s),s.inputs.addKeyboard().addMouse(),s}return l.d(t,e),Object.defineProperty(t.prototype,"angularSensibility",{get:function(){var e=this.inputs.attached.mouse;return e?e.angularSensibility:0},set:function(e){var t=this.inputs.attached.mouse;t&&(t.angularSensibility=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysForward",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysForward:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysForward=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysBackward",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysBackward:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysBackward=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysUp",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUp=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysDown",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDown=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysLeft",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"keysRight",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysRight=e)},enumerable:!0,configurable:!0}),t.prototype.attachControl=function(e,t){this.inputs.attachElement(e,t)},t.prototype.detachControl=function(e){this.inputs.detachElement(e),this.cameraDirection=new o.x(0,0,0)},Object.defineProperty(t.prototype,"collisionMask",{get:function(){return this._collisionMask},set:function(e){this._collisionMask=isNaN(e)?-1:e},enumerable:!0,configurable:!0}),t.prototype._collideWithWorld=function(e){(this.parent?o.x.TransformCoordinates(this.position,this.parent.getWorldMatrix()):this.position).subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);var t=this.getScene().collisionCoordinator;this._collider||(this._collider=t.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;var i=e;this.applyGravity&&(i=e.add(this.getScene().gravity)),t.getNewPosition(this._oldPosition,i,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)},t.prototype._checkInputs=function(){this._localDirection||(this._localDirection=o.x.Zero(),this._transformedDirection=o.x.Zero()),this.inputs.checkInputs(),e.prototype._checkInputs.call(this)},t.prototype._decideIfNeedsToMove=function(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):e.prototype._updatePosition.call(this)},t.prototype.restoreRoll=function(e){var t=this._trackRoll,i=t-this.rotation.z;Math.abs(i)>=.001&&(this.rotation.z+=i/e,Math.abs(t-this.rotation.z)<=.001&&(this.rotation.z=t))},t.prototype.dispose=function(){this.inputs.clear(),e.prototype.dispose.call(this)},t.prototype.getClassName=function(){return"FlyCamera"},l.c([Object(L.o)()],t.prototype,"ellipsoid",void 0),l.c([Object(L.o)()],t.prototype,"ellipsoidOffset",void 0),l.c([Object(L.c)()],t.prototype,"checkCollisions",void 0),l.c([Object(L.c)()],t.prototype,"applyGravity",void 0),t}(yt),Pt=function(e){function t(t){return e.call(this,t)||this}return l.d(t,e),t.prototype.addKeyboard=function(){return this.add(new st),this},t.prototype.addMouseWheel=function(){return this.add(new at),this},t.prototype.addPointers=function(){return this.add(new ct),this},t.prototype.addVRDeviceOrientation=function(){return console.warn("DeviceOrientation support not yet implemented for FollowCamera."),this},t}(Xe);F.a.AddNodeConstructor("FollowCamera",function(e,t){return function(){return new Ct(e,o.x.Zero(),t)}}),F.a.AddNodeConstructor("ArcFollowCamera",function(e,t){return function(){return new Mt(e,0,0,1,null,t)}});var St,Ct=function(e){function t(t,i,n,r){void 0===r&&(r=null);var o=e.call(this,t,i,n)||this;return o.radius=12,o.lowerRadiusLimit=null,o.upperRadiusLimit=null,o.rotationOffset=0,o.lowerRotationOffsetLimit=null,o.upperRotationOffsetLimit=null,o.heightOffset=4,o.lowerHeightOffsetLimit=null,o.upperHeightOffsetLimit=null,o.cameraAcceleration=.05,o.maxCameraSpeed=20,o.lockedTarget=r,o.inputs=new Pt(o),o.inputs.addKeyboard().addMouseWheel().addPointers(),o}return l.d(t,e),t.prototype._follow=function(e){if(e){var t;if(e.rotationQuaternion){var i=new o.j;e.rotationQuaternion.toRotationMatrix(i),t=Math.atan2(i.m[8],i.m[10])}else t=e.rotation.y;var n=ye.h.ToRadians(this.rotationOffset)+t,r=e.getAbsolutePosition(),s=r.x+Math.sin(n)*this.radius,a=r.z+Math.cos(n)*this.radius,c=s-this.position.x,l=r.y+this.heightOffset-this.position.y,u=a-this.position.z,h=c*this.cameraAcceleration*2,d=l*this.cameraAcceleration,f=u*this.cameraAcceleration*2;(h>this.maxCameraSpeed||h<-this.maxCameraSpeed)&&(h=h<1?-this.maxCameraSpeed:this.maxCameraSpeed),(d>this.maxCameraSpeed||d<-this.maxCameraSpeed)&&(d=d<1?-this.maxCameraSpeed:this.maxCameraSpeed),(f>this.maxCameraSpeed||f<-this.maxCameraSpeed)&&(f=f<1?-this.maxCameraSpeed:this.maxCameraSpeed),this.position=new o.x(this.position.x+h,this.position.y+d,this.position.z+f),this.setTarget(r)}},t.prototype.attachControl=function(e,t){this.inputs.attachElement(e,t),this._reset=function(){}},t.prototype.detachControl=function(e){this.inputs.detachElement(e),this._reset&&this._reset()},t.prototype._checkInputs=function(){this.inputs.checkInputs(),this._checkLimits(),e.prototype._checkInputs.call(this),this.lockedTarget&&this._follow(this.lockedTarget)},t.prototype._checkLimits=function(){null!==this.lowerRadiusLimit&&this.radiusthis.upperRadiusLimit&&(this.radius=this.upperRadiusLimit),null!==this.lowerHeightOffsetLimit&&this.heightOffsetthis.upperHeightOffsetLimit&&(this.heightOffset=this.upperHeightOffsetLimit),null!==this.lowerRotationOffsetLimit&&this.rotationOffsetthis.upperRotationOffsetLimit&&(this.rotationOffset=this.upperRotationOffsetLimit)},t.prototype.getClassName=function(){return"FollowCamera"},l.c([Object(L.c)()],t.prototype,"radius",void 0),l.c([Object(L.c)()],t.prototype,"lowerRadiusLimit",void 0),l.c([Object(L.c)()],t.prototype,"upperRadiusLimit",void 0),l.c([Object(L.c)()],t.prototype,"rotationOffset",void 0),l.c([Object(L.c)()],t.prototype,"lowerRotationOffsetLimit",void 0),l.c([Object(L.c)()],t.prototype,"upperRotationOffsetLimit",void 0),l.c([Object(L.c)()],t.prototype,"heightOffset",void 0),l.c([Object(L.c)()],t.prototype,"lowerHeightOffsetLimit",void 0),l.c([Object(L.c)()],t.prototype,"upperHeightOffsetLimit",void 0),l.c([Object(L.c)()],t.prototype,"cameraAcceleration",void 0),l.c([Object(L.c)()],t.prototype,"maxCameraSpeed",void 0),l.c([Object(L.k)("lockedTargetId")],t.prototype,"lockedTarget",void 0),t}(yt),Mt=function(e){function t(t,i,n,r,s,a){var c=e.call(this,t,o.x.Zero(),a)||this;return c.alpha=i,c.beta=n,c.radius=r,c.target=s,c._cartesianCoordinates=o.x.Zero(),c._follow(),c}return l.d(t,e),t.prototype._follow=function(){if(this.target){this._cartesianCoordinates.x=this.radius*Math.cos(this.alpha)*Math.cos(this.beta),this._cartesianCoordinates.y=this.radius*Math.sin(this.beta),this._cartesianCoordinates.z=this.radius*Math.sin(this.alpha)*Math.cos(this.beta);var e=this.target.getAbsolutePosition();this.position=e.add(this._cartesianCoordinates),this.setTarget(e)}},t.prototype._checkInputs=function(){e.prototype._checkInputs.call(this),this._follow()},t.prototype.getClassName=function(){return"ArcFollowCamera"},t}(yt),Ot=i(35),It=i(39);!function(e){e[e.VIVE=0]="VIVE",e[e.OCULUS=1]="OCULUS",e[e.WINDOWS=2]="WINDOWS",e[e.GEAR_VR=3]="GEAR_VR",e[e.DAYDREAM=4]="DAYDREAM",e[e.GENERIC=5]="GENERIC"}(St||(St={}));var Dt,Lt,wt=function(){function e(){}return e.InitiateController=function(e){for(var t=0,i=this._ControllerFactories;tthis._maxRotationDistFromHeadset){var n=i-(i<0?-this._maxRotationDistFromHeadset:this._maxRotationDistFromHeadset);this._draggedRoomRotation+=n;var r=Math.sin(-n),s=Math.cos(-n);this._calculatedPosition.x=this._calculatedPosition.x*s-this._calculatedPosition.z*r,this._calculatedPosition.z=this._calculatedPosition.x*r+this._calculatedPosition.z*s}}o.x.TransformCoordinatesToRef(this._calculatedPosition,this._deviceToWorld,this.devicePosition),this._deviceToWorld.getRotationMatrixToRef(this._workingMatrix),o.q.FromRotationMatrixToRef(this._workingMatrix,this.deviceRotationQuaternion),this.deviceRotationQuaternion.multiplyInPlace(this._calculatedRotation),this._mesh&&(this._mesh.position.copyFrom(this.devicePosition),this._mesh.rotationQuaternion&&this._mesh.rotationQuaternion.copyFrom(this.deviceRotationQuaternion))},t.prototype.updateFromDevice=function(e){if(e){this.rawPose=e,e.position&&(this._deviceRoomPosition.copyFromFloats(e.position[0],e.position[1],-e.position[2]),this._mesh&&this._mesh.getScene().useRightHandedSystem&&(this._deviceRoomPosition.z*=-1),this._trackPosition&&this._deviceRoomPosition.scaleToRef(this.deviceScaleFactor,this._calculatedPosition),this._calculatedPosition.addInPlace(this.position));var t=this.rawPose;e.orientation&&t.orientation&&(this._deviceRoomRotationQuaternion.copyFromFloats(t.orientation[0],t.orientation[1],-t.orientation[2],-t.orientation[3]),this._mesh&&(this._mesh.getScene().useRightHandedSystem?(this._deviceRoomRotationQuaternion.z*=-1,this._deviceRoomRotationQuaternion.w*=-1):this._deviceRoomRotationQuaternion.multiplyToRef(this._leftHandSystemQuaternion,this._deviceRoomRotationQuaternion)),this._deviceRoomRotationQuaternion.multiplyToRef(this.rotationQuaternion,this._calculatedRotation))}},t.prototype.attachToMesh=function(e){if(this._mesh&&(this._mesh.parent=null),this._mesh=e,this._poseControlledCamera&&(this._mesh.parent=this._poseControlledCamera),this._mesh.rotationQuaternion||(this._mesh.rotationQuaternion=new o.q),this._updatePoseAndMesh(),this._pointingPoseNode){for(var t=[],i=this._pointingPoseNode;i.parent;)t.push(i.parent),i=i.parent;t.reverse().forEach(function(e){e.computeWorldMatrix(!0)})}this._meshAttachedObservable.notifyObservers(e)},t.prototype.attachToPoseControlledCamera=function(e){this._poseControlledCamera=e,this._mesh&&(this._mesh.parent=this._poseControlledCamera)},t.prototype.dispose=function(){this._mesh&&this._mesh.dispose(),this._mesh=null,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"mesh",{get:function(){return this._mesh},enumerable:!0,configurable:!0}),t.prototype.getForwardRay=function(e){if(void 0===e&&(e=100),!this.mesh)return new It.a(o.x.Zero(),new o.x(0,0,1),e);var t=this._pointingPoseNode?this._pointingPoseNode.getWorldMatrix():this.mesh.getWorldMatrix(),i=t.getTranslation(),n=new o.x(0,0,-1),r=o.x.TransformNormal(n,t),s=o.x.Normalize(r);return new It.a(i,s,e)},t.POINTING_POSE="POINTING_POSE",t}(Ke);!function(e){e[e.A=0]="A",e[e.B=1]="B",e[e.X=2]="X",e[e.Y=3]="Y",e[e.Start=4]="Start",e[e.Back=5]="Back",e[e.LB=6]="LB",e[e.RB=7]="RB",e[e.LeftStick=8]="LeftStick",e[e.RightStick=9]="RightStick"}(Dt||(Dt={})),function(e){e[e.Up=0]="Up",e[e.Down=1]="Down",e[e.Left=2]="Left",e[e.Right=3]="Right"}(Lt||(Lt={}));var Nt=function(e){function t(t,i,n,o){void 0===o&&(o=!1);var s=e.call(this,t,i,n,0,1,2,3)||this;return s._leftTrigger=0,s._rightTrigger=0,s.onButtonDownObservable=new r.c,s.onButtonUpObservable=new r.c,s.onPadDownObservable=new r.c,s.onPadUpObservable=new r.c,s._buttonA=0,s._buttonB=0,s._buttonX=0,s._buttonY=0,s._buttonBack=0,s._buttonStart=0,s._buttonLB=0,s._buttonRB=0,s._buttonLeftStick=0,s._buttonRightStick=0,s._dPadUp=0,s._dPadDown=0,s._dPadLeft=0,s._dPadRight=0,s._isXboxOnePad=!1,s.type=Ke.XBOX,s._isXboxOnePad=o,s}return l.d(t,e),t.prototype.onlefttriggerchanged=function(e){this._onlefttriggerchanged=e},t.prototype.onrighttriggerchanged=function(e){this._onrighttriggerchanged=e},Object.defineProperty(t.prototype,"leftTrigger",{get:function(){return this._leftTrigger},set:function(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rightTrigger",{get:function(){return this._rightTrigger},set:function(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e},enumerable:!0,configurable:!0}),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype.ondpaddown=function(e){this._ondpaddown=e},t.prototype.ondpadup=function(e){this._ondpadup=e},t.prototype._setButtonValue=function(e,t,i){return e!==t&&(1===e&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),0===e&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype._setDPadValue=function(e,t,i){return e!==t&&(1===e&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),0===e&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e},Object.defineProperty(t.prototype,"buttonA",{get:function(){return this._buttonA},set:function(e){this._buttonA=this._setButtonValue(e,this._buttonA,Dt.A)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonB",{get:function(){return this._buttonB},set:function(e){this._buttonB=this._setButtonValue(e,this._buttonB,Dt.B)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonX",{get:function(){return this._buttonX},set:function(e){this._buttonX=this._setButtonValue(e,this._buttonX,Dt.X)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonY",{get:function(){return this._buttonY},set:function(e){this._buttonY=this._setButtonValue(e,this._buttonY,Dt.Y)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonStart",{get:function(){return this._buttonStart},set:function(e){this._buttonStart=this._setButtonValue(e,this._buttonStart,Dt.Start)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonBack",{get:function(){return this._buttonBack},set:function(e){this._buttonBack=this._setButtonValue(e,this._buttonBack,Dt.Back)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonLB",{get:function(){return this._buttonLB},set:function(e){this._buttonLB=this._setButtonValue(e,this._buttonLB,Dt.LB)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonRB",{get:function(){return this._buttonRB},set:function(e){this._buttonRB=this._setButtonValue(e,this._buttonRB,Dt.RB)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonLeftStick",{get:function(){return this._buttonLeftStick},set:function(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,Dt.LeftStick)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buttonRightStick",{get:function(){return this._buttonRightStick},set:function(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,Dt.RightStick)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dPadUp",{get:function(){return this._dPadUp},set:function(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,Lt.Up)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dPadDown",{get:function(){return this._dPadDown},set:function(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,Lt.Down)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dPadLeft",{get:function(){return this._dPadLeft},set:function(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,Lt.Left)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dPadRight",{get:function(){return this._dPadRight},set:function(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,Lt.Right)},enumerable:!0,configurable:!0}),t.prototype.update=function(){e.prototype.update.call(this),this._isXboxOnePad?(this.buttonA=this.browserGamepad.buttons[0].value,this.buttonB=this.browserGamepad.buttons[1].value,this.buttonX=this.browserGamepad.buttons[2].value,this.buttonY=this.browserGamepad.buttons[3].value,this.buttonLB=this.browserGamepad.buttons[4].value,this.buttonRB=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.axes[2],this.rightTrigger=this.browserGamepad.axes[5],this.buttonBack=this.browserGamepad.buttons[9].value,this.buttonStart=this.browserGamepad.buttons[8].value,this.buttonLeftStick=this.browserGamepad.buttons[6].value,this.buttonRightStick=this.browserGamepad.buttons[7].value,this.dPadUp=this.browserGamepad.buttons[11].value,this.dPadDown=this.browserGamepad.buttons[12].value,this.dPadLeft=this.browserGamepad.buttons[13].value,this.dPadRight=this.browserGamepad.buttons[14].value):(this.buttonA=this.browserGamepad.buttons[0].value,this.buttonB=this.browserGamepad.buttons[1].value,this.buttonX=this.browserGamepad.buttons[2].value,this.buttonY=this.browserGamepad.buttons[3].value,this.buttonLB=this.browserGamepad.buttons[4].value,this.buttonRB=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonBack=this.browserGamepad.buttons[8].value,this.buttonStart=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()},t}(Ke),Bt=function(){function e(e){var t=this;this._scene=e,this._babylonGamepads=[],this._oneGamepadConnected=!1,this._isMonitoring=!1,this.onGamepadDisconnectedObservable=new r.c,Ot.a.IsWindowObjectExist()?(this._gamepadEventSupported="GamepadEvent"in window,this._gamepadSupport=navigator.getGamepads||navigator.webkitGetGamepads||navigator.msGetGamepads||navigator.webkitGamepads):this._gamepadEventSupported=!1,this.onGamepadConnectedObservable=new r.c(function(e){for(var i in t._babylonGamepads){var n=t._babylonGamepads[i];n&&n._isConnected&&t.onGamepadConnectedObservable.notifyObserver(e,n)}}),this._onGamepadConnectedEvent=function(e){var i,n=e.gamepad;n.index in t._babylonGamepads&&t._babylonGamepads[n.index].isConnected||(t._babylonGamepads[n.index]?((i=t._babylonGamepads[n.index]).browserGamepad=n,i._isConnected=!0):i=t._addNewGamepad(n),t.onGamepadConnectedObservable.notifyObservers(i),t._startMonitoringGamepads())},this._onGamepadDisconnectedEvent=function(e){var i=e.gamepad;for(var n in t._babylonGamepads)if(t._babylonGamepads[n].index===i.index){var r=t._babylonGamepads[n];r._isConnected=!1,t.onGamepadDisconnectedObservable.notifyObservers(r);break}},this._gamepadSupport&&(this._updateGamepadObjects(),this._babylonGamepads.length&&this._startMonitoringGamepads(),this._gamepadEventSupported?(window.addEventListener("gamepadconnected",this._onGamepadConnectedEvent,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnectedEvent,!1)):this._startMonitoringGamepads())}return Object.defineProperty(e.prototype,"gamepads",{get:function(){return this._babylonGamepads},enumerable:!0,configurable:!0}),e.prototype.getGamepadByType=function(e){void 0===e&&(e=Ke.XBOX);for(var t=0,i=this._babylonGamepads;t0){for(var p=0;p0)for(var e=0;e0){var n=this._camera._getFirstPostProcess();n&&n.markTextureDirty()}this.onActivateObservable.clear(),this.onAfterRenderObservable.clear(),this.onApplyObservable.clear(),this.onBeforeRenderObservable.clear(),this.onSizeChangedObservable.clear()}},e}(),Wt="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\n}";zt.a.ShadersStore.passPixelShader=Wt;var Xt="\nvarying vec2 vUV;\nuniform samplerCube textureSampler;\nvoid main(void)\n{\nvec2 uv=vUV*2.0-1.0;\n#ifdef POSITIVEX\ngl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\n#endif\n#ifdef NEGATIVEX\ngl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\n#endif\n#ifdef POSITIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\n#endif\n#ifdef NEGATIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\n#endif\n#ifdef POSITIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\n#endif\n#ifdef NEGATIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\n#endif\n}";zt.a.ShadersStore.passCubePixelShader=Xt;var Yt=function(e){function t(t,i,n,r,o,s,a,c){return void 0===n&&(n=null),void 0===a&&(a=_.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1),e.call(this,t,"pass",null,null,i,n,r,o,s,void 0,a,void 0,null,c)||this}return l.d(t,e),t}(Ht),Kt=function(e){function t(t,i,n,r,o,s,a,c){void 0===n&&(n=null),void 0===a&&(a=_.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1);var l=e.call(this,t,"passCube",null,null,i,n,r,o,s,"#define POSITIVEX",a,void 0,null,c)||this;return l._face=0,l}return l.d(t,e),Object.defineProperty(t.prototype,"face",{get:function(){return this._face},set:function(e){if(!(e<0||e>5))switch(this._face=e,this._face){case 0:this.updateEffect("#define POSITIVEX");break;case 1:this.updateEffect("#define NEGATIVEX");break;case 2:this.updateEffect("#define POSITIVEY");break;case 3:this.updateEffect("#define NEGATIVEY");break;case 4:this.updateEffect("#define POSITIVEZ");break;case 5:this.updateEffect("#define NEGATIVEZ")}},enumerable:!0,configurable:!0}),t}(Ht);ge.b._RescalePostProcessFactory=function(e){return new Yt("rescale",1,null,ge.b.TEXTURE_BILINEAR_SAMPLINGMODE,e,!1,ge.b.TEXTURETYPE_UNSIGNED_INT)};var Qt="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D leftSampler;\nvoid main(void)\n{\nvec4 leftFrag=texture2D(leftSampler,vUV);\nleftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);\nvec4 rightFrag=texture2D(textureSampler,vUV);\nrightFrag=vec4(rightFrag.r,1.0,1.0,1.0);\ngl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);\n}";zt.a.ShadersStore.anaglyphPixelShader=Qt;var qt=function(e){function t(t,i,n,r,o,s){var a=e.call(this,t,"anaglyph",null,["leftSampler"],i,n[1],r,o,s)||this;return a._passedProcess=n[0]._rigPostProcess,a.onApplyObservable.add(function(e){e.setTextureFromPostProcess("leftSampler",a._passedProcess)}),a}return l.d(t,e),t}(Ht);Ne.a._setStereoscopicAnaglyphRigMode=function(e){e._rigCameras[0]._rigPostProcess=new Yt(e.name+"_passthru",1,e._rigCameras[0]),e._rigCameras[1]._rigPostProcess=new qt(e.name+"_anaglyph",1,e._rigCameras)},F.a.AddNodeConstructor("AnaglyphArcRotateCamera",function(e,t,i){return function(){return new Zt(e,0,0,1,o.x.Zero(),i.interaxial_distance,t)}});var Zt=function(e){function t(t,i,n,r,o,s,a){var c=e.call(this,t,i,n,r,o,a)||this;return c.interaxialDistance=s,c.setCameraRigMode(Ne.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:s}),c}return l.d(t,e),t.prototype.getClassName=function(){return"AnaglyphArcRotateCamera"},t}(Et);F.a.AddNodeConstructor("AnaglyphFreeCamera",function(e,t,i){return function(){return new Jt(e,o.x.Zero(),i.interaxial_distance,t)}});var Jt=function(e){function t(t,i,n,r){var o=e.call(this,t,i,r)||this;return o.interaxialDistance=n,o.setCameraRigMode(Ne.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n}),o}return l.d(t,e),t.prototype.getClassName=function(){return"AnaglyphFreeCamera"},t}(bt);F.a.AddNodeConstructor("AnaglyphGamepadCamera",function(e,t,i){return function(){return new $t(e,o.x.Zero(),i.interaxial_distance,t)}});var $t=function(e){function t(t,i,n,r){var o=e.call(this,t,i,r)||this;return o.interaxialDistance=n,o.setCameraRigMode(Ne.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n}),o}return l.d(t,e),t.prototype.getClassName=function(){return"AnaglyphGamepadCamera"},t}(Gt);F.a.AddNodeConstructor("AnaglyphUniversalCamera",function(e,t,i){return function(){return new ei(e,o.x.Zero(),i.interaxial_distance,t)}});var ei=function(e){function t(t,i,n,r){var o=e.call(this,t,i,r)||this;return o.interaxialDistance=n,o.setCameraRigMode(Ne.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n}),o}return l.d(t,e),t.prototype.getClassName=function(){return"AnaglyphUniversalCamera"},t}(Vt),ti="const vec3 TWO=vec3(2.0,2.0,2.0);\nvarying vec2 vUV;\nuniform sampler2D camASampler;\nuniform sampler2D textureSampler;\nuniform vec2 stepSize;\nvoid main(void)\n{\nbool useCamB;\nvec2 texCoord1;\nvec2 texCoord2;\nvec3 frag1;\nvec3 frag2;\n#ifdef IS_STEREOSCOPIC_HORIZ\nuseCamB=vUV.x>0.5;\ntexCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);\ntexCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\n#else\nuseCamB=vUV.y>0.5;\ntexCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);\ntexCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\n#endif\n\nif (useCamB){\nfrag1=texture2D(textureSampler,texCoord1).rgb;\nfrag2=texture2D(textureSampler,texCoord2).rgb;\n}else{\nfrag1=texture2D(camASampler ,texCoord1).rgb;\nfrag2=texture2D(camASampler ,texCoord2).rgb;\n}\ngl_FragColor=vec4((frag1+frag2)/TWO,1.0);\n}";zt.a.ShadersStore.stereoscopicInterlacePixelShader=ti;var ii=function(e){function t(t,i,n,r,s,a){var c=e.call(this,t,"stereoscopicInterlace",["stepSize"],["camASampler"],1,i[1],r,s,a,n?"#define IS_STEREOSCOPIC_HORIZ 1":void 0)||this;return c._passedProcess=i[0]._rigPostProcess,c._stepSize=new o.w(1/c.width,1/c.height),c.onSizeChangedObservable.add(function(){c._stepSize=new o.w(1/c.width,1/c.height)}),c.onApplyObservable.add(function(e){e.setTextureFromPostProcess("camASampler",c._passedProcess),e.setFloat2("stepSize",c._stepSize.x,c._stepSize.y)}),c}return l.d(t,e),t}(Ht);Ne.a._setStereoscopicRigMode=function(e){var t=e.cameraRigMode===Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL||e.cameraRigMode===Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;e._rigCameras[0]._rigPostProcess=new Yt(e.name+"_passthru",1,e._rigCameras[0]),e._rigCameras[1]._rigPostProcess=new ii(e.name+"_stereoInterlace",e._rigCameras,t)},F.a.AddNodeConstructor("StereoscopicArcRotateCamera",function(e,t,i){return function(){return new ni(e,0,0,1,o.x.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}});var ni=function(e){function t(t,i,n,r,o,s,a,c){var l=e.call(this,t,i,n,r,o,c)||this;return l.interaxialDistance=s,l.isStereoscopicSideBySide=a,l.setCameraRigMode(a?Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:Ne.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:s}),l}return l.d(t,e),t.prototype.getClassName=function(){return"StereoscopicArcRotateCamera"},t}(Et);F.a.AddNodeConstructor("StereoscopicFreeCamera",function(e,t,i){return function(){return new ri(e,o.x.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}});var ri=function(e){function t(t,i,n,r,o){var s=e.call(this,t,i,o)||this;return s.interaxialDistance=n,s.isStereoscopicSideBySide=r,s.setCameraRigMode(r?Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:Ne.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n}),s}return l.d(t,e),t.prototype.getClassName=function(){return"StereoscopicFreeCamera"},t}(bt);F.a.AddNodeConstructor("StereoscopicGamepadCamera",function(e,t,i){return function(){return new oi(e,o.x.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}});var oi=function(e){function t(t,i,n,r,o){var s=e.call(this,t,i,o)||this;return s.interaxialDistance=n,s.isStereoscopicSideBySide=r,s.setCameraRigMode(r?Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:Ne.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n}),s}return l.d(t,e),t.prototype.getClassName=function(){return"StereoscopicGamepadCamera"},t}(Gt);F.a.AddNodeConstructor("StereoscopicFreeCamera",function(e,t,i){return function(){return new si(e,o.x.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}});var si=function(e){function t(t,i,n,r,o){var s=e.call(this,t,i,o)||this;return s.interaxialDistance=n,s.isStereoscopicSideBySide=r,s.setCameraRigMode(r?Ne.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:Ne.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n}),s}return l.d(t,e),t.prototype.getClassName=function(){return"StereoscopicUniversalCamera"},t}(Vt);F.a.AddNodeConstructor("VirtualJoysticksCamera",function(e,t){return function(){return new ai(e,o.x.Zero(),t)}});var ai=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r.inputs.addVirtualJoystick(),r}return l.d(t,e),t.prototype.getClassName=function(){return"VirtualJoysticksCamera"},t}(bt),ci=function(){function e(){this.compensateDistortion=!0,this.multiviewEnabled=!1}return Object.defineProperty(e.prototype,"aspectRatio",{get:function(){return this.hResolution/(2*this.vResolution)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aspectRatioFov",{get:function(){return 2*Math.atan(this.postProcessScaleFactor*this.vScreenSize/(2*this.eyeToScreenDistance))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"leftHMatrix",{get:function(){var e=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return o.j.Translation(e,0,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rightHMatrix",{get:function(){var e=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return o.j.Translation(-e,0,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"leftPreViewMatrix",{get:function(){return o.j.Translation(.5*this.interpupillaryDistance,0,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rightPreViewMatrix",{get:function(){return o.j.Translation(-.5*this.interpupillaryDistance,0,0)},enumerable:!0,configurable:!0}),e.GetDefault=function(){var t=new e;return t.hResolution=1280,t.vResolution=800,t.hScreenSize=.149759993,t.vScreenSize=.0935999975,t.vScreenCenter=.0467999987,t.eyeToScreenDistance=.0410000011,t.lensSeparationDistance=.063500002,t.interpupillaryDistance=.064000003,t.distortionK=[1,.219999999,.239999995,0],t.chromaAbCorrection=[.995999992,-.00400000019,1.01400006,0],t.postProcessScaleFactor=1.714605507808412,t.lensCenterOffset=.151976421,t},e}(),li="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 LensCenter;\nuniform vec2 Scale;\nuniform vec2 ScaleIn;\nuniform vec4 HmdWarpParam;\nvec2 HmdWarp(vec2 in01) {\nvec2 theta=(in01-LensCenter)*ScaleIn;\nfloat rSq=theta.x*theta.x+theta.y*theta.y;\nvec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);\nreturn LensCenter+Scale*rvector;\n}\nvoid main(void)\n{\nvec2 tc=HmdWarp(vUV);\nif (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0)\ngl_FragColor=vec4(0.0,0.0,0.0,0.0);\nelse{\ngl_FragColor=texture2D(textureSampler,tc);\n}\n}";zt.a.ShadersStore.vrDistortionCorrectionPixelShader=li;var ui=function(e){function t(t,i,n,r){var s=e.call(this,t,"vrDistortionCorrection",["LensCenter","Scale","ScaleIn","HmdWarpParam"],null,r.postProcessScaleFactor,i,ke.a.BILINEAR_SAMPLINGMODE)||this;return s._isRightEye=n,s._distortionFactors=r.distortionK,s._postProcessScaleFactor=r.postProcessScaleFactor,s._lensCenterOffset=r.lensCenterOffset,s.adaptScaleToCurrentViewport=!0,s.onSizeChangedObservable.add(function(){s._scaleIn=new o.w(2,2/s.aspectRatio),s._scaleFactor=new o.w(1/s._postProcessScaleFactor*.5,1/s._postProcessScaleFactor*.5*s.aspectRatio),s._lensCenter=new o.w(s._isRightEye?.5-.5*s._lensCenterOffset:.5+.5*s._lensCenterOffset,.5)}),s.onApplyObservable.add(function(e){e.setFloat2("LensCenter",s._lensCenter.x,s._lensCenter.y),e.setFloat2("Scale",s._scaleFactor.x,s._scaleFactor.y),e.setFloat2("ScaleIn",s._scaleIn.x,s._scaleIn.y),e.setFloat4("HmdWarpParam",s._distortionFactors[0],s._distortionFactors[1],s._distortionFactors[2],s._distortionFactors[3])}),s}return l.d(t,e),t}(Ht),hi="#ifdef GL_ES\nprecision mediump sampler2DArray;\n#endif\nvarying vec2 vUV;\nuniform sampler2DArray multiviewSampler;\nuniform int imageIndex;\nvoid main(void)\n{\ngl_FragColor=texture(multiviewSampler,vec3(vUV,imageIndex));\n}";zt.a.ShadersStore.vrMultiviewToSingleviewPixelShader=hi;var di=i(63),fi=i(83),pi=i(91);ge.b.prototype.createRenderTargetCubeTexture=function(e,t){var i=l.a({generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:ge.b.TEXTURETYPE_UNSIGNED_INT,samplingMode:ge.b.TEXTURE_TRILINEAR_SAMPLINGMODE,format:ge.b.TEXTUREFORMAT_RGBA},t);i.generateStencilBuffer=i.generateDepthBuffer&&i.generateStencilBuffer,(i.type!==ge.b.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(i.type!==ge.b.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(i.samplingMode=ge.b.TEXTURE_NEAREST_SAMPLINGMODE);var n=this._gl,r=new ze.a(this,ze.a.DATASOURCE_RENDERTARGET);this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,r,!0);var o=this._getSamplingParameters(i.samplingMode,i.generateMipMaps);i.type!==ge.b.TEXTURETYPE_FLOAT||this._caps.textureFloat||(i.type=ge.b.TEXTURETYPE_UNSIGNED_INT,p.a.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_MAG_FILTER,o.mag),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_MIN_FILTER,o.min),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);for(var s=0;s<6;s++)n.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+s,0,this._getRGBABufferInternalSizedFormat(i.type,i.format),e,e,0,this._getInternalFormat(i.format),this._getWebGLTextureType(i.type),null);var a=n.createFramebuffer();return this._bindUnboundFramebuffer(a),r._depthStencilBuffer=this._setupFramebufferDepthAttachments(i.generateStencilBuffer,i.generateDepthBuffer,e,e),i.generateMipMaps&&n.generateMipmap(n.TEXTURE_CUBE_MAP),this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,null),n.bindRenderbuffer(n.RENDERBUFFER,null),this._bindUnboundFramebuffer(null),r._framebuffer=a,r.width=e,r.height=e,r.isReady=!0,r.isCube=!0,r.samples=1,r.generateMipMaps=i.generateMipMaps,r.samplingMode=i.samplingMode,r.type=i.type,r.format=i.format,r._generateDepthBuffer=i.generateDepthBuffer,r._generateStencilBuffer=i.generateStencilBuffer,this._internalTexturesCache.push(r),r};var _i=function(e){function t(t,i,n,s,a,c,l,u,h,d,f,p,g){void 0===a&&(a=!0),void 0===c&&(c=_.a.TEXTURETYPE_UNSIGNED_INT),void 0===l&&(l=!1),void 0===u&&(u=ke.a.TRILINEAR_SAMPLINGMODE),void 0===h&&(h=!0),void 0===d&&(d=!1),void 0===f&&(f=!1),void 0===p&&(p=_.a.TEXTUREFORMAT_RGBA),void 0===g&&(g=!1);var m=e.call(this,null,n,!s)||this;return m.isCube=l,m.renderParticles=!0,m.renderSprites=!1,m.coordinatesMode=ke.a.PROJECTION_MODE,m.ignoreCameraViewport=!1,m.onBeforeBindObservable=new r.c,m.onAfterUnbindObservable=new r.c,m.onBeforeRenderObservable=new r.c,m.onAfterRenderObservable=new r.c,m.onClearObservable=new r.c,m._currentRefreshId=-1,m._refreshRate=1,m._samples=1,m.boundingBoxPosition=o.x.Zero(),(n=m.getScene())?(m.renderList=new Array,m._engine=n.getEngine(),m.name=t,m.isRenderTarget=!0,m._initialSizeParameter=i,m._processSizeParameter(i),m._resizeObserver=m.getScene().getEngine().onResizeObservable.add(function(){}),m._generateMipMaps=!!s,m._doNotChangeAspectRatio=a,m._renderingManager=new pi.b(n),m._renderingManager._useSceneAutoClearSetup=!0,f?m:(m._renderTargetOptions={generateMipMaps:s,type:c,format:p,samplingMode:u,generateDepthBuffer:h,generateStencilBuffer:d},u===ke.a.NEAREST_SAMPLINGMODE&&(m.wrapU=ke.a.CLAMP_ADDRESSMODE,m.wrapV=ke.a.CLAMP_ADDRESSMODE),g||(l?(m._texture=n.getEngine().createRenderTargetCubeTexture(m.getRenderSize(),m._renderTargetOptions),m.coordinatesMode=ke.a.INVCUBIC_MODE,m._textureMatrix=o.j.Identity()):m._texture=n.getEngine().createRenderTargetTexture(m._size,m._renderTargetOptions)),m)):m}return l.d(t,e),Object.defineProperty(t.prototype,"renderList",{get:function(){return this._renderList},set:function(e){this._renderList=e,this._renderList&&this._hookArray(this._renderList)},enumerable:!0,configurable:!0}),t.prototype._hookArray=function(e){var t=this,i=e.push;e.push=function(){for(var n=[],r=0;r0&&(this._postProcesses[0].autoClear=!1))}},t.prototype._shouldRender=function(){return-1===this._currentRefreshId?(this._currentRefreshId=1,!0):this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,!0):(this._currentRefreshId++,!1)},t.prototype.getRenderSize=function(){return this.getRenderWidth()},t.prototype.getRenderWidth=function(){return this._size.width?this._size.width:this._size},t.prototype.getRenderHeight=function(){return this._size.width?this._size.height:this._size},Object.defineProperty(t.prototype,"canRescale",{get:function(){return!0},enumerable:!0,configurable:!0}),t.prototype.scale=function(e){var t=this.getRenderSize()*e;this.resize(t)},t.prototype.getReflectionTextureMatrix=function(){return this.isCube?this._textureMatrix:e.prototype.getReflectionTextureMatrix.call(this)},t.prototype.resize=function(e){var t=this.isCube;this.releaseInternalTexture();var i=this.getScene();i&&(this._processSizeParameter(e),this._texture=t?i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions):i.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions))},t.prototype.render=function(e,t){if(void 0===e&&(e=!1),void 0===t&&(t=!1),a=this.getScene()){var i,n=a.getEngine();if(void 0!==this.useCameraPostProcesses&&(e=this.useCameraPostProcesses),this._waitingRenderList){this.renderList=[];for(var r=0;r=0&&this._renderingManager.dispatchParticles(v))}if(this.isCube)for(var b=0;b<6;b++)this.renderToTarget(b,u,e,t),a.incrementRenderId(),a.resetCachedMaterial();else this.renderToTarget(0,u,e,t);this.onAfterUnbindObservable.notifyObservers(this),a.activeCamera&&(this.activeCamera&&this.activeCamera!==a.activeCamera&&a.setTransformMatrix(a.activeCamera.getViewMatrix(),a.activeCamera.getProjectionMatrix(!0)),n.setViewport(a.activeCamera.viewport)),a.resetCachedMaterial()}},t.prototype._bestReflectionRenderTargetDimension=function(e,t){var i=e*t,n=ye.h.NearestPOT(i+16384/(128+i));return Math.min(ye.h.FloorPOT(e),n)},t.prototype._bindFrameBuffer=function(e){void 0===e&&(e=0);var t=this.getScene();if(t){var i=t.getEngine();this._texture&&i.bindFramebuffer(this._texture,this.isCube?e:void 0,void 0,void 0,this.ignoreCameraViewport,this.depthStencilTexture?this.depthStencilTexture:void 0)}},t.prototype.unbindFrameBuffer=function(e,t){var i=this;this._texture&&e.unBindFramebuffer(this._texture,this.isCube,function(){i.onAfterRenderObservable.notifyObservers(t)})},t.prototype.renderToTarget=function(e,t,i,n){var r=this.getScene();if(r){var o=r.getEngine();if(this._texture){this._postProcessManager?this._postProcessManager._prepareFrame(this._texture,this._postProcesses):i&&r.postProcessManager._prepareFrame(this._texture)||this._bindFrameBuffer(e),this.onBeforeRenderObservable.notifyObservers(e),this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(o):o.clear(this.clearColor||r.clearColor,!0,!0,!0),this._doNotChangeAspectRatio||r.updateTransformMatrix(!0);for(var s=0,a=r._beforeRenderTargetDrawStage;s=0&&t.customRenderTargets.splice(i,1);for(var n=0,r=t.cameras;n=0&&o.customRenderTargets.splice(i,1)}e.prototype.dispose.call(this)}},t.prototype._rebuild=function(){this.refreshRate===t.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=t.REFRESHRATE_RENDER_ONCE),this._postProcessManager&&this._postProcessManager._rebuild()},t.prototype.freeRenderingGroups=function(){this._renderingManager&&this._renderingManager.freeRenderingGroups()},t.prototype.getViewCount=function(){return 1},t.REFRESHRATE_RENDER_ONCE=0,t.REFRESHRATE_RENDER_ONEVERYFRAME=1,t.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=2,t}(ke.a);ke.a._CreateRenderTargetTexture=function(e,t,i,n){return new _i(e,t,i,n)};var gi=function(e){function t(t,i){void 0===i&&(i=512);var n=e.call(this,"multiview rtt",i,t,!1,!0,ze.a.DATASOURCE_UNKNOWN,!1,void 0,!1,!1,!0,void 0,!0)||this,r=t.getEngine().createMultiviewRenderTargetTexture(n.getRenderWidth(),n.getRenderHeight());return r.isMultiview=!0,n._texture=r,n}return l.d(t,e),t.prototype._bindFrameBuffer=function(e){void 0===e&&(e=0),this._texture&&this.getScene().getEngine().bindMultiviewFramebuffer(this._texture)},t.prototype.getViewCount=function(){return 2},t}(_i);ge.b.prototype.createMultiviewRenderTargetTexture=function(e,t){var i=this._gl;if(!this.getCaps().multiview)throw"Multiview is not supported";var n=new ze.a(this,ze.a.DATASOURCE_UNKNOWN,!0);return n.width=e,n.height=t,n._framebuffer=i.createFramebuffer(),n._colorTextureArray=i.createTexture(),i.bindTexture(i.TEXTURE_2D_ARRAY,n._colorTextureArray),i.texStorage3D(i.TEXTURE_2D_ARRAY,1,i.RGBA8,e,t,2),n._depthStencilTextureArray=i.createTexture(),i.bindTexture(i.TEXTURE_2D_ARRAY,n._depthStencilTextureArray),i.texStorage3D(i.TEXTURE_2D_ARRAY,1,i.DEPTH32F_STENCIL8,e,t,2),n.isReady=!0,n},ge.b.prototype.bindMultiviewFramebuffer=function(e){var t=this._gl,i=this.getCaps().multiview;if(this.bindFramebuffer(e,void 0,void 0,void 0,!0),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._framebuffer),!e._colorTextureArray||!e._depthStencilTextureArray)throw"Invalid multiview frame buffer";i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,e._colorTextureArray,0,0,2),i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,e._depthStencilTextureArray,0,0,2)},Ne.a.prototype._useMultiviewToSingleView=!1,Ne.a.prototype._multiviewTexture=null,Ne.a.prototype._resizeOrCreateMultiviewTexture=function(e,t){this._multiviewTexture?this._multiviewTexture.getRenderWidth()==e&&this._multiviewTexture.getRenderHeight()==t||(this._multiviewTexture.dispose(),this._multiviewTexture=new gi(this.getScene(),{width:e,height:t})):this._multiviewTexture=new gi(this.getScene(),{width:e,height:t})},W.a.prototype._transformMatrixR=o.j.Zero(),W.a.prototype._multiviewSceneUbo=null,W.a.prototype._createMultiviewUbo=function(){this._multiviewSceneUbo=new di.a(this.getEngine(),void 0,!0),this._multiviewSceneUbo.addUniform("viewProjection",16),this._multiviewSceneUbo.addUniform("viewProjectionR",16),this._multiviewSceneUbo.addUniform("view",16)},W.a.prototype._updateMultiviewUbo=function(e,t){e&&t&&e.multiplyToRef(t,this._transformMatrixR),e&&t&&(e.multiplyToRef(t,o.t.Matrix[0]),o.i.GetRightPlaneToRef(o.t.Matrix[0],this._frustumPlanes[3])),this._multiviewSceneUbo&&(this._multiviewSceneUbo.updateMatrix("viewProjection",this.getTransformMatrix()),this._multiviewSceneUbo.updateMatrix("viewProjectionR",this._transformMatrixR),this._multiviewSceneUbo.updateMatrix("view",this._viewMatrix),this._multiviewSceneUbo.update())},W.a.prototype._renderMultiviewToSingleView=function(e){e._resizeOrCreateMultiviewTexture(e._rigPostProcess&&e._rigPostProcess&&e._rigPostProcess.width>0?e._rigPostProcess.width/2:this.getEngine().getRenderWidth(!0)/2,e._rigPostProcess&&e._rigPostProcess&&e._rigPostProcess.height>0?e._rigPostProcess.height:this.getEngine().getRenderHeight(!0)),this._multiviewSceneUbo||this._createMultiviewUbo(),e.outputRenderTarget=e._multiviewTexture,this._renderForCamera(e),e.outputRenderTarget=null;for(var t=0;t=2&&e.onControllersAttachedObservable.notifyObservers(e.controllers)}}})},t}(bt),Ai=function(e){function t(t){var i=e.call(this,t)||this;return i.onTriggerStateChangedObservable=new r.c,i.onMainButtonStateChangedObservable=new r.c,i.onSecondaryButtonStateChangedObservable=new r.c,i.onPadStateChangedObservable=new r.c,i.onPadValuesChangedObservable=new r.c,i.pad={x:0,y:0},i._changes={pressChanged:!1,touchChanged:!1,valueChanged:!1,changed:!1},i._buttons=new Array(t.buttons.length),i.hand=t.hand,i}return l.d(t,e),t.prototype.onButtonStateChange=function(e){this._onButtonStateChange=e},Object.defineProperty(t.prototype,"defaultModel",{get:function(){return this._defaultModel},enumerable:!0,configurable:!0}),t.prototype.update=function(){e.prototype.update.call(this);for(var t=0;t\n#include\n#include\nvoid main(void)\n{\nvec4 result=texture2D(textureSampler,vUV);\n#ifdef IMAGEPROCESSING\n#ifndef FROMLINEARSPACE\n\nresult.rgb=toLinearSpace(result.rgb);\n#endif\nresult=applyImageProcessing(result);\n#else\n\n#ifdef FROMLINEARSPACE\nresult=applyImageProcessing(result);\n#endif\n#endif\ngl_FragColor=result;\n}");zt.a.ShadersStore.imageProcessingPixelShader=Si;var Ci=function(e){function t(t,i,n,r,o,s,a,c){void 0===n&&(n=null),void 0===a&&(a=_.a.TEXTURETYPE_UNSIGNED_INT);var l=e.call(this,t,"imageProcessing",[],[],i,n,r,o,s,null,a,"postprocess",null,!0)||this;return l._fromLinearSpace=!0,l._defines={IMAGEPROCESSING:!1,VIGNETTE:!1,VIGNETTEBLENDMODEMULTIPLY:!1,VIGNETTEBLENDMODEOPAQUE:!1,TONEMAPPING:!1,TONEMAPPING_ACES:!1,CONTRAST:!1,COLORCURVES:!1,COLORGRADING:!1,COLORGRADING3D:!1,FROMLINEARSPACE:!1,SAMPLER3DGREENDEPTH:!1,SAMPLER3DBGRMAP:!1,IMAGEPROCESSINGPOSTPROCESS:!1,EXPOSURE:!1},c?(c.applyByPostProcess=!0,l._attachImageProcessingConfiguration(c,!0),l.fromLinearSpace=!1):(l._attachImageProcessingConfiguration(null,!0),l.imageProcessingConfiguration.applyByPostProcess=!0),l.onApply=function(e){l.imageProcessingConfiguration.bind(e,l.aspectRatio)},l}return l.d(t,e),Object.defineProperty(t.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e)},enumerable:!0,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e,t){var i=this;if(void 0===t&&(t=!1),e!==this._imageProcessingConfiguration){if(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e)this._imageProcessingConfiguration=e;else{var n=null,r=this.getEngine(),o=this.getCamera();if(o)n=o.getScene();else if(r&&r.scenes){var s=r.scenes;n=s[s.length-1]}else n=P.a.LastCreatedScene;this._imageProcessingConfiguration=n.imageProcessingConfiguration}this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(function(){i._updateParameters()})),t||this._updateParameters()}},Object.defineProperty(t.prototype,"colorCurves",{get:function(){return this.imageProcessingConfiguration.colorCurves},set:function(e){this.imageProcessingConfiguration.colorCurves=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"colorCurvesEnabled",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"colorGradingTexture",{get:function(){return this.imageProcessingConfiguration.colorGradingTexture},set:function(e){this.imageProcessingConfiguration.colorGradingTexture=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"colorGradingEnabled",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"exposure",{get:function(){return this.imageProcessingConfiguration.exposure},set:function(e){this.imageProcessingConfiguration.exposure=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"toneMappingEnabled",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"toneMappingType",{get:function(){return this._imageProcessingConfiguration.toneMappingType},set:function(e){this._imageProcessingConfiguration.toneMappingType=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contrast",{get:function(){return this.imageProcessingConfiguration.contrast},set:function(e){this.imageProcessingConfiguration.contrast=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteStretch",{get:function(){return this.imageProcessingConfiguration.vignetteStretch},set:function(e){this.imageProcessingConfiguration.vignetteStretch=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteCentreX",{get:function(){return this.imageProcessingConfiguration.vignetteCentreX},set:function(e){this.imageProcessingConfiguration.vignetteCentreX=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteCentreY",{get:function(){return this.imageProcessingConfiguration.vignetteCentreY},set:function(e){this.imageProcessingConfiguration.vignetteCentreY=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteWeight",{get:function(){return this.imageProcessingConfiguration.vignetteWeight},set:function(e){this.imageProcessingConfiguration.vignetteWeight=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteColor",{get:function(){return this.imageProcessingConfiguration.vignetteColor},set:function(e){this.imageProcessingConfiguration.vignetteColor=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteCameraFov",{get:function(){return this.imageProcessingConfiguration.vignetteCameraFov},set:function(e){this.imageProcessingConfiguration.vignetteCameraFov=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteBlendMode",{get:function(){return this.imageProcessingConfiguration.vignetteBlendMode},set:function(e){this.imageProcessingConfiguration.vignetteBlendMode=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vignetteEnabled",{get:function(){return this.imageProcessingConfiguration.vignetteEnabled},set:function(e){this.imageProcessingConfiguration.vignetteEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fromLinearSpace",{get:function(){return this._fromLinearSpace},set:function(e){this._fromLinearSpace!==e&&(this._fromLinearSpace=e,this._updateParameters())},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"ImageProcessingPostProcess"},t.prototype._updateParameters=function(){this._defines.FROMLINEARSPACE=this._fromLinearSpace,this.imageProcessingConfiguration.prepareDefines(this._defines,!0);var e="";for(var t in this._defines)this._defines[t]&&(e+="#define "+t+";\r\n");var i=["textureSampler"],n=["scale"];xi.a&&(xi.a.PrepareSamplers(i,this._defines),xi.a.PrepareUniforms(n,this._defines)),this.updateEffect(e,n,i)},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration&&(this.imageProcessingConfiguration.applyByPostProcess=!1)},l.c([Object(L.c)()],t.prototype,"_fromLinearSpace",void 0),t}(Ht),Mi=i(13),Oi=i(4);fe.a._GroundMeshParser=function(e,t){return Ii.Parse(e,t)};var Ii=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.generateOctree=!1,n}return l.d(t,e),t.prototype.getClassName=function(){return"GroundMesh"},Object.defineProperty(t.prototype,"subdivisions",{get:function(){return Math.min(this._subdivisionsX,this._subdivisionsY)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"subdivisionsX",{get:function(){return this._subdivisionsX},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"subdivisionsY",{get:function(){return this._subdivisionsY},enumerable:!0,configurable:!0}),t.prototype.optimize=function(e,t){void 0===t&&(t=32),this._subdivisionsX=e,this._subdivisionsY=e,this.subdivide(e);this.createOrUpdateSubmeshesOctree&&this.createOrUpdateSubmeshesOctree(t)},t.prototype.getHeightAtCoordinates=function(e,t){var i=this.getWorldMatrix(),n=o.t.Matrix[5];i.invertToRef(n);var r=o.t.Vector3[8];if(o.x.TransformCoordinatesFromFloatsToRef(e,0,t,n,r),e=r.x,t=r.z,ethis._maxX||tthis._maxZ)return this.position.y;this._heightQuads&&0!=this._heightQuads.length||(this._initHeightQuads(),this._computeHeightQuads());var s=this._getFacetAt(e,t),a=-(s.x*e+s.z*t+s.w)/s.y;return o.x.TransformCoordinatesFromFloatsToRef(0,a,0,i,r),r.y},t.prototype.getNormalAtCoordinates=function(e,t){var i=new o.x(0,1,0);return this.getNormalAtCoordinatesToRef(e,t,i),i},t.prototype.getNormalAtCoordinatesToRef=function(e,t,i){var n=this.getWorldMatrix(),r=o.t.Matrix[5];n.invertToRef(r);var s=o.t.Vector3[8];if(o.x.TransformCoordinatesFromFloatsToRef(e,0,t,r,s),e=s.x,t=s.z,ethis._maxX||tthis._maxZ)return this;this._heightQuads&&0!=this._heightQuads.length||(this._initHeightQuads(),this._computeHeightQuads());var a=this._getFacetAt(e,t);return o.x.TransformNormalFromFloatsToRef(a.x,a.y,a.z,n,i),this},t.prototype.updateCoordinateHeights=function(){return this._heightQuads&&0!=this._heightQuads.length||this._initHeightQuads(),this._computeHeightQuads(),this},t.prototype._getFacetAt=function(e,t){var i=Math.floor((e+this._maxX)*this._subdivisionsX/this._width),n=Math.floor(-(t+this._maxZ)*this._subdivisionsY/this._height+this._subdivisionsY),r=this._heightQuads[n*this._subdivisionsX+i];return te.maxHeight){u=!0;var h=e.maxHeight;e.maxHeight=e.minHeight,e.minHeight=h}for(t=0;t<=e.subdivisions;t++)for(i=0;i<=e.subdivisions;i++){var d=new o.x(i*e.width/e.subdivisions-e.width/2,0,(e.subdivisions-t)*e.height/e.subdivisions-e.height/2),f=4*(((d.x+e.width/2)/e.width*(e.bufferWidth-1)|0)+((1-(d.z+e.height/2)/e.height)*(e.bufferHeight-1)|0)*e.bufferWidth),p=e.buffer[f]/255,_=e.buffer[f+1]/255,g=e.buffer[f+2]/255,m=e.buffer[f+3]/255;u&&(p=1-p,_=1-_,g=1-g);var v=p*c.r+_*c.g+g*c.b;d.y=m>=l?e.minHeight+(e.maxHeight-e.minHeight)*v:e.minHeight-o.h,r.push(d.x,d.y,d.z),s.push(0,0,0),a.push(i/e.subdivisions,1-t/e.subdivisions)}for(t=0;t=e.minHeight,x=r[3*b+1]>=e.minHeight,R=r[3*T+1]>=e.minHeight;A&&x&&R&&(n.push(y),n.push(b),n.push(T)),r[3*E+1]>=e.minHeight&&A&&R&&(n.push(E),n.push(y),n.push(T))}Mi.a.ComputeNormals(r,n,s);var P=new Mi.a;return P.indices=n,P.positions=r,P.normals=s,P.uvs=a,P},fe.a.CreateGround=function(e,t,i,n,r,o){var s={width:t,height:i,subdivisions:n,updatable:o};return Di.CreateGround(e,s,r)},fe.a.CreateTiledGround=function(e,t,i,n,r,o,s,a,c){var l={xmin:t,zmin:i,xmax:n,zmax:r,subdivisions:o,precision:s,updatable:c};return Di.CreateTiledGround(e,l,a)},fe.a.CreateGroundFromHeightMap=function(e,t,i,n,r,o,s,a,c,l,u){var h={width:i,height:n,subdivisions:r,minHeight:o,maxHeight:s,updatable:c,onReady:l,alphaFilter:u};return Di.CreateGroundFromHeightMap(e,t,h,a)};var Di=function(){function e(){}return e.CreateGround=function(e,t,i){var n=new Ii(e,i);return n._setReady(!1),n._subdivisionsX=t.subdivisionsX||t.subdivisions||1,n._subdivisionsY=t.subdivisionsY||t.subdivisions||1,n._width=t.width||1,n._height=t.height||1,n._maxX=n._width/2,n._maxZ=n._height/2,n._minX=-n._maxX,n._minZ=-n._maxZ,Mi.a.CreateGround(t).applyToMesh(n,t.updatable),n._setReady(!0),n},e.CreateTiledGround=function(e,t,i){void 0===i&&(i=null);var n=new fe.a(e,i);return Mi.a.CreateTiledGround(t).applyToMesh(n,t.updatable),n},e.CreateGroundFromHeightMap=function(e,t,i,n){void 0===n&&(n=null);var r=i.width||10,s=i.height||10,a=i.subdivisions||1,c=i.minHeight||0,l=i.maxHeight||1,u=i.colorFilter||new o.e(.3,.59,.11),h=i.alphaFilter||0,d=i.updatable,f=i.onReady;n=n||P.a.LastCreatedScene;var p=new Ii(e,n);p._subdivisionsX=a,p._subdivisionsY=a,p._width=r,p._height=s,p._maxX=p._width/2,p._maxZ=p._height/2,p._minX=-p._maxX,p._minZ=-p._maxZ,p._setReady(!1);return ye.h.LoadImage(t,function(e){var t=document.createElement("canvas"),i=t.getContext("2d");if(!i)throw new Error("Unable to get 2d context for CreateGroundFromHeightMap");if(!n.isDisposed){var o=e.width,_=e.height;t.width=o,t.height=_,i.drawImage(e,0,0);var g=i.getImageData(0,0,o,_).data;Mi.a.CreateGroundFromHeightMap({width:r,height:s,subdivisions:a,minHeight:c,maxHeight:l,colorFilter:u,buffer:g,bufferWidth:o,bufferHeight:_,alphaFilter:h}).applyToMesh(p,d),f&&f(p),p._setReady(!0)}},function(){},n.offlineProvider),p},e}();Mi.a.CreateTorus=function(e){for(var t=[],i=[],n=[],r=[],s=e.diameter||1,a=e.thickness||.5,c=e.tessellation||16,l=0===e.sideOrientation?0:e.sideOrientation||Mi.a.DEFAULTSIDE,u=c+1,h=0;h<=c;h++)for(var d=h/c,f=h*Math.PI*2/c-Math.PI/2,p=o.j.Translation(s/2,0,0).multiply(o.j.RotationY(f)),_=0;_<=c;_++){var g=1-_/c,m=_*Math.PI*2/c+Math.PI,v=Math.cos(m),y=Math.sin(m),b=new o.x(v,y,0),T=b.scale(a/2),E=new o.w(d,g);T=o.x.TransformCoordinates(T,p),b=o.x.TransformNormal(b,p),i.push(T.x,T.y,T.z),n.push(b.x,b.y,b.z),r.push(E.x,E.y);var A=(h+1)%u,x=(_+1)%u;t.push(h*u+_),t.push(h*u+x),t.push(A*u+_),t.push(h*u+x),t.push(A*u+x),t.push(A*u+_)}Mi.a._ComputeSides(l,i,t,n,r,e.frontUVs,e.backUVs);var R=new Mi.a;return R.indices=t,R.positions=i,R.normals=n,R.uvs=r,R},fe.a.CreateTorus=function(e,t,i,n,r,o,s){var a={diameter:t,thickness:i,tessellation:n,sideOrientation:s,updatable:o};return wi.CreateTorus(e,a,r)};var Li,wi=function(){function e(){}return e.CreateTorus=function(e,t,i){var n=new fe.a(e,i);return t.sideOrientation=fe.a._GetDefaultSideOrientation(t.sideOrientation),n._originalBuilderSideOrientation=t.sideOrientation,Mi.a.CreateTorus(t).applyToMesh(n,t.updatable),n},e}(),Fi=i(53),Ni=function(){function e(t,i){if(void 0===i&&(i=null),this.scene=t,this._pointerDownOnMeshAsked=!1,this._isActionableMesh=!1,this._teleportationRequestInitiated=!1,this._teleportationBackRequestInitiated=!1,this._rotationRightAsked=!1,this._rotationLeftAsked=!1,this._dpadPressed=!0,this._activePointer=!1,this._id=e._idCounter++,i)this._gazeTracker=i.clone("gazeTracker");else{this._gazeTracker=fe.a.CreateTorus("gazeTracker",.0035,.0025,20,t,!1),this._gazeTracker.bakeCurrentTransformIntoVertices(),this._gazeTracker.isPickable=!1,this._gazeTracker.isVisible=!1;var n=new Ri.a("targetMat",t);n.specularColor=o.e.Black(),n.emissiveColor=new o.e(.7,.7,.7),n.backFaceCulling=!1,this._gazeTracker.material=n}}return e.prototype._getForwardRay=function(e){return new It.a(o.x.Zero(),new o.x(0,0,e))},e.prototype._selectionPointerDown=function(){this._pointerDownOnMeshAsked=!0,this._currentHit&&this.scene.simulatePointerDown(this._currentHit,{pointerId:this._id})},e.prototype._selectionPointerUp=function(){this._currentHit&&this.scene.simulatePointerUp(this._currentHit,{pointerId:this._id}),this._pointerDownOnMeshAsked=!1},e.prototype._activatePointer=function(){this._activePointer=!0},e.prototype._deactivatePointer=function(){this._activePointer=!1},e.prototype._updatePointerDistance=function(e){void 0===e&&(e=100)},e.prototype.dispose=function(){this._interactionsEnabled=!1,this._teleportationEnabled=!1,this._gazeTracker&&this._gazeTracker.dispose()},e._idCounter=0,e}(),Bi=function(e){function t(t,i,n){var r=e.call(this,i,n)||this;r.webVRController=t,r._laserPointer=fe.a.CreateCylinder("laserPointer",1,.004,2e-4,20,1,i,!1);var s=new Ri.a("laserPointerMat",i);if(s.emissiveColor=new o.e(.7,.7,.7),s.alpha=.6,r._laserPointer.material=s,r._laserPointer.rotation.x=Math.PI/2,r._laserPointer.position.z=-.5,r._laserPointer.isVisible=!1,r._laserPointer.isPickable=!1,!t.mesh){var a=new fe.a("preloadControllerMesh",i),c=new fe.a(Ft.POINTING_POSE,i);c.rotation.x=-.7,a.addChild(c),t.attachToMesh(a)}return r._setLaserPointerParent(t.mesh),r._meshAttachedObserver=t._meshAttachedObservable.add(function(e){r._setLaserPointerParent(e)}),r}return l.d(t,e),t.prototype._getForwardRay=function(e){return this.webVRController.getForwardRay(e)},t.prototype._activatePointer=function(){e.prototype._activatePointer.call(this),this._laserPointer.isVisible=!0},t.prototype._deactivatePointer=function(){e.prototype._deactivatePointer.call(this),this._laserPointer.isVisible=!1},t.prototype._setLaserPointerColor=function(e){this._laserPointer.material.emissiveColor=e},t.prototype._setLaserPointerParent=function(e){var t=function(e){e.isPickable=!1,e.getChildMeshes().forEach(function(e){t(e)})};t(e);var i=e.getChildren(void 0,!1),n=e;this.webVRController._pointingPoseNode=null;for(var r=0;r=0){n=i[r],this.webVRController._pointingPoseNode=n;break}this._laserPointer.parent=n},t.prototype._updatePointerDistance=function(e){void 0===e&&(e=100),this._laserPointer.scaling.y=e,this._laserPointer.position.z=-e/2},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._laserPointer.dispose(),this._meshAttachedObserver&&this.webVRController._meshAttachedObservable.remove(this._meshAttachedObserver)},t}(Ni),Ui=function(e){function t(t,i){var n=e.call(this,i)||this;return n.getCamera=t,n}return l.d(t,e),t.prototype._getForwardRay=function(e){var t=this.getCamera();return t?t.getForwardRay(e):new It.a(o.x.Zero(),o.x.Forward())},t}(Ni),Vi=function(){return function(){}}(),Gi=function(){function e(e,t){var i=this;if(void 0===t&&(t={}),this.webVROptions=t,this._webVRsupported=!1,this._webVRready=!1,this._webVRrequesting=!1,this._webVRpresenting=!1,this._fullscreenVRpresenting=!1,this.onEnteringVRObservable=new r.c,this.onAfterEnteringVRObservable=new r.c,this.onExitingVRObservable=new r.c,this.onControllerMeshLoadedObservable=new r.c,this._useCustomVRButton=!1,this._teleportationRequested=!1,this._teleportActive=!1,this._floorMeshesCollection=[],this._rotationAllowed=!0,this._teleportBackwardsVector=new o.x(0,-1,-1),this._isDefaultTeleportationTarget=!0,this._teleportationFillColor="#444444",this._teleportationBorderColor="#FFFFFF",this._rotationAngle=0,this._haloCenter=new o.x(0,0,0),this._padSensibilityUp=.65,this._padSensibilityDown=.35,this._leftController=null,this._rightController=null,this.onNewMeshSelected=new r.c,this.onNewMeshPicked=new r.c,this.onBeforeCameraTeleport=new r.c,this.onAfterCameraTeleport=new r.c,this.onSelectedMeshUnselected=new r.c,this.teleportationEnabled=!0,this._teleportationInitialized=!1,this._interactionsEnabled=!1,this._interactionsRequested=!1,this._displayGaze=!0,this._displayLaserPointer=!0,this.updateGazeTrackerScale=!0,this.updateGazeTrackerColor=!0,this.requestPointerLockOnFullScreen=!0,this._onResize=function(){i.moveButtonToBottomRight(),i._fullscreenVRpresenting&&i._webVRready&&i.exitVR()},this._onFullscreenChange=function(){var e=document;void 0!==e.fullscreen?i._fullscreenVRpresenting=document.fullscreen:void 0!==e.mozFullScreen?i._fullscreenVRpresenting=e.mozFullScreen:void 0!==e.webkitIsFullScreen?i._fullscreenVRpresenting=e.webkitIsFullScreen:void 0!==e.msIsFullScreen?i._fullscreenVRpresenting=e.msIsFullScreen:void 0!==document.msFullscreenElement&&(i._fullscreenVRpresenting=document.msFullscreenElement),!i._fullscreenVRpresenting&&i._canvas&&(i.exitVR(),i._useCustomVRButton||(i._btnVR.style.top=i._canvas.offsetTop+i._canvas.offsetHeight-70+"px",i._btnVR.style.left=i._canvas.offsetLeft+i._canvas.offsetWidth-100+"px"))},this._cachedAngularSensibility={angularSensibilityX:null,angularSensibilityY:null,angularSensibility:null},this.beforeRender=function(){i._leftController&&i._leftController._activePointer&&i._castRayAndSelectObject(i._leftController),i._rightController&&i._rightController._activePointer&&i._castRayAndSelectObject(i._rightController),i._noControllerIsActive?i._castRayAndSelectObject(i._cameraGazer):i._cameraGazer._gazeTracker.isVisible=!1},this._onNewGamepadConnected=function(e){if(e.type!==Ke.POSE_ENABLED)e.leftStick&&e.onleftstickchanged(function(e){i._teleportationInitialized&&i.teleportationEnabled&&(!i._leftController&&!i._rightController||i._leftController&&!i._leftController._activePointer&&i._rightController&&!i._rightController._activePointer)&&(i._checkTeleportWithRay(e,i._cameraGazer),i._checkTeleportBackwards(e,i._cameraGazer))}),e.rightStick&&e.onrightstickchanged(function(e){i._teleportationInitialized&&i._checkRotate(e,i._cameraGazer)}),e.type===Ke.XBOX&&(e.onbuttondown(function(e){i._interactionsEnabled&&e===Dt.A&&i._cameraGazer._selectionPointerDown()}),e.onbuttonup(function(e){i._interactionsEnabled&&e===Dt.A&&i._cameraGazer._selectionPointerUp()}));else{var t=e,n=new Bi(t,i._scene,i._cameraGazer._gazeTracker);"right"===t.hand||i._leftController&&i._leftController.webVRController!=t?i._rightController=n:i._leftController=n,i._tryEnableInteractionOnController(n)}},this._tryEnableInteractionOnController=function(e){i._interactionsRequested&&!e._interactionsEnabled&&i._enableInteractionOnController(e),i._teleportationRequested&&!e._teleportationEnabled&&i._enableTeleportationOnController(e)},this._onNewGamepadDisconnected=function(e){e instanceof Ai&&("left"===e.hand&&null!=i._leftController&&(i._leftController.dispose(),i._leftController=null),"right"===e.hand&&null!=i._rightController&&(i._rightController.dispose(),i._rightController=null))},this._workingVector=o.x.Zero(),this._workingQuaternion=o.q.Identity(),this._workingMatrix=o.j.Identity(),this._scene=e,this._canvas=e.getEngine().getRenderingCanvas(),void 0===t.createFallbackVRDeviceOrientationFreeCamera&&(t.createFallbackVRDeviceOrientationFreeCamera=!0),void 0===t.createDeviceOrientationCamera&&(t.createDeviceOrientationCamera=!0),void 0===t.laserToggle&&(t.laserToggle=!0),void 0===t.defaultHeight&&(t.defaultHeight=1.7),t.useCustomVRButton&&(this._useCustomVRButton=!0,t.customVRButton&&(this._btnVR=t.customVRButton)),t.rayLength&&(this._rayLength=t.rayLength),this._defaultHeight=t.defaultHeight,t.positionScale&&(this._rayLength*=t.positionScale,this._defaultHeight*=t.positionScale),this._hasEnteredVR=!1,this._scene.activeCamera?this._position=this._scene.activeCamera.position.clone():this._position=new o.x(0,this._defaultHeight,0),t.createDeviceOrientationCamera||!this._scene.activeCamera){if(this._deviceOrientationCamera=new At("deviceOrientationVRHelper",this._position.clone(),e),this._scene.activeCamera&&(this._deviceOrientationCamera.minZ=this._scene.activeCamera.minZ,this._deviceOrientationCamera.maxZ=this._scene.activeCamera.maxZ,this._scene.activeCamera instanceof yt&&this._scene.activeCamera.rotation)){var n=this._scene.activeCamera;n.rotationQuaternion?this._deviceOrientationCamera.rotationQuaternion.copyFrom(n.rotationQuaternion):this._deviceOrientationCamera.rotationQuaternion.copyFrom(o.q.RotationYawPitchRoll(n.rotation.y,n.rotation.x,n.rotation.z)),this._deviceOrientationCamera.rotation=n.rotation.clone()}this._scene.activeCamera=this._deviceOrientationCamera,this._canvas&&this._scene.activeCamera.attachControl(this._canvas)}else this._existingCamera=this._scene.activeCamera;if(t.createFallbackVRDeviceOrientationFreeCamera&&(t.useMultiview&&(t.vrDeviceOrientationCameraMetrics||(t.vrDeviceOrientationCameraMetrics=ci.GetDefault()),t.vrDeviceOrientationCameraMetrics.multiviewEnabled=!0),this._vrDeviceOrientationCamera=new yi("VRDeviceOrientationVRHelper",this._position,this._scene,!0,t.vrDeviceOrientationCameraMetrics),this._vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._webVRCamera=new Ei("WebVRHelper",this._position,this._scene,t),this._webVRCamera.useStandingMatrix(),this._cameraGazer=new Ui(function(){return i.currentVRCamera},e),!this._useCustomVRButton){this._btnVR=document.createElement("BUTTON"),this._btnVR.className="babylonVRicon",this._btnVR.id="babylonVRiconbtn",this._btnVR.title="Click to switch to VR";".babylonVRicon.vrdisplaypresenting { display: none; }";var s=document.createElement("style");s.appendChild(document.createTextNode(".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }.babylonVRicon.vrdisplaypresenting { display: none; }")),document.getElementsByTagName("head")[0].appendChild(s),this.moveButtonToBottomRight()}this._btnVR&&this._btnVR.addEventListener("click",function(){i.isInVRMode?i.exitVR():i.enterVR()}),window.addEventListener("resize",this._onResize),document.addEventListener("fullscreenchange",this._onFullscreenChange,!1),document.addEventListener("mozfullscreenchange",this._onFullscreenChange,!1),document.addEventListener("webkitfullscreenchange",this._onFullscreenChange,!1),document.addEventListener("msfullscreenchange",this._onFullscreenChange,!1),document.onmsfullscreenchange=this._onFullscreenChange,t.createFallbackVRDeviceOrientationFreeCamera?this.displayVRButton():this._scene.getEngine().onVRDisplayChangedObservable.add(function(e){e.vrDisplay&&i.displayVRButton()}),this._onKeyDown=function(e){27===e.keyCode&&i.isInVRMode&&i.exitVR()},document.addEventListener("keydown",this._onKeyDown),this._scene.onPrePointerObservable.add(function(){i.isInVRMode&&(i.exitVR(),i._fullscreenVRpresenting&&i._scene.getEngine().exitFullscreen())},Pe.a.POINTERDOUBLETAP,!1),this._onVRDisplayChanged=function(e){return i.onVRDisplayChanged(e)},this._onVrDisplayPresentChange=function(){return i.onVrDisplayPresentChange()},this._onVRRequestPresentStart=function(){i._webVRrequesting=!0,i.updateButtonVisibility()},this._onVRRequestPresentComplete=function(){i._webVRrequesting=!1,i.updateButtonVisibility()},e.getEngine().onVRDisplayChangedObservable.add(this._onVRDisplayChanged),e.getEngine().onVRRequestPresentStart.add(this._onVRRequestPresentStart),e.getEngine().onVRRequestPresentComplete.add(this._onVRRequestPresentComplete),window.addEventListener("vrdisplaypresentchange",this._onVrDisplayPresentChange),e.onDisposeObservable.add(function(){i.dispose()}),this._webVRCamera.onControllerMeshLoadedObservable.add(function(e){return i._onDefaultMeshLoaded(e)}),this._scene.gamepadManager.onGamepadConnectedObservable.add(this._onNewGamepadConnected),this._scene.gamepadManager.onGamepadDisconnectedObservable.add(this._onNewGamepadDisconnected),this.updateButtonVisibility(),this._circleEase=new ee,this._circleEase.setEasingMode($.EASINGMODE_EASEINOUT),this.webVROptions.floorMeshes&&this.enableTeleportation({floorMeshes:this.webVROptions.floorMeshes})}return Object.defineProperty(e.prototype,"onEnteringVR",{get:function(){return this.onEnteringVRObservable},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onExitingVR",{get:function(){return this.onExitingVRObservable},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onControllerMeshLoaded",{get:function(){return this.onControllerMeshLoadedObservable},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"teleportationTarget",{get:function(){return this._teleportationTarget},set:function(e){e&&(e.name="teleportationTarget",this._isDefaultTeleportationTarget=!1,this._teleportationTarget=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gazeTrackerMesh",{get:function(){return this._cameraGazer._gazeTracker},set:function(e){e&&(this._cameraGazer._gazeTracker&&this._cameraGazer._gazeTracker.dispose(),this._leftController&&this._leftController._gazeTracker&&this._leftController._gazeTracker.dispose(),this._rightController&&this._rightController._gazeTracker&&this._rightController._gazeTracker.dispose(),this._cameraGazer._gazeTracker=e,this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(),this._cameraGazer._gazeTracker.isPickable=!1,this._cameraGazer._gazeTracker.isVisible=!1,this._cameraGazer._gazeTracker.name="gazeTracker",this._leftController&&(this._leftController._gazeTracker=this._cameraGazer._gazeTracker.clone("gazeTracker")),this._rightController&&(this._rightController._gazeTracker=this._cameraGazer._gazeTracker.clone("gazeTracker")))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"leftControllerGazeTrackerMesh",{get:function(){return this._leftController?this._leftController._gazeTracker:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rightControllerGazeTrackerMesh",{get:function(){return this._rightController?this._rightController._gazeTracker:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"displayGaze",{get:function(){return this._displayGaze},set:function(e){this._displayGaze=e,e||(this._cameraGazer._gazeTracker.isVisible=!1,this._leftController&&(this._leftController._gazeTracker.isVisible=!1),this._rightController&&(this._rightController._gazeTracker.isVisible=!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"displayLaserPointer",{get:function(){return this._displayLaserPointer},set:function(e){this._displayLaserPointer=e,e?(this._rightController&&this._rightController._activatePointer(),this._leftController&&this._leftController._activatePointer()):(this._rightController&&(this._rightController._deactivatePointer(),this._rightController._gazeTracker.isVisible=!1),this._leftController&&(this._leftController._deactivatePointer(),this._leftController._gazeTracker.isVisible=!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"deviceOrientationCamera",{get:function(){return this._deviceOrientationCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentVRCamera",{get:function(){return this._webVRready?this._webVRCamera:this._scene.activeCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"webVRCamera",{get:function(){return this._webVRCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"vrDeviceOrientationCamera",{get:function(){return this._vrDeviceOrientationCamera},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_teleportationRequestInitiated",{get:function(){return this._cameraGazer._teleportationRequestInitiated||null!==this._leftController&&this._leftController._teleportationRequestInitiated||null!==this._rightController&&this._rightController._teleportationRequestInitiated},enumerable:!0,configurable:!0}),e.prototype._onDefaultMeshLoaded=function(e){this._leftController&&this._leftController.webVRController==e&&e.mesh&&this._leftController._setLaserPointerParent(e.mesh),this._rightController&&this._rightController.webVRController==e&&e.mesh&&this._rightController._setLaserPointerParent(e.mesh);try{this.onControllerMeshLoadedObservable.notifyObservers(e)}catch(e){p.a.Warn("Error in your custom logic onControllerMeshLoaded: "+e)}},Object.defineProperty(e.prototype,"isInVRMode",{get:function(){return this._webVRpresenting||this._fullscreenVRpresenting},enumerable:!0,configurable:!0}),e.prototype.onVrDisplayPresentChange=function(){var e=this._scene.getEngine().getVRDevice();if(e){var t=this._webVRpresenting;this._webVRpresenting=e.isPresenting,t&&!this._webVRpresenting&&this.exitVR()}else p.a.Warn("Detected VRDisplayPresentChange on an unknown VRDisplay. Did you can enterVR on the vrExperienceHelper?");this.updateButtonVisibility()},e.prototype.onVRDisplayChanged=function(e){this._webVRsupported=e.vrSupported,this._webVRready=!!e.vrDisplay,this._webVRpresenting=e.vrDisplay&&e.vrDisplay.isPresenting,this.updateButtonVisibility()},e.prototype.moveButtonToBottomRight=function(){this._canvas&&!this._useCustomVRButton&&(this._btnVR.style.top=this._canvas.offsetTop+this._canvas.offsetHeight-70+"px",this._btnVR.style.left=this._canvas.offsetLeft+this._canvas.offsetWidth-100+"px")},e.prototype.displayVRButton=function(){this._useCustomVRButton||this._btnVRDisplayed||(document.body.appendChild(this._btnVR),this._btnVRDisplayed=!0)},e.prototype.updateButtonVisibility=function(){this._btnVR&&!this._useCustomVRButton&&(this._btnVR.className="babylonVRicon",this.isInVRMode?this._btnVR.className+=" vrdisplaypresenting":(this._webVRready&&(this._btnVR.className+=" vrdisplayready"),this._webVRsupported&&(this._btnVR.className+=" vrdisplaysupported"),this._webVRrequesting&&(this._btnVR.className+=" vrdisplayrequesting")))},e.prototype.enterVR=function(){var e=this;if(this.onEnteringVRObservable)try{this.onEnteringVRObservable.notifyObservers(this)}catch(e){p.a.Warn("Error in your custom logic onEnteringVR: "+e)}if(this._scene.activeCamera){if(this._position=this._scene.activeCamera.position.clone(),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.rotation=o.q.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles(),this.vrDeviceOrientationCamera.angularSensibility=2e3),this.webVRCamera){var t=this.webVRCamera.deviceRotationQuaternion.toEulerAngles().y,i=o.q.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles().y-t,n=this.webVRCamera.rotationQuaternion.toEulerAngles().y;this.webVRCamera.rotationQuaternion=o.q.FromEulerAngles(0,n+i,0)}this._existingCamera=this._scene.activeCamera,this._existingCamera.angularSensibilityX&&(this._cachedAngularSensibility.angularSensibilityX=this._existingCamera.angularSensibilityX,this._existingCamera.angularSensibilityX=Number.MAX_VALUE),this._existingCamera.angularSensibilityY&&(this._cachedAngularSensibility.angularSensibilityY=this._existingCamera.angularSensibilityY,this._existingCamera.angularSensibilityY=Number.MAX_VALUE),this._existingCamera.angularSensibility&&(this._cachedAngularSensibility.angularSensibility=this._existingCamera.angularSensibility,this._existingCamera.angularSensibility=Number.MAX_VALUE)}this._webVRrequesting||(this._webVRready?this._webVRpresenting||(this._scene.getEngine().onVRRequestPresentComplete.addOnce(function(t){e.onAfterEnteringVRObservable.notifyObservers({success:t})}),this._webVRCamera.position=this._position,this._scene.activeCamera=this._webVRCamera):this._vrDeviceOrientationCamera&&(this._vrDeviceOrientationCamera.position=this._position,this._scene.activeCamera&&(this._vrDeviceOrientationCamera.minZ=this._scene.activeCamera.minZ),this._scene.activeCamera=this._vrDeviceOrientationCamera,this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen),this.updateButtonVisibility(),this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce(function(){e.onAfterEnteringVRObservable.notifyObservers({success:!0})})),this._scene.activeCamera&&this._canvas&&this._scene.activeCamera.attachControl(this._canvas),this._interactionsEnabled&&this._scene.registerBeforeRender(this.beforeRender),this._displayLaserPointer&&[this._leftController,this._rightController].forEach(function(e){e&&e._activatePointer()}),this._hasEnteredVR=!0)},e.prototype.exitVR=function(){if(this._hasEnteredVR){if(this.onExitingVRObservable)try{this.onExitingVRObservable.notifyObservers(this)}catch(e){p.a.Warn("Error in your custom logic onExitingVR: "+e)}this._webVRpresenting&&this._scene.getEngine().disableVR(),this._scene.activeCamera&&(this._position=this._scene.activeCamera.position.clone()),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._deviceOrientationCamera?(this._deviceOrientationCamera.position=this._position,this._scene.activeCamera=this._deviceOrientationCamera,this._canvas&&this._scene.activeCamera.attachControl(this._canvas),this._cachedAngularSensibility.angularSensibilityX&&(this._deviceOrientationCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._deviceOrientationCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._deviceOrientationCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)):this._existingCamera&&(this._existingCamera.position=this._position,this._scene.activeCamera=this._existingCamera,this._cachedAngularSensibility.angularSensibilityX&&(this._existingCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._existingCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._existingCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)),this.updateButtonVisibility(),this._interactionsEnabled&&(this._scene.unregisterBeforeRender(this.beforeRender),this._cameraGazer._gazeTracker.isVisible=!1,this._leftController&&(this._leftController._gazeTracker.isVisible=!1),this._rightController&&(this._rightController._gazeTracker.isVisible=!1)),this._scene.getEngine().resize(),[this._leftController,this._rightController].forEach(function(e){e&&e._deactivatePointer()}),this._hasEnteredVR=!1;var e=this._scene.getEngine();e._onVrDisplayPresentChange&&e._onVrDisplayPresentChange()}},Object.defineProperty(e.prototype,"position",{get:function(){return this._position},set:function(e){this._position=e,this._scene.activeCamera&&(this._scene.activeCamera.position=e)},enumerable:!0,configurable:!0}),e.prototype.enableInteractions=function(){var e=this;this._interactionsEnabled||(this._interactionsRequested=!0,this._leftController&&this._enableInteractionOnController(this._leftController),this._rightController&&this._enableInteractionOnController(this._rightController),this.raySelectionPredicate=function(t){return t.isVisible&&(t.isPickable||t.name===e._floorMeshName)},this.meshSelectionPredicate=function(){return!0},this._raySelectionPredicate=function(t){return!!(e._isTeleportationFloor(t)||-1===t.name.indexOf("gazeTracker")&&-1===t.name.indexOf("teleportationTarget")&&-1===t.name.indexOf("torusTeleportation"))&&e.raySelectionPredicate(t)},this._interactionsEnabled=!0)},Object.defineProperty(e.prototype,"_noControllerIsActive",{get:function(){return!(this._leftController&&this._leftController._activePointer||this._rightController&&this._rightController._activePointer)},enumerable:!0,configurable:!0}),e.prototype._isTeleportationFloor=function(e){for(var t=0;t-1||this._floorMeshesCollection.push(e))},e.prototype.removeFloorMesh=function(e){if(this._floorMeshesCollection){var t=this._floorMeshesCollection.indexOf(e);-1!==t&&this._floorMeshesCollection.splice(t,1)}},e.prototype.enableTeleportation=function(e){if(void 0===e&&(e={}),!this._teleportationInitialized){this._teleportationRequested=!0,this.enableInteractions(),e.floorMeshName&&(this._floorMeshName=e.floorMeshName),e.floorMeshes&&(this._floorMeshesCollection=e.floorMeshes),null!=this._leftController&&this._enableTeleportationOnController(this._leftController),null!=this._rightController&&this._enableTeleportationOnController(this._rightController);var t=new xi.a;t.vignetteColor=new o.f(0,0,0,0),t.vignetteEnabled=!0,this._postProcessMove=new Ci("postProcessMove",1,this._webVRCamera,void 0,void 0,void 0,void 0,t),this._webVRCamera.detachPostProcess(this._postProcessMove),this._teleportationInitialized=!0,this._isDefaultTeleportationTarget&&(this._createTeleportationCircles(),this._teleportationTarget.scaling.scaleInPlace(this._webVRCamera.deviceScaleFactor))}},e.prototype._enableInteractionOnController=function(e){var t=this;e.webVRController.mesh&&(e._interactionsEnabled=!0,this.isInVRMode&&this._displayLaserPointer&&e._activatePointer(),this.webVROptions.laserToggle&&e.webVRController.onMainButtonStateChangedObservable.add(function(i){t._displayLaserPointer&&1===i.value&&(e._activePointer?e._deactivatePointer():e._activatePointer(),t.displayGaze&&(e._gazeTracker.isVisible=e._activePointer))}),e.webVRController.onTriggerStateChangedObservable.add(function(i){var n=e;t._noControllerIsActive&&(n=t._cameraGazer),n._pointerDownOnMeshAsked?i.valuet._padSensibilityUp&&n._selectionPointerDown()}))},e.prototype._checkTeleportWithRay=function(e,t){this._teleportationRequestInitiated&&!t._teleportationRequestInitiated||(t._teleportationRequestInitiated?Math.sqrt(e.y*e.y+e.x*e.x)-this._padSensibilityDown&&(t._rotationLeftAsked=!1):e.x<-this._padSensibilityUp&&t._dpadPressed&&(t._rotationLeftAsked=!0,this._rotationAllowed&&this._rotateCamera(!1)),t._rotationRightAsked?e.xthis._padSensibilityUp&&t._dpadPressed&&(t._rotationRightAsked=!0,this._rotationAllowed&&this._rotateCamera(!0)))},e.prototype._checkTeleportBackwards=function(e,t){if(!t._teleportationRequestInitiated)if(e.y>this._padSensibilityUp&&t._dpadPressed){if(!t._teleportationBackRequestInitiated){if(!this.currentVRCamera)return;var i=o.q.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()),n=this.currentVRCamera.position;this.currentVRCamera.devicePosition&&this.currentVRCamera.deviceRotationQuaternion&&(i=this.currentVRCamera.deviceRotationQuaternion,n=this.currentVRCamera.devicePosition),i.toEulerAnglesToRef(this._workingVector),this._workingVector.z=0,this._workingVector.x=0,o.q.RotationYawPitchRollToRef(this._workingVector.y,this._workingVector.x,this._workingVector.z,this._workingQuaternion),this._workingQuaternion.toRotationMatrix(this._workingMatrix),o.x.TransformCoordinatesToRef(this._teleportBackwardsVector,this._workingMatrix,this._workingVector);var r=new It.a(n,this._workingVector),s=this._scene.pickWithRay(r,this._raySelectionPredicate);s&&s.pickedPoint&&s.pickedMesh&&this._isTeleportationFloor(s.pickedMesh)&&s.distance<5&&this.teleportCamera(s.pickedPoint),t._teleportationBackRequestInitiated=!0}}else t._teleportationBackRequestInitiated=!1},e.prototype._enableTeleportationOnController=function(e){var t=this;e.webVRController.mesh&&(e._interactionsEnabled||this._enableInteractionOnController(e),e._interactionsEnabled=!0,e._teleportationEnabled=!0,e.webVRController.controllerType===St.VIVE&&(e._dpadPressed=!1,e.webVRController.onPadStateChangedObservable.add(function(t){e._dpadPressed=t.pressed,e._dpadPressed||(e._rotationLeftAsked=!1,e._rotationRightAsked=!1,e._teleportationBackRequestInitiated=!1)})),e.webVRController.onPadValuesChangedObservable.add(function(i){t.teleportationEnabled&&(t._checkTeleportBackwards(i,e),t._checkTeleportWithRay(i,e)),t._checkRotate(i,e)}))},e.prototype._createTeleportationCircles=function(){this._teleportationTarget=fe.a.CreateGround("teleportationTarget",2,2,2,this._scene),this._teleportationTarget.isPickable=!1;var e=new Pi("DynamicTexture",512,this._scene,!0);e.hasAlpha=!0;var t=e.getContext();t.beginPath(),t.arc(256,256,200,0,2*Math.PI,!1),t.fillStyle=this._teleportationFillColor,t.fill(),t.lineWidth=10,t.strokeStyle=this._teleportationBorderColor,t.stroke(),t.closePath(),e.update();var i=new Ri.a("TextPlaneMaterial",this._scene);i.diffuseTexture=e,this._teleportationTarget.material=i;var n=fe.a.CreateTorus("torusTeleportation",.75,.1,25,this._scene,!1);n.isPickable=!1,n.parent=this._teleportationTarget;var r=new B("animationInnerCircle","position.y",30,B.ANIMATIONTYPE_FLOAT,B.ANIMATIONLOOPMODE_CYCLE),o=[];o.push({frame:0,value:0}),o.push({frame:30,value:.4}),o.push({frame:60,value:0}),r.setKeys(o);var s=new ue;s.setEasingMode($.EASINGMODE_EASEINOUT),r.setEasingFunction(s),n.animations=[],n.animations.push(r),this._scene.beginAnimation(n,0,60,!0),this._hideTeleportationTarget()},e.prototype._displayTeleportationTarget=function(){this._teleportActive=!0,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!0,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!0))},e.prototype._hideTeleportationTarget=function(){this._teleportActive=!1,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!1,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!1))},e.prototype._rotateCamera=function(e){var t=this;if(this.currentVRCamera instanceof bt){e?this._rotationAngle++:this._rotationAngle--,this.currentVRCamera.animations=[];var i=o.q.FromRotationMatrix(o.j.RotationY(Math.PI/4*this._rotationAngle)),n=new B("animationRotation","rotationQuaternion",90,B.ANIMATIONTYPE_QUATERNION,B.ANIMATIONLOOPMODE_CONSTANT),r=[];r.push({frame:0,value:this.currentVRCamera.rotationQuaternion}),r.push({frame:6,value:i}),n.setKeys(r),n.setEasingFunction(this._circleEase),this.currentVRCamera.animations.push(n),this._postProcessMove.animations=[];var s=new B("animationPP","vignetteWeight",90,B.ANIMATIONTYPE_FLOAT,B.ANIMATIONLOOPMODE_CONSTANT),a=[];a.push({frame:0,value:0}),a.push({frame:3,value:4}),a.push({frame:6,value:0}),s.setKeys(a),s.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(s);var c=new B("animationPP2","vignetteStretch",90,B.ANIMATIONTYPE_FLOAT,B.ANIMATIONLOOPMODE_CONSTANT),l=[];l.push({frame:0,value:0}),l.push({frame:3,value:10}),l.push({frame:6,value:0}),c.setKeys(l),c.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(c),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._postProcessMove.samples=4,this._webVRCamera.attachPostProcess(this._postProcessMove),this._scene.beginAnimation(this._postProcessMove,0,6,!1,1,function(){t._webVRCamera.detachPostProcess(t._postProcessMove)}),this._scene.beginAnimation(this.currentVRCamera,0,6,!1,1)}},e.prototype._moveTeleportationSelectorTo=function(e,t,i){if(e.pickedPoint){t._teleportationRequestInitiated&&(this._displayTeleportationTarget(),this._haloCenter.copyFrom(e.pickedPoint),this._teleportationTarget.position.copyFrom(e.pickedPoint));var n=this._convertNormalToDirectionOfRay(e.getNormal(!0,!1),i);if(n){var r=o.x.Cross(o.c.Y,n),s=o.x.Cross(n,r);o.x.RotationFromAxisToRef(s,n,r,this._teleportationTarget.rotation)}this._teleportationTarget.position.y+=.1}},e.prototype.teleportCamera=function(e){var t=this;if(this.currentVRCamera instanceof bt){this.webVRCamera.leftCamera?(this._workingVector.copyFrom(this.webVRCamera.leftCamera.globalPosition),this._workingVector.subtractInPlace(this.webVRCamera.position),e.subtractToRef(this._workingVector,this._workingVector)):this._workingVector.copyFrom(e),this.isInVRMode?this._workingVector.y+=this.webVRCamera.deviceDistanceToRoomGround()*this._webVRCamera.deviceScaleFactor:this._workingVector.y+=this._defaultHeight,this.onBeforeCameraTeleport.notifyObservers(this._workingVector),this.currentVRCamera.animations=[];var i=new B("animationCameraTeleportation","position",90,B.ANIMATIONTYPE_VECTOR3,B.ANIMATIONLOOPMODE_CONSTANT),n=[{frame:0,value:this.currentVRCamera.position},{frame:11,value:this._workingVector}];i.setKeys(n),i.setEasingFunction(this._circleEase),this.currentVRCamera.animations.push(i),this._postProcessMove.animations=[];var r=new B("animationPP","vignetteWeight",90,B.ANIMATIONTYPE_FLOAT,B.ANIMATIONLOOPMODE_CONSTANT),o=[];o.push({frame:0,value:0}),o.push({frame:5,value:8}),o.push({frame:11,value:0}),r.setKeys(o),this._postProcessMove.animations.push(r);var s=new B("animationPP2","vignetteStretch",90,B.ANIMATIONTYPE_FLOAT,B.ANIMATIONLOOPMODE_CONSTANT),a=[];a.push({frame:0,value:0}),a.push({frame:5,value:10}),a.push({frame:11,value:0}),s.setKeys(a),this._postProcessMove.animations.push(s),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._webVRCamera.attachPostProcess(this._postProcessMove),this._scene.beginAnimation(this._postProcessMove,0,11,!1,1,function(){t._webVRCamera.detachPostProcess(t._postProcessMove)}),this._scene.beginAnimation(this.currentVRCamera,0,11,!1,1,function(){t.onAfterCameraTeleport.notifyObservers(t._workingVector)}),this._hideTeleportationTarget()}},e.prototype._convertNormalToDirectionOfRay=function(e,t){e&&(Math.acos(o.x.Dot(e,t.direction))e;){var i=this.rigCameras.pop();i&&i.dispose()}},t.prototype._updateForDualEyeDebugging=function(e){void 0===e&&(e=.01),this._updateNumberOfRigCameras(2),this.rigCameras[0].viewport=new o.z(0,0,.5,1),this.rigCameras[0].position.x=-e/2,this.rigCameras[0].outputRenderTarget=null,this.rigCameras[1].viewport=new o.z(.5,0,.5,1),this.rigCameras[1].position.x=e/2,this.rigCameras[1].outputRenderTarget=null},t.prototype.updateFromXRSessionManager=function(e){var i=this;if(!e._currentXRFrame||!e._currentXRFrame.getDevicePose)return!1;var n=e._currentXRFrame.getDevicePose(e._frameOfReference);return!(!n||!n.poseModelMatrix)&&(o.j.FromFloat32ArrayToRefScaled(n.poseModelMatrix,0,1,t._TmpMatrix),this._scene.useRightHandedSystem||t._TmpMatrix.toggleModelMatrixHandInPlace(),t._TmpMatrix.getTranslationToRef(this.position),t._TmpMatrix.getRotationMatrixToRef(t._TmpMatrix),o.q.FromRotationMatrixToRef(t._TmpMatrix,this.rotationQuaternion),this.computeWorldMatrix(),this._updateNumberOfRigCameras(e._currentXRFrame.views.length),e._currentXRFrame.views.forEach(function(t,r){o.j.FromFloat32ArrayToRefScaled(n.getViewMatrix(t),0,1,i.rigCameras[r]._computedViewMatrix),o.j.FromFloat32ArrayToRefScaled(t.projectionMatrix,0,1,i.rigCameras[r]._projectionMatrix),i._scene.useRightHandedSystem||(i.rigCameras[r]._computedViewMatrix.toggleModelMatrixHandInPlace(),i.rigCameras[r]._projectionMatrix.toggleProjectionMatrixHandInPlace());var s=e._xrSession.baseLayer.getViewport(t),a=e._xrSession.baseLayer.framebufferWidth,c=e._xrSession.baseLayer.framebufferHeight;i.rigCameras[r].viewport.width=s.width/a,i.rigCameras[r].viewport.height=s.height/c,i.rigCameras[r].viewport.x=s.x/a,i.rigCameras[r].viewport.y=s.y/c,i.rigCameras[r].outputRenderTarget=e._sessionRenderTargetTexture}),!0)},t._TmpMatrix=new o.j,t}(bt),zi=function(){function e(e){this.scene=e,this.onXRFrameObservable=new r.c,this.onXRSessionEnded=new r.c,this._sessionRenderTargetTexture=null,this._tmpMatrix=new o.j}return e.prototype.initializeAsync=function(){var e=this;return p.a.Warn("The WebXR APIs are still under development and are subject to change in the future."),this._xrNavigator=navigator,this._xrNavigator.xr?this._xrNavigator.xr.requestDevice().then(function(t){return e._xrDevice=t,e.scene.getEngine()._gl.setCompatibleXRDevice(e._xrDevice)}):Promise.reject("webXR not supported by this browser")},e.prototype.enterXRAsync=function(t,i){var n=this;return this._xrDevice.requestSession(t).then(function(e){return n._xrSession=e,n._xrSession.addEventListener("end",function(){n._sessionRenderTargetTexture=null,n.scene.getEngine().restoreDefaultFramebuffer(),n.scene.getEngine().customAnimationFrameRequester=null,n.onXRSessionEnded.notifyObservers(null),n.scene.getEngine()._renderLoop()},{once:!0}),n._xrSession.baseLayer=new XRWebGLLayer(n._xrSession,n.scene.getEngine()._gl),n._xrSession.requestFrameOfReference(i)}).then(function(t){n._frameOfReference=t,n.scene.getEngine().customAnimationFrameRequester={requestAnimationFrame:n._xrSession.requestAnimationFrame.bind(n._xrSession),renderFunction:function(e,t){n._currentXRFrame=t,n.onXRFrameObservable.notifyObservers(null),n.scene.getEngine()._renderLoop()}},n._sessionRenderTargetTexture=e._CreateRenderTargetTextureFromSession(n._xrSession,n.scene),window.cancelAnimationFrame(n.scene.getEngine()._frameHandler),n.scene.getEngine()._renderLoop()})},e.prototype.exitXRAsync=function(){return this._xrSession.end()},e.prototype.environmentPointHitTestAsync=function(e){var t=this;return new Promise(function(i){var n=new Float32Array([e.origin.x,e.origin.y,e.origin.z]),r=new Float32Array([e.direction.x,e.direction.y,e.direction.z]);t.scene.useRightHandedSystem||(n[2]*=-1,r[2]*=-1),t._xrSession.requestHitTest(n,r,t._frameOfReference).then(function(e){if(e.length>0){o.j.FromFloat32ArrayToRefScaled(e[0].hitMatrix,0,1,t._tmpMatrix);var n=t._tmpMatrix.getTranslation();t.scene.useRightHandedSystem||(n.z*=-1),i(n)}else i(null)}).catch(function(){i(null)})})},e.prototype.supportsSessionAsync=function(e){return this._xrDevice.supportsSession(e).then(function(){return!0}).catch(function(){return!1})},e._CreateRenderTargetTextureFromSession=function(e,t){var i=new ze.a(t.getEngine(),ze.a.DATASOURCE_UNKNOWN,!0);i.width=e.baseLayer.framebufferWidth,i.height=e.baseLayer.framebufferHeight,i._framebuffer=e.baseLayer.framebuffer;var n=new _i("XR renderTargetTexture",{width:i.width,height:i.height},t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,!0);return n._texture=i,n},e.prototype.dispose=function(){this.onXRFrameObservable.clear(),this.onXRSessionEnded.clear()},e}();!function(e){e[e.ENTERING_XR=0]="ENTERING_XR",e[e.EXITING_XR=1]="EXITING_XR",e[e.IN_XR=2]="IN_XR",e[e.NOT_IN_XR=3]="NOT_IN_XR"}(Li||(Li={}));var ji,Hi=function(){function e(e){this.scene=e,this.state=Li.NOT_IN_XR,this.onStateChangedObservable=new r.c,this._nonVRCamera=null,this._originalSceneAutoClear=!0,this._supported=!1,this.camera=new ki("",e),this._sessionManager=new zi(e),this.container=new Fe.a("",e),this.camera.parent=this.container}return e.prototype._setState=function(e){this.state=e,this.onStateChangedObservable.notifyObservers(this.state)},e.CreateAsync=function(t){var i=new e(t);return i._sessionManager.initializeAsync().then(function(){return i._supported=!0,i}).catch(function(){return i})},e.prototype.exitXRAsync=function(){return this._setState(Li.EXITING_XR),this._sessionManager.exitXRAsync()},e.prototype.enterXRAsync=function(e,t){var i=this;if(!this._supported)throw"XR session not supported by this browser";return this._setState(Li.ENTERING_XR),this._sessionManager.enterXRAsync(e,t).then(function(){i._originalSceneAutoClear=i.scene.autoClear,i._nonVRCamera=i.scene.activeCamera,i.scene.autoClear=!1,i.scene.activeCamera=i.camera,i._sessionManager.onXRFrameObservable.add(function(){i.camera.updateFromXRSessionManager(i._sessionManager)}),i._sessionManager.onXRSessionEnded.addOnce(function(){i.camera.rigCameras.forEach(function(e){e.outputRenderTarget=null}),i.scene.autoClear=i._originalSceneAutoClear,i.scene.activeCamera=i._nonVRCamera,i._sessionManager.onXRFrameObservable.clear(),i._setState(Li.NOT_IN_XR)}),i._setState(Li.IN_XR)})},e.prototype.environmentPointHitTestAsync=function(e){return this._sessionManager.environmentPointHitTestAsync(e)},e.prototype.setPositionOfCameraUsingContainer=function(t){this.camera.globalPosition.subtractToRef(t,e._TmpVector),this.container.position.subtractInPlace(e._TmpVector)},e.prototype.rotateCameraByQuaternionUsingContainer=function(e){this.container.rotationQuaternion||(this.container.rotationQuaternion=o.q.FromEulerVector(this.container.rotation)),this.container.rotationQuaternion.multiplyInPlace(e),this.container.position.rotateByQuaternionAroundPointToRef(e,this.camera.globalPosition,this.container.position)},e.prototype.supportsSessionAsync=function(e){return this._supported?this._sessionManager.supportsSessionAsync(e):Promise.resolve(!1)},e.prototype.dispose=function(){this.camera.dispose(),this.container.dispose(),this.onStateChangedObservable.clear(),this._sessionManager.dispose()},e._TmpVector=new o.x,e}(),Wi=function(){function e(e,t){this.element=e,this.initializationOptions=t}return e.prototype.update=function(e){},e}(),Xi=function(){return function(){}}(),Yi=function(){function e(e,t){var i=this;if(this.scene=e,this._buttons=[],this._activeButton=null,this.activeButtonChangedObservable=new r.c,this._overlay=document.createElement("div"),this._overlay.style.cssText="z-index:11;position: absolute; right: 20px;bottom: 50px;",t.customButtons)this._buttons=t.customButtons;else{var n=document.createElement("button");n.style.cssText="color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-repeat:no-repeat; background-position: center; outline: none;",n.innerText="HMD",this._buttons.push(new Wi(n,{immersive:!0,outputContext:t.outputCanvasContext})),this._buttons[this._buttons.length-1].update=function(e){this.element.style.display=null===e||e===this?"":"none",this.element.innerText=e===this?"EXIT":"HMD"};var o=document.createElement("button");o.style.cssText=n.style.cssText,o.innerText="Window",this._buttons.push(new Wi(o,{immersive:!1,environmentIntegration:!0,outputContext:t.outputCanvasContext})),this._buttons[this._buttons.length-1].update=function(e){this.element.style.display=null===e||e===this?"":"none",this.element.innerText=e===this?"EXIT":"Window"},this._updateButtons(null)}var s=e.getEngine().getRenderingCanvas();s&&s.parentNode&&(s.parentNode.appendChild(this._overlay),e.onDisposeObservable.addOnce(function(){i.dispose()}))}return e.CreateAsync=function(t,i,n){var r=this,o=new e(t,n),s=o._buttons.map(function(e){return i.supportsSessionAsync(e.initializationOptions)});return i.onStateChangedObservable.add(function(e){e==Li.NOT_IN_XR&&o._updateButtons(null)}),Promise.all(s).then(function(e){return e.forEach(function(e,t){e&&(o._overlay.appendChild(o._buttons[t].element),o._buttons[t].element.onclick=function(){return l.b(r,void 0,void 0,function(){return l.e(this,function(e){switch(e.label){case 0:return i.state!=Li.IN_XR?[3,2]:(o._updateButtons(null),[4,i.exitXRAsync()]);case 1:return e.sent(),[2];case 2:return i.state!=Li.NOT_IN_XR?[3,4]:(o._updateButtons(o._buttons[t]),[4,i.enterXRAsync(o._buttons[t].initializationOptions,"eye-level")]);case 3:e.sent(),e.label=4;case 4:return[2]}})})})}),o})},e.prototype._updateButtons=function(e){var t=this;this._activeButton=e,this._buttons.forEach(function(e){e.update(t._activeButton)}),this.activeButtonChangedObservable.notifyObservers(this._activeButton)},e.prototype.dispose=function(){var e=this.scene.getEngine().getRenderingCanvas();e&&e.parentNode&&e.parentNode.contains(this._overlay)&&e.parentNode.removeChild(this._overlay),this.activeButtonChangedObservable.clear()},e}(),Ki=function(){function e(e){this.pointer=new Fe.a("controllerPointer",e)}return e.prototype.dispose=function(){this.grip&&this.grip.dispose(),this.pointer.dispose()},e}(),Qi=function(){function e(e){var t=this;this.helper=e,this.controllers=[],this._tmpMatrix=new o.j,this._frameObserver=e._sessionManager.onXRFrameObservable.add(function(){if(e._sessionManager._currentXRFrame&&e._sessionManager._currentXRFrame.getDevicePose){var i=e._sessionManager._currentXRFrame;e._sessionManager._xrSession.getInputSources().forEach(function(n,r){var s=i.getInputPose(n,e._sessionManager._frameOfReference);if(s){t.controllers.length<=r&&t.controllers.push(new Ki(e.container.getScene()));var a=t.controllers[r];s.gripMatrix&&(a.grip||(a.grip=new Fe.a("controllerGrip",e.container.getScene())),o.j.FromFloat32ArrayToRefScaled(s.gripMatrix,0,1,t._tmpMatrix),a.grip.getScene().useRightHandedSystem||t._tmpMatrix.toggleModelMatrixHandInPlace(),a.grip.rotationQuaternion||(a.grip.rotationQuaternion=new o.q),t._tmpMatrix.decompose(a.grip.scaling,a.grip.rotationQuaternion,a.grip.position)),o.j.FromFloat32ArrayToRefScaled(s.targetRay.transformMatrix,0,1,t._tmpMatrix),a.pointer.getScene().useRightHandedSystem||t._tmpMatrix.toggleModelMatrixHandInPlace(),a.pointer.rotationQuaternion||(a.pointer.rotationQuaternion=new o.q),t._tmpMatrix.decompose(a.pointer.scaling,a.pointer.rotationQuaternion,a.pointer.position)}})}})}return e.prototype.dispose=function(){this.controllers.forEach(function(e){e.dispose()}),this.helper._sessionManager.onXRFrameObservable.remove(this._frameObserver)},e}(),qi=function(){function e(e,t){var i=this;this._canvas=null,this.canvasContext=null,t||((t=document.createElement("canvas")).style.cssText="position:absolute; bottom:0px;right:0px;z-index:10;width:100%;height:100%;background-color: #000000;"),this._setManagedOutputCanvas(t),e.onStateChangedObservable.add(function(t){t==Li.ENTERING_XR?i._addCanvas():e.state==Li.NOT_IN_XR&&i._removeCanvas()})}return e.prototype.dispose=function(){this._removeCanvas(),this._setManagedOutputCanvas(null)},e.prototype._setManagedOutputCanvas=function(e){this._removeCanvas(),e?(this._canvas=e,this.canvasContext=this._canvas.getContext("xrpresent")):(this._canvas=null,this.canvasContext=null)},e.prototype._addCanvas=function(){this._canvas&&document.body.appendChild(this._canvas)},e.prototype._removeCanvas=function(){this._canvas&&document.body.contains(this._canvas)&&document.body.removeChild(this._canvas)},e}(),Zi=(ji={root:0,found:!1},function(e,t,i,n){ji.root=0,ji.found=!1;var r=t*t-4*e*i;if(r<0)return ji;var o=Math.sqrt(r),s=(-t-o)/(2*e),a=(-t+o)/(2*e);if(s>a){var c=a;a=s,s=c}return s>0&&s0&&a=0))},e.prototype._canDoCollision=function(e,t,i,n){var r=o.x.Distance(this._basePointWorld,e),s=Math.max(this._radius.x,this._radius.y,this._radius.z);return!(r>this._velocityWorldLength+s+t)&&!!function(e,t,i,n){return!(e.x>i.x+n||i.x-n>t.x||e.y>i.y+n||i.y-n>t.y||e.z>i.z+n||i.z-n>t.z)}(i,n,this._basePointWorld,this._velocityWorldLength+s)},e.prototype._testTriangle=function(e,t,i,n,r,s){var a,c=!1;t||(t=[]),t[e]||(t[e]=new o.n(0,0,0,0),t[e].copyFromPoints(i,n,r));var l=t[e];if(s||l.isFrontFacingTo(this._normalizedVelocity,0)){var u=l.signedDistanceTo(this._basePoint),h=o.x.Dot(l.normal,this._velocity);if(0==h){if(Math.abs(u)>=1)return;c=!0,a=0}else{var d=(1-u)/h;if((a=(-1-u)/h)>d){var f=d;d=a,a=f}if(a>1||d<0)return;a<0&&(a=0),a>1&&(a=1)}this._collisionPoint.copyFromFloats(0,0,0);var p=!1,_=1;if(c||(this._basePoint.subtractToRef(l.normal,this._planeIntersectionPoint),this._velocity.scaleToRef(a,this._tempVector),this._planeIntersectionPoint.addInPlace(this._tempVector),this._checkPointInTriangle(this._planeIntersectionPoint,i,n,r,l.normal)&&(p=!0,_=a,this._collisionPoint.copyFrom(this._planeIntersectionPoint))),!p){var g=this._velocity.lengthSquared(),m=g;this._basePoint.subtractToRef(i,this._tempVector);var v=2*o.x.Dot(this._velocity,this._tempVector),y=this._tempVector.lengthSquared()-1,b=Zi(m,v,y,_);b.found&&(_=b.root,p=!0,this._collisionPoint.copyFrom(i)),this._basePoint.subtractToRef(n,this._tempVector),v=2*o.x.Dot(this._velocity,this._tempVector),y=this._tempVector.lengthSquared()-1,(b=Zi(m,v,y,_)).found&&(_=b.root,p=!0,this._collisionPoint.copyFrom(n)),this._basePoint.subtractToRef(r,this._tempVector),v=2*o.x.Dot(this._velocity,this._tempVector),y=this._tempVector.lengthSquared()-1,(b=Zi(m,v,y,_)).found&&(_=b.root,p=!0,this._collisionPoint.copyFrom(r)),n.subtractToRef(i,this._edge),i.subtractToRef(this._basePoint,this._baseToVertex);var T=this._edge.lengthSquared(),E=o.x.Dot(this._edge,this._velocity),A=o.x.Dot(this._edge,this._baseToVertex);if(m=T*-g+E*E,v=T*(2*o.x.Dot(this._velocity,this._baseToVertex))-2*E*A,y=T*(1-this._baseToVertex.lengthSquared())+A*A,(b=Zi(m,v,y,_)).found){var x=(E*b.root-A)/T;x>=0&&x<=1&&(_=b.root,p=!0,this._edge.scaleInPlace(x),i.addToRef(this._edge,this._collisionPoint))}r.subtractToRef(n,this._edge),n.subtractToRef(this._basePoint,this._baseToVertex),T=this._edge.lengthSquared(),E=o.x.Dot(this._edge,this._velocity),A=o.x.Dot(this._edge,this._baseToVertex),m=T*-g+E*E,v=T*(2*o.x.Dot(this._velocity,this._baseToVertex))-2*E*A,y=T*(1-this._baseToVertex.lengthSquared())+A*A,(b=Zi(m,v,y,_)).found&&(x=(E*b.root-A)/T)>=0&&x<=1&&(_=b.root,p=!0,this._edge.scaleInPlace(x),n.addToRef(this._edge,this._collisionPoint)),i.subtractToRef(r,this._edge),r.subtractToRef(this._basePoint,this._baseToVertex),T=this._edge.lengthSquared(),E=o.x.Dot(this._edge,this._velocity),A=o.x.Dot(this._edge,this._baseToVertex),m=T*-g+E*E,v=T*(2*o.x.Dot(this._velocity,this._baseToVertex))-2*E*A,y=T*(1-this._baseToVertex.lengthSquared())+A*A,(b=Zi(m,v,y,_)).found&&(x=(E*b.root-A)/T)>=0&&x<=1&&(_=b.root,p=!0,this._edge.scaleInPlace(x),r.addToRef(this._edge,this._collisionPoint))}if(p){var R=_*this._velocity.length();(!this.collisionFound||R=n)r.copyFrom(e);else{var a=o?o.collisionMask:i.collisionMask;i._initialize(e,t,s);for(var c=0;cthis.capacity&&this._depth-1&&this.entries.splice(i,1)}},e.prototype.addEntries=function(e){for(var t=0;te.occlusionRetryCount))return!1;e.isOcclusionQueryInProgress=!1,e.occlusionInternalRetryCounter=0,e.isOccluded=e.occlusionType!==Fe.a.OCCLUSION_TYPE_OPTIMISTIC&&e.isOccluded}var n=this.getScene();if(n.getBoundingBoxRenderer){var r=n.getBoundingBoxRenderer();this._occlusionQuery||(this._occlusionQuery=t.createQuery()),t.beginOcclusionQuery(e.occlusionQueryAlgorithmType,this._occlusionQuery),r.renderOcclusionBoundingBox(this),t.endOcclusionQuery(e.occlusionQueryAlgorithmType),this._occlusionDataStorage.isOcclusionQueryInProgress=!0}return e.isOccluded};ge.b.prototype.createTransformFeedback=function(){return this._gl.createTransformFeedback()},ge.b.prototype.deleteTransformFeedback=function(e){this._gl.deleteTransformFeedback(e)},ge.b.prototype.bindTransformFeedback=function(e){this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK,e)},ge.b.prototype.beginTransformFeedback=function(e){void 0===e&&(e=!0),this._gl.beginTransformFeedback(e?this._gl.POINTS:this._gl.TRIANGLES)},ge.b.prototype.endTransformFeedback=function(){this._gl.endTransformFeedback()},ge.b.prototype.setTranformFeedbackVaryings=function(e,t){this._gl.transformFeedbackVaryings(e,t,this._gl.INTERLEAVED_ATTRIBS)},ge.b.prototype.bindTransformFeedbackBuffer=function(e){this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER,0,e?e.underlyingResource:null)};var pn=i(107),_n=function(){function e(){}return e.COPY=1,e.CUT=2,e.PASTE=3,e}(),gn=function(){function e(e,t){this.type=e,this.event=t}return e.GetTypeFromCharacter=function(e){switch(e){case 67:return _n.COPY;case 86:return _n.PASTE;case 88:return _n.CUT;default:return-1}},e}(),mn=i(59),vn=i(55),yn=function(){function e(e,t,i){this.lengthComputable=e,this.loaded=t,this.total=i}return e.FromProgressEvent=function(t){return new e(t.lengthComputable,t.loaded,t.total)},e}(),bn=function(){function e(){}return Object.defineProperty(e,"ForceFullSceneLoadingForIncremental",{get:function(){return vn.a.ForceFullSceneLoadingForIncremental},set:function(e){vn.a.ForceFullSceneLoadingForIncremental=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"ShowLoadingScreen",{get:function(){return vn.a.ShowLoadingScreen},set:function(e){vn.a.ShowLoadingScreen=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"loggingLevel",{get:function(){return vn.a.loggingLevel},set:function(e){vn.a.loggingLevel=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CleanBoneMatrixWeights",{get:function(){return vn.a.CleanBoneMatrixWeights},set:function(e){vn.a.CleanBoneMatrixWeights=e},enumerable:!0,configurable:!0}),e._getDefaultPlugin=function(){return e._registeredPlugins[".babylon"]},e._getPluginForExtension=function(t){var i=e._registeredPlugins[t];return i||(p.a.Warn("Unable to find a plugin to load "+t+" files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: http://doc.babylonjs.com/how_to/load_from_any_file_type"),e._getDefaultPlugin())},e._getPluginForDirectLoad=function(t){for(var i in e._registeredPlugins){var n=e._registeredPlugins[i].plugin;if(n.canDirectLoad&&n.canDirectLoad(t))return e._registeredPlugins[i]}return e._getDefaultPlugin()},e._getPluginForFilename=function(t){var i=t.indexOf("?");-1!==i&&(t=t.substring(0,i));var n=t.lastIndexOf("."),r=t.substring(n,t.length).toLowerCase();return e._getPluginForExtension(r)},e._getDirectLoad=function(e){return"data:"===e.substr(0,5)?e.substr(5):null},e._loadData=function(t,i,n,r,o,s,a){var c,l=e._getDirectLoad(t.name),u=a?e._getPluginForExtension(a):l?e._getPluginForDirectLoad(t.name):e._getPluginForFilename(t.name);if(!(c=u.plugin.createPlugin?u.plugin.createPlugin():u.plugin))throw"The loader plugin corresponding to the file type you are trying to load has not been found. If using es6, please import the plugin you wish to use before.";var h,d=u.isBinary;e.OnPluginActivatedObservable.notifyObservers(c);var f=function(e,t){i.isDisposed?o("Scene has been disposed"):(i.offlineProvider=h,n(c,e,t))},p=null,_=!1,g=c.onDisposeObservable;g&&g.add(function(){_=!0,p&&(p.abort(),p=null),s()});var m=function(){_||(p=ye.h.LoadFile(t.url,f,r?function(e){r(yn.FromProgressEvent(e))}:void 0,h,d,function(e,t){o("Failed to load scene."+(t?" "+t.message:""),t)}))};if(l)return f(l),c;var v=t.file||mn.a.FilesToLoad[t.name.toLowerCase()];if(-1===t.rootUrl.indexOf("file:")||-1!==t.rootUrl.indexOf("file:")&&!v){var y=i.getEngine(),b=y.enableOfflineSupport;if(b){for(var T=!1,E=0,A=i.disableOfflineSupportExceptionRules;Es.snapDistance?(r=Math.floor(Math.abs(h)/s.snapDistance),h<0&&(r*=-1),h%=s.snapDistance,d.scaleToRef(s.snapDistance*r,d),n=!0):d.scaleInPlace(0)),s.attachedMesh.scaling.addInPlace(d),n&&(f.snapDistance=s.snapDistance*r,s.onSnapObservable.notifyObservers(f))}}),s._pointerObserver=n.utilityLayerScene.onPointerObservable.add(function(e){if(!s._customMeshSet){var t=e.pickInfo&&-1!=s._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh)?a:s._coloredMaterial;s._rootMesh.getChildMeshes().forEach(function(e){e.material=t,e.color&&(e.color=t.diffuseColor)})}});var p=n._getSharedGizmoLight();return p.includedOnlyMeshes=p.includedOnlyMeshes.concat(s._rootMesh.getChildMeshes()),s}return l.d(t,e),t.prototype._attachedMeshChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),e.prototype.dispose.call(this)},t.prototype.setCustomMesh=function(t,i){var n=this;void 0===i&&(i=!1),e.prototype.setCustomMesh.call(this,t),i&&(this._rootMesh.getChildMeshes().forEach(function(e){e.material=n._coloredMaterial,e.color&&(e.color=n._coloredMaterial.diffuseColor)}),this._customMeshSet=!1)},t}(On.a),Ln=i(46),wn=i(40),Fn=function(e){function t(t,i){void 0===t&&(t=o.e.Gray()),void 0===i&&(i=In.a.DefaultKeepDepthUtilityLayer);var n=e.call(this,i)||this;n._boundingDimensions=new o.x(1,1,1),n._renderObserver=null,n._pointerObserver=null,n._scaleDragSpeed=.2,n._tmpQuaternion=new o.q,n._tmpVector=new o.x(0,0,0),n._tmpRotationMatrix=new o.j,n.ignoreChildren=!1,n.includeChildPredicate=null,n.rotationSphereSize=.1,n.scaleBoxSize=.1,n.fixedDragMeshScreenSize=!1,n.fixedDragMeshScreenSizeDistanceFactor=10,n.onDragStartObservable=new r.c,n.onScaleBoxDragObservable=new r.c,n.onScaleBoxDragEndObservable=new r.c,n.onRotationSphereDragObservable=new r.c,n.onRotationSphereDragEndObservable=new r.c,n.scalePivot=null,n._existingMeshScale=new o.x,n._dragMesh=null,n.pointerDragBehavior=new Le.a,n._updateScale=!1,n._anchorMesh=new Fe.a("anchor",i.utilityLayerScene),n.coloredMaterial=new Ri.a("",i.utilityLayerScene),n.coloredMaterial.disableLighting=!0,n.hoverColoredMaterial=new Ri.a("",i.utilityLayerScene),n.hoverColoredMaterial.disableLighting=!0,n._lineBoundingBox=new Fe.a("",i.utilityLayerScene),n._lineBoundingBox.rotationQuaternion=new o.q;var s=[];s.push(wn.a.CreateLines("lines",{points:[new o.x(0,0,0),new o.x(n._boundingDimensions.x,0,0)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(0,0,0),new o.x(0,n._boundingDimensions.y,0)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(0,0,0),new o.x(0,0,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(n._boundingDimensions.x,0,0),new o.x(n._boundingDimensions.x,n._boundingDimensions.y,0)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(n._boundingDimensions.x,0,0),new o.x(n._boundingDimensions.x,0,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(0,n._boundingDimensions.y,0),new o.x(n._boundingDimensions.x,n._boundingDimensions.y,0)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(0,n._boundingDimensions.y,0),new o.x(0,n._boundingDimensions.y,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(0,0,n._boundingDimensions.z),new o.x(n._boundingDimensions.x,0,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(0,0,n._boundingDimensions.z),new o.x(0,n._boundingDimensions.y,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(n._boundingDimensions.x,n._boundingDimensions.y,n._boundingDimensions.z),new o.x(0,n._boundingDimensions.y,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(n._boundingDimensions.x,n._boundingDimensions.y,n._boundingDimensions.z),new o.x(n._boundingDimensions.x,0,n._boundingDimensions.z)]},i.utilityLayerScene)),s.push(wn.a.CreateLines("lines",{points:[new o.x(n._boundingDimensions.x,n._boundingDimensions.y,n._boundingDimensions.z),new o.x(n._boundingDimensions.x,n._boundingDimensions.y,0)]},i.utilityLayerScene)),s.forEach(function(e){e.color=t,e.position.addInPlace(new o.x(-n._boundingDimensions.x/2,-n._boundingDimensions.y/2,-n._boundingDimensions.z/2)),e.isPickable=!1,n._lineBoundingBox.addChild(e)}),n._rootMesh.addChild(n._lineBoundingBox),n.setColor(t),n._rotateSpheresParent=new Fe.a("",i.utilityLayerScene),n._rotateSpheresParent.rotationQuaternion=new o.q;for(var a=function(e){var t=Ln.a.CreateSphere("",{diameter:1},i.utilityLayerScene);t.rotationQuaternion=new o.q,t.material=c.coloredMaterial,(d=new Le.a({})).moveAttached=!1,d.updateDragPlane=!1,t.addBehavior(d);var r=new o.x(1,0,0),s=0;d.onDragStartObservable.add(function(){r.copyFrom(t.forward),s=0}),d.onDragObservable.add(function(t){if(n.onRotationSphereDragObservable.notifyObservers({}),n.attachedMesh){var i=n.attachedMesh.parent;if(i&&i.scaling&&i.scaling.isNonUniformWithinEpsilon(.001))return void p.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");Be.a._RemoveAndStorePivotPoint(n.attachedMesh);var a=r,c=t.dragPlaneNormal.scale(o.x.Dot(t.dragPlaneNormal,a)),l=a.subtract(c).normalizeToNew(),u=o.x.Dot(l,t.delta)<0?Math.abs(t.delta.length()):-Math.abs(t.delta.length());u=u/n._boundingDimensions.length()*n._anchorMesh.scaling.length(),n.attachedMesh.rotationQuaternion||(n.attachedMesh.rotationQuaternion=o.q.RotationYawPitchRoll(n.attachedMesh.rotation.y,n.attachedMesh.rotation.x,n.attachedMesh.rotation.z)),n._anchorMesh.rotationQuaternion||(n._anchorMesh.rotationQuaternion=o.q.RotationYawPitchRoll(n._anchorMesh.rotation.y,n._anchorMesh.rotation.x,n._anchorMesh.rotation.z)),s+=u,Math.abs(s)<=2*Math.PI&&(e>=8?o.q.RotationYawPitchRollToRef(0,0,u,n._tmpQuaternion):e>=4?o.q.RotationYawPitchRollToRef(u,0,0,n._tmpQuaternion):o.q.RotationYawPitchRollToRef(0,u,0,n._tmpQuaternion),n._anchorMesh.addChild(n.attachedMesh),n._anchorMesh.rotationQuaternion.multiplyToRef(n._tmpQuaternion,n._anchorMesh.rotationQuaternion),n._anchorMesh.removeChild(n.attachedMesh),n.attachedMesh.setParent(i)),n.updateBoundingBox(),Be.a._RestorePivotPoint(n.attachedMesh)}n._updateDummy()}),d.onDragStartObservable.add(function(){n.onDragStartObservable.notifyObservers({}),n._selectNode(t)}),d.onDragEndObservable.add(function(){n.onRotationSphereDragEndObservable.notifyObservers({}),n._selectNode(null),n._updateDummy()}),c._rotateSpheresParent.addChild(t)},c=this,l=0;l<12;l++)a(l);n._rootMesh.addChild(n._rotateSpheresParent),n._scaleBoxesParent=new Fe.a("",i.utilityLayerScene),n._scaleBoxesParent.rotationQuaternion=new o.q;for(var u=0;u<2;u++)for(var h=0;h<2;h++)for(var d,f=function(){var e=Mn.a.CreateBox("",{size:1},i.utilityLayerScene);e.material=_.coloredMaterial;var t=new o.x(0==u?-1:1,0==h?-1:1,0==g?-1:1);(d=new Le.a({dragAxis:t})).moveAttached=!1,e.addBehavior(d),d.onDragObservable.add(function(t){if(n.onScaleBoxDragObservable.notifyObservers({}),n.attachedMesh){var i=n.attachedMesh.parent;if(i&&i.scaling&&i.scaling.isNonUniformWithinEpsilon(.001))return void p.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");Be.a._RemoveAndStorePivotPoint(n.attachedMesh);var r=t.dragDistance/n._boundingDimensions.length()*n._anchorMesh.scaling.length(),s=new o.x(r,r,r);s.scaleInPlace(n._scaleDragSpeed),n.updateBoundingBox(),n.scalePivot?(n.attachedMesh.getWorldMatrix().getRotationMatrixToRef(n._tmpRotationMatrix),n._boundingDimensions.scaleToRef(.5,n._tmpVector),o.x.TransformCoordinatesToRef(n._tmpVector,n._tmpRotationMatrix,n._tmpVector),n._anchorMesh.position.subtractInPlace(n._tmpVector),n._boundingDimensions.multiplyToRef(n.scalePivot,n._tmpVector),o.x.TransformCoordinatesToRef(n._tmpVector,n._tmpRotationMatrix,n._tmpVector),n._anchorMesh.position.addInPlace(n._tmpVector)):(e.absolutePosition.subtractToRef(n._anchorMesh.position,n._tmpVector),n._anchorMesh.position.subtractInPlace(n._tmpVector)),n._anchorMesh.addChild(n.attachedMesh),n._anchorMesh.scaling.addInPlace(s),(n._anchorMesh.scaling.x<0||n._anchorMesh.scaling.y<0||n._anchorMesh.scaling.z<0)&&n._anchorMesh.scaling.subtractInPlace(s),n._anchorMesh.removeChild(n.attachedMesh),n.attachedMesh.setParent(i),Be.a._RestorePivotPoint(n.attachedMesh)}n._updateDummy()}),d.onDragStartObservable.add(function(){n.onDragStartObservable.notifyObservers({}),n._selectNode(e)}),d.onDragEndObservable.add(function(){n.onScaleBoxDragEndObservable.notifyObservers({}),n._selectNode(null),n._updateDummy()}),_._scaleBoxesParent.addChild(e)},_=this,g=0;g<2;g++)f();n._rootMesh.addChild(n._scaleBoxesParent);var m=new Array;return n._pointerObserver=i.utilityLayerScene.onPointerObservable.add(function(e){m[e.event.pointerId]?e.pickInfo&&e.pickInfo.pickedMesh!=m[e.event.pointerId]&&(m[e.event.pointerId].material=n.coloredMaterial,delete m[e.event.pointerId]):n._rotateSpheresParent.getChildMeshes().concat(n._scaleBoxesParent.getChildMeshes()).forEach(function(t){e.pickInfo&&e.pickInfo.pickedMesh==t&&(m[e.event.pointerId]=t,t.material=n.hoverColoredMaterial)})}),n._renderObserver=n.gizmoLayer.originalScene.onBeforeRenderObservable.add(function(){n.attachedMesh&&!n._existingMeshScale.equals(n.attachedMesh.scaling)?n.updateBoundingBox():n.fixedDragMeshScreenSize&&(n._updateRotationSpheres(),n._updateScaleBoxes()),n._dragMesh&&n.attachedMesh&&n.pointerDragBehavior.dragging&&(n._lineBoundingBox.position.rotateByQuaternionToRef(n._rootMesh.rotationQuaternion,n._tmpVector),n.attachedMesh.setAbsolutePosition(n._dragMesh.position.add(n._tmpVector.scale(-1))))}),n.updateBoundingBox(),n}return l.d(t,e),t.prototype.setColor=function(e){this.coloredMaterial.emissiveColor=e,this.hoverColoredMaterial.emissiveColor=e.clone().add(new o.e(.3,.3,.3)),this._lineBoundingBox.getChildren().forEach(function(t){t.color&&(t.color=e)})},t.prototype._attachedMeshChanged=function(e){var t=this;if(e){Be.a._RemoveAndStorePivotPoint(e);var i=e.parent;this._anchorMesh.addChild(e),this._anchorMesh.removeChild(e),e.setParent(i),Be.a._RestorePivotPoint(e),this.updateBoundingBox(),e.getChildMeshes(!1).forEach(function(e){e.markAsDirty("scaling")}),this.gizmoLayer.utilityLayerScene.onAfterRenderObservable.addOnce(function(){t._updateDummy()})}},t.prototype._selectNode=function(e){this._rotateSpheresParent.getChildMeshes().concat(this._scaleBoxesParent.getChildMeshes()).forEach(function(t){t.isVisible=!e||t==e})},t.prototype.updateBoundingBox=function(){if(this.attachedMesh){Be.a._RemoveAndStorePivotPoint(this.attachedMesh);var e=this.attachedMesh.parent;this.attachedMesh.setParent(null);var t=null;this.attachedMesh.skeleton&&(t=this.attachedMesh.skeleton.overrideMesh,this.attachedMesh.skeleton.overrideMesh=null),this._update(),this.attachedMesh.rotationQuaternion||(this.attachedMesh.rotationQuaternion=o.q.RotationYawPitchRoll(this.attachedMesh.rotation.y,this.attachedMesh.rotation.x,this.attachedMesh.rotation.z)),this._anchorMesh.rotationQuaternion||(this._anchorMesh.rotationQuaternion=o.q.RotationYawPitchRoll(this._anchorMesh.rotation.y,this._anchorMesh.rotation.x,this._anchorMesh.rotation.z)),this._anchorMesh.rotationQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpVector.copyFrom(this.attachedMesh.position),this.attachedMesh.rotationQuaternion.set(0,0,0,1),this.attachedMesh.position.set(0,0,0);var i=this.attachedMesh.getHierarchyBoundingVectors(!this.ignoreChildren,this.includeChildPredicate);i.max.subtractToRef(i.min,this._boundingDimensions),this._lineBoundingBox.scaling.copyFrom(this._boundingDimensions),this._lineBoundingBox.position.set((i.max.x+i.min.x)/2,(i.max.y+i.min.y)/2,(i.max.z+i.min.z)/2),this._rotateSpheresParent.position.copyFrom(this._lineBoundingBox.position),this._scaleBoxesParent.position.copyFrom(this._lineBoundingBox.position),this._lineBoundingBox.computeWorldMatrix(),this._anchorMesh.position.copyFrom(this._lineBoundingBox.absolutePosition),this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion),this.attachedMesh.position.copyFrom(this._tmpVector),this.attachedMesh.setParent(e),this.attachedMesh.skeleton&&(this.attachedMesh.skeleton.overrideMesh=t)}this._updateRotationSpheres(),this._updateScaleBoxes(),this.attachedMesh&&(this._existingMeshScale.copyFrom(this.attachedMesh.scaling),Be.a._RestorePivotPoint(this.attachedMesh))},t.prototype._updateRotationSpheres=function(){for(var e=this._rotateSpheresParent.getChildMeshes(),t=0;t<3;t++)for(var i=0;i<2;i++)for(var n=0;n<2;n++){var r=4*t+2*i+n;if(0==t&&(e[r].position.set(this._boundingDimensions.x/2,this._boundingDimensions.y*i,this._boundingDimensions.z*n),e[r].position.addInPlace(new o.x(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[r].lookAt(o.x.Cross(e[r].position.normalizeToNew(),o.x.Right()).normalizeToNew().add(e[r].position))),1==t&&(e[r].position.set(this._boundingDimensions.x*i,this._boundingDimensions.y/2,this._boundingDimensions.z*n),e[r].position.addInPlace(new o.x(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[r].lookAt(o.x.Cross(e[r].position.normalizeToNew(),o.x.Up()).normalizeToNew().add(e[r].position))),2==t&&(e[r].position.set(this._boundingDimensions.x*i,this._boundingDimensions.y*n,this._boundingDimensions.z/2),e[r].position.addInPlace(new o.x(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[r].lookAt(o.x.Cross(e[r].position.normalizeToNew(),o.x.Forward()).normalizeToNew().add(e[r].position))),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);var s=this.rotationSphereSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[r].scaling.set(s,s,s)}else e[r].scaling.set(this.rotationSphereSize,this.rotationSphereSize,this.rotationSphereSize)}},t.prototype._updateScaleBoxes=function(){for(var e=this._scaleBoxesParent.getChildMeshes(),t=0;t<2;t++)for(var i=0;i<2;i++)for(var n=0;n<2;n++){var r=4*t+2*i+n;if(e[r])if(e[r].position.set(this._boundingDimensions.x*t,this._boundingDimensions.y*i,this._boundingDimensions.z*n),e[r].position.addInPlace(new o.x(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);var s=this.scaleBoxSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[r].scaling.set(s,s,s)}else e[r].scaling.set(this.scaleBoxSize,this.scaleBoxSize,this.scaleBoxSize)}},t.prototype.setEnabledRotationAxis=function(e){this._rotateSpheresParent.getChildMeshes().forEach(function(t,i){i<4?t.setEnabled(-1!=e.indexOf("x")):i<8?t.setEnabled(-1!=e.indexOf("y")):t.setEnabled(-1!=e.indexOf("z"))})},t.prototype.setEnabledScaling=function(e){this._scaleBoxesParent.getChildMeshes().forEach(function(t,i){t.setEnabled(e)})},t.prototype._updateDummy=function(){this._dragMesh&&(this._dragMesh.position.copyFrom(this._lineBoundingBox.getAbsolutePosition()),this._dragMesh.scaling.copyFrom(this._lineBoundingBox.scaling),this._dragMesh.rotationQuaternion.copyFrom(this._rootMesh.rotationQuaternion))},t.prototype.enableDragBehavior=function(){this._dragMesh=fe.a.CreateBox("dummy",1,this.gizmoLayer.utilityLayerScene),this._dragMesh.visibility=0,this._dragMesh.rotationQuaternion=new o.q,this.pointerDragBehavior.useObjectOrienationForDragging=!1,this._dragMesh.addBehavior(this.pointerDragBehavior)},t.prototype.dispose=function(){this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver),this._lineBoundingBox.dispose(),this._rotateSpheresParent.dispose(),this._scaleBoxesParent.dispose(),this._dragMesh&&this._dragMesh.dispose(),e.prototype.dispose.call(this)},t.MakeNotPickableAndWrapInBoundingBox=function(e){var t=function(e){e.isPickable=!1,e.getChildMeshes().forEach(function(e){t(e)})};t(e),e.rotationQuaternion||(e.rotationQuaternion=o.q.RotationYawPitchRoll(e.rotation.y,e.rotation.x,e.rotation.z));var i=e.position.clone(),n=e.rotationQuaternion.clone();e.rotationQuaternion.set(0,0,0,1),e.position.set(0,0,0);var r=Mn.a.CreateBox("box",{size:1},e.getScene()),s=e.getHierarchyBoundingVectors();return s.max.subtractToRef(s.min,r.scaling),0===r.scaling.y&&(r.scaling.y=o.h),0===r.scaling.x&&(r.scaling.x=o.h),0===r.scaling.z&&(r.scaling.z=o.h),r.position.set((s.max.x+s.min.x)/2,(s.max.y+s.min.y)/2,(s.max.z+s.min.z)/2),e.addChild(r),e.rotationQuaternion.copyFrom(n),e.position.copyFrom(i),e.removeChild(r),r.addChild(e),r.visibility=0,r},t.prototype.setCustomMesh=function(e){p.a.Error("Custom meshes are not supported on this gizmo")},t}(On.a),Nn=function(e){function t(t,i,n,s){void 0===i&&(i=o.e.Gray()),void 0===n&&(n=In.a.DefaultUtilityLayer),void 0===s&&(s=32);var a=e.call(this,n)||this;a._pointerObserver=null,a.snapDistance=0,a.onSnapObservable=new r.c;var c=new Ri.a("",n.utilityLayerScene);c.diffuseColor=i,c.specularColor=i.subtract(new o.e(.1,.1,.1));var l=new Ri.a("",n.utilityLayerScene);l.diffuseColor=i.add(new o.e(.3,.3,.3));var u=new Fe.a("",n.utilityLayerScene),h=fe.a.CreateTorus("",.6,.03,s,n.utilityLayerScene);h.visibility=0;var d=fe.a.CreateTorus("",.6,.005,s,n.utilityLayerScene);d.material=c,d.rotation.x=Math.PI/2,h.rotation.x=Math.PI/2,u.addChild(d),u.addChild(h),u.lookAt(a._rootMesh.position.add(t)),a._rootMesh.addChild(u),u.scaling.scaleInPlace(1/3),a.dragBehavior=new Le.a({dragPlaneNormal:t}),a.dragBehavior.moveAttached=!1,a.dragBehavior.maxDragAngle=9*Math.PI/20,a.dragBehavior._useAlternatePickedPointAboveMaxDragAngle=!0,a._rootMesh.addBehavior(a.dragBehavior);var f=new o.x;a.dragBehavior.onDragStartObservable.add(function(e){a.attachedMesh&&f.copyFrom(e.dragPlanePoint)});var p=new o.j,_=new o.x,g=new o.x,m={snapDistance:0},v=0,y=new o.j,b=new o.x,T=new o.q;a.dragBehavior.onDragObservable.add(function(e){if(a.attachedMesh){a.attachedMesh.rotationQuaternion||(a.attachedMesh.rotationQuaternion=o.q.RotationYawPitchRoll(a.attachedMesh.rotation.y,a.attachedMesh.rotation.x,a.attachedMesh.rotation.z));var i=a.attachedMesh.parent;i&&a.attachedMesh.setParent(null);var r=e.dragPlanePoint.subtract(a.attachedMesh.absolutePosition).normalize(),s=f.subtract(a.attachedMesh.absolutePosition).normalize(),c=o.x.Cross(r,s),l=o.x.Dot(r,s),u=Math.atan2(c.length(),l);if(_.copyFrom(t),g.copyFrom(t),a.updateGizmoRotationToMatchAttachedMesh&&(a.attachedMesh.rotationQuaternion.toRotationMatrix(p),g=o.x.TransformCoordinates(_,p)),n.utilityLayerScene.activeCamera){var h=n.utilityLayerScene.activeCamera.position.subtract(a.attachedMesh.position);o.x.Dot(h,g)>0&&(_.scaleInPlace(-1),g.scaleInPlace(-1))}o.x.Dot(g,c)>0&&(u=-u);var d=!1;if(0!=a.snapDistance)if(v+=u,Math.abs(v)>a.snapDistance){var E=Math.floor(Math.abs(v)/a.snapDistance);v<0&&(E*=-1),v%=a.snapDistance,u=a.snapDistance*E,d=!0}else u=0;y.reset(),a.attachedMesh.parent&&(a.attachedMesh.parent.computeWorldMatrix().invertToRef(y),y.getRotationMatrixToRef(y),o.x.TransformCoordinatesToRef(_,y,_));var A=Math.sin(u/2);T.set(_.x*A,_.y*A,_.z*A,Math.cos(u/2)),y.determinant()>0&&(T.toEulerAnglesToRef(b),o.q.RotationYawPitchRollToRef(b.y,-b.x,-b.z,T)),a.updateGizmoRotationToMatchAttachedMesh?a.attachedMesh.rotationQuaternion.multiplyToRef(T,a.attachedMesh.rotationQuaternion):T.multiplyToRef(a.attachedMesh.rotationQuaternion,a.attachedMesh.rotationQuaternion),f.copyFrom(e.dragPlanePoint),d&&(m.snapDistance=u,a.onSnapObservable.notifyObservers(m)),i&&a.attachedMesh.setParent(i)}}),a._pointerObserver=n.utilityLayerScene.onPointerObservable.add(function(e){if(!a._customMeshSet){var t=e.pickInfo&&-1!=a._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh)?l:c;a._rootMesh.getChildMeshes().forEach(function(e){e.material=t,e.color&&(e.color=t.diffuseColor)})}});var E=n._getSharedGizmoLight();return E.includedOnlyMeshes=E.includedOnlyMeshes.concat(a._rootMesh.getChildMeshes(!1)),a}return l.d(t,e),t.prototype._attachedMeshChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),e.prototype.dispose.call(this)},t}(On.a),Bn=function(e){function t(t,i){void 0===t&&(t=In.a.DefaultUtilityLayer),void 0===i&&(i=32);var n=e.call(this,t)||this;return n.onDragStartObservable=new r.c,n.onDragEndObservable=new r.c,n.xGizmo=new Nn(new o.x(1,0,0),o.e.Red().scale(.5),t,i),n.yGizmo=new Nn(new o.x(0,1,0),o.e.Green().scale(.5),t,i),n.zGizmo=new Nn(new o.x(0,0,1),o.e.Blue().scale(.5),t,i),[n.xGizmo,n.yGizmo,n.zGizmo].forEach(function(e){e.dragBehavior.onDragStartObservable.add(function(){n.onDragStartObservable.notifyObservers({})}),e.dragBehavior.onDragEndObservable.add(function(){n.onDragEndObservable.notifyObservers({})})}),n.attachedMesh=null,n}return l.d(t,e),Object.defineProperty(t.prototype,"attachedMesh",{get:function(){return this.xGizmo.attachedMesh},set:function(e){this.xGizmo&&(this.xGizmo.attachedMesh=e,this.yGizmo.attachedMesh=e,this.zGizmo.attachedMesh=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"updateGizmoRotationToMatchAttachedMesh",{get:function(){return this.xGizmo.updateGizmoRotationToMatchAttachedMesh},set:function(e){this.xGizmo&&(this.xGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.yGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.zGizmo.updateGizmoRotationToMatchAttachedMesh=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"snapDistance",{get:function(){return this.xGizmo.snapDistance},set:function(e){this.xGizmo&&(this.xGizmo.snapDistance=e,this.yGizmo.snapDistance=e,this.zGizmo.snapDistance=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scaleRatio",{get:function(){return this.xGizmo.scaleRatio},set:function(e){this.xGizmo&&(this.xGizmo.scaleRatio=e,this.yGizmo.scaleRatio=e,this.zGizmo.scaleRatio=e)},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.xGizmo.dispose(),this.yGizmo.dispose(),this.zGizmo.dispose(),this.onDragStartObservable.clear(),this.onDragEndObservable.clear()},t.prototype.setCustomMesh=function(e){p.a.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)")},t}(On.a),Un=function(e){function t(t){void 0===t&&(t=In.a.DefaultUtilityLayer);var i=e.call(this,t)||this;return i.onDragStartObservable=new r.c,i.onDragEndObservable=new r.c,i.xGizmo=new Cn.a(new o.x(1,0,0),o.e.Red().scale(.5),t),i.yGizmo=new Cn.a(new o.x(0,1,0),o.e.Green().scale(.5),t),i.zGizmo=new Cn.a(new o.x(0,0,1),o.e.Blue().scale(.5),t),[i.xGizmo,i.yGizmo,i.zGizmo].forEach(function(e){e.dragBehavior.onDragStartObservable.add(function(){i.onDragStartObservable.notifyObservers({})}),e.dragBehavior.onDragEndObservable.add(function(){i.onDragEndObservable.notifyObservers({})})}),i.attachedMesh=null,i}return l.d(t,e),Object.defineProperty(t.prototype,"attachedMesh",{get:function(){return this.xGizmo.attachedMesh},set:function(e){this.xGizmo&&(this.xGizmo.attachedMesh=e,this.yGizmo.attachedMesh=e,this.zGizmo.attachedMesh=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"updateGizmoRotationToMatchAttachedMesh",{get:function(){return this.xGizmo.updateGizmoRotationToMatchAttachedMesh},set:function(e){this.xGizmo&&(this.xGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.yGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.zGizmo.updateGizmoRotationToMatchAttachedMesh=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"snapDistance",{get:function(){return this.xGizmo.snapDistance},set:function(e){this.xGizmo&&(this.xGizmo.snapDistance=e,this.yGizmo.snapDistance=e,this.zGizmo.snapDistance=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scaleRatio",{get:function(){return this.xGizmo.scaleRatio},set:function(e){this.xGizmo&&(this.xGizmo.scaleRatio=e,this.yGizmo.scaleRatio=e,this.zGizmo.scaleRatio=e)},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.xGizmo.dispose(),this.yGizmo.dispose(),this.zGizmo.dispose(),this.onDragStartObservable.clear(),this.onDragEndObservable.clear()},t.prototype.setCustomMesh=function(e){p.a.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)")},t}(On.a);Mi.a.CreatePolyhedron=function(e){var t=[];t[0]={vertex:[[0,0,1.732051],[1.632993,0,-.5773503],[-.8164966,1.414214,-.5773503],[-.8164966,-1.414214,-.5773503]],face:[[0,1,2],[0,2,3],[0,3,1],[1,3,2]]},t[1]={vertex:[[0,0,1.414214],[1.414214,0,0],[0,1.414214,0],[-1.414214,0,0],[0,-1.414214,0],[0,0,-1.414214]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,1],[1,4,5],[1,5,2],[2,5,3],[3,5,4]]},t[2]={vertex:[[0,0,1.070466],[.7136442,0,.7978784],[-.3568221,.618034,.7978784],[-.3568221,-.618034,.7978784],[.7978784,.618034,.3568221],[.7978784,-.618034,.3568221],[-.9341724,.381966,.3568221],[.1362939,1,.3568221],[.1362939,-1,.3568221],[-.9341724,-.381966,.3568221],[.9341724,.381966,-.3568221],[.9341724,-.381966,-.3568221],[-.7978784,.618034,-.3568221],[-.1362939,1,-.3568221],[-.1362939,-1,-.3568221],[-.7978784,-.618034,-.3568221],[.3568221,.618034,-.7978784],[.3568221,-.618034,-.7978784],[-.7136442,0,-.7978784],[0,0,-1.070466]],face:[[0,1,4,7,2],[0,2,6,9,3],[0,3,8,5,1],[1,5,11,10,4],[2,7,13,12,6],[3,9,15,14,8],[4,10,16,13,7],[5,8,14,17,11],[6,12,18,15,9],[10,11,17,19,16],[12,13,16,19,18],[14,15,18,19,17]]},t[3]={vertex:[[0,0,1.175571],[1.051462,0,.5257311],[.3249197,1,.5257311],[-.8506508,.618034,.5257311],[-.8506508,-.618034,.5257311],[.3249197,-1,.5257311],[.8506508,.618034,-.5257311],[.8506508,-.618034,-.5257311],[-.3249197,1,-.5257311],[-1.051462,0,-.5257311],[-.3249197,-1,-.5257311],[0,0,-1.175571]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,5],[0,5,1],[1,5,7],[1,7,6],[1,6,2],[2,6,8],[2,8,3],[3,8,9],[3,9,4],[4,9,10],[4,10,5],[5,10,7],[6,7,11],[6,11,8],[7,10,11],[8,11,9],[9,11,10]]},t[4]={vertex:[[0,0,1.070722],[.7148135,0,.7971752],[-.104682,.7071068,.7971752],[-.6841528,.2071068,.7971752],[-.104682,-.7071068,.7971752],[.6101315,.7071068,.5236279],[1.04156,.2071068,.1367736],[.6101315,-.7071068,.5236279],[-.3574067,1,.1367736],[-.7888348,-.5,.5236279],[-.9368776,.5,.1367736],[-.3574067,-1,.1367736],[.3574067,1,-.1367736],[.9368776,-.5,-.1367736],[.7888348,.5,-.5236279],[.3574067,-1,-.1367736],[-.6101315,.7071068,-.5236279],[-1.04156,-.2071068,-.1367736],[-.6101315,-.7071068,-.5236279],[.104682,.7071068,-.7971752],[.6841528,-.2071068,-.7971752],[.104682,-.7071068,-.7971752],[-.7148135,0,-.7971752],[0,0,-1.070722]],face:[[0,2,3],[1,6,5],[4,9,11],[7,15,13],[8,16,10],[12,14,19],[17,22,18],[20,21,23],[0,1,5,2],[0,3,9,4],[0,4,7,1],[1,7,13,6],[2,5,12,8],[2,8,10,3],[3,10,17,9],[4,11,15,7],[5,6,14,12],[6,13,20,14],[8,12,19,16],[9,17,18,11],[10,16,22,17],[11,18,21,15],[13,15,21,20],[14,20,23,19],[16,19,23,22],[18,22,23,21]]},t[5]={vertex:[[0,0,1.322876],[1.309307,0,.1889822],[-.9819805,.8660254,.1889822],[.1636634,-1.299038,.1889822],[.3273268,.8660254,-.9449112],[-.8183171,-.4330127,-.9449112]],face:[[0,3,1],[2,4,5],[0,1,4,2],[0,2,5,3],[1,3,5,4]]},t[6]={vertex:[[0,0,1.159953],[1.013464,0,.5642542],[-.3501431,.9510565,.5642542],[-.7715208,-.6571639,.5642542],[.6633206,.9510565,-.03144481],[.8682979,-.6571639,-.3996071],[-1.121664,.2938926,-.03144481],[-.2348831,-1.063314,-.3996071],[.5181548,.2938926,-.9953061],[-.5850262,-.112257,-.9953061]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,9,7],[5,7,9,8],[0,3,7,5,1],[2,4,8,9,6]]},t[7]={vertex:[[0,0,1.118034],[.8944272,0,.6708204],[-.2236068,.8660254,.6708204],[-.7826238,-.4330127,.6708204],[.6708204,.8660254,.2236068],[1.006231,-.4330127,-.2236068],[-1.006231,.4330127,.2236068],[-.6708204,-.8660254,-.2236068],[.7826238,.4330127,-.6708204],[.2236068,-.8660254,-.6708204],[-.8944272,0,-.6708204],[0,0,-1.118034]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,10,7],[5,9,11,8],[7,10,11,9],[0,3,7,9,5,1],[2,4,8,11,10,6]]},t[8]={vertex:[[-.729665,.670121,.319155],[-.655235,-.29213,-.754096],[-.093922,-.607123,.537818],[.702196,.595691,.485187],[.776626,-.36656,-.588064]],face:[[1,4,2],[0,1,2],[3,0,2],[4,3,2],[4,1,0,3]]},t[9]={vertex:[[-.868849,-.100041,.61257],[-.329458,.976099,.28078],[-.26629,-.013796,-.477654],[-.13392,-1.034115,.229829],[.738834,.707117,-.307018],[.859683,-.535264,-.338508]],face:[[3,0,2],[5,3,2],[4,5,2],[1,4,2],[0,1,2],[0,3,5,4,1]]},t[10]={vertex:[[-.610389,.243975,.531213],[-.187812,-.48795,-.664016],[-.187812,.9759,-.664016],[.187812,-.9759,.664016],[.798201,.243975,.132803]],face:[[1,3,0],[3,4,0],[3,1,4],[0,2,1],[0,4,2],[2,4,1]]},t[11]={vertex:[[-1.028778,.392027,-.048786],[-.640503,-.646161,.621837],[-.125162,-.395663,-.540059],[.004683,.888447,-.651988],[.125161,.395663,.540059],[.632925,-.791376,.433102],[1.031672,.157063,-.354165]],face:[[3,2,0],[2,1,0],[2,5,1],[0,4,3],[0,1,4],[4,1,5],[2,3,6],[3,4,6],[5,2,6],[4,5,6]]},t[12]={vertex:[[-.669867,.334933,-.529576],[-.669867,.334933,.529577],[-.4043,1.212901,0],[-.334933,-.669867,-.529576],[-.334933,-.669867,.529577],[.334933,.669867,-.529576],[.334933,.669867,.529577],[.4043,-1.212901,0],[.669867,-.334933,-.529576],[.669867,-.334933,.529577]],face:[[8,9,7],[6,5,2],[3,8,7],[5,0,2],[4,3,7],[0,1,2],[9,4,7],[1,6,2],[9,8,5,6],[8,3,0,5],[3,4,1,0],[4,9,6,1]]},t[13]={vertex:[[-.931836,.219976,-.264632],[-.636706,.318353,.692816],[-.613483,-.735083,-.264632],[-.326545,.979634,0],[-.318353,-.636706,.692816],[-.159176,.477529,-.856368],[.159176,-.477529,-.856368],[.318353,.636706,.692816],[.326545,-.979634,0],[.613482,.735082,-.264632],[.636706,-.318353,.692816],[.931835,-.219977,-.264632]],face:[[11,10,8],[7,9,3],[6,11,8],[9,5,3],[2,6,8],[5,0,3],[4,2,8],[0,1,3],[10,4,8],[1,7,3],[10,11,9,7],[11,6,5,9],[6,2,0,5],[2,4,1,0],[4,10,7,1]]},t[14]={vertex:[[-.93465,.300459,-.271185],[-.838689,-.260219,-.516017],[-.711319,.717591,.128359],[-.710334,-.156922,.080946],[-.599799,.556003,-.725148],[-.503838,-.004675,-.969981],[-.487004,.26021,.48049],[-.460089,-.750282,-.512622],[-.376468,.973135,-.325605],[-.331735,-.646985,.084342],[-.254001,.831847,.530001],[-.125239,-.494738,-.966586],[.029622,.027949,.730817],[.056536,-.982543,-.262295],[.08085,1.087391,.076037],[.125583,-.532729,.485984],[.262625,.599586,.780328],[.391387,-.726999,-.716259],[.513854,-.868287,.139347],[.597475,.85513,.326364],[.641224,.109523,.783723],[.737185,-.451155,.538891],[.848705,-.612742,-.314616],[.976075,.365067,.32976],[1.072036,-.19561,.084927]],face:[[15,18,21],[12,20,16],[6,10,2],[3,0,1],[9,7,13],[2,8,4,0],[0,4,5,1],[1,5,11,7],[7,11,17,13],[13,17,22,18],[18,22,24,21],[21,24,23,20],[20,23,19,16],[16,19,14,10],[10,14,8,2],[15,9,13,18],[12,15,21,20],[6,12,16,10],[3,6,2,0],[9,3,1,7],[9,15,12,6,3],[22,17,11,5,4,8,14,19,23,24]]};var i,n,r,s,a,c,l=e.type&&(e.type<0||e.type>=t.length)?0:e.type||0,u=e.size,h=e.sizeX||u||1,d=e.sizeY||u||1,f=e.sizeZ||u||1,p=e.custom||t[l],_=p.face.length,g=e.faceUV||new Array(_),m=e.faceColors,v=void 0===e.flat||e.flat,y=0===e.sideOrientation?0:e.sideOrientation||Mi.a.DEFAULTSIDE,b=new Array,T=new Array,E=new Array,A=new Array,x=new Array,R=0,P=0,S=new Array,C=0,M=0;if(v)for(M=0;M<_;M++)m&&void 0===m[M]&&(m[M]=new o.f(1,1,1,1)),g&&void 0===g[M]&&(g[M]=new o.y(0,0,1,1));if(v)for(M=0;M<_;M++){var O=p.face[M].length;for(r=2*Math.PI/O,s=.5*Math.tan(r/2),a=.5,C=0;C0?this._setDefaultFixedFrustumShadowProjectionMatrix(e):this._setDefaultAutoExtendShadowProjectionMatrix(e,t,i)},t.prototype._setDefaultFixedFrustumShadowProjectionMatrix=function(e){var t=this.getScene().activeCamera;t&&o.j.OrthoLHToRef(this.shadowFrustumSize,this.shadowFrustumSize,void 0!==this.shadowMinZ?this.shadowMinZ:t.minZ,void 0!==this.shadowMaxZ?this.shadowMaxZ:t.maxZ,e)},t.prototype._setDefaultAutoExtendShadowProjectionMatrix=function(e,t,i){var n=this.getScene().activeCamera;if(n){if(this.autoUpdateExtends||this._orthoLeft===Number.MAX_VALUE){var r=o.x.Zero();this._orthoLeft=Number.MAX_VALUE,this._orthoRight=Number.MIN_VALUE,this._orthoTop=Number.MIN_VALUE,this._orthoBottom=Number.MAX_VALUE;for(var s=0;sthis._orthoRight&&(this._orthoRight=r.x),r.y>this._orthoTop&&(this._orthoTop=r.y)}}var u=this._orthoRight-this._orthoLeft,h=this._orthoTop-this._orthoBottom;o.j.OrthoOffCenterLHToRef(this._orthoLeft-u*this.shadowOrthoScale,this._orthoRight+u*this.shadowOrthoScale,this._orthoBottom-h*this.shadowOrthoScale,this._orthoTop+h*this.shadowOrthoScale,void 0!==this.shadowMinZ?this.shadowMinZ:n.minZ,void 0!==this.shadowMaxZ?this.shadowMaxZ:n.maxZ,e)}},t.prototype._buildUniformLayout=function(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",3),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()},t.prototype.transferToEffect=function(e,t){return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z,1,t),this):(this._uniformBuffer.updateFloat4("vLightData",this.direction.x,this.direction.y,this.direction.z,1,t),this)},t.prototype.getDepthMinZ=function(e){return 1},t.prototype.getDepthMaxZ=function(e){return 1},t.prototype.prepareLightSpecificDefines=function(e,t){e["DIRLIGHT"+t]=!0},l.c([Object(L.c)()],t.prototype,"shadowFrustumSize",null),l.c([Object(L.c)()],t.prototype,"shadowOrthoScale",null),l.c([Object(L.c)()],t.prototype,"autoUpdateExtends",void 0),t}(jn);fe.a.CreateHemisphere=function(e,t,i,n){var r={segments:t,diameter:i};return Wn.CreateHemisphere(e,r,n)};var Wn=function(){function e(){}return e.CreateHemisphere=function(e,t,i){t.diameter||(t.diameter=1),t.segments||(t.segments=16);var n=Ln.a.CreateSphere("",{slice:.5,diameter:t.diameter,segments:t.segments},i),r=fe.a.CreateDisc("",t.diameter/2,3*t.segments+(4-t.segments),i);r.rotation.x=-Math.PI/2,r.parent=n;var o=fe.a.MergeMeshes([r,n],!0);return o.name=e,o},e}();F.a.AddNodeConstructor("Light_Type_2",function(e,t){return function(){return new Xn(e,o.x.Zero(),o.x.Zero(),0,0,t)}});var Xn=function(e){function t(t,i,n,r,s,a){var c=e.call(this,t,a)||this;return c._innerAngle=0,c._projectionTextureMatrix=o.j.Zero(),c._projectionTextureLightNear=1e-6,c._projectionTextureLightFar=1e3,c._projectionTextureUpDirection=o.x.Up(),c._projectionTextureViewLightDirty=!0,c._projectionTextureProjectionLightDirty=!0,c._projectionTextureDirty=!0,c._projectionTextureViewTargetVector=o.x.Zero(),c._projectionTextureViewLightMatrix=o.j.Zero(),c._projectionTextureProjectionLightMatrix=o.j.Zero(),c._projectionTextureScalingMatrix=o.j.FromValues(.5,0,0,0,0,.5,0,0,0,0,.5,0,.5,.5,.5,1),c.position=i,c.direction=n,c.angle=r,c.exponent=s,c}return l.d(t,e),Object.defineProperty(t.prototype,"angle",{get:function(){return this._angle},set:function(e){this._angle=e,this._cosHalfAngle=Math.cos(.5*e),this._projectionTextureProjectionLightDirty=!0,this.forceProjectionMatrixCompute(),this._computeAngleValues()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerAngle",{get:function(){return this._innerAngle},set:function(e){this._innerAngle=e,this._computeAngleValues()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"shadowAngleScale",{get:function(){return this._shadowAngleScale},set:function(e){this._shadowAngleScale=e,this.forceProjectionMatrixCompute()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureMatrix",{get:function(){return this._projectionTextureMatrix},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureLightNear",{get:function(){return this._projectionTextureLightNear},set:function(e){this._projectionTextureLightNear=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureLightFar",{get:function(){return this._projectionTextureLightFar},set:function(e){this._projectionTextureLightFar=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureUpDirection",{get:function(){return this._projectionTextureUpDirection},set:function(e){this._projectionTextureUpDirection=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"projectionTexture",{get:function(){return this._projectionTexture},set:function(e){var t=this;if(this._projectionTexture!==e&&(this._projectionTexture=e,this._projectionTextureDirty=!0,this._projectionTexture&&!this._projectionTexture.isReady())){var i=this._projectionTexture;i.onLoadObservable&&i.onLoadObservable.addOnce(function(){t._markMeshesAsLightDirty()})}},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"SpotLight"},t.prototype.getTypeID=function(){return zn.a.LIGHTTYPEID_SPOTLIGHT},t.prototype._setDirection=function(t){e.prototype._setDirection.call(this,t),this._projectionTextureViewLightDirty=!0},t.prototype._setPosition=function(t){e.prototype._setPosition.call(this,t),this._projectionTextureViewLightDirty=!0},t.prototype._setDefaultShadowProjectionMatrix=function(e,t,i){var n=this.getScene().activeCamera;if(n){this._shadowAngleScale=this._shadowAngleScale||1;var r=this._shadowAngleScale*this._angle;o.j.PerspectiveFovLHToRef(r,1,this.getDepthMinZ(n),this.getDepthMaxZ(n),e)}},t.prototype._computeProjectionTextureViewLightMatrix=function(){this._projectionTextureViewLightDirty=!1,this._projectionTextureDirty=!0,this.position.addToRef(this.direction,this._projectionTextureViewTargetVector),o.j.LookAtLHToRef(this.position,this._projectionTextureViewTargetVector,this._projectionTextureUpDirection,this._projectionTextureViewLightMatrix)},t.prototype._computeProjectionTextureProjectionLightMatrix=function(){this._projectionTextureProjectionLightDirty=!1,this._projectionTextureDirty=!0;var e=this.projectionTextureLightFar,t=this.projectionTextureLightNear,i=e/(e-t),n=-i*t,r=1/Math.tan(this._angle/2);o.j.FromValuesToRef(r/1,0,0,0,0,r,0,0,0,0,i,1,0,0,n,0,this._projectionTextureProjectionLightMatrix)},t.prototype._computeProjectionTextureMatrix=function(){this._projectionTextureDirty=!1,this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix,this._projectionTextureMatrix),this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix,this._projectionTextureMatrix)},t.prototype._buildUniformLayout=function(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",3),this._uniformBuffer.addUniform("vLightDirection",3),this._uniformBuffer.addUniform("vLightFalloff",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()},t.prototype._computeAngleValues=function(){this._lightAngleScale=1/Math.max(.001,Math.cos(.5*this._innerAngle)-this._cosHalfAngle),this._lightAngleOffset=-this._cosHalfAngle*this._lightAngleScale},t.prototype.transferToEffect=function(e,t){var i;return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this.transformedPosition.x,this.transformedPosition.y,this.transformedPosition.z,this.exponent,t),i=o.x.Normalize(this.transformedDirection)):(this._uniformBuffer.updateFloat4("vLightData",this.position.x,this.position.y,this.position.z,this.exponent,t),i=o.x.Normalize(this.direction)),this._uniformBuffer.updateFloat4("vLightDirection",i.x,i.y,i.z,this._cosHalfAngle,t),this._uniformBuffer.updateFloat4("vLightFalloff",this.range,this._inverseSquaredRange,this._lightAngleScale,this._lightAngleOffset,t),this.projectionTexture&&this.projectionTexture.isReady()&&(this._projectionTextureViewLightDirty&&this._computeProjectionTextureViewLightMatrix(),this._projectionTextureProjectionLightDirty&&this._computeProjectionTextureProjectionLightMatrix(),this._projectionTextureDirty&&this._computeProjectionTextureMatrix(),e.setMatrix("textureProjectionMatrix"+t,this._projectionTextureMatrix),e.setTexture("projectionLightSampler"+t,this.projectionTexture)),this},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._projectionTexture&&this._projectionTexture.dispose()},t.prototype.prepareLightSpecificDefines=function(e,t){e["SPOTLIGHT"+t]=!0,e["PROJECTEDLIGHTTEXTURE"+t]=!(!this.projectionTexture||!this.projectionTexture.isReady())},l.c([Object(L.c)()],t.prototype,"angle",null),l.c([Object(L.c)()],t.prototype,"innerAngle",null),l.c([Object(L.c)()],t.prototype,"shadowAngleScale",null),l.c([Object(L.c)()],t.prototype,"exponent",void 0),l.c([Object(L.c)()],t.prototype,"projectionTextureLightNear",null),l.c([Object(L.c)()],t.prototype,"projectionTextureLightFar",null),l.c([Object(L.c)()],t.prototype,"projectionTextureUpDirection",null),l.c([Object(L.m)("projectedLightTexture")],t.prototype,"_projectionTexture",void 0),t}(jn),Yn=function(e){function t(t){var i=e.call(this,t)||this;return i.cachedPosition=new o.x,i.cachedForward=new o.x(0,0,1),i._light=null,i.attachedMesh=new Fe.a("",i.gizmoLayer.utilityLayerScene),i._material=new Ri.a("light",i.gizmoLayer.originalScene),i._material.diffuseColor=new o.e(.5,.5,.5),i._material.specularColor=new o.e(.1,.1,.1),i}return l.d(t,e),Object.defineProperty(t.prototype,"light",{get:function(){return this._light},set:function(e){var i=this;if(this._light=e,e){this._lightMesh&&this._lightMesh.dispose(),e instanceof Ti.a?this._lightMesh=t._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene):this._lightMesh=e instanceof Hn?t._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene):e instanceof Xn?t._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene):t._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene),this._lightMesh.getChildMeshes(!1).forEach(function(e){e.material=i._material}),this._lightMesh.parent=this._rootMesh;var n=this.gizmoLayer._getSharedGizmoLight();n.includedOnlyMeshes=n.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1)),this._lightMesh.rotationQuaternion=new o.q,e.position&&this.attachedMesh.position.copyFrom(e.position),e.direction&&this.attachedMesh.setDirection(e.direction),this._update()}},enumerable:!0,configurable:!0}),t.prototype._update=function(){e.prototype._update.call(this),this._light&&(this._light.position&&(this.attachedMesh.position.equals(this.cachedPosition)?this.attachedMesh.position.copyFrom(this._light.position):(this._light.position.copyFrom(this.attachedMesh.position),this.cachedPosition.copyFrom(this.attachedMesh.position))),this._light.direction&&(o.x.DistanceSquared(this.attachedMesh.forward,this.cachedForward)>1e-4?(this._light.direction.copyFrom(this.attachedMesh.forward),this.cachedForward.copyFrom(this.attachedMesh.forward)):o.x.DistanceSquared(this.attachedMesh.forward,this._light.direction)>1e-4&&(this.attachedMesh.setDirection(this._light.direction),this.cachedForward.copyFrom(this._lightMesh.forward))),this._light.isEnabled()?this._material.diffuseColor.set(this._light.diffuse.r/3,this._light.diffuse.g/3,this._light.diffuse.b/3):this._material.diffuseColor.set(0,0,0))},t.prototype.dispose=function(){this._material.dispose(),e.prototype.dispose.call(this)},t._CreateHemisphericLightMesh=function(e){var i=new fe.a("hemisphereLight",e),n=Wn.CreateHemisphere(i.name,{segments:10,diameter:1},e);n.position.z=-.15,n.rotation.x=Math.PI/2,n.parent=i;var r=this._createLightLines(3,e);return r.parent=i,r.position.z,i.scaling.scaleInPlace(t._Scale),i.rotation.x=Math.PI/2,i},t._CreatePointLightMesh=function(e){var i=new fe.a("pointLight",e),n=Ln.a.CreateSphere(i.name,{segments:10,diameter:1},e);return n.rotation.x=Math.PI/2,n.parent=i,this._createLightLines(5,e).parent=i,i.scaling.scaleInPlace(t._Scale),i.rotation.x=Math.PI/2,i},t._CreateSpotLightMesh=function(e){var i=new fe.a("spotLight",e);Ln.a.CreateSphere(i.name,{segments:10,diameter:1},e).parent=i;var n=Wn.CreateHemisphere(i.name,{segments:10,diameter:2},e);return n.parent=i,n.rotation.x=-Math.PI/2,this._createLightLines(2,e).parent=i,i.scaling.scaleInPlace(t._Scale),i.rotation.x=Math.PI/2,i},t._CreateDirectionalLightMesh=function(e){var i=new fe.a("directionalLight",e),n=new fe.a(i.name,e);n.parent=i,Ln.a.CreateSphere(i.name,{diameter:1.2,segments:10},e).parent=n;var r=fe.a.CreateCylinder(i.name,6,.3,.3,6,1,e);r.parent=n,(o=r.clone(i.name)).scaling.y=.5,o.position.x+=1.25,(s=r.clone(i.name)).scaling.y=.5,s.position.x+=-1.25;var o,s,a=fe.a.CreateCylinder(i.name,1,0,.6,6,1,e);return a.position.y+=3,a.parent=n,(o=a.clone(i.name)).position.y=1.5,o.position.x+=1.25,(s=a.clone(i.name)).position.y=1.5,s.position.x+=-1.25,n.scaling.scaleInPlace(t._Scale),n.rotation.z=Math.PI/2,n.rotation.y=Math.PI/2,i},t._Scale=.007,t._createLightLines=function(e,t){var i=new fe.a("root",t);i.rotation.x=Math.PI/2;var n=new fe.a("linePivot",t);n.parent=i;var r=fe.a.CreateCylinder("line",2,.2,.3,6,1,t);if(r.position.y=r.scaling.y/2+1.2,r.parent=n,e<2)return n;for(var o=0;o<4;o++){(s=n.clone("lineParentClone")).rotation.z=Math.PI/4,s.rotation.y=Math.PI/2+Math.PI/2*o,s.getChildMeshes()[0].scaling.y=.5,s.getChildMeshes()[0].scaling.x=s.getChildMeshes()[0].scaling.z=.8,s.getChildMeshes()[0].position.y=s.getChildMeshes()[0].scaling.y/2+1.2}if(e<3)return i;for(o=0;o<4;o++){(s=n.clone("linePivotClone")).rotation.z=Math.PI/2,s.rotation.y=Math.PI/2*o}if(e<4)return i;for(o=0;o<4;o++){var s;(s=n.clone("linePivotClone")).rotation.z=Math.PI+Math.PI/4,s.rotation.y=Math.PI/2+Math.PI/2*o,s.getChildMeshes()[0].scaling.y=.5,s.getChildMeshes()[0].scaling.x=s.getChildMeshes()[0].scaling.z=.8,s.getChildMeshes()[0].position.y=s.getChildMeshes()[0].scaling.y/2+1.2}return e<5?i:((s=n.clone("linePivotClone")).rotation.z=Math.PI,i)},t}(On.a),Kn=i(44);zt.a.IncludesShadersStore.kernelBlurVaryingDeclaration="varying vec2 sampleCoord{X};";var Qn="#ifdef DOF\nfactor=sampleCoC(sampleCoord{X});\ncomputedWeight=KERNEL_WEIGHT{X}*factor;\nsumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\n#endif";zt.a.IncludesShadersStore.kernelBlurFragment=Qn;var qn="#ifdef DOF\nfactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});\ncomputedWeight=KERNEL_DEP_WEIGHT{X}*factor;\nsumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_DEP_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\n#endif";zt.a.IncludesShadersStore.kernelBlurFragment2=qn;var Zn="\nuniform sampler2D textureSampler;\nuniform vec2 delta;\n\nvarying vec2 sampleCenter;\n#ifdef DOF\nuniform sampler2D circleOfConfusionSampler;\nuniform vec2 cameraMinMaxZ;\nfloat sampleDistance(const in vec2 offset) {\nfloat depth=texture2D(circleOfConfusionSampler,offset).g;\nreturn cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth;\n}\nfloat sampleCoC(const in vec2 offset) {\nfloat coc=texture2D(circleOfConfusionSampler,offset).r;\nreturn coc;\n}\n#endif\n#include[0..varyingCount]\n#ifdef PACKEDFLOAT\nvec4 pack(float depth)\n{\nconst vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\nconst vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\nvec4 res=fract(depth*bit_shift);\nres-=res.xxyz*bit_mask;\nreturn res;\n}\nfloat unpack(vec4 color)\n{\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\nreturn dot(color,bit_shift);\n}\n#endif\nvoid main(void)\n{\nfloat computedWeight=0.0;\n#ifdef PACKEDFLOAT\nfloat blend=0.;\n#else\nvec4 blend=vec4(0.);\n#endif\n#ifdef DOF\nfloat sumOfWeights=CENTER_WEIGHT;\nfloat factor=0.0;\n\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\n#else\nblend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\n#endif\n#endif\n#include[0..varyingCount]\n#include[0..depCount]\n#ifdef PACKEDFLOAT\ngl_FragColor=pack(blend);\n#else\ngl_FragColor=blend;\n#endif\n#ifdef DOF\ngl_FragColor/=sumOfWeights;\n#endif\n}";zt.a.ShadersStore.kernelBlurPixelShader=Zn;zt.a.IncludesShadersStore.kernelBlurVertex="sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};";var Jn="\nattribute vec2 position;\n\nuniform vec2 delta;\n\nvarying vec2 sampleCenter;\n#include[0..varyingCount]\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nsampleCenter=(position*madd+madd);\n#include[0..varyingCount]\ngl_Position=vec4(position,0.0,1.0);\n}";zt.a.ShadersStore.kernelBlurVertexShader=Jn;var $n=function(e){function t(t,i,n,r,o,s,a,c,l,u,h){void 0===s&&(s=ke.a.BILINEAR_SAMPLINGMODE),void 0===l&&(l=_.a.TEXTURETYPE_UNSIGNED_INT),void 0===u&&(u=""),void 0===h&&(h=!1);var d=e.call(this,t,"kernelBlur",["delta","direction","cameraMinMaxZ"],["circleOfConfusionSampler"],r,o,s,a,c,null,l,"kernelBlur",{varyingCount:0,depCount:0},!0)||this;return d.direction=i,d.blockCompilation=h,d._packedFloat=!1,d._staticDefines="",d._staticDefines=u,d.onApplyObservable.add(function(e){d._outputTexture?e.setFloat2("delta",1/d._outputTexture.width*d.direction.x,1/d._outputTexture.height*d.direction.y):e.setFloat2("delta",1/d.width*d.direction.x,1/d.height*d.direction.y)}),d.kernel=n,d}return l.d(t,e),Object.defineProperty(t.prototype,"kernel",{get:function(){return this._idealKernel},set:function(e){this._idealKernel!==e&&(e=Math.max(e,1),this._idealKernel=e,this._kernel=this._nearestBestKernel(e),this.blockCompilation||this._updateParameters())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"packedFloat",{get:function(){return this._packedFloat},set:function(e){this._packedFloat!==e&&(this._packedFloat=e,this.blockCompilation||this._updateParameters())},enumerable:!0,configurable:!0}),t.prototype.updateEffect=function(e,t,i,n,r,o){void 0===e&&(e=null),void 0===t&&(t=null),void 0===i&&(i=null),this._updateParameters(r,o)},t.prototype._updateParameters=function(t,i){for(var n=this._kernel,r=(n-1)/2,o=[],s=[],a=0,c=0;c0)return Math.max(r,3)}return Math.max(t,3)},t.prototype._gaussianWeight=function(e){var t=-e*e/(1/3*2*(1/3));return 1/(Math.sqrt(2*Math.PI)*(1/3))*Math.exp(t)},t.prototype._glslFloat=function(e,t){return void 0===t&&(t=8),e.toFixed(t).replace(/0+$/,"")},t}(Ht),er=function(e){function t(t,i,n,r,s,a,c){void 0===s&&(s=_.a.TEXTURETYPE_UNSIGNED_INT),void 0===a&&(a=ke.a.BILINEAR_SAMPLINGMODE),void 0===c&&(c=!0);var l=e.call(this,t,i,n,r,!0,s,!1,a,c)||this;return l.scene=n,l.mirrorPlane=new o.n(0,1,0,1),l._transformMatrix=o.j.Zero(),l._mirrorMatrix=o.j.Zero(),l._adaptiveBlurKernel=0,l._blurKernelX=0,l._blurKernelY=0,l._blurRatio=1,l.ignoreCameraViewport=!0,l._updateGammaSpace(),l._imageProcessingConfigChangeObserver=n.imageProcessingConfiguration.onUpdateParameters.add(function(){l._updateGammaSpace}),l.onBeforeRenderObservable.add(function(){o.j.ReflectionToRef(l.mirrorPlane,l._mirrorMatrix),l._savedViewMatrix=n.getViewMatrix(),l._mirrorMatrix.multiplyToRef(l._savedViewMatrix,l._transformMatrix),n.setTransformMatrix(l._transformMatrix,n.getProjectionMatrix()),n.clipPlane=l.mirrorPlane,n.getEngine().cullBackFaces=!1,n._mirroredCameraPosition=o.x.TransformCoordinates(n.activeCamera.globalPosition,l._mirrorMatrix)}),l.onAfterRenderObservable.add(function(){n.setTransformMatrix(l._savedViewMatrix,n.getProjectionMatrix()),n.getEngine().cullBackFaces=!0,n._mirroredCameraPosition=null,n.clipPlane=null}),l}return l.d(t,e),Object.defineProperty(t.prototype,"blurRatio",{get:function(){return this._blurRatio},set:function(e){this._blurRatio!==e&&(this._blurRatio=e,this._preparePostProcesses())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"adaptiveBlurKernel",{set:function(e){this._adaptiveBlurKernel=e,this._autoComputeBlurKernel()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"blurKernel",{set:function(e){this.blurKernelX=e,this.blurKernelY=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"blurKernelX",{get:function(){return this._blurKernelX},set:function(e){this._blurKernelX!==e&&(this._blurKernelX=e,this._preparePostProcesses())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"blurKernelY",{get:function(){return this._blurKernelY},set:function(e){this._blurKernelY!==e&&(this._blurKernelY=e,this._preparePostProcesses())},enumerable:!0,configurable:!0}),t.prototype._autoComputeBlurKernel=function(){var e=this.getScene().getEngine(),t=this.getRenderWidth()/e.getRenderWidth(),i=this.getRenderHeight()/e.getRenderHeight();this.blurKernelX=this._adaptiveBlurKernel*t,this.blurKernelY=this._adaptiveBlurKernel*i},t.prototype._onRatioRescale=function(){this._sizeRatio&&(this.resize(this._initialSizeParameter),this._adaptiveBlurKernel||this._preparePostProcesses()),this._adaptiveBlurKernel&&this._autoComputeBlurKernel()},t.prototype._updateGammaSpace=function(){this.gammaSpace=!this.scene.imageProcessingConfiguration.isEnabled||!this.scene.imageProcessingConfiguration.applyByPostProcess},t.prototype._preparePostProcesses=function(){if(this.clearPostProcesses(!0),this._blurKernelX&&this._blurKernelY){var e=this.getScene().getEngine(),t=e.getCaps().textureFloatRender?_.a.TEXTURETYPE_FLOAT:_.a.TEXTURETYPE_HALF_FLOAT;this._blurX=new $n("horizontal blur",new o.w(1,0),this._blurKernelX,this._blurRatio,null,ke.a.BILINEAR_SAMPLINGMODE,e,!1,t),this._blurX.autoClear=!1,1===this._blurRatio&&this.samples<2&&this._texture?this._blurX.inputTexture=this._texture:this._blurX.alwaysForcePOT=!0,this._blurY=new $n("vertical blur",new o.w(0,1),this._blurKernelY,this._blurRatio,null,ke.a.BILINEAR_SAMPLINGMODE,e,!1,t),this._blurY.autoClear=!1,this._blurY.alwaysForcePOT=1!==this._blurRatio,this.addPostProcess(this._blurX),this.addPostProcess(this._blurY)}else this._blurY&&(this.removePostProcess(this._blurY),this._blurY.dispose(),this._blurY=null),this._blurX&&(this.removePostProcess(this._blurX),this._blurX.dispose(),this._blurX=null)},t.prototype.clone=function(){var e=this.getScene();if(!e)return this;var i=this.getSize(),n=new t(this.name,i.width,e,this._renderTargetOptions.generateMipMaps,this._renderTargetOptions.type,this._renderTargetOptions.samplingMode,this._renderTargetOptions.generateDepthBuffer);return n.hasAlpha=this.hasAlpha,n.level=this.level,n.mirrorPlane=this.mirrorPlane.clone(),this.renderList&&(n.renderList=this.renderList.slice(0)),n},t.prototype.serialize=function(){if(!this.name)return null;var t=e.prototype.serialize.call(this);return t.mirrorPlane=this.mirrorPlane.asArray(),t},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver)},t}(_i);ke.a._CreateMirror=function(e,t,i,n){return new er(e,t,i,n)},ge.b.prototype._createDepthStencilCubeTexture=function(e,t){var i=new ze.a(this,ze.a.DATASOURCE_UNKNOWN);if(i.isCube=!0,1===this.webGLVersion)return p.a.Error("Depth cube texture is not supported by WebGL 1."),i;var n=l.a({bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1},t),r=this._gl;this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,i,!0),this._setupDepthStencilTexture(i,e,n.generateStencil,n.bilinearFiltering,n.comparisonFunction);for(var o=0;o<6;o++)n.generateStencil?r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+o,0,r.DEPTH24_STENCIL8,e,e,0,r.DEPTH_STENCIL,r.UNSIGNED_INT_24_8,null):r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+o,0,r.DEPTH_COMPONENT24,e,e,0,r.DEPTH_COMPONENT,r.UNSIGNED_INT,null);return this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,null),i},ge.b.prototype._partialLoadFile=function(e,t,i,n,r){void 0===r&&(r=null);this._loadFile(e,function(e){i[t]=e,i._internalCount++,6===i._internalCount&&n(i)},void 0,void 0,!0,function(e,t){r&&e&&r(e.status+" "+e.statusText,t)})},ge.b.prototype._cascadeLoadFiles=function(e,t,i,n){void 0===n&&(n=null);var r=[];r._internalCount=0;for(var o=0;o<6;o++)this._partialLoadFile(i[o],o,r,t,n)},ge.b.prototype._cascadeLoadImgs=function(e,t,i,n){void 0===n&&(n=null);var r=[];r._internalCount=0;for(var o=0;o<6;o++)this._partialLoadImg(i[o],o,r,e,t,n)},ge.b.prototype._partialLoadImg=function(e,t,i,n,r,o){var s;void 0===o&&(o=null);s=ye.h.LoadImage(e,function(){i[t]=s,i._internalCount++,n&&n._removePendingData(s),6===i._internalCount&&r(i)},function(e,t){n&&n._removePendingData(s),o&&o(e,t)},n?n.offlineProvider:null),n&&n._addPendingData(s)},ge.b.prototype.createCubeTexture=function(e,t,i,n,r,o,s,a,c,l,u,h,d){var f=this;void 0===r&&(r=null),void 0===o&&(o=null),void 0===a&&(a=null),void 0===c&&(c=!1),void 0===l&&(l=0),void 0===u&&(u=0),void 0===h&&(h=null),void 0===d&&(d=[]);var _=this._gl,g=h||new ze.a(this,ze.a.DATASOURCE_CUBE);g.isCube=!0,g.url=e,g.generateMipMaps=!n,g._lodGenerationScale=l,g._lodGenerationOffset=u,this._doNotHandleContextLost||(g._extension=a,g._files=i);for(var m=e.lastIndexOf("."),v=a||(m>-1?e.substring(m).toLowerCase():""),y=null,b=0,T=ge.b._TextureLoaders;b-1?t.substring(m).toLowerCase():""),y=".dds"===v,b=".env"===v;if(b?(g.gammaSpace=!1,g._prefiltered=!1):(g._prefiltered=u,u&&(g.gammaSpace=!1)),g._texture=g._getFromCache(t,r),!s&&(b||y||n||(n=["_px.jpg","_py.jpg","_pz.jpg","_nx.jpg","_ny.jpg","_nz.jpg"]),s=[],n))for(var T=0;T0,o.REFLECTIONMAP_OPPOSITEZ=this.getScene().useRightHandedSystem?!a.invertZ:a.invertZ,o.LODINREFLECTIONALPHA=a.lodLevelInAlpha,o.EQUIRECTANGULAR_RELFECTION_FOV=this.useEquirectangularFOV,o.REFLECTIONBGR=this.switchToBGR,a.coordinatesMode===ke.a.INVCUBIC_MODE&&(o.INVERTCUBICMAP=!0),o.REFLECTIONMAP_3D=a.isCube,a.coordinatesMode){case ke.a.EXPLICIT_MODE:o.REFLECTIONMAP_EXPLICIT=!0;break;case ke.a.PLANAR_MODE:o.REFLECTIONMAP_PLANAR=!0;break;case ke.a.PROJECTION_MODE:o.REFLECTIONMAP_PROJECTION=!0;break;case ke.a.SKYBOX_MODE:o.REFLECTIONMAP_SKYBOX=!0,o.REFLECTIONMAP_SKYBOX_TRANSFORMED=!a.getReflectionTextureMatrix().isIdentity();break;case ke.a.SPHERICAL_MODE:o.REFLECTIONMAP_SPHERICAL=!0;break;case ke.a.EQUIRECTANGULAR_MODE:o.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case ke.a.FIXED_EQUIRECTANGULAR_MODE:o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case ke.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case ke.a.CUBIC_MODE:case ke.a.INVCUBIC_MODE:default:o.REFLECTIONMAP_CUBIC=!0}this.reflectionFresnel?(o.REFLECTIONFRESNEL=!0,o.REFLECTIONFALLOFF=this.reflectionFalloffDistance>0,this._reflectionControls.x=this.reflectionAmount,this._reflectionControls.y=this.reflectionReflectance0,this._reflectionControls.z=this.reflectionReflectance90,this._reflectionControls.w=1/this.reflectionFalloffDistance):(o.REFLECTIONFRESNEL=!1,o.REFLECTIONFALLOFF=!1)}else o.REFLECTION=!1,o.REFLECTIONFRESNEL=!1,o.REFLECTIONFALLOFF=!1,o.REFLECTIONBLUR=!1,o.REFLECTIONMAP_3D=!1,o.REFLECTIONMAP_SPHERICAL=!1,o.REFLECTIONMAP_PLANAR=!1,o.REFLECTIONMAP_CUBIC=!1,o.REFLECTIONMAP_PROJECTION=!1,o.REFLECTIONMAP_SKYBOX=!1,o.REFLECTIONMAP_SKYBOX_TRANSFORMED=!1,o.REFLECTIONMAP_EXPLICIT=!1,o.REFLECTIONMAP_EQUIRECTANGULAR=!1,o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,o.INVERTCUBICMAP=!1,o.REFLECTIONMAP_OPPOSITEZ=!1,o.LODINREFLECTIONALPHA=!1,o.GAMMAREFLECTION=!1,o.RGBDREFLECTION=!1}o.PREMULTIPLYALPHA=this.alphaMode===_.a.ALPHA_PREMULTIPLIED||this.alphaMode===_.a.ALPHA_PREMULTIPLIED_PORTERDUFF,o.USERGBCOLOR=this._useRGBColor,o.NOISE=this._enableNoise}if(o._areLightsDirty&&(o.USEHIGHLIGHTANDSHADOWCOLORS=!this._useRGBColor&&(0!==this._primaryColorShadowLevel||0!==this._primaryColorHighlightLevel)),o._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(o)}if(ir.a.PrepareDefinesForMisc(e,r,!1,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e),o),ir.a.PrepareDefinesForFrameBoundValues(r,s,o,i),ir.a.PrepareDefinesForAttributes(e,o,!1,!0,!1)&&e&&(r.getEngine().getCaps().standardDerivatives||e.isVerticesDataPresent(Oi.b.NormalKind)||(e.createNormals(!0),p.a.Warn("BackgroundMaterial: Normals have been created for the mesh: "+e.name))),o.isDirty){o.markAsProcessed(),r.resetCachedMaterial();var c=new zt.c;o.FOG&&c.addFallback(0,"FOG"),o.POINTSIZE&&c.addFallback(1,"POINTSIZE"),o.MULTIVIEW&&c.addFallback(0,"MULTIVIEW"),ir.a.HandleFallbacksForShadows(o,c,this._maxSimultaneousLights),o.NUM_BONE_INFLUENCERS>0&&c.addCPUSkinningFallback(0,e);var l=[Oi.b.PositionKind];o.NORMAL&&l.push(Oi.b.NormalKind),o.UV1&&l.push(Oi.b.UVKind),o.UV2&&l.push(Oi.b.UV2Kind),ir.a.PrepareAttributesForBones(l,e,o,c),ir.a.PrepareAttributesForInstances(l,o);var u=["world","view","viewProjection","vEyePosition","vLightsType","vFogInfos","vFogColor","pointSize","vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","mBones","vPrimaryColor","vPrimaryColorShadow","vReflectionInfos","reflectionMatrix","vReflectionMicrosurfaceInfos","fFovMultiplier","shadowLevel","alpha","vBackgroundCenter","vReflectionControl","vDiffuseInfos","diffuseMatrix"],h=["diffuseSampler","reflectionSampler","reflectionSamplerLow","reflectionSamplerHigh"],d=["Material","Scene"];xi.a&&(xi.a.PrepareUniforms(u,o),xi.a.PrepareSamplers(h,o)),ir.a.PrepareUniformsAndSamplersList({uniformsNames:u,uniformBuffersNames:d,samplers:h,defines:o,maxSimultaneousLights:this._maxSimultaneousLights});var f=o.toString();t.setEffect(r.getEngine().createEffect("background",{attributes:l,uniformsNames:u,uniformBuffersNames:d,samplers:h,defines:f,fallbacks:c,onCompiled:function(e){n.onCompiled&&n.onCompiled(e),n.bindSceneUniformBuffer(e,r.getSceneUniformBuffer())},onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights}},s),o),this.buildUniformLayout()}return!(!t.effect||!t.effect.isReady())&&(o._renderId=r.getRenderId(),this._wasPreviouslyReady=!0,!0)},t.prototype._computePrimaryColorFromPerceptualColor=function(){this.__perceptualColor&&(this._primaryColor.copyFrom(this.__perceptualColor),this._primaryColor.toLinearSpaceToRef(this._primaryColor),this._imageProcessingConfiguration&&this._primaryColor.scaleToRef(1/this._imageProcessingConfiguration.exposure,this._primaryColor),this._computePrimaryColors())},t.prototype._computePrimaryColors=function(){0===this._primaryColorShadowLevel&&0===this._primaryColorHighlightLevel||(this._primaryColor.scaleToRef(this._primaryColorShadowLevel,this._primaryShadowColor),this._primaryColor.subtractToRef(this._primaryShadowColor,this._primaryShadowColor),this._white.subtractToRef(this._primaryColor,this._primaryHighlightColor),this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel,this._primaryHighlightColor),this._primaryColor.addToRef(this._primaryHighlightColor,this._primaryHighlightColor))},t.prototype.buildUniformLayout=function(){this._uniformBuffer.addUniform("vPrimaryColor",4),this._uniformBuffer.addUniform("vPrimaryColorShadow",4),this._uniformBuffer.addUniform("vDiffuseInfos",2),this._uniformBuffer.addUniform("vReflectionInfos",2),this._uniformBuffer.addUniform("diffuseMatrix",16),this._uniformBuffer.addUniform("reflectionMatrix",16),this._uniformBuffer.addUniform("vReflectionMicrosurfaceInfos",3),this._uniformBuffer.addUniform("fFovMultiplier",1),this._uniformBuffer.addUniform("pointSize",1),this._uniformBuffer.addUniform("shadowLevel",1),this._uniformBuffer.addUniform("alpha",1),this._uniformBuffer.addUniform("vBackgroundCenter",3),this._uniformBuffer.addUniform("vReflectionControl",4),this._uniformBuffer.create()},t.prototype.unbind=function(){this._diffuseTexture&&this._diffuseTexture.isRenderTarget&&this._uniformBuffer.setTexture("diffuseSampler",null),this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._uniformBuffer.setTexture("reflectionSampler",null),e.prototype.unbind.call(this)},t.prototype.bindOnlyWorldMatrix=function(e){this._activeEffect.setMatrix("world",e)},t.prototype.bindForSubMesh=function(e,t,i){var n=this.getScene(),r=i._materialDefines;if(r){var o=i.effect;if(o){this._activeEffect=o,this.bindOnlyWorldMatrix(e),ir.a.BindBonesParameters(t,this._activeEffect);var s=this._mustRebind(n,o,t.visibility);if(s){this._uniformBuffer.bindToEffect(o,"Material"),this.bindViewProjection(o);var a=this._reflectionTexture;this._uniformBuffer.useUbo&&this.isFrozen&&this._uniformBuffer.isSync||(n.texturesEnabled&&(this._diffuseTexture&&or.a.DiffuseTextureEnabled&&(this._uniformBuffer.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),ir.a.BindTextureMatrix(this._diffuseTexture,this._uniformBuffer,"diffuse")),a&&or.a.ReflectionTextureEnabled&&(this._uniformBuffer.updateMatrix("reflectionMatrix",a.getReflectionTextureMatrix()),this._uniformBuffer.updateFloat2("vReflectionInfos",a.level,this._reflectionBlur),this._uniformBuffer.updateFloat3("vReflectionMicrosurfaceInfos",a.getSize().width,a.lodGenerationScale,a.lodGenerationOffset))),this.shadowLevel>0&&this._uniformBuffer.updateFloat("shadowLevel",this.shadowLevel),this._uniformBuffer.updateFloat("alpha",this.alpha),this.pointsCloud&&this._uniformBuffer.updateFloat("pointSize",this.pointSize),r.USEHIGHLIGHTANDSHADOWCOLORS?(this._uniformBuffer.updateColor4("vPrimaryColor",this._primaryHighlightColor,1),this._uniformBuffer.updateColor4("vPrimaryColorShadow",this._primaryShadowColor,1)):this._uniformBuffer.updateColor4("vPrimaryColor",this._primaryColor,1)),this._uniformBuffer.updateFloat("fFovMultiplier",this._fovMultiplier),n.texturesEnabled&&(this._diffuseTexture&&or.a.DiffuseTextureEnabled&&this._uniformBuffer.setTexture("diffuseSampler",this._diffuseTexture),a&&or.a.ReflectionTextureEnabled&&(r.REFLECTIONBLUR&&r.TEXTURELODSUPPORT?this._uniformBuffer.setTexture("reflectionSampler",a):r.REFLECTIONBLUR?(this._uniformBuffer.setTexture("reflectionSampler",a._lodTextureMid||a),this._uniformBuffer.setTexture("reflectionSamplerLow",a._lodTextureLow||a),this._uniformBuffer.setTexture("reflectionSamplerHigh",a._lodTextureHigh||a)):this._uniformBuffer.setTexture("reflectionSampler",a),r.REFLECTIONFRESNEL&&(this._uniformBuffer.updateFloat3("vBackgroundCenter",this.sceneCenter.x,this.sceneCenter.y,this.sceneCenter.z),this._uniformBuffer.updateFloat4("vReflectionControl",this._reflectionControls.x,this._reflectionControls.y,this._reflectionControls.z,this._reflectionControls.w)))),ir.a.BindClipPlane(this._activeEffect,n),ir.a.BindEyePosition(o,n)}!s&&this.isFrozen||(n.lightsEnabled&&ir.a.BindLights(n,t,this._activeEffect,r,this._maxSimultaneousLights,!1),this.bindView(o),ir.a.BindFogParameters(n,t,this._activeEffect,!0),this._imageProcessingConfiguration&&this._imageProcessingConfiguration.bind(this._activeEffect)),this._uniformBuffer.update(),this._afterBind(t,this._activeEffect)}}},t.prototype.dispose=function(t,i){void 0===t&&(t=!1),void 0===i&&(i=!1),i&&(this.diffuseTexture&&this.diffuseTexture.dispose(),this.reflectionTexture&&this.reflectionTexture.dispose()),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e.prototype.dispose.call(this,t)},t.prototype.clone=function(e){var i=this;return L.a.Clone(function(){return new t(e,i.getScene())},this)},t.prototype.serialize=function(){var e=L.a.Serialize(this);return e.customType="BABYLON.BackgroundMaterial",e},t.prototype.getClassName=function(){return"BackgroundMaterial"},t.Parse=function(e,i,n){return L.a.Parse(function(){return new t(e.name,i)},e,i,n)},t.StandardReflectance0=.05,t.StandardReflectance90=.5,l.c([Object(L.e)()],t.prototype,"_primaryColor",void 0),l.c([Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"primaryColor",void 0),l.c([Object(L.e)()],t.prototype,"__perceptualColor",void 0),l.c([Object(L.c)()],t.prototype,"_primaryColorShadowLevel",void 0),l.c([Object(L.c)()],t.prototype,"_primaryColorHighlightLevel",void 0),l.c([Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"primaryColorHighlightLevel",null),l.c([Object(L.m)()],t.prototype,"_reflectionTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionTexture",void 0),l.c([Object(L.c)()],t.prototype,"_reflectionBlur",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionBlur",void 0),l.c([Object(L.m)()],t.prototype,"_diffuseTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"diffuseTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"shadowLights",void 0),l.c([Object(L.c)()],t.prototype,"_shadowLevel",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"shadowLevel",void 0),l.c([Object(L.o)()],t.prototype,"_sceneCenter",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"sceneCenter",void 0),l.c([Object(L.c)()],t.prototype,"_opacityFresnel",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"opacityFresnel",void 0),l.c([Object(L.c)()],t.prototype,"_reflectionFresnel",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionFresnel",void 0),l.c([Object(L.c)()],t.prototype,"_reflectionFalloffDistance",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionFalloffDistance",void 0),l.c([Object(L.c)()],t.prototype,"_reflectionAmount",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionAmount",void 0),l.c([Object(L.c)()],t.prototype,"_reflectionReflectance0",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionReflectance0",void 0),l.c([Object(L.c)()],t.prototype,"_reflectionReflectance90",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionReflectance90",void 0),l.c([Object(L.c)()],t.prototype,"_useRGBColor",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRGBColor",void 0),l.c([Object(L.c)()],t.prototype,"_enableNoise",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"enableNoise",void 0),l.c([Object(L.c)()],t.prototype,"_maxSimultaneousLights",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"maxSimultaneousLights",void 0),l.c([Object(L.i)()],t.prototype,"_imageProcessingConfiguration",void 0),t}(rr.a);s.a.RegisteredTypes["BABYLON.BackgroundMaterial"]=dr;var fr=i(80),pr=function(){function e(t,i){var n=this;this._errorHandler=function(e,t){n.onErrorObservable.notifyObservers({message:e,exception:t})},this._options=l.a({},e._getDefaultOptions(),t),this._scene=i,this.onErrorObservable=new r.c,this._setupBackground(),this._setupImageProcessing()}return e._getDefaultOptions=function(){return{createGround:!0,groundSize:15,groundTexture:this._groundTextureCDNUrl,groundColor:new o.e(.2,.2,.3).toLinearSpace().scale(3),groundOpacity:.9,enableGroundShadow:!0,groundShadowLevel:.5,enableGroundMirror:!1,groundMirrorSizeRatio:.3,groundMirrorBlurKernel:64,groundMirrorAmount:1,groundMirrorFresnelWeight:1,groundMirrorFallOffDistance:0,groundMirrorTextureType:_.a.TEXTURETYPE_UNSIGNED_INT,groundYBias:1e-5,createSkybox:!0,skyboxSize:20,skyboxTexture:this._skyboxTextureCDNUrl,skyboxColor:new o.e(.2,.2,.3).toLinearSpace().scale(3),backgroundYRotation:0,sizeAuto:!0,rootPosition:o.x.Zero(),setupImageProcessing:!0,environmentTexture:this._environmentTextureCDNUrl,cameraExposure:.8,cameraContrast:1.2,toneMappingEnabled:!0}},Object.defineProperty(e.prototype,"rootMesh",{get:function(){return this._rootMesh},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skybox",{get:function(){return this._skybox},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skyboxTexture",{get:function(){return this._skyboxTexture},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skyboxMaterial",{get:function(){return this._skyboxMaterial},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ground",{get:function(){return this._ground},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"groundTexture",{get:function(){return this._groundTexture},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"groundMirror",{get:function(){return this._groundMirror},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"groundMirrorRenderList",{get:function(){return this._groundMirror?this._groundMirror.renderList:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"groundMaterial",{get:function(){return this._groundMaterial},enumerable:!0,configurable:!0}),e.prototype.updateOptions=function(e){var t=l.a({},this._options,e);this._ground&&!t.createGround&&(this._ground.dispose(),this._ground=null),this._groundMaterial&&!t.createGround&&(this._groundMaterial.dispose(),this._groundMaterial=null),this._groundTexture&&this._options.groundTexture!=t.groundTexture&&(this._groundTexture.dispose(),this._groundTexture=null),this._skybox&&!t.createSkybox&&(this._skybox.dispose(),this._skybox=null),this._skyboxMaterial&&!t.createSkybox&&(this._skyboxMaterial.dispose(),this._skyboxMaterial=null),this._skyboxTexture&&this._options.skyboxTexture!=t.skyboxTexture&&(this._skyboxTexture.dispose(),this._skyboxTexture=null),this._groundMirror&&!t.enableGroundMirror&&(this._groundMirror.dispose(),this._groundMirror=null),this._scene.environmentTexture&&this._options.environmentTexture!=t.environmentTexture&&this._scene.environmentTexture.dispose(),this._options=t,this._setupBackground(),this._setupImageProcessing()},e.prototype.setMainColor=function(e){this.groundMaterial&&(this.groundMaterial.primaryColor=e),this.skyboxMaterial&&(this.skyboxMaterial.primaryColor=e),this.groundMirror&&(this.groundMirror.clearColor=new o.f(e.r,e.g,e.b,1))},e.prototype._setupImageProcessing=function(){this._options.setupImageProcessing&&(this._scene.imageProcessingConfiguration.contrast=this._options.cameraContrast,this._scene.imageProcessingConfiguration.exposure=this._options.cameraExposure,this._scene.imageProcessingConfiguration.toneMappingEnabled=this._options.toneMappingEnabled,this._setupEnvironmentTexture())},e.prototype._setupEnvironmentTexture=function(){if(!this._scene.environmentTexture)if(this._options.environmentTexture instanceof Kn.a)this._scene.environmentTexture=this._options.environmentTexture;else{var e=tr.CreateFromPrefilteredData(this._options.environmentTexture,this._scene);this._scene.environmentTexture=e}},e.prototype._setupBackground=function(){this._rootMesh||(this._rootMesh=new fe.a("BackgroundHelper",this._scene)),this._rootMesh.rotation.y=this._options.backgroundYRotation;var e=this._getSceneSize();this._options.createGround&&(this._setupGround(e),this._setupGroundMaterial(),this._setupGroundDiffuseTexture(),this._options.enableGroundMirror&&this._setupGroundMirrorTexture(e),this._setupMirrorInGroundMaterial()),this._options.createSkybox&&(this._setupSkybox(e),this._setupSkyboxMaterial(),this._setupSkyboxReflectionTexture()),this._rootMesh.position.x=e.rootPosition.x,this._rootMesh.position.z=e.rootPosition.z,this._rootMesh.position.y=e.rootPosition.y},e.prototype._getSceneSize=function(){var e=this,t=this._options.groundSize,i=this._options.skyboxSize,n=this._options.rootPosition;if(!this._scene.meshes||1===this._scene.meshes.length)return{groundSize:t,skyboxSize:i,rootPosition:n};var r=this._scene.getWorldExtends(function(t){return t!==e._ground&&t!==e._rootMesh&&t!==e._skybox}),o=r.max.subtract(r.min);if(this._options.sizeAuto){this._scene.activeCamera instanceof Et&&this._scene.activeCamera.upperRadiusLimit&&(i=t=2*this._scene.activeCamera.upperRadiusLimit);var s=o.length();s>t&&(i=t=2*s),t*=1.1,i*=1.5,(n=r.min.add(o.scale(.5))).y=r.min.y-this._options.groundYBias}return{groundSize:t,skyboxSize:i,rootPosition:n}},e.prototype._setupGround=function(e){var t=this;this._ground&&!this._ground.isDisposed()||(this._ground=fe.a.CreatePlane("BackgroundPlane",e.groundSize,this._scene),this._ground.rotation.x=Math.PI/2,this._ground.parent=this._rootMesh,this._ground.onDisposeObservable.add(function(){t._ground=null})),this._ground.receiveShadows=this._options.enableGroundShadow},e.prototype._setupGroundMaterial=function(){this._groundMaterial||(this._groundMaterial=new dr("BackgroundPlaneMaterial",this._scene)),this._groundMaterial.alpha=this._options.groundOpacity,this._groundMaterial.alphaMode=_.a.ALPHA_PREMULTIPLIED_PORTERDUFF,this._groundMaterial.shadowLevel=this._options.groundShadowLevel,this._groundMaterial.primaryColor=this._options.groundColor,this._groundMaterial.useRGBColor=!1,this._groundMaterial.enableNoise=!0,this._ground&&(this._ground.material=this._groundMaterial)},e.prototype._setupGroundDiffuseTexture=function(){if(this._groundMaterial&&!this._groundTexture)if(this._options.groundTexture instanceof Kn.a)this._groundMaterial.diffuseTexture=this._options.groundTexture;else{var e=new ke.a(this._options.groundTexture,this._scene,void 0,void 0,void 0,void 0,this._errorHandler);e.gammaSpace=!1,e.hasAlpha=!0,this._groundMaterial.diffuseTexture=e}},e.prototype._setupGroundMirrorTexture=function(e){var t=ke.a.CLAMP_ADDRESSMODE;if(!this._groundMirror&&(this._groundMirror=new er("BackgroundPlaneMirrorTexture",{ratio:this._options.groundMirrorSizeRatio},this._scene,!1,this._options.groundMirrorTextureType,ke.a.BILINEAR_SAMPLINGMODE,!0),this._groundMirror.mirrorPlane=new o.n(0,-1,0,e.rootPosition.y),this._groundMirror.anisotropicFilteringLevel=1,this._groundMirror.wrapU=t,this._groundMirror.wrapV=t,this._groundMirror.gammaSpace=!1,this._groundMirror.renderList))for(var i=0;i\nvoid main(void)\n{\ngl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);\n}";zt.a.ShadersStore.rgbdDecodePixelShader=mr;var vr=function(){function e(){}return e._ExpandDefaultBRDFTexture=function(e){var t=e.getEngine(),i=t.getCaps(),n=!1;if(i.textureHalfFloatRender&&i.textureHalfFloatLinearFiltering?(n=!0,e.type=_.a.TEXTURETYPE_HALF_FLOAT):i.textureFloatRender&&i.textureFloatLinearFiltering&&(n=!0,e.type=_.a.TEXTURETYPE_FLOAT),n){e.isReady=!1;var r=new Ht("rgbdDecode","rgbdDecode",null,null,1,null,_.a.TEXTURE_TRILINEAR_SAMPLINGMODE,t,!1,void 0,e.type,void 0,null,!1);e._isRGBD=!1,e.invertY=!1;var o=t.createRenderTargetTexture(e.width,{generateDepthBuffer:!1,generateMipMaps:!1,generateStencilBuffer:!1,samplingMode:_.a.TEXTURE_BILINEAR_SAMPLINGMODE,type:e.type,format:_.a.TEXTUREFORMAT_RGBA});r.getEffect().executeWhenCompiled(function(){r.onApply=function(t){t._bindTexture("textureSampler",e),t.setFloat2("scale",1,1)},t.scenes[0].postProcessManager.directRender([r],o,!0),t.restoreDefaultFramebuffer(),t._releaseTexture(e),t._releaseFramebufferObjects(o),r&&r.dispose(),o._swapAndDie(e),e.isReady=!0})}},e.GetEnvironmentBRDFTexture=function(e){var t=this;if(!e.environmentBRDFTexture){var i=e.useDelayedTextureLoading;e.useDelayedTextureLoading=!1;var n=ke.a.CreateFromBase64String(this._environmentBRDFBase64Texture,"EnvironmentBRDFTexture",e,!0,!0,ke.a.BILINEAR_SAMPLINGMODE);n._texture._isRGBD=!0,n.wrapU=ke.a.CLAMP_ADDRESSMODE,n.wrapV=ke.a.CLAMP_ADDRESSMODE,e.environmentBRDFTexture=n,e.useDelayedTextureLoading=i,n.onLoadObservable.addOnce(function(){t._ExpandDefaultBRDFTexture(n._texture)})}return e.environmentBRDFTexture},e._environmentBRDFBase64Texture="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAgAElEQVR4Xuy9Ccx261oW9q5v/r7/33ufgalSbWtiTJsmTZOmSdOkpVKsWhxAxIJFQaCKUkpFiiBFKjKPh3PO7hjb2LmNnYxtjbGtbY21rQGkgCgiIKPMM5x99ruatZ7puq/7up/nWd/3bzzABjb/9675Xeu5hnt41rv8s+evW9fz+ZT+W9N/63o6re3v+nlfvq2CbdZT2hbW7dukDbf/a/9uS3G7E69Ln9PifK50sHSMvD2ur3+XY/E2++dyPelDPoU7Jm9XTm2uab86vJ56gvSd80dzXflA+Zul74PHwGuGv/MXLv+kL4Lfp56r3DM8ef6utE10Xnu97fra7uWi2/etZ8BV/F3F+fdni/8Dn9O4KSvt/cxPMa+HY5Qx024OHF3cM7zHdcsy3uAeuu3wPve3S2OVthHH09v5e9BuCT0HHgPlHsjz+3uxNALYAJ9JgAigALyBmQGPQEcAxwRQgVhIogwcIoAG2HYsM1gR3IokEDD5biMBhMeSoLXkweCoAxsGcDoX3Xi3nkCFACnfiQaPARECgPaVAMZjEuAsNttAjIBZSY8HXHkuFctt4Npj2e8+B/ImFOnwEcg9SPEqcNdyDBSZemwipBkwmvMwocG9Gm6nCDUisHpb+iSRTp+2kQTQAJ9cACt8cwRN/Ss5IJBJ7a2qC0AHYK4gUkpuQE2uoTiJfMPw4epjeqdRXYE5Rhu0me7aGCwIKtfFD0sAmklCgWBmG3utbfCrfdtlBUpK6qUIpwCkkUYDIg4yp4QhAeW9GDBwLR6glgysC8PvZq6o2MJMT3jdhtKqI0WiMfeTCMhs54BqzwNPyLueclxzS/3+XQI0jtSSQrmly4ecv249Z+U/gQOoNj+HBKj+yhGEtn9/2C10qLaWLH5Tz6KykeI3FTb7wM0uRJMWlZtmQwgXFgAr23VwDGRjADoPOgMIQ1pigNdnCrbviaqvFMopuDpvHjB8/RXoeI8ydGp4RAM2x13NzQtr74BkQoFZlceBDQTugIlaixa7kbn5nl3wNgVNpxGKi2OvQxJmjOJ24riNB/sKX0VJPS/zjNfTTgAp9s95AIj9K9DPqPQc22+nS6C0eYAGZJMLyF+sPPwGVggXypcH8HggA5gwbCjHhy9v1Z7yDIY4Gie3nIMGrQHUUNVBVeq14rnyOeiBvWjVl8QgQoZ6NajErESk0n0wx4CLFLuXJ5gOE4J8gtV4cW2RlYbvrO5lVWMk10KU6lpwrHbBr8cHn8+EMdH5YPl2H4gANhCmPEABLTsBp/5k+Y1TwGReWlGTgqiy6WFrxXcEQQTilLw8mUP5AIh1pbJnTgUrOiYIVBZKMAXqW7GISigAyjbYgkWfyyqyTTI5ZckLokEehQNxAs8TYMHF8X3w+3kSrcc1qozPAsAUqbfLX8B5AKgyFGBidOcIiB8JAMdZWV4fGak/nU+Sd0BC266CANbTqdp+zPZHmX9Uf1Txju1HxS6DbeeAZtOtavtKAILAhw9B1aCNjhyJELDZrldlFwRB1YT2nJtUNnVTBPJ41Y+dAQwOE2eD6+EBWZ4FDDRUFmUn7ZiLzjkgGbgOTTTintG1y2QiuKh2ZSKrLoDDVt4RI90jc28CMunnC/AK27iBhEB+FHgme78rtk2w5b+vcguSAKLyH5YCfT6ghAgFeAh+H9PXBxcBPiKICjo4fnEE+ODLk1NJQ7M9PACXK2iqgTa1DTpPHo59FYGgNZuM9T1AoBphFMIPIhXPMzG1Q/jBVYceAobVqCElHYo+uzwBPKvGyXBuY1O9YjZBQzOP312TK4PAVjDw/Hn/p5CEJKI2puq15C/jXFz7kiZB2CPLckzzzIPjlMtbPuT89WtK/rUSoOkFMDV/KvflEp6pCnCtH614yRPU0AAScxjvlwGABFFGlgQ12MJD+QCt7HX88bEE2aRFFnhGOdBO5hWsLDOx/mzZT6meSgAa9cLrYnA6O0yqxSDpbG/uFRAXwDWPYUsG1s2Le91Yp8CJsK5VM6wYUJyMGLLqjESsCcykC80XsddknltlRSC/fL+GBFAdXXw97fDrafnnzl+fG4FyIrAAPggD9nsTNQIhsLfziwqAVX+r5IcqAQKMxZlYUBaSQVUog4jWgXJhCGKah1QlQIUDZlDSQCm804n1+6rfQOAqEALA0SCMcwdeqZyqONKIQBsAVoBWKlcvRKnq6YHSKmAa/LJKUZFBJMf3tEdeJvmGY05cIx1XkXIlH8re8/J0SeK6I3LMvQCSAHQYULL8OhfApT6X2BN2v4YSRxW/Hivf4ALcScuPAx9JxxIHwKY6AXiIfC5+mHBNj63rW2cAwyMiDiQnygJ3AQzEZ+6BG+iCGBQ4BqD1cTHlKFTJUA3kyi0RyHF8EAAVWOg+vBCSqLeMFFnct64jOXAcW6SM8wHbLcgEUNT/3BKA2BJsWnoFAahKgGv79V2Bs5WAWkbkHAAMirgnoA1ajN8REKHay/IesCzkDdrzfMR6/B5moHuLORMu1PtKipbG9wGldsSgQVSpqdkWECRtRcPyn1DQGTVvl+rPh7pYOA2tvKxE8DOBJJuq+4/i7rj0SKpN9zA9QpFQbV9EtBxbZ1uPUcYDuAlDAEn5z83i7yRgld91AXZiftMXkG9oAartCqQKQOgIhOKHMX8elsbWF8mgdRSnm0QfJry4SoCEhAwND9EMjFE+wCXXJlS/o7ZK9RXwDhNDl0jsgJ2r81cpz8a0MpfrkJNA53sQqWsHXI8mCXZdCDImRAHmuvljjiO+Z+0FUG5GCMLy6/YcAAB/B30igdOZ4/2dDRJBIKCNQyggxfheNfn4kh8qsSGKei6v5l7VDyQEcSBzWIEKgDeTtkubWQvKg5StfBsXI4DDd2ky2EBirkt3pw3BXbFnQdjGVqSoj9weBi3fB1QqHyaIe0FEZMmmnigfNqoYwDOge4zg1AovQhcCmflOgjgbX4jrCLavWzpCa8/EOQ5xXds2y687f0ObDchdgC4M2E4wqAQYYsiDcrcRDSjVRRiQlQds/5WzAE3mHSoJlJGfIoeW8jezBDON+R7/URIQE4IyJvcJQT5XSzqCLhHJtOFN9pBVh0iil5U+5BhUnM6qw3G2UOCo4w/hkNUGtDWIa3mOgVC8CsjhtVhSN/c7ALl0J0Aqs6BkUkASUWMFiapFKoLwRCgBBJCUf9wE1MCswoEKdOcSChlQf76y8PlOGkeAeYZCMkwg+SlJ4PfIQal9uQZULKW4sAxVi2N1rr2zMusyXx/cKtZXqtrtFJxQ5C4xKBWeARc7D6F2GlAQLu4j3zoRoEwXPqRTkKMBMJt9pWLWAZbX2mON8gDTyTl4Jgbc7lrFd8HxiPdH3N9tkSGAU24DtmU+7gYsTT8lHGjlPhPz13gZFV01BWUbpWr+tazYyMOoI8TkCKg4ISgUtRIQcDwk9xhQ0u4jIQHL6m0bqDn5xANopvZ/vMZfvpGoYbscRNWbLEITA55VGMhAkZMrsfYAqQa3JBsgBiKJUTKuOg9x3PBa8ZljsjCqZojlqPIy/CFCMg6pfEe6ZvNdA+JbPrSGAG0egO36C8p+KTtYe/ttGZBzBKz+uv5fzotMPQLz/r3YRbhqAYDOgdvnDDzJIPNb4BxK8kX5AnQghqk74cJAubXqB7aWBodSMnU8Qw8MdHPMdv/cwOUEnhvEvnLRxnusgD0n0AM5CgmCMp1T2epj9ffu8XuJQFLwEZH5Z9OIH11FJoACfnohSNDwo63/DBnkyyo5gTDbv329AtpokhAOKtq23shiD21ZxIUW9VBwHACYsdomk5+HEiiTGSQ4uCsggqYg/L547mJyMZ5mNqdKRc0Eq0HDAMNrZyJS5SfaXlpqvEfRwOXjRKrIcxoitWUSI8WcUth8TYY81LPoJQs75+2SSM9F0DUYcHfcRLvFgijzdyAC2DL/rQyIQEdXYGYE1jKgz/Tbkh/Z/5QsqH3jBpQqL4AM3Fmv3QOFEDgoe9l/tZ1RAuEsROLPKo6v0VpVoGx34bBDYBxUD14EMQwciGp+CgGggMeOgq45Lnd13MZR8gjAFfYNDBUcoYturN7MmtMwTolJOoN35Ca6oUS+1uVDz38tVQFKAhBagBvQC1gpHJDgB3vPiUAX00MG38TzXtGl1e/lDdJoM5l9vGH4EF03IA+UMkBRPY0TgAcrcgpISra7TOUDhKswpBN1zen9npIAVANdDjrOHQycROMOr0xy0KrjT4C5FwO3R6nU8RHJwgN5AKPgh8EN/iRKaIJDafeAvmf+uBNAUn07GagP/jLYIkIoNzB2BVb9i8x5R+DsugFj277adAYrzcjzFQIkCkhYssIpYKtOQUkedI4qUlXeoQFmPkloQhPhPIrtVVZQgpsHY5DQi4A1TRiVw/ygNMqnnErPDgsw9TLz7lwHbPhIofsE411geVYtgtDEhFUPXVZUY8o7jMQR62n556sDaM1AUSlw2ASkbH3JI1T1hwRhecBQMTAqraw+EYCNz2dife4baDfHJRyNks3affEAYGCyIk8lEVlRZdKunVcBVA1YNUiniIE7INmhUIwMmmVKcxFIFGGNMvDTYMZcSrnO7BbbRzxae+6ufViQUZR/wX2738WFVoIICgYKW8jvQd8Bt4Xx6Aggeh9AHPejamN23ycF7Qs/mouoFrmC264z+yEYOKPP5ABZ9y64VYJOOYfIFaBSSVeAmWKRA0DlEqpbH2XFePkjHqj9TH65v6gMKfw0lpHPpxS5objAaP5FmjOhQ5PEdnyRhFMEV3cdJe3w/uNZguVpk6AiIPMABGJ1X0ffyZDUCNwgavB9SviJbiMTQGkCyglA1QFI8bypBHAuAOcHRK6g2K1uHK8tvrTx0/kAn2TD47Ux7sOB+shrdn8yhqfKASufBbi2h2FPQX7WXdUPiCPt6hUujXs7aB9VGmTnMhrkADgmPaO+Qez72CafOfdQb6JO1Kl7xgpNhDIq5Y3W1+cXOJiZ9cuH7SEA9gCUeQC5538v2aVLUZWApt4JrOkhROqPDoG2LczZrQBwchCYeBjrk+pB0rFlrGEosLswrD/OFdT7AgqGg5oVy5NLRXZ+vAKoA5C6hBreI3YzNIja9Qg1AdVvY7oRRpQl1wAVDUk9hVXKq4gDvh9/g6LgziGMQExuxwBMuIUeifVast11dZJ9LCYu1IDxh8pf/l4+7PyNtQpgfxUoE0EH/GWAaTdQ1EWECFV1RO8ArwubeoISotjfgFGp8UDRe3G6BK4KKYq5xhgUH6wAJ6s6D6gQpBznsvLwgAqsOEK68YO3s5bMhD09AlACWQQi5VIM0COwiuWjmDx0FjzvgxW/13pcSnnm2dC9jZKl5WGIHhFNACqPkc7lCGCU/TcuwLmCMeiNQzDg7gPa234RHqBysJPAhxG6hbhfwKgpxfkxMAHCgmTUwJtOEiqVrC61/EFg7Ci3AppXF9Atdh+kuFUdFaCFojm3IgECEBeK60kKAHUoZhfuS4B7lAcwKh8kHHUmH0u9nhSqkjviFgRiXI1fXwmA3wWgG39aP0BR1aPqnwY9WGhX/89DsRsKiPZfyAHg4EOlaOAC8jDEAKZOuQJUdraYUtl9vkFZP6tmgyShUB0GD37PSLldTG8SgA0AQ3VXRAT3xrgIJiiy3CoB6UDEJNa+YIYoJeciRxERlrPMMCaCZKLKvxSQmu/vzhkkEtnBgeIj+PHK6nLcNpOkeYZ0rOXX1xCAXgZi2oCx3s+WPq8zbiBfmgE6lP/KhWGcXZfBvji4iBAkmA2ZEIvS8QuBpfthldqqIZUWYdA64OLgRIUS2fUjrgEJLSozuUQmgUu6jXAbqxSOLAJra++HJ1McpC9K8Q8fRyQ9DVgDZ6G+W+WKSgxarVWoJglCnHtEIJVTpkuB9hozAeQkYGc6sCkD7oABN5AHeHUDBVTlC5mWX6X+jRwQmCVcqOUpTtzV4zfrjsAyYQMCV8XonbLfbPa/PT/rYurDDkkBO8/INeQnzOpolZlUipXWKEE9IDQf2az/oQSgIRGtvt0KRUURfiMYpNWJtaGO5SyrblSVKcfu9SWMzl9DEQ3uci09lY2Sn4ZAQDzqZZdzd8qY+OQrwdKxdJiR7tXy68//X2sF3kCArwTLLiCe/PMY9S+jEx2BBYyr2e+DQOQITJ2/Dex54Jfz0r4DV8AAQXWwyq7sPHK6Tc6MrHy8Pg8DVhAR9w5bgyN1V+oULkOw4rXZ5bpa4O/ZSKGZeJ26qnzFvlGrKjk1N+sZZoqgAoLo5R4UuTNpmVKtPgcLVCWC/B2ciwDS3gmgtgLvBJB7Ajrgt/kBTPwBkKlvIJ0zWF8v6A1KBIaVgTYgfaNQ0C8gyMEMD6oy1DME+QPnGsiiIrnU8wDDj9aPzh+pUDsFERYMHv7eJjwZqa5UdgzbiEQiIA2TewFoRCIyJhrhToj8nMqO1rcHA+a9XKslGA9g+508AYr1GCLAd1/+BXAAGwjw58AR6M3ed6x/vhKb5KOcQQXQRE9A7ari+j8QyUR2P3QEMJhVlaGJQL6hLkywKoKgsU7AZs8ZXHbboHKgBgwmKqMBxZliBbyZBKDscAs64jjnkVlGWWG+T45EgOwiwmF9xiYmDUzqeETVVSVRhKgkDiCIgFh0olCQaxl0ZmwSGdbrKTgYrBfHLGQHBFC6AakBCJOBEPcnV065AEwEFqA/QvVVCIBKZ5xE/nLVHnNVARUbB7/L8nMeQrgDAQKfjGykYHQDHEAT+UIsvgUX93XlJgFqoxKiPDSTyFMJNbmfcikiuabAzddpwTtSvn4LrrpWbvIqAx+eLiwSSt9UwOZMRNLNPDNa71UaQatzJ6b7kUBfL1qRNwIer9q4knS1mQC2o9gZgbIfQCT+ynYtUUd5AdMViKQRdAIa1dfJQZkPeArw4cZgXBqWDYGd8VraYhjmLuGo1mUYmAdkE4M8gJAQq2ry/hTj2n3QlSAcGilFaqxUVS/zyuSB0FfPIYmMlLKj6JbwgHxgRgS3RHviCPaTBGG3rcajNolZUnDrAxvfnqQ6vsqptO2W33D+pjVNBW4EMAX+mpgTicCB+isAO1U3vf0+BHCKT0qPA8e4B8wH4OCJYvSIHBhcYP10M0+5IpX4U27DNiXVLfA8Nc4m5arPt8AyyI5z9yHeQ1CR2BmIwa9IyBCmrezX17mRarXsugaNTiBqUnMuw90fIiqZVwDiFm6nKLJ1AUF1xXzXvAfdt6b+9GzpXsq8C7uPzrGJAHJ8nysBhgjodeCqDFjdgAoFirJHGf2q4FAdEACtpcEg9m84toM/zgMwucBwCcOE3ja4DocenKehOQ8FAdD80FgBR+VAsz5oJXXVBGnpo9IgAaHIlEzqiZJm+cYAQgsee96oEUiXtqicWiV0UFkogIzICwEb5DdGuQv3Pei+heszmKOKST2MChGUWBA5VAIwrwI7l5Bgu6HnWoKzbcDQHASKb+P3fqJPdwQWRmTF7FQIuurPwLPHxRIK21NPGn3gcznGOQ8kNBp0DQ8+HuQEEqtMz3HUKzZOJjOQUsIjQBYOQg1Uc71MbF0CadfplLXadOuompaDc+BkKbkNXaf3eZlCVPIc7CzpHI0g8nUJVVbfsQ2T8n2UI6IxI1xCdOzlN9YQoDQDbe8FhERgbt1V4J9OBAbqb/IGBGIdJsCtL+xmQgUcMAeB784/ytzT8XF/UFRHMNW22wHGCSwNavH9m4fQvw6rADeZ9T+UAKyXpgajzrp3yWKkxhVHHhBIvDqRZgmQXZMBemCfdVYfBIJzAJnoXJs2EIUF6YjY7Pdmp9gNIeDaMgHAj4PWXoDtkEFFQM73L3YvhxGh5QeFB9uf8EPqn8MFta5lxicnBWFyUYAVb6AELSaTEECsmAQu88B761JbCoDY21a53rgKqy5tiMCzKYqr5hQAOcnYUtnfIAutEmxqkJprNM+lkV0BZEhITSYLzGCIE1BCQNP5Bq6Bk7+Pdwd4B5Q7EOsFuTwqRNheCZYcQHkbcHshSCnxuV4A/jFQfBlIeYBmYk405dfH+sZyF+UqD2yg9N7Kl+FGg79Ty4+B3x7MlKJTEonBgAPZgjpI/HUdxcgV4MAOSKVnXwXo+ZpN/MrJVACnsqHqWPCNAFeQ0wESa7dGOQEPKHUNVbfrIQJ1LeeVYZK4z4bQ8Vv5a023KfiO+R46sgzcZL09kBeI9l1+4/mbN/mHFuD9F0HbLwTz36jsuQ/AN/6gkkfvA9BqX8Dis/xC6UmJnYpPrEfTZh6A3Nc/JLTqbO8Q+EhubVwASdXxYZOX5vqGMwEVwPuuQCWfZJKQBvMoL1GPaxQX9pIJqpjMKvakSxGACpxJlFTUSTigC7heF88XkgOCiIiGn2fbFfco32eOiKYqAeIat0XLbzp/M5QBs33fQR8QAai8aQTC5aYKgKFBUThUf87Ccx8BgM6oNzkItPjFPTCrKhuP24ZhAgGfVLGr6KyIImRQg9JE0nCMxhNtkDThEoNoYj5AwyjqBAxCvG+gvjFRdNQuOpZQS6da/KzwWkid00ehqJ0SnwPtTBhQgEXuISYARYLBfYfvh3c0x4p57ey+QCYwnoAASuafp/4CKewAwex/+Zxv9nZgUb8vpbum7pFDyF8TcgNVI8sorevK47UEg8ozCgvatqzEVoWdsyiDC9RNq71NJFq34bPMdtAUxwN7KdVUdlTZ9oESm3MH/fXOxaCq9MDZBUd5fm2IF/AmTrAqaIBAoDeupJbP2pgyxz2YpHNkVMVCX3ev7DdFDkFZ77H78rMrrmEngPYyEHgNGAK9/G1e/rkdEsGnGoJoPbkESRZGhZV7sIBI4w4AjAPRxfvgNsR+mA02gEbwUJwW2XxUZSQQHhhORTtq37Xdw1jdKw8PJhfCCHWzRDGX3VfgmU3oKVDX6hESEDXq7gPckJIFKj7rxgXGdxmFtc8Qj6X2IfdBBBiSQyUtrdae/Cw5soBUA6Fe457PtfyL529JIUDOA4zj/5wfcFl+Uv8Cyv1fPyGIXUF9qJzsK/sX8kDgvmjg98Dds/ITNp8HHD4sV/Iz5ASDbdrOm6Nn4dMDdQR6c91RYxERhVbi6v1LvcNodK8jEMm0qLgnlQw643SM56rnLeQQqam7/nwyvhfhtcgkYQ+s+Iw1qfq8g3JGR4ljPVUCaD8NHrgAUv9qz8yEoPIQAPR1fRz/s5NA6yfXdeL9+sghVJBWf+QUCv8juGFwNUs1b/OtW4hLfiOVta7BJv6G+wK5WHgoK56PRqDqkZkFhQU9g3Zs7wfhwahsicXAA0k8b5c7RIJ0NqX0mpyNWpOzKeDvJSoRM7h9OW5EXjsB+IlA7QdCqyPA+B+TfEgARaWd+peBVKgUwoVyXKfwvvMvjUNyFEYto3xAuek+BEBr13IGloVtOFCecgA8zj47V4EwaPfD2Ds+hrBwOEhZyXqOYgz6QtRsOK26uHNWMIrvlwd0e35+WNZB28s/IDDEPZKKPKveKvSiONw5BnZ+AriRy9AvFBXkQLmK8TV4Z9AjjuXDawiQmoF8CHDOoZRN/tX+gEoMj1P/FB5YgnDhgWgSUvuZUEMQAzqBpwMfHoXLFtsEHrNzE1TKUsvqAgEK1NgMF1I4BttItbsJPpOMixVMkgJcL+totbXDRF/sBBQg8I4VUmA6a+cG+w0AlrkHcR+c46lSHt+n0T49wKLzZKW398ITgXcB62n58PNf33MAthcAMv9VcYNqAMf3rgowjv+bwgrVL4MDlLRsL/cbAL8OQgSb+duCMp4S3Oxtcw68Lw675j56au9jcmWjtV1HYnFgm+jbj52EGsyjBKBSsyISFnSPyhlIex+7D3zuSArOEWUAPzpJSC6l3aUeIPF+BC6g7k6iYVzH8XXLb84E0H4dWLgAsP9NnSnpp0KEieRf2P4ryn3KiiuAovo5q6wqA5k0pCsg++1i/4w6va+107gNDzzMitvtKHlH1rer3NyRWAZLHkyjBJ9TjKjSMJNxD5yLUUPlYtQAN66C7g8DePaYBrgBCB05WOAyAbfEnQd4RDwtQekJwycCJ4jDuBrafnspKBIA/zYAv/EnBH+YB4jVv5f1d4pq1L+M3sZ2lRhggCrga/UH1uxYcEM09T6O9oXH7MIEP3XVkQsA1g7J2BU4YglBP1JjbbuVMjoiyYRqwG2A7PMMChBMmH01zQ8lJJrYkdiyYgOJDgM8Idvv+QSlB7JSdj3zD7yuZMbmw/ehPMd2PysBpNh/awkusX6uBvCEIIj504AtMTyDfWYOACblbAKvHtuAAFwHVQKUDe8n7wLwhkk7aEWmiTvTIYBxGp4cTOynLLtLOlUpd4PCVhzsQEG3YYGn+9Hx+yE8HMA7A5hdzWOPo67XLVP19OmQge4VEddjkncezNS7wudQHYyQkORQbVglMC7VuoDlt+whQJkKfLZTgWuv/xYW4Cu8EPTb0Rns21dGQOdbMFEStIm8OKtvjm+ARUAVZTwXItD+VhGA2CoF21jLuwOKRTlMoHp6D2BmrgFl2lmhXJkRtscrMoAR12bXazvMdtcOSriyTqZ8hhQcUYgwpKfATHZRgo3vT7PiFjBehe36CJz6nQMqfKGxY8ihF5rkdRQelXujCHdbtvyW87fWRqBUDoQ3A7vaP0wSUrMAwzxAuTj8t5MczIBM/2SCQZCinQ5i+sO5ASQsJhS8HnYk+bNT3CrO5YECmeVR5MKUolz0EC1h0YCr46UMjo4rgO+hgBCGIK7WPUsKSk1F/wMMcme7a7QD95FaiUys3S3nIQzstT0pDDDXb7+fJwx1T+haypgSzkCRswW5vU/9dWsigNoHkJ1AfSFIN/lX7H++pAN5gJpbQIAXJar/ti/Ssv4wyFG5wFnIUh+WETlhxbF5RCiGBArIyAmoZBiHFHUbfJR9cjAPvVeSU/0DHdAjafE58D5GgxiJqausQGgqrjbLZB+AVso5dRfVisBFSKse2DVzzl4AACAASURBVHG+d6MEnXQYBuiW2I1iK0Ew5ABYKQ+Lehii/MnyW8EBtLn/KRdQau2+5l/WlWQOhwQ2XDBKzgB3YUG5VF8StOEBxFHkCOpgDpJ6VlExD5Fvu0wmwkDq5QmUWyDQtudJqk3TfavOItnhoAnsdQxs0Z+AjSZRqRAVbjAY0UVEg85+L0sdEZAs2RB5wqBHb5IuOyCPACh2//yJvvNjVT0kGHN85VK8Q5gjq57bSOsyAWwjPs8HKEm9Eg5so8kk+loizlcFOO4/lgdw6l3IAQEkljkrLVW8PMzYRbC9MrxqQMiKzQnC4hCs+sgYPSqtuapByaPoARIm9vi62T4LgLSchAKaB5QlHLG+5iLmgcv9ENahoJ62p1R4augyOknCI7F6pOrq/E28OkpPqv441+DJwpNqu2fLbzv/jTYZKHoHwP6EN4IojCqmBHPSrwzgEsO7z+WR6ux/U3FMILJCU4LOOAGt2D5WR863wI6Se2HWP6iHz+QHQhC5EKLdA1ZY7Rj89xvF/3PHVUQEy6AioJyAUbDJON8AonIsEYCZFdghiumuPrp/oduAc1EeIu1iw8WyLCI2v/1YzfWxjIzBhKi0tSGAWgoE1Vf2Pylu3/bXLH0lgDI4JjoDEUhVwRQ4SdXREncU+wiw02EC11CTdnST6/YKEDZDbodXGdWBiprvBI8bwMbWUFYReslGHqwB0PouwcfdTE5IHxYgvKaFaGqf4bJ8z4bbgfriMzEJRoyrxbOIvscbkx8YKD187/A7bCHA5gCO2H9j++nloHZdnAdwTUC9+QAVgOQEjM1v7GrUtpPg06oMLC3zAHo95ibMQOMchCGTHjkUYmvbGEUgxeyp6UhpjUaaQROAOMg7WPUZ9BNUC26/X8uPsmqp+yAciAG7B4iKm8NldC+G+QxwBvOqLr4D5mTYNXTufQG5cnfdEOAj9hAg9QHUMmD9bFXeuYFi+00F4EAeAKoAM6RQkpL1BiPAVL4AW5FZyWViDpR+Yj2/xBETYDiwHNnk5262EdeH3zO00ex08kB0eRFshJnpDyhOgJQECcMM9N51sLrOkoiK1UWi8gg4jboLp9ZTyylnYBwUEVxQTj0GWrzrjSgr/7hQIwoB0vLlI85/s00Gyom/NiMwzwswNf9W/quhANf/XYiQL9pYaVR0tPciJyCBPJcbSLiKLfzICYzW4/HNgxxVCgTAYtLQbsG4jV55sESgFb02HmV7bgc6JTLrSS1ZpgHIce6g6jAJ8BnlDsFJ8fiTEoSkzvI7B0QYq3AP0D4UHIUT2n3g3bGksRMAhgDoAvS7AEQzkLPwg/ZgtX1WwHT/tv9PBIFAzuvH4A6AT6HBKCfg1nPTkJswVAgPIZpvfJR1FwMndBRFUUXyDMHMoIjtfpBzEE7FDjD41MtDRLa23BKqWc8obTsdK5xV3dCxKEcULQuIs+cWIiDy9TyOGHx45kOAdqZuCPCR2QHYtwDTjEByAHPlP1b4WPGLylqlbtvXmwmq2pTZVwIsCJAELCF0bToBshET3PygycfyregzMGpNCpvPa9WlQyiVKAXZwAwBk8jMfvFQwrCQDhJ1B0QGxL1SY+Qc8jWq645UkJ1LlEnnigs7qX4Y0AOWIh+7vSK3uRDAHvuo0kf3YvnI87eBA8DXgQEJgKV3th/yAC1Gty/5aPsE6l5jefE+AFNa65TpyOa3LDUkCKW7gMfvYlNR31dKzfup5J9yDfXUbMkHbkGA0JCOs73aiaiBb1xCvV+s+0CkSCZAXmy1GZyj5GR8be4KTWkLcx+VQ5zDmAPxTOhhibq5EXP9ktRniGFG6Y8Qg72+7ejLbz9/m58LUMuA29uAfMlPZvupFdgTReshwISfU3eXzFOTe1T874EunYABq2jogUFfj+gAzgBosW7XVRS1M0DpE1C6nHiwzIQJrDASjILYlMpE5xsCNmp4AnAitJlyMCQsoBsRmAYnHnkMQnYysVvokcr4PHMu4MhxPNj5/hoCaLG/sv+cDMyXS9n/Rgz5JpdYvgwu+bkdS5MBHkttC+Ymyg2QYvrEnlBgAoTO5ItkWtj7H51DJdkEwVQ5E4m2TCyNu/z+zWx01nFSTrmdXpmKWpm9b2CFFAO6Q3YKJP2kHsIXzh02Hr1IZzCTwDsC6Mcovd3HEn/6tHwUOIBU5qMXgir7X4G8HSQnBct2FWylZbjTDgxlQB3Ti31Nwo2n6qJb8Ouq8whKfO0GCYeh9qm23qvKVOKwALdT17fEg/qjcwus2tH+JibsJRO5dZgSnu58QEbSQYD78XGpt7w8aNm9pPGHA13bZqV+0gkNrj9SanVd6vu/cUpPY8N8D036uwP4qPPfCsqA4oUgNXtvW4Fr8k4QQ+KDTBQYBxelFJbf7IMq1N22uANOqtGXl4lEdhHl0c2FCO1644TeODRo18/AwLgWB7LVNyYEPSA4e26uq7iMKF+BTiOy7k+y+qTYxoHEA1wp2ygHESYIu8DxRL8nDPND8TkD7QLU9U4Rw3LEMVi3FX3fnQBaGZDtP/1GQFX5pu7JNeiQwAI5f20OA5RzYLU1CT6I9SvzdyoBhoCorTdQ9XGIQMnMPGjS5YzDiTqMxACvgyNKJPYqCAjQUd4gg50n3dghawdRS6wqpY4HpwQjXB8Dpw/eHqg6KiiJyV6zVuzHO4oIdMr5jLdFlxMreuQ6zPJKJOtp+R3GAaSOQN//r5KBAejrHAFeT5+F/S9K1xKI+UsL1TbbFgBGlQDTSOStcwGu4feZikAH8F5ZAzdR4u4AEOraWC1kfgJLgNBTkXCvYN7Abs85r7zRfi/C6jfy4cGvVXnG8s9c1xGw9p3IWL29gwgch3mGkdLPEcbyO87fLhyABbyu+2+XyxOCbPkvxWfZ/le16+UEUMlVyY9cBAMQiUKBs4YiwgmYcmO+8dVhRCFCISgcJgAksX+6JxpUbTG4HLbdxjXgMB+dN1DtvJskrIgsHDnOgdCdI7gPeHcUYc0q9VyCsOcCYgDOHLvEBnPEgFsFzmuinDl2EvbYy0efv92XAXcwxMnAAuym1CUkwFJfIgi0xLpKgM6gAC8CehmtCBBSVswTqFhWEREO9GELbz43uo3qQPyA8fE7KRiTVs3Ee5JyuYEpG23bce0w44HmCW2kknZwl2epCO5Y2KBiYh8qtOsdXedTiOTFuwAdxmhio22X2JE1wvGuIDr2TgCuFbh2/gEJkNrLWYHG1mflr0osSAKteRjnA2CgYahl9J9QCSCCqjdJxd8E+C6wjzQCkT2PYvC+zS+E2bPr5BaEk+jF3gZ8naoFq3cIWraxg0qEGsCjXIHdp6fm1i4zqUWqOusCZo93hGimlR7ifeVElt95/tvZAbye1Vr9OCiEBJAI7CYATdyeyQAAzJWDxBOKNMpXpfCALD5P+EkPB50EaIpRXbtN3WoimVdvaAD4ELTC+hp7bNYLUKtrG9h1b/GDMCQ4t3MfnX6AFq8HjijJsZ48BOseA3qkOa16PSdCJJmvcfY4RwDs4/04BBgT0NGQoW2/E4CpAuyqHGT/tynDGaje/mPdv9lkkyfougEIHyIywAlBmYjaw+lVAgY9AZksfPbfDpbqRQSAo9h+FALIfgFM01EfvbTwISHo68d+CAXEkCx6lQkAyxGyGFn9XtmS3UYMlL7CKzDOqLZSVL1MWPLFZggeY9+Z7I4dI+29/EvVAWzgxrhf2P8cX2v7rxOAwzyAidPbMfybg0WugBN3w/gfwgl2EC4bD3kGpdiiStBczAzwMI8xEe/n62U1miOEQO2NwrVr6AHYW/o2uM2A7JBF7zv0VV+rJIO1d42KNOw5tTOZdQFHlH1MPLEjOS1t/BQSj1xVb/lOANUBqOTf5gagGzAp3a7rOWTAfxGkUAFQyj+qEDhiKI+gUx3gpCOBHFVa2fcSNijrrpQ68QKRipnGHAAvE4oE76hKcCRJCDZ96DQOlQbnrHLPjo+sepQLMUCs9/7pCu/A6ADmQ4exNdfPvwdI5SDG5xEhACQLe85g+Zjzd7QqQHUAnYYgWfrLj0V0AjbbvP0FLkFWCHzXYPry+SiDRKGN3wGYrEYMWpGJnwX8Uy3+FDCVA0Fwl7+HuYFAQaOQJo3UTqzuj+fUd7ZSAefqu4Dx9TzdRcw4DSb+Adi7gOzvq92HF57DDmA5nXYCaA4AgS+mA1eHYJXe/IhojadtHkD/GAiCFC23XV5vgEss+gSh3HbGCXB+IcjOK8ArN4Gs/dT1ZshHoUcGKg+WrkuZArdudWWlUlSggRgPdm/dZ7Z9MYQwQxqjfMVRZZ8KATJxvDBnAONk+z7LxxoHwAlAOx/A2X9WfBMWZO2umX3RMhx2A3oyqE4A1FxWDcqgrjb7gBMwHYNlSASdg9RjYBJnXcXWjUAu8abKjgKwsQPR4DFA7XUf1lCD7eX4uAYoHVeCR5oBYJ90WlChLLPdd4Y0bBCy33oRdytg6mX2Pka2fjaRWckmdBZz51s+9vyd5AC4AUi0BocdgPhCD8oTjHoEhpl/DAPIXRSTKpt4fDKvPSBRHTjiBMhZWBXsEAea6lDR2wMsOQl3/IgQzHX5we7IxoEdIPxIAGuw9q+FCSFORs5ZdAb905KDkeX2uQFzno6CI8WUOP1R8T6puiOg3AugHMfyu87f2c0BVNXfS4DzCcBi+f1rvrbLs0RhbXsf6N08Qh34Cjx4XPvQzDU6BwFOoAf4KBk4kdSbDhEq0R0H9egcfQWm+wUDzpNJxyG4ezRDCLGyx4Cm40oQziX1RiQyC1gFdgXI014enFPv2XPbJKA99k4AugrQeSNw+ZWgrhPIQDfKfqAbsJMwNO3FBPpWnYCBaAaeUn3RTVgGOTYvuWUCGIFi1oc6Wt/LPUwpfnM8DOoGpcE2gsx6dr3vTMYhA4PjxVl9/p7tWiwo1DXqMKEuHbTk4r2udp2UWpHuNKg7qq5CEH3c9bT8y+fvSg7gVH4XAC1/8HLQrhPI1p8sf3oUrPzCyqucgVHR3j75lu53oF2HOW/UHciE45pxvAXsWfOwioB2m65TWfM6kCYy/BKIw/2OuwlvzS2wuoSQv7MmJ22z6/GEkvcShzO5gHFYMFLjScU+oOwvxAHMlgE3AtgdwK7qBfD8MpBm/znj75qCMDnGrwwzai0ah0I1t2FBHTzRNGHOJ0jQvwAnAJY8Bi/1LYC9g+xEFiStzDJmh975vgIL4lIW3hHFEeWOlbYHMHvdcyRiieNpIURIENA/z85nTCqaxKaTe9NEcew88vxbGfDjzn9nXdfXoQsQSAAagJK17lQFVJJPqLl8O5DJvqsZhPnyzSD1cwNMVYCPWewzq65JwsFNxWoDgvZgrG9BHoPRgEEkBkcg1/uPY3dJLuh+ZhqERMUgAvc8ITQTPU4GWpWeCyHaPnb7QVKP7k2196S4fMxpa9+6XtKhg2rMvrySBX9/71qicGMnAOsAsAXYVgBUC3CLuVVnIAx/IAP3CrFu1x9CCDPr1hUkXEP4YVTfAs8RRd633SQMM1hl/Dq7BU1PxkYmQyT+4YYuokc6wSBRhFGXdXv6NTDGRBGTTQzgx+zDJHocsGsXrNbNzCt+7GAkiKeqAxFJ9Zbn6ycXExHQ8rt3B1DmARTAp/ZffEloiqMzwNjaiw7AekLeJytzywmg6or8QRAW2ONDzC+Sdq21FwnJ5gkSkellRsUphu9Zf3negf3WwA1A2SEGR0rFAUnCKHdT6fYkIYTXQgQqLG5MLo8JCxjAjyAIysKzo1CZ+lEu4VEO4JFz/1UOwTmAfOzl95y/ew8BUhIQGoHMxKDtkFQVoAqAcQIq2VcdACp1IZV8ea7VV6g8txCze5CEwQNcH7e4CHxYlZ6IHMw2eZ0CXSG6dJmsXrwEr0sfbRrYT1D5GUCOHUH8XTmujo41tv6xRXaADOfFjwlixgU4ktiGucsleGsu95stAwYTguqYA7IPHUAiAHQADejmrUDGAaj3A3AfP7kFGeejXe6QAWTo0xeh/Qag5/DAgpfCg8gJiAYhCUY1r8Ak/goBHggBqOtQEdQ0MZATcI6jEp0Gl3IoCKEeaKN99zM5gHLo5T/3VLdALYqhR4q9r+8o8Gh/vidOgctzmOzkm1J1fLaGfDwZ75turcAfnwmglQGTC6iWv1QGqvLie/62A9vP1tqryT+4T75NGLsPyoBVM9FRuBKeSBASaZjhxMcqzCnBbHMN0i1kQmrnsLbUOYHwtWBKRWlZ2FdQANyGzog4HgPePiHw9Vu1ndl3fE0BUb3QOH/gEiYz949S+x3IHNbosEyTXWfbrQrw8efvyUnA103M30ICSwiVGIAQWvJN5AlkC7BX/gqWiAxEac928E1UBSowvfXmbsCedW8kF6u4sbUHk3i2h2AybBhm4uPwgtWJPZFdfxzEw3DBNbXMnSO67qJuXcfB9viJhKEU3qh2kPQ7Tgo2jGCnosmi4wA+4fw9YQhQ+wJqQnCQCzCkUMy6qA5E3YFSyeHijVJSuZCy/nWvamnxOOVx4Y1R3YDAnmSNDYW4dWxXYeu8bWzZGX75GgYuYaTuQxC6DEVMPD3gKb8xVvH5c3VBX2Pip4UPXTAf6MCbAbez9t24vrk6RXJRuLNNYgpzAJ9w/t71lJOADfA0LbjE/y7bn3MBocqneF3P2ustB4CarP5M7I/QRNUj1Q9sf+gEoklCZM9kiZHUWZPH05W+VR20gipFPEIMx5yCDnscGUwm554aLjhQD6oRI3fRV/y8dqIUN0MS5p5VpxKruj9mxwH83vP3ZgeQQoAW/4uWYOMEMqtEbwdyuYF8U0yMj8oILFXDgLy+FxbMVAWiNl855RbPaZ1CfRCq34A7/Caz/u1h+fPGLsErXA1LkjSYVmh3joCQIqU+ThI+NHrDXAApJitqPwwQdhpCA7bw/tgH9q/PBFR8MnegyCapPeUGOu4kCg2WT8wEYJKAriRY1Do3Can4P4PCdvpZAO+fENxoz3v2fpjwIyu/37HkPurNU/0BJuPPoBFuwwCnM4GI7XTXvmulVKDzcw/I1bxgYB8H/ryVr8AkEPQBOyaWHtHUsTAZj7OSDj8P8gixawiIZPBK7xJkF8KPwwJ4LnSNyyeev0+GAKkJKMX87e8GYKwU+EpApPYtbq+KNZP1f0zsP1MqrByqwV5vm0ziKXIpw88CwcE0aj+WLbhIEMcBnzhWX8+U4otS2GOJ4UW6gIhARtb9kCMY1PGPOoK5F4qQqovkLgI+lU97TqStU6HB8knn7/NJwN0yY9//4M1ATtmz+hq1Dyz+TAmwC2YRJhR7hA6jTtxRIIqO0QBdgOQHEB0Pvo9KzDUo0oN5gkuQbkFYWQ3c46TSAxkfbRr0gdpFZOOPq92BudbBG30soD0QnQM4WDmIHUC79kQSFtBzZcAA6EAQ/P22sy6fdP7+9XTa4n+YDYghQAF3dgNzswHTl4gn/hQyUBN/qjewNh6dggTzZFVAhQczoQJGXEMFR0LxAxO+oZvsYQHUcxk4nOxgnTn+U6sGDpgi/ozU9oUtDxp1elZ9qNod2z0MASrpEhgPHLM91Y6quxBm7AAUqWxjYPnk8/evKf73SUAVAiRQ92YFauD73EAmAaPSqnEIVNhYWdq28KZL0EVNQX1rHVUDjJmOKglRLN5JHlpAWcvecxL9dX7t44DfdwlToUSQXIus/FNIYr7SMKHyT0gKqhg9VHdJEj37bis9NQwwLqdv/3cH8K+cf2BdswOwbwYSFYGw/790DuaLktYf8wc4wDtOga0/5wK4n0A1C0X9AWa5SACa1mW1HuJ9l/H3gGkDWoUM9vhzoD5u3Xvhi/ITI7II1x+w848G+uDlINFxu0nCAxOVlC1nh+AnDXnCGYcFOO0XQgVTATjoAOD57ASQFD2FAV718fXgOE9A2fx4WUsUZl505cB8+9jqT3xm2+w6BDOLy3f/qfxCmW9QQw3KBZgsv4rlrYK76wvj8w6ooYqhzb9ne76KEaD3sxOwFJBKiPFCcwFvVAhx4LjKfjvbf2B+gCYJAOuwGnHAAUw7CEsWy+/bHQC8DkyWAHkmIIQA5Aoa0OfzAL6lF4ZuryegJvvIUQRx/h50ZELBh52ikJZ84Ri6Hr3XN0CM3PbpuYf+ul5Y4GLwHikNuvz0sWJCiYDvyKKj0uqcDMDuNgccQFf1C8kPwehdmlTvQ5UDH+q5Y051HioHIJZRE9GeA/j9579rQ4BcAeg7Aazni94AbLwZhAP14ZQ+AtnYg8ookn0qNFDHiZKHUA7kWrtU7+h8WFY0bRo79bTMQGIcyBT01NsPEu8vZtSf9b/nUoTH6ChpA761uOxnekCsVzOR2IuIwR4frqXTazBFDsWxhSFCrNTOQeyBdxoPikCUa9DLIAQNqxHqusgBbATQQoBtZaoGtLf/2L/r6757zUCiLFicQVVXmdArrgHZlpN44rNRcCYLZd+jun9+KHxt9VEJ0AzJoJ8/iGCoHUqLAUOXguGFAe08OJ2Sc7uzGLz8PZxLCBU7JrhhiHHABWjSyOfuqLYEMJTp3PqDDoD3r9/5UMvvGOiqX2B3AJ9y/sHdAfifB8MfBcXpwZkkAOTqxaBx1r89cL2NTSTWrcNcAADMgTGoAIQVAyKLmbDgsd2BnGcQjiGO9ftgZtcynzOInYQ6Bja2PNUFOIBKx6GV9miooFV/cOzAiuO5p3II1QHokOKwA5CEY1U+Z912aSjOI/27npY/sBNASgKmdwPm7L/rAlRvBAp+LIR6AHqTgcaOIN8o19orYvZIuXuKHrUIy7BA6bW38i5s2HdToGWTzN+p7YUPUe1VHm60zoIkUF0oIb0hLiAP/n78r+lKuoEDJNENPzoW+pADECU4TRAFiHZMmLBgygEooLdjV8DLGYZp3+UPnH/INgLhLwQbMpidD7CRCCbV4B0BrjnIDng5j6Ao5UDd661UDUOmpIeDH+AyY/tFt54Dew0X5qx/ulXBNdVjxTbZAV5kg8FzmatTVQEFTk8GTEz5u3bOHdl5RTT7toNS4gyJtOPMhxn+OjPIDjmAGOD+haQ9EA+IImwDHjmAdj+WP3j+IWgEKra/JPbaewJNDJ+dgv35rwzmcFJQshz1xaIOlLYfwJEIk4or33FogXY+r3ONOwS8qtQRIGH50Dmo3EOfFLT25fsWEIsGsT3PU7fB109PkwHYTc5XcH2cfVUIQpVkPZwHiN1Pc1EFeOzcvGIbhyBbjS0YRyFDPeOjHYAHv52D0NZvfy2fev5hqgLYNwPX9wLugIO3BRd34EDdgF5sa6jspsSHlQXOAzCAEYg6FLCq9xSln1TnQ12BY+s/tvz+GG249gIBGADDmn/vHJ3wZHhcva+06cPZghPqPkhA9sIDQ0YvwOK/OAewnvhYUf4Ax0UNCzKZ7gRgGoGq7Uewi98KQOBXIENJ0PQHgBoai06qbxSYXhiSQwH3wg2p6jb558hgVum7jiGoLqjynzzfUYfQcw/FMj+OFHrE4VxJMP9ehw5WbRzQuk06KmeiQw/vKPx5oxCkqv5kv75VcOEIXD6h5wAemwPwpGfyB9V9ebLHJOB29uVfPf+IqQLYMiDW+LneL5KCWBmISoFH8gBBmNAHNKs9gsL+naKIYrE7tl/afQXIkbKP1h8lBTbP6vMBUiCFi47uQxW95f5tOuo7G07wL+DwN+om+ErJbmomoAIWkM6LcADbzTNk4y17uy+KyGgZ5QFm9y3favm0nQDKZCDMAcDfBbQy9uewAADlmntUeIBAGuUBuH5f8g4dIHeSe0mYRQjBpb0af+P5Rw5gBPbR+qNkwLAkUOaBwlBVYI63EWQCFt2u7ZAC5wcOuAq2s1WRBxUMFd8710L3aLSPstwjiz9yEOb7Bd2Jj7H6qPyFgHYH8K+df1TkAGhOAP5ISDf2D0IA5wx0SLDfnKDcZwYXtwebPEQv+RerfOsALAR2QOEflRCcU2sdzcPSOkh6bqC/rgv4YTw/mSeAee46XCiJt471f2ozEc21Vw7Egss7gmMAb2PRkQk9N2vN273g0GVs9ZWjwGXoIDIB2BxAifdLjd9WBvavxO8GkPmAuPwXNgkpyy9aev2LN9FZlPQZAdk5AU8GjYDIlaADwP6AunxEFu1c6i8cdHq9dwNHEn6szGbgB92CR1xAPR78WKUClwW+AFe2x37fY26iF++XkC/cRsy1j4iC3YghjwDghxwAjS8bOliSsMRgAd+u35LDVmpdPv38Y6IT0DcEpZ8N2y5fTAxSXYGz+YCw979Yc9X6q94F4MODBstCEPPADknmEWQQAXAW7EMXwAMF5xlMOoRpwB/OEwhFd2FDQAZB8xQm/ZSb6OcEWi/+GNiW2F8EwBmMGMIoQnn0snC+ATmAf30nAOwE5CnBQAZF6eGXg6re8otCgmSftfn562OugPfLjTKFueu/+/dIJNHWUQOSAWveKqoaCGDXoRs1F02Qgbm2eq2s+QhxpXad9UMF18dDBXQEFdp+TUXlORibK2PymXAhX+9khSAC8aiRSF4z9vhDHX5MFAiqosxEHvScXEhAY4mz9WX7/d/wtWFW+f05vDNY/tD5x3UOIMf6+AYg/LWgFAqU3wUAu29m/+WuwB4ZOMBj6BDlCvLNFcCMbTzo7UQ4gIFEGyyWsLQNVyDx4QYOQOkQRMzsyUSFHpPJQ2HXvQsYAD6o0fNeKsTZlw2nCw+s/zCxGTuL/c51ZuVZZ3EU4M2eI3mM8gt4TxrgrYNKxDBa5q0+EgqGCzsByBxAfUfAdjJ6EYgDvnhRiCgDGhWnacJ2HcfxPjlonQQO+uwIuiW+/FgmKwDWfSiAeYDPgfWY8ns4DNyCULH5sAM8wjCB1wFqdxrxhPXvZvdji74fWWT1LbDngNqO1aAXxdxo8SX4B2U7vD57Dhvz1+0ciVnws9Ph614+4/wTYQ7AvSLMvAtQ/UKwfVGInDrsGnrgVWFovdC3NQAAIABJREFUg6hL0PfLZyZUcwT2e1WCA8uYypLPVAD6Vt4CWYNsDuyHiaMb44/cCJCZs/1e9brkMcg1xI7HWloFUAUqY8uFks8ouNsmfBfBhAMopeNOjb88W7TzDHj8rvx2JhsWWELwQFfkBt8jX+fyh3cCiHIAXA4E218Ayu3BJiGYKwkl9pUvB6GfFVcEUSyPA3XQF2Be/MHA058r8Lp9AzNWHiEcgV4vlwAzCjhQfJmTIMfy1OMNEniWcqxVLZbbgJfeLYAgMccKCIZtdXzsvKY7yUgBXX2HA85BvjvAX8tY7fW1yVBB5i/QGbTvtHzm+SeDHIAvB6a4f9tZTw22IKIyYK8qwOsoL1CHPcT8ZnBQX0CDoH97kB+gDGrYQuQKZtR9ZptqsDMg+w5Dx/Xdfbox/gSRBDVz5SlcjD9dKfBHm5t41Ak5trF0sPvQqafLbcw5AKPeNKMR80W95Jw7Ro75K9DhuSL4IWDLc/7tuNbbrqflM88/lacD55eClqYfyAGU14DLEmB1AtvD3E4avCLsQCJwP46c/lvOYRU03B6z7oY8MHYcOAKjqvPq3gf0/HHYOjtyCRJhkRLr/ScThzzPYTLTzzC3CUALZksmcRjSTyKqY9Iy2X044QBA0fmXftC9qERduQ9R/oATk5Gtt8fx39WGCqD8IjxZ/o1KAPmHQcorwdyPg/jJQdIRmORf3BlomoGqsyBg8mzB3ChkFN6EFzYZaId1MLlIALylIL07aFfYW9cjGExwjhKKsK1U9FjJPQHpWFtup8qVYUJNeQK4rkBNmaBQwcw6SiLi4Ld/BwlBUX6ThITABqLjkptWaH9upcj7vodyBO1KpdUPypajbZGcls86/3ROAuZfB6r23v5SkP9BEJsErL8VOGgAqgMumApswM2JQEjuWZDmG6VyBKZzz27nCMLNAdDuwEN4e7TsSuygUI5AhgqPCAnmwD4Aarn+x+YIDs0JsAN7/9TtIhTb47sBDjQWuXCFzq3seQN9GzF+u7xO5hi0SuNxvdpbEk2qHtl6f13xtvYYyx/ZCcAmAfEnws1rwrD2X1/80V4Lli4jeGX4IAfgHIFqCFI9AwQ8m/2fcQR2GwtKtupe9RWIY/ud17iy2hPIQyokE1dAT1Phg3Apg8qDV3MinzC/EKh4cSQHKhVswRPJKMfUU+8gPAn6B0YWP3QPzl3pUKSRDth6SvwiUaQwCbfF4yZCWT77/DM5CUjvBDRvB6Y3BO1gFu8LKE0KNd6eJAOX9MuKCkk45Qw80LYlUeIvr4P+QYZFyTuYc3W2l0DPg1uqe6lw0ENjmnHXlRNKSsPlthMWfvpYj+w0LHaX70N0vSZJdtBNGMIJwZm2ksQgGmvapB/lPjRAu4oukneaECy4y9iQtv5Atr84gnYP0nmWzz7/rEgC4lTg9lqwBK4A+KU6UOP5BuI6wCNiMHkDNNg8PRiJQalzAnm6TlZ2pd5+mY3xWZmPOACtwkN3AKw9RQwO7L7DTp0Tj11BMdV9qFR0dE5rUc31TCYSnXUPKg1IJAhIBFJVahHuKOuMym7/bqQy8zNgY4dAyu5afi0Z9cMC3Na6ALyO5XMqAagkYPCWYJfph7IgkkSvG5BLejJ+F6XEzNYyZCCGN+8fhPjp8QrPoFYkhARm7bM6b8kke0CidjLxAE0FtrgSoZy9aH9vrn9uymUcDBsqICfKkpHzYeurANlddpAsyhN0cf6BygEnASX4yZ53HQT1Szirb5KYMF5cCGCJYfmj558TSUCcAGTfEdjyA9uBsB+gNf3YDsB8rB4ZhLE9tgDTkHY9ATzk2YE8zhFYCzsCPDsGBE9SSQW2OFygHEbef257OPfwvJ2E5aGkYL6yg2FDBZxI5ikVD5cF5zXhBWb4RagUtw9b58MkIc8RTCjy+/pj21BFhxyt38EqvM4VJDzwdS6fe/75gABK/I6/FORzAUgI6aJ7cb8nA6OKwgVYpR+FBwrkmRj2757+9hrdW0YgFDkB8x0qSMsxbVCBD79RFjuLNFEFlyovIY81BHtg4feA0PsGPoe24pFDUcSiJ+F4YvQxe70fopQ2dgV0vPDlIH2gN/LJZwzKergduwEFbusQkEhtWFDuk8wJkAuw14Ak0v5e/s1MAOmXgV8HAGNIQD8V7nIBfmbg3hDEyT2cvWfAXrZFsDRQ+r5+VnelzGUw8+C0/QAGvEafLQANcZgsOJ+bv0McBhglJ+Da6+qEFc6S41E7wBwmK01qLT3L6XkHcN7J8p4lu3zPBhWOUby/X8WwD2CsvvgWIAQgg1Y5ExdGoAp3SoazLoEVvYUG7Y7uy4KE4fJ55/dQFYCAL2cF0u8F1sQf/VIQlg1Vpr/zHgADOH6TMCq5nAw0o/QMlAjwipR6roBcSjVdcHwA7TTQcxlLw1t9FwDwNNgBho8oL9qfCnucK1AgMkQZWfhJV6DyDHWZKMfh9YS5AVVFKGosGqgUuPk8cQhgHcG+HVQ+GgG0MYpuwRLGelr+2Pm1DgFsyhxVARDsOgm4X4J7PwDYbfGKcGvRm9I3WMH+BVxhPkCoPyQK5bkUYE3YoMEWA7kX+3uQmOOYcCJyEiLEAPCqMEKGQMPQgex8x3koZWb7Hln+npXf1z3KFYAaDhwJ2/UplXe/GkzqS6Q1EwIY+y5fL6YtfSKAGPwYBu8GaSOA02nrAsS5ALYMmMKD7UthXmA7kX9V+P7Vq7IzMYAyY9mwlu7QtvO2AvjkBDxJsFLj8VmpESp4rp66otNottXuMSIMALBLYtlrUkqYQDEmB0MTQ7AL9Z7qUCQj3214UvmBfuhgyUHnF+oA707o8bZfHdsAlSoAPTfAAIxJJIOYqhQRgA0pgFCxwkfhA4N/I9Pl88/vDQhgAy+WAfnVYNgKjIk/9U4AahvmrsBKAOkNQumGlb+L0+iBOQM7mi1YuwMGJOLUvxBGENdXaz0CuSIX+2Meo1DAQKtj6ZXi8zTcQls4UIwiT4cMlniwb36k8Hy+rmsQquavNx3BWny/rLs+zBd4wrAq7hXXEYprUEIrj47BEtvI0itSSGFB++7FFShiWP6t8+umClB/GKTG/uwGUPlFGbBafpoIlPMB9SIGGX8LCN8PgOvd37IJiN2FJRSvtZG6M3zaoItBnNdU28xn64cCKvnmgQ5LgtKdIgef+e9dCwzOQV1fuRU7MIk8REnOkYhImvF3Qgtf9ne2vpMY9MqOVlsRir0nHmR9cmAiYRKT4B2QCcf56BAsYayn5Y+fz+t6em9S+1wFSMqP9f+SGMQXgkQdgfyeQHgpSK8TUCUJUbkVYbjYXABL7seKDkpvVD0CuwIwDtd8PIjduoClwV/6t9tVeXrCAKYpL1/D8fyAV+5jIYZRWFk1sN9FAXYfpJ3wQbsF4QA6hNGz8AiS9nf+ZoI8LIhRzUfOIYjXZduwdQwF1Og0PFn4fRoppnXLF+wEsM0DwNmAhQAoDDDvCtgOZasB+8FLrsDZ/M7U4GL53ew/tOyYW2jLGxCUDUcVF4ruQgPlCgSwndXMxxY9AOgKujB2MXYnrOjE4+4cE/kBp9aySuFjbkdqjwX8cD9l73W+QJGDXoZAtSodvSwUwWaBR/vn8dFAinbcEomy5Ug6PUfAxFMIAJ0PhhD1XECMy584r+f19PpiCWDrB8i1f3QD9V0BOCdgXA2oIIjmC8gkIDiJMEkYATYCfk/RRwQShAxVqSKiQK2GbUSc3XUJZOsjMkk2O6Ya4QlEA9BEGDBVafCk8fhSYb6mQSsyAkoBFsFhXx2OVn9k+2PyaCDT4YICJ8fxM9so4kiS3sY4g1/ts/yJ19fXT8v5YrP/rRFoAzV3APZyAWKSULX04tXh3B/QqQI4BZ0OBY6qP4OG3EfpAOzG8R0S6BIFhyTYCcjHZCLCh97bFvYbgBePUghFEgfUv5la9+0fWyoUPQ+spp4slUvIy4JJP9rqd5wBKPu+FZUklVprcCty0ATkVP0FzABsxLCeli987/ra6eJ8lQgArH8lgEIG21fmkIBfEhpXA8y8ARUedHIAxuYfJAAkEA+dNGw1bPLyUKnbnjYMgTMGDT9en7lXQJEROIlBqOHASvG0AzgBuZQVI5DNgj1MBO5ohqNMEoWO/W0o4B2AdzPKKhtnEHbrHXMJeL06Zrehw35doiQYqb1yCvacNgfACcDdMHzha+vPL5frjSWA11uNf/8VoOwGaguw7QfYL4SnCZMDaD39oiRYYFh+cciAUij5QRJAE+7BiiTAysvntkqtgRw5CR9CYHZfHgtn8k2GAEWZOKCx35vuyCDmd0RgkpvC5vecwcSsQEVQBkCdY5S7zKDh79CAkvc4UBnAc9i/PaDLeas7gFePK2CzYwitPhAoKroiHU94jRiWL3pt/dnl8nQXhwD4I6FRI5BtFEpfGpN+/ZJgfeBYJaAMPyp5IhxWb0EUJsmHgx72hay/BiEeNzqGWh6QhQkFPFlU4HZU296LfJ4hQcC5ujkChF/eZ6IvQIJ2IgE5VvV23RbcmnhGCT/1k2EIUvu3tuq9mD0RcGzxWbUdQWR3VAiPyUa5l0YAREC1XGhdEB57+aL3rD+zXJ5uT6fzhc4BQDtwdgL7acqvA2GzEMf26heEqtqXGDvIERgXIBKCQYnQEQUafFHi4+2tcto8gIGryQXwXmW/pi5IV96F8HbsFo7kCDyN7UcLymoRmcQxvz2+2W744lJBLtOhAA5ivD+WCKpiypZfJBN/jFllTyDXoLKAtoBk8HtwewehtsHviODXboHDFhsWLF/88+tP7QSwbHkATP6h9S+xP1t/3SKcvmjPAdCUYdoeByWCpS0fEAKAXhOCdwt+aCJkG4A81AnshZjIVkugCWDyddTPZkCX60fnQS7Eba8gnY9zcCZiUTml+jbufzpZRKDEI3PcHOUetDuIQeqBHpBNVW0kGPs3hhwFtF27P905yHG+/WxzD7xuPS1f/HPrT1xcnu5OF+t1IoDcD2BifwQ6hgSqHEgtwjXDD+8CiKoAveWDvMBxoEckAEBy4UEhBVboTAIuOeeBWgaVpY12XOMO4HgxQWEIwJG/3kt1/yngmr3B8cTuQJOMeuOvpYZ2N6zNJ5WddBgMMFRlQxwZuHPlQFTS46GBU+fJZh/lGiJX0F/uwb8nAb/kZ9cf23IAmwvoE4B/S1DL7HtnoJN+yu4zMRTQ0HITz5M6C3LoEcJwXQBkVvEGZrweUuLqCFROQOj9QOnrAB6UFflaG+iZJIJwYxgyRGD3pIODX7kGSShh6c6SwiG1f3Q5MFb2puLevvMbeXu5A23f50MCD352Bo20EkGmzxsB/OjFxel2J4AtD+DKfyUHoNqDtxsTOYIcBuwAoFmBJjwo4ImqA327PwRzQBxuP6P2EVjztXbtPWiMSPjxeROJ2EDHAqK5g1ZXLyTJZMPuJQC3y9Lba2AV5rDHWOlQlSeJ4EBFoecODBEEnYU6BEBw4/2aVPmOVUfAd+0+dZYiQNG9lOXaFSBZ2EQkfm889k4AX/oz6w8vmQBOy3rVCKCUAqEBKOoK7LUI5zcDmRZhsPoWEEwUTVkr0TwhFHDgo0SeU00gDwaf0O5UtAv6Bpx7cOdWpNPKkh5OjRjseZ8SBoz31ZOHYrC70GLY9gsEOjULUDuCbihB8+XZlVg1Va8wo9CkhBKgrAxcrf6oysJBwPFKWFPBDO28fWLga7XOYPnSn15/cFP/zQWcLk43iQD43QA5CVjfCcDNQUnl9y/NVYEM9qZNrPTqF4S1/U/H8I7giAuIgdzIxuhqlySyEstYnQBqEn6ODmzBslOaNPCgrsQ+gVmC8S4jDgX62+rjJlLyispgw+9jtyYioJh55jgFNBwmoN2uahoc36qnBWkP5Eftvtn+ES8Aad+JY31yBpCw3B3Al/3U+gN7DuDidLP9l9qCg1eEj+YFmJ8Vy+BAd1CHuQgJXFlvZP0tcXRJYAbEodozMDKwpxS87wgYzKGrCEuZjarkvmKCUWTn6/7d6oFXW3NekSj0oB7E8J1ZgAg4RRwS2CbcKe8I9C4D933q30wafLxCjk7VSfFnwoa++jdyZutfPi9f9pPr919cphzAaTldLxfrXg7slQTxp8NMIpAcQB0ctR8AlB1mDbZBpPIAbR8P8njdvm2YxS/k1FRfba90mo/J17Q/tEH1oIGtnZ8DAEM7gwlHFVKmz8H4GNNWZUAZtjrr/cu+KqnYA7sHbL5q0QYcJfZiJfeA9jP67BU0d9AUM4rZjy7HqscMGaht6n12Mwu9wiuCQcCzU0HiWb78J9fvLTmAZSOAy9NNIgDIAVA7cCOH7dBifgCrPr/+y7T8stJbd5AufqYikI/zQkEPRAFq6kGftwMw9bdhcBUiAAgFYHZK3w0DWO91so+JDn1FJaZwXgOqjCcNXMLvLVCKvV0xfke9DbgIasiJyGOcAHyEK4C23nLNM4AfhQcR+PvLNTGE5JCvffnyn1i/u1QBdgdwuecB9jAgqgi0Xwr2MwRdVYAbgvacQCYODAnQgqOTMNoVxP8VLOP8gFJfBdZk08gh1GuEYU3bKEcwk0C0DiQmCL6urnMwLshvKYFe7nenXdhCpUG2B3YNan+kLuCDSUMRkfDgZxcSxfdG8YO23h6IkQwUAI8RAFYjJtSfkoNa/dsxl6/48fW7qgNIeYDrrRqQXgQqZge6dmDbJFQV2839L+CkDsGa1Rd2viQUiQQ8CBCoPjdgQOlKc2jD899By7DR6Qm1t8BHZYPrFSVFVuR964HSGyhRHC38Bfy8Sd5zInwwAK/PLS8NHIJNINp7wKpsSILCnmMgt1Bnu+/UGsiOVXZs/9t32vNrcF/aeY9m+/0x05i3x9HHtyRhyYYJZD0tX/Fj63dsnYA1CXhxut5CgfV0XhoBbOFA6f/nBKHN/PccgF+XnIAdoD4k8KraTwByydADSIDeZekD9Q/JgYHQcQ9dEgJdFrG/vVcAmWEfA+q9CgVYjW34gNDVnYR6e00a9lx2+jGtOxASDElioj9gnPW3ScyR5WcF7ib2yOEUQomIZLScySxtjySyEcCPrt+OBJAcwO4CLuPJQQX0pUkoA7mqPvyEmKv50zpZ2hN5AQoRFMjtEM8kMcgJ7A9I2HjlGjwRAZEQAB1QJXEQKKmPIDofxuXKLfBRrWPiUEABl8gA4mxUaT43A1Bu24nZrW73iMCC0MT9gz4DBAWC07kCqB5YIHmV98dB2w6Ae0L7ryKOEcBH6r+tX77yR9ZvUw7gtBFB/akwGw7YFuCcKwCHYJt+GuDrgBBVAQ9oVnml+p0qwKLzARGwJdg6Sj1PHKiB1hXUc1KC0V9LftQy3yBIJHh7kTqu3TsPmW7VwRKItfgxcWgngL7iEYDvJgA7JCGsOpPPY5xAIVpU2VG8zw5BOQoP9IBgSN0j0ihOYDv38lU/vP7NrQRYQoDiAPaegNN5SS/+VAQArcG7jQdlr7G7bRNuIUB2DC7Dz4Duf5YuwIAkIIEXAmxQf3Yn3RxCDGZWzP0M7lpjQtmHhXM8HYIIE36iemBy883f1KM7MDKgvR9ojsF/c84P6LcEz4Mcz6Cs8zQBdBqGGKgj8CtgoxMp1xmRgl3uE4T6WG27RAA/tH7r3glY+wC2XoDTzZYH2MKARgDtRaGt9MevC6eqgJnm65OADcAIVJ0TaEMuIAUJOjrWKGO/r49Ljggu1i6/zqu9qga0HDps3ykBWhXXbzCSx4S2WksqilBilW+uxd4B5QTwWu36jvJT9cESQR/w6nyodhFAUYWTs5u3+W5fUOERATxV/XvEgOTKcX/5nAjgB9dvKY1Aex9AqQSUZOCu5vZ9gb72314ZZhuDIgeAICt/RySgbD4s25XHbtMGQl4+yOonYPpjaAUmYIsuQ+MNOuuNNlMYwNbcaG6Y14jcgW9OYo33kIQzdisEVun5E8fcRmnhO7cBq4mFj+M/434xgBuBWSVEUPDfqKSsqk8jAEzI+Wtm8mIgxxa/3QuzjygRLl/9d9dvIgewlwJrMnDrCajNPr5F2PYE0OvDTD2fHYACPMb5A1fgQC1IgBS9Den8Vz2GIJkDiUHW+hILCg9gGlPZrlt1h6vtkoinivr4O4lH3otTgz4zr4DerhipB49djytr+Lw/gsCebx7wvJ+ezIPgsX+jy5hxAkgkcWzOxPFC7b8oD6rz2dxEuu7lq39g/caeA7AzBEvWv8T8+bPp/MOkH/QI5Gx/+uJcCVCOIG3XBlNT83oMnD+ACm4GvlB2E1fT+l7VYBRCiOahmHSMT/BvQAxdS6TyrU4sCQnupAV/HoqdsMNqq/EiVMLlY+lQgtUeaSByAibTb0qDGYD1mUZOQIcPiljwGmb/ZkC/MPs/VfufcRI2R1Cub/ma71+/YZsMdLF1AEIIAMnA6z0ZmOcHsBtIIBVvDS6Ah4RgetAZcK4SoBW/kgCouSKAemwHUjhusG7fN1D8fbhLwtiuwocYVsUBao8gD2uGmTDaD4A4kjHEGDgE+dITdUYGMak2Ac9ruicMBh1q9pAcnpD5b6roXcIs0Mueve1n1D2NuQLco/a/PScbFlgHpdZte+L1LV/zfevX7WXAy5T44xzATgSnkgzcEoHcIQgNQjgvIFcGsCRokn6mHbjlAbziCxdQv4TNBcgGoO06egnCHjCDEKJCsRv/91qJUaPVnH/WcAA/5Qo0+AWQBVDtvspZcGDwxAai2iXHNCHUWTgSr9YM5PZZKTvaYiTqNyT+ly3Ex0KEXpIPv0sBtfoeaR06BHuvl6/53vWvKgJAB5A6A/07Asx8AaP4AGjpAJoLYMBXh5Dr+MY1uKYhC275rgA4ToORbhJCYGM1wKh6zykU5R0RA4UKXqM9QfS2kU5BTFe27iSdw0Pc1hCsMxq4AXFEa8j9Of1PhU2QAxFJFDYwIPDIrIT9UMCCZr8L+f72yKOAj8GKLiLaRrkIdc0N3EguviSIJIFOaHnH96z/TyOA9Xq5WNJ8gFwFyAnBm6012AJeJATxfQDmBSGo8JT1VwRByTmboYd8gVTofq5gH4JEChVcPcUfWXhJNKTkzol0YG3CDuUICPYyd2GPrz7xFfjXk0U+wZIH+gc8JlIGg50BydAfK769B6iYNmfwhPgfMucI3OhvBdzHEUD7bmzlX5T670nAd3z3+leGDmB/Uch6KRuCavyPCcLtEoPPoOLcB+A/l+NQmS50Bx7cJiyIAC6qAZYUCgjihKKCaB3QM65hMBeh6LKBozyu0vSivN4D9BTeazFexYQbCFqIFUEoAvkFIYAXUPNnRY8qDJFFb9vbZF4E9McTgM81LO/4O+tf3gjgYgP5xem6/Lsrf8oJ7HMDttxAi//FT4nnVuCk1qU6gPmBAmKO98v2ZZBah9BsPdp9BCLkCCJHEGX9DYB61YBRJUHAP0w4kuYOld67CO8bED6aioptxbVqL+cIZPXABx1zZUN/RqvaBUqWsHoWHyktdAA5b8IWeqToCLTob7w2/nvGDURxflTjj8iiHx5wBaB9Xr72u9a/BHMBahKQcwDpdWHr/ivCtTtwSv079r+ShVJ6ArkDNxCFiXftfrbWzknDomh+eRqC/RJhA5OuBoSuYNYRhDkFHTrIpeatu/aKPIytz2AvYeBLOQZj9aE4GIYDlC/QDkBbfHQmFXTTLwZhkrGqOAP6WTKICSBOBvaBHIcFinw4dFDbLF/7nev/ERFAcQAJ/LsL2H9FuE8ATdHrdOL6Ik9Ue5hEVIFW1JxcgJnYw+ssUFsSUQCYKgIG5NNuwB+3W0IEEFv4CVcB/fZ+DkBEJ6iW9h2EZQ9FDHHyr+3FYRAThgItghPV2cLOlqL4jKz4BvDGMSF454CtVP8poMd9+27A229FEB6ko7BgTCaVCMgJbedavvY71r9YQoCS8MNOwLpsOV3ltwa3ZCA6gPIGIQwBTIKPAa/ATstMYq2/rsJDkkUBBoOOqwgE7h4pyKaf4zkCA+uZ6gFPPKo9DAdcgcz9Z1BCmbEXDlhwT+QDqOKAgz8kAPEz6A0gDHhPAArYjyGAXlPPvBvQ6q2s/iH7P3iDcHIUMUks7/zb6/8qHUCO/wsBZAeQJgjV14VlN4C9AbXjrzQHgSMAckg3DtU8/b0vM3Zf5AyicEAtFwm+qvwZcNsZ0uOxVj4tP/tZAuEx81AOLX4jCFbXvr7TWvHrQWp/TwnGxCcq6VQm5ghABRK6QuDDBFgyOZvwRRHASPWjRF4vwddzAyrWRzJCoOo3/4zsv3UKJZTogX93AO/89vUvcBLQxP9pXsDWJHS1hwIXJ/sbgibbjwlAagl28T4qegGeDgssYCnGd2U9jOfFtqIMiMdvQIri/8i6Ry5DQPNoDuBQ30A6nwUvfDowr4CP4Qmhnam3LVIEvxgUr9UnBHX5Ds8aE4IlJs7Aa3eglXKGDBjgngwAoFK1VYgwsvfz66Nk4/LOv7X++cv2SrCWBPQOYCOAXA1YL+qPiJpWYCYA/FwUNi1riouKH+QAyBUY5zCt+lEVQZcOK2xB7SX0Z+r/IekMdN+p87xPaA6j5wPweD4rcIQAmHRGVQFDCrWxxzsUJgX7uZ8DiMhFHQNDkkYqHpRdMoDmoC4BQAjWFHqWALzSWycROwHlOJZ3fdv65zAEqGVAJID29+4AlvzSUFvrL2Cn9wcWglD2v4JHhQmZMIJwwE7hRetOScKOQ9hed+Iy/a6/P1D8EPht+/2vrtprl+EhOw/8/SHTLxVZmOtgQZ2T4Rg6AFHK9Ha/DD90KKzS3lFEBKBdANpkPp+10EwOCHrlDup1POItwUwuWo2Vxe+TQnM1CvRzRLG862+s/9PFVeoDSLX/9Xq5XMq8gNIDsPcD1HkC28tCytuC9vi/5QLs5KCi9hTrLz4hmIYFLBfk0GJ0BrlS97hvoIGylxT0wN+zARLQUbigCEYAMDzmNig6IUcx+wecQuQHpglgMmesYnE4AAAgAElEQVQwRwAWpPiJATln+z3oFbBRCc3flIfo2XpW03FuwAKSHUI7lwJuDPCx+isSgT6Ad33r+mcvLtfbi8tley1YIoDcDmyagbBJCN4WJMHP/QGo/jv4CzCa8pvmoR38CuQR8CfzAlRVaFBMwCbthnx7v1rQlH4EViCEx+QBwpIiqmrfLRwigHqNVqnLGXgpHntEAArQPZCzYs8RgnAE1a1YYHRVHyoY2xE1McTxeEwWihReBAHMHmM9Le/66+uf2QlgdwBpHkBxAzQfwDiAbTvzpqDa/beBYOsU3L52Dgd25aT8gKsAJJC1TkIgCRcGFMvfs/u0jux+ze2HDUY2NxCSwyAUMJTgQD9DGBluA8KYCRv0NgBjOsdcCIBQbOSjYnzW+xmV77kCre7t7Uc+ro9A384ykx/oOYPY7iuC6C/zrmAW2GW7cQixvPtb1v9+I4AN/DUMKOEAtgOXv9u04ev6Q6JV4fPPiYEDSGW9Bn6XACz7ZiA6AqgABUB3l5VBaEnCFvM64cHmPXq5garCojyo7Lo4loa9WDrhEmaAbxWbCUWrOypu8Rc6BzAmAKXe9vg4UNvVNoBb6vAzCDmXYOkHjzMCOKp1/Hds52fUXrXz+mVj8NpzWdAXp2IJyRPI8u5vXv/b/Y1AFycggBwG2EpAmhvQXhySkoEK/MYNMPjt5/1xZ4Iw4HdhgOoPiJzAWYCYty0Oo1j/mBQqNAfE0LaLlD1W/P45WFnb59m/+t2KaNijc4228etHLkCFDHWZKZURAcg2Yq3u7CBeDAG0GFo3CcXKrkAbAbmQ5B5zmIYe9Aap5Bttw26Ft13e/U3rn94IIKt/TQRe5ETgHgbYqcHmpSEpGQjKf4gQGvh9ApDyAFL1rc1vtr6fK0hrAYwm4QiEYGJuDgIYzDZP4M5hOvjw3D0IHwgRuEMwtPP6fAreKl8QuwDb/BMpPPoF+wvD3klYsKrmInYOXjWZAJSqI9D83/ExMQRRuQGlvscJwKv2TGhQCCFyFuV6l3d/4/m/urhachVgvb7Y8gDpZ8JdMrCSAYQI6dXhSAD5rUGm7JfAjDMFfViACg3g7zqBArPYCZSuQgvIsj26AASbdQMWhna7FC6U/43MPS2H3oKxgk+SwBNyBFEQoMIL3tYTAmcOyu8aiuVZ2SKyQACV+xSRAm87H/+3bzRyB0pNLaGo0MCqtyaA4yDv2/92TruddwrLu//a+b+4vFzqK8G2dwPCJKCwMajOF9hfGVbKgBH4ySGYnEAC4YnyBPsD5+2IDLTiN/W3sbxX/BbF23Ws9WnwAYW4xB/rvQBt3sevmQF4sM1EjsCCK1J/XK6A2tbzWukIRKvyk8IBRxRzdh89Ayu0KttFYNYlPkscTDhepZsXQbseATRW7nYmbf1VeKJDiG3p8u5vWP+z1AmY1Z8SgIUQQP3NlOE0UzD/glAmgqT0ojdAJAQl+I3dz25gL9OBM6jHauCs+Yi6La2LlrvEH1KAJ450VBECZCdg6KDjEDTRKJCiYxl7Bt5CKbmGvN1zJiyI3yCk5wNwoKCIQS+z3kOpdSM7TRDxPvM2PyIDDgdmE30vngAi9dcksLz69et/kjoBKwHUMqAMBUpOoBDFnhRMYUCz+Qr8eRlXBEKVL2AvNXr7uSUfM8irwjYHgI1DKgSwjT3gHNzEINybQgCO7QHwqk6gGnv0dthFOOMSZtQ9Jo/Y7mdYiW4/BFyz6DGJNJDoPe36ppga2Lx+liDG5IDqXc7tY2qr6PF2nlxG8bklBQ/c0frR8dGBLK9+3fqnLi72RqAtAdj6AEwFgPIB0BW4v0249ARI5Qcy6ILflwtLCNDgV7Ypys7uAJenEMLsWxXaVxQcQdTGICQUkSDM3YGxmjO8IzDn7WY6DTnh1/k8Un8J3ADsFnIN6HgOdg0YMtjt/NGOKP/j1R4beR4f/7Nys+L3qwOWYhCQNpR4DPjt9/Nhgj3m8upfXf+jWgW4PN1cqARg7hDMJGHbgrfGocvTzbqcL6z157jfuoINnL2koAO/yBskgJPi5/DBx/cFYAxo+kwVAWv3AeZBV6ElkkJICSx+XQZRt1fgMeqf9pkFf5l+yv4g2t9qrT9PHO8r5ecZf33lx7VouyNC6G2DYENA279bgg5B/kYRQE/de3mBBvRRjiDRTdl+efX/Xf9kKwO2MABDgpoUzGpvXhxSl209AQjyQgCvu0agdeklBZsTqIDhBKEBOQBYKv7WE2BB3iJ4sP3UbahDBp45iOqOHoBBaz+360HIaaCH4UFUVoTlEsBB4lCDXWUBFODt3pEjeIwbUMfywO2FAx7ACuwxAeikGlp+Bu0oHPAJwrm43RJAnNhr1xNvU0hgefX/Pv/7rQzY2oA30LuKABBA7RosyzYXANWA6gYMeBMZaOXHHEGGqKsMCHKAZCAnCS3wMRzIeiwSi2zlW55AATzODRjtF1UDooTAxIeewaQbWbmN+j+xUqCgzWTB23ir75U/dgneXzQV7wGdnUSc2GO3gMlBlSj0gG3XocD8YglgjhyKrvsQokMCy+m0vPpXzv9ucQCp+SfF+xd7nO9j/50URA4gdQjmHxItRLBQebACWiQEAewJdDm+r63C6XMDuX2PgLH8wgnU/VwlwBNDcx42AMAJSirmN2ptyn7aEcR5Axs6FID3t1dv91HUoJf17b7dB5XckE2d11+2ZzDrygD6DFb3Y5b/qBMYuQMGn46v58OBPph7Ci/tP/20GB7d5hUUCaRly6v/1/pvp8lAbS4AzAnYSWBvDirZ/0wAygGcLtar2hMgwc8JQV0ZSMoN/+XPFvwFpna7ppmFMJraNwIpwLahAfcVcB6B5xM4fa7EYwHM+1njr6x/FPfTGYOE4XTsPwoXur8cxKTAtNDWe4AzUBthxJY/VngmCaXidhvrDlCxEcz9+r93GLEbsADUYG5nbvE8hx8xkAvgyx7+GLhv+3t59S+v764OAN4JUBN+OSnYEoDrdf07kcHNcpneFbAnA43659LgDmAEf/D3pu8j8LNTyFl46w4A4KY8yKSRt4O+A4799ecGcBvPxyFBrN4zVQL9HoIoQHixBBA5hjjut/DGnAFSQVluXYIKDRjQ6Dp6YG+hgz1qAUc7zljpfQIwcAPwS0KKELxFt0e2yt1b58kgdhAa/NvS5dW/tL5zJ4C9AuDtfwoF0iSgPFW4/r0t253ARgCZDPYwIKu/dAMYBiDY8z7NqlsXwGEBbseVgLatbx6KQoFY7YMQARKLHtzHk4MGzBPtxZ2aAmX/Izfhge2Jw1t4a+61ytuwQIGeKUJVArzizwLfA5v1P123Vc1GSAxS5xDAelv73/a0JNOz/kgT7ZryxZlf8sVl/m/lIGLgl+++vPp/nr/m4nKbC9A6AQvoMRSA2H8H+77NBnpIAu4/MX5RqgE504+hADoB9/cGmrmQAMnAhAW7gyjqjPkCIAKT+LPgdklEU7yzvQOeMND2H3QCtaphgwMP0RjMeMbHOAALWntmdTwLa64MzIIeodqoJUr6WRhbEjnmBBqxWfi1n+zWBNEHOFt7ZfURphFJoAtQ21uXYH1Gs/498LdAYXn1f1+/quYA9nkA2eLnRqCNGPZXhOV6P/67EwEQQCGENDloy/hDEtAAXocACdi2X4BDAvyM4Hfb1ap7dhKUGEQAa/XHDsQcKphZhFHyEMID0y6MPkH/qnEvTNBGfFbd57bTxMFQL+rJVxSBXqm9Bz7uPU4Etq17wPdOIB95J1xW3raMrXtU/x8BXhOAsu4NkBy7z9j6mW20e9hCgL+4fgX3Aeygh0qAj/8TKezgL6HB1f5Ogevl6nS7TxHegZz/k+DH/oDXIfZvLsCqO24D6l6bgXxSUIcCZd8gPDBqTIlEMwcAzxeDviozzQDU8ftkPiDs/JsDuiYTVvG2lXYA3jNwVsAm9LzCe0VXZOHjdwZ2epOUpQ0mEQ9qH8PPxPkRGaDJ96FFpNL9GP9p6s8OQH3eCOB/W78M3gewzwPY7X1xAqD8Tf2zSygOIOUA9jzCXg68OF+mGLW4gALq2BE0sCdiMOBfXjefffxfgNryBiU5Z1wCTCay7oEVHtXdA72XKDRuIoOeHQaercGMHMJEo4+aV2DBfYwQeqGDygbw9r2wQCm8pRBUdeEQzAxDezSV7POE0LH9zg+o/MAR+++3xSVo0zHUYJWeVXZLFHPALyS1vPt/OX/xNh24qT5MCqLEX4n767/FATQiSI7gct3fF2hDAAX+5gJs/A+A38mghQUq/o9CgbIcY3u/bYGjrxD4/YrSi9wBdBIyQXjAxzmC5iXsX4oongL2tK8nCG34tTtoBKCThR706axuOU0fVvD2YcEoDChA8HYfQedDAQvex9l/RQCjZRa4x9X/GPAL2Szv/gvrF17CZKCdCPYuwNwMlBN+JdY3/17lHEAmghoSXJ5ubQiA4PdEwLH/Dvha+wfwQwXBgZtcA69vVty6iwb7AgZcj9N+W+iwLx20DmuXgKCL7T6v0Uofqfsx1edwIHIBfrmmCmPY3VuJmCjsMWLgM2mosEARgl5mCWAmFLB+Ymz3lVtggPJ5ewQQ7VtgjDmE3jJPEsu7//z6Ba0PwKp/6QYsOYC9VHjZ4n8AfM0HXGy5gDo5KLmApOAF1P7vZNcT0JEMjPLzNnVbtP8cKoC6S4LAPAABHCYZVUC6RGIDNNt8b/sR1n0HoEOEo44g2p4hbz/3CQDWyhmDDOhy7Dngo6NgW2913PoIb/e96nOGAD/j/seXj8jBry/2u8HWJwF76xrEHw/86gDe9efOn3+5vRIsx/yl9FfLgpdpTgDY/jRHAGx//Xy1L98JYLk4XzUXsCkmJgWbC2jgx9i/kIFalgEP1QKv9pwLaKpucwJo/znhV8godgE8qWhEAjo0YKBiLkCBWCn8jOrPbFMsOpCC+4XeiDBmw4CYDKyu+2DBx/rKCaiEIFPEnOr3E34I0ZYz8O7A0ouO/4+ovz4DHreAu/2riCKtXd71P58/73J/KWhpBU4u4GLv7kvJvp0M9lLgen1xlbL/hgQgFNjfMLy7gJwHgERgIgGbHEygKUAvJJHj/qra1h342L4pf10nOgY1UQgSEFOKo3wAgr6XHLTvEMJwowAKAWqP5EOAx5IAgpeOUe26tvYJjt498Na9vIC1+O2IHviPt/x4VKX63i2oJRFBIPgUAWi1j+J5u1wBm4GrfEEM7j4ppLXLu/7H9XN3AoAeAGgKSuqPLiCDvZIAgj/b/0ICpgpgQoEE9Jb4KwDOy43dj8BPicE9LodtYeKQJwx0BFllIUSwoFbOoCizTQaOHIGfhmxpwQLdhwwWfk/IATzyBaIzeQCv7wz04jKU4S8kY6nCAlkpvLf8SCHHQK9AjlBt59JW3G57xBH40KCdAVXdVwdY83ukYH3B8q4/u35OygFk5S9lwKL+l+ACWP0t+Hf7X3IAez/A8voFkkBK7rVQAO1/IQN0CW1ZcgnFLVhAc3/AHAlURYeXitjwgKsCCPbob9VbYG38TG4gQYRTgQz4SQKYnA7M2j6bC7Db+TDAq35s7RVoLbTVpxj8WtubXe9XAGwiz+v9yAEw9C0oj6u/phsL/TngY8CxvPPPnD+LQ4BL6PzbYv+LDejl31zm2x3A1ZLmEOTYH/7dw4DTcr5sgH8v5AFsTqARQ7b+Bey1/s/gz58hRHCkALMJnfWn2YWzwPdhAJOEzRdYGOO2ESnY5TpsUCFDXpbbnCPwegMfL5klABsa9JN9EfRV7O+tfE/TZ+J+b8+tlvdtf0QArMYM7Nj+27i/D28mD+8H2AOMPpcjLu/8H9bPvLg43V5yCACx/5b533MBu+LveYDkGK6WDegpJ1Dsf/p3dwKnPQ/w3toQ1KoBrTKArqApfKkeKOUvio9xP6u+cAHO4rcwAGcSHksS6lAgyhcoQvBaD8oeTC8uDkHBdzv3G0sAKhBQNIAQLleqrL2lhb7510D3ZNEDu03t4ZY6VEAnEG0dq72y62P119bfUsa82isyqATwtf/d+hnJAUAIsMX8HALkEmAigaT6xQHsFYGrbP+3f1siME0PXt4LpUAsCxIRbMqf4/9CFsb2jxxBjfuBHKifQCcCmQwKLLHEGKn9yAX08wSVANyPhRxPBJY9tiFbaOSxZKD3Q3g2+uGl4zxArPk+M9CjBIasNvX9UMCnCvswR+AhlL0XiAAbxfCj2N4Tx0jn9Xr8Bss7/pvzp5cQ4HJ/H8B6vYUALfGHmX/4+2qFECD9vdn+Av6Lq9P2YyO3G/j3+H2P/fPfORfQQN5yAwh8QwI1iVjCBPVvBjK0Dtc8Qg4JIgJQLqDvBmy8H6t+QAD0UlGGu53uOxf/c9YAHcJRIogIwGp9OsOYAHRtYOQHGhBHGt9zBlbB8XoTPBqsLJx1jM+WPqIDPnaDooLxGPqWTB4HfHWM5R1/ev20y4v2PgAs+212fyeDZv139b/cY/715rKEADvwKwnc5XBgCwPu1uX1BR3AeSOBnAisAOfPuXFoW28dAeUIcq5AJwuRIFDJRckwIAd8g5DKE+j16B7y37MvHDVvOEajPyIATx8cHjQIquRhZOv1UcbVAEsJI6BHQUDbr6fhDOkZiD8e9Ec0nwMDa+x7cb2H6tMMf6EjTxzLO/7r9VMvLtb9xR4p+ZdBn2v+W24gx/07Eeyfd/ufbX+J/3MIkEOBXf2Xq9Pd6SJVAgrw939LCXBXavhcS4MW+Coc8O4A8wUJ/E3to8qAXm7dgA0HEPS4XbXy+SfNMNvf4IlAbb0AZl/q0beq3q//67pAWzrnAlitPQkcI4Aj8Lehgf7kLbungFnTr91BPwRQsJ6L9DmbgHCc8wAvTvnLkZav+S/Pn9KqACkPsCl8TvLt4C8uYF9ecwA5BChEUJJ/16e7vay4hQA7AZwvE/ghD3BKFQEJfugXSCAuPQMF4HkZTBJqYA+qBSo34FRfkYFqFS75AiCGmdeO8ctF5LsF0jEb5BD+fRdg10Ylwm2YMaDVZ47ibTBxlADQwHPIwFDVbmDGAfSIIYb0nO3XoD9a2Ovp+kjhR+tH1BDtv3z1f77+vpYETC6gZP0vU8a/qn4lgBQS7HH/5fXe9ZeTgEuy/1en7d9CAFc1D1DUvuQFQP1LjgDzAiZHsIO45BIQ6Br0NvZ/ihtoJGDCAAd6jPXt31bhdTlwPgcQ6XwM+jgc6JOBNfJlW7XUqjwDPgK9zR54kI/MfboiG20rQLfjMJBx6yhXYHW6F/Nj1kDF20xD3gFoGL9R4N/OtnzVf3r+pEQAGfw1CZjBX23/9nmL/5dN3W8urlIOoGT/M/B35c9/329/ny7Peykwlfu2f4vlb9b/XAmhdQgmABfXkPoGPDnYnEADPcwlyOofE0LJDwzCAflGIeEGahMPWvxRJSBS+p4DsG5hZP81CYz9wBwJHCEAFRJo9e4X/Y7bfF8AHIGeCcLCegR4Xh+TQl+/31gC+I/Pv/fyMjf0bBOCNsXfSGDr+tvBX4Cfkn+76m9JQEEAF9e76hcSuN+cwOYOdiDvIE8EUMGdKwPJwvtcQMsbtLZhGxY0oCP4PRH08gN2XZuR2EqDXDmwLb24XQHlUx1Ag7PP7D/dATSFHnsDHQwwLfiynrbyVtNHdl85gEjxLVlYrWUHoFRc5/yZIHpuYBzRR0DuAfyp4I9Ip+YAvvJPrR+/JQG3EuBWAUhJv9P1BvIN/JUIdvXPyn+9EcZ6c7H925J/dxdX6+3+K0OJCHYHsFyttwncRf0TGaDCa1fQHEAUFiRwJHLAvxNAo3wAVwG4q3AEfKwolL8R+E35dSIQAwLc1iq6LQPyOv95PgAoxrln/1UiEN3CDAGMlT4igHnlV87BG+1jBBCB3roB9gIMVAXcX2gCmCGP5Sv+w/PHpclAadbfRgAb6Av4S9y/EwISwN4HcLq9vC5xfwZ/jv8vrncCuC8EUElAOQF0AJAsbG6hgJxDBFxeQI/235JAI4lMHKYleFwe1B2DnCjULsDG+FFI4ElgnNzz2YMetHFdL9VX0oVRTcBSgHIADYjNcVjAItARpEr5C+AiMB8BOULZO4ftGjlXUPIMRTd7ZMDbNmdwhBTamfrhQbR2Bvx7DuDL/+T5d+0hwNLAv2f+r5abqwb668vrZP1r7H992j43B7Bl/wH8ORG4EcBdCQHQCdi/W7cguoGm/MkxDBOEUDFQpcPUkMT9AQr4Nh+gm4RY9TG5x87gMZOEElRnQgCv/rxEx/rj6j9TBNKBdQRWzeesvncA5ZjewjNQLeCRWHhfD2ZPALHVH5OBBvws2EdAHa1XBHBkn+XL/oP1Yy63PoBN+bcQIMf/l9c5BNj+zUSwkcCeF7hOwK8EUMDf/t3Vf3MBy+V6l+L/13L8j7mAMkGo5AZagjAGfysncpkwrhog6DFv0EsANmIYKX+rDkRuICKApvhRvd8TwNPtf3MBbOWbVuttojDAK7tWfQVw3DKpr1LzPgE0SPvtFAGoMAGVWqXvijOYA/yLIIAjQPYZiDnnsHzpv3f+6MuLZZ8MtIcAxf5fn26utr8LAVyXrP96k4ng9iK5gBT7b+C/Xva4v9j/i+vTQ3UAmQBqInB5rWb5k9UvxIAJwaL8UDHA0iF2DKL6Q2ehs/01b9CSf3YbjPHjsKCpc8sZ+OQgAzyO+Y8RgCWB+fg/0nxebj83mjhKAB7wiVgKiNjs4/aWCGLrrxW/ncPb9t46G9vHoB/F/KP1Mxb/MQRwdJ/lS/6d9aNKErCAf7f+1zkEqARQlD8TwfVa4/8M+rvLFPdvBPCQHcBOAOdTAftrOQFYwL65ggL45gJ8GNBCAKwWmJDAgF41D2G2nxOEHBaozyr5p2y/Ajluh8ZeZfs56u/BexT/a+tfQOj13tt6Ze0biO0RME7n+N5+5vxAi7uTA4hCALVOEQC7CAYyGnuv6J4g4m0iIP+iIYAvevf5I65yGXC3/0X5r9brqwz+q5sU/yfrvzmAlvzblf/qtIF/+3e3/fm/jQQeLjIBbCTAoUAjBgR/yf7bngEuFba+gig3gD0CbPuf0jGYiMCHBQXYZT2/G8Am/ljxkQqa/VY5AFxb8gR+WbzEqz3rPdr/eQLwYUDLIKh1s2rP2x0DPOcKUOERpBb0niBOp6U6l55LmCWEN8oB8LWNAoHli951/q0XS+rxb4m/BP6dAKoD2EgAwL+TQLL/l2j9r9f7y+vlYXcBWwhweb47Lyn+T3mAkgsoroCVH/MBLQTA3gFdHeBEoSaA8mahca8AOgZfGozmBDRN7vUCMDkUILPa6wwAg3scAign0JbZTIB3AQ3IqPhWxVm5vUvA7Xt/s/Wfs/gYViiQz4JdbZeOt/8iaP2faLsIgLM5gegcIyDPEIo6xvKFX7v+5hQCbHMA1uvN/l9t9j+DP7mAFPdf7nmA0+3lzVb6yyHA9a7+95vSZ+BvDmAH/+X16dnp6nzbgJ8IIOUBGhFwdcDmBHjeAPcQ2H4BmwhMSi+TgyIXUPoHxlODZ8KBkQOwcbzX+pG9n1H/PvBbwo2Dgaa62u57RVexPapv/DeTwQwBRKFAs/ps41vmwW8zcgW/WAjgaPy/fa/lC776/JtSG/CW9MvgL/Z/cwGb/U9uYLf/V1vdP6t/tv07AewkkP7bgP9wcXN6dnF9erZcvn6TwF7Ab11AcwboBF6rk4dUglA3EcVlQqv2SAqqOjCr/Dr5Z5t/Wj4AI38Ldjb/nAPo2/tY/b3Vt0eyII9UfkwAfJwEMEUIzWm0mNoSg1d7tuYe2O1YDcgN7iqeP7rs7wUBHAXz0e2LG1j++Feuv2F3AJdb0q9Z/+QCNsCfbi5vltuNAPbYf6v97wnATfmXDfBIAA+XN7v6P9vU//Lm9Hy9eO9VUv1GApYQwA3UUMGGBVwh0L0Ctp247wSwAuDnDbQXkPas/wwBoMpzDmDkAFDhEeYW2J4A5lS/ALQHcAtka/85qacdwMjqK7W36t4HfLkmb81HRMFWvUcK7+sE8Fjw7w7g87/s/GEbAWwlv80BXN8k+7//d7PlAHbVT+Df/0vWPxHAupf+LnPcv4F/A/6m/pkAXlqX1y4S4N9TXYAjhL37D/MEcV7gMRWC+XbhXva/vIY8mB0oJgFZE68IwJKASgRqhW8gt+t7qu9j+z7AOd73YYEigQKsFl4UR6Cs/hjsvdg+AnkvBxDnAqyT8ATRcgCjDP9svN8D7hFQH9mW8wDLH/uS84duIcBOADvw1+vrDP5EAgn81QEU9b9Z7i+v1ruLm9P91fWSlX99uLxeduXP/72UgF/An/7d3cCu9vY/mxtIpNAmENFEIpxUVLsEsVyIvz3gW4b5NeN2tmBMBOplIT4hiIafy4I2GIh0vtj1eQKYAb8CcTPhSAjNIbBKN9XluB4BaR0Bxt3Wntt9RiGAjd/fJIB2P2aThI4APvcLX/+Qq8uL2633//pmcwA5D7D/u+4EgODfcgCXN9n236TYf4v5i/pf3qzPLm+WlzYCuLhen51PP5+Bnohg3YFv3UDLDxQnwF2D+DlZfTOrsJJBATo2DuH8gWL92farvoCS6OMfIFEOwHb6aa2PC389sM8RgFJ3tuz9zz4HgGRh1RvJoSm+B7aP72fcwBzIE1mp+F8ve1zcj6HF4x1ApNBHlyuQP0X99xDgj37B+Z/ZZgJuan+9xf03hQh24G9hADiA9XYD/9Vm+wv4N9t/c3q4SjF/Uv/b00YALy2Xr9/toN8AvxQnYN2ATw5ymbCBn+cP6O7BXi4gKbt6bwB3A7b2Xp8HKOt0yQ/7ARG+jyWAfkxvXwLOCh+BfmTnrcqzSs8TQM/2Ixn0/44s/S93Angq+HcC+OzPf/2fvry8uN0SgDebA7jNZLA5gE39b5r9v0rKf3dVwb/eX93sln8jgedXxfrfnl66uj29clpeuzovmwNA8AchgUsS2vkDLUegmoZ8+3CL++EVUykAAAroSURBVDkUwLIgZ/zbJKAxAWjVj+DPZT6l7PGyWOHbPrG954SftfqYsUfgq2y+dQUjy+/t/Tzoe0m8Iwm+IyQRJQY5CXg0B3BU6WeBPbtdLzxYPuvzzv/U5gA2639zs+z/7mHAzbolBHcCKMm/jQCutth/j/vX7d+HTADPrm63uH99fnW7vHx1e9r+eyXZ//KfJ4HdGVTg49++aUj1CpQ3BtlwoCi8bwyypBCVAIvi4zyAErdj/d/W+THhZ0OAluizfqAY//ZvWm8V3y+zQI8dgFZ5TQYc51vwzzkAb917BKCAGW3PDuCXAgG8LyQAdwfwhz/n9X/y+uridkv+3dxuJHC6ubrdqwHbsj0EuLpZNtW/u7peGwHs4F835X92dbs8v9pU/2ZX/pev7k6vXFy/nuN/JADrBhIBaBJoCcG4cxAJoLx5WLYM0wtD5roA2fpz7K8IwCb4uJVHE0ADvFfz7RxK/Ru4LUGwQnMI4IFdYmmO171LaLF128cvs1UAuz5ah8vV30cJAMH1S9kBsGN5TCJw+Yw/cv4ntiagHfy3y04A1zc78HfwX+/gT7H/dVb/6xL3327gT9b/6nZ96fpueWVT/qvb01tOl++5bur/cxnojQwa+I/mBLhV2L9dKH5vQNQEZBN+HOPrz9zO44t43MiLYFXlO2XnRxY/EUSk9t6y2+x+ZPObVe+B3TuDPiG8SQAWokdDgzckCfjpn/n6P745gOub8/XtXQoBbm4365/UPxHAHvfvsf/VzXp/fbs829Q/Kf/6/Pou2f7ru9MrV3ent17drq+cTxvoy38YCvx8Sgru/xVHgJWBLWmI5cFSDrTJQPdCkVwJ4NmC/sUgUcZ/3vIfaemJQK+s/XiZBWzbPlJ2julVjK/jcgR++ZsBrAhg1va/kSHALwYH8CJCgBeSA/i0P3T+x7YGoNu7083t7XJzfbvF/nseYI//r28T+K9vlx38V7fLw/Vu+9dn13fLS9cp4ffy9d36yvX98tbru9PblqvX7hL4fzaDfPt7A74lAp8cTETguwYxIahLghgCqAQgZvltzV/N+ceY36f1UNl1lb/E9Sd6y7+N8dneKzvvFR7t/yzwtaIzyBXAjzqAxxDAiAx+KYYA7zME8Ac/7fV/9Ob24vbm9ny9EcDN3XK7hQBIAJv1v7o93V/fnh6ub9eH6xTzP7++O710fXd6+ebu9Jbr7b/709uu79e3J+AXAkguYN0/RwRAvQKibbg1BJWOQZwp2HthCJf+et1+JRTAWL7pfQ/sNr7nuD599m5AJfSsbbcqbxXcO4A5oCt1j9T8TQIoYc2L7QN4nyGAT/nU8z+yxf27A7jL1YDbXflvr2+T/b/ewL9Z/7vl2fXt6dn13en5zQ7+9eWbu2UD/ltv7k9vu3k4vd9y9Z77jQDWnQTKfxgKIBFgGJAbhUTbsJowZDsES6mPXxdWynyo8tFbfjDJx8k8m85TyTyM1ft/FzKYA3oP5M0dPA34PYv/JgH8EieAT/797/21m/Lf3adE4O3mAG53F7Db/5vbZVP+++u79eHmdrHgv1/ecvNweuvt/entG/hv7s9vP59+5tT+804guQAmgVYitKVBnEWIU4jt68PGrw23qt+SegXY0b/JynNZT8X1aOf93x70bZsE3gjoPZC/SQD9rr+ogagk0zj0+IXsA3ifcQCf+MnnX3N3d0oEcJcSgDe7+q+3O/jvNuu/3t/cnZ7d3C278t/cry/fFvA/rG+/fVje/+756YNOFz97fT79NBHARgg2HIhDgdw1OJwjYF8eqgmgB3rM67eIXgO9WHf+19p6SwocpyfrjqBn8EZgfpMAPMij0l4P0DPrflkSwO/5hPf+6vv75ADu7vdqwM3N3cXdzd2m/uvdzd3ycLOp/93p+e39ksD/sLzl9uH0trtnp7ffPjt9wN2z0wdd3b7n5fPpp06JAJgEOBTQYUBT/1IaxAlBJfmH7xDEST6+xIdKz5F8qfKrd/O0WL84gAJg/JeXqdq8An16tdSbBKB7BHp9ALPAf7MKMN8RsHzc7z7/g/cPp5v73QGsexLw9m7J4D/d394vz27u1me3D8tLt/fry3cPy1vunu3gf7+75+sH3L+0/Irbh9c/4Hz6yVMigB4JRKXBEv+rSUL0GnE38Qd7+5Xql7l6GMe3Rt+WnPMKX1Q9+jft6y08gtv//SYBqJzDTKb/KAEcJYJflg7gYz72vb/y4dmm/psLWG5v7k63t3enu9u7Dfynh9v707O7DfwPp5fvHk5vuX++vu3++fL+98/XD3x4efngh5dPv+p8+vFTIgAmAZUP4N6AKP7HdwTYdwNibb/9BFjSdGXum9pbkFulb3G4BbwHuQJ4H/SFJLZ/33cJYFQJeKP6AGbLgL8YCEDF9rPLODcx0vEX0gfw0b/z/MHPn59ubvcQYFP/9fb2frm/vV/v7+5Pz+6fLS/dPZxevn92esv9S6e3Pzw/vf/Dy6e/79nLp7//+VtO/9B68RNXiQCYBEoYsP0bhQB2fkD78RCeAdisPv/mXwx6m7zzoG5ttiU2t/82m95UHoFs/36TAHRD0Wxr8C8VBzAL9veZJOBH/vb3ftBGAPfPLm/v7k63dw+nu7v70/3tw/pw/3B6fv/s9PLDS8tbH146vf3ZS+sHPH/L8sHPX1l/1ctvW37N6fLHb86nHz2dTz8mCGALBdABYGMQTxDCl4Xa2X42wccqz026kcK3hhwEeQTs2eUYy79JAG8SQNSbP0sKf08cwG/7iPMHJAew3jw8XNzd3Z/v7p8tD/fPTs8fXjq9/Oyl5a3PXz693/NX1g986a3Lr3zlbadf/cr7nf7h08WPXJ9PP3w6n34ECOAnIAwoyUDVC8CTgLi5BxW/NOew1iewl/9KLI9Kj0BWoJ4F+psOIIH7zRDAViQUYGfB/j7jAD78w197+7Pny83Ds+X2/tly9/Cw3j97aXn+7KXl5ecvn976/JX1/V552/IrXnnb+g+89f2XX/u2D/z/2zuXnYSBMAqf0YhAW1pKuQVUVDRqCG5MUBN0oRt3bnwMX8c38EmMD+DGxBgX3qKocUc0mk5NkQk/ZWw1bozMgnBpWJ5zvv8yrbfM0QLHIzieiAH4FED7ACL9xS4APQlI7wxM7+4jOvm9pKejObng+1H9K9ErA/jeslDYOrAygH9oADs7PK3piCU1b1wzWEI3mKYZnmFazDZt5KwMypkcqtki6pbzuuTiFhz34HgIGIBIf5r8YtxHEz+I+PLmXb/YP0VOXwK/xW/0e9Rn2XUZzkcRgioBoqlA9QB69ESben+GALa231O67sV0YyRupJA00yMpy2a27aDg5FHJl7xaucKaca1V4LiEi5uuAfgEQPGf1vy0xqcNPXnCy0QcJvZgyn8n9RUBKAKQbQaGj/56kqVPBgqKVzZujBL7nzGAZrOtpczYuGmxhGUzw8myTK6IUmkSi5Uqa05Mt7c4TsFxAY4ruLjr4r8vfj/1hfBF2gu8F3W8OIwzmOJRqR5mDIoABpeJxHz9N++qBKCiHwIDaKy+JWx7LO5kPb1QhDM1g9mFGttYWfP2OY7BcQKOc3Bcd7Df7XT9/VpfHPWlgo8WeVD0UUkvS3tFAIPjyN+Inv5XGcCQGUC9/hwrlQ1tbn602FjH5u7eywHHIVwcgeOsi/v+jN9v6vn1O+AG6vEwUf/kWjDVFQGEpzwdPSoD6J9UfIX2wWWiYS8BPgCAPOYxoDrtqQAAAABJRU5ErkJggg==",e}(),yr=function(){function e(t){this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.roughness=0,this._indiceOfRefraction=e._DefaultIndiceOfRefraction,this.indiceOfRefraction=e._DefaultIndiceOfRefraction,this._texture=null,this.texture=null,this._bumpTexture=null,this.bumpTexture=null,this._isTintEnabled=!1,this.isTintEnabled=!1,this.tintColor=o.e.White(),this.tintColorAtDistance=1,this.tintThickness=1,this._tintTexture=null,this.tintTexture=null,this._internalMarkAllSubMeshesAsTexturesDirty=t}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t,i,n){if(e._areTexturesDirty&&t.texturesEnabled){if(this._texture&&or.a.ClearCoatTextureEnabled&&!this._texture.isReadyOrNotBlocking())return!1;if(i.getCaps().standardDerivatives&&this._bumpTexture&&or.a.ClearCoatBumpTextureEnabled&&!n&&!this._bumpTexture.isReady())return!1;if(this._isTintEnabled&&this._tintTexture&&or.a.ClearCoatTintTextureEnabled&&!this._tintTexture.isReadyOrNotBlocking())return!1}return!0},e.prototype.prepareDefines=function(t,i){this._isEnabled?(t.CLEARCOAT=!0,t._areTexturesDirty&&i.texturesEnabled&&(this._texture&&or.a.ClearCoatTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._texture,t,"CLEARCOAT_TEXTURE"):t.CLEARCOAT_TEXTURE=!1,this._bumpTexture&&or.a.ClearCoatBumpTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._bumpTexture,t,"CLEARCOAT_BUMP"):t.CLEARCOAT_BUMP=!1,t.CLEARCOAT_DEFAULTIOR=this._indiceOfRefraction===e._DefaultIndiceOfRefraction,this._isTintEnabled?(t.CLEARCOAT_TINT=!0,this._tintTexture&&or.a.ClearCoatTintTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._tintTexture,t,"CLEARCOAT_TINT_TEXTURE"):t.CLEARCOAT_TINT_TEXTURE=!1):(t.CLEARCOAT_TINT=!1,t.CLEARCOAT_TINT_TEXTURE=!1))):(t.CLEARCOAT=!1,t.CLEARCOAT_TEXTURE=!1,t.CLEARCOAT_BUMP=!1,t.CLEARCOAT_TINT=!1,t.CLEARCOAT_TINT_TEXTURE=!1)},e.prototype.bindForSubMesh=function(e,t,i,n,r,o,s){if(!e.useUbo||!r||!e.isSync){this._texture&&or.a.ClearCoatTextureEnabled&&(e.updateFloat2("vClearCoatInfos",this._texture.coordinatesIndex,this._texture.level),ir.a.BindTextureMatrix(this._texture,e,"clearCoat")),this._bumpTexture&&i.getCaps().standardDerivatives&&or.a.ClearCoatTextureEnabled&&!n&&(e.updateFloat2("vClearCoatBumpInfos",this._bumpTexture.coordinatesIndex,this._bumpTexture.level),ir.a.BindTextureMatrix(this._bumpTexture,e,"clearCoatBump"),t._mirroredCameraPosition?e.updateFloat2("vClearCoatTangentSpaceParams",o?1:-1,s?1:-1):e.updateFloat2("vClearCoatTangentSpaceParams",o?-1:1,s?-1:1)),this._tintTexture&&or.a.ClearCoatTintTextureEnabled&&(e.updateFloat2("vClearCoatTintInfos",this._tintTexture.coordinatesIndex,this._tintTexture.level),ir.a.BindTextureMatrix(this._tintTexture,e,"clearCoatTint")),e.updateFloat2("vClearCoatParams",this.intensity,this.roughness);var a=1-this._indiceOfRefraction,c=1+this._indiceOfRefraction,l=Math.pow(-a/c,2),u=1/this._indiceOfRefraction;e.updateFloat4("vClearCoatRefractionParams",l,u,a,c),this._isTintEnabled&&(e.updateFloat4("vClearCoatTintParams",this.tintColor.r,this.tintColor.g,this.tintColor.b,Math.max(1e-5,this.tintThickness)),e.updateFloat("clearCoatColorAtDistance",Math.max(1e-5,this.tintColorAtDistance)))}t.texturesEnabled&&(this._texture&&or.a.ClearCoatTextureEnabled&&e.setTexture("clearCoatSampler",this._texture),this._bumpTexture&&i.getCaps().standardDerivatives&&or.a.ClearCoatBumpTextureEnabled&&!n&&e.setTexture("clearCoatBumpSampler",this._bumpTexture),this._isTintEnabled&&this._tintTexture&&or.a.ClearCoatTintTextureEnabled&&e.setTexture("clearCoatTintSampler",this._tintTexture))},e.prototype.hasTexture=function(e){return this._texture===e||(this._bumpTexture===e||this._tintTexture===e)},e.prototype.getActiveTextures=function(e){this._texture&&e.push(this._texture),this._bumpTexture&&e.push(this._bumpTexture),this._tintTexture&&e.push(this._tintTexture)},e.prototype.getAnimatables=function(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._tintTexture&&this._tintTexture.animations&&this._tintTexture.animations.length>0&&e.push(this._tintTexture)},e.prototype.dispose=function(e){e&&(this._texture&&this._texture.dispose(),this._bumpTexture&&this._bumpTexture.dispose(),this._tintTexture&&this._tintTexture.dispose())},e.prototype.getClassName=function(){return"PBRClearCoatConfiguration"},e.AddFallbacks=function(e,t,i){return e.CLEARCOAT_BUMP&&t.addFallback(i++,"CLEARCOAT_BUMP"),e.CLEARCOAT_TINT&&t.addFallback(i++,"CLEARCOAT_TINT"),e.CLEARCOAT&&t.addFallback(i++,"CLEARCOAT"),i},e.AddUniforms=function(e){e.push("vClearCoatTangentSpaceParams","vClearCoatParams","vClearCoatRefractionParams","vClearCoatTintParams","clearCoatColorAtDistance","clearCoatMatrix","clearCoatBumpMatrix","clearCoatTintMatrix","vClearCoatInfos","vClearCoatBumpInfos","vClearCoatTintInfos")},e.AddSamplers=function(e){e.push("clearCoatSampler","clearCoatBumpSampler","clearCoatTintSampler")},e.PrepareUniformBuffer=function(e){e.addUniform("vClearCoatParams",2),e.addUniform("vClearCoatRefractionParams",4),e.addUniform("vClearCoatInfos",2),e.addUniform("clearCoatMatrix",16),e.addUniform("vClearCoatBumpInfos",2),e.addUniform("vClearCoatTangentSpaceParams",2),e.addUniform("clearCoatBumpMatrix",16),e.addUniform("vClearCoatTintParams",4),e.addUniform("clearCoatColorAtDistance",1),e.addUniform("vClearCoatTintInfos",2),e.addUniform("clearCoatTintMatrix",16)},e.prototype.copyTo=function(e){L.a.Clone(function(){return e},this)},e.prototype.serialize=function(){return L.a.Serialize(this)},e.prototype.parse=function(e){var t=this;L.a.Parse(function(){return t},e,null)},e._DefaultIndiceOfRefraction=1.5,l.c([Object(L.c)()],e.prototype,"_isEnabled",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"isEnabled",void 0),l.c([Object(L.c)()],e.prototype,"intensity",void 0),l.c([Object(L.c)()],e.prototype,"roughness",void 0),l.c([Object(L.c)()],e.prototype,"_indiceOfRefraction",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"indiceOfRefraction",void 0),l.c([Object(L.m)()],e.prototype,"_texture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"texture",void 0),l.c([Object(L.m)()],e.prototype,"_bumpTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"bumpTexture",void 0),l.c([Object(L.c)()],e.prototype,"_isTintEnabled",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"isTintEnabled",void 0),l.c([Object(L.e)()],e.prototype,"tintColor",void 0),l.c([Object(L.c)()],e.prototype,"tintColorAtDistance",void 0),l.c([Object(L.c)()],e.prototype,"tintThickness",void 0),l.c([Object(L.m)()],e.prototype,"_tintTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"tintTexture",void 0),e}(),br=function(){function e(e){this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.direction=new o.w(1,0),this._texture=null,this.texture=null,this._internalMarkAllSubMeshesAsTexturesDirty=e}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t){return!(e._areTexturesDirty&&t.texturesEnabled&&this._texture&&or.a.AnisotropicTextureEnabled&&!this._texture.isReadyOrNotBlocking())},e.prototype.prepareDefines=function(e,t,i){this._isEnabled?(e.ANISOTROPIC=this._isEnabled,this._isEnabled&&!t.isVerticesDataPresent(Oi.b.TangentKind)&&(e._needUVs=!0,e.MAINUV1=!0),e._areTexturesDirty&&i.texturesEnabled&&(this._texture&&or.a.AnisotropicTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._texture,e,"ANISOTROPIC_TEXTURE"):e.ANISOTROPIC_TEXTURE=!1)):(e.ANISOTROPIC=!1,e.ANISOTROPIC_TEXTURE=!1)},e.prototype.bindForSubMesh=function(e,t,i){e.useUbo&&i&&e.isSync||(this._texture&&or.a.AnisotropicTextureEnabled&&(e.updateFloat2("vAnisotropyInfos",this._texture.coordinatesIndex,this._texture.level),ir.a.BindTextureMatrix(this._texture,e,"anisotropy")),e.updateFloat3("vAnisotropy",this.direction.x,this.direction.y,this.intensity)),t.texturesEnabled&&this._texture&&or.a.AnisotropicTextureEnabled&&e.setTexture("anisotropySampler",this._texture)},e.prototype.hasTexture=function(e){return this._texture===e},e.prototype.getActiveTextures=function(e){this._texture&&e.push(this._texture)},e.prototype.getAnimatables=function(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture)},e.prototype.dispose=function(e){e&&this._texture&&this._texture.dispose()},e.prototype.getClassName=function(){return"PBRAnisotropicConfiguration"},e.AddFallbacks=function(e,t,i){return e.ANISOTROPIC&&t.addFallback(i++,"ANISOTROPIC"),i},e.AddUniforms=function(e){e.push("vAnisotropy","vAnisotropyInfos","anisotropyMatrix")},e.PrepareUniformBuffer=function(e){e.addUniform("vAnisotropy",3),e.addUniform("vAnisotropyInfos",2),e.addUniform("anisotropyMatrix",16)},e.AddSamplers=function(e){e.push("anisotropySampler")},e.prototype.copyTo=function(e){L.a.Clone(function(){return e},this)},e.prototype.serialize=function(){return L.a.Serialize(this)},e.prototype.parse=function(e){var t=this;L.a.Parse(function(){return t},e,null)},l.c([Object(L.c)()],e.prototype,"_isEnabled",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"isEnabled",void 0),l.c([Object(L.c)()],e.prototype,"intensity",void 0),l.c([Object(L.n)()],e.prototype,"direction",void 0),l.c([Object(L.m)()],e.prototype,"_texture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"texture",void 0),e}(),Tr=function(){function e(t){this._useEnergyConservation=e.DEFAULT_USE_ENERGY_CONSERVATION,this.useEnergyConservation=e.DEFAULT_USE_ENERGY_CONSERVATION,this._useSmithVisibilityHeightCorrelated=e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this.useSmithVisibilityHeightCorrelated=e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this._useSphericalHarmonics=e.DEFAULT_USE_SPHERICAL_HARMONICS,this.useSphericalHarmonics=e.DEFAULT_USE_SPHERICAL_HARMONICS,this._internalMarkAllSubMeshesAsMiscDirty=t}return e.prototype._markAllSubMeshesAsMiscDirty=function(){this._internalMarkAllSubMeshesAsMiscDirty()},e.prototype.prepareDefines=function(e){e.BRDF_V_HEIGHT_CORRELATED=this._useSmithVisibilityHeightCorrelated,e.MS_BRDF_ENERGY_CONSERVATION=this._useEnergyConservation&&this._useSmithVisibilityHeightCorrelated,e.SPHERICAL_HARMONICS=this._useSphericalHarmonics},e.prototype.getClassName=function(){return"PBRBRDFConfiguration"},e.prototype.copyTo=function(e){L.a.Clone(function(){return e},this)},e.prototype.serialize=function(){return L.a.Serialize(this)},e.prototype.parse=function(e){var t=this;L.a.Parse(function(){return t},e,null)},e.DEFAULT_USE_ENERGY_CONSERVATION=!0,e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED=!0,e.DEFAULT_USE_SPHERICAL_HARMONICS=!0,l.c([Object(L.c)()],e.prototype,"_useEnergyConservation",void 0),l.c([Object(L.b)("_markAllSubMeshesAsMiscDirty")],e.prototype,"useEnergyConservation",void 0),l.c([Object(L.c)()],e.prototype,"_useSmithVisibilityHeightCorrelated",void 0),l.c([Object(L.b)("_markAllSubMeshesAsMiscDirty")],e.prototype,"useSmithVisibilityHeightCorrelated",void 0),l.c([Object(L.c)()],e.prototype,"_useSphericalHarmonics",void 0),l.c([Object(L.b)("_markAllSubMeshesAsMiscDirty")],e.prototype,"useSphericalHarmonics",void 0),e}(),Er=function(){function e(e){this._isEnabled=!1,this.isEnabled=!1,this._linkSheenWithAlbedo=!1,this.linkSheenWithAlbedo=!1,this.intensity=1,this.color=o.e.White(),this._texture=null,this.texture=null,this._internalMarkAllSubMeshesAsTexturesDirty=e}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t){return!(e._areTexturesDirty&&t.texturesEnabled&&this._texture&&or.a.SheenTextureEnabled&&!this._texture.isReadyOrNotBlocking())},e.prototype.prepareDefines=function(e,t){this._isEnabled?(e.SHEEN=this._isEnabled,e.SHEEN_LINKWITHALBEDO=this._linkSheenWithAlbedo,e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&or.a.SheenTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._texture,e,"SHEEN_TEXTURE"):e.SHEEN_TEXTURE=!1)):(e.SHEEN=!1,e.SHEEN_TEXTURE=!1,e.SHEEN_LINKWITHALBEDO=!1)},e.prototype.bindForSubMesh=function(e,t,i){e.useUbo&&i&&e.isSync||(this._texture&&or.a.SheenTextureEnabled&&(e.updateFloat2("vSheenInfos",this._texture.coordinatesIndex,this._texture.level),ir.a.BindTextureMatrix(this._texture,e,"sheen")),e.updateFloat4("vSheenColor",this.color.r,this.color.g,this.color.b,this.intensity)),t.texturesEnabled&&this._texture&&or.a.SheenTextureEnabled&&e.setTexture("sheenSampler",this._texture)},e.prototype.hasTexture=function(e){return this._texture===e},e.prototype.getActiveTextures=function(e){this._texture&&e.push(this._texture)},e.prototype.getAnimatables=function(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture)},e.prototype.dispose=function(e){e&&this._texture&&this._texture.dispose()},e.prototype.getClassName=function(){return"PBRSheenConfiguration"},e.AddFallbacks=function(e,t,i){return e.SHEEN&&t.addFallback(i++,"SHEEN"),i},e.AddUniforms=function(e){e.push("vSheenColor","vSheenInfos","sheenMatrix")},e.PrepareUniformBuffer=function(e){e.addUniform("vSheenColor",4),e.addUniform("vSheenInfos",2),e.addUniform("sheenMatrix",16)},e.AddSamplers=function(e){e.push("sheenSampler")},e.prototype.copyTo=function(e){L.a.Clone(function(){return e},this)},e.prototype.serialize=function(){return L.a.Serialize(this)},e.prototype.parse=function(e){var t=this;L.a.Parse(function(){return t},e,null)},l.c([Object(L.c)()],e.prototype,"_isEnabled",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"isEnabled",void 0),l.c([Object(L.c)()],e.prototype,"_linkSheenWithAlbedo",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"linkSheenWithAlbedo",void 0),l.c([Object(L.c)()],e.prototype,"intensity",void 0),l.c([Object(L.e)()],e.prototype,"color",void 0),l.c([Object(L.m)()],e.prototype,"_texture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"texture",void 0),e}(),Ar=function(){function e(e){this._isRefractionEnabled=!1,this.isRefractionEnabled=!1,this._isTranslucencyEnabled=!1,this.isTranslucencyEnabled=!1,this._isScatteringEnabled=!1,this.refractionIntensity=1,this.translucencyIntensity=1,this.scatteringIntensity=1,this._thicknessTexture=null,this.thicknessTexture=null,this._refractionTexture=null,this.refractionTexture=null,this._indexOfRefraction=1,this.indexOfRefraction=1,this._invertRefractionY=!1,this.invertRefractionY=!1,this._linkRefractionWithTransparency=!1,this.linkRefractionWithTransparency=!1,this.minimumThickness=0,this.maximumThickness=1,this.tintColor=o.e.White(),this.tintColorAtDistance=1,this.diffusionDistance=o.e.White(),this._useMaskFromThicknessTexture=!1,this.useMaskFromThicknessTexture=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t){if(e._areTexturesDirty&&t.texturesEnabled){if(this._thicknessTexture&&or.a.ThicknessTextureEnabled&&!this._thicknessTexture.isReadyOrNotBlocking())return!1;var i=this._getRefractionTexture(t);if(i&&or.a.RefractionTextureEnabled&&!i.isReadyOrNotBlocking())return!1}return!0},e.prototype.prepareDefines=function(e,t){if(e._areTexturesDirty&&(e.SUBSURFACE=!1,e.SS_TRANSLUCENCY=this._isTranslucencyEnabled,e.SS_SCATERRING=this._isScatteringEnabled,e.SS_THICKNESSANDMASK_TEXTURE=!1,e.SS_MASK_FROM_THICKNESS_TEXTURE=!1,e.SS_REFRACTION=!1,e.SS_REFRACTIONMAP_3D=!1,e.SS_GAMMAREFRACTION=!1,e.SS_RGBDREFRACTION=!1,e.SS_REFRACTIONMAP_OPPOSITEZ=!1,e.SS_LODINREFRACTIONALPHA=!1,e.SS_LINKREFRACTIONTOTRANSPARENCY=!1,(this._isRefractionEnabled||this._isTranslucencyEnabled||this._isScatteringEnabled)&&(e.SUBSURFACE=!0,e._areTexturesDirty&&t.texturesEnabled&&this._thicknessTexture&&or.a.ThicknessTextureEnabled&&ir.a.PrepareDefinesForMergedUV(this._thicknessTexture,e,"SS_THICKNESSANDMASK_TEXTURE"),e.SS_MASK_FROM_THICKNESS_TEXTURE=this._useMaskFromThicknessTexture),this._isRefractionEnabled&&t.texturesEnabled)){var i=this._getRefractionTexture(t);i&&or.a.RefractionTextureEnabled&&(e.SS_REFRACTION=!0,e.SS_REFRACTIONMAP_3D=i.isCube,e.SS_GAMMAREFRACTION=i.gammaSpace,e.SS_RGBDREFRACTION=i.isRGBD,e.SS_REFRACTIONMAP_OPPOSITEZ=i.invertZ,e.SS_LODINREFRACTIONALPHA=i.lodLevelInAlpha,e.SS_LINKREFRACTIONTOTRANSPARENCY=this._linkRefractionWithTransparency)}},e.prototype.bindForSubMesh=function(e,t,i,n,r){var o=this._getRefractionTexture(t);if(!e.useUbo||!n||!e.isSync){if(this._thicknessTexture&&or.a.ThicknessTextureEnabled&&(e.updateFloat2("vThicknessInfos",this._thicknessTexture.coordinatesIndex,this._thicknessTexture.level),ir.a.BindTextureMatrix(this._thicknessTexture,e,"thickness")),e.updateFloat2("vThicknessParam",this.minimumThickness,this.maximumThickness-this.minimumThickness),o&&or.a.RefractionTextureEnabled){e.updateMatrix("refractionMatrix",o.getReflectionTextureMatrix());var s=1;o.isCube||o.depth&&(s=o.depth),e.updateFloat4("vRefractionInfos",o.level,1/this._indexOfRefraction,s,this._invertRefractionY?-1:1),e.updateFloat3("vRefractionMicrosurfaceInfos",o.getSize().width,o.lodGenerationScale,o.lodGenerationOffset)}e.updateColor3("vDiffusionDistance",this.diffusionDistance),e.updateFloat4("vTintColor",this.tintColor.r,this.tintColor.g,this.tintColor.b,this.tintColorAtDistance),e.updateFloat3("vSubSurfaceIntensity",this.refractionIntensity,this.translucencyIntensity,this.scatteringIntensity)}t.texturesEnabled&&(this._thicknessTexture&&or.a.ThicknessTextureEnabled&&e.setTexture("thicknessSampler",this._thicknessTexture),o&&or.a.RefractionTextureEnabled&&(r?e.setTexture("refractionSampler",o):(e.setTexture("refractionSampler",o._lodTextureMid||o),e.setTexture("refractionSamplerLow",o._lodTextureLow||o),e.setTexture("refractionSamplerHigh",o._lodTextureHigh||o))))},e.prototype.unbind=function(e){return!(!this._refractionTexture||!this._refractionTexture.isRenderTarget)&&(e.setTexture("refractionSampler",null),!0)},e.prototype._getRefractionTexture=function(e){return this._refractionTexture?this._refractionTexture:this._isRefractionEnabled?e.environmentTexture:null},Object.defineProperty(e.prototype,"disableAlphaBlending",{get:function(){return this.isRefractionEnabled&&this._linkRefractionWithTransparency},enumerable:!0,configurable:!0}),e.prototype.fillRenderTargetTextures=function(e){or.a.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget&&e.push(this._refractionTexture)},e.prototype.hasTexture=function(e){return this._thicknessTexture===e||this._refractionTexture===e},e.prototype.hasRenderTargetTextures=function(){return!!(or.a.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget)},e.prototype.getActiveTextures=function(e){this._thicknessTexture&&e.push(this._thicknessTexture),this._refractionTexture&&e.push(this._refractionTexture)},e.prototype.getAnimatables=function(e){this._thicknessTexture&&this._thicknessTexture.animations&&this._thicknessTexture.animations.length>0&&e.push(this._thicknessTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture)},e.prototype.dispose=function(e){e&&(this._thicknessTexture&&this._thicknessTexture.dispose(),this._refractionTexture&&this._refractionTexture.dispose())},e.prototype.getClassName=function(){return"PBRSubSurfaceConfiguration"},e.AddFallbacks=function(e,t,i){return e.SS_SCATERRING&&t.addFallback(i++,"SS_SCATERRING"),e.SS_TRANSLUCENCY&&t.addFallback(i++,"SS_TRANSLUCENCY"),i},e.AddUniforms=function(e){e.push("vDiffusionDistance","vTintColor","vSubSurfaceIntensity","vRefractionMicrosurfaceInfos","vRefractionInfos","vThicknessInfos","vThicknessParam","refractionMatrix","thicknessMatrix")},e.AddSamplers=function(e){e.push("thicknessSampler","refractionSampler","refractionSamplerLow","refractionSamplerHigh")},e.PrepareUniformBuffer=function(e){e.addUniform("vRefractionMicrosurfaceInfos",3),e.addUniform("vRefractionInfos",4),e.addUniform("refractionMatrix",16),e.addUniform("vThicknessInfos",2),e.addUniform("thicknessMatrix",16),e.addUniform("vThicknessParam",2),e.addUniform("vDiffusionDistance",3),e.addUniform("vTintColor",4),e.addUniform("vSubSurfaceIntensity",3)},e.prototype.copyTo=function(e){L.a.Clone(function(){return e},this)},e.prototype.serialize=function(){return L.a.Serialize(this)},e.prototype.parse=function(e){var t=this;L.a.Parse(function(){return t},e,null)},l.c([Object(L.c)()],e.prototype,"_isRefractionEnabled",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"isRefractionEnabled",void 0),l.c([Object(L.c)()],e.prototype,"_isTranslucencyEnabled",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"isTranslucencyEnabled",void 0),l.c([Object(L.c)()],e.prototype,"_isScatteringEnabled",void 0),l.c([Object(L.c)()],e.prototype,"refractionIntensity",void 0),l.c([Object(L.c)()],e.prototype,"translucencyIntensity",void 0),l.c([Object(L.c)()],e.prototype,"scatteringIntensity",void 0),l.c([Object(L.m)()],e.prototype,"_thicknessTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"thicknessTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"refractionTexture",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"indexOfRefraction",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"invertRefractionY",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"linkRefractionWithTransparency",void 0),l.c([Object(L.c)()],e.prototype,"minimumThickness",void 0),l.c([Object(L.c)()],e.prototype,"maximumThickness",void 0),l.c([Object(L.e)()],e.prototype,"tintColor",void 0),l.c([Object(L.c)()],e.prototype,"tintColorAtDistance",void 0),l.c([Object(L.e)()],e.prototype,"diffusionDistance",void 0),l.c([Object(L.c)()],e.prototype,"_useMaskFromThicknessTexture",void 0),l.c([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],e.prototype,"useMaskFromThicknessTexture",void 0),e}(),xr="uniform vec3 vReflectionColor;\nuniform vec4 vAlbedoColor;\n\nuniform vec4 vLightingIntensity;\nuniform vec4 vReflectivityColor;\nuniform vec3 vEmissiveColor;\nuniform float visibility;\n\n#ifdef ALBEDO\nuniform vec2 vAlbedoInfos;\n#endif\n#ifdef AMBIENT\nuniform vec4 vAmbientInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#ifdef OPACITY\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef REFLECTIVITY\nuniform vec3 vReflectivityInfos;\n#endif\n#ifdef MICROSURFACEMAP\nuniform vec2 vMicroSurfaceSamplerInfos;\n#endif\n\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION)\nuniform mat4 view;\n#endif\n\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\n#endif\n#endif\n\n#ifdef CLEARCOAT\nuniform vec2 vClearCoatParams;\nuniform vec4 vClearCoatRefractionParams;\n#ifdef CLEARCOAT_TEXTURE\nuniform vec2 vClearCoatInfos;\nuniform mat4 clearCoatMatrix;\n#endif\n#ifdef CLEARCOAT_BUMP\nuniform vec2 vClearCoatBumpInfos;\nuniform vec2 vClearCoatTangentSpaceParams;\nuniform mat4 clearCoatBumpMatrix;\n#endif\n#ifdef CLEARCOAT_TINT\nuniform vec4 vClearCoatTintParams;\nuniform float clearCoatColorAtDistance;\n#ifdef CLEARCOAT_TINT_TEXTURE\nuniform vec2 vClearCoatTintInfos;\nuniform mat4 clearCoatTintMatrix;\n#endif\n#endif\n#endif\n\n#ifdef ANISOTROPIC\nuniform vec3 vAnisotropy;\n#ifdef ANISOTROPIC_TEXTURE\nuniform vec2 vAnisotropyInfos;\nuniform mat4 anisotropyMatrix;\n#endif\n#endif\n\n#ifdef SHEEN\nuniform vec4 vSheenColor;\n#ifdef SHEEN_TEXTURE\nuniform vec2 vSheenInfos;\nuniform mat4 sheenMatrix;\n#endif\n#endif\n\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\nuniform vec3 vRefractionMicrosurfaceInfos;\nuniform vec4 vRefractionInfos;\nuniform mat4 refractionMatrix;\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nuniform vec2 vThicknessInfos;\nuniform mat4 thicknessMatrix;;\n#endif\nuniform vec2 vThicknessParam;\nuniform vec3 vDiffusionDistance;\nuniform vec4 vTintColor;\nuniform vec3 vSubSurfaceIntensity;\n#endif";zt.a.IncludesShadersStore.pbrFragmentDeclaration=xr;var Rr="layout(std140,column_major) uniform;\nuniform Material\n{\nuniform vec2 vAlbedoInfos;\nuniform vec4 vAmbientInfos;\nuniform vec2 vOpacityInfos;\nuniform vec2 vEmissiveInfos;\nuniform vec2 vLightmapInfos;\nuniform vec3 vReflectivityInfos;\nuniform vec2 vMicroSurfaceSamplerInfos;\nuniform vec2 vReflectionInfos;\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\nuniform vec3 vBumpInfos;\nuniform mat4 albedoMatrix;\nuniform mat4 ambientMatrix;\nuniform mat4 opacityMatrix;\nuniform mat4 emissiveMatrix;\nuniform mat4 lightmapMatrix;\nuniform mat4 reflectivityMatrix;\nuniform mat4 microSurfaceSamplerMatrix;\nuniform mat4 bumpMatrix;\nuniform vec2 vTangentSpaceParams;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionColor;\nuniform vec4 vAlbedoColor;\nuniform vec4 vLightingIntensity;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float pointSize;\nuniform vec4 vReflectivityColor;\nuniform vec3 vEmissiveColor;\nuniform float visibility;\nuniform vec2 vClearCoatParams;\nuniform vec4 vClearCoatRefractionParams;\nuniform vec2 vClearCoatInfos;\nuniform mat4 clearCoatMatrix;\nuniform vec2 vClearCoatBumpInfos;\nuniform vec2 vClearCoatTangentSpaceParams;\nuniform mat4 clearCoatBumpMatrix;\nuniform vec4 vClearCoatTintParams;\nuniform float clearCoatColorAtDistance;\nuniform vec2 vClearCoatTintInfos;\nuniform mat4 clearCoatTintMatrix;\nuniform vec3 vAnisotropy;\nuniform vec2 vAnisotropyInfos;\nuniform mat4 anisotropyMatrix;\nuniform vec4 vSheenColor;\nuniform vec2 vSheenInfos;\nuniform mat4 sheenMatrix;\nuniform vec3 vRefractionMicrosurfaceInfos;\nuniform vec4 vRefractionInfos;\nuniform mat4 refractionMatrix;\nuniform vec2 vThicknessInfos;\nuniform mat4 thicknessMatrix;\nuniform vec2 vThicknessParam;\nuniform vec3 vDiffusionDistance;\nuniform vec4 vTintColor;\nuniform vec3 vSubSurfaceIntensity;\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};";zt.a.IncludesShadersStore.pbrUboDeclaration=Rr;var Pr="uniform vec4 vEyePosition;\nuniform vec3 vAmbientColor;\nuniform vec4 vCameraInfos;\n\nvarying vec3 vPositionW;\n#if DEBUGMODE>0\nuniform vec2 vDebugMode;\nvarying vec4 vClipSpacePosition;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vec3 vEnvironmentIrradiance;\n#endif\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif";zt.a.IncludesShadersStore.pbrFragmentExtraDeclaration=Pr;var Sr="#ifdef ALBEDO\n#if ALBEDODIRECTUV == 1\n#define vAlbedoUV vMainUV1\n#elif ALBEDODIRECTUV == 2\n#define vAlbedoUV vMainUV2\n#else\nvarying vec2 vAlbedoUV;\n#endif\nuniform sampler2D albedoSampler;\n#endif\n#ifdef AMBIENT\n#if AMBIENTDIRECTUV == 1\n#define vAmbientUV vMainUV1\n#elif AMBIENTDIRECTUV == 2\n#define vAmbientUV vMainUV2\n#else\nvarying vec2 vAmbientUV;\n#endif\nuniform sampler2D ambientSampler;\n#endif\n#ifdef OPACITY\n#if OPACITYDIRECTUV == 1\n#define vOpacityUV vMainUV1\n#elif OPACITYDIRECTUV == 2\n#define vOpacityUV vMainUV2\n#else\nvarying vec2 vOpacityUV;\n#endif\nuniform sampler2D opacitySampler;\n#endif\n#ifdef EMISSIVE\n#if EMISSIVEDIRECTUV == 1\n#define vEmissiveUV vMainUV1\n#elif EMISSIVEDIRECTUV == 2\n#define vEmissiveUV vMainUV2\n#else\nvarying vec2 vEmissiveUV;\n#endif\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef LIGHTMAP\n#if LIGHTMAPDIRECTUV == 1\n#define vLightmapUV vMainUV1\n#elif LIGHTMAPDIRECTUV == 2\n#define vLightmapUV vMainUV2\n#else\nvarying vec2 vLightmapUV;\n#endif\nuniform sampler2D lightmapSampler;\n#endif\n#ifdef REFLECTIVITY\n#if REFLECTIVITYDIRECTUV == 1\n#define vReflectivityUV vMainUV1\n#elif REFLECTIVITYDIRECTUV == 2\n#define vReflectivityUV vMainUV2\n#else\nvarying vec2 vReflectivityUV;\n#endif\nuniform sampler2D reflectivitySampler;\n#endif\n#ifdef MICROSURFACEMAP\n#if MICROSURFACEMAPDIRECTUV == 1\n#define vMicroSurfaceSamplerUV vMainUV1\n#elif MICROSURFACEMAPDIRECTUV == 2\n#define vMicroSurfaceSamplerUV vMainUV2\n#else\nvarying vec2 vMicroSurfaceSamplerUV;\n#endif\nuniform sampler2D microSurfaceSampler;\n#endif\n#ifdef CLEARCOAT\n#ifdef CLEARCOAT_TEXTURE\n#if CLEARCOAT_TEXTUREDIRECTUV == 1\n#define vClearCoatUV vMainUV1\n#elif CLEARCOAT_TEXTUREDIRECTUV == 2\n#define vClearCoatUV vMainUV2\n#else\nvarying vec2 vClearCoatUV;\n#endif\nuniform sampler2D clearCoatSampler;\n#endif\n#ifdef CLEARCOAT_BUMP\n#if CLEARCOAT_BUMPDIRECTUV == 1\n#define vClearCoatBumpUV vMainUV1\n#elif CLEARCOAT_BUMPDIRECTUV == 2\n#define vClearCoatBumpUV vMainUV2\n#else\nvarying vec2 vClearCoatBumpUV;\n#endif\nuniform sampler2D clearCoatBumpSampler;\n#endif\n#ifdef CLEARCOAT_TINT_TEXTURE\n#if CLEARCOAT_TINT_TEXTUREDIRECTUV == 1\n#define vClearCoatTintUV vMainUV1\n#elif CLEARCOAT_TINT_TEXTUREDIRECTUV == 2\n#define vClearCoatTintUV vMainUV2\n#else\nvarying vec2 vClearCoatTintUV;\n#endif\nuniform sampler2D clearCoatTintSampler;\n#endif\n#endif\n#ifdef SHEEN\n#ifdef SHEEN_TEXTURE\n#if SHEEN_TEXTUREDIRECTUV == 1\n#define vSheenUV vMainUV1\n#elif SHEEN_TEXTUREDIRECTUV == 2\n#define vSheenUV vMainUV2\n#else\nvarying vec2 vSheenUV;\n#endif\nuniform sampler2D sheenSampler;\n#endif\n#endif\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_TEXTURE\n#if ANISOTROPIC_TEXTUREDIRECTUV == 1\n#define vAnisotropyUV vMainUV1\n#elif ANISOTROPIC_TEXTUREDIRECTUV == 2\n#define vAnisotropyUV vMainUV2\n#else\nvarying vec2 vAnisotropyUV;\n#endif\nuniform sampler2D anisotropySampler;\n#endif\n#endif\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#endif\n#ifdef ENVIRONMENTBRDF\nuniform sampler2D environmentBrdfSampler;\n#endif\n\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\n#ifdef SS_REFRACTIONMAP_3D\n#define sampleRefraction(s,c) textureCube(s,c)\nuniform samplerCube refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;\nuniform samplerCube refractionSamplerHigh;\n#endif\n#else\n#define sampleRefraction(s,c) texture2D(s,c)\nuniform sampler2D refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;\nuniform samplerCube refractionSamplerHigh;\n#endif\n#endif\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\n#if SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 1\n#define vThicknessUV vMainUV1\n#elif SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 2\n#define vThicknessUV vMainUV2\n#else\nvarying vec2 vThicknessUV;\n#endif\nuniform sampler2D thicknessSampler;\n#endif\n#endif";zt.a.IncludesShadersStore.pbrFragmentSamplersDeclaration=Sr;i(88);var Cr="\n#define RECIPROCAL_PI2 0.15915494\n#define RECIPROCAL_PI 0.31830988618\n\n#define MINIMUMVARIANCE 0.0005\nfloat convertRoughnessToAverageSlope(float roughness)\n{\n\nreturn square(roughness)+MINIMUMVARIANCE;\n}\nfloat fresnelGrazingReflectance(float reflectance0) {\n\n\nfloat reflectance90=saturate(reflectance0*25.0);\nreturn reflectance90;\n}\nvec2 getAARoughnessFactors(vec3 normalVector) {\n#ifdef SPECULARAA\nvec3 nDfdx=dFdx(normalVector.xyz);\nvec3 nDfdy=dFdy(normalVector.xyz);\nfloat slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));\n\nfloat geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);\n\nfloat geometricAlphaGFactor=sqrt(slopeSquare);\n\ngeometricAlphaGFactor*=0.75;\nreturn vec2(geometricRoughnessFactor,geometricAlphaGFactor);\n#else\nreturn vec2(0.);\n#endif\n}\n#ifdef ANISOTROPIC\n\n\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {\nfloat alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);\nfloat alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);\nreturn vec2(alphaT,alphaB);\n}\n\n\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy) {\nvec3 anisotropicFrameDirection=anisotropy>=0.0 ? B : T;\nvec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);\nvec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);\nvec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));\nreturn anisotropicNormal;\n\n}\n#endif\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\n\n\n\nvec3 cocaLambert(vec3 alpha,float distance) {\nreturn exp(-alpha*distance);\n}\n\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {\nreturn cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));\n}\n\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {\nreturn -log(color)/distance;\n}\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\nvec3 clearCoatAbsorption=mix(vec3(1.0),\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\nclearCoatIntensity);\nreturn clearCoatAbsorption;\n}\n#endif\n\n\n\n\n#ifdef MICROSURFACEAUTOMATIC\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\n{\nconst float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;\nfloat reflectivityLuminance=getLuminance(reflectivityColor);\nfloat reflectivityLuma=sqrt(reflectivityLuminance);\nmicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;\nreturn microSurface;\n}\n#endif";zt.a.IncludesShadersStore.pbrHelperFunctions=Cr;var Mr="#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nuniform vec3 vSphericalL00;\nuniform vec3 vSphericalL1_1;\nuniform vec3 vSphericalL10;\nuniform vec3 vSphericalL11;\nuniform vec3 vSphericalL2_2;\nuniform vec3 vSphericalL2_1;\nuniform vec3 vSphericalL20;\nuniform vec3 vSphericalL21;\nuniform vec3 vSphericalL22;\n\n\n\n\n\n\n\nvec3 computeEnvironmentIrradiance(vec3 normal) {\nreturn vSphericalL00\n+vSphericalL1_1*(normal.y)\n+vSphericalL10*(normal.z)\n+vSphericalL11*(normal.x)\n+vSphericalL2_2*(normal.y*normal.x)\n+vSphericalL2_1*(normal.y*normal.z)\n+vSphericalL20*((3.0*normal.z*normal.z)-1.0)\n+vSphericalL21*(normal.z*normal.x)\n+vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));\n}\n#else\nuniform vec3 vSphericalX;\nuniform vec3 vSphericalY;\nuniform vec3 vSphericalZ;\nuniform vec3 vSphericalXX_ZZ;\nuniform vec3 vSphericalYY_ZZ;\nuniform vec3 vSphericalZZ;\nuniform vec3 vSphericalXY;\nuniform vec3 vSphericalYZ;\nuniform vec3 vSphericalZX;\n\nvec3 computeEnvironmentIrradiance(vec3 normal) {\n\n\n\n\n\n\n\n\n\nfloat Nx=normal.x;\nfloat Ny=normal.y;\nfloat Nz=normal.z;\nvec3 C1=vSphericalZZ.rgb;\nvec3 Cx=vSphericalX.rgb;\nvec3 Cy=vSphericalY.rgb;\nvec3 Cz=vSphericalZ.rgb;\nvec3 Cxx_zz=vSphericalXX_ZZ.rgb;\nvec3 Cyy_zz=vSphericalYY_ZZ.rgb;\nvec3 Cxy=vSphericalXY.rgb;\nvec3 Cyz=vSphericalYZ.rgb;\nvec3 Czx=vSphericalZX.rgb;\nvec3 a1=Cyy_zz*Ny+Cy;\nvec3 a2=Cyz*Nz+a1;\nvec3 b1=Czx*Nz+Cx;\nvec3 b2=Cxy*Ny+b1;\nvec3 b3=Cxx_zz*Nx+b2;\nvec3 t1=Cz*Nz+C1;\nvec3 t2=a2*Ny+t1;\nvec3 t3=b3*Nx+t2;\nreturn t3;\n}\n#endif\n#endif";zt.a.IncludesShadersStore.harmonicsFunctions=Mr;var Or="\nstruct preLightingInfo\n{\n\nvec3 lightOffset;\nfloat lightDistanceSquared;\nfloat lightDistance;\n\nfloat attenuation;\n\nvec3 L;\nvec3 H;\nfloat NdotV;\nfloat NdotLUnclamped;\nfloat NdotL;\nfloat VdotH;\nfloat roughness;\n};\npreLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\nresult.lightOffset=lightData.xyz-vPositionW;\nresult.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);\n\nresult.lightDistance=sqrt(result.lightDistanceSquared);\n\nresult.L=normalize(result.lightOffset);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\nresult.NdotLUnclamped=dot(N,result.L);\nresult.NdotL=saturateEps(result.NdotLUnclamped);\nreturn result;\n}\npreLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\nresult.lightDistance=length(-lightData.xyz);\n\nresult.L=normalize(-lightData.xyz);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\nresult.NdotLUnclamped=dot(N,result.L);\nresult.NdotL=saturateEps(result.NdotLUnclamped);\nreturn result;\n}\npreLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\n\nresult.NdotL=dot(N,lightData.xyz)*0.5+0.5;\nresult.NdotL=saturateEps(result.NdotL);\nresult.NdotLUnclamped=result.NdotL;\n#ifdef SPECULARTERM\nresult.L=normalize(lightData.xyz);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\n#endif\nreturn result;\n}";zt.a.IncludesShadersStore.pbrDirectLightingSetupFunctions=Or;var Ir="float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)\n{\nreturn max(0.,1.0-length(lightOffset)/range);\n}\nfloat computeDistanceLightFalloff_Physical(float lightDistanceSquared)\n{\nreturn 1.0/maxEps(lightDistanceSquared);\n}\nfloat computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange)\n{\nfloat lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);\nfloat factor=lightDistanceSquared*inverseSquaredRange;\nfloat attenuation=saturate(1.0-factor*factor);\nattenuation*=attenuation;\n\nlightDistanceFalloff*=attenuation;\nreturn lightDistanceFalloff;\n}\nfloat computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDistanceLightFalloff_Physical(lightDistanceSquared);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\n#else\nreturn computeDistanceLightFalloff_Standard(lightOffset,range);\n#endif\n}\nfloat computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent)\n{\nfloat falloff=0.0;\nfloat cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));\nif (cosAngle>=cosHalfAngle)\n{\nfalloff=max(0.,pow(cosAngle,exponent));\n}\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle)\n{\nconst float kMinusLog2ConeAngleIntensityRatio=6.64385618977;\n\n\n\n\n\nfloat concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);\n\n\nvec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);\nfloat falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset)\n{\n\n\n\nfloat cd=dot(-lightDirection,directionToLightCenterW);\nfloat falloff=saturate(cd*lightAngleScale+lightAngleOffset);\n\nfalloff*=falloff;\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\n#else\nreturn computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\n#endif\n}";zt.a.IncludesShadersStore.pbrDirectLightingFalloffFunctions=Ir;var Dr="\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\n\n\n\n\n#ifdef MS_BRDF_ENERGY_CONSERVATION\n\n\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\nreturn 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\n}\n#endif\n#ifdef ENVIRONMENTBRDF\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness,sampler2D brdfSampler) {\n\nvec2 UV=vec2(NdotV,perceptualRoughness);\n\nvec4 brdfLookup=texture2D(brdfSampler,UV);\n#ifdef ENVIRONMENTBRDF_RGBD\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\n#endif\nreturn brdfLookup.rgb;\n}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\n#endif\nreturn reflectance;\n}\n#endif\n#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{\n\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\n}\n#endif\n#if defined(SHEEN) && defined(REFLECTION)\n\nvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {\nvec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\nreturn sheenEnvironmentReflectance;\n}\n#endif\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\n{\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\n}\nfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\n{\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\n}\n#ifdef CLEARCOAT\n\n\n\n\n\nvec3 getR0RemappedForClearCoat(vec3 f0) {\n#ifdef CLEARCOAT_DEFAULTIOR\n#ifdef MOBILE\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\n#else\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\n#endif\n#else\nvec3 s=sqrt(f0);\nvec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\nreturn t*t;\n#endif\n}\n#endif\n\n\n\n\n\n\nfloat normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)\n{\n\n\n\nfloat a2=square(alphaG);\nfloat d=NdotH*NdotH*(a2-1.0)+1.0;\nreturn a2/(PI*d*d);\n}\n#ifdef SHEEN\n\nfloat normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)\n{\nfloat invR=1./alphaG;\nfloat cos2h=NdotH*NdotH;\nfloat sin2h=1.-cos2h;\nreturn (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\n}\n#endif\n#ifdef ANISOTROPIC\n\n\nfloat normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {\nfloat a2=alphaTB.x*alphaTB.y;\nvec3 v=vec3(alphaTB.y*TdotH,alphaTB.x*BdotH,a2*NdotH);\nfloat v2=dot(v,v);\nfloat w2=a2/v2;\nreturn a2*w2*w2*RECIPROCAL_PI;\n}\n#endif\n\n\n\n\n#ifdef BRDF_V_HEIGHT_CORRELATED\n\n\n\nfloat smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {\n#ifdef MOBILE\n\nfloat GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\nfloat GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\nreturn 0.5/(GGXV+GGXL);\n#else\nfloat a2=alphaG*alphaG;\nfloat GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\nfloat GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\nreturn 0.5/(GGXV+GGXL);\n#endif\n}\n#else\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfloat smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)\n{\n#ifdef MOBILE\n\nreturn 1.0/(dot+alphaG+(1.0-alphaG)*dot ));\n#else\nfloat alphaSquared=alphaG*alphaG;\nreturn 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\n#endif\n}\nfloat smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)\n{\nfloat visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\n\nreturn visibility;\n}\n#endif\n#ifdef ANISOTROPIC\n\n\nfloat smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {\nfloat lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\nfloat lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\nfloat v=0.5/(lambdaV+lambdaL);\nreturn v;\n}\n#endif\n#ifdef CLEARCOAT\nfloat visibility_Kelemen(float VdotH) {\n\n\n\nreturn 0.25/(VdotH*VdotH);\n}\n#endif\n#ifdef SHEEN\n\n\n\nfloat visibility_Ashikhmin(float NdotL,float NdotV)\n{\nreturn 1./(4.*(NdotL+NdotV-NdotL*NdotV));\n}\n#endif\n\n\n\n\n\n\n\nfloat diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {\n\n\nfloat diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\nfloat diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\nfloat diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\nfloat fresnel =\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\nreturn fresnel/PI;\n}\n#ifdef SS_TRANSLUCENCY\n\n\nvec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {\nvec3 S=1./maxEps(diffusionDistance);\nvec3 temp=exp((-0.333333333*thickness)*S);\nreturn tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\n}\n\n\nfloat computeWrappedDiffuseNdotL(float NdotL,float w) {\nfloat t=1.0+w;\nfloat invt2=1.0/square(t);\nreturn saturate((NdotL+w)*invt2);\n}\n#endif\n";zt.a.IncludesShadersStore.pbrBRDFFunctions=Dr;var Lr="#define CLEARCOATREFLECTANCE90 1.0\n\nstruct lightingInfo\n{\nvec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef CLEARCOAT\n\n\nvec4 clearCoat;\n#endif\n#ifdef SHEEN\nvec3 sheen;\n#endif\n};\n\nfloat adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\n\nfloat lightRoughness=lightRadius/lightDistance;\n\nfloat totalRoughness=saturate(lightRoughness+roughness);\nreturn totalRoughness;\n#else\nreturn roughness;\n#endif\n}\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {\nreturn mix(groundColor,lightColor,info.NdotL);\n}\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {\nfloat diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);\nreturn diffuseTerm*info.attenuation*info.NdotL*lightColor;\n}\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\nstrq/=strq.w;\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\nreturn toLinearSpace(textureColor);\n}\n#ifdef SS_TRANSLUCENCY\nvec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {\nfloat NdotL=absEps(info.NdotLUnclamped);\n\nfloat wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);\n\nfloat trAdapt=step(0.,info.NdotLUnclamped);\nvec3 transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\nfloat diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\nreturn diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;\n}\n#endif\n#ifdef SPECULARTERM\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat visibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\n#else\nfloat visibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\n#endif\nvec3 specTerm=fresnel*distribution*visibility;\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n#ifdef ANISOTROPIC\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat TdotH=dot(T,info.H);\nfloat BdotH=dot(B,info.H);\nfloat TdotV=dot(T,V);\nfloat BdotV=dot(B,V);\nfloat TdotL=dot(T,info.L);\nfloat BdotL=dot(B,info.L);\nfloat alphaG=convertRoughnessToAverageSlope(info.roughness);\nvec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);\nalphaTB=max(alphaTB,square(geometricRoughnessFactor));\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);\nfloat visibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);\nvec3 specTerm=fresnel*distribution*visibility;\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n#ifdef CLEARCOAT\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {\nfloat NccdotL=saturateEps(dot(Ncc,info.L));\nfloat NccdotH=saturateEps(dot(Ncc,info.H));\nfloat clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\nfloat fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\nfresnel*=clearCoatIntensity;\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);\nfloat visibility=visibility_Kelemen(info.VdotH);\nfloat clearCoatTerm=fresnel*distribution*visibility;\nreturn vec4(\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\n1.0-fresnel\n);\n}\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\nvec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);\nfloat NdotLRefract=saturateEps(dot(Ncc,LRefract));\nvec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);\nreturn absorption;\n}\n#endif\n#ifdef SHEEN\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\n\n\nvec3 fresnel=reflectance0;\nfloat distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);\nfloat visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);\nvec3 sheenTerm=fresnel*distribution*visibility;\nreturn sheenTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n";zt.a.IncludesShadersStore.pbrDirectLightingFunctions=Lr;var wr="#if defined(REFLECTION) || defined(SS_REFRACTION)\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {\nfloat microsurfaceAverageSlopeTexels=microsurfaceAverageSlope*cubeMapDimensionPixels;\nfloat lod=log2(microsurfaceAverageSlopeTexels);\nreturn lod;\n}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)\nfloat environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {\n\n\nfloat temp=NdotVUnclamped+ambientOcclusion;\nreturn saturate(square(temp)-1.0+ambientOcclusion);\n}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)\nfloat environmentHorizonOcclusion(vec3 view,vec3 normal) {\n\nvec3 reflection=reflect(view,normal);\nfloat temp=saturate(1.0+1.1*dot(reflection,normal));\nreturn square(temp);\n}\n#endif\n\n\n\n\n#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)\n\n\n#define UNPACK_LOD(x) (1.0-x)*255.0\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {\nfloat microsurfaceAverageSlope=alphaG;\n\n\n\n\n\n\nmicrosurfaceAverageSlope*=sqrt(abs(NdotV));\nreturn getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);\n}\n#endif";zt.a.IncludesShadersStore.pbrIBLFunctions=wr;i(121),i(122),i(123),i(115);var Fr="#if DEBUGMODE>0\nif (vClipSpacePosition.x/vClipSpacePosition.w=1)&&e.prototype.needAlphaBlendingForMesh.call(this,t)},t.prototype.needAlphaTesting=function(){return!!this._forceAlphaTest||!this.subSurface.disableAlphaBlending&&(null!=this._albedoTexture&&this._albedoTexture.hasAlpha&&(null==this._transparencyMode||this._transparencyMode===t.PBRMATERIAL_ALPHATEST))},t.prototype._shouldUseAlphaFromAlbedoTexture=function(){return null!=this._albedoTexture&&this._albedoTexture.hasAlpha&&this._useAlphaFromAlbedoTexture&&this._transparencyMode!==t.PBRMATERIAL_OPAQUE},t.prototype.getAlphaTestTexture=function(){return this._albedoTexture},t.prototype.isReadyForSubMesh=function(e,t,i){if(t.effect&&this.isFrozen&&this._wasPreviouslyReady)return!0;t._materialDefines||(t._materialDefines=new Vr);var n=t._materialDefines;if(!this.checkReadyOnEveryCall&&t.effect&&n._renderId===this.getScene().getRenderId())return!0;var r=this.getScene(),o=r.getEngine();if(n._areTexturesDirty&&r.texturesEnabled){if(this._albedoTexture&&or.a.DiffuseTextureEnabled&&!this._albedoTexture.isReadyOrNotBlocking())return!1;if(this._ambientTexture&&or.a.AmbientTextureEnabled&&!this._ambientTexture.isReadyOrNotBlocking())return!1;if(this._opacityTexture&&or.a.OpacityTextureEnabled&&!this._opacityTexture.isReadyOrNotBlocking())return!1;var s=this._getReflectionTexture();if(s&&or.a.ReflectionTextureEnabled&&!s.isReadyOrNotBlocking())return!1;if(this._lightmapTexture&&or.a.LightmapTextureEnabled&&!this._lightmapTexture.isReadyOrNotBlocking())return!1;if(this._emissiveTexture&&or.a.EmissiveTextureEnabled&&!this._emissiveTexture.isReadyOrNotBlocking())return!1;if(or.a.SpecularTextureEnabled){if(this._metallicTexture){if(!this._metallicTexture.isReadyOrNotBlocking())return!1}else if(this._reflectivityTexture&&!this._reflectivityTexture.isReadyOrNotBlocking())return!1;if(this._microSurfaceTexture&&!this._microSurfaceTexture.isReadyOrNotBlocking())return!1}if(o.getCaps().standardDerivatives&&this._bumpTexture&&or.a.BumpTextureEnabled&&!this._disableBumpMap&&!this._bumpTexture.isReady())return!1;if(this._environmentBRDFTexture&&or.a.ReflectionTextureEnabled&&!this._environmentBRDFTexture.isReady())return!1}if(!(this.subSurface.isReadyForSubMesh(n,r)&&this.clearCoat.isReadyForSubMesh(n,r,o,this._disableBumpMap)&&this.sheen.isReadyForSubMesh(n,r)&&this.anisotropy.isReadyForSubMesh(n,r)))return!1;if(n._areImageProcessingDirty&&this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady())return!1;o.getCaps().standardDerivatives||e.isVerticesDataPresent(Oi.b.NormalKind)||(e.createNormals(!0),p.a.Warn("PBRMaterial: Normals have been created for the mesh: "+e.name));var a=t.effect,c=this._prepareEffect(e,n,this.onCompiled,this.onError,i);return c&&(this.allowShaderHotSwapping&&a&&!c.isReady()?(c=a,n.markAsUnprocessed()):(r.resetCachedMaterial(),t.setEffect(c,n),this.buildUniformLayout())),!(!t.effect||!t.effect.isReady())&&(n._renderId=r.getRenderId(),this._wasPreviouslyReady=!0,!0)},t.prototype.isMetallicWorkflow=function(){return!(null==this._metallic&&null==this._roughness&&!this._metallicTexture)},t.prototype._prepareEffect=function(e,t,i,n,r,o){if(void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=null),void 0===o&&(o=null),this._prepareDefines(e,t,r,o),!t.isDirty)return null;t.markAsProcessed();var s=this.getScene().getEngine(),a=new zt.c,c=0;t.USESPHERICALINVERTEX&&a.addFallback(c++,"USESPHERICALINVERTEX"),t.FOG&&a.addFallback(c,"FOG"),t.SPECULARAA&&a.addFallback(c,"SPECULARAA"),t.POINTSIZE&&a.addFallback(c,"POINTSIZE"),t.LOGARITHMICDEPTH&&a.addFallback(c,"LOGARITHMICDEPTH"),t.PARALLAX&&a.addFallback(c,"PARALLAX"),t.PARALLAXOCCLUSION&&a.addFallback(c++,"PARALLAXOCCLUSION"),c=br.AddFallbacks(t,a,c),c=br.AddFallbacks(t,a,c),c=Ar.AddFallbacks(t,a,c),c=Er.AddFallbacks(t,a,c),t.ENVIRONMENTBRDF&&a.addFallback(c++,"ENVIRONMENTBRDF"),t.TANGENT&&a.addFallback(c++,"TANGENT"),t.BUMP&&a.addFallback(c++,"BUMP"),c=ir.a.HandleFallbacksForShadows(t,a,this._maxSimultaneousLights,c++),t.SPECULARTERM&&a.addFallback(c++,"SPECULARTERM"),t.USESPHERICALFROMREFLECTIONMAP&&a.addFallback(c++,"USESPHERICALFROMREFLECTIONMAP"),t.LIGHTMAP&&a.addFallback(c++,"LIGHTMAP"),t.NORMAL&&a.addFallback(c++,"NORMAL"),t.AMBIENT&&a.addFallback(c++,"AMBIENT"),t.EMISSIVE&&a.addFallback(c++,"EMISSIVE"),t.VERTEXCOLOR&&a.addFallback(c++,"VERTEXCOLOR"),t.NUM_BONE_INFLUENCERS>0&&a.addCPUSkinningFallback(c++,e),t.MORPHTARGETS&&a.addFallback(c++,"MORPHTARGETS"),t.MULTIVIEW&&a.addFallback(0,"MULTIVIEW");var l=[Oi.b.PositionKind];t.NORMAL&&l.push(Oi.b.NormalKind),t.TANGENT&&l.push(Oi.b.TangentKind),t.UV1&&l.push(Oi.b.UVKind),t.UV2&&l.push(Oi.b.UV2Kind),t.VERTEXCOLOR&&l.push(Oi.b.ColorKind),ir.a.PrepareAttributesForBones(l,e,t,a),ir.a.PrepareAttributesForInstances(l,t),ir.a.PrepareAttributesForMorphTargets(l,e,t);var u="pbr",h=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vAlbedoColor","vReflectivityColor","vEmissiveColor","visibility","vReflectionColor","vFogInfos","vFogColor","pointSize","vAlbedoInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vReflectionPosition","vReflectionSize","vEmissiveInfos","vReflectivityInfos","vMicroSurfaceSamplerInfos","vBumpInfos","vLightmapInfos","mBones","vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","albedoMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","reflectivityMatrix","normalMatrix","microSurfaceSamplerMatrix","bumpMatrix","lightmapMatrix","vLightingIntensity","logarithmicDepthConstant","vSphericalX","vSphericalY","vSphericalZ","vSphericalXX_ZZ","vSphericalYY_ZZ","vSphericalZZ","vSphericalXY","vSphericalYZ","vSphericalZX","vSphericalL00","vSphericalL1_1","vSphericalL10","vSphericalL11","vSphericalL2_2","vSphericalL2_1","vSphericalL20","vSphericalL21","vSphericalL22","vReflectionMicrosurfaceInfos","vTangentSpaceParams","boneTextureWidth","vDebugMode"],d=["albedoSampler","reflectivitySampler","ambientSampler","emissiveSampler","bumpSampler","lightmapSampler","opacitySampler","reflectionSampler","reflectionSamplerLow","reflectionSamplerHigh","microSurfaceSampler","environmentBrdfSampler","boneSampler"],f=["Material","Scene"];Ar.AddUniforms(h),Ar.AddSamplers(d),yr.AddUniforms(h),yr.AddSamplers(d),br.AddUniforms(h),br.AddSamplers(d),Er.AddUniforms(h),Er.AddSamplers(d),xi.a&&(xi.a.PrepareUniforms(h,t),xi.a.PrepareSamplers(d,t)),ir.a.PrepareUniformsAndSamplersList({uniformsNames:h,uniformBuffersNames:f,samplers:d,defines:t,maxSimultaneousLights:this._maxSimultaneousLights}),this.customShaderNameResolve&&(u=this.customShaderNameResolve(u,h,f,d,t));var p=t.toString();return s.createEffect(u,{attributes:l,uniformsNames:h,uniformBuffersNames:f,samplers:d,defines:p,fallbacks:a,onCompiled:i,onError:n,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:t.NUM_MORPH_INFLUENCERS}},s)},t.prototype._prepareDefines=function(e,i,n,r){void 0===n&&(n=null),void 0===r&&(r=null);var o=this.getScene(),s=o.getEngine();if(ir.a.PrepareDefinesForLights(o,e,i,!0,this._maxSimultaneousLights,this._disableLighting),i._needNormals=!0,ir.a.PrepareDefinesForMultiview(o,i),i.METALLICWORKFLOW=this.isMetallicWorkflow(),i._areTexturesDirty){if(i._needUVs=!1,o.texturesEnabled){o.getEngine().getCaps().textureLOD&&(i.LODBASEDMICROSFURACE=!0),this._albedoTexture&&or.a.DiffuseTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._albedoTexture,i,"ALBEDO"):i.ALBEDO=!1,this._ambientTexture&&or.a.AmbientTextureEnabled?(ir.a.PrepareDefinesForMergedUV(this._ambientTexture,i,"AMBIENT"),i.AMBIENTINGRAYSCALE=this._useAmbientInGrayScale):i.AMBIENT=!1,this._opacityTexture&&or.a.OpacityTextureEnabled?(ir.a.PrepareDefinesForMergedUV(this._opacityTexture,i,"OPACITY"),i.OPACITYRGB=this._opacityTexture.getAlphaFromRGB):i.OPACITY=!1;var a=this._getReflectionTexture();if(a&&or.a.ReflectionTextureEnabled){switch(i.REFLECTION=!0,i.GAMMAREFLECTION=a.gammaSpace,i.RGBDREFLECTION=a.isRGBD,i.REFLECTIONMAP_OPPOSITEZ=this.getScene().useRightHandedSystem?!a.invertZ:a.invertZ,i.LODINREFLECTIONALPHA=a.lodLevelInAlpha,a.coordinatesMode===ke.a.INVCUBIC_MODE&&(i.INVERTCUBICMAP=!0),i.REFLECTIONMAP_3D=a.isCube,i.REFLECTIONMAP_CUBIC=!1,i.REFLECTIONMAP_EXPLICIT=!1,i.REFLECTIONMAP_PLANAR=!1,i.REFLECTIONMAP_PROJECTION=!1,i.REFLECTIONMAP_SKYBOX=!1,i.REFLECTIONMAP_SPHERICAL=!1,i.REFLECTIONMAP_EQUIRECTANGULAR=!1,i.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,i.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,i.REFLECTIONMAP_SKYBOX_TRANSFORMED=!1,a.coordinatesMode){case ke.a.EXPLICIT_MODE:i.REFLECTIONMAP_EXPLICIT=!0;break;case ke.a.PLANAR_MODE:i.REFLECTIONMAP_PLANAR=!0;break;case ke.a.PROJECTION_MODE:i.REFLECTIONMAP_PROJECTION=!0;break;case ke.a.SKYBOX_MODE:i.REFLECTIONMAP_SKYBOX=!0;break;case ke.a.SPHERICAL_MODE:i.REFLECTIONMAP_SPHERICAL=!0;break;case ke.a.EQUIRECTANGULAR_MODE:i.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case ke.a.FIXED_EQUIRECTANGULAR_MODE:i.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case ke.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:i.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case ke.a.CUBIC_MODE:case ke.a.INVCUBIC_MODE:default:i.REFLECTIONMAP_CUBIC=!0,i.USE_LOCAL_REFLECTIONMAP_CUBIC=!!a.boundingBoxSize}a.coordinatesMode!==ke.a.SKYBOX_MODE?a.sphericalPolynomial&&(i.USESPHERICALFROMREFLECTIONMAP=!0,this._forceIrradianceInFragment||o.getEngine().getCaps().maxVaryingVectors<=8?i.USESPHERICALINVERTEX=!1:i.USESPHERICALINVERTEX=!0):i.REFLECTIONMAP_SKYBOX_TRANSFORMED=!a.getReflectionTextureMatrix().isIdentity()}else i.REFLECTION=!1,i.REFLECTIONMAP_3D=!1,i.REFLECTIONMAP_SPHERICAL=!1,i.REFLECTIONMAP_PLANAR=!1,i.REFLECTIONMAP_CUBIC=!1,i.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,i.REFLECTIONMAP_PROJECTION=!1,i.REFLECTIONMAP_SKYBOX=!1,i.REFLECTIONMAP_SKYBOX_TRANSFORMED=!1,i.REFLECTIONMAP_EXPLICIT=!1,i.REFLECTIONMAP_EQUIRECTANGULAR=!1,i.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,i.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,i.INVERTCUBICMAP=!1,i.USESPHERICALFROMREFLECTIONMAP=!1,i.USESPHERICALINVERTEX=!1,i.REFLECTIONMAP_OPPOSITEZ=!1,i.LODINREFLECTIONALPHA=!1,i.GAMMAREFLECTION=!1,i.RGBDREFLECTION=!1;this._lightmapTexture&&or.a.LightmapTextureEnabled?(ir.a.PrepareDefinesForMergedUV(this._lightmapTexture,i,"LIGHTMAP"),i.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,i.GAMMALIGHTMAP=this._lightmapTexture.gammaSpace):i.LIGHTMAP=!1,this._emissiveTexture&&or.a.EmissiveTextureEnabled?ir.a.PrepareDefinesForMergedUV(this._emissiveTexture,i,"EMISSIVE"):i.EMISSIVE=!1,or.a.SpecularTextureEnabled?(this._metallicTexture?(ir.a.PrepareDefinesForMergedUV(this._metallicTexture,i,"REFLECTIVITY"),i.ROUGHNESSSTOREINMETALMAPALPHA=this._useRoughnessFromMetallicTextureAlpha,i.ROUGHNESSSTOREINMETALMAPGREEN=!this._useRoughnessFromMetallicTextureAlpha&&this._useRoughnessFromMetallicTextureGreen,i.METALLNESSSTOREINMETALMAPBLUE=this._useMetallnessFromMetallicTextureBlue,i.AOSTOREINMETALMAPRED=this._useAmbientOcclusionFromMetallicTextureRed):this._reflectivityTexture?(ir.a.PrepareDefinesForMergedUV(this._reflectivityTexture,i,"REFLECTIVITY"),i.MICROSURFACEFROMREFLECTIVITYMAP=this._useMicroSurfaceFromReflectivityMapAlpha,i.MICROSURFACEAUTOMATIC=this._useAutoMicroSurfaceFromReflectivityMap):i.REFLECTIVITY=!1,this._microSurfaceTexture?ir.a.PrepareDefinesForMergedUV(this._microSurfaceTexture,i,"MICROSURFACEMAP"):i.MICROSURFACEMAP=!1):(i.REFLECTIVITY=!1,i.MICROSURFACEMAP=!1),o.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&or.a.BumpTextureEnabled&&!this._disableBumpMap?(ir.a.PrepareDefinesForMergedUV(this._bumpTexture,i,"BUMP"),this._useParallax&&this._albedoTexture&&or.a.DiffuseTextureEnabled?(i.PARALLAX=!0,i.PARALLAXOCCLUSION=!!this._useParallaxOcclusion):i.PARALLAX=!1,i.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap):i.BUMP=!1,this._environmentBRDFTexture&&or.a.ReflectionTextureEnabled?(i.ENVIRONMENTBRDF=!0,i.ENVIRONMENTBRDF_RGBD=this._environmentBRDFTexture.isRGBD):(i.ENVIRONMENTBRDF=!1,i.ENVIRONMENTBRDF_RGBD=!1),this._shouldUseAlphaFromAlbedoTexture()?i.ALPHAFROMALBEDO=!0:i.ALPHAFROMALBEDO=!1}i.SPECULAROVERALPHA=this._useSpecularOverAlpha,this._lightFalloff===t.LIGHTFALLOFF_STANDARD?(i.USEPHYSICALLIGHTFALLOFF=!1,i.USEGLTFLIGHTFALLOFF=!1):this._lightFalloff===t.LIGHTFALLOFF_GLTF?(i.USEPHYSICALLIGHTFALLOFF=!1,i.USEGLTFLIGHTFALLOFF=!0):(i.USEPHYSICALLIGHTFALLOFF=!0,i.USEGLTFLIGHTFALLOFF=!1),i.RADIANCEOVERALPHA=this._useRadianceOverAlpha,!this.backFaceCulling&&this._twoSidedLighting?i.TWOSIDEDLIGHTING=!0:i.TWOSIDEDLIGHTING=!1,i.ALPHATESTVALUE=this._alphaCutOff+(this._alphaCutOff%1==0?".":""),i.PREMULTIPLYALPHA=this.alphaMode===_.a.ALPHA_PREMULTIPLIED||this.alphaMode===_.a.ALPHA_PREMULTIPLIED_PORTERDUFF,i.ALPHABLEND=this.needAlphaBlendingForMesh(e),i.ALPHAFRESNEL=this._useAlphaFresnel||this._useLinearAlphaFresnel,i.LINEARALPHAFRESNEL=this._useLinearAlphaFresnel,i.SPECULARAA=o.getEngine().getCaps().standardDerivatives&&this._enableSpecularAntiAliasing}i._areImageProcessingDirty&&this._imageProcessingConfiguration&&this._imageProcessingConfiguration.prepareDefines(i),i.FORCENORMALFORWARD=this._forceNormalForward,i.RADIANCEOCCLUSION=this._useRadianceOcclusion,i.HORIZONOCCLUSION=this._useHorizonOcclusion,i._areMiscDirty&&(ir.a.PrepareDefinesForMisc(e,o,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e)||this._forceAlphaTest,i),i.UNLIT=this._unlit||(this.pointsCloud||this.wireframe)&&!e.isVerticesDataPresent(Oi.b.NormalKind),i.DEBUGMODE=this._debugMode),this.subSurface.prepareDefines(i,o),this.clearCoat.prepareDefines(i,o),this.anisotropy.prepareDefines(i,e,o),this.brdf.prepareDefines(i),this.sheen.prepareDefines(i,o),ir.a.PrepareDefinesForFrameBoundValues(o,s,i,!!n,r),ir.a.PrepareDefinesForAttributes(e,i,!0,!0,!0,this._transparencyMode!==t.PBRMATERIAL_OPAQUE)},t.prototype.forceCompilation=function(e,t,i){var n=this,r=l.a({clipPlane:!1},i),o=new Vr,s=this._prepareEffect(e,o,void 0,void 0,void 0,r.clipPlane);s.isReady()?t&&t(this):s.onCompileObservable.add(function(){t&&t(n)})},t.prototype.buildUniformLayout=function(){var e=this._uniformBuffer;e.addUniform("vAlbedoInfos",2),e.addUniform("vAmbientInfos",4),e.addUniform("vOpacityInfos",2),e.addUniform("vEmissiveInfos",2),e.addUniform("vLightmapInfos",2),e.addUniform("vReflectivityInfos",3),e.addUniform("vMicroSurfaceSamplerInfos",2),e.addUniform("vReflectionInfos",2),e.addUniform("vReflectionPosition",3),e.addUniform("vReflectionSize",3),e.addUniform("vBumpInfos",3),e.addUniform("albedoMatrix",16),e.addUniform("ambientMatrix",16),e.addUniform("opacityMatrix",16),e.addUniform("emissiveMatrix",16),e.addUniform("lightmapMatrix",16),e.addUniform("reflectivityMatrix",16),e.addUniform("microSurfaceSamplerMatrix",16),e.addUniform("bumpMatrix",16),e.addUniform("vTangentSpaceParams",2),e.addUniform("reflectionMatrix",16),e.addUniform("vReflectionColor",3),e.addUniform("vAlbedoColor",4),e.addUniform("vLightingIntensity",4),e.addUniform("vReflectionMicrosurfaceInfos",3),e.addUniform("pointSize",1),e.addUniform("vReflectivityColor",4),e.addUniform("vEmissiveColor",3),e.addUniform("visibility",1),yr.PrepareUniformBuffer(e),br.PrepareUniformBuffer(e),Er.PrepareUniformBuffer(e),Ar.PrepareUniformBuffer(e),e.create()},t.prototype.unbind=function(){if(this._activeEffect){var t=!1;this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&(this._activeEffect.setTexture("reflection2DSampler",null),t=!0),this.subSurface.unbind(this._activeEffect)&&(t=!0),t&&this._markAllSubMeshesAsTexturesDirty()}e.prototype.unbind.call(this)},t.prototype.bindForSubMesh=function(e,i,n){var r=this.getScene(),s=n._materialDefines;if(s){var a=n.effect;if(a){this._activeEffect=a,s.INSTANCES||this.bindOnlyWorldMatrix(e),s.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));var c=this._mustRebind(r,a,i.visibility);ir.a.BindBonesParameters(i,this._activeEffect);var l=null,u=this._uniformBuffer;if(c){var h=r.getEngine();if(u.bindToEffect(a,"Material"),this.bindViewProjection(a),l=this._getReflectionTexture(),!u.useUbo||!this.isFrozen||!u.isSync){if(r.texturesEnabled){if(this._albedoTexture&&or.a.DiffuseTextureEnabled&&(u.updateFloat2("vAlbedoInfos",this._albedoTexture.coordinatesIndex,this._albedoTexture.level),ir.a.BindTextureMatrix(this._albedoTexture,u,"albedo")),this._ambientTexture&&or.a.AmbientTextureEnabled&&(u.updateFloat4("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level,this._ambientTextureStrength,this._ambientTextureImpactOnAnalyticalLights),ir.a.BindTextureMatrix(this._ambientTexture,u,"ambient")),this._opacityTexture&&or.a.OpacityTextureEnabled&&(u.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),ir.a.BindTextureMatrix(this._opacityTexture,u,"opacity")),l&&or.a.ReflectionTextureEnabled){if(u.updateMatrix("reflectionMatrix",l.getReflectionTextureMatrix()),u.updateFloat2("vReflectionInfos",l.level,0),l.boundingBoxSize){var d=l;u.updateVector3("vReflectionPosition",d.boundingBoxPosition),u.updateVector3("vReflectionSize",d.boundingBoxSize)}var f=l.sphericalPolynomial;if(s.USESPHERICALFROMREFLECTIONMAP&&f)if(s.SPHERICAL_HARMONICS){var p=f.preScaledHarmonics;this._activeEffect.setVector3("vSphericalL00",p.l00),this._activeEffect.setVector3("vSphericalL1_1",p.l1_1),this._activeEffect.setVector3("vSphericalL10",p.l10),this._activeEffect.setVector3("vSphericalL11",p.l11),this._activeEffect.setVector3("vSphericalL2_2",p.l2_2),this._activeEffect.setVector3("vSphericalL2_1",p.l2_1),this._activeEffect.setVector3("vSphericalL20",p.l20),this._activeEffect.setVector3("vSphericalL21",p.l21),this._activeEffect.setVector3("vSphericalL22",p.l22)}else this._activeEffect.setFloat3("vSphericalX",f.x.x,f.x.y,f.x.z),this._activeEffect.setFloat3("vSphericalY",f.y.x,f.y.y,f.y.z),this._activeEffect.setFloat3("vSphericalZ",f.z.x,f.z.y,f.z.z),this._activeEffect.setFloat3("vSphericalXX_ZZ",f.xx.x-f.zz.x,f.xx.y-f.zz.y,f.xx.z-f.zz.z),this._activeEffect.setFloat3("vSphericalYY_ZZ",f.yy.x-f.zz.x,f.yy.y-f.zz.y,f.yy.z-f.zz.z),this._activeEffect.setFloat3("vSphericalZZ",f.zz.x,f.zz.y,f.zz.z),this._activeEffect.setFloat3("vSphericalXY",f.xy.x,f.xy.y,f.xy.z),this._activeEffect.setFloat3("vSphericalYZ",f.yz.x,f.yz.y,f.yz.z),this._activeEffect.setFloat3("vSphericalZX",f.zx.x,f.zx.y,f.zx.z);u.updateFloat3("vReflectionMicrosurfaceInfos",l.getSize().width,l.lodGenerationScale,l.lodGenerationOffset)}this._emissiveTexture&&or.a.EmissiveTextureEnabled&&(u.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),ir.a.BindTextureMatrix(this._emissiveTexture,u,"emissive")),this._lightmapTexture&&or.a.LightmapTextureEnabled&&(u.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),ir.a.BindTextureMatrix(this._lightmapTexture,u,"lightmap")),or.a.SpecularTextureEnabled&&(this._metallicTexture?(u.updateFloat3("vReflectivityInfos",this._metallicTexture.coordinatesIndex,this._metallicTexture.level,this._ambientTextureStrength),ir.a.BindTextureMatrix(this._metallicTexture,u,"reflectivity")):this._reflectivityTexture&&(u.updateFloat3("vReflectivityInfos",this._reflectivityTexture.coordinatesIndex,this._reflectivityTexture.level,1),ir.a.BindTextureMatrix(this._reflectivityTexture,u,"reflectivity")),this._microSurfaceTexture&&(u.updateFloat2("vMicroSurfaceSamplerInfos",this._microSurfaceTexture.coordinatesIndex,this._microSurfaceTexture.level),ir.a.BindTextureMatrix(this._microSurfaceTexture,u,"microSurfaceSampler"))),this._bumpTexture&&h.getCaps().standardDerivatives&&or.a.BumpTextureEnabled&&!this._disableBumpMap&&(u.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,this._bumpTexture.level,this._parallaxScaleBias),ir.a.BindTextureMatrix(this._bumpTexture,u,"bump"),r._mirroredCameraPosition?u.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):u.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1))}this.pointsCloud&&u.updateFloat("pointSize",this.pointSize),s.METALLICWORKFLOW?(o.t.Color3[0].r=void 0===this._metallic||null===this._metallic?1:this._metallic,o.t.Color3[0].g=void 0===this._roughness||null===this._roughness?1:this._roughness,u.updateColor4("vReflectivityColor",o.t.Color3[0],0)):u.updateColor4("vReflectivityColor",this._reflectivityColor,this._microSurface),u.updateColor3("vEmissiveColor",or.a.EmissiveTextureEnabled?this._emissiveColor:o.e.BlackReadOnly),u.updateColor3("vReflectionColor",this._reflectionColor),u.updateColor4("vAlbedoColor",this._albedoColor,this.alpha),u.updateFloat("visibility",i.visibility),this._lightingInfos.x=this._directIntensity,this._lightingInfos.y=this._emissiveIntensity,this._lightingInfos.z=this._environmentIntensity,this._lightingInfos.w=this._specularIntensity,u.updateVector4("vLightingIntensity",this._lightingInfos)}r.texturesEnabled&&(this._albedoTexture&&or.a.DiffuseTextureEnabled&&u.setTexture("albedoSampler",this._albedoTexture),this._ambientTexture&&or.a.AmbientTextureEnabled&&u.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&or.a.OpacityTextureEnabled&&u.setTexture("opacitySampler",this._opacityTexture),l&&or.a.ReflectionTextureEnabled&&(s.LODBASEDMICROSFURACE?u.setTexture("reflectionSampler",l):(u.setTexture("reflectionSampler",l._lodTextureMid||l),u.setTexture("reflectionSamplerLow",l._lodTextureLow||l),u.setTexture("reflectionSamplerHigh",l._lodTextureHigh||l))),s.ENVIRONMENTBRDF&&u.setTexture("environmentBrdfSampler",this._environmentBRDFTexture),this._emissiveTexture&&or.a.EmissiveTextureEnabled&&u.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&or.a.LightmapTextureEnabled&&u.setTexture("lightmapSampler",this._lightmapTexture),or.a.SpecularTextureEnabled&&(this._metallicTexture?u.setTexture("reflectivitySampler",this._metallicTexture):this._reflectivityTexture&&u.setTexture("reflectivitySampler",this._reflectivityTexture),this._microSurfaceTexture&&u.setTexture("microSurfaceSampler",this._microSurfaceTexture)),this._bumpTexture&&h.getCaps().standardDerivatives&&or.a.BumpTextureEnabled&&!this._disableBumpMap&&u.setTexture("bumpSampler",this._bumpTexture)),this.subSurface.bindForSubMesh(u,r,h,this.isFrozen,s.LODBASEDMICROSFURACE),this.clearCoat.bindForSubMesh(u,r,h,this._disableBumpMap,this.isFrozen,this._invertNormalMapX,this._invertNormalMapY),this.anisotropy.bindForSubMesh(u,r,this.isFrozen),this.sheen.bindForSubMesh(u,r,this.isFrozen),ir.a.BindClipPlane(this._activeEffect,r),r.ambientColor.multiplyToRef(this._ambientColor,this._globalAmbientColor);var _=r._forcedViewPosition?r._forcedViewPosition:r._mirroredCameraPosition?r._mirroredCameraPosition:r.activeCamera.globalPosition,g=r.useRightHandedSystem===(null!=r._mirroredCameraPosition);a.setFloat4("vEyePosition",_.x,_.y,_.z,g?-1:1),a.setColor3("vAmbientColor",this._globalAmbientColor),a.setFloat2("vDebugMode",this.debugLimit,this.debugFactor)}!c&&this.isFrozen||(r.lightsEnabled&&!this._disableLighting&&ir.a.BindLights(r,i,this._activeEffect,s,this._maxSimultaneousLights,this._lightFalloff!==t.LIGHTFALLOFF_STANDARD),(r.fogEnabled&&i.applyFog&&r.fogMode!==W.a.FOGMODE_NONE||l)&&this.bindView(a),ir.a.BindFogParameters(r,i,this._activeEffect,!0),s.NUM_MORPH_INFLUENCERS&&ir.a.BindMorphTargetParameters(i,this._activeEffect),this._imageProcessingConfiguration.bind(this._activeEffect),ir.a.BindLogDepth(s,this._activeEffect,r)),u.update(),this._afterBind(i,this._activeEffect)}}},t.prototype.getAnimatables=function(){var e=[];return this._albedoTexture&&this._albedoTexture.animations&&this._albedoTexture.animations.length>0&&e.push(this._albedoTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._metallicTexture&&this._metallicTexture.animations&&this._metallicTexture.animations.length>0?e.push(this._metallicTexture):this._reflectivityTexture&&this._reflectivityTexture.animations&&this._reflectivityTexture.animations.length>0&&e.push(this._reflectivityTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this.subSurface.getAnimatables(e),this.clearCoat.getAnimatables(e),this.sheen.getAnimatables(e),this.anisotropy.getAnimatables(e),e},t.prototype._getReflectionTexture=function(){return this._reflectionTexture?this._reflectionTexture:this.getScene().environmentTexture},t.prototype.getActiveTextures=function(){var t=e.prototype.getActiveTextures.call(this);return this._albedoTexture&&t.push(this._albedoTexture),this._ambientTexture&&t.push(this._ambientTexture),this._opacityTexture&&t.push(this._opacityTexture),this._reflectionTexture&&t.push(this._reflectionTexture),this._emissiveTexture&&t.push(this._emissiveTexture),this._reflectivityTexture&&t.push(this._reflectivityTexture),this._metallicTexture&&t.push(this._metallicTexture),this._microSurfaceTexture&&t.push(this._microSurfaceTexture),this._bumpTexture&&t.push(this._bumpTexture),this._lightmapTexture&&t.push(this._lightmapTexture),this.subSurface.getActiveTextures(t),this.clearCoat.getActiveTextures(t),this.sheen.getActiveTextures(t),this.anisotropy.getActiveTextures(t),t},t.prototype.hasTexture=function(t){return!!e.prototype.hasTexture.call(this,t)||(this._albedoTexture===t||(this._ambientTexture===t||(this._opacityTexture===t||(this._reflectionTexture===t||(this._reflectivityTexture===t||(this._metallicTexture===t||(this._microSurfaceTexture===t||(this._bumpTexture===t||(this._lightmapTexture===t||(this.subSurface.hasTexture(t)||this.clearCoat.hasTexture(t)||this.sheen.hasTexture(t)||this.anisotropy.hasTexture(t)))))))))))},t.prototype.dispose=function(t,i){i&&(this._albedoTexture&&this._albedoTexture.dispose(),this._ambientTexture&&this._ambientTexture.dispose(),this._opacityTexture&&this._opacityTexture.dispose(),this._reflectionTexture&&this._reflectionTexture.dispose(),this._environmentBRDFTexture&&this.getScene().environmentBRDFTexture!==this._environmentBRDFTexture&&this._environmentBRDFTexture.dispose(),this._emissiveTexture&&this._emissiveTexture.dispose(),this._metallicTexture&&this._metallicTexture.dispose(),this._reflectivityTexture&&this._reflectivityTexture.dispose(),this._bumpTexture&&this._bumpTexture.dispose(),this._lightmapTexture&&this._lightmapTexture.dispose()),this.subSurface.dispose(i),this.clearCoat.dispose(i),this.sheen.dispose(i),this.anisotropy.dispose(i),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e.prototype.dispose.call(this,t,i)},t.PBRMATERIAL_OPAQUE=0,t.PBRMATERIAL_ALPHATEST=1,t.PBRMATERIAL_ALPHABLEND=2,t.PBRMATERIAL_ALPHATESTANDBLEND=3,t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=0,t.LIGHTFALLOFF_PHYSICAL=0,t.LIGHTFALLOFF_GLTF=1,t.LIGHTFALLOFF_STANDARD=2,l.c([Object(L.i)()],t.prototype,"_imageProcessingConfiguration",void 0),l.c([Object(L.b)("_markAllSubMeshesAsMiscDirty")],t.prototype,"debugMode",void 0),l.c([Object(L.c)()],t.prototype,"useLogarithmicDepth",null),l.c([Object(L.c)()],t.prototype,"transparencyMode",null),t}(rr.a),kr=function(e){function t(i,n){var r=e.call(this,i,n)||this;return r.directIntensity=1,r.emissiveIntensity=1,r.environmentIntensity=1,r.specularIntensity=1,r.disableBumpMap=!1,r.ambientTextureStrength=1,r.ambientTextureImpactOnAnalyticalLights=t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,r.ambientColor=new o.e(0,0,0),r.albedoColor=new o.e(1,1,1),r.reflectivityColor=new o.e(1,1,1),r.reflectionColor=new o.e(1,1,1),r.emissiveColor=new o.e(0,0,0),r.microSurface=1,r.useLightmapAsShadowmap=!1,r.useAlphaFromAlbedoTexture=!1,r.forceAlphaTest=!1,r.alphaCutOff=.4,r.useSpecularOverAlpha=!0,r.useMicroSurfaceFromReflectivityMapAlpha=!1,r.useRoughnessFromMetallicTextureAlpha=!0,r.useRoughnessFromMetallicTextureGreen=!1,r.useMetallnessFromMetallicTextureBlue=!1,r.useAmbientOcclusionFromMetallicTextureRed=!1,r.useAmbientInGrayScale=!1,r.useAutoMicroSurfaceFromReflectivityMap=!1,r.useRadianceOverAlpha=!0,r.useObjectSpaceNormalMap=!1,r.useParallax=!1,r.useParallaxOcclusion=!1,r.parallaxScaleBias=.05,r.disableLighting=!1,r.forceIrradianceInFragment=!1,r.maxSimultaneousLights=4,r.invertNormalMapX=!1,r.invertNormalMapY=!1,r.twoSidedLighting=!1,r.useAlphaFresnel=!1,r.useLinearAlphaFresnel=!1,r.environmentBRDFTexture=null,r.forceNormalForward=!1,r.enableSpecularAntiAliasing=!1,r.useHorizonOcclusion=!0,r.useRadianceOcclusion=!0,r.unlit=!1,r._environmentBRDFTexture=vr.GetEnvironmentBRDFTexture(n),r}return l.d(t,e),Object.defineProperty(t.prototype,"refractionTexture",{get:function(){return this.subSurface.refractionTexture},set:function(e){this.subSurface.refractionTexture=e,e?this.subSurface.isRefractionEnabled=!0:this.subSurface.linkRefractionWithTransparency||(this.subSurface.isRefractionEnabled=!1)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"indexOfRefraction",{get:function(){return 1/this.subSurface.indexOfRefraction},set:function(e){this.subSurface.indexOfRefraction=1/e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invertRefractionY",{get:function(){return this.subSurface.invertRefractionY},set:function(e){this.subSurface.invertRefractionY=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"linkRefractionWithTransparency",{get:function(){return this.subSurface.linkRefractionWithTransparency},set:function(e){this.subSurface.linkRefractionWithTransparency=e,e&&(this.subSurface.isRefractionEnabled=!0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"usePhysicalLightFalloff",{get:function(){return this._lightFalloff===Gr.LIGHTFALLOFF_PHYSICAL},set:function(e){e!==this.usePhysicalLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?Gr.LIGHTFALLOFF_PHYSICAL:Gr.LIGHTFALLOFF_STANDARD)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useGLTFLightFalloff",{get:function(){return this._lightFalloff===Gr.LIGHTFALLOFF_GLTF},set:function(e){e!==this.useGLTFLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?Gr.LIGHTFALLOFF_GLTF:Gr.LIGHTFALLOFF_STANDARD)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorCurvesEnabled",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorGradingEnabled",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraToneMappingEnabled",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraExposure",{get:function(){return this._imageProcessingConfiguration.exposure},set:function(e){this._imageProcessingConfiguration.exposure=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraContrast",{get:function(){return this._imageProcessingConfiguration.contrast},set:function(e){this._imageProcessingConfiguration.contrast=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorGradingTexture",{get:function(){return this._imageProcessingConfiguration.colorGradingTexture},set:function(e){this._imageProcessingConfiguration.colorGradingTexture=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorCurves",{get:function(){return this._imageProcessingConfiguration.colorCurves},set:function(e){this._imageProcessingConfiguration.colorCurves=e},enumerable:!0,configurable:!0}),t.prototype.getClassName=function(){return"PBRMaterial"},t.prototype.clone=function(e){var i=this,n=L.a.Clone(function(){return new t(e,i.getScene())},this);return n.id=e,n.name=e,this.clearCoat.copyTo(n.clearCoat),this.anisotropy.copyTo(n.anisotropy),this.brdf.copyTo(n.brdf),this.sheen.copyTo(n.sheen),n},t.prototype.serialize=function(){var e=L.a.Serialize(this);return e.customType="BABYLON.PBRMaterial",e.clearCoat=this.clearCoat.serialize(),e.anisotropy=this.anisotropy.serialize(),e.brdf=this.brdf.serialize(),e.sheen=this.sheen.serialize(),e},t.Parse=function(e,i,n){var r=L.a.Parse(function(){return new t(e.name,i)},e,i,n);return e.clearCoat&&r.clearCoat.parse(e.clearCoat),e.anisotropy&&r.anisotropy.parse(e.anisotropy),e.brdf&&r.brdf.parse(e.brdf),e.sheen&&r.sheen.parse(e.brdf),r},t.PBRMATERIAL_OPAQUE=Gr.PBRMATERIAL_OPAQUE,t.PBRMATERIAL_ALPHATEST=Gr.PBRMATERIAL_ALPHATEST,t.PBRMATERIAL_ALPHABLEND=Gr.PBRMATERIAL_ALPHABLEND,t.PBRMATERIAL_ALPHATESTANDBLEND=Gr.PBRMATERIAL_ALPHATESTANDBLEND,t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=Gr.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"directIntensity",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveIntensity",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"environmentIntensity",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"specularIntensity",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"disableBumpMap",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"albedoTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTexture",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTextureStrength",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTextureImpactOnAnalyticalLights",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"opacityTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectivityTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallicTexture",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallic",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"roughness",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"microSurfaceTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"bumpTexture",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty",null)],t.prototype,"lightmapTexture",void 0),l.c([Object(L.e)("ambient"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientColor",void 0),l.c([Object(L.e)("albedo"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"albedoColor",void 0),l.c([Object(L.e)("reflectivity"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectivityColor",void 0),l.c([Object(L.e)("reflection"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionColor",void 0),l.c([Object(L.e)("emissive"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveColor",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"microSurface",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useLightmapAsShadowmap",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"useAlphaFromAlbedoTexture",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"forceAlphaTest",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"alphaCutOff",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useSpecularOverAlpha",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useMicroSurfaceFromReflectivityMapAlpha",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRoughnessFromMetallicTextureAlpha",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRoughnessFromMetallicTextureGreen",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useMetallnessFromMetallicTextureBlue",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAmbientOcclusionFromMetallicTextureRed",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAmbientInGrayScale",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAutoMicroSurfaceFromReflectivityMap",void 0),l.c([Object(L.c)()],t.prototype,"usePhysicalLightFalloff",null),l.c([Object(L.c)()],t.prototype,"useGLTFLightFalloff",null),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRadianceOverAlpha",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useObjectSpaceNormalMap",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useParallax",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useParallaxOcclusion",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"parallaxScaleBias",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"disableLighting",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"forceIrradianceInFragment",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"maxSimultaneousLights",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"invertNormalMapX",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"invertNormalMapY",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"twoSidedLighting",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAlphaFresnel",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useLinearAlphaFresnel",void 0),l.c([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"environmentBRDFTexture",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"forceNormalForward",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"enableSpecularAntiAliasing",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useHorizonOcclusion",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRadianceOcclusion",void 0),l.c([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsMiscDirty")],t.prototype,"unlit",void 0),t}(Gr);s.a.RegisteredTypes["BABYLON.PBRMaterial"]=kr;var zr=i(62),jr=i(71);function Hr(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var Wr=Hr("DXT1"),Xr=Hr("DXT3"),Yr=Hr("DXT5"),Kr=Hr("DX10"),Qr=function(){function e(){}return e.GetDDSInfo=function(e){var t=new Int32Array(e,0,31),i=new Int32Array(e,0,35),n=1;131072&t[2]&&(n=Math.max(1,t[7]));var r=t[21],o=r===Kr?i[32]:0,s=_.a.TEXTURETYPE_UNSIGNED_INT;switch(r){case 113:s=_.a.TEXTURETYPE_HALF_FLOAT;break;case 116:s=_.a.TEXTURETYPE_FLOAT;break;case Kr:if(10===o){s=_.a.TEXTURETYPE_HALF_FLOAT;break}}return{width:t[4],height:t[3],mipmapCount:n,isFourCC:4==(4&t[20]),isRGB:64==(64&t[20]),isLuminance:131072==(131072&t[20]),isCube:512==(512&t[28]),isCompressed:r===Wr||r===Xr||r===Yr,dxgiFormat:o,textureType:s}},e._ToHalfFloat=function(t){e._FloatView||(e._FloatView=new Float32Array(1),e._Int32View=new Int32Array(e._FloatView.buffer)),e._FloatView[0]=t;var i=e._Int32View[0],n=i>>16&32768,r=i>>12&2047,o=i>>23&255;return o<103?n:o>142?(n|=31744,n|=(255==o?0:1)&&8388607&i):o<113?n|=((r|=2048)>>114-o)+(r>>113-o&1):(n|=o-112<<10|r>>1,n+=1&r)},e._FromHalfFloat=function(e){var t=(32768&e)>>15,i=(31744&e)>>10,n=1023&e;return 0===i?(t?-1:1)*Math.pow(2,-14)*(n/Math.pow(2,10)):31==i?n?NaN:1/0*(t?-1:1):(t?-1:1)*Math.pow(2,i-15)*(1+n/Math.pow(2,10))},e._GetHalfFloatAsFloatRGBAArrayBuffer=function(t,i,n,r,o,s){for(var a=new Float32Array(r),c=new Uint16Array(o,n),l=0,u=0;u>8)},e._GetRGBArrayBuffer=function(e,t,i,n,r,o,s,a){for(var c=new Uint8Array(n),l=new Uint8Array(r,i),u=0,h=0;h>8&255,R>>16&255,R>>24&255)))}var C=e._ExtractLongWordOrder(b[23]),M=e._ExtractLongWordOrder(b[24]),O=e._ExtractLongWordOrder(b[25]),I=e._ExtractLongWordOrder(b[26]);P&&(E=t._getRGBABufferInternalSizedFormat(r.textureType)),m=1,131072&b[2]&&!1!==o&&(m=Math.max(1,b[7]));for(var D=c||0;D0?r.sphericalPolynomial=jr.a.ConvertCubeMapToSphericalPolynomial({size:b[4],right:l[0],left:l[1],up:l[2],down:l[3],front:l[4],back:l[5],format:_.a.TEXTUREFORMAT_RGBA,type:_.a.TEXTURETYPE_FLOAT,gammaSpace:!1}):r.sphericalPolynomial=void 0}else p.a.Error("Compressed textures are not supported on this platform.");else p.a.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code");else p.a.Error("Invalid magic number in DDS header")},e.StoreLODInAlphaChannel=!1,e}();ge.b.prototype.createPrefilteredCubeTexture=function(e,t,i,n,r,o,s,a,c){var l=this;void 0===r&&(r=null),void 0===o&&(o=null),void 0===a&&(a=null),void 0===c&&(c=!0);return this.createCubeTexture(e,t,null,!1,function(e){if(e){var o=e.texture;if(c?e.info.sphericalPolynomial&&(o._sphericalPolynomial=e.info.sphericalPolynomial):o._sphericalPolynomial=new zr.b,o._dataSource=ze.a.DATASOURCE_CUBEPREFILTERED,l.getCaps().textureLOD)r&&r(o);else{var s=l._gl,a=e.width;if(a){for(var u=[],h=0;h<3;h++){var d=1-h/2,f=n,_=D.a.Log2(a)*i+n,g=f+(_-f)*d,m=Math.round(Math.min(Math.max(g,0),_)),v=new ze.a(l,ze.a.DATASOURCE_TEMP);if(v.type=o.type,v.format=o.format,v.width=Math.pow(2,Math.max(D.a.Log2(a)-m,0)),v.height=v.width,v.isCube=!0,l._bindTextureDirectly(s.TEXTURE_CUBE_MAP,v,!0),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),e.isDDS){var y=e.info,b=e.data;l._unpackFlipY(y.isCompressed),Qr.UploadDDSLevels(l,v,b,y,!0,6,m)}else p.a.Warn("DDS is the only prefiltered cube map supported so far.");l._bindTextureDirectly(s.TEXTURE_CUBE_MAP,null);var T=new Kn.a(t);T.isCube=!0,T._texture=v,v.isReady=!0,u.push(T)}o._lodTextureHigh=u[2],o._lodTextureMid=u[1],o._lodTextureLow=u[0],r&&r(o)}}}else r&&r(null)},o,s,a,c,i,n)};var qr=function(){function e(){this.supportCascades=!0}return e.prototype.canLoad=function(e,t,i,n,r){return 0===e.indexOf(".dds")},e.prototype.transformUrl=function(e,t){return e},e.prototype.getFallbackTextureUrl=function(e,t){return null},e.prototype.loadCubeData=function(e,t,i,n,r){var o,s=t.getEngine(),a=!1;if(Array.isArray(e))for(var c=0;c1)&&t.generateMipMaps,s._unpackFlipY(o.isCompressed),Qr.UploadDDSLevels(s,t,l,o,a,6,-1,c),o.isFourCC||1!==o.mipmapCount||s.generateMipMapsForCubemap(t)}else{var u=e;o=Qr.GetDDSInfo(u),t.width=o.width,t.height=o.height,i&&(o.sphericalPolynomial=new zr.b),a=(o.isRGB||o.isLuminance||o.mipmapCount>1)&&t.generateMipMaps,s._unpackFlipY(o.isCompressed),Qr.UploadDDSLevels(s,t,u,o,a,6),o.isFourCC||1!==o.mipmapCount||s.generateMipMapsForCubemap(t)}s._setCubeMapTextureParams(a),t.isReady=!0,n&&n({isDDS:!0,width:t.width,info:o,data:e,texture:t})},e.prototype.loadData=function(e,t,i){var n=Qr.GetDDSInfo(e),r=(n.isRGB||n.isLuminance||n.mipmapCount>1)&&t.generateMipMaps&&n.width>>n.mipmapCount-1==1;i(n.width,n.height,r,n.isFourCC,function(){Qr.UploadDDSLevels(t.getEngine(),t,e,n,r,1)})},e}();ge.b._TextureLoaders.push(new qr);var Zr="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\nvoid main(void)\n{\ngl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);\n}";zt.a.ShadersStore.rgbdEncodePixelShader=Zr;var Jr=function(){function e(){}return e.GetEnvInfo=function(t){for(var i=new DataView(t),n=0,r=0;r-1?e.substring(0,i):e)+t},e.prototype.getFallbackTextureUrl=function(e,t){var i=new RegExp(t+"$");return e.replace(i,"")},e.prototype.loadCubeData=function(e,t,i,n,r){if(!Array.isArray(e)){t._invertVScale=!t.invertY;var o=t.getEngine(),s=new eo(e,6),a=s.numberOfMipmapLevels>1&&t.generateMipMaps;o._unpackFlipY(!0),s.uploadLevels(t,t.generateMipMaps),t.width=s.pixelWidth,t.height=s.pixelHeight,o._setCubeMapTextureParams(a),t.isReady=!0}},e.prototype.loadData=function(e,t,i){t._invertVScale=!t.invertY;var n=new eo(e,1);i(n.pixelWidth,n.pixelHeight,!1,!0,function(){n.uploadLevels(t,t.generateMipMaps)},n.isInvalid)},e}();ge.b._TextureLoaders.unshift(new to);W.a.prototype.createDefaultLight=function(e){if(void 0===e&&(e=!1),e&&this.lights)for(var t=0;t=c.video.HAVE_CURRENT_DATA;return!a.poster||a.autoPlay&&l?l&&c._createInternalTexture():(c._texture=c._engine.createTexture(a.poster,!1,!0,n),c._displayingPosterTexture=!0),c}return l.d(t,e),Object.defineProperty(t.prototype,"onUserActionRequestedObservable",{get:function(){return this._onUserActionRequestedObservable||(this._onUserActionRequestedObservable=new r.c),this._onUserActionRequestedObservable},enumerable:!0,configurable:!0}),t.prototype._getName=function(e){return e instanceof HTMLVideoElement?e.currentSrc:"object"==typeof e?e.toString():e},t.prototype._getVideo=function(e){if(e instanceof HTMLVideoElement)return ye.h.SetCorsBehavior(e.currentSrc,e),e;var t=document.createElement("video");return"string"==typeof e?(ye.h.SetCorsBehavior(e,t),t.src=e):(ye.h.SetCorsBehavior(e[0],t),e.forEach(function(e){var i=document.createElement("source");i.src=e,t.appendChild(i)})),t},t.prototype._rebuild=function(){this.update()},t.prototype.update=function(){this.autoUpdateTexture&&this.updateTexture(!0)},t.prototype.updateTexture=function(e){e&&(this.video.paused&&this._stillImageCaptured||(this._stillImageCaptured=!0,this._updateInternalTexture()))},t.prototype.updateURL=function(e){this.video.src=e},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._onUserActionRequestedObservable&&(this._onUserActionRequestedObservable.clear(),this._onUserActionRequestedObservable=null),this.video.removeEventListener(this._createInternalTextureOnEvent,this._createInternalTexture),this.video.removeEventListener("paused",this._updateInternalTexture),this.video.removeEventListener("seeked",this._updateInternalTexture),this.video.removeEventListener("emptied",this.reset),this.video.pause()},t.CreateFromStreamAsync=function(e,i){var n=document.createElement("video");return n.setAttribute("autoplay",""),n.setAttribute("muted","true"),n.setAttribute("playsinline",""),n.muted=!0,void 0!==n.mozSrcObject?n.mozSrcObject=i:"object"==typeof n.srcObject?n.srcObject=i:(window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,n.src=window.URL&&window.URL.createObjectURL(i)),new Promise(function(i){var r=function(){i(new t("video",n,e,!0,!0)),n.removeEventListener("playing",r)};n.addEventListener("playing",r),n.play()})},t.CreateFromWebCamAsync=function(e,t,i){var n,r=this;return void 0===i&&(i=!1),t&&t.deviceId&&(n={exact:t.deviceId}),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({video:t,audio:i}).then(function(t){return r.CreateFromStreamAsync(e,t)}):(navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,navigator.getUserMedia&&navigator.getUserMedia({video:{deviceId:n,width:{min:t&&t.minWidth||256,max:t&&t.maxWidth||640},height:{min:t&&t.minHeight||256,max:t&&t.maxHeight||480}},audio:i},function(t){return r.CreateFromStreamAsync(e,t)},function(e){p.a.Error(e.name)}),Promise.reject("No support for userMedia on this device"))},t.CreateFromWebCam=function(e,t,i,n){void 0===n&&(n=!1),this.CreateFromWebCamAsync(e,i,n).then(function(e){t&&t(e)}).catch(function(e){p.a.Error(e.name)})},t}(ke.a),no=function(e){function t(i,n,r,s){var a=e.call(this,i,s)||this;a._useDirectMapping=!1,a._videoMode=t.MODE_MONOSCOPIC,a._onBeforeCameraRenderObserver=null,s=a.getScene(),i=i||"videoDome",r.resolution=0|Math.abs(r.resolution)||32,r.clickToPlay=Boolean(r.clickToPlay),r.autoPlay=void 0===r.autoPlay||Boolean(r.autoPlay),r.loop=void 0===r.loop||Boolean(r.loop),r.size=Math.abs(r.size)||(s.activeCamera?.48*s.activeCamera.maxZ:1e3),void 0===r.useDirectMapping?a._useDirectMapping=!0:a._useDirectMapping=r.useDirectMapping,void 0===r.faceForward&&(r.faceForward=!0),a._setReady(!1);var c={loop:r.loop,autoPlay:r.autoPlay,autoUpdateTexture:!0,poster:r.poster},l=a._material=new dr(i+"_material",s),u=a._videoTexture=new io(i+"_texture",n,s,!1,a._useDirectMapping,ke.a.TRILINEAR_SAMPLINGMODE,c);if(a._mesh=fe.a.CreateSphere(i+"_mesh",r.resolution,r.size,s,!1,fe.a.BACKSIDE),u.onLoadObservable.addOnce(function(){a._setReady(!0)}),l.useEquirectangularFOV=!0,l.fovMultiplier=1,l.opacityFresnel=!1,a._useDirectMapping?(u.wrapU=ke.a.CLAMP_ADDRESSMODE,u.wrapV=ke.a.CLAMP_ADDRESSMODE,l.diffuseTexture=u):(u.coordinatesMode=ke.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE,u.wrapV=ke.a.CLAMP_ADDRESSMODE,l.reflectionTexture=u),a._mesh.material=l,a._mesh.parent=a,r.clickToPlay&&(s.onPointerUp=function(){a._videoTexture.video.play()}),r.faceForward&&s.activeCamera){var h=s.activeCamera,d=o.x.Forward(),f=o.x.TransformNormal(d,h.getViewMatrix());f.normalize(),a.rotation.y=Math.acos(o.x.Dot(d,f))}return a}return l.d(t,e),Object.defineProperty(t.prototype,"videoTexture",{get:function(){return this._videoTexture},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fovMultiplier",{get:function(){return this._material.fovMultiplier},set:function(e){this._material.fovMultiplier=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"videoMode",{get:function(){return this._videoMode},set:function(e){this._videoMode!==e&&this._changeVideoMode(e)},enumerable:!0,configurable:!0}),t.prototype._changeVideoMode=function(e){var i=this;switch(this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._videoMode=e,this._videoTexture.uScale=1,this._videoTexture.vScale=1,this._videoTexture.uOffset=0,this._videoTexture.vOffset=0,e){case t.MODE_SIDEBYSIDE:this._videoTexture.uScale=.5,this._onBeforeCameraRenderObserver=this._scene.onBeforeCameraRenderObservable.add(function(e){i._videoTexture.uOffset=e.isRightCamera?.5:0});break;case t.MODE_TOPBOTTOM:this._videoTexture.vScale=.5,this._onBeforeCameraRenderObserver=this._scene.onBeforeCameraRenderObservable.add(function(e){i._videoTexture.vOffset=e.isRightCamera?.5:0})}},t.prototype.dispose=function(t,i){void 0===i&&(i=!1),this._videoTexture.dispose(),this._mesh.dispose(),this._material.dispose(),this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),e.prototype.dispose.call(this,t,i)},t.MODE_MONOSCOPIC=0,t.MODE_TOPBOTTOM=1,t.MODE_SIDEBYSIDE=2,t}(_r.a),ro=function(){function e(e){this.engine=e,this._captureGPUFrameTime=!1,this._gpuFrameTime=new ye.f,this._captureShaderCompilationTime=!1,this._shaderCompilationTime=new ye.f,this._onBeginFrameObserver=null,this._onEndFrameObserver=null,this._onBeforeShaderCompilationObserver=null,this._onAfterShaderCompilationObserver=null}return Object.defineProperty(e.prototype,"gpuFrameTimeCounter",{get:function(){return this._gpuFrameTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureGPUFrameTime",{get:function(){return this._captureGPUFrameTime},set:function(e){var t=this;e!==this._captureGPUFrameTime&&(this._captureGPUFrameTime=e,e?(this._onBeginFrameObserver=this.engine.onBeginFrameObservable.add(function(){t._gpuFrameTimeToken||(t._gpuFrameTimeToken=t.engine.startTimeQuery())}),this._onEndFrameObserver=this.engine.onEndFrameObservable.add(function(){if(t._gpuFrameTimeToken){var e=t.engine.endTimeQuery(t._gpuFrameTimeToken);e>-1&&(t._gpuFrameTimeToken=null,t._gpuFrameTime.fetchNewFrame(),t._gpuFrameTime.addCount(e,!0))}})):(this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shaderCompilationTimeCounter",{get:function(){return this._shaderCompilationTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureShaderCompilationTime",{get:function(){return this._captureShaderCompilationTime},set:function(e){var t=this;e!==this._captureShaderCompilationTime&&(this._captureShaderCompilationTime=e,e?(this._onBeforeShaderCompilationObserver=this.engine.onBeforeShaderCompilationObservable.add(function(){t._shaderCompilationTime.fetchNewFrame(),t._shaderCompilationTime.beginMonitoring()}),this._onAfterShaderCompilationObserver=this.engine.onAfterShaderCompilationObservable.add(function(){t._shaderCompilationTime.endMonitoring()})):(this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null))},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null,this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null,this.engine=null},e}(),oo=function(){function e(e){var t=this;this.scene=e,this._captureActiveMeshesEvaluationTime=!1,this._activeMeshesEvaluationTime=new ye.f,this._captureRenderTargetsRenderTime=!1,this._renderTargetsRenderTime=new ye.f,this._captureFrameTime=!1,this._frameTime=new ye.f,this._captureRenderTime=!1,this._renderTime=new ye.f,this._captureInterFrameTime=!1,this._interFrameTime=new ye.f,this._captureParticlesRenderTime=!1,this._particlesRenderTime=new ye.f,this._captureSpritesRenderTime=!1,this._spritesRenderTime=new ye.f,this._capturePhysicsTime=!1,this._physicsTime=new ye.f,this._captureAnimationsTime=!1,this._animationsTime=new ye.f,this._captureCameraRenderTime=!1,this._cameraRenderTime=new ye.f,this._onBeforeActiveMeshesEvaluationObserver=null,this._onAfterActiveMeshesEvaluationObserver=null,this._onBeforeRenderTargetsRenderObserver=null,this._onAfterRenderTargetsRenderObserver=null,this._onAfterRenderObserver=null,this._onBeforeDrawPhaseObserver=null,this._onAfterDrawPhaseObserver=null,this._onBeforeAnimationsObserver=null,this._onBeforeParticlesRenderingObserver=null,this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver=null,this._onAfterSpritesRenderingObserver=null,this._onBeforePhysicsObserver=null,this._onAfterPhysicsObserver=null,this._onAfterAnimationsObserver=null,this._onBeforeCameraRenderObserver=null,this._onAfterCameraRenderObserver=null,this._onBeforeAnimationsObserver=e.onBeforeAnimationsObservable.add(function(){t._captureActiveMeshesEvaluationTime&&t._activeMeshesEvaluationTime.fetchNewFrame(),t._captureRenderTargetsRenderTime&&t._renderTargetsRenderTime.fetchNewFrame(),t._captureFrameTime&&(ye.h.StartPerformanceCounter("Scene rendering"),t._frameTime.beginMonitoring()),t._captureInterFrameTime&&t._interFrameTime.endMonitoring(),t._captureParticlesRenderTime&&t._particlesRenderTime.fetchNewFrame(),t._captureSpritesRenderTime&&t._spritesRenderTime.fetchNewFrame(),t._captureAnimationsTime&&t._animationsTime.beginMonitoring(),t.scene.getEngine()._drawCalls.fetchNewFrame()}),this._onAfterRenderObserver=e.onAfterRenderObservable.add(function(){t._captureFrameTime&&(ye.h.EndPerformanceCounter("Scene rendering"),t._frameTime.endMonitoring()),t._captureRenderTime&&t._renderTime.endMonitoring(!1),t._captureInterFrameTime&&t._interFrameTime.beginMonitoring()})}return Object.defineProperty(e.prototype,"activeMeshesEvaluationTimeCounter",{get:function(){return this._activeMeshesEvaluationTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureActiveMeshesEvaluationTime",{get:function(){return this._captureActiveMeshesEvaluationTime},set:function(e){var t=this;e!==this._captureActiveMeshesEvaluationTime&&(this._captureActiveMeshesEvaluationTime=e,e?(this._onBeforeActiveMeshesEvaluationObserver=this.scene.onBeforeActiveMeshesEvaluationObservable.add(function(){ye.h.StartPerformanceCounter("Active meshes evaluation"),t._activeMeshesEvaluationTime.beginMonitoring()}),this._onAfterActiveMeshesEvaluationObserver=this.scene.onAfterActiveMeshesEvaluationObservable.add(function(){ye.h.EndPerformanceCounter("Active meshes evaluation"),t._activeMeshesEvaluationTime.endMonitoring()})):(this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderTargetsRenderTimeCounter",{get:function(){return this._renderTargetsRenderTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureRenderTargetsRenderTime",{get:function(){return this._captureRenderTargetsRenderTime},set:function(e){var t=this;e!==this._captureRenderTargetsRenderTime&&(this._captureRenderTargetsRenderTime=e,e?(this._onBeforeRenderTargetsRenderObserver=this.scene.onBeforeRenderTargetsRenderObservable.add(function(){ye.h.StartPerformanceCounter("Render targets rendering"),t._renderTargetsRenderTime.beginMonitoring()}),this._onAfterRenderTargetsRenderObserver=this.scene.onAfterRenderTargetsRenderObservable.add(function(){ye.h.EndPerformanceCounter("Render targets rendering"),t._renderTargetsRenderTime.endMonitoring(!1)})):(this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"particlesRenderTimeCounter",{get:function(){return this._particlesRenderTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureParticlesRenderTime",{get:function(){return this._captureParticlesRenderTime},set:function(e){var t=this;e!==this._captureParticlesRenderTime&&(this._captureParticlesRenderTime=e,e?(this._onBeforeParticlesRenderingObserver=this.scene.onBeforeParticlesRenderingObservable.add(function(){ye.h.StartPerformanceCounter("Particles"),t._particlesRenderTime.beginMonitoring()}),this._onAfterParticlesRenderingObserver=this.scene.onAfterParticlesRenderingObservable.add(function(){ye.h.EndPerformanceCounter("Particles"),t._particlesRenderTime.endMonitoring(!1)})):(this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"spritesRenderTimeCounter",{get:function(){return this._spritesRenderTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureSpritesRenderTime",{get:function(){return this._captureSpritesRenderTime},set:function(e){var t=this;e!==this._captureSpritesRenderTime&&(this._captureSpritesRenderTime=e,this.scene.spriteManagers&&(e?(this._onBeforeSpritesRenderingObserver=this.scene.onBeforeSpritesRenderingObservable.add(function(){ye.h.StartPerformanceCounter("Sprites"),t._spritesRenderTime.beginMonitoring()}),this._onAfterSpritesRenderingObserver=this.scene.onAfterSpritesRenderingObservable.add(function(){ye.h.EndPerformanceCounter("Sprites"),t._spritesRenderTime.endMonitoring(!1)})):(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null,this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null)))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"physicsTimeCounter",{get:function(){return this._physicsTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"capturePhysicsTime",{get:function(){return this._capturePhysicsTime},set:function(e){var t=this;e!==this._capturePhysicsTime&&this.scene.onBeforePhysicsObservable&&(this._capturePhysicsTime=e,e?(this._onBeforePhysicsObserver=this.scene.onBeforePhysicsObservable.add(function(){ye.h.StartPerformanceCounter("Physics"),t._physicsTime.beginMonitoring()}),this._onAfterPhysicsObserver=this.scene.onAfterPhysicsObservable.add(function(){ye.h.EndPerformanceCounter("Physics"),t._physicsTime.endMonitoring()})):(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null,this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationsTimeCounter",{get:function(){return this._animationsTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureAnimationsTime",{get:function(){return this._captureAnimationsTime},set:function(e){var t=this;e!==this._captureAnimationsTime&&(this._captureAnimationsTime=e,e?this._onAfterAnimationsObserver=this.scene.onAfterAnimationsObservable.add(function(){t._animationsTime.endMonitoring()}):(this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"frameTimeCounter",{get:function(){return this._frameTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureFrameTime",{get:function(){return this._captureFrameTime},set:function(e){this._captureFrameTime=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"interFrameTimeCounter",{get:function(){return this._interFrameTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureInterFrameTime",{get:function(){return this._captureInterFrameTime},set:function(e){this._captureInterFrameTime=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderTimeCounter",{get:function(){return this._renderTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureRenderTime",{get:function(){return this._captureRenderTime},set:function(e){var t=this;e!==this._captureRenderTime&&(this._captureRenderTime=e,e?(this._onBeforeDrawPhaseObserver=this.scene.onBeforeDrawPhaseObservable.add(function(){t._renderTime.beginMonitoring(),ye.h.StartPerformanceCounter("Main render")}),this._onAfterDrawPhaseObserver=this.scene.onAfterDrawPhaseObservable.add(function(){t._renderTime.endMonitoring(!1),ye.h.EndPerformanceCounter("Main render")})):(this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cameraRenderTimeCounter",{get:function(){return this._cameraRenderTime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"captureCameraRenderTime",{get:function(){return this._captureCameraRenderTime},set:function(e){var t=this;e!==this._captureCameraRenderTime&&(this._captureCameraRenderTime=e,e?(this._onBeforeCameraRenderObserver=this.scene.onBeforeCameraRenderObservable.add(function(e){t._cameraRenderTime.beginMonitoring(),ye.h.StartPerformanceCounter("Rendering camera "+e.name)}),this._onAfterCameraRenderObserver=this.scene.onAfterCameraRenderObservable.add(function(e){t._cameraRenderTime.endMonitoring(!1),ye.h.EndPerformanceCounter("Rendering camera "+e.name)})):(this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"drawCallsCounter",{get:function(){return this.scene.getEngine()._drawCalls},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=null,this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null,this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null,this.scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver),this._onBeforeAnimationsObserver=null,this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver&&(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null),this._onAfterSpritesRenderingObserver&&(this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null),this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null,this._onBeforePhysicsObserver&&(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null),this._onAfterPhysicsObserver&&(this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null),this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null,this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null,this.scene=null},e}(),so=i(20),ao="#ifdef DIFFUSE\nvarying vec2 vUVDiffuse;\nuniform sampler2D diffuseSampler;\n#endif\n#ifdef OPACITY\nvarying vec2 vUVOpacity;\nuniform sampler2D opacitySampler;\nuniform float opacityIntensity;\n#endif\n#ifdef EMISSIVE\nvarying vec2 vUVEmissive;\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef VERTEXALPHA\nvarying vec4 vColor;\n#endif\nuniform vec4 glowColor;\nvoid main(void)\n{\nvec4 finalColor=glowColor;\n\n#ifdef DIFFUSE\nvec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\nfinalColor.a*=albedoTexture.a;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vUVOpacity);\n#ifdef OPACITYRGB\nfinalColor.a*=getLuminance(opacityMap.rgb);\n#else\nfinalColor.a*=opacityMap.a;\n#endif\nfinalColor.a*=opacityIntensity;\n#endif\n#ifdef VERTEXALPHA\nfinalColor.a*=vColor.a;\n#endif\n#ifdef ALPHATEST\nif (finalColor.a4&&(o.push(Oi.b.MatricesIndicesExtraKind),o.push(Oi.b.MatricesWeightsExtraKind)),r.push("#define NUM_BONE_INFLUENCERS "+s.numBoneInfluencers),r.push("#define BonesPerMesh "+(s.skeleton?s.skeleton.bones.length+1:0))):r.push("#define NUM_BONE_INFLUENCERS 0");var f=s.morphTargetManager,p=0;f&&f.numInfluencers>0&&(r.push("#define MORPHTARGETS"),p=f.numInfluencers,r.push("#define NUM_MORPH_INFLUENCERS "+p),ir.a.PrepareAttributesForMorphTargets(o,s,{NUM_MORPH_INFLUENCERS:p})),t&&(r.push("#define INSTANCES"),o.push("world0"),o.push("world1"),o.push("world2"),o.push("world3")),this._addCustomEffectDefines(r);var _=r.join("\n");return this._cachedDefines!==_&&(this._cachedDefines=_,this._effectLayerMapGenerationEffect=this._scene.getEngine().createEffect("glowMapGeneration",o,["world","mBones","viewProjection","glowColor","morphTargetInfluences","diffuseMatrix","emissiveMatrix","opacityMatrix","opacityIntensity"],["diffuseSampler","emissiveSampler","opacitySampler"],_,void 0,void 0,void 0,{maxSimultaneousMorphTargets:p})),this._effectLayerMapGenerationEffect.isReady()},e.prototype.render=function(){var e=this._mergeEffect;if(e.isReady()){for(var t=0;t-1&&this._scene.effectLayers.splice(t,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onBeforeRenderMainTextureObservable.clear(),this.onBeforeComposeObservable.clear(),this.onAfterComposeObservable.clear(),this.onSizeChangedObservable.clear()},e.prototype.getClassName=function(){return"EffectLayer"},e.Parse=function(e,t,i){return ye.h.Instantiate(e.customType).Parse(e,t,i)},e._SceneComponentInitialization=function(e){throw be.a.WarnImport("EffectLayerSceneComponent")},l.c([Object(L.c)()],e.prototype,"name",void 0),l.c([Object(L.f)()],e.prototype,"neutralColor",void 0),l.c([Object(L.c)()],e.prototype,"isEnabled",void 0),l.c([Object(L.d)()],e.prototype,"camera",null),l.c([Object(L.c)()],e.prototype,"renderingGroupId",null),e}();n.a.AddParser(Ae.a.NAME_EFFECTLAYER,function(e,t,i,n){if(e.effectLayers){i.effectLayers||(i.effectLayers=new Array);for(var r=0;r0){this._previousStencilState=this._engine.getStencilBuffer();for(var n=0,r=i;n-1)){this._renderEffects=!0,this._needStencil=this._needStencil||o.needStencil();var s=o._mainTexture;s._shouldRender()&&(this.scene.incrementRenderId(),s.render(!1,!1),t=!0)}}this.scene.incrementRenderId()}return t},e.prototype._setStencil=function(){this._needStencil&&this._engine.setStencilBuffer(!0)},e.prototype._setStencilBack=function(){this._needStencil&&this._engine.setStencilBuffer(this._previousStencilState)},e.prototype._draw=function(e){if(this._renderEffects){this._engine.setDepthBuffer(!1);for(var t=this.scene.effectLayers,i=0;i0&&e.isBackground===t&&e.renderTargetTextures.indexOf(n)>-1&&0!=(e.layerMask&i)},e.prototype._drawRenderTargetBackground=function(e){var t=this;this._draw(function(i){return t._drawRenderTargetPredicate(i,!0,t.scene.activeCamera.layerMask,e)})},e.prototype._drawRenderTargetForeground=function(e){var t=this;this._draw(function(i){return t._drawRenderTargetPredicate(i,!1,t.scene.activeCamera.layerMask,e)})},e}(),yo="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=baseColor*color;\n}";zt.a.ShadersStore.layerPixelShader=yo;var bo="\nattribute vec2 position;\n\nuniform vec2 scale;\nuniform vec2 offset;\nuniform mat4 textureMatrix;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvec2 shiftedPosition=position*scale+offset;\nvUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));\ngl_Position=vec4(shiftedPosition,0.0,1.0);\n}";zt.a.ShadersStore.layerVertexShader=bo;var To=function(){function e(e,t,i,n,s){this.name=e,this.scale=new o.w(1,1),this.offset=new o.w(0,0),this.alphaBlendingMode=_.a.ALPHA_COMBINE,this.layerMask=268435455,this.renderTargetTextures=[],this.renderOnlyInRenderTargetTextures=!1,this._vertexBuffers={},this.onDisposeObservable=new r.c,this.onBeforeRenderObservable=new r.c,this.onAfterRenderObservable=new r.c,this.texture=t?new ke.a(t,i,!0):null,this.isBackground=void 0===n||n,this.color=void 0===s?new o.f(1,1,1,1):s,this._scene=i||P.a.LastCreatedScene;var a=this._scene._getComponent(Ae.a.NAME_LAYER);a||(a=new vo(this._scene),this._scene._addComponent(a)),this._scene.layers.push(this);var c=this._scene.getEngine(),l=[];l.push(1,1),l.push(-1,1),l.push(-1,-1),l.push(1,-1);var u=new Oi.b(c,l,Oi.b.PositionKind,!1,!1,2);this._vertexBuffers[Oi.b.PositionKind]=u,this._createIndexBuffer(),this._effect=c.createEffect("layer",[Oi.b.PositionKind],["textureMatrix","color","scale","offset"],["textureSampler"],""),this._alphaTestEffect=c.createEffect("layer",[Oi.b.PositionKind],["textureMatrix","color","scale","offset"],["textureSampler"],"#define ALPHATEST")}return Object.defineProperty(e.prototype,"onDispose",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onBeforeRender",{set:function(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onAfterRender",{set:function(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)},enumerable:!0,configurable:!0}),e.prototype._createIndexBuffer=function(){var e=this._scene.getEngine(),t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=e.createIndexBuffer(t)},e.prototype._rebuild=function(){var e=this._vertexBuffers[Oi.b.PositionKind];e&&e._rebuild(),this._createIndexBuffer()},e.prototype.render=function(){var e=this.alphaTest?this._alphaTestEffect:this._effect;if(e.isReady()&&this.texture&&this.texture.isReady()){var t=this._scene.getEngine();this.onBeforeRenderObservable.notifyObservers(this),t.enableEffect(e),t.setState(!1),e.setTexture("textureSampler",this.texture),e.setMatrix("textureMatrix",this.texture.getTextureMatrix()),e.setFloat4("color",this.color.r,this.color.g,this.color.b,this.color.a),e.setVector2("offset",this.offset),e.setVector2("scale",this.scale),t.bindBuffers(this._vertexBuffers,this._indexBuffer,e),this.alphaTest?t.drawElementsType(so.a.TriangleFillMode,0,6):(t.setAlphaMode(this.alphaBlendingMode),t.drawElementsType(so.a.TriangleFillMode,0,6),t.setAlphaMode(_.a.ALPHA_DISABLE)),this.onAfterRenderObservable.notifyObservers(this)}},e.prototype.dispose=function(){var e=this._vertexBuffers[Oi.b.PositionKind];e&&(e.dispose(),this._vertexBuffers[Oi.b.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this.texture&&(this.texture.dispose(),this.texture=null),this.renderTargetTextures=[];var t=this._scene.layers.indexOf(this);this._scene.layers.splice(t,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderObservable.clear()},e}(),Eo=function(){function e(e,t,i,n,r){this.size=e,this.position=t,this.alphaMode=_.a.ALPHA_ONEONE,this.color=i||new o.e(1,1,1),this.texture=n?new ke.a(n,r.getScene(),!0):null,this._system=r,r.lensFlares.push(this)}return e.AddFlare=function(t,i,n,r,o){return new e(t,i,n,r,o)},e.prototype.dispose=function(){this.texture&&this.texture.dispose();var e=this._system.lensFlares.indexOf(this);this._system.lensFlares.splice(e,1)},e}(),Ao="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\ngl_FragColor=baseColor*color;\n}";zt.a.ShadersStore.lensFlarePixelShader=Ao;var xo="\nattribute vec2 position;\n\nuniform mat4 viewportMatrix;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=position*madd+madd;\ngl_Position=viewportMatrix*vec4(position,0.0,1.0);\n}";zt.a.ShadersStore.lensFlareVertexShader=xo;var Ro=function(){function e(t,i,n){this.name=t,this.lensFlares=new Array,this.borderLimit=300,this.viewportBorder=0,this.layerMask=268435455,this._vertexBuffers={},this._isEnabled=!0,this._scene=n||P.a.LastCreatedScene,e._SceneComponentInitialization(this._scene),this._emitter=i,this.id=t,n.lensFlareSystems.push(this),this.meshesSelectionPredicate=function(e){return n.activeCamera&&e.material&&e.isVisible&&e.isEnabled()&&e.isBlocker&&0!=(e.layerMask&n.activeCamera.layerMask)};var r=n.getEngine(),o=[];o.push(1,1),o.push(-1,1),o.push(-1,-1),o.push(1,-1),this._vertexBuffers[Oi.b.PositionKind]=new Oi.b(r,o,Oi.b.PositionKind,!1,!1,2);var s=[];s.push(0),s.push(1),s.push(2),s.push(0),s.push(2),s.push(3),this._indexBuffer=r.createIndexBuffer(s),this._effect=r.createEffect("lensFlare",[Oi.b.PositionKind],["color","viewportMatrix"],["textureSampler"],"")}return Object.defineProperty(e.prototype,"isEnabled",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e},enumerable:!0,configurable:!0}),e.prototype.getScene=function(){return this._scene},e.prototype.getEmitter=function(){return this._emitter},e.prototype.setEmitter=function(e){this._emitter=e},e.prototype.getEmitterPosition=function(){return this._emitter.getAbsolutePosition?this._emitter.getAbsolutePosition():this._emitter.position},e.prototype.computeEffectivePosition=function(e){var t=this.getEmitterPosition();return t=o.x.Project(t,o.j.Identity(),this._scene.getTransformMatrix(),e),this._positionX=t.x,this._positionY=t.y,t=o.x.TransformCoordinates(this.getEmitterPosition(),this._scene.getViewMatrix()),this.viewportBorder>0&&(e.x-=this.viewportBorder,e.y-=this.viewportBorder,e.width+=2*this.viewportBorder,e.height+=2*this.viewportBorder,t.x+=this.viewportBorder,t.y+=this.viewportBorder,this._positionX+=this.viewportBorder,this._positionY+=this.viewportBorder),t.z>0&&(this._positionX>e.x&&this._positionXe.y&&(this._positionY,e.y,e.height),!0)},e.prototype._isVisible=function(){if(!this._isEnabled||!this._scene.activeCamera)return!1;var e=this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition),t=e.length();e.normalize();var i=new It.a(this._scene.activeCamera.globalPosition,e),n=this._scene.pickWithRay(i,this.meshesSelectionPredicate,!0);return!n||!n.hit||n.distance>t},e.prototype.render=function(){if(!this._effect.isReady()||!this._scene.activeCamera)return!1;var e,t,i=this._scene.getEngine(),n=this._scene.activeCamera.viewport.toGlobal(i.getRenderWidth(!0),i.getRenderHeight(!0));if(!this.computeEffectivePosition(n))return!1;if(!this._isVisible())return!1;var r=(e=this._positionXn.x+n.width-this.borderLimit?this._positionX-n.x-n.width+this.borderLimit:0)>(t=this._positionYn.y+n.height-this.borderLimit?this._positionY-n.y-n.height+this.borderLimit:0)?e:t;(r-=this.viewportBorder)>this.borderLimit&&(r=this.borderLimit);var s=1-D.a.Clamp(r/this.borderLimit,0,1);if(s<0)return!1;s>1&&(s=1),this.viewportBorder>0&&(n.x+=this.viewportBorder,n.y+=this.viewportBorder,n.width-=2*this.viewportBorder,n.height-=2*this.viewportBorder,this._positionX-=this.viewportBorder,this._positionY-=this.viewportBorder);var a=n.x+n.width/2,c=n.y+n.height/2,l=a-this._positionX,u=c-this._positionY;i.enableEffect(this._effect),i.setState(!1),i.setDepthBuffer(!1),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect);for(var h=0;h0);for(var i=0,n=t;i0)}},e}();Ro._SceneComponentInitialization=function(e){var t=e._getComponent(Ae.a.NAME_LENSFLARESYSTEM);t||(t=new Po(e),e._addComponent(t))};var So="#ifndef FLOAT\nvec4 pack(float depth)\n{\nconst vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\nconst vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\nvec4 res=fract(depth*bit_shift);\nres-=res.xxyz*bit_mask;\nreturn res;\n}\n#endif\nvarying float vDepthMetric;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\nuniform vec3 biasAndScale;\nuniform vec2 depthValues;\nvoid main(void)\n{\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\nfloat depth=vDepthMetric;\n#ifdef ESM\ndepth=clamp(exp(-min(87.,biasAndScale.z*depth)),0.,1.);\n#endif\n#ifdef FLOAT\ngl_FragColor=vec4(depth,1.0,1.0,1.0);\n#else\ngl_FragColor=pack(depth);\n#endif\n}";zt.a.ShadersStore.shadowMapPixelShader=So;var Co="\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\nuniform vec3 lightData;\n#endif\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\n#include\n#include\nuniform mat4 viewProjection;\nuniform vec3 biasAndScale;\nuniform vec2 depthValues;\nvarying float vDepthMetric;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\nvoid main(void)\n{\nvec3 positionUpdated=position;\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvec3 worldNor=normalize(normalWorld*normal);\n#ifdef DIRECTIONINLIGHTDATA\nvec3 worldLightDir=normalize(-lightData.xyz);\n#else\nvec3 directionToLight=lightData.xyz-worldPos.xyz;\nvec3 worldLightDir=normalize(directionToLight);\n#endif\nfloat ndl=dot(worldNor,worldLightDir);\nfloat sinNL=sqrt(1.0-ndl*ndl);\nfloat normalBias=biasAndScale.y*sinNL;\nworldPos.xyz-=worldNor*normalBias;\n#endif\n\ngl_Position=viewProjection*worldPos;\n#ifdef DEPTHTEXTURE\n\ngl_Position.z+=biasAndScale.x*gl_Position.w;\n#endif\n\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y))+biasAndScale.x;\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n}";zt.a.ShadersStore.shadowMapVertexShader=Co;var Mo="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec2 screenSize;\nvoid main(void)\n{\nvec4 colorDepth=vec4(0.0);\nfor (int x=-OFFSET; x<=OFFSET; x++)\nfor (int y=-OFFSET; y<=OFFSET; y++)\ncolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);\ngl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));\n}";zt.a.ShadersStore.depthBoxBlurPixelShader=Mo;var Oo=function(){function e(t,i,n){this.onBeforeShadowMapRenderObservable=new r.c,this.onBeforeShadowMapRenderMeshObservable=new r.c,this._bias=5e-5,this._normalBias=0,this._blurBoxOffset=1,this._blurScale=2,this._blurKernel=1,this._useKernelBlur=!1,this._filter=e.FILTER_NONE,this._filteringQuality=e.QUALITY_HIGH,this._contactHardeningLightSizeUVRatio=.1,this._darkness=0,this._transparencyShadow=!1,this.frustumEdgeFalloff=0,this.forceBackFacesOnly=!1,this._lightDirection=o.x.Zero(),this._viewMatrix=o.j.Zero(),this._projectionMatrix=o.j.Zero(),this._transformMatrix=o.j.Zero(),this._cachedPosition=new o.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cachedDirection=new o.x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._currentFaceIndex=0,this._currentFaceIndexCache=0,this._defaultTextureMatrix=o.j.Identity(),this._mapSize=t,this._light=i,this._scene=i.getScene(),i._shadowGenerator=this,e._SceneComponentInitialization(this._scene);var s=this._scene.getEngine().getCaps();n?s.textureFloatRender&&s.textureFloatLinearFiltering?this._textureType=_.a.TEXTURETYPE_FLOAT:s.textureHalfFloatRender&&s.textureHalfFloatLinearFiltering?this._textureType=_.a.TEXTURETYPE_HALF_FLOAT:this._textureType=_.a.TEXTURETYPE_UNSIGNED_INT:s.textureHalfFloatRender&&s.textureHalfFloatLinearFiltering?this._textureType=_.a.TEXTURETYPE_HALF_FLOAT:s.textureFloatRender&&s.textureFloatLinearFiltering?this._textureType=_.a.TEXTURETYPE_FLOAT:this._textureType=_.a.TEXTURETYPE_UNSIGNED_INT,this._initializeGenerator(),this._applyFilterValues()}return Object.defineProperty(e.prototype,"bias",{get:function(){return this._bias},set:function(e){this._bias=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"normalBias",{get:function(){return this._normalBias},set:function(e){this._normalBias=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"blurBoxOffset",{get:function(){return this._blurBoxOffset},set:function(e){this._blurBoxOffset!==e&&(this._blurBoxOffset=e,this._disposeBlurPostProcesses())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"blurScale",{get:function(){return this._blurScale},set:function(e){this._blurScale!==e&&(this._blurScale=e,this._disposeBlurPostProcesses())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"blurKernel",{get:function(){return this._blurKernel},set:function(e){this._blurKernel!==e&&(this._blurKernel=e,this._disposeBlurPostProcesses())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useKernelBlur",{get:function(){return this._useKernelBlur},set:function(e){this._useKernelBlur!==e&&(this._useKernelBlur=e,this._disposeBlurPostProcesses())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"depthScale",{get:function(){return void 0!==this._depthScale?this._depthScale:this._light.getDepthScale()},set:function(e){this._depthScale=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"filter",{get:function(){return this._filter},set:function(t){if(this._light.needCube()){if(t===e.FILTER_BLUREXPONENTIALSHADOWMAP)return void(this.useExponentialShadowMap=!0);if(t===e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)return void(this.useCloseExponentialShadowMap=!0);if(t===e.FILTER_PCF||t===e.FILTER_PCSS)return void(this.usePoissonSampling=!0)}t!==e.FILTER_PCF&&t!==e.FILTER_PCSS||1!==this._scene.getEngine().webGLVersion?this._filter!==t&&(this._filter=t,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty()):this.usePoissonSampling=!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usePoissonSampling",{get:function(){return this.filter===e.FILTER_POISSONSAMPLING},set:function(t){(t||this.filter===e.FILTER_POISSONSAMPLING)&&(this.filter=t?e.FILTER_POISSONSAMPLING:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useExponentialShadowMap",{get:function(){return this.filter===e.FILTER_EXPONENTIALSHADOWMAP},set:function(t){(t||this.filter===e.FILTER_EXPONENTIALSHADOWMAP)&&(this.filter=t?e.FILTER_EXPONENTIALSHADOWMAP:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useBlurExponentialShadowMap",{get:function(){return this.filter===e.FILTER_BLUREXPONENTIALSHADOWMAP},set:function(t){(t||this.filter===e.FILTER_BLUREXPONENTIALSHADOWMAP)&&(this.filter=t?e.FILTER_BLUREXPONENTIALSHADOWMAP:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useCloseExponentialShadowMap",{get:function(){return this.filter===e.FILTER_CLOSEEXPONENTIALSHADOWMAP},set:function(t){(t||this.filter===e.FILTER_CLOSEEXPONENTIALSHADOWMAP)&&(this.filter=t?e.FILTER_CLOSEEXPONENTIALSHADOWMAP:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useBlurCloseExponentialShadowMap",{get:function(){return this.filter===e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP},set:function(t){(t||this.filter===e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&(this.filter=t?e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usePercentageCloserFiltering",{get:function(){return this.filter===e.FILTER_PCF},set:function(t){(t||this.filter===e.FILTER_PCF)&&(this.filter=t?e.FILTER_PCF:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"filteringQuality",{get:function(){return this._filteringQuality},set:function(e){this._filteringQuality=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useContactHardeningShadow",{get:function(){return this.filter===e.FILTER_PCSS},set:function(t){(t||this.filter===e.FILTER_PCSS)&&(this.filter=t?e.FILTER_PCSS:e.FILTER_NONE)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contactHardeningLightSizeUVRatio",{get:function(){return this._contactHardeningLightSizeUVRatio},set:function(e){this._contactHardeningLightSizeUVRatio=e},enumerable:!0,configurable:!0}),e.prototype.getDarkness=function(){return this._darkness},e.prototype.setDarkness=function(e){return this._darkness=e>=1?1:e<=0?0:e,this},e.prototype.setTransparencyShadow=function(e){return this._transparencyShadow=e,this},e.prototype.getShadowMap=function(){return this._shadowMap},e.prototype.getShadowMapForRendering=function(){return this._shadowMap2?this._shadowMap2:this._shadowMap},e.prototype.addShadowCaster=function(e,t){var i;return void 0===t&&(t=!0),this._shadowMap?(this._shadowMap.renderList||(this._shadowMap.renderList=[]),this._shadowMap.renderList.push(e),t&&(i=this._shadowMap.renderList).push.apply(i,e.getChildMeshes()),this):this},e.prototype.removeShadowCaster=function(e,t){if(void 0===t&&(t=!0),!this._shadowMap||!this._shadowMap.renderList)return this;var i=this._shadowMap.renderList.indexOf(e);if(-1!==i&&this._shadowMap.renderList.splice(i,1),t)for(var n=0,r=e.getChildren();n1?(this._shadowMap=new _i(this._light.name+"_shadowMap",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube(),void 0,!1,!1),this._shadowMap.createDepthStencilTexture(_.a.LESS,!0)):this._shadowMap=new _i(this._light.name+"_shadowMap",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube()),this._shadowMap.wrapU=ke.a.CLAMP_ADDRESSMODE,this._shadowMap.wrapV=ke.a.CLAMP_ADDRESSMODE,this._shadowMap.anisotropicFilteringLevel=1,this._shadowMap.updateSamplingMode(ke.a.BILINEAR_SAMPLINGMODE),this._shadowMap.renderParticles=!1,this._shadowMap.ignoreCameraViewport=!0,this._shadowMap.onBeforeRenderObservable.add(function(n){t._currentFaceIndex=n,t._filter===e.FILTER_PCF&&i.setColorWrite(!1)}),this._shadowMap.customRenderFunction=this._renderForShadowMap.bind(this),this._shadowMap.onAfterUnbindObservable.add(function(){if(t._filter===e.FILTER_PCF&&i.setColorWrite(!0),t.useBlurExponentialShadowMap||t.useBlurCloseExponentialShadowMap){var n=t.getShadowMapForRendering();n&&t._scene.postProcessManager.directRender(t._blurPostProcesses,n.getInternalTexture(),!0)}});var n=new o.f(0,0,0,0),r=new o.f(1,1,1,1);this._shadowMap.onClearObservable.add(function(i){t._filter===e.FILTER_PCF?i.clear(r,!1,!0,!1):t.useExponentialShadowMap||t.useBlurExponentialShadowMap?i.clear(n,!0,!0,!1):i.clear(r,!0,!0,!1)})},e.prototype._initializeBlurRTTAndPostProcesses=function(){var e=this,t=this._scene.getEngine(),i=this._mapSize/this.blurScale;this.useKernelBlur&&1===this.blurScale||(this._shadowMap2=new _i(this._light.name+"_shadowMap2",i,this._scene,!1,!0,this._textureType),this._shadowMap2.wrapU=ke.a.CLAMP_ADDRESSMODE,this._shadowMap2.wrapV=ke.a.CLAMP_ADDRESSMODE,this._shadowMap2.updateSamplingMode(ke.a.BILINEAR_SAMPLINGMODE)),this.useKernelBlur?(this._kernelBlurXPostprocess=new $n(this._light.name+"KernelBlurX",new o.w(1,0),this.blurKernel,1,null,ke.a.BILINEAR_SAMPLINGMODE,t,!1,this._textureType),this._kernelBlurXPostprocess.width=i,this._kernelBlurXPostprocess.height=i,this._kernelBlurXPostprocess.onApplyObservable.add(function(t){t.setTexture("textureSampler",e._shadowMap)}),this._kernelBlurYPostprocess=new $n(this._light.name+"KernelBlurY",new o.w(0,1),this.blurKernel,1,null,ke.a.BILINEAR_SAMPLINGMODE,t,!1,this._textureType),this._kernelBlurXPostprocess.autoClear=!1,this._kernelBlurYPostprocess.autoClear=!1,this._textureType===_.a.TEXTURETYPE_UNSIGNED_INT&&(this._kernelBlurXPostprocess.packedFloat=!0,this._kernelBlurYPostprocess.packedFloat=!0),this._blurPostProcesses=[this._kernelBlurXPostprocess,this._kernelBlurYPostprocess]):(this._boxBlurPostprocess=new Ht(this._light.name+"DepthBoxBlur","depthBoxBlur",["screenSize","boxOffset"],[],1,null,ke.a.BILINEAR_SAMPLINGMODE,t,!1,"#define OFFSET "+this._blurBoxOffset,this._textureType),this._boxBlurPostprocess.onApplyObservable.add(function(t){t.setFloat2("screenSize",i,i),t.setTexture("textureSampler",e._shadowMap)}),this._boxBlurPostprocess.autoClear=!1,this._blurPostProcesses=[this._boxBlurPostprocess])},e.prototype._renderForShadowMap=function(e,t,i,n){var r,o=this._scene.getEngine();if(n.length){for(o.setColorWrite(!1),r=0;r=s.length)return void(e&&e(i));setTimeout(d,16)}};d()}else e&&e(this)}else e&&e(this)}else e&&e(this)},e.prototype.forceCompilationAsync=function(e){var t=this;return new Promise(function(i){t.forceCompilation(function(){i()},e)})},e.prototype.isReady=function(e,t){var i=[];this._textureType!==_.a.TEXTURETYPE_UNSIGNED_INT&&i.push("#define FLOAT"),this.useExponentialShadowMap||this.useBlurExponentialShadowMap?i.push("#define ESM"):(this.usePercentageCloserFiltering||this.useContactHardeningShadow)&&i.push("#define DEPTHTEXTURE");var n=[Oi.b.PositionKind],r=e.getMesh(),o=e.getMaterial();if(this.normalBias&&r.isVerticesDataPresent(Oi.b.NormalKind)&&(n.push(Oi.b.NormalKind),i.push("#define NORMAL"),r.nonUniformScaling&&i.push("#define NONUNIFORMSCALING"),this.getLight().getTypeID()===zn.a.LIGHTTYPEID_DIRECTIONALLIGHT&&i.push("#define DIRECTIONINLIGHTDATA")),o&&o.needAlphaTesting()){var s=o.getAlphaTestTexture();s&&(i.push("#define ALPHATEST"),r.isVerticesDataPresent(Oi.b.UVKind)&&(n.push(Oi.b.UVKind),i.push("#define UV1")),r.isVerticesDataPresent(Oi.b.UV2Kind)&&1===s.coordinatesIndex&&(n.push(Oi.b.UV2Kind),i.push("#define UV2")))}if(r.useBones&&r.computeBonesUsingShaders&&r.skeleton){n.push(Oi.b.MatricesIndicesKind),n.push(Oi.b.MatricesWeightsKind),r.numBoneInfluencers>4&&(n.push(Oi.b.MatricesIndicesExtraKind),n.push(Oi.b.MatricesWeightsExtraKind));var a=r.skeleton;i.push("#define NUM_BONE_INFLUENCERS "+r.numBoneInfluencers),a.isUsingTextureForMatrices?i.push("#define BONETEXTURE"):i.push("#define BonesPerMesh "+(a.bones.length+1))}else i.push("#define NUM_BONE_INFLUENCERS 0");var c=r.morphTargetManager,l=0;if(c&&c.numInfluencers>0&&(i.push("#define MORPHTARGETS"),l=c.numInfluencers,i.push("#define NUM_MORPH_INFLUENCERS "+l),ir.a.PrepareAttributesForMorphTargets(n,r,{NUM_MORPH_INFLUENCERS:l})),t&&(i.push("#define INSTANCES"),n.push("world0"),n.push("world1"),n.push("world2"),n.push("world3")),this.customShaderOptions&&this.customShaderOptions.defines)for(var u=0,h=this.customShaderOptions.defines;uMath.PI;)r-=2*Math.PI;var s=r/Math.PI,a=o/Math.PI;s=.5*s+.5;var c=Math.round(s*i);c<0?c=0:c>=i&&(c=i-1);var l=Math.round(a*n);l<0?l=0:l>=n&&(l=n-1);var u=n-l-1;return{r:t[u*i*3+3*c+0],g:t[u*i*3+3*c+1],b:t[u*i*3+3*c+2]}},e.FACE_FRONT=[new o.x(-1,-1,-1),new o.x(1,-1,-1),new o.x(-1,1,-1),new o.x(1,1,-1)],e.FACE_BACK=[new o.x(1,-1,1),new o.x(-1,-1,1),new o.x(1,1,1),new o.x(-1,1,1)],e.FACE_RIGHT=[new o.x(1,-1,-1),new o.x(1,-1,1),new o.x(1,1,-1),new o.x(1,1,1)],e.FACE_LEFT=[new o.x(-1,-1,1),new o.x(-1,-1,-1),new o.x(-1,1,1),new o.x(-1,1,-1)],e.FACE_DOWN=[new o.x(-1,1,-1),new o.x(1,1,-1),new o.x(-1,1,1),new o.x(1,1,1)],e.FACE_UP=[new o.x(-1,-1,1),new o.x(1,-1,1),new o.x(-1,-1,-1),new o.x(1,-1,-1)],e}(),Bo=function(){function e(){}return e.Ldexp=function(e,t){return t>1023?e*Math.pow(2,1023)*Math.pow(2,t-1023):t<-1074?e*Math.pow(2,-1074)*Math.pow(2,t+1074):e*Math.pow(2,t)},e.Rgbe2float=function(e,t,i,n,r,o){r>0?(r=this.Ldexp(1,r-136),e[o+0]=t*r,e[o+1]=i*r,e[o+2]=n*r):(e[o+0]=0,e[o+1]=0,e[o+2]=0)},e.readStringLine=function(e,t){for(var i="",n="",r=t;r32767)throw"HDR Bad header format, unsupported size";return{height:t,width:i,dataPosition:s+=n.length+1}},e.GetCubeMapTextureData=function(e,t){var i=new Uint8Array(e),n=this.RGBE_ReadHeader(i),r=this.RGBE_ReadPixels_RLE(i,n);return No.ConvertPanoramaToCubemap(r,n.width,n.height,t)},e.RGBE_ReadPixels=function(e,t){return this.RGBE_ReadPixels_RLE(e,t)},e.RGBE_ReadPixels_RLE=function(e,t){for(var i,n,r,o,s,a=t.height,c=t.width,l=t.dataPosition,u=0,h=0,d=0,f=new ArrayBuffer(4*c),p=new Uint8Array(f),_=new ArrayBuffer(t.width*t.height*4*3),g=new Float32Array(_);a>0;){if(i=e[l++],n=e[l++],r=e[l++],o=e[l++],2!=i||2!=n||128&r)throw"HDR Bad header format, not RLE";if((r<<8|o)!=c)throw"HDR Bad header format, wrong scan line width";for(u=0,d=0;d<4;d++)for(h=(d+1)*c;u128){if(0==(s=i-128)||s>h-u)throw"HDR Bad Format, bad scanline data (run)";for(;s-- >0;)p[u++]=n}else{if(0==(s=i)||s>h-u)throw"HDR Bad Format, bad scanline data (non-run)";if(p[u++]=n,--s>0)for(var m=0;m255){var m=255/g;f*=m,p*=m,_*=m}c[3*d+0]=f,c[3*d+1]=p,c[3*d+2]=_}c?a.push(c):a.push(h)}return a},null,this._onLoad,this._onError))},t.prototype.clone=function(){var e=this.getScene();if(!e)return this;var i=new t(this.url,e,this._size,this._noMipmap,this._generateHarmonics,this.gammaSpace);return i.level=this.level,i.wrapU=this.wrapU,i.wrapV=this.wrapV,i.coordinatesIndex=this.coordinatesIndex,i.coordinatesMode=this.coordinatesMode,i},t.prototype.delayLoad=function(){this.delayLoadState===ge.b.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=ge.b.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,this._noMipmap),this._texture||this.loadTexture())},t.prototype.getReflectionTextureMatrix=function(){return this._textureMatrix},t.prototype.setReflectionTextureMatrix=function(e){var t=this;this._textureMatrix=e,e.updateFlag!==this._textureMatrix.updateFlag&&e.isIdentity()!==this._textureMatrix.isIdentity()&&this.getScene().markAllMaterialsAsDirty(_.a.MATERIAL_TextureDirtyFlag,function(e){return-1!==e.getActiveTextures().indexOf(t)})},t.Parse=function(e,i,n){var r=null;return e.name&&!e.isRenderTarget&&((r=new t(n+e.name,i,e.size,e.noMipmap,e.generateHarmonics,e.useInGammaSpace)).name=e.name,r.hasAlpha=e.hasAlpha,r.level=e.level,r.coordinatesMode=e.coordinatesMode,r.isBlocking=e.isBlocking),r&&(e.boundingBoxPosition&&(r.boundingBoxPosition=o.x.FromArray(e.boundingBoxPosition)),e.boundingBoxSize&&(r.boundingBoxSize=o.x.FromArray(e.boundingBoxSize)),e.rotationY&&(r.rotationY=e.rotationY)),r},t.prototype.serialize=function(){if(!this.name)return null;var e={};return e.name=this.name,e.hasAlpha=this.hasAlpha,e.isCube=!0,e.level=this.level,e.size=this._size,e.coordinatesMode=this.coordinatesMode,e.useInGammaSpace=this.gammaSpace,e.generateHarmonics=this._generateHarmonics,e.customType="BABYLON.HDRCubeTexture",e.noMipmap=this._noMipmap,e.isBlocking=this._isBlocking,e.rotationY=this._rotationY,e},t._facesMapping=["right","left","up","down","front","back"],t}(Kn.a);s.a.RegisteredTypes["BABYLON.HDRCubeTexture"]=Uo;var Vo=function(){function e(e,t,i){void 0===t&&(t=0),void 0===i&&(i=null),this.name=e,this.animations=new Array,this._positions=null,this._normals=null,this._tangents=null,this.onInfluenceChanged=new r.c,this._onDataLayoutChanged=new r.c,this._animationPropertiesOverride=null,this._scene=i||P.a.LastCreatedScene,this.influence=t}return Object.defineProperty(e.prototype,"influence",{get:function(){return this._influence},set:function(e){if(this._influence!==e){var t=this._influence;this._influence=e,this.onInfluenceChanged.hasObservers&&this.onInfluenceChanged.notifyObservers(0===t||0===e)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"animationPropertiesOverride",{get:function(){return!this._animationPropertiesOverride&&this._scene?this._scene.animationPropertiesOverride:this._animationPropertiesOverride},set:function(e){this._animationPropertiesOverride=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasPositions",{get:function(){return!!this._positions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasNormals",{get:function(){return!!this._normals},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTangents",{get:function(){return!!this._tangents},enumerable:!0,configurable:!0}),e.prototype.setPositions=function(e){var t=this.hasPositions;this._positions=e,t!==this.hasPositions&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getPositions=function(){return this._positions},e.prototype.setNormals=function(e){var t=this.hasNormals;this._normals=e,t!==this.hasNormals&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getNormals=function(){return this._normals},e.prototype.setTangents=function(e){var t=this.hasTangents;this._tangents=e,t!==this.hasTangents&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getTangents=function(){return this._tangents},e.prototype.serialize=function(){var e={};return e.name=this.name,e.influence=this.influence,e.positions=Array.prototype.slice.call(this.getPositions()),null!=this.id&&(e.id=this.id),this.hasNormals&&(e.normals=Array.prototype.slice.call(this.getNormals())),this.hasTangents&&(e.tangents=Array.prototype.slice.call(this.getTangents())),L.a.AppendSerializedAnimations(this,e),e},e.prototype.getClassName=function(){return"MorphTarget"},e.Parse=function(t){var i=new e(t.name,t.influence);if(i.setPositions(t.positions),null!=t.id&&(i.id=t.id),t.normals&&i.setNormals(t.normals),t.tangents&&i.setTangents(t.tangents),t.animations)for(var n=0;n=0&&(this._targets.splice(t,1),e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t,1)[0]),e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t,1)[0]),this._syncActiveTargets(!0))},e.prototype.serialize=function(){var e={};e.id=this.uniqueId,e.targets=[];for(var t=0,i=this._targets;t-1&&(this._impostors.splice(t,1).length&&this.getPhysicsPlugin().removePhysicsBody(e))},e.prototype.addJoint=function(e,t,i){var n={mainImpostor:e,connectedImpostor:t,joint:i};i.physicsPlugin=this._physicsPlugin,this._joints.push(n),this._physicsPlugin.generateJoint(n)},e.prototype.removeJoint=function(e,t,i){var n=this._joints.filter(function(n){return n.connectedImpostor===t&&n.joint===i&&n.mainImpostor===e});n.length&&this._physicsPlugin.removeJoint(n[0])},e.prototype._step=function(e){var t=this;this._impostors.forEach(function(e){e.isBodyInitRequired()&&t._physicsPlugin.generatePhysicsBody(e)}),e>.1?e=.1:e<=0&&(e=1/60),this._physicsPlugin.executeStep(e,this._impostors)},e.prototype.getPhysicsPlugin=function(){return this._physicsPlugin},e.prototype.getImpostors=function(){return this._impostors},e.prototype.getImpostorForPhysicsObject=function(e){for(var t=0;t0&&(this._removeAfterStep.forEach(function(e){t.world.remove(e.physicsBody)}),this._removeAfterStep=[])},e.prototype.applyImpulse=function(e,t,i){var n=new this.BJSCANNON.Vec3(i.x,i.y,i.z),r=new this.BJSCANNON.Vec3(t.x,t.y,t.z);e.physicsBody.applyImpulse(r,n)},e.prototype.applyForce=function(e,t,i){var n=new this.BJSCANNON.Vec3(i.x,i.y,i.z),r=new this.BJSCANNON.Vec3(t.x,t.y,t.z);e.physicsBody.applyForce(r,n)},e.prototype.generatePhysicsBody=function(e){if(e.parent)e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());else{if(e.isBodyInitRequired()){var t=this._createShape(e),i=e.physicsBody;i&&this.removePhysicsBody(e);var n=this._addMaterial("mat-"+e.uniqueId,e.getParam("friction"),e.getParam("restitution")),r={mass:e.getParam("mass"),material:n},o=e.getParam("nativeOptions");for(var s in o)o.hasOwnProperty(s)&&(r[s]=o[s]);e.physicsBody=new this.BJSCANNON.Body(r),e.physicsBody.addEventListener("collide",e.onCollide),this.world.addEventListener("preStep",e.beforeStep),this.world.addEventListener("postStep",e.afterStep),e.physicsBody.addShape(t),this.world.add(e.physicsBody),i&&["force","torque","velocity","angularVelocity"].forEach(function(t){e.physicsBody[t].copy(i[t])}),this._processChildMeshes(e)}this._updatePhysicsBodyTransformation(e)}},e.prototype._processChildMeshes=function(e){var t=this,i=e.object.getChildMeshes?e.object.getChildMeshes(!0):[],n=e.object.rotationQuaternion;if(i.length){var r=function(i,s){if(n&&s.rotationQuaternion){var a=s.getPhysicsImpostor();if(a)if(a.parent!==e){var c=s.getAbsolutePosition().subtract(e.object.getAbsolutePosition()),l=s.rotationQuaternion.multiply(o.q.Inverse(n));a.physicsBody&&(t.removePhysicsBody(a),a.physicsBody=null),a.parent=e,a.resetUpdateFlags(),e.physicsBody.addShape(t._createShape(a),new t.BJSCANNON.Vec3(c.x,c.y,c.z),new t.BJSCANNON.Quaternion(l.x,l.y,l.z,l.w)),e.physicsBody.mass+=a.getParam("mass")}n.multiplyInPlace(s.rotationQuaternion),s.getChildMeshes(!0).filter(function(e){return!!e.physicsImpostor}).forEach(r.bind(t,s.getAbsolutePosition()))}};i.filter(function(e){return!!e.physicsImpostor}).forEach(r.bind(this,e.object.getAbsolutePosition()))}},e.prototype.removePhysicsBody=function(e){e.physicsBody.removeEventListener("collide",e.onCollide),this.world.removeEventListener("preStep",e.beforeStep),this.world.removeEventListener("postStep",e.afterStep),this._removeAfterStep.push(e)},e.prototype.generateJoint=function(e){var t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(t&&i){var n,r=e.joint.jointData,o={pivotA:r.mainPivot?(new this.BJSCANNON.Vec3).copy(r.mainPivot):null,pivotB:r.connectedPivot?(new this.BJSCANNON.Vec3).copy(r.connectedPivot):null,axisA:r.mainAxis?(new this.BJSCANNON.Vec3).copy(r.mainAxis):null,axisB:r.connectedAxis?(new this.BJSCANNON.Vec3).copy(r.connectedAxis):null,maxForce:r.nativeParams.maxForce,collideConnected:!!r.collision};switch(e.joint.type){case zo.e.HingeJoint:case zo.e.Hinge2Joint:n=new this.BJSCANNON.HingeConstraint(t,i,o);break;case zo.e.DistanceJoint:n=new this.BJSCANNON.DistanceConstraint(t,i,r.maxDistance||2);break;case zo.e.SpringJoint:var s=r;n=new this.BJSCANNON.Spring(t,i,{restLength:s.length,stiffness:s.stiffness,damping:s.damping,localAnchorA:o.pivotA,localAnchorB:o.pivotB});break;case zo.e.LockJoint:n=new this.BJSCANNON.LockConstraint(t,i,o);break;case zo.e.PointToPointJoint:case zo.e.BallAndSocketJoint:default:n=new this.BJSCANNON.PointToPointConstraint(t,o.pivotA,i,o.pivotB,o.maxForce)}n.collideConnected=!!r.collision,e.joint.physicsJoint=n,e.joint.type!==zo.e.SpringJoint?this.world.addConstraint(n):(e.joint.jointData.forceApplicationCallback=e.joint.jointData.forceApplicationCallback||function(){n.applyForce()},e.mainImpostor.registerAfterPhysicsStep(e.joint.jointData.forceApplicationCallback))}},e.prototype.removeJoint=function(e){e.joint.type!==zo.e.SpringJoint?this.world.removeConstraint(e.joint.physicsJoint):e.mainImpostor.unregisterAfterPhysicsStep(e.joint.jointData.forceApplicationCallback)},e.prototype._addMaterial=function(e,t,i){var n,r;for(n=0;n1e3*i));a++);this.time+=n;for(var c=this.time%i/i,l=e,u=this.bodies,h=0;h!==u.length;h++){var d=u[h];d.type!==t.Body.STATIC&&d.sleepState!==t.Body.SLEEPING?(d.position.vsub(d.previousPosition,l),l.scale(c,l),d.position.vadd(l,d.interpolatedPosition)):(d.interpolatedPosition.copy(d.position),d.interpolatedQuaternion.copy(d.quaternion))}}}},e.prototype.raycast=function(e,t){return this._cannonRaycastResult.reset(),this.world.raycastClosest(e,t,{},this._cannonRaycastResult),this._raycastResult.reset(e,t),this._cannonRaycastResult.hasHit&&(this._raycastResult.setHitData({x:this._cannonRaycastResult.hitNormalWorld.x,y:this._cannonRaycastResult.hitNormalWorld.y,z:this._cannonRaycastResult.hitNormalWorld.z},{x:this._cannonRaycastResult.hitPointWorld.x,y:this._cannonRaycastResult.hitPointWorld.y,z:this._cannonRaycastResult.hitPointWorld.z}),this._raycastResult.setHitDistance(this._cannonRaycastResult.distance)),this._raycastResult},e}();jo.DefaultPluginFactory=function(){return new Wo};var Xo=function(){function e(e,t){void 0===t&&(t=OIMO),this.name="OimoJSPlugin",this._tmpImpostorsArray=[],this._tmpPositionVector=o.x.Zero(),this.BJSOIMO=t,this.world=new this.BJSOIMO.World({iterations:e}),this.world.clear(),this._raycastResult=new Ho}return e.prototype.setGravity=function(e){this.world.gravity.copy(e)},e.prototype.setTimeStep=function(e){this.world.timeStep=e},e.prototype.getTimeStep=function(){return this.world.timeStep},e.prototype.executeStep=function(e,t){var i=this;t.forEach(function(e){e.beforeStep()}),this.world.step(),t.forEach(function(e){e.afterStep(),i._tmpImpostorsArray[e.uniqueId]=e});for(var n=this.world.contacts;null!==n;)if(!n.touching||n.body1.sleeping||n.body2.sleeping){var r=this._tmpImpostorsArray[+n.body1.name],o=this._tmpImpostorsArray[+n.body2.name];r&&o?(r.onCollide({body:o.physicsBody}),o.onCollide({body:r.physicsBody}),n=n.next):n=n.next}else n=n.next},e.prototype.applyImpulse=function(e,t,i){var n=e.physicsBody.mass;e.physicsBody.applyImpulse(i.scale(this.world.invScale),t.scale(this.world.invScale*n))},e.prototype.applyForce=function(e,t,i){p.a.Warn("Oimo doesn't support applying force. Using impule instead."),this.applyImpulse(e,t,i)},e.prototype.generatePhysicsBody=function(e){var t=this;if(e.parent)e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());else{if(e.isBodyInitRequired()){var i={name:e.uniqueId,config:[e.getParam("mass")||1,e.getParam("friction"),e.getParam("restitution")],size:[],type:[],pos:[],posShape:[],rot:[],rotShape:[],move:0!==e.getParam("mass"),density:e.getParam("mass"),friction:e.getParam("friction"),restitution:e.getParam("restitution"),world:this.world},n=[e];(a=e.object).getChildMeshes&&a.getChildMeshes().forEach(function(e){e.physicsImpostor&&n.push(e.physicsImpostor)});var r=function(e){return Math.max(e,jo.Epsilon)},s=new o.q;n.forEach(function(n){if(n.object.rotationQuaternion){var o=n.object.rotationQuaternion;s=o.clone();var a=o.toEulerAngles(),c=n.getObjectExtendSize();if(n===e){var l=e.getObjectCenter();e.object.getAbsolutePivotPoint().subtractToRef(l,t._tmpPositionVector),t._tmpPositionVector.divideInPlace(e.object.scaling),i.pos.push(l.x),i.pos.push(l.y),i.pos.push(l.z),i.posShape.push(0,0,0),i.rotShape.push(0,0,0)}else{var u=n.object.getAbsolutePosition().subtract(e.object.getAbsolutePosition());i.posShape.push(u.x),i.posShape.push(u.y),i.posShape.push(u.z),i.pos.push(0,0,0),i.rotShape.push(57.29577951308232*a.x),i.rotShape.push(57.29577951308232*a.y),i.rotShape.push(57.29577951308232*a.z)}switch(n.type){case ko.a.ParticleImpostor:p.a.Warn("No Particle support in OIMO.js. using SphereImpostor instead");case ko.a.SphereImpostor:var h=c.x,d=c.y,f=c.z,_=Math.max(r(h),r(d),r(f))/2;i.type.push("sphere"),i.size.push(_),i.size.push(_),i.size.push(_);break;case ko.a.CylinderImpostor:var g=r(c.x)/2,m=r(c.y);i.type.push("cylinder"),i.size.push(g),i.size.push(m),i.size.push(m);break;case ko.a.PlaneImpostor:case ko.a.BoxImpostor:default:g=r(c.x),m=r(c.y);var v=r(c.z);i.type.push("box"),i.size.push(g),i.size.push(m),i.size.push(v)}n.object.rotationQuaternion=o}}),e.physicsBody=this.world.add(i),e.physicsBody.resetQuaternion(s),e.physicsBody.updatePosition(0)}else this._tmpPositionVector.copyFromFloats(0,0,0);var a;e.setDeltaPosition(this._tmpPositionVector)}},e.prototype.removePhysicsBody=function(e){this.world.removeRigidBody(e.physicsBody)},e.prototype.generateJoint=function(e){var t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(t&&i){var n,r=e.joint.jointData,o=r.nativeParams||{},s={body1:t,body2:i,axe1:o.axe1||(r.mainAxis?r.mainAxis.asArray():null),axe2:o.axe2||(r.connectedAxis?r.connectedAxis.asArray():null),pos1:o.pos1||(r.mainPivot?r.mainPivot.asArray():null),pos2:o.pos2||(r.connectedPivot?r.connectedPivot.asArray():null),min:o.min,max:o.max,collision:o.collision||r.collision,spring:o.spring,world:this.world};switch(e.joint.type){case zo.e.BallAndSocketJoint:n="jointBall";break;case zo.e.SpringJoint:p.a.Warn("OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead");var a=r;s.min=a.length||s.min,s.max=Math.max(s.min,s.max);case zo.e.DistanceJoint:n="jointDistance",s.max=r.maxDistance;break;case zo.e.PrismaticJoint:n="jointPrisme";break;case zo.e.SliderJoint:n="jointSlide";break;case zo.e.WheelJoint:n="jointWheel";break;case zo.e.HingeJoint:default:n="jointHinge"}s.type=n,e.joint.physicsJoint=this.world.add(s)}},e.prototype.removeJoint=function(e){try{this.world.removeJoint(e.joint.physicsJoint)}catch(e){p.a.Warn(e)}},e.prototype.isSupported=function(){return void 0!==this.BJSOIMO},e.prototype.setTransformationFromPhysicsBody=function(e){e.physicsBody.sleeping||(e.object.position.copyFrom(e.physicsBody.getPosition()),e.object.rotationQuaternion&&e.object.rotationQuaternion.copyFrom(e.physicsBody.getQuaternion()))},e.prototype.setPhysicsBodyTransformation=function(e,t,i){var n=e.physicsBody;n.position.copy(t),n.orientation.copy(i),n.syncShapes(),n.awake()},e.prototype.setLinearVelocity=function(e,t){e.physicsBody.linearVelocity.copy(t)},e.prototype.setAngularVelocity=function(e,t){e.physicsBody.angularVelocity.copy(t)},e.prototype.getLinearVelocity=function(e){var t=e.physicsBody.linearVelocity;return t?new o.x(t.x,t.y,t.z):null},e.prototype.getAngularVelocity=function(e){var t=e.physicsBody.angularVelocity;return t?new o.x(t.x,t.y,t.z):null},e.prototype.setBodyMass=function(e,t){var i=0===t;e.physicsBody.shapes.density=i?1:t,e.physicsBody.setupMass(i?2:1)},e.prototype.getBodyMass=function(e){return e.physicsBody.shapes.density},e.prototype.getBodyFriction=function(e){return e.physicsBody.shapes.friction},e.prototype.setBodyFriction=function(e,t){e.physicsBody.shapes.friction=t},e.prototype.getBodyRestitution=function(e){return e.physicsBody.shapes.restitution},e.prototype.setBodyRestitution=function(e,t){e.physicsBody.shapes.restitution=t},e.prototype.sleepBody=function(e){e.physicsBody.sleep()},e.prototype.wakeUpBody=function(e){e.physicsBody.awake()},e.prototype.updateDistanceJoint=function(e,t,i){e.physicsJoint.limitMotor.upperLimit=t,void 0!==i&&(e.physicsJoint.limitMotor.lowerLimit=i)},e.prototype.setMotor=function(e,t,i,n){void 0!==i?p.a.Warn("OimoJS plugin currently has unexpected behavior when using setMotor with force parameter"):i=1e6,t*=-1;var r=n?e.physicsJoint.rotationalLimitMotor2:e.physicsJoint.rotationalLimitMotor1||e.physicsJoint.rotationalLimitMotor||e.physicsJoint.limitMotor;r&&r.setMotor(t,i)},e.prototype.setLimit=function(e,t,i,n){var r=n?e.physicsJoint.rotationalLimitMotor2:e.physicsJoint.rotationalLimitMotor1||e.physicsJoint.rotationalLimitMotor||e.physicsJoint.limitMotor;r&&r.setLimit(t,void 0===i?-t:i)},e.prototype.syncMeshWithImpostor=function(e,t){var i=t.physicsBody;e.position.x=i.position.x,e.position.y=i.position.y,e.position.z=i.position.z,e.rotationQuaternion&&(e.rotationQuaternion.x=i.orientation.x,e.rotationQuaternion.y=i.orientation.y,e.rotationQuaternion.z=i.orientation.z,e.rotationQuaternion.w=i.orientation.s)},e.prototype.getRadius=function(e){return e.physicsBody.shapes.radius},e.prototype.getBoxSizeToRef=function(e,t){var i=e.physicsBody.shapes;t.x=2*i.halfWidth,t.y=2*i.halfHeight,t.z=2*i.halfDepth},e.prototype.dispose=function(){this.world.clear()},e.prototype.raycast=function(e,t){return p.a.Warn("raycast is not currently supported by the Oimo physics plugin"),this._raycastResult.reset(e,t),this._raycastResult},e}();Mi.a.CreateRibbon=function(e){var t=e.pathArray,i=e.closeArray||!1,n=e.closePath||!1,r=e.invertUV||!1,o=Math.floor(t[0].length/2),s=e.offset||o;s=s>o?o:Math.floor(s);var a,c,l,u,h=0===e.sideOrientation?0:e.sideOrientation||Mi.a.DEFAULTSIDE,d=e.uvs,f=e.colors,p=[],_=[],g=[],m=[],v=[],y=[],b=[],T=[],E=[],A=[];if(t.length<2){var x=[],R=[];for(l=0;l0&&(C=P[u].subtract(P[u-1]).length()+b[c],v[c].push(C),b[c]=C),u++;n&&(u--,p.push(P[0].x,P[0].y,P[0].z),C=P[u].subtract(P[0]).length()+b[c],v[c].push(C),b[c]=C),E[c]=S+D,A[c]=I,I+=S+D}var L,w,F=null,N=null;for(l=0;l3?0:u,h);var A=Yo.CreateRibbon(e,{pathArray:b,closeArray:c,closePath:l,updatable:f,sideOrientation:p,invertUV:g,frontUVs:m||void 0,backUVs:v||void 0},d);return A._creationDataStorage.pathArray=b,A._creationDataStorage.path3D=y,A._creationDataStorage.cap=u,A},e}(),Qo=function(){function e(e,t){var i=this;void 0===e&&(e=!0),void 0===t&&(t=Ammo),this._useDeltaForWorldStep=e,this.bjsAMMO={},this.name="AmmoJSPlugin",this._timeStep=1/60,this._fixedTimeStep=1/60,this._maxSteps=5,this._tmpQuaternion=new o.q,this._tmpContactCallbackResult=!1,this._tmpVector=new o.x,this._tmpMatrix=new o.j,"function"==typeof t?t(this.bjsAMMO):this.bjsAMMO=t,this.isSupported()?(this._collisionConfiguration=new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration,this._dispatcher=new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration),this._overlappingPairCache=new this.bjsAMMO.btDbvtBroadphase,this._solver=new this.bjsAMMO.btSequentialImpulseConstraintSolver,this._softBodySolver=new this.bjsAMMO.btDefaultSoftBodySolver,this.world=new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher,this._overlappingPairCache,this._solver,this._collisionConfiguration,this._softBodySolver),this._tmpAmmoConcreteContactResultCallback=new this.bjsAMMO.ConcreteContactResultCallback,this._tmpAmmoConcreteContactResultCallback.addSingleResult=function(){i._tmpContactCallbackResult=!0},this._raycastResult=new Ho,this._tmpAmmoTransform=new this.bjsAMMO.btTransform,this._tmpAmmoTransform.setIdentity(),this._tmpAmmoQuaternion=new this.bjsAMMO.btQuaternion(0,0,0,1),this._tmpAmmoVectorA=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorB=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorC=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorD=new this.bjsAMMO.btVector3(0,0,0)):p.a.Error("AmmoJS is not available. Please make sure you included the js file.")}return e.prototype.setGravity=function(e){this._tmpAmmoVectorA.setValue(e.x,e.y,e.z),this.world.setGravity(this._tmpAmmoVectorA),this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA)},e.prototype.setTimeStep=function(e){this._timeStep=e},e.prototype.setFixedTimeStep=function(e){this._fixedTimeStep=e},e.prototype.setMaxSteps=function(e){this._maxSteps=e},e.prototype.getTimeStep=function(){return this._timeStep},e.prototype._isImpostorInContact=function(e){return this._tmpContactCallbackResult=!1,this.world.contactTest(e.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult},e.prototype._isImpostorPairInContact=function(e,t){return this._tmpContactCallbackResult=!1,this.world.contactPairTest(e.physicsBody,t.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult},e.prototype._stepSimulation=function(e,t,i){if(void 0===e&&(e=1/60),void 0===t&&(t=10),void 0===i&&(i=1/60),0==t)this.world.stepSimulation(e,0);else for(;t>0&&e>0;)e-i0&&this._isImpostorInContact(a))for(var c=0,l=a._onPhysicsCollideCallbacks;c3?3:a;var c=(new Ammo.btSoftBodyHelpers).CreateRope(this.world.getWorldInfo(),this._tmpAmmoVectorA,this._tmpAmmoVectorB,i-1,a);return c.get_m_cfg().set_collisions(17),c},e.prototype._addHullVerts=function(e,t,i){var n=this,r=0;if(i&&i.getIndices&&i.getWorldMatrix&&i.getChildMeshes){var s=i.getIndices();s||(s=[]);var a=i.getVerticesData(Oi.b.PositionKind);a||(a=[]),i.computeWorldMatrix(!1);for(var c=s.length/3,l=0;l0){if(e.type!=ko.a.NoImpostor){var l=this._createShape(e,!0);l&&(this._tmpAmmoTransform.getOrigin().setValue(0,0,0),this._tmpAmmoQuaternion.setValue(0,0,0,1),this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion),n.addChildShape(this._tmpAmmoTransform,l))}return n}Ammo.destroy(n),n=null}switch(e.type){case ko.a.SphereImpostor:n=new Ammo.btSphereShape(s.x/2);break;case ko.a.CylinderImpostor:this._tmpAmmoVectorA.setValue(s.x/2,s.y/2,s.z/2),n=new Ammo.btCylinderShape(this._tmpAmmoVectorA);break;case ko.a.PlaneImpostor:case ko.a.BoxImpostor:this._tmpAmmoVectorA.setValue(s.x/2,s.y/2,s.z/2),n=new Ammo.btBoxShape(this._tmpAmmoVectorA);break;case ko.a.MeshImpostor:if(0==e.getParam("mass")){var u=new Ammo.btTriangleMesh;e._pluginData.toDispose.push(u);var h=this._addMeshVerts(u,r,r);n=0==h?new Ammo.btCompoundShape:new Ammo.btBvhTriangleMeshShape(u);break}case ko.a.ConvexHullImpostor:var d=new Ammo.btConvexHullShape;0==(h=this._addHullVerts(d,r,r))?(e._pluginData.toDispose.push(d),n=new Ammo.btCompoundShape):n=d;break;case ko.a.NoImpostor:n=new Ammo.btSphereShape(s.x/2);break;case ko.a.SoftbodyImpostor:n=this._createSoftbody(e);break;case ko.a.ClothImpostor:n=this._createCloth(e);break;case ko.a.RopeImpostor:n=this._createRope(e);break;default:p.a.Warn("The impostor type is not currently supported by the ammo plugin.")}return n},e.prototype.setTransformationFromPhysicsBody=function(e){e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),e.object.position.set(this._tmpAmmoTransform.getOrigin().x(),this._tmpAmmoTransform.getOrigin().y(),this._tmpAmmoTransform.getOrigin().z()),e.object.rotationQuaternion?e.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()):e.object.rotation&&(this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()),this._tmpQuaternion.toEulerAnglesToRef(e.object.rotation))},e.prototype.setPhysicsBodyTransformation=function(e,t,i){var n=e.physicsBody.getWorldTransform();if(n.getOrigin().x()!=t.x||n.getOrigin().y()!=t.y||n.getOrigin().z()!=t.z||n.getRotation().x()!=i.x||n.getRotation().y()!=i.y||n.getRotation().z()!=i.z||n.getRotation().w()!=i.w)if(this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),n.setOrigin(this._tmpAmmoVectorA),this._tmpAmmoQuaternion.setValue(i.x,i.y,i.z,i.w),n.setRotation(this._tmpAmmoQuaternion),e.physicsBody.setWorldTransform(n),0==e.mass){var r=e.physicsBody.getMotionState();r&&r.setWorldTransform(n)}else e.physicsBody.activate()},e.prototype.isSupported=function(){return void 0!==this.bjsAMMO},e.prototype.setLinearVelocity=function(e,t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),e.soft?e.physicsBody.linearVelocity(this._tmpAmmoVectorA):e.physicsBody.setLinearVelocity(this._tmpAmmoVectorA)},e.prototype.setAngularVelocity=function(e,t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),e.soft?e.physicsBody.angularVelocity(this._tmpAmmoVectorA):e.physicsBody.setAngularVelocity(this._tmpAmmoVectorA)},e.prototype.getLinearVelocity=function(e){if(e.soft)var t=e.physicsBody.linearVelocity();else t=e.physicsBody.getLinearVelocity();if(!t)return null;var i=new o.x(t.x(),t.y(),t.z());return Ammo.destroy(t),i},e.prototype.getAngularVelocity=function(e){if(e.soft)var t=e.physicsBody.angularVelocity();else t=e.physicsBody.getAngularVelocity();if(!t)return null;var i=new o.x(t.x(),t.y(),t.z());return Ammo.destroy(t),i},e.prototype.setBodyMass=function(e,t){e.soft?e.physicsBody.setTotalMass(t,!1):e.physicsBody.setMassProps(t),e._pluginData.mass=t},e.prototype.getBodyMass=function(e){return e._pluginData.mass||0},e.prototype.getBodyFriction=function(e){return e._pluginData.friction||0},e.prototype.setBodyFriction=function(e,t){e.soft?e.physicsBody.get_m_cfg().set_kDF(t):e.physicsBody.setFriction(t),e._pluginData.friction=t},e.prototype.getBodyRestitution=function(e){return e._pluginData.restitution||0},e.prototype.setBodyRestitution=function(e,t){e.physicsBody.setRestitution(t),e._pluginData.restitution=t},e.prototype.getBodyPressure=function(e){return e.soft?e._pluginData.pressure||0:(p.a.Warn("Pressure is not a property of a rigid body"),0)},e.prototype.setBodyPressure=function(e,t){e.soft?e.type===ko.a.SoftbodyImpostor?(e.physicsBody.get_m_cfg().set_kPR(t),e._pluginData.pressure=t):(e.physicsBody.get_m_cfg().set_kPR(0),e._pluginData.pressure=0):p.a.Warn("Pressure can only be applied to a softbody")},e.prototype.getBodyStiffness=function(e){return e.soft?e._pluginData.stiffness||0:(p.a.Warn("Stiffness is not a property of a rigid body"),0)},e.prototype.setBodyStiffness=function(e,t){e.soft?(t=(t=t<0?0:t)>1?1:t,e.physicsBody.get_m_materials().at(0).set_m_kLST(t),e._pluginData.stiffness=t):p.a.Warn("Stiffness cannot be applied to a rigid body")},e.prototype.getBodyVelocityIterations=function(e){return e.soft?e._pluginData.velocityIterations||0:(p.a.Warn("Velocity iterations is not a property of a rigid body"),0)},e.prototype.setBodyVelocityIterations=function(e,t){e.soft?(t=t<0?0:t,e.physicsBody.get_m_cfg().set_viterations(t),e._pluginData.velocityIterations=t):p.a.Warn("Velocity iterations cannot be applied to a rigid body")},e.prototype.getBodyPositionIterations=function(e){return e.soft?e._pluginData.positionIterations||0:(p.a.Warn("Position iterations is not a property of a rigid body"),0)},e.prototype.setBodyPositionIterations=function(e,t){e.soft?(t=t<0?0:t,e.physicsBody.get_m_cfg().set_piterations(t),e._pluginData.positionIterations=t):p.a.Warn("Position iterations cannot be applied to a rigid body")},e.prototype.appendAnchor=function(e,t,i,n,r,o){void 0===r&&(r=1),void 0===o&&(o=!1);var s=e.segments,a=Math.round((s-1)*i)+s*(s-1-Math.round((s-1)*n));e.physicsBody.appendAnchor(a,t.physicsBody,o,r)},e.prototype.appendHook=function(e,t,i,n,r){void 0===n&&(n=1),void 0===r&&(r=!1);var o=Math.round(e.segments*i);e.physicsBody.appendAnchor(o,t.physicsBody,r,n)},e.prototype.sleepBody=function(e){p.a.Warn("sleepBody is not currently supported by the Ammo physics plugin")},e.prototype.wakeUpBody=function(e){e.physicsBody.activate()},e.prototype.updateDistanceJoint=function(e,t,i){p.a.Warn("updateDistanceJoint is not currently supported by the Ammo physics plugin")},e.prototype.setMotor=function(e,t,i,n){e.physicsJoint.enableAngularMotor(!0,t,i)},e.prototype.setLimit=function(e,t,i){p.a.Warn("setLimit is not currently supported by the Ammo physics plugin")},e.prototype.syncMeshWithImpostor=function(e,t){t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),e.position.x=this._tmpAmmoTransform.getOrigin().x(),e.position.y=this._tmpAmmoTransform.getOrigin().y(),e.position.z=this._tmpAmmoTransform.getOrigin().z(),e.rotationQuaternion&&(e.rotationQuaternion.x=this._tmpAmmoTransform.getRotation().x(),e.rotationQuaternion.y=this._tmpAmmoTransform.getRotation().y(),e.rotationQuaternion.z=this._tmpAmmoTransform.getRotation().z(),e.rotationQuaternion.w=this._tmpAmmoTransform.getRotation().w())},e.prototype.getRadius=function(e){return e.getObjectExtendSize().x/2},e.prototype.getBoxSizeToRef=function(e,t){var i=e.getObjectExtendSize();t.x=i.x,t.y=i.y,t.z=i.z},e.prototype.dispose=function(){Ammo.destroy(this.world),Ammo.destroy(this._solver),Ammo.destroy(this._overlappingPairCache),Ammo.destroy(this._dispatcher),Ammo.destroy(this._collisionConfiguration),Ammo.destroy(this._tmpAmmoVectorA),Ammo.destroy(this._tmpAmmoVectorB),Ammo.destroy(this._tmpAmmoVectorC),Ammo.destroy(this._tmpAmmoTransform),Ammo.destroy(this._tmpAmmoQuaternion),Ammo.destroy(this._tmpAmmoConcreteContactResultCallback),this.world=null},e.prototype.raycast=function(e,t){this._tmpAmmoVectorRCA=new this.bjsAMMO.btVector3(e.x,e.y,e.z),this._tmpAmmoVectorRCB=new this.bjsAMMO.btVector3(t.x,t.y,t.z);var i=new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB);return this.world.rayTest(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB,i),this._raycastResult.reset(e,t),i.hasHit()&&(this._raycastResult.setHitData({x:i.get_m_hitNormalWorld().x(),y:i.get_m_hitNormalWorld().y(),z:i.get_m_hitNormalWorld().z()},{x:i.get_m_hitPointWorld().x(),y:i.get_m_hitPointWorld().y(),z:i.get_m_hitPointWorld().z()}),this._raycastResult.calculateHitDistance()),Ammo.destroy(i),Ammo.destroy(this._tmpAmmoVectorRCA),Ammo.destroy(this._tmpAmmoVectorRCB),this._raycastResult},e.DISABLE_COLLISION_FLAG=4,e.KINEMATIC_FLAG=2,e.DISABLE_DEACTIVATION_FLAG=4,e}();n.a.prototype.removeReflectionProbe=function(e){if(!this.reflectionProbes)return-1;var t=this.reflectionProbes.indexOf(e);return-1!==t&&this.reflectionProbes.splice(t,1),t},n.a.prototype.addReflectionProbe=function(e){this.reflectionProbes||(this.reflectionProbes=[]),this.reflectionProbes.push(e)};var qo=function(){function e(e,t,i,n,r){var s=this;void 0===n&&(n=!0),void 0===r&&(r=!1),this.name=e,this._viewMatrix=o.j.Identity(),this._target=o.x.Zero(),this._add=o.x.Zero(),this._invertYAxis=!1,this.position=o.x.Zero(),this._scene=i,this._scene.reflectionProbes||(this._scene.reflectionProbes=new Array),this._scene.reflectionProbes.push(this),this._renderTargetTexture=new _i(e,t,i,n,!0,r?_.a.TEXTURETYPE_FLOAT:_.a.TEXTURETYPE_UNSIGNED_INT,!0),this._renderTargetTexture.onBeforeRenderObservable.add(function(e){switch(e){case 0:s._add.copyFromFloats(1,0,0);break;case 1:s._add.copyFromFloats(-1,0,0);break;case 2:s._add.copyFromFloats(0,s._invertYAxis?1:-1,0);break;case 3:s._add.copyFromFloats(0,s._invertYAxis?-1:1,0);break;case 4:s._add.copyFromFloats(0,0,1);break;case 5:s._add.copyFromFloats(0,0,-1)}s._attachedMesh&&s.position.copyFrom(s._attachedMesh.getAbsolutePosition()),s.position.addToRef(s._add,s._target),o.j.LookAtLHToRef(s.position,s._target,o.x.Up(),s._viewMatrix),i.activeCamera&&(s._projectionMatrix=o.j.PerspectiveFovLH(Math.PI/2,1,i.activeCamera.minZ,i.activeCamera.maxZ),i.setTransformMatrix(s._viewMatrix,s._projectionMatrix)),i._forcedViewPosition=s.position}),this._renderTargetTexture.onAfterUnbindObservable.add(function(){i._forcedViewPosition=null,i.updateTransformMatrix(!0)})}return Object.defineProperty(e.prototype,"samples",{get:function(){return this._renderTargetTexture.samples},set:function(e){this._renderTargetTexture.samples=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"refreshRate",{get:function(){return this._renderTargetTexture.refreshRate},set:function(e){this._renderTargetTexture.refreshRate=e},enumerable:!0,configurable:!0}),e.prototype.getScene=function(){return this._scene},Object.defineProperty(e.prototype,"cubeTexture",{get:function(){return this._renderTargetTexture},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderList",{get:function(){return this._renderTargetTexture.renderList},enumerable:!0,configurable:!0}),e.prototype.attachToMesh=function(e){this._attachedMesh=e},e.prototype.setRenderingAutoClearDepthStencil=function(e,t){this._renderTargetTexture.setRenderingAutoClearDepthStencil(e,t)},e.prototype.dispose=function(){var e=this._scene.reflectionProbes.indexOf(this);-1!==e&&this._scene.reflectionProbes.splice(e,1),this._renderTargetTexture&&(this._renderTargetTexture.dispose(),this._renderTargetTexture=null)},e.prototype.toString=function(e){var t="Name: "+this.name;return e&&(t+=", position: "+this.position.toString(),this._attachedMesh&&(t+=", attached mesh: "+this._attachedMesh.name)),t},e.prototype.getClassName=function(){return"ReflectionProbe"},e.prototype.serialize=function(){var e=L.a.Serialize(this,this._renderTargetTexture.serialize());return e.isReflectionProbe=!0,e},e.Parse=function(t,i,n){var r=null;if(i.reflectionProbes)for(var o=0;o0){var n=t._waitingData.lods.ids,r=i.isEnabled(!1);if(t._waitingData.lods.distances){var o=t._waitingData.lods.distances;if(o.length>=n.length){var s=o.length>n.length?o[o.length-1]:0;i.setEnabled(!1);for(var a=0;a0&&i.addLODLevel(s,null),!0===r&&i.setEnabled(!0)}else ye.h.Warn("Invalid level of detail distances for "+t.name)}}t._waitingData.lods=null}},ts=function(e,t,i,r,o){void 0===o&&(o=!1);var a=new _e(e),c="importScene has failed JSON parse";try{var l=JSON.parse(t);c="";var u,h,d=bn.loggingLevel===bn.DETAILED_LOGGING;if(void 0!==l.environmentTexture&&null!==l.environmentTexture){var f=void 0===l.isPBR||l.isPBR;if(l.environmentTextureType&&"BABYLON.HDRCubeTexture"===l.environmentTextureType){var _=l.environmentTextureSize?l.environmentTextureSize:128,g=new Uo((l.environmentTexture.match(/https?:\/\//g)?"":i)+l.environmentTexture,e,_,!0,!f);l.environmentTextureRotationY&&(g.rotationY=l.environmentTextureRotationY),e.environmentTexture=g}else if(ye.h.EndsWith(l.environmentTexture,".env")){var m=new tr((l.environmentTexture.match(/https?:\/\//g)?"":i)+l.environmentTexture,e);l.environmentTextureRotationY&&(m.rotationY=l.environmentTextureRotationY),e.environmentTexture=m}else{var v=tr.CreateFromPrefilteredData((l.environmentTexture.match(/https?:\/\//g)?"":i)+l.environmentTexture,e);l.environmentTextureRotationY&&(v.rotationY=l.environmentTextureRotationY),e.environmentTexture=v}if(!0===l.createDefaultSkybox){var y=void 0!==e.activeCamera&&null!==e.activeCamera?(e.activeCamera.maxZ-e.activeCamera.minZ)/2:1e3,b=l.skyboxBlurLevel||0;e.createDefaultSkybox(e.environmentTexture,f,y,b)}a.environmentTexture=e.environmentTexture}if(void 0!==l.lights&&null!==l.lights)for(u=0,h=l.lights.length;u0){for(var te=0;te0){for(var ne=0;ne-1&&void 0!==u.skeletons&&null!==u.skeletons)if(!1===m.indexOf(y.skeletonId)>-1)for(var O=0,I=u.skeletons.length;O1,n.wrapU=_.a.TEXTURE_CLAMP_ADDRESSMODE,n.wrapV=_.a.TEXTURE_CLAMP_ADDRESSMODE,n.wrapR=_.a.TEXTURE_CLAMP_ADDRESSMODE,n.anisotropicFilteringLevel=1,n._texture=n._getFromCache(t,!0),n._texture||(i.useDelayedTextureLoading?n.delayLoadState=_.a.DELAYLOADSTATE_NOTLOADED:n.loadTexture()),n):n}return l.d(t,e),t.prototype.getTextureMatrix=function(){return this._textureMatrix},t.prototype.load3dlTexture=function(){var e,i=this._engine;e=1===i.webGLVersion?i.createRawTexture(null,1,1,_.a.TEXTUREFORMAT_RGBA,!1,!1,_.a.TEXTURE_BILINEAR_SAMPLINGMODE):i.createRawTexture3D(null,1,1,1,_.a.TEXTUREFORMAT_RGBA,!1,!1,_.a.TEXTURE_BILINEAR_SAMPLINGMODE),this._texture=e;var n=function(n){if("string"==typeof n){for(var r,o=null,s=null,a=n.split("\n"),c=0,l=0,u=0,h=0,d=0,f=0;f0&&(f+1)%4==0)o[f]=255;else{var b=s[f];o[f]=b/d*255}e.is3D?(e.updateSize(c,c,c),i.updateRawTexture3D(e,o,_.a.TEXTUREFORMAT_RGBA,!1)):(e.updateSize(c*c,c),i.updateRawTexture(e,o,_.a.TEXTUREFORMAT_RGBA,!1))}},r=this.getScene();return r?r._loadFile(this.url,n):this._engine._loadFile(this.url,n),this._texture},t.prototype.loadTexture=function(){this.url&&this.url.toLocaleLowerCase().indexOf(".3dl")==this.url.length-4&&this.load3dlTexture()},t.prototype.clone=function(){var e=new t(this.url,this.getScene());return e.level=this.level,e},t.prototype.delayLoad=function(){this.delayLoadState===_.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=_.a.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,!0),this._texture||this.loadTexture())},t.Parse=function(e,i){var n=null;return e.name&&!e.isRenderTarget&&((n=new t(e.name,i)).name=e.name,n.level=e.level),n},t.prototype.serialize=function(){if(!this.name)return null;var e={};return e.name=this.name,e.level=this.level,e.customType="BABYLON.ColorGradingTexture",e},t._noneEmptyLineRegex=/\S+/,t}(Kn.a);s.a.RegisteredTypes["BABYLON.ColorGradingTexture"]=cs;var ls=function(e){function t(t,i,n,r,o,s,a){void 0===r&&(r=!1),void 0===o&&(o=!0),void 0===s&&(s=null),void 0===a&&(a=null);var c=e.call(this,i)||this;if(c._onLoad=null,c._onError=null,c.coordinatesMode=ke.a.CUBIC_MODE,!t)throw new Error("Image url is not set");return c.name=t,c.url=t,c._size=n,c._noMipmap=r,c.gammaSpace=o,c._onLoad=s,c._onError=a,c.hasAlpha=!1,c.isCube=!0,c._texture=c._getFromCache(t,c._noMipmap),c._texture?s&&(c._texture.isReady?ye.h.SetImmediate(function(){return s()}):c._texture.onLoadedObservable.add(s)):i.useDelayedTextureLoading?c.delayLoadState=ge.b.DELAYLOADSTATE_NOTLOADED:c.loadImage(c.loadTexture.bind(c),c._onError),c}return l.d(t,e),t.prototype.loadImage=function(e,t){var i=this,n=document.createElement("canvas"),r=new Image;r.addEventListener("load",function(){i._width=r.width,i._height=r.height,n.width=i._width,n.height=i._height;var t=n.getContext("2d");t.drawImage(r,0,0);var o=t.getImageData(0,0,r.width,r.height);i._buffer=o.data.buffer,n.remove(),e()}),r.addEventListener("error",function(e){t&&t(i.getClassName()+" could not be loaded",e)}),r.src=this.url},t.prototype.loadTexture=function(){var e=this,i=this.getScene();i&&(this._texture=i.getEngine().createRawCubeTextureFromUrl(this.url,i,this._size,ge.b.TEXTUREFORMAT_RGB,i.getEngine().getCaps().textureFloat?ge.b.TEXTURETYPE_FLOAT:ge.b.TEXTURETYPE_UNSIGNED_INTEGER,this._noMipmap,function(){for(var i=e.getFloat32ArrayFromArrayBuffer(e._buffer),n=No.ConvertPanoramaToCubemap(i,e._width,e._height,e._size),r=[],o=0;o<6;o++){var s=n[t._FacesMapping[o]];r.push(s)}return r},null,this._onLoad,this._onError))},t.prototype.getFloat32ArrayFromArrayBuffer=function(e){for(var t=new DataView(e),i=new Float32Array(3*e.byteLength/4),n=0,r=0;ri.length)p.a.Error("Unable to load TGA file - Not enough data");else{n+=r.id_length;var o,s=!1,a=!1,c=!1;switch(r.image_type){case e._TYPE_RLE_INDEXED:s=!0;case e._TYPE_INDEXED:a=!0;break;case e._TYPE_RLE_RGB:s=!0;case e._TYPE_RGB:break;case e._TYPE_RLE_GREY:s=!0;case e._TYPE_GREY:c=!0}var l,u,h,d,f,_,g,m=r.pixel_size>>3,v=r.width*r.height*m;if(a&&(l=i.subarray(n,n+=r.colormap_length*(r.colormap_size>>3))),s){var y,b,T;o=new Uint8Array(v);for(var E=0,A=new Uint8Array(m);n>e._ORIGIN_SHIFT){default:case e._ORIGIN_UL:u=0,d=1,g=r.width,h=0,f=1,_=r.height;break;case e._ORIGIN_BL:u=0,d=1,g=r.width,h=r.height-1,f=-1,_=-1;break;case e._ORIGIN_UR:u=r.width-1,d=-1,g=-1,h=0,f=1,_=r.height;break;case e._ORIGIN_BR:u=r.width-1,d=-1,g=-1,h=r.height-1,f=-1,_=-1}var x=e["_getImageData"+(c?"Grey":"")+r.pixel_size+"bits"](r,l,o,h,f,_,u,d,g);t.getEngine()._uploadDataToTextureDirectly(t,x)}}},e._getImageData8bits=function(e,t,i,n,r,o,s,a,c){var l,u,h,d=i,f=t,p=e.width,_=e.height,g=0,m=new Uint8Array(p*_*4);for(h=n;h!==o;h+=r)for(u=s;u!==c;u+=a,g++)l=d[g],m[4*(u+p*h)+3]=255,m[4*(u+p*h)+2]=f[3*l+0],m[4*(u+p*h)+1]=f[3*l+1],m[4*(u+p*h)+0]=f[3*l+2];return m},e._getImageData16bits=function(e,t,i,n,r,o,s,a,c){var l,u,h,d=i,f=e.width,p=e.height,_=0,g=new Uint8Array(f*p*4);for(h=n;h!==o;h+=r)for(u=s;u!==c;u+=a,_+=2){var m=255*((31744&(l=d[_+0]+(d[_+1]<<8)))>>10)/31|0,v=255*((992&l)>>5)/31|0,y=255*(31&l)/31|0;g[4*(u+f*h)+0]=m,g[4*(u+f*h)+1]=v,g[4*(u+f*h)+2]=y,g[4*(u+f*h)+3]=32768&l?0:255}return g},e._getImageData24bits=function(e,t,i,n,r,o,s,a,c){var l,u,h=i,d=e.width,f=e.height,p=0,_=new Uint8Array(d*f*4);for(u=n;u!==o;u+=r)for(l=s;l!==c;l+=a,p+=3)_[4*(l+d*u)+3]=255,_[4*(l+d*u)+2]=h[p+0],_[4*(l+d*u)+1]=h[p+1],_[4*(l+d*u)+0]=h[p+2];return _},e._getImageData32bits=function(e,t,i,n,r,o,s,a,c){var l,u,h=i,d=e.width,f=e.height,p=0,_=new Uint8Array(d*f*4);for(u=n;u!==o;u+=r)for(l=s;l!==c;l+=a,p+=4)_[4*(l+d*u)+2]=h[p+0],_[4*(l+d*u)+1]=h[p+1],_[4*(l+d*u)+0]=h[p+2],_[4*(l+d*u)+3]=h[p+3];return _},e._getImageDataGrey8bits=function(e,t,i,n,r,o,s,a,c){var l,u,h,d=i,f=e.width,p=e.height,_=0,g=new Uint8Array(f*p*4);for(h=n;h!==o;h+=r)for(u=s;u!==c;u+=a,_++)l=d[_],g[4*(u+f*h)+0]=l,g[4*(u+f*h)+1]=l,g[4*(u+f*h)+2]=l,g[4*(u+f*h)+3]=255;return g},e._getImageDataGrey16bits=function(e,t,i,n,r,o,s,a,c){var l,u,h=i,d=e.width,f=e.height,p=0,_=new Uint8Array(d*f*4);for(u=n;u!==o;u+=r)for(l=s;l!==c;l+=a,p+=2)_[4*(l+d*u)+0]=h[p+0],_[4*(l+d*u)+1]=h[p+0],_[4*(l+d*u)+2]=h[p+0],_[4*(l+d*u)+3]=h[p+1];return _},e._TYPE_INDEXED=1,e._TYPE_RGB=2,e._TYPE_GREY=3,e._TYPE_RLE_INDEXED=9,e._TYPE_RLE_RGB=10,e._TYPE_RLE_GREY=11,e._ORIGIN_MASK=48,e._ORIGIN_SHIFT=4,e._ORIGIN_BL=0,e._ORIGIN_BR=1,e._ORIGIN_UL=2,e._ORIGIN_UR=3,e}(),hs=function(){function e(){this.supportCascades=!1}return e.prototype.canLoad=function(e,t,i,n,r){return 0===e.indexOf(".tga")},e.prototype.transformUrl=function(e,t){return e},e.prototype.getFallbackTextureUrl=function(e,t){return null},e.prototype.loadCubeData=function(e,t,i,n,r){throw".env not supported in Cube."},e.prototype.loadData=function(e,t,i){var n=new Uint8Array(e),r=us.GetTGAHeader(n);i(r.width,r.height,t.generateMipMaps,!1,function(){us.UploadContent(t,n)})},e}();ge.b._TextureLoaders.push(new hs),ge.b.prototype.unBindMultiColorAttachmentFramebuffer=function(e,t,i){void 0===t&&(t=!1),this._currentRenderTarget=null;var n=this._gl;if(e[0]._MSAAFramebuffer){n.bindFramebuffer(n.READ_FRAMEBUFFER,e[0]._MSAAFramebuffer),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,e[0]._framebuffer);var r=e[0]._attachments;r||(r=new Array(e.length),e[0]._attachments=r);for(var o=0;o1?"COLOR_ATTACHMENT"+o:"COLOR_ATTACHMENT"+o+"_WEBGL"],n.readBuffer(r[o]),n.drawBuffers(r),n.blitFramebuffer(0,0,s.width,s.height,0,0,s.width,s.height,n.COLOR_BUFFER_BIT,n.NEAREST)}for(o=0;o1?"COLOR_ATTACHMENT"+o:"COLOR_ATTACHMENT"+o+"_WEBGL"];n.drawBuffers(r)}for(o=0;o1?"COLOR_ATTACHMENT"+y:"COLOR_ATTACHMENT"+y+"_WEBGL"];g.push(A),m.push(x),h.activeTexture(h["TEXTURE"+y]),h.bindTexture(h.TEXTURE_2D,A._webGLTexture),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,E.mag),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,E.min),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texImage2D(h.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(T),f,_,0,h.RGBA,this._getWebGLTextureType(T),null),h.framebufferTexture2D(h.DRAW_FRAMEBUFFER,x,h.TEXTURE_2D,A._webGLTexture,0),i&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(h.TEXTURE_2D,null),A._framebuffer=d,A._depthStencilBuffer=v,A.baseWidth=f,A.baseHeight=_,A.width=f,A.height=_,A.isReady=!0,A.samples=1,A.generateMipMaps=i,A.samplingMode=b,A.type=T,A._generateDepthBuffer=n,A._generateStencilBuffer=r,A._attachments=m,this._internalTexturesCache.push(A)}if(o&&this._caps.depthTextureExtension){var R=new ze.a(this,ze.a.DATASOURCE_MULTIRENDERTARGET);h.activeTexture(h.TEXTURE0),h.bindTexture(h.TEXTURE_2D,R._webGLTexture),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,h.NEAREST),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.NEAREST),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texImage2D(h.TEXTURE_2D,0,this.webGLVersion<2?h.DEPTH_COMPONENT:h.DEPTH_COMPONENT16,f,_,0,h.DEPTH_COMPONENT,h.UNSIGNED_SHORT,null),h.framebufferTexture2D(h.FRAMEBUFFER,h.DEPTH_ATTACHMENT,h.TEXTURE_2D,R._webGLTexture,0),R._framebuffer=d,R.baseWidth=f,R.baseHeight=_,R.width=f,R.height=_,R.isReady=!0,R.samples=1,R.generateMipMaps=i,R.samplingMode=h.NEAREST,R._generateDepthBuffer=n,R._generateStencilBuffer=r,g.push(R),this._internalTexturesCache.push(R)}return h.drawBuffers(m),h.bindRenderbuffer(h.RENDERBUFFER,null),this._bindUnboundFramebuffer(null),this.resetTextureCache(),g},ge.b.prototype.updateMultipleRenderTargetTextureSampleCount=function(e,t){if(this.webGLVersion<2||!e||0==e.length)return 1;if(e[0].samples===t)return t;var i=this._gl;t=Math.min(t,i.getParameter(i.MAX_SAMPLES)),e[0]._depthStencilBuffer&&(i.deleteRenderbuffer(e[0]._depthStencilBuffer),e[0]._depthStencilBuffer=null),e[0]._MSAAFramebuffer&&(i.deleteFramebuffer(e[0]._MSAAFramebuffer),e[0]._MSAAFramebuffer=null);for(var n=0;n1){var r=i.createFramebuffer();if(!r)throw new Error("Unable to create multi sampled framebuffer");this._bindUnboundFramebuffer(r);var o=this._setupFramebufferDepthAttachments(e[0]._generateStencilBuffer,e[0]._generateDepthBuffer,e[0].width,e[0].height,t),s=[];for(n=0;n1?"COLOR_ATTACHMENT"+n:"COLOR_ATTACHMENT"+n+"_WEBGL"],l=i.createRenderbuffer();if(!l)throw new Error("Unable to create multi sampled framebuffer");i.bindRenderbuffer(i.RENDERBUFFER,l),i.renderbufferStorageMultisample(i.RENDERBUFFER,t,this._getRGBAMultiSampleBufferFormat(a.type),a.width,a.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,c,i.RENDERBUFFER,l),a._MSAAFramebuffer=r,a._MSAARenderBuffer=l,a.samples=t,a._depthStencilBuffer=o,i.bindRenderbuffer(i.RENDERBUFFER,null),s.push(c)}i.drawBuffers(s)}else this._bindUnboundFramebuffer(e[0]._framebuffer);return this._bindUnboundFramebuffer(null),t};var ds=function(e){function t(t,i,n,r,o){var s=this,a=!(!o||!o.generateMipMaps)&&o.generateMipMaps,c=!(!o||!o.generateDepthTexture)&&o.generateDepthTexture,l=!o||void 0===o.doNotChangeAspectRatio||o.doNotChangeAspectRatio;if((s=e.call(this,t,i,r,a,l)||this)._engine=r.getEngine(),s.isSupported){for(var u=[],h=[],d=0;d1||this._engine.getCaps().drawBuffersExtension},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"textures",{get:function(){return this._textures},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"depthTexture",{get:function(){return this._textures[this._textures.length-1]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"wrapU",{set:function(e){if(this._textures)for(var t=0;t=0;e--)void 0!==this._internalTextures[e]&&(this._internalTextures[e].dispose(),this._internalTextures.splice(e,1))},t}(_i),fs=function(){function e(e){this.name=Ae.a.NAME_PROCEDURALTEXTURE,this.scene=e,this.scene.proceduralTextures=new Array,e.layers=new Array}return e.prototype.register=function(){this.scene._beforeClearStage.registerStep(Ae.a.STEP_BEFORECLEAR_PROCEDURALTEXTURE,this,this._beforeClear)},e.prototype.rebuild=function(){},e.prototype.dispose=function(){},e.prototype._beforeClear=function(){if(this.scene.proceduralTexturesEnabled){ye.h.StartPerformanceCounter("Procedural textures",this.scene.proceduralTextures.length>0);for(var e=0;e0)}},e}(),ps="\nattribute vec2 position;\n\nvarying vec2 vPosition;\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvPosition=position;\nvUV=position*madd+madd;\ngl_Position=vec4(position,0.0,1.0);\n}";zt.a.ShadersStore.proceduralVertexShader=ps;var _s=function(e){function t(t,i,n,o,s,a,c){void 0===s&&(s=null),void 0===a&&(a=!0),void 0===c&&(c=!1);var l=e.call(this,null,o,!a)||this;l.isCube=c,l.isEnabled=!0,l.autoClear=!0,l.onGeneratedObservable=new r.c,l._textures={},l._currentRefreshId=-1,l._refreshRate=1,l._vertexBuffers={},l._uniforms=new Array,l._samplers=new Array,l._floats={},l._ints={},l._floatsArrays={},l._colors3={},l._colors4={},l._vectors2={},l._vectors3={},l._matrices={},l._fallbackTextureUsed=!1,l._cachedDefines="",l._contentUpdateId=-1;var u=(o=l.getScene())._getComponent(Ae.a.NAME_PROCEDURALTEXTURE);u||(u=new fs(o),o._addComponent(u)),o.proceduralTextures.push(l),l._engine=o.getEngine(),l.name=t,l.isRenderTarget=!0,l._size=i,l._generateMipMaps=a,l.setFragment(n),l._fallbackTexture=s,c?(l._texture=l._engine.createRenderTargetCubeTexture(i,{generateMipMaps:a,generateDepthBuffer:!1,generateStencilBuffer:!1}),l.setFloat("face",0)):l._texture=l._engine.createRenderTargetTexture(i,{generateMipMaps:a,generateDepthBuffer:!1,generateStencilBuffer:!1});var h=[];return h.push(1,1),h.push(-1,1),h.push(-1,-1),h.push(1,-1),l._vertexBuffers[Oi.b.PositionKind]=new Oi.b(l._engine,h,Oi.b.PositionKind,!1,!1,2),l._createIndexBuffer(),l}return l.d(t,e),t.prototype.getEffect=function(){return this._effect},t.prototype.getContent=function(){return this._contentData&&this._currentRefreshId==this._contentUpdateId?this._contentData:(this._contentData=this.readPixels(0,0,this._contentData),this._contentUpdateId=this._currentRefreshId,this._contentData)},t.prototype._createIndexBuffer=function(){var e=this._engine,t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=e.createIndexBuffer(t)},t.prototype._rebuild=function(){var e=this._vertexBuffers[Oi.b.PositionKind];e&&e._rebuild(),this._createIndexBuffer(),this.refreshRate===_i.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=_i.REFRESHRATE_RENDER_ONCE)},t.prototype.reset=function(){void 0!==this._effect&&this._effect.dispose()},t.prototype._getDefines=function(){return""},t.prototype.isReady=function(){var e,t=this,i=this._engine;if(!this._fragment)return!1;if(this._fallbackTextureUsed)return!0;var n=this._getDefines();return!(!this._effect||n!==this._cachedDefines||!this._effect.isReady())||(e=void 0!==this._fragment.fragmentElement?{vertex:"procedural",fragmentElement:this._fragment.fragmentElement}:{vertex:"procedural",fragment:this._fragment},this._cachedDefines=n,this._effect=i.createEffect(e,[Oi.b.PositionKind],this._uniforms,this._samplers,n,void 0,void 0,function(){t.releaseInternalTexture(),t._fallbackTexture&&(t._texture=t._fallbackTexture._texture,t._texture&&t._texture.incrementReferences()),t._fallbackTextureUsed=!0}),this._effect.isReady())},t.prototype.resetRefreshCounter=function(){this._currentRefreshId=-1},t.prototype.setFragment=function(e){this._fragment=e},Object.defineProperty(t.prototype,"refreshRate",{get:function(){return this._refreshRate},set:function(e){this._refreshRate=e,this.resetRefreshCounter()},enumerable:!0,configurable:!0}),t.prototype._shouldRender=function(){return this.isEnabled&&this.isReady()&&this._texture?!this._fallbackTextureUsed&&(-1===this._currentRefreshId?(this._currentRefreshId=1,!0):this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,!0):(this._currentRefreshId++,!1)):(this._texture&&(this._texture.isReady=!1),!1)},t.prototype.getRenderSize=function(){return this._size},t.prototype.resize=function(e,t){this._fallbackTextureUsed||(this.releaseInternalTexture(),this._texture=this._engine.createRenderTargetTexture(e,t),this._size=e,this._generateMipMaps=t)},t.prototype._checkUniform=function(e){-1===this._uniforms.indexOf(e)&&this._uniforms.push(e)},t.prototype.setTexture=function(e,t){return-1===this._samplers.indexOf(e)&&this._samplers.push(e),this._textures[e]=t,this},t.prototype.setFloat=function(e,t){return this._checkUniform(e),this._floats[e]=t,this},t.prototype.setInt=function(e,t){return this._checkUniform(e),this._ints[e]=t,this},t.prototype.setFloats=function(e,t){return this._checkUniform(e),this._floatsArrays[e]=t,this},t.prototype.setColor3=function(e,t){return this._checkUniform(e),this._colors3[e]=t,this},t.prototype.setColor4=function(e,t){return this._checkUniform(e),this._colors4[e]=t,this},t.prototype.setVector2=function(e,t){return this._checkUniform(e),this._vectors2[e]=t,this},t.prototype.setVector3=function(e,t){return this._checkUniform(e),this._vectors3[e]=t,this},t.prototype.setMatrix=function(e,t){return this._checkUniform(e),this._matrices[e]=t,this},t.prototype.render=function(e){var t=this.getScene();if(t){var i=this._engine;for(var n in i.enableEffect(this._effect),i.setState(!1),this._textures)this._effect.setTexture(n,this._textures[n]);for(n in this._ints)this._effect.setInt(n,this._ints[n]);for(n in this._floats)this._effect.setFloat(n,this._floats[n]);for(n in this._floatsArrays)this._effect.setArray(n,this._floatsArrays[n]);for(n in this._colors3)this._effect.setColor3(n,this._colors3[n]);for(n in this._colors4){var r=this._colors4[n];this._effect.setFloat4(n,r.r,r.g,r.b,r.a)}for(n in this._vectors2)this._effect.setVector2(n,this._vectors2[n]);for(n in this._vectors3)this._effect.setVector3(n,this._vectors3[n]);for(n in this._matrices)this._effect.setMatrix(n,this._matrices[n]);if(this._texture){if(this.isCube)for(var o=0;o<6;o++)i.bindFramebuffer(this._texture,o,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect),this._effect.setFloat("face",o),this.autoClear&&i.clear(t.clearColor,!0,!1,!1),i.drawElementsType(so.a.TriangleFillMode,0,6),5===o&&i.generateMipMapsForCubemap(this._texture);else i.bindFramebuffer(this._texture,0,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect),this.autoClear&&i.clear(t.clearColor,!0,!1,!1),i.drawElementsType(so.a.TriangleFillMode,0,6);i.unBindFramebuffer(this._texture,this.isCube),this.onGenerated&&this.onGenerated(),this.onGeneratedObservable.notifyObservers(this)}}},t.prototype.clone=function(){var e=this.getSize(),i=new t(this.name,e.width,this._fragment,this.getScene(),this._fallbackTexture,this._generateMipMaps);return i.hasAlpha=this.hasAlpha,i.level=this.level,i.coordinatesMode=this.coordinatesMode,i},t.prototype.dispose=function(){var t=this.getScene();if(t){var i=t.proceduralTextures.indexOf(this);i>=0&&t.proceduralTextures.splice(i,1);var n=this._vertexBuffers[Oi.b.PositionKind];n&&(n.dispose(),this._vertexBuffers[Oi.b.PositionKind]=null),this._indexBuffer&&this._engine._releaseBuffer(this._indexBuffer)&&(this._indexBuffer=null),e.prototype.dispose.call(this)}},l.c([Object(L.c)()],t.prototype,"isEnabled",void 0),l.c([Object(L.c)()],t.prototype,"autoClear",void 0),l.c([Object(L.c)()],t.prototype,"_generateMipMaps",void 0),l.c([Object(L.c)()],t.prototype,"_size",void 0),l.c([Object(L.c)()],t.prototype,"refreshRate",null),t}(ke.a),gs=i(60),ms=function(e){function t(t,i,n,r,o,s){var a=e.call(this,t,n,null,r,o,s)||this;return a._animate=!0,a._time=0,a._texturePath=i,a._loadJson(i),a.refreshRate=1,a}return l.d(t,e),t.prototype._loadJson=function(e){var t=this,i=function(){p.a.Log("No config file found in "+e+" trying to use ShadersStore or DOM element");try{t.setFragment(t._texturePath)}catch(e){p.a.Error("No json or ShaderStore or DOM element found for CustomProceduralTexture")}},n=e+"/config.json",r=new gs.a;r.open("GET",n),r.addEventListener("load",function(){if(200===r.status||r.responseText&&r.responseText.length>0)try{t._config=JSON.parse(r.response),t.updateShaderUniforms(),t.updateTextures(),t.setFragment(t._texturePath+"/custom"),t._animate=t._config.animate,t.refreshRate=t._config.refreshrate}catch(e){i()}else i()},!1),r.addEventListener("error",function(){i()},!1);try{r.send()}catch(e){p.a.Error("CustomProceduralTexture: Error on XHR send request.")}},t.prototype.isReady=function(){if(!e.prototype.isReady.call(this))return!1;for(var t in this._textures){if(!this._textures[t].isReady())return!1}return!0},t.prototype.render=function(t){var i=this.getScene();this._animate&&i&&(this._time+=.03*i.getAnimationRatio(),this.updateShaderUniforms()),e.prototype.render.call(this,t)},t.prototype.updateTextures=function(){for(var e=0;ee.EPSILON?1:0;l|=h,u.push(h)}switch(l){case 0:(o.x.Dot(this.normal,t.plane.normal)>0?i:n).push(t);break;case 1:r.push(t);break;case 2:s.push(t);break;case 3:var d,f=[],p=[];for(a=0;a=3&&(d=new ws(f,t.shared)).plane&&r.push(d),p.length>=3&&(d=new ws(p,t.shared)).plane&&s.push(d)}},e.EPSILON=1e-5,e}(),ws=function(){function e(e,t){this.vertices=e,this.shared=t,this.plane=Ls.FromPoints(e[0].pos,e[1].pos,e[2].pos)}return e.prototype.clone=function(){return new e(this.vertices.map(function(e){return e.clone()}),this.shared)},e.prototype.flip=function(){this.vertices.reverse().map(function(e){e.flip()}),this.plane.flip()},e}(),Fs=function(){function e(e){this.plane=null,this.front=null,this.back=null,this.polygons=new Array,e&&this.build(e)}return e.prototype.clone=function(){var t=new e;return t.plane=this.plane&&this.plane.clone(),t.front=this.front&&this.front.clone(),t.back=this.back&&this.back.clone(),t.polygons=this.polygons.map(function(e){return e.clone()}),t},e.prototype.invert=function(){for(var e=0;e1)?1:e.arc||1,c=0===e.sideOrientation?0:e.sideOrientation||Mi.a.DEFAULTSIDE;t.push(0,0,0),r.push(.5,.5);for(var l=2*Math.PI*a,u=l/s,h=0;ht.x&&(t.x=i.x),i.yt.y&&(t.y=i.y)}),{min:e,max:t,width:t.x-e.x,height:t.y-e.y}},e}(),Hs=function(){function e(){}return e.Rectangle=function(e,t,i,n){return[new o.w(e,t),new o.w(i,t),new o.w(i,n),new o.w(e,n)]},e.Circle=function(e,t,i,n){void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=32);for(var r=new Array,s=0,a=2*Math.PI/n,c=0;c0){var u=r.length/3;this._points.elements.forEach(function(t){n.push(0,-1,0),r.push(t.x,-e,t.y),o.push(1-(t.x-s.min.x)/s.width,1-(t.y-s.min.y)/s.height)});var h=a.length;for(l=0;ls.elements.length-1?s.elements[0]:s.elements[h+1],e.push(f.x,0,f.y),e.push(f.x,-a,f.y),e.push(d.x,0,d.y),e.push(d.x,-a,d.y);var p=new o.x(f.x,0,f.y),_=new o.x(d.x,0,d.y).subtract(p),g=new o.x(0,1,0),m=o.x.Cross(_,g);m=m.normalize(),i.push(u/r.width,0),i.push(u/r.width,1),u+=_.length(),i.push(u/r.width,0),i.push(u/r.width,1),c?(t.push(m.x,m.y,m.z),t.push(m.x,m.y,m.z),t.push(m.x,m.y,m.z),t.push(m.x,m.y,m.z),n.push(l),n.push(l+2),n.push(l+1),n.push(l+1),n.push(l+2),n.push(l+3)):(t.push(-m.x,-m.y,-m.z),t.push(-m.x,-m.y,-m.z),t.push(-m.x,-m.y,-m.z),t.push(-m.x,-m.y,-m.z),n.push(l),n.push(l+1),n.push(l+2),n.push(l+1),n.push(l+3),n.push(l+2)),l+=4}},e}();Mi.a.CreatePolygon=function(e,t,i,n,r,s){for(var a=i||new Array(3),c=n,l=[],u=0;u<3;u++)void 0===a[u]&&(a[u]=new o.y(0,0,1,1)),c&&void 0===c[u]&&(c[u]=new o.f(1,1,1,1));for(var h=e.getVerticesData(Oi.b.PositionKind),d=e.getVerticesData(Oi.b.NormalKind),f=e.getVerticesData(Oi.b.UVKind),p=e.getIndices(),_=0,g=0,m=0;m1?1:t.arc:1,s=void 0===t.closed||t.closed,a=t.shape,c=t.radius||1,l=t.tessellation||64,u=t.clip||0,h=t.updatable,d=fe.a._GetDefaultSideOrientation(t.sideOrientation),f=t.cap||fe.a.NO_CAP,p=2*Math.PI,_=new Array,g=t.invertUV||!1,m=0,v=0,y=p/l*r,b=new Array;for(m=0;m<=l-u;m++){b=[];for(f!=fe.a.CAP_START&&f!=fe.a.CAP_ALL||(b.push(new o.x(0,a[0].y,0)),b.push(new o.x(Math.cos(m*y)*a[0].x*c,a[0].y,Math.sin(m*y)*a[0].x*c))),v=0;v1)?1:t.arc||1;var f,p,_=function(e,t,i,n,r,s,a,c){for(var l,u,h,d,f=t.getTangents(),p=t.getNormals(),_=t.getDistances(),g=2*Math.PI/r*c,m=s||function(){return n},v=o.t.Matrix[0],y=a===fe.a.NO_CAP||a===fe.a.CAP_END?0:2,b=0;b3?0:l,t.arc);var v=Yo.CreateRibbon(e,{pathArray:p,closePath:!0,closeArray:!1,updatable:h,sideOrientation:d,invertUV:u,frontUVs:t.frontUVs,backUVs:t.backUVs},i);return v._creationDataStorage.pathArray=p,v._creationDataStorage.path3D=f,v._creationDataStorage.tessellation=a,v._creationDataStorage.cap=l,v._creationDataStorage.arc=t.arc,v._creationDataStorage.radius=s,v},e}();Mi.a.CreateIcoSphere=function(e){var t,i=e.sideOrientation||Mi.a.DEFAULTSIDE,n=e.radius||1,r=void 0===e.flat||e.flat,s=e.subdivisions||4,a=e.radiusX||n,c=e.radiusY||n,l=e.radiusZ||n,u=(1+Math.sqrt(5))/2,h=[-1,u,-0,1,u,0,-1,-u,0,1,-u,0,0,-1,-u,0,1,-u,0,-1,u,0,1,u,u,0,1,u,0,-1,-u,0,1,-u,0,-1],d=[0,11,5,0,5,1,0,1,7,0,7,10,12,22,23,1,5,20,5,11,4,23,22,13,22,18,6,7,1,8,14,21,4,14,4,2,16,13,6,15,6,19,3,8,9,4,21,5,13,17,23,6,13,22,19,6,18,9,8,1],f=[0,1,2,3,4,5,6,7,8,9,10,11,0,2,3,3,3,4,7,8,9,9,10,11],p=[5,1,3,1,6,4,0,0,5,3,4,2,2,2,4,0,2,0,1,1,6,0,6,2,0,4,3,3,4,4,3,1,4,2,4,4,0,2,1,1,2,2,3,3,1,3,2,4],_=[0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0],g=new Array,m=new Array,v=new Array,y=new Array,b=0,T=new Array(3),E=new Array(3);for(t=0;t<3;t++)T[t]=o.x.Zero(),E[t]=o.w.Zero();for(var A=0;A<20;A++){for(t=0;t<3;t++){var x=d[3*A+t];T[t].copyFromFloats(h[3*f[x]],h[3*f[x]+1],h[3*f[x]+2]),T[t].normalize().scaleInPlace(n),E[t].copyFromFloats(p[2*x]*(138/1024)+60/1024+_[A]*(-40/1024),p[2*x+1]*(239/1024)+26/1024+_[A]*(20/1024))}for(var R=function(e,t,i,n){var u,h=o.x.Lerp(T[0],T[2],t/s),d=o.x.Lerp(T[1],T[2],t/s),f=s===t?T[2]:o.x.Lerp(h,d,e/(s-t));if(f.normalize(),r){var p=o.x.Lerp(T[0],T[2],n/s),_=o.x.Lerp(T[1],T[2],n/s);u=o.x.Lerp(p,_,i/(s-n))}else u=new o.x(f.x,f.y,f.z);u.x/=a,u.y/=c,u.z/=l,u.normalize();var A=o.w.Lerp(E[0],E[2],t/s),x=o.w.Lerp(E[1],E[2],t/s),R=s===t?E[2]:o.w.Lerp(A,x,e/(s-t));m.push(f.x*a,f.y*c,f.z*l),v.push(u.x,u.y,u.z),y.push(R.x,R.y),g.push(b),b++},P=0;P0)?1:0)+((c=o.x.Dot(e[s+1].position,t)-i>0)?1:0)+((u=o.x.Dot(e[s+2].position,t)-i>0)?1:0)){case 0:r.push(e[s]),r.push(e[s+1]),r.push(e[s+2]);break;case 1:if(a&&(h=e[s+1],d=e[s+2],f=n(e[s],h),p=n(e[s],d)),c){h=e[s],d=e[s+2],f=n(e[s+1],h),p=n(e[s+1],d),r.push(f),r.push(d.clone()),r.push(h.clone()),r.push(d.clone()),r.push(f.clone()),r.push(p);break}u&&(h=e[s],d=e[s+1],f=n(e[s+2],h),p=n(e[s+2],d)),h&&d&&f&&p&&(r.push(h.clone()),r.push(d.clone()),r.push(f),r.push(p),r.push(f.clone()),r.push(d.clone()));break;case 2:a||(d=n(h=e[s].clone(),e[s+1]),f=n(h,e[s+2]),r.push(h),r.push(d),r.push(f)),c||(d=n(h=e[s+1].clone(),e[s+2]),f=n(h,e[s]),r.push(h),r.push(d),r.push(f)),u||(d=n(h=e[s+2].clone(),e[s]),f=n(h,e[s+1]),r.push(h),r.push(d),r.push(f))}}return r},x=0;xc||i.deleted||i.isDirty))for(var r=0;r<3;++r)if(i.error[r]>0,function(e){if(r){var t=e+a.verticesStart,s=o.x.FromArray(r,3*t),l=function(e){if(i)for(var t=0;t0&&this._reconstructedMesh.setVerticesData(Oi.b.UVKind,a),c.length>0&&this._reconstructedMesh.setVerticesData(Oi.b.ColorKind,c);var y=this._mesh.subMeshes[e];e>0&&(this._reconstructedMesh.subMeshes=[],g.forEach(function(e){Os.b.AddToMesh(e.materialIndex,e.verticesStart,e.verticesCount,e.indexStart,e.indexCount,e.getMesh())}),Os.b.AddToMesh(y.materialIndex,_,d,p,3*r.length,this._reconstructedMesh))},e.prototype.initDecimatedMesh=function(){this._reconstructedMesh=new fe.a(this._mesh.name+"Decimated",this._mesh.getScene()),this._reconstructedMesh.material=this._mesh.material,this._reconstructedMesh.parent=this._mesh.parent,this._reconstructedMesh.isVisible=!1,this._reconstructedMesh.renderingGroupId=this._mesh.renderingGroupId},e.prototype.isFlipped=function(e,t,i,n,r){for(var s=0;s.999)return!0;var f=o.x.Cross(h,d).normalize();if(n[s]=!1,o.x.Dot(f,a.normal)<.2)return!0}else n[s]=!0,r.push(a)}}return!1},e.prototype.updateTriangles=function(e,t,i,n){for(var r=n,o=0;o=400&&o?o(l):i()},!1),l.addEventListener("error",function(){p.a.Error("error on XHR request."),i()},!1),l.send()}else p.a.Error("Error: IndexedDB not supported by your browser or Babylon.js Database is not open."),i()},e._ValidateXHRData=function(e,t){void 0===t&&(t=7);try{if(1&t){if(e.responseText&&e.responseText.length>0)return!0;if(1===t)return!1}if(2&t){var i=us.GetTGAHeader(e.response);if(i.width&&i.height&&i.width>0&&i.height>0)return!0;if(2===t)return!1}if(4&t){var n=new Uint8Array(e.response,0,3);return 68===n[0]&&68===n[1]&&83===n[2]}}catch(e){}return!1},e.IsUASupportingBlobStorage=!0,e.IDBStorageEnabled=!1,e._ParseURL=function(e){document.createElement("a").href=e;var t=e.substring(0,e.lastIndexOf("#")),i=e.substring(t.lastIndexOf("/")+1,e.length);return e.substring(0,e.indexOf(i,0))},e._ReturnFullUrlLocation=function(t){return-1===t.indexOf("http:/")&&-1===t.indexOf("https:/")?e._ParseURL(window.location.href)+t:t},e}(),da=function(){function e(){this.direction1=new o.x(0,1,0),this.direction2=new o.x(0,1,0),this.minEmitBox=new o.x(-.5,-.5,-.5),this.maxEmitBox=new o.x(.5,.5,.5)}return e.prototype.startDirectionFunction=function(e,t,i){var n=D.a.RandomRange(this.direction1.x,this.direction2.x),r=D.a.RandomRange(this.direction1.y,this.direction2.y),s=D.a.RandomRange(this.direction1.z,this.direction2.z);o.x.TransformNormalFromFloatsToRef(n,r,s,e,t)},e.prototype.startPositionFunction=function(e,t,i){var n=D.a.RandomRange(this.minEmitBox.x,this.maxEmitBox.x),r=D.a.RandomRange(this.minEmitBox.y,this.maxEmitBox.y),s=D.a.RandomRange(this.minEmitBox.z,this.maxEmitBox.z);o.x.TransformCoordinatesFromFloatsToRef(n,r,s,e,t)},e.prototype.clone=function(){var t=new e;return S.a.DeepCopy(this,t),t},e.prototype.applyToShader=function(e){e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2),e.setVector3("minEmitBox",this.minEmitBox),e.setVector3("maxEmitBox",this.maxEmitBox)},e.prototype.getEffectDefines=function(){return"#define BOXEMITTER"},e.prototype.getClassName=function(){return"BoxParticleEmitter"},e.prototype.serialize=function(){var e={};return e.type=this.getClassName(),e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e.minEmitBox=this.minEmitBox.asArray(),e.maxEmitBox=this.maxEmitBox.asArray(),e},e.prototype.parse=function(e){o.x.FromArrayToRef(e.direction1,0,this.direction1),o.x.FromArrayToRef(e.direction2,0,this.direction2),o.x.FromArrayToRef(e.minEmitBox,0,this.minEmitBox),o.x.FromArrayToRef(e.maxEmitBox,0,this.maxEmitBox)},e}(),fa=function(){function e(e,t,i){void 0===e&&(e=1),void 0===t&&(t=Math.PI),void 0===i&&(i=0),this.directionRandomizer=i,this.radiusRange=1,this.heightRange=1,this.emitFromSpawnPointOnly=!1,this.angle=t,this.radius=e}return Object.defineProperty(e.prototype,"radius",{get:function(){return this._radius},set:function(e){this._radius=e,this._buildHeight()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){return this._angle},set:function(e){this._angle=e,this._buildHeight()},enumerable:!0,configurable:!0}),e.prototype._buildHeight=function(){0!==this._angle?this._height=this._radius/Math.tan(this._angle/2):this._height=1},e.prototype.startDirectionFunction=function(e,t,i){if(1===Math.abs(Math.cos(this._angle)))o.x.TransformNormalFromFloatsToRef(0,1,0,e,t);else{var n=i.position.subtract(e.getTranslation()).normalize(),r=D.a.RandomRange(0,this.directionRandomizer),s=D.a.RandomRange(0,this.directionRandomizer),a=D.a.RandomRange(0,this.directionRandomizer);n.x+=r,n.y+=s,n.z+=a,n.normalize(),o.x.TransformNormalFromFloatsToRef(n.x,n.y,n.z,e,t)}},e.prototype.startPositionFunction=function(e,t,i){var n,r=D.a.RandomRange(0,2*Math.PI);n=this.emitFromSpawnPointOnly?1e-4:1-(n=D.a.RandomRange(0,this.heightRange))*n;var s=this._radius-D.a.RandomRange(0,this._radius*this.radiusRange),a=(s*=n)*Math.sin(r),c=s*Math.cos(r),l=n*this._height;o.x.TransformCoordinatesFromFloatsToRef(a,l,c,e,t)},e.prototype.clone=function(){var t=new e(this._radius,this._angle,this.directionRandomizer);return S.a.DeepCopy(this,t),t},e.prototype.applyToShader=function(e){e.setFloat2("radius",this._radius,this.radiusRange),e.setFloat("coneAngle",this._angle),e.setFloat2("height",this._height,this.heightRange),e.setFloat("directionRandomizer",this.directionRandomizer)},e.prototype.getEffectDefines=function(){var e="#define CONEEMITTER";return this.emitFromSpawnPointOnly&&(e+="\n#define CONEEMITTERSPAWNPOINT"),e},e.prototype.getClassName=function(){return"ConeParticleEmitter"},e.prototype.serialize=function(){var e={};return e.type=this.getClassName(),e.radius=this._radius,e.angle=this._angle,e.directionRandomizer=this.directionRandomizer,e},e.prototype.parse=function(e){this.radius=e.radius,this.angle=e.angle,this.directionRandomizer=e.directionRandomizer},e}(),pa=function(){function e(e,t,i,n){void 0===e&&(e=1),void 0===t&&(t=1),void 0===i&&(i=1),void 0===n&&(n=0),this.radius=e,this.height=t,this.radiusRange=i,this.directionRandomizer=n}return e.prototype.startDirectionFunction=function(e,t,i){var n=i.position.subtract(e.getTranslation()).normalize(),r=D.a.RandomRange(-this.directionRandomizer/2,this.directionRandomizer/2),s=Math.atan2(n.x,n.z);s+=D.a.RandomRange(-Math.PI/2,Math.PI/2)*this.directionRandomizer,n.y=r,n.x=Math.sin(s),n.z=Math.cos(s),n.normalize(),o.x.TransformNormalFromFloatsToRef(n.x,n.y,n.z,e,t)},e.prototype.startPositionFunction=function(e,t,i){var n=D.a.RandomRange(-this.height/2,this.height/2),r=D.a.RandomRange(0,2*Math.PI),s=D.a.RandomRange((1-this.radiusRange)*(1-this.radiusRange),1),a=Math.sqrt(s)*this.radius,c=a*Math.cos(r),l=a*Math.sin(r);o.x.TransformCoordinatesFromFloatsToRef(c,n,l,e,t)},e.prototype.clone=function(){var t=new e(this.radius,this.directionRandomizer);return S.a.DeepCopy(this,t),t},e.prototype.applyToShader=function(e){e.setFloat("radius",this.radius),e.setFloat("height",this.height),e.setFloat("radiusRange",this.radiusRange),e.setFloat("directionRandomizer",this.directionRandomizer)},e.prototype.getEffectDefines=function(){return"#define CYLINDEREMITTER"},e.prototype.getClassName=function(){return"CylinderParticleEmitter"},e.prototype.serialize=function(){var e={};return e.type=this.getClassName(),e.radius=this.radius,e.height=this.height,e.radiusRange=this.radiusRange,e.directionRandomizer=this.directionRandomizer,e},e.prototype.parse=function(e){this.radius=e.radius,this.height=e.height,this.radiusRange=e.radiusRange,this.directionRandomizer=e.directionRandomizer},e}(),_a=function(e){function t(t,i,n,r,s){void 0===t&&(t=1),void 0===i&&(i=1),void 0===n&&(n=1),void 0===r&&(r=new o.x(0,1,0)),void 0===s&&(s=new o.x(0,1,0));var a=e.call(this,t,i,n)||this;return a.direction1=r,a.direction2=s,a}return l.d(t,e),t.prototype.startDirectionFunction=function(e,t,i){var n=D.a.RandomRange(this.direction1.x,this.direction2.x),r=D.a.RandomRange(this.direction1.y,this.direction2.y),s=D.a.RandomRange(this.direction1.z,this.direction2.z);o.x.TransformNormalFromFloatsToRef(n,r,s,e,t)},t.prototype.clone=function(){var e=new t(this.radius,this.height,this.radiusRange,this.direction1,this.direction2);return S.a.DeepCopy(this,e),e},t.prototype.applyToShader=function(e){e.setFloat("radius",this.radius),e.setFloat("height",this.height),e.setFloat("radiusRange",this.radiusRange),e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)},t.prototype.getEffectDefines=function(){return"#define CYLINDEREMITTER\n#define DIRECTEDCYLINDEREMITTER"},t.prototype.getClassName=function(){return"CylinderDirectedParticleEmitter"},t.prototype.serialize=function(){var t=e.prototype.serialize.call(this);return t.direction1=this.direction1.asArray(),t.direction2=this.direction2.asArray(),t},t.prototype.parse=function(t){e.prototype.parse.call(this,t),this.direction1.copyFrom(t.direction1),this.direction2.copyFrom(t.direction2)},t}(pa),ga=function(){function e(e,t,i){void 0===e&&(e=1),void 0===t&&(t=1),void 0===i&&(i=0),this.radius=e,this.radiusRange=t,this.directionRandomizer=i}return e.prototype.startDirectionFunction=function(e,t,i){var n=i.position.subtract(e.getTranslation()).normalize(),r=D.a.RandomRange(0,this.directionRandomizer),s=D.a.RandomRange(0,this.directionRandomizer),a=D.a.RandomRange(0,this.directionRandomizer);n.x+=r,n.y+=s,n.z+=a,n.normalize(),o.x.TransformNormalFromFloatsToRef(n.x,n.y,n.z,e,t)},e.prototype.startPositionFunction=function(e,t,i){var n=this.radius-D.a.RandomRange(0,this.radius*this.radiusRange),r=D.a.RandomRange(0,1),s=D.a.RandomRange(0,2*Math.PI),a=Math.acos(2*r-1),c=n*Math.cos(s)*Math.sin(a),l=n*Math.cos(a),u=n*Math.sin(s)*Math.sin(a);o.x.TransformCoordinatesFromFloatsToRef(c,Math.abs(l),u,e,t)},e.prototype.clone=function(){var t=new e(this.radius,this.directionRandomizer);return S.a.DeepCopy(this,t),t},e.prototype.applyToShader=function(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setFloat("directionRandomizer",this.directionRandomizer)},e.prototype.getEffectDefines=function(){return"#define HEMISPHERICEMITTER"},e.prototype.getClassName=function(){return"HemisphericParticleEmitter"},e.prototype.serialize=function(){var e={};return e.type=this.getClassName(),e.radius=this.radius,e.radiusRange=this.radiusRange,e.directionRandomizer=this.directionRandomizer,e},e.prototype.parse=function(e){this.radius=e.radius,this.radiusRange=e.radiusRange,this.directionRandomizer=e.directionRandomizer},e}(),ma=function(){function e(){this.direction1=new o.x(0,1,0),this.direction2=new o.x(0,1,0)}return e.prototype.startDirectionFunction=function(e,t,i){var n=D.a.RandomRange(this.direction1.x,this.direction2.x),r=D.a.RandomRange(this.direction1.y,this.direction2.y),s=D.a.RandomRange(this.direction1.z,this.direction2.z);o.x.TransformNormalFromFloatsToRef(n,r,s,e,t)},e.prototype.startPositionFunction=function(e,t,i){o.x.TransformCoordinatesFromFloatsToRef(0,0,0,e,t)},e.prototype.clone=function(){var t=new e;return S.a.DeepCopy(this,t),t},e.prototype.applyToShader=function(e){e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)},e.prototype.getEffectDefines=function(){return"#define POINTEMITTER"},e.prototype.getClassName=function(){return"PointParticleEmitter"},e.prototype.serialize=function(){var e={};return e.type=this.getClassName(),e.direction1=this.direction1.asArray(),e.direction2=this.direction2.asArray(),e},e.prototype.parse=function(e){o.x.FromArrayToRef(e.direction1,0,this.direction1),o.x.FromArrayToRef(e.direction2,0,this.direction2)},e}(),va=function(){function e(e,t,i){void 0===e&&(e=1),void 0===t&&(t=1),void 0===i&&(i=0),this.radius=e,this.radiusRange=t,this.directionRandomizer=i}return e.prototype.startDirectionFunction=function(e,t,i){var n=i.position.subtract(e.getTranslation()).normalize(),r=D.a.RandomRange(0,this.directionRandomizer),s=D.a.RandomRange(0,this.directionRandomizer),a=D.a.RandomRange(0,this.directionRandomizer);n.x+=r,n.y+=s,n.z+=a,n.normalize(),o.x.TransformNormalFromFloatsToRef(n.x,n.y,n.z,e,t)},e.prototype.startPositionFunction=function(e,t,i){var n=this.radius-D.a.RandomRange(0,this.radius*this.radiusRange),r=D.a.RandomRange(0,1),s=D.a.RandomRange(0,2*Math.PI),a=Math.acos(2*r-1),c=n*Math.cos(s)*Math.sin(a),l=n*Math.cos(a),u=n*Math.sin(s)*Math.sin(a);o.x.TransformCoordinatesFromFloatsToRef(c,l,u,e,t)},e.prototype.clone=function(){var t=new e(this.radius,this.directionRandomizer);return S.a.DeepCopy(this,t),t},e.prototype.applyToShader=function(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setFloat("directionRandomizer",this.directionRandomizer)},e.prototype.getEffectDefines=function(){return"#define SPHEREEMITTER"},e.prototype.getClassName=function(){return"SphereParticleEmitter"},e.prototype.serialize=function(){var e={};return e.type=this.getClassName(),e.radius=this.radius,e.radiusRange=this.radiusRange,e.directionRandomizer=this.directionRandomizer,e},e.prototype.parse=function(e){this.radius=e.radius,this.radiusRange=e.radiusRange,this.directionRandomizer=e.directionRandomizer},e}(),ya=function(e){function t(t,i,n){void 0===t&&(t=1),void 0===i&&(i=new o.x(0,1,0)),void 0===n&&(n=new o.x(0,1,0));var r=e.call(this,t)||this;return r.direction1=i,r.direction2=n,r}return l.d(t,e),t.prototype.startDirectionFunction=function(e,t,i){var n=D.a.RandomRange(this.direction1.x,this.direction2.x),r=D.a.RandomRange(this.direction1.y,this.direction2.y),s=D.a.RandomRange(this.direction1.z,this.direction2.z);o.x.TransformNormalFromFloatsToRef(n,r,s,e,t)},t.prototype.clone=function(){var e=new t(this.radius,this.direction1,this.direction2);return S.a.DeepCopy(this,e),e},t.prototype.applyToShader=function(e){e.setFloat("radius",this.radius),e.setFloat("radiusRange",this.radiusRange),e.setVector3("direction1",this.direction1),e.setVector3("direction2",this.direction2)},t.prototype.getEffectDefines=function(){return"#define SPHEREEMITTER\n#define DIRECTEDSPHEREEMITTER"},t.prototype.getClassName=function(){return"SphereDirectedParticleEmitter"},t.prototype.serialize=function(){var t=e.prototype.serialize.call(this);return t.direction1=this.direction1.asArray(),t.direction2=this.direction2.asArray(),t},t.prototype.parse=function(t){e.prototype.parse.call(this,t),this.direction1.copyFrom(t.direction1),this.direction2.copyFrom(t.direction2)},t}(va),ba=function(){function e(t){this.animations=[],this.renderingGroupId=0,this.emitter=null,this.emitRate=10,this.manualEmitCount=-1,this.updateSpeed=.01,this.targetStopDuration=0,this.disposeOnStop=!1,this.minEmitPower=1,this.maxEmitPower=1,this.minLifeTime=1,this.maxLifeTime=1,this.minSize=1,this.maxSize=1,this.minScaleX=1,this.maxScaleX=1,this.minScaleY=1,this.maxScaleY=1,this.minInitialRotation=0,this.maxInitialRotation=0,this.minAngularSpeed=0,this.maxAngularSpeed=0,this.layerMask=268435455,this.customShader=null,this.preventAutoStart=!1,this.noiseStrength=new o.x(10,10,10),this.onAnimationEnd=null,this.blendMode=e.BLENDMODE_ONEONE,this.forceDepthWrite=!1,this.preWarmCycles=0,this.preWarmStepOffset=1,this.spriteCellChangeSpeed=1,this.startSpriteCellID=0,this.endSpriteCellID=0,this.spriteCellWidth=0,this.spriteCellHeight=0,this.spriteRandomStartCell=!1,this.translationPivot=new o.w(0,0),this.beginAnimationOnStart=!1,this.beginAnimationFrom=0,this.beginAnimationTo=60,this.beginAnimationLoop=!1,this.worldOffset=new o.x(0,0,0),this.gravity=o.x.Zero(),this._colorGradients=null,this._sizeGradients=null,this._lifeTimeGradients=null,this._angularSpeedGradients=null,this._velocityGradients=null,this._limitVelocityGradients=null,this._dragGradients=null,this._emitRateGradients=null,this._startSizeGradients=null,this._rampGradients=null,this._colorRemapGradients=null,this._alphaRemapGradients=null,this.startDelay=0,this.limitVelocityDamping=.4,this.color1=new o.f(1,1,1,1),this.color2=new o.f(1,1,1,1),this.colorDead=new o.f(0,0,0,1),this.textureMask=new o.f(1,1,1,1),this._isSubEmitter=!1,this.billboardMode=_.a.PARTICLES_BILLBOARDMODE_ALL,this._isBillboardBased=!0,this._imageProcessingConfigurationDefines=new xi.b,this.id=t,this.name=t}return Object.defineProperty(e.prototype,"noiseTexture",{get:function(){return this._noiseTexture},set:function(e){this._noiseTexture!==e&&(this._noiseTexture=e,this._reset())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAnimationSheetEnabled",{get:function(){return this._isAnimationSheetEnabled},set:function(e){this._isAnimationSheetEnabled!=e&&(this._isAnimationSheetEnabled=e,this._reset())},enumerable:!0,configurable:!0}),e.prototype.getScene=function(){return this._scene},e.prototype._hasTargetStopDurationDependantGradient=function(){return this._startSizeGradients&&this._startSizeGradients.length>0||this._emitRateGradients&&this._emitRateGradients.length>0||this._lifeTimeGradients&&this._lifeTimeGradients.length>0},e.prototype.getDragGradients=function(){return this._dragGradients},e.prototype.getLimitVelocityGradients=function(){return this._limitVelocityGradients},e.prototype.getColorGradients=function(){return this._colorGradients},e.prototype.getSizeGradients=function(){return this._sizeGradients},e.prototype.getColorRemapGradients=function(){return this._colorRemapGradients},e.prototype.getAlphaRemapGradients=function(){return this._alphaRemapGradients},e.prototype.getLifeTimeGradients=function(){return this._lifeTimeGradients},e.prototype.getAngularSpeedGradients=function(){return this._angularSpeedGradients},e.prototype.getVelocityGradients=function(){return this._velocityGradients},e.prototype.getStartSizeGradients=function(){return this._startSizeGradients},e.prototype.getEmitRateGradients=function(){return this._emitRateGradients},Object.defineProperty(e.prototype,"direction1",{get:function(){return this.particleEmitterType.direction1?this.particleEmitterType.direction1:o.x.Zero()},set:function(e){this.particleEmitterType.direction1&&(this.particleEmitterType.direction1=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"direction2",{get:function(){return this.particleEmitterType.direction2?this.particleEmitterType.direction2:o.x.Zero()},set:function(e){this.particleEmitterType.direction2&&(this.particleEmitterType.direction2=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minEmitBox",{get:function(){return this.particleEmitterType.minEmitBox?this.particleEmitterType.minEmitBox:o.x.Zero()},set:function(e){this.particleEmitterType.minEmitBox&&(this.particleEmitterType.minEmitBox=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxEmitBox",{get:function(){return this.particleEmitterType.maxEmitBox?this.particleEmitterType.maxEmitBox:o.x.Zero()},set:function(e){this.particleEmitterType.maxEmitBox&&(this.particleEmitterType.maxEmitBox=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isBillboardBased",{get:function(){return this._isBillboardBased},set:function(e){this._isBillboardBased!==e&&(this._isBillboardBased=e,this._reset())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e)},enumerable:!0,configurable:!0}),e.prototype._attachImageProcessingConfiguration=function(e){e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration=e||this._scene.imageProcessingConfiguration)},e.prototype._reset=function(){},e.prototype._removeGradientAndTexture=function(e,t,i){if(!t)return this;for(var n=0,r=0,o=t;r0&&this._attachedSubEmitters.forEach(function(t){e._inheritParticleInfoToSubEmitter(t)})},e.prototype._reset=function(){this.age=0,this._currentColorGradient=null,this._currentSizeGradient=null,this._currentAngularSpeedGradient=null,this._currentVelocityGradient=null,this._currentLimitVelocityGradient=null,this._currentDragGradient=null,this.cellIndex=this.particleSystem.startSpriteCellID,this._randomCellOffset=void 0},e.prototype.copyTo=function(e){e.position.copyFrom(this.position),this._initialDirection?e._initialDirection?e._initialDirection.copyFrom(this._initialDirection):e._initialDirection=this._initialDirection.clone():e._initialDirection=null,e.direction.copyFrom(this.direction),e.color.copyFrom(this.color),e.colorStep.copyFrom(this.colorStep),e.lifeTime=this.lifeTime,e.age=this.age,e._randomCellOffset=this._randomCellOffset,e.size=this.size,e.scale.copyFrom(this.scale),e.angle=this.angle,e.angularSpeed=this.angularSpeed,e.particleSystem=this.particleSystem,e.cellIndex=this.cellIndex,e.id=this.id,e._attachedSubEmitters=this._attachedSubEmitters,this._currentColorGradient&&(e._currentColorGradient=this._currentColorGradient,e._currentColor1.copyFrom(this._currentColor1),e._currentColor2.copyFrom(this._currentColor2)),this._currentSizeGradient&&(e._currentSizeGradient=this._currentSizeGradient,e._currentSize1=this._currentSize1,e._currentSize2=this._currentSize2),this._currentAngularSpeedGradient&&(e._currentAngularSpeedGradient=this._currentAngularSpeedGradient,e._currentAngularSpeed1=this._currentAngularSpeed1,e._currentAngularSpeed2=this._currentAngularSpeed2),this._currentVelocityGradient&&(e._currentVelocityGradient=this._currentVelocityGradient,e._currentVelocity1=this._currentVelocity1,e._currentVelocity2=this._currentVelocity2),this._currentLimitVelocityGradient&&(e._currentLimitVelocityGradient=this._currentLimitVelocityGradient,e._currentLimitVelocity1=this._currentLimitVelocity1,e._currentLimitVelocity2=this._currentLimitVelocity2),this._currentDragGradient&&(e._currentDragGradient=this._currentDragGradient,e._currentDrag1=this._currentDrag1,e._currentDrag2=this._currentDrag2),this.particleSystem.isAnimationSheetEnabled&&(e._initialStartSpriteCellID=this._initialStartSpriteCellID,e._initialEndSpriteCellID=this._initialEndSpriteCellID),this.particleSystem.useRampGradients&&e.remapData.copyFrom(this.remapData),this._randomNoiseCoordinates1&&(e._randomNoiseCoordinates1?(e._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1),e._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2)):(e._randomNoiseCoordinates1=this._randomNoiseCoordinates1.clone(),e._randomNoiseCoordinates2=this._randomNoiseCoordinates2.clone()))},e._Count=0,e}();!function(e){e[e.ATTACHED=0]="ATTACHED",e[e.END=1]="END"}(ua||(ua={}));var Ea=function(){function e(e){this.particleSystem=e,this.type=ua.END,this.inheritDirection=!1,this.inheritedVelocityAmount=0,e.emitter&&e.emitter.dispose||(e.emitter=new Fe.a("SubemitterSystemEmitter",e.getScene())),e.onDisposeObservable.add(function(){e.emitter&&e.emitter.dispose&&e.emitter.dispose()})}return e.prototype.clone=function(){var t=this.particleSystem.emitter;t?t instanceof o.x?t=t.clone():t instanceof Fe.a&&((t=new fe.a("",t.getScene())).isVisible=!1):t=new o.x;var i=new e(this.particleSystem.clone("",t));return i.type=this.type,i.inheritDirection=this.inheritDirection,i.inheritedVelocityAmount=this.inheritedVelocityAmount,i.particleSystem._disposeEmitterOnDispose=!0,i.particleSystem.disposeOnStop=!0,i},e.prototype.serialize=function(){var e={};return e.type=this.type,e.inheritDirection=this.inheritDirection,e.inheritedVelocityAmount=this.inheritedVelocityAmount,e.particleSystem=this.particleSystem.serialize(),e},e._ParseParticleSystem=function(e,t,i){throw be.a.WarnImport("ParseParticle")},e.Parse=function(t,i,n){var r=t.particleSystem,o=new e(e._ParseParticleSystem(r,i,n));return o.type=t.type,o.inheritDirection=t.inheritDirection,o.inheritedVelocityAmount=t.inheritedVelocityAmount,o.particleSystem._isSubEmitter=!0,o},e.prototype.dispose=function(){this.particleSystem.dispose()},e}(),Aa="\nvarying vec2 vUV;\nvarying vec4 vColor;\nuniform vec4 textureMask;\nuniform sampler2D diffuseSampler;\n#include\n#include\n#include\n#include\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\nuniform sampler2D rampSampler;\n#endif\nvoid main(void) {\n#include\nvec4 textureColor=texture2D(diffuseSampler,vUV);\nvec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\n#ifdef RAMPGRADIENT\nfloat alpha=baseColor.a;\nfloat remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);\nvec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));\nbaseColor.rgb*=rampColor.rgb;\n\nfloat finalAlpha=baseColor.a;\nbaseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\n#endif\n#ifdef BLENDMULTIPLYMODE\nfloat sourceAlpha=vColor.a*textureColor.a;\nbaseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\n#endif\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\nbaseColor=applyImageProcessing(baseColor);\n#endif\n#endif\ngl_FragColor=baseColor;\n}";zt.a.ShadersStore.particlesPixelShader=Aa;var xa="\nattribute vec3 position;\nattribute vec4 color;\nattribute float angle;\nattribute vec2 size;\n#ifdef ANIMATESHEET\nattribute float cellIndex;\n#endif\n#ifndef BILLBOARD\nattribute vec3 direction;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute vec3 direction;\n#endif\n#ifdef RAMPGRADIENT\nattribute vec4 remapData;\n#endif\nattribute vec2 offset;\n\nuniform mat4 view;\nuniform mat4 projection;\nuniform vec2 translationPivot;\n#ifdef ANIMATESHEET\nuniform vec3 particlesInfos;\n#endif\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4)\nuniform mat4 invView;\n#endif\n#include\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\nvec3 zaxis=normalize(cross(yaxis,xaxis));\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn position+alignedCorner;\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\nvec3 normalizedToCamera=normalize(toCamera);\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn position+alignedCorner;\n}\n#endif\nvoid main(void) {\nvec2 cornerPos;\ncornerPos=(vec2(offset.x-0.5,offset.y-0.5)-translationPivot)*size+translationPivot;\n#ifdef BILLBOARD\n\nvec3 rotatedCorner;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=position-eyePosition;\nyaxis.y=0.;\nvec3 worldPos=rotate(normalize(yaxis),rotatedCorner);\nvec3 viewPos=(view*vec4(worldPos,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 toCamera=position-eyePosition;\nvec3 worldPos=rotateAlign(toCamera,rotatedCorner);\nvec3 viewPos=(view*vec4(worldPos,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\n\ngl_Position=projection*vec4(viewPos,1.0);\n#else\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=normalize(direction);\nvec3 worldPos=rotate(yaxis,rotatedCorner);\ngl_Position=projection*view*vec4(worldPos,1.0);\n#endif\nvColor=color;\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/particlesInfos.z);\nfloat columnOffset=cellIndex-rowOffset*particlesInfos.z;\nvec2 uvScale=particlesInfos.xy;\nvec2 uvOffset=vec2(offset.x ,1.0-offset.y);\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=offset;\n#endif\n\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4)\nvec4 worldPos=invView*vec4(viewPos,1.0);\n#endif\n#include\n}";zt.a.ShadersStore.particlesVertexShader=xa;var Ra=function(e){function t(t,i,n,s,a,c){void 0===s&&(s=null),void 0===a&&(a=!1),void 0===c&&(c=.01);var l=e.call(this,t)||this;return l._inheritedVelocityOffset=new o.x,l.onDisposeObservable=new r.c,l._particles=new Array,l._stockParticles=new Array,l._newPartsExcess=0,l._vertexBuffers={},l._scaledColorStep=new o.f(0,0,0,0),l._colorDiff=new o.f(0,0,0,0),l._scaledDirection=o.x.Zero(),l._scaledGravity=o.x.Zero(),l._currentRenderId=-1,l._useInstancing=!1,l._started=!1,l._stopped=!1,l._actualFrame=0,l._currentEmitRate1=0,l._currentEmitRate2=0,l._currentStartSize1=0,l._currentStartSize2=0,l._rawTextureWidth=256,l._useRampGradients=!1,l._disposeEmitterOnDispose=!1,l.recycleParticle=function(e){var t=l._particles.pop();t!==e&&t.copyTo(e),l._stockParticles.push(t)},l._createParticle=function(){var e;if(0!==l._stockParticles.length?(e=l._stockParticles.pop())._reset():e=new Ta(l),l._subEmitters&&l._subEmitters.length>0){var t=l._subEmitters[Math.floor(Math.random()*l._subEmitters.length)];e._attachedSubEmitters=[],t.forEach(function(t){if(t.type===ua.ATTACHED){var i=t.clone();e._attachedSubEmitters.push(i),i.particleSystem.start()}})}return e},l._emitFromParticle=function(e){if(l._subEmitters&&0!==l._subEmitters.length){var t=Math.floor(Math.random()*l._subEmitters.length);l._subEmitters[t].forEach(function(t){if(t.type===ua.END){var i=t.clone();e._inheritParticleInfoToSubEmitter(i),i.particleSystem._rootParticleSystem=l,l.activeSubSystems.push(i.particleSystem),i.particleSystem.start()}})}},l._capacity=i,l._epsilon=c,l._isAnimationSheetEnabled=a,l._scene=n||P.a.LastCreatedScene,l._attachImageProcessingConfiguration(null),l._customEffect=s,l._scene.particleSystems.push(l),l._useInstancing=l._scene.getEngine().getCaps().instancedArrays,l._createIndexBuffer(),l._createVertexBuffers(),l.particleEmitterType=new da,l.updateFunction=function(e){var t=null,i=null;l.noiseTexture&&(t=l.noiseTexture.getSize(),i=l.noiseTexture.getContent());for(var n,r=function(){n=e[s];var r=l._scaledUpdateSpeed,a=n.age;if(n.age+=r,n.age>n.lifeTime){var c=n.age-a;r=(n.lifeTime-a)*r/c,n.age=n.lifeTime}var u=n.age/n.lifeTime;l._colorGradients&&l._colorGradients.length>0?ye.h.GetCurrentGradient(u,l._colorGradients,function(e,t,i){e!==n._currentColorGradient&&(n._currentColor1.copyFrom(n._currentColor2),t.getColorToRef(n._currentColor2),n._currentColorGradient=e),o.f.LerpToRef(n._currentColor1,n._currentColor2,i,n.color)}):(n.colorStep.scaleToRef(r,l._scaledColorStep),n.color.addInPlace(l._scaledColorStep),n.color.a<0&&(n.color.a=0)),l._angularSpeedGradients&&l._angularSpeedGradients.length>0&&ye.h.GetCurrentGradient(u,l._angularSpeedGradients,function(e,t,i){e!==n._currentAngularSpeedGradient&&(n._currentAngularSpeed1=n._currentAngularSpeed2,n._currentAngularSpeed2=t.getFactor(),n._currentAngularSpeedGradient=e),n.angularSpeed=D.a.Lerp(n._currentAngularSpeed1,n._currentAngularSpeed2,i)}),n.angle+=n.angularSpeed*r;var h=r;if(l._velocityGradients&&l._velocityGradients.length>0&&ye.h.GetCurrentGradient(u,l._velocityGradients,function(e,t,i){e!==n._currentVelocityGradient&&(n._currentVelocity1=n._currentVelocity2,n._currentVelocity2=t.getFactor(),n._currentVelocityGradient=e),h*=D.a.Lerp(n._currentVelocity1,n._currentVelocity2,i)}),n.direction.scaleToRef(h,l._scaledDirection),l._limitVelocityGradients&&l._limitVelocityGradients.length>0&&ye.h.GetCurrentGradient(u,l._limitVelocityGradients,function(e,t,i){e!==n._currentLimitVelocityGradient&&(n._currentLimitVelocity1=n._currentLimitVelocity2,n._currentLimitVelocity2=t.getFactor(),n._currentLimitVelocityGradient=e);var r=D.a.Lerp(n._currentLimitVelocity1,n._currentLimitVelocity2,i);n.direction.length()>r&&n.direction.scaleInPlace(l.limitVelocityDamping)}),l._dragGradients&&l._dragGradients.length>0&&ye.h.GetCurrentGradient(u,l._dragGradients,function(e,t,i){e!==n._currentDragGradient&&(n._currentDrag1=n._currentDrag2,n._currentDrag2=t.getFactor(),n._currentDragGradient=e);var r=D.a.Lerp(n._currentDrag1,n._currentDrag2,i);l._scaledDirection.scaleInPlace(1-r)}),n.position.addInPlace(l._scaledDirection),i&&t&&n._randomNoiseCoordinates1){var d=l._fetchR(n._randomNoiseCoordinates1.x,n._randomNoiseCoordinates1.y,t.width,t.height,i),f=l._fetchR(n._randomNoiseCoordinates1.z,n._randomNoiseCoordinates2.x,t.width,t.height,i),p=l._fetchR(n._randomNoiseCoordinates2.y,n._randomNoiseCoordinates2.z,t.width,t.height,i),_=o.t.Vector3[0],g=o.t.Vector3[1];_.copyFromFloats((2*d-1)*l.noiseStrength.x,(2*f-1)*l.noiseStrength.y,(2*p-1)*l.noiseStrength.z),_.scaleToRef(r,g),n.direction.addInPlace(g)}if(l.gravity.scaleToRef(r,l._scaledGravity),n.direction.addInPlace(l._scaledGravity),l._sizeGradients&&l._sizeGradients.length>0&&ye.h.GetCurrentGradient(u,l._sizeGradients,function(e,t,i){e!==n._currentSizeGradient&&(n._currentSize1=n._currentSize2,n._currentSize2=t.getFactor(),n._currentSizeGradient=e),n.size=D.a.Lerp(n._currentSize1,n._currentSize2,i)}),l._useRampGradients&&(l._colorRemapGradients&&l._colorRemapGradients.length>0&&ye.h.GetCurrentGradient(u,l._colorRemapGradients,function(e,t,i){var r=D.a.Lerp(e.factor1,t.factor1,i),o=D.a.Lerp(e.factor2,t.factor2,i);n.remapData.x=r,n.remapData.y=o-r}),l._alphaRemapGradients&&l._alphaRemapGradients.length>0&&ye.h.GetCurrentGradient(u,l._alphaRemapGradients,function(e,t,i){var r=D.a.Lerp(e.factor1,t.factor1,i),o=D.a.Lerp(e.factor2,t.factor2,i);n.remapData.z=r,n.remapData.w=o-r})),l._isAnimationSheetEnabled&&n.updateCellIndex(),n._inheritParticleInfoToSubEmitters(),n.age>=n.lifeTime)return l._emitFromParticle(n),n._attachedSubEmitters&&(n._attachedSubEmitters.forEach(function(e){e.particleSystem.disposeOnStop=!0,e.particleSystem.stop()}),n._attachedSubEmitters=null),l.recycleParticle(n),s--,"continue"},s=0;st.gradient?1:0})},t.prototype._removeFactorGradient=function(e,t){if(e)for(var i=0,n=0,r=e;nt.gradient?1:0}),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._createRampGradientTexture(),this},t.prototype.removeRampGradient=function(e){return this._removeGradientAndTexture(e,this._rampGradients,this._rampGradientsTexture),this._rampGradientsTexture=null,this._rampGradients&&this._rampGradients.length>0&&this._createRampGradientTexture(),this},t.prototype.addColorGradient=function(e,t,i){this._colorGradients||(this._colorGradients=[]);var n=new ye.c;return n.gradient=e,n.color1=t,n.color2=i,this._colorGradients.push(n),this._colorGradients.sort(function(e,t){return e.gradientt.gradient?1:0}),this},t.prototype.removeColorGradient=function(e){if(!this._colorGradients)return this;for(var t=0,i=0,n=this._colorGradients;i0&&(this._currentEmitRateGradient=this._emitRateGradients[0],this._currentEmitRate1=this._currentEmitRateGradient.getFactor(),this._currentEmitRate2=this._currentEmitRate1),this._emitRateGradients.length>1&&(this._currentEmitRate2=this._emitRateGradients[1].getFactor())),this._startSizeGradients&&(this._startSizeGradients.length>0&&(this._currentStartSizeGradient=this._startSizeGradients[0],this._currentStartSize1=this._currentStartSizeGradient.getFactor(),this._currentStartSize2=this._currentStartSize1),this._startSizeGradients.length>1&&(this._currentStartSize2=this._startSizeGradients[1].getFactor())),this.preWarmCycles){this.emitter instanceof Fe.a&&this.emitter.computeWorldMatrix(!0);var i=this.noiseTexture;if(i&&i.onGeneratedObservable)i.onGeneratedObservable.addOnce(function(){setTimeout(function(){for(var e=0;e0&&this.getScene().beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop)}},t.prototype.stop=function(e){void 0===e&&(e=!0),this._stopped=!0,e&&this._stopSubEmitters()},t.prototype.reset=function(){this._stockParticles=[],this._particles=[]},t.prototype._appendParticleVertex=function(e,i,n,r){var o=e*this._vertexBufferSize;this._vertexData[o++]=i.position.x+this.worldOffset.x,this._vertexData[o++]=i.position.y+this.worldOffset.y,this._vertexData[o++]=i.position.z+this.worldOffset.z,this._vertexData[o++]=i.color.r,this._vertexData[o++]=i.color.g,this._vertexData[o++]=i.color.b,this._vertexData[o++]=i.color.a,this._vertexData[o++]=i.angle,this._vertexData[o++]=i.scale.x*i.size,this._vertexData[o++]=i.scale.y*i.size,this._isAnimationSheetEnabled&&(this._vertexData[o++]=i.cellIndex),this._isBillboardBased?this.billboardMode===t.BILLBOARDMODE_STRETCHED&&(this._vertexData[o++]=i.direction.x,this._vertexData[o++]=i.direction.y,this._vertexData[o++]=i.direction.z):i._initialDirection?(this._vertexData[o++]=i._initialDirection.x,this._vertexData[o++]=i._initialDirection.y,this._vertexData[o++]=i._initialDirection.z):(this._vertexData[o++]=i.direction.x,this._vertexData[o++]=i.direction.y,this._vertexData[o++]=i.direction.z),this._useRampGradients&&(this._vertexData[o++]=i.remapData.x,this._vertexData[o++]=i.remapData.y,this._vertexData[o++]=i.remapData.z,this._vertexData[o++]=i.remapData.w),this._useInstancing||(this._isAnimationSheetEnabled&&(0===n?n=this._epsilon:1===n&&(n=1-this._epsilon),0===r?r=this._epsilon:1===r&&(r=1-this._epsilon)),this._vertexData[o++]=n,this._vertexData[o++]=r)},t.prototype._stopSubEmitters=function(){this.activeSubSystems&&(this.activeSubSystems.forEach(function(e){e.stop(!0)}),this.activeSubSystems=new Array)},t.prototype._removeFromRoot=function(){if(this._rootParticleSystem){var e=this._rootParticleSystem.activeSubSystems.indexOf(this);-1!==e&&this._rootParticleSystem.activeSubSystems.splice(e,1),this._rootParticleSystem=null}},t.prototype._update=function(e){var t,i=this;if(this._alive=this._particles.length>0,this.emitter.position){var n=this.emitter;this._emitterWorldMatrix=n.getWorldMatrix()}else{var r=this.emitter;this._emitterWorldMatrix=o.j.Translation(r.x,r.y,r.z)}this.updateFunction(this._particles);for(var s,a=function(){if(c._particles.length===c._capacity)return"break";t=c._createParticle(),c._particles.push(t);var e=D.a.RandomRange(c.minEmitPower,c.maxEmitPower);if(c.startPositionFunction?c.startPositionFunction(c._emitterWorldMatrix,t.position,t):c.particleEmitterType.startPositionFunction(c._emitterWorldMatrix,t.position,t),c.startDirectionFunction?c.startDirectionFunction(c._emitterWorldMatrix,t.direction,t):c.particleEmitterType.startDirectionFunction(c._emitterWorldMatrix,t.direction,t),0===e?t._initialDirection?t._initialDirection.copyFrom(t.direction):t._initialDirection=t.direction.clone():t._initialDirection=null,t.direction.scaleInPlace(e),c.targetStopDuration&&c._lifeTimeGradients&&c._lifeTimeGradients.length>0){var n=D.a.Clamp(c._actualFrame/c.targetStopDuration);ye.h.GetCurrentGradient(n,c._lifeTimeGradients,function(e,i){var r=e,o=i,s=r.getFactor(),a=o.getFactor(),c=(n-r.gradient)/(o.gradient-r.gradient);t.lifeTime=D.a.Lerp(s,a,c)})}else t.lifeTime=D.a.RandomRange(c.minLifeTime,c.maxLifeTime);if(c._sizeGradients&&0!==c._sizeGradients.length?(t._currentSizeGradient=c._sizeGradients[0],t._currentSize1=t._currentSizeGradient.getFactor(),t.size=t._currentSize1,c._sizeGradients.length>1?t._currentSize2=c._sizeGradients[1].getFactor():t._currentSize2=t._currentSize1):t.size=D.a.RandomRange(c.minSize,c.maxSize),t.scale.copyFromFloats(D.a.RandomRange(c.minScaleX,c.maxScaleX),D.a.RandomRange(c.minScaleY,c.maxScaleY)),c._startSizeGradients&&c._startSizeGradients[0]&&c.targetStopDuration){var r=c._actualFrame/c.targetStopDuration;ye.h.GetCurrentGradient(r,c._startSizeGradients,function(e,n,r){e!==i._currentStartSizeGradient&&(i._currentStartSize1=i._currentStartSize2,i._currentStartSize2=n.getFactor(),i._currentStartSizeGradient=e);var o=D.a.Lerp(i._currentStartSize1,i._currentStartSize2,r);t.scale.scaleInPlace(o)})}c._angularSpeedGradients&&0!==c._angularSpeedGradients.length?(t._currentAngularSpeedGradient=c._angularSpeedGradients[0],t.angularSpeed=t._currentAngularSpeedGradient.getFactor(),t._currentAngularSpeed1=t.angularSpeed,c._angularSpeedGradients.length>1?t._currentAngularSpeed2=c._angularSpeedGradients[1].getFactor():t._currentAngularSpeed2=t._currentAngularSpeed1):t.angularSpeed=D.a.RandomRange(c.minAngularSpeed,c.maxAngularSpeed),t.angle=D.a.RandomRange(c.minInitialRotation,c.maxInitialRotation),c._velocityGradients&&c._velocityGradients.length>0&&(t._currentVelocityGradient=c._velocityGradients[0],t._currentVelocity1=t._currentVelocityGradient.getFactor(),c._velocityGradients.length>1?t._currentVelocity2=c._velocityGradients[1].getFactor():t._currentVelocity2=t._currentVelocity1),c._limitVelocityGradients&&c._limitVelocityGradients.length>0&&(t._currentLimitVelocityGradient=c._limitVelocityGradients[0],t._currentLimitVelocity1=t._currentLimitVelocityGradient.getFactor(),c._limitVelocityGradients.length>1?t._currentLimitVelocity2=c._limitVelocityGradients[1].getFactor():t._currentLimitVelocity2=t._currentLimitVelocity1),c._dragGradients&&c._dragGradients.length>0&&(t._currentDragGradient=c._dragGradients[0],t._currentDrag1=t._currentDragGradient.getFactor(),c._dragGradients.length>1?t._currentDrag2=c._dragGradients[1].getFactor():t._currentDrag2=t._currentDrag1),c._colorGradients&&0!==c._colorGradients.length?(t._currentColorGradient=c._colorGradients[0],t._currentColorGradient.getColorToRef(t.color),t._currentColor1.copyFrom(t.color),c._colorGradients.length>1?c._colorGradients[1].getColorToRef(t._currentColor2):t._currentColor2.copyFrom(t.color)):(s=D.a.RandomRange(0,1),o.f.LerpToRef(c.color1,c.color2,s,t.color),c.colorDead.subtractToRef(t.color,c._colorDiff),c._colorDiff.scaleToRef(1/t.lifeTime,t.colorStep)),c._isAnimationSheetEnabled&&(t._initialStartSpriteCellID=c.startSpriteCellID,t._initialEndSpriteCellID=c.endSpriteCellID),t.direction.addInPlace(c._inheritedVelocityOffset),c._useRampGradients&&(t.remapData=new o.y(0,1,0,1)),c.noiseTexture&&(t._randomNoiseCoordinates1?(t._randomNoiseCoordinates1.copyFromFloats(Math.random(),Math.random(),Math.random()),t._randomNoiseCoordinates2.copyFromFloats(Math.random(),Math.random(),Math.random())):(t._randomNoiseCoordinates1=new o.x(Math.random(),Math.random(),Math.random()),t._randomNoiseCoordinates2=new o.x(Math.random(),Math.random(),Math.random()))),t._inheritParticleInfoToSubEmitters()},c=this,l=0;l-1)i=this.manualEmitCount,this._newPartsExcess=0,this.manualEmitCount=0;else{var n=this.emitRate;if(this._emitRateGradients&&this._emitRateGradients.length>0&&this.targetStopDuration){var r=this._actualFrame/this.targetStopDuration;ye.h.GetCurrentGradient(r,this._emitRateGradients,function(e,i,r){e!==t._currentEmitRateGradient&&(t._currentEmitRate1=t._currentEmitRate2,t._currentEmitRate2=i.getFactor(),t._currentEmitRateGradient=e),n=D.a.Lerp(t._currentEmitRate1,t._currentEmitRate2,r)})}i=n*this._scaledUpdateSpeed>>0,this._newPartsExcess+=n*this._scaledUpdateSpeed-i}if(this._newPartsExcess>1&&(i+=this._newPartsExcess>>0,this._newPartsExcess-=this._newPartsExcess>>0),this._alive=!1,this._stopped?i=0:(this._actualFrame+=this._scaledUpdateSpeed,this.targetStopDuration&&this._actualFrame>=this.targetStopDuration&&this.stop()),this._update(i),this._stopped&&(this._alive||(this._started=!1,this.onAnimationEnd&&this.onAnimationEnd(),this.disposeOnStop&&this._scene._toBeDisposed.push(this))),!e){for(var o=0,s=0;s-1&&this._scene.particleSystems.splice(t,1),this._scene._activeParticleSystems.dispose(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.reset()},t.prototype.clone=function(e,i){var n=null,r=null;if(null!=this.customShader){var o=(r=this.customShader).shaderOptions.defines.length>0?r.shaderOptions.defines.join("\n"):"";n=this._scene.getEngine().createEffectForParticles(r.shaderPath.fragmentElement,r.shaderOptions.uniforms,r.shaderOptions.samplers,o)}else this._customEffect&&(n=this._customEffect);var s=new t(e,this._capacity,this._scene,n);return s.customShader=r,S.a.DeepCopy(this,s,["particles","customShader","noiseTexture"]),void 0===i&&(i=this.emitter),s.noiseTexture=this.noiseTexture,s.emitter=i,this.particleTexture&&(s.particleTexture=new ke.a(this.particleTexture.url,this._scene)),this._colorGradients&&this._colorGradients.forEach(function(e){s.addColorGradient(e.gradient,e.color1,e.color2)}),this._dragGradients&&this._dragGradients.forEach(function(e){s.addDragGradient(e.gradient,e.factor1,e.factor2)}),this._angularSpeedGradients&&this._angularSpeedGradients.forEach(function(e){s.addAngularSpeedGradient(e.gradient,e.factor1,e.factor2)}),this._emitRateGradients&&this._emitRateGradients.forEach(function(e){s.addEmitRateGradient(e.gradient,e.factor1,e.factor2)}),this._lifeTimeGradients&&this._lifeTimeGradients.forEach(function(e){s.addLifeTimeGradient(e.gradient,e.factor1,e.factor2)}),this._limitVelocityGradients&&this._limitVelocityGradients.forEach(function(e){s.addLimitVelocityGradient(e.gradient,e.factor1,e.factor2)}),this._sizeGradients&&this._sizeGradients.forEach(function(e){s.addSizeGradient(e.gradient,e.factor1,e.factor2)}),this._startSizeGradients&&this._startSizeGradients.forEach(function(e){s.addStartSizeGradient(e.gradient,e.factor1,e.factor2)}),this._velocityGradients&&this._velocityGradients.forEach(function(e){s.addVelocityGradient(e.gradient,e.factor1,e.factor2)}),this._rampGradients&&this._rampGradients.forEach(function(e){s.addRampGradient(e.gradient,e.color)}),this._colorRemapGradients&&this._colorRemapGradients.forEach(function(e){s.addColorRemapGradient(e.gradient,e.factor1,e.factor2)}),this._alphaRemapGradients&&this._alphaRemapGradients.forEach(function(e){s.addAlphaRemapGradient(e.gradient,e.factor1,e.factor2)}),this.preventAutoStart||s.start(),s},t.prototype.serialize=function(){var e={};if(t._Serialize(e,this),e.textureMask=this.textureMask.asArray(),e.customShader=this.customShader,e.preventAutoStart=this.preventAutoStart,this.subEmitters){e.subEmitters=[],this._subEmitters||this._prepareSubEmitterInternalArray();for(var i=0,n=this._subEmitters;i0?c.shaderOptions.defines.join("\n"):"";a=i.getEngine().createEffectForParticles(c.shaderPath.fragmentElement,c.shaderOptions.uniforms,c.shaderOptions.samplers,l)}var u=new t(s,e.capacity,i,a,e.isAnimationSheetEnabled);if(u.customShader=c,e.id&&(u.id=e.id),e.subEmitters){u.subEmitters=[];for(var h=0,d=e.subEmitters;h1},enumerable:!0,configurable:!0}),t.prototype.getCapacity=function(){return this._capacity},Object.defineProperty(t.prototype,"activeParticleCount",{get:function(){return this._activeCount},set:function(e){this._activeCount=Math.min(e,this._capacity)},enumerable:!0,configurable:!0}),t.prototype.isReady=function(){return this._updateEffect?!!(this.emitter&&this._updateEffect.isReady()&&this._imageProcessingConfiguration.isReady()&&this._renderEffect.isReady()&&this.particleTexture&&this.particleTexture.isReady()):(this._recreateUpdateEffect(),this._recreateRenderEffect(),!1)},t.prototype.isStarted=function(){return this._started},t.prototype.start=function(e){var t=this;if(void 0===e&&(e=this.startDelay),!this.targetStopDuration&&this._hasTargetStopDurationDependantGradient())throw"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set";e?setTimeout(function(){t.start(0)},e):(this._started=!0,this._stopped=!1,this._preWarmDone=!1,this.beginAnimationOnStart&&this.animations&&this.animations.length>0&&this.getScene().beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop))},t.prototype.stop=function(){this._stopped=!0},t.prototype.reset=function(){this._releaseBuffers(),this._releaseVAOs(),this._currentActiveCount=0,this._targetIndex=0},t.prototype.getClassName=function(){return"GPUParticleSystem"},t.prototype._removeGradientAndTexture=function(t,i,n){return e.prototype._removeGradientAndTexture.call(this,t,i,n),this._releaseBuffers(),this},t.prototype.addColorGradient=function(e,t,i){this._colorGradients||(this._colorGradients=[]);var n=new ye.c;return n.gradient=e,n.color1=t,this._colorGradients.push(n),this._colorGradients.sort(function(e,t){return e.gradientt.gradient?1:0}),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null),this._releaseBuffers(),this},t.prototype.removeColorGradient=function(e){return this._removeGradientAndTexture(e,this._colorGradients,this._colorGradientsTexture),this._colorGradientsTexture=null,this},t.prototype._addFactorGradient=function(e,t,i){var n=new ye.d;n.gradient=t,n.factor1=i,e.push(n),e.sort(function(e,t){return e.gradientt.gradient?1:0}),this._releaseBuffers()},t.prototype.addSizeGradient=function(e,t){return this._sizeGradients||(this._sizeGradients=[]),this._addFactorGradient(this._sizeGradients,e,t),this._sizeGradientsTexture&&(this._sizeGradientsTexture.dispose(),this._sizeGradientsTexture=null),this._releaseBuffers(),this},t.prototype.removeSizeGradient=function(e){return this._removeGradientAndTexture(e,this._sizeGradients,this._sizeGradientsTexture),this._sizeGradientsTexture=null,this},t.prototype.addAngularSpeedGradient=function(e,t){return this._angularSpeedGradients||(this._angularSpeedGradients=[]),this._addFactorGradient(this._angularSpeedGradients,e,t),this._angularSpeedGradientsTexture&&(this._angularSpeedGradientsTexture.dispose(),this._angularSpeedGradientsTexture=null),this._releaseBuffers(),this},t.prototype.removeAngularSpeedGradient=function(e){return this._removeGradientAndTexture(e,this._angularSpeedGradients,this._angularSpeedGradientsTexture),this._angularSpeedGradientsTexture=null,this},t.prototype.addVelocityGradient=function(e,t){return this._velocityGradients||(this._velocityGradients=[]),this._addFactorGradient(this._velocityGradients,e,t),this._velocityGradientsTexture&&(this._velocityGradientsTexture.dispose(),this._velocityGradientsTexture=null),this._releaseBuffers(),this},t.prototype.removeVelocityGradient=function(e){return this._removeGradientAndTexture(e,this._velocityGradients,this._velocityGradientsTexture),this._velocityGradientsTexture=null,this},t.prototype.addLimitVelocityGradient=function(e,t){return this._limitVelocityGradients||(this._limitVelocityGradients=[]),this._addFactorGradient(this._limitVelocityGradients,e,t),this._limitVelocityGradientsTexture&&(this._limitVelocityGradientsTexture.dispose(),this._limitVelocityGradientsTexture=null),this._releaseBuffers(),this},t.prototype.removeLimitVelocityGradient=function(e){return this._removeGradientAndTexture(e,this._limitVelocityGradients,this._limitVelocityGradientsTexture),this._limitVelocityGradientsTexture=null,this},t.prototype.addDragGradient=function(e,t){return this._dragGradients||(this._dragGradients=[]),this._addFactorGradient(this._dragGradients,e,t),this._dragGradientsTexture&&(this._dragGradientsTexture.dispose(),this._dragGradientsTexture=null),this._releaseBuffers(),this},t.prototype.removeDragGradient=function(e){return this._removeGradientAndTexture(e,this._dragGradients,this._dragGradientsTexture),this._dragGradientsTexture=null,this},t.prototype.addEmitRateGradient=function(e,t,i){return this},t.prototype.removeEmitRateGradient=function(e){return this},t.prototype.addStartSizeGradient=function(e,t,i){return this},t.prototype.removeStartSizeGradient=function(e){return this},t.prototype.addColorRemapGradient=function(e,t,i){return this},t.prototype.removeColorRemapGradient=function(){return this},t.prototype.addAlphaRemapGradient=function(e,t,i){return this},t.prototype.removeAlphaRemapGradient=function(){return this},t.prototype.addRampGradient=function(e,t){return this},t.prototype.removeRampGradient=function(){return this},t.prototype.getRampGradients=function(){return null},Object.defineProperty(t.prototype,"useRampGradients",{get:function(){return!1},set:function(e){},enumerable:!0,configurable:!0}),t.prototype.addLifeTimeGradient=function(e,t,i){return this},t.prototype.removeLifeTimeGradient=function(e){return this},t.prototype._reset=function(){this._releaseBuffers()},t.prototype._createUpdateVAO=function(e){var t={};t.position=e.createVertexBuffer("position",0,3),t.age=e.createVertexBuffer("age",3,1),t.life=e.createVertexBuffer("life",4,1),t.seed=e.createVertexBuffer("seed",5,4),t.size=e.createVertexBuffer("size",9,3);var i=12;this._colorGradientsTexture||(t.color=e.createVertexBuffer("color",i,4),i+=4),t.direction=e.createVertexBuffer("direction",i,3),i+=3,this._isBillboardBased||(t.initialDirection=e.createVertexBuffer("initialDirection",i,3),i+=3),this._angularSpeedGradientsTexture?(t.angle=e.createVertexBuffer("angle",i,1),i+=1):(t.angle=e.createVertexBuffer("angle",i,2),i+=2),this._isAnimationSheetEnabled&&(t.cellIndex=e.createVertexBuffer("cellIndex",i,1),i+=1,this.spriteRandomStartCell&&(t.cellStartOffset=e.createVertexBuffer("cellStartOffset",i,1),i+=1)),this.noiseTexture&&(t.noiseCoordinates1=e.createVertexBuffer("noiseCoordinates1",i,3),i+=3,t.noiseCoordinates2=e.createVertexBuffer("noiseCoordinates2",i,3),i+=3);var n=this._engine.recordVertexArrayObject(t,null,this._updateEffect);return this._engine.bindArrayBuffer(null),n},t.prototype._createRenderVAO=function(e,t){var i={};i.position=e.createVertexBuffer("position",0,3,this._attributesStrideSize,!0),i.age=e.createVertexBuffer("age",3,1,this._attributesStrideSize,!0),i.life=e.createVertexBuffer("life",4,1,this._attributesStrideSize,!0),i.size=e.createVertexBuffer("size",9,3,this._attributesStrideSize,!0);var n=12;this._colorGradientsTexture||(i.color=e.createVertexBuffer("color",n,4,this._attributesStrideSize,!0),n+=4),this.billboardMode===Ra.BILLBOARDMODE_STRETCHED&&(i.direction=e.createVertexBuffer("direction",n,3,this._attributesStrideSize,!0)),n+=3,this._isBillboardBased||(i.initialDirection=e.createVertexBuffer("initialDirection",n,3,this._attributesStrideSize,!0),n+=3),i.angle=e.createVertexBuffer("angle",n,1,this._attributesStrideSize,!0),this._angularSpeedGradientsTexture?n++:n+=2,this._isAnimationSheetEnabled&&(i.cellIndex=e.createVertexBuffer("cellIndex",n,1,this._attributesStrideSize,!0),n+=1,this.spriteRandomStartCell&&(i.cellStartOffset=e.createVertexBuffer("cellStartOffset",n,1,this._attributesStrideSize,!0),n+=1)),this.noiseTexture&&(i.noiseCoordinates1=e.createVertexBuffer("noiseCoordinates1",n,3,this._attributesStrideSize,!0),n+=3,i.noiseCoordinates2=e.createVertexBuffer("noiseCoordinates2",n,3,this._attributesStrideSize,!0),n+=3),i.offset=t.createVertexBuffer("offset",0,2),i.uv=t.createVertexBuffer("uv",2,2);var r=this._engine.recordVertexArrayObject(i,null,this._renderEffect);return this._engine.bindArrayBuffer(null),r},t.prototype._initialize=function(e){if(void 0===e&&(e=!1),!this._buffer0||e){var t=this._scene.getEngine(),i=new Array;this._attributesStrideSize=21,this._targetIndex=0,this.isBillboardBased||(this._attributesStrideSize+=3),this._colorGradientsTexture&&(this._attributesStrideSize-=4),this._angularSpeedGradientsTexture&&(this._attributesStrideSize-=1),this._isAnimationSheetEnabled&&(this._attributesStrideSize+=1,this.spriteRandomStartCell&&(this._attributesStrideSize+=1)),this.noiseTexture&&(this._attributesStrideSize+=6);for(var n=0;n=this.targetStopDuration&&this.stop()},t.prototype._createFactorGradientTexture=function(e,t){var i=this[t];if(e&&e.length&&!i){for(var n=new Float32Array(this._rawTextureWidth),r=0;r1){var i=0|this._accumulatedCount;this._accumulatedCount-=i,this._currentActiveCount=Math.min(this._activeCount,this._currentActiveCount+i)}if(!this._currentActiveCount)return 0;var n;if(this._engine.enableEffect(this._updateEffect),this._engine.setState(!1),this._updateEffect.setFloat("currentCount",this._currentActiveCount),this._updateEffect.setFloat("timeDelta",this._timeDelta),this._updateEffect.setFloat("stopFactor",this._stopped?0:1),this._updateEffect.setTexture("randomSampler",this._randomTexture),this._updateEffect.setTexture("randomSampler2",this._randomTexture2),this._updateEffect.setFloat2("lifeTime",this.minLifeTime,this.maxLifeTime),this._updateEffect.setFloat2("emitPower",this.minEmitPower,this.maxEmitPower),this._colorGradientsTexture||(this._updateEffect.setDirectColor4("color1",this.color1),this._updateEffect.setDirectColor4("color2",this.color2)),this._updateEffect.setFloat2("sizeRange",this.minSize,this.maxSize),this._updateEffect.setFloat4("scaleRange",this.minScaleX,this.maxScaleX,this.minScaleY,this.maxScaleY),this._updateEffect.setFloat4("angleRange",this.minAngularSpeed,this.maxAngularSpeed,this.minInitialRotation,this.maxInitialRotation),this._updateEffect.setVector3("gravity",this.gravity),this._sizeGradientsTexture&&this._updateEffect.setTexture("sizeGradientSampler",this._sizeGradientsTexture),this._angularSpeedGradientsTexture&&this._updateEffect.setTexture("angularSpeedGradientSampler",this._angularSpeedGradientsTexture),this._velocityGradientsTexture&&this._updateEffect.setTexture("velocityGradientSampler",this._velocityGradientsTexture),this._limitVelocityGradientsTexture&&(this._updateEffect.setTexture("limitVelocityGradientSampler",this._limitVelocityGradientsTexture),this._updateEffect.setFloat("limitVelocityDamping",this.limitVelocityDamping)),this._dragGradientsTexture&&this._updateEffect.setTexture("dragGradientSampler",this._dragGradientsTexture),this.particleEmitterType&&this.particleEmitterType.applyToShader(this._updateEffect),this._isAnimationSheetEnabled&&this._updateEffect.setFloat3("cellInfos",this.startSpriteCellID,this.endSpriteCellID,this.spriteCellChangeSpeed),this.noiseTexture&&(this._updateEffect.setTexture("noiseSampler",this.noiseTexture),this._updateEffect.setVector3("noiseStrength",this.noiseStrength)),this.emitter.position){n=this.emitter.getWorldMatrix()}else{var r=this.emitter;n=o.j.Translation(r.x,r.y,r.z)}if(this._updateEffect.setMatrix("emitterWM",n),this._engine.bindVertexArrayObject(this._updateVAO[this._targetIndex],null),this._engine.bindTransformFeedbackBuffer(this._targetBuffer.getBuffer()),this._engine.setRasterizerState(!1),this._engine.beginTransformFeedback(!0),this._engine.drawArraysType(so.a.PointListDrawMode,0,this._currentActiveCount),this._engine.endTransformFeedback(),this._engine.setRasterizerState(!0),this._engine.bindTransformFeedbackBuffer(null),!e){this._engine.enableEffect(this._renderEffect);var s=this._scene.getViewMatrix();if(this._renderEffect.setMatrix("view",s),this._renderEffect.setMatrix("projection",this._scene.getProjectionMatrix()),this._renderEffect.setTexture("textureSampler",this.particleTexture),this._renderEffect.setVector2("translationPivot",this.translationPivot),this._renderEffect.setVector3("worldOffset",this.worldOffset),this._colorGradientsTexture?this._renderEffect.setTexture("colorGradientSampler",this._colorGradientsTexture):this._renderEffect.setDirectColor4("colorDead",this.colorDead),this._isAnimationSheetEnabled&&this.particleTexture){var a=this.particleTexture.getBaseSize();this._renderEffect.setFloat3("sheetInfos",this.spriteCellWidth/a.width,this.spriteCellHeight/a.height,a.width/this.spriteCellWidth)}if(this._isBillboardBased){var c=this._scene.activeCamera;this._renderEffect.setVector3("eyePosition",c.globalPosition)}if(this._scene.clipPlane||this._scene.clipPlane2||this._scene.clipPlane3||this._scene.clipPlane4){var l=s.clone();l.invert(),this._renderEffect.setMatrix("invView",l),ir.a.BindClipPlane(this._renderEffect,this._scene)}switch(this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._renderEffect),this.blendMode){case Ra.BLENDMODE_ADD:this._engine.setAlphaMode(_.a.ALPHA_ADD);break;case Ra.BLENDMODE_ONEONE:this._engine.setAlphaMode(_.a.ALPHA_ONEONE);break;case Ra.BLENDMODE_STANDARD:this._engine.setAlphaMode(_.a.ALPHA_COMBINE);break;case Ra.BLENDMODE_MULTIPLY:this._engine.setAlphaMode(_.a.ALPHA_MULTIPLY)}this.forceDepthWrite&&this._engine.setDepthWrite(!0),this._engine.bindVertexArrayObject(this._renderVAO[this._targetIndex],null),this._engine.drawArraysType(so.a.TriangleFanDrawMode,0,4,this._currentActiveCount),this._engine.setAlphaMode(_.a.ALPHA_DISABLE)}this._targetIndex++,2===this._targetIndex&&(this._targetIndex=0);var u=this._sourceBuffer;return this._sourceBuffer=this._targetBuffer,this._targetBuffer=u,this._currentActiveCount},t.prototype.rebuild=function(){this._initialize(!0)},t.prototype._releaseBuffers=function(){this._buffer0&&(this._buffer0.dispose(),this._buffer0=null),this._buffer1&&(this._buffer1.dispose(),this._buffer1=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null)},t.prototype._releaseVAOs=function(){if(this._updateVAO){for(var e=0;e-1&&this._scene.particleSystems.splice(t,1),this._releaseBuffers(),this._releaseVAOs(),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null),this._sizeGradientsTexture&&(this._sizeGradientsTexture.dispose(),this._sizeGradientsTexture=null),this._angularSpeedGradientsTexture&&(this._angularSpeedGradientsTexture.dispose(),this._angularSpeedGradientsTexture=null),this._velocityGradientsTexture&&(this._velocityGradientsTexture.dispose(),this._velocityGradientsTexture=null),this._limitVelocityGradientsTexture&&(this._limitVelocityGradientsTexture.dispose(),this._limitVelocityGradientsTexture=null),this._dragGradientsTexture&&(this._dragGradientsTexture.dispose(),this._dragGradientsTexture=null),this._randomTexture&&(this._randomTexture.dispose(),this._randomTexture=null),this._randomTexture2&&(this._randomTexture2.dispose(),this._randomTexture2=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()},t.prototype.clone=function(e,i){var n=new t(e,{capacity:this._capacity,randomTextureSize:this._randomTextureSize},this._scene);return S.a.DeepCopy(this,n),void 0===i&&(i=this.emitter),n.emitter=i,this.particleTexture&&(n.particleTexture=new ke.a(this.particleTexture.url,this._scene)),n},t.prototype.serialize=function(){var e={};return Ra._Serialize(e,this),e.activeParticleCount=this.activeParticleCount,e},t.Parse=function(e,i,n,r){void 0===r&&(r=!1);var o=new t(e.name,{capacity:e.capacity,randomTextureSize:e.randomTextureSize},i);return e.activeParticleCount&&(o.activeParticleCount=e.activeParticleCount),Ra._Parse(e,o,i,n),e.preventAutoStart&&(o.preventAutoStart=e.preventAutoStart),r||o.preventAutoStart||o.start(),o},t}(ba),Da=(function(){}(),function(){function e(){this.systems=new Array}return Object.defineProperty(e.prototype,"emitterNode",{get:function(){return this._emitterNode},enumerable:!0,configurable:!0}),e.prototype.setEmitterAsSphere=function(e,t,i){this._emitterNode&&this._emitterNode.dispose(),this._emitterCreationOptions={kind:"Sphere",options:e,renderingGroupId:t};var n=Ln.a.CreateSphere("emitterSphere",{diameter:e.diameter,segments:e.segments},i);n.renderingGroupId=t;var r=new Ri.a("emitterSphereMaterial",i);r.emissiveColor=e.color,n.material=r;for(var o=0,s=this.systems;o0&&t.set(this._uvs32,Oi.b.UVKind),this._colors32.length>0&&t.set(this._colors32,Oi.b.ColorKind);var i=new fe.a(this.name,this._scene);return t.applyToMesh(i,this._updatable),this.mesh=i,this.mesh.isPickable=this._pickable,this._depthSort||(this._indices=null),this._positions=null,this._normals=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0),i},e.prototype.digest=function(e,t){var i=t&&t.facetNb||1,n=t&&t.number||0,r=t&&t.delta||0,s=e.getVerticesData(Oi.b.PositionKind),a=e.getIndices(),c=e.getVerticesData(Oi.b.UVKind),l=e.getVerticesData(Oi.b.ColorKind),u=e.getVerticesData(Oi.b.NormalKind),h=0,d=a.length/3;n?(n=n>d?d:n,i=Math.round(d/n),r=0):i=i>d?d:i;for(var f=[],p=[],_=[],g=[],m=o.x.Zero(),v=i;hd-(i=v+Math.floor((1+r)*Math.random()))&&(i=d-h),f.length=0,p.length=0,_.length=0,g.length=0;for(var y=0,b=3*h;b<3*(h+i);b++){p.push(y);var T=a[b];f.push(s[3*T],s[3*T+1],s[3*T+2]),c&&_.push(c[2*T],c[2*T+1]),l&&g.push(l[4*T],l[4*T+1],l[4*T+2],l[4*T+3]),y++}var E,A,x=this.nbParticles,R=this._posToShape(f),P=this._uvsToShapeUV(_);for(E=0;E65535&&(this._needs32Bits=!0)}if(this._pickable){var C=n.length/3;for(_=0;_=this.nbParticles?this.nbParticles-1:t,this._computeBoundingBox&&(0!=e||t!=this.nbParticles-1)){var O=this.mesh._boundingInfo;O&&(v.copyFrom(O.minimum),y.copyFrom(O.maximum))}var I=(x=this.particles[e]._pos)/3|0;P=4*I,C=2*I;for(var D=e;D<=t;D++){var L=this.particles[D];this.updateParticle(L);var w=L._model._shape,F=L._model._shapeUV,N=L._rotationMatrix,B=L.position,U=L.rotation,V=L.scaling,G=L._globalPosition;if(this._depthSort&&this._depthSortParticles){var k=this.depthSortedParticles[D];k.ind=L._ind,k.indicesLength=L._model._indicesLength,k.sqDistance=o.x.DistanceSquared(L.position,b)}if(!L.alive||L._stillInvisible&&!L.isVisible)x+=3*(M=w.length),P+=4*M,C+=2*M;else{if(L.isVisible){L._stillInvisible=!1;var z=p[12];if(L.pivot.multiplyToRef(V,z),this.billboard&&(U.x=0,U.y=0),(this._computeParticleRotation||this.billboard)&&L.getRotationMatrix(n),null!==L.parentId){var j=this.particles[L.parentId],H=j._rotationMatrix,W=j._globalPosition,X=B.x*H[1]+B.y*H[4]+B.z*H[7],Y=B.x*H[0]+B.y*H[3]+B.z*H[6],K=B.x*H[2]+B.y*H[5]+B.z*H[8];if(G.x=W.x+Y,G.y=W.y+X,G.z=W.z+K,this._computeParticleRotation||this.billboard){var Q=n.m;N[0]=Q[0]*H[0]+Q[1]*H[3]+Q[2]*H[6],N[1]=Q[0]*H[1]+Q[1]*H[4]+Q[2]*H[7],N[2]=Q[0]*H[2]+Q[1]*H[5]+Q[2]*H[8],N[3]=Q[4]*H[0]+Q[5]*H[3]+Q[6]*H[6],N[4]=Q[4]*H[1]+Q[5]*H[4]+Q[6]*H[7],N[5]=Q[4]*H[2]+Q[5]*H[5]+Q[6]*H[8],N[6]=Q[8]*H[0]+Q[9]*H[3]+Q[10]*H[6],N[7]=Q[8]*H[1]+Q[9]*H[4]+Q[10]*H[7],N[8]=Q[8]*H[2]+Q[9]*H[5]+Q[10]*H[8]}}else if(G.x=B.x,G.y=B.y,G.z=B.z,this._computeParticleRotation||this.billboard){Q=n.m;N[0]=Q[0],N[1]=Q[1],N[2]=Q[2],N[3]=Q[4],N[4]=Q[5],N[5]=Q[6],N[6]=Q[8],N[7]=Q[9],N[8]=Q[10]}var q=p[11];for(L.translateFromPivot?q.setAll(0):q.copyFrom(z),M=0;Mthis._options.radius)return null;var s=this._options.falloff===Va.Constant?this._options.strength:this._options.strength*(1-r/this._options.radius);return{force:i.multiplyByFloats(s,s,s),contactPoint:n,distanceFromOrigin:r}},e.prototype.triggerAffectedImpostorsCallback=function(e){this._options.affectedImpostorsCallback&&this._options.affectedImpostorsCallback(e)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),e?this._sphere.dispose():setTimeout(function(){t._dataFetched||t._sphere.dispose()},0)},e.prototype._prepareSphere=function(){this._sphere||(this._sphere=Ln.a.CreateSphere("radialExplosionEventSphere",this._options.sphere,this._scene),this._sphere.isVisible=!1)},e.prototype._intersectsWithSphere=function(e,t,i){var n=e.object;return this._prepareSphere(),this._sphere.position=t,this._sphere.scaling=new o.x(2*i,2*i,2*i),this._sphere._updateBoundingInfo(),this._sphere.computeWorldMatrix(!0),this._sphere.intersectsMesh(n,!0)},e}(),Ha=function(){function e(e,t,i,n){this._physicsHelper=e,this._scene=t,this._origin=i,this._options=n,this._dataFetched=!1,this._options=l.a({},new Ya,this._options),this._tickCallback=this._tick.bind(this),this._options.strength=-1*this._options.strength}return e.prototype.getData=function(){return this._dataFetched=!0,{sphere:this._sphere}},e.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},e.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),e?this._sphere.dispose():setTimeout(function(){t._dataFetched||t._sphere.dispose()},0)},e.prototype._tick=function(){if(this._sphere)this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);else{var e=this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);e&&(this._sphere=e.getData().sphere.clone("radialExplosionEventSphereClone"))}},e}(),Wa=function(){function e(e,t,i){this._scene=e,this._origin=t,this._options=i,this._originTop=o.x.Zero(),this._originDirection=o.x.Zero(),this._cylinderPosition=o.x.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options=l.a({},new Ka,this._options),this._origin.addToRef(new o.x(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new o.x(0,this._options.height,0),this._originTop),this._options.updraftMode===Ga.Perpendicular&&(this._originDirection=this._origin.subtract(this._originTop).normalize()),this._tickCallback=this._tick.bind(this),this._prepareCylinder()}return e.prototype.getData=function(){return this._dataFetched=!0,{cylinder:this._cylinder}},e.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},e.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),this._cylinder&&(e?this._cylinder.dispose():setTimeout(function(){t._dataFetched||t._cylinder.dispose()},0))},e.prototype.getImpostorHitData=function(e){if(0===e.mass)return null;if(!this._intersectsWithCylinder(e))return null;var t=e.getObjectCenter();if(this._options.updraftMode===Ga.Perpendicular)var i=this._originDirection;else i=t.subtract(this._originTop);var n=o.x.Distance(this._origin,t),r=-1*this._options.strength;return{force:i.multiplyByFloats(r,r,r),contactPoint:t,distanceFromOrigin:n}},e.prototype._tick=function(){var e=this;this._physicsEngine.getImpostors().forEach(function(t){var i=e.getImpostorHitData(t);i&&t.applyForce(i.force,i.contactPoint)})},e.prototype._prepareCylinder=function(){this._cylinder||(this._cylinder=Fi.a.CreateCylinder("updraftEventCylinder",{height:this._options.height,diameter:2*this._options.radius},this._scene),this._cylinder.isVisible=!1)},e.prototype._intersectsWithCylinder=function(e){var t=e.object;return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(t,!0)},e}(),Xa=function(){function e(e,t,i){this._scene=e,this._origin=t,this._options=i,this._originTop=o.x.Zero(),this._cylinderPosition=o.x.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options=l.a({},new Qa,this._options),this._origin.addToRef(new o.x(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new o.x(0,this._options.height,0),this._originTop),this._tickCallback=this._tick.bind(this),this._prepareCylinder()}return e.prototype.getData=function(){return this._dataFetched=!0,{cylinder:this._cylinder}},e.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},e.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),e?this._cylinder.dispose():setTimeout(function(){t._dataFetched||t._cylinder.dispose()},0)},e.prototype.getImpostorHitData=function(e){if(0===e.mass)return null;if(!this._intersectsWithCylinder(e))return null;if("Mesh"!==e.object.getClassName()&&"InstancedMesh"!==e.object.getClassName())return null;var t=e.getObjectCenter(),i=new o.x(this._origin.x,t.y,this._origin.z),n=t.subtract(i),r=new It.a(i,n,this._options.radius).intersectsMesh(e.object),s=r.pickedPoint;if(!s)return null;var a=r.distance/this._options.radius,c=s.normalize();if(a>this._options.centripetalForceThreshold&&(c=c.negate()),a>this._options.centripetalForceThreshold)var l=c.x*this._options.centripetalForceMultiplier,u=c.y*this._options.updraftForceMultiplier,h=c.z*this._options.centripetalForceMultiplier;else{var d=o.x.Cross(i,t).normalize();l=(d.x+c.x)*this._options.centrifugalForceMultiplier,u=this._originTop.y*this._options.updraftForceMultiplier,h=(d.z+c.z)*this._options.centrifugalForceMultiplier}var f=new o.x(l,u,h);return{force:f=f.multiplyByFloats(this._options.strength,this._options.strength,this._options.strength),contactPoint:t,distanceFromOrigin:a}},e.prototype._tick=function(){var e=this;this._physicsEngine.getImpostors().forEach(function(t){var i=e.getImpostorHitData(t);i&&t.applyForce(i.force,i.contactPoint)})},e.prototype._prepareCylinder=function(){this._cylinder||(this._cylinder=Fi.a.CreateCylinder("vortexEventCylinder",{height:this._options.height,diameter:2*this._options.radius},this._scene),this._cylinder.isVisible=!1)},e.prototype._intersectsWithCylinder=function(e){var t=e.object;return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(t,!0)},e}(),Ya=function(){return function(){this.radius=5,this.strength=10,this.falloff=Va.Constant,this.sphere={segments:32,diameter:1}}}(),Ka=function(){return function(){this.radius=5,this.strength=10,this.height=10,this.updraftMode=Ga.Center}}(),Qa=function(){return function(){this.radius=5,this.strength=10,this.height=10,this.centripetalForceThreshold=.7,this.centripetalForceMultiplier=5,this.centrifugalForceMultiplier=.5,this.updraftForceMultiplier=.02}}();!function(e){e[e.Constant=0]="Constant",e[e.Linear=1]="Linear"}(Va||(Va={})),function(e){e[e.Center=0]="Center",e[e.Perpendicular=1]="Perpendicular"}(Ga||(Ga={}));var qa="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float degree;\nvoid main(void)\n{\nvec3 color=texture2D(textureSampler,vUV).rgb;\nfloat luminance=dot(color,vec3(0.3,0.59,0.11));\nvec3 blackAndWhite=vec3(luminance,luminance,luminance);\ngl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);\n}";zt.a.ShadersStore.blackAndWhitePixelShader=qa;var Za=function(e){function t(t,i,n,r,o,s){var a=e.call(this,t,"blackAndWhite",["degree"],null,i,n,r,o,s)||this;return a.degree=1,a.onApplyObservable.add(function(e){e.setFloat("degree",a.degree)}),a}return l.d(t,e),t}(Ht),Ja=function(){function e(e,t,i,n){this._name=t,this._singleInstance=n||!0,this._getPostProcesses=i,this._cameras={},this._indicesForCamera={},this._postProcesses={}}return Object.defineProperty(e.prototype,"isSupported",{get:function(){for(var e in this._postProcesses)if(this._postProcesses.hasOwnProperty(e))for(var t=this._postProcesses[e],i=0;i-1?"#define MALI 1\n":null},t}(Ht),Rc="#include\n\nuniform sampler2D textureSampler;\n\nuniform float intensity;\nuniform float animatedSeed;\n\nvarying vec2 vUV;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nvec2 seed=vUV*(animatedSeed);\nfloat grain=dither(seed,intensity);\n\nfloat lum=getLuminance(gl_FragColor.rgb);\nfloat grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;\ngl_FragColor.rgb+=grain*grainAmount;\ngl_FragColor.rgb=max(gl_FragColor.rgb,0.0);\n}";zt.a.ShadersStore.grainPixelShader=Rc;var Pc=function(e){function t(t,i,n,r,o,s,a,c){void 0===a&&(a=_.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1);var l=e.call(this,t,"grain",["intensity","animatedSeed"],[],i,n,r,o,s,null,a,void 0,null,c)||this;return l.intensity=30,l.animated=!1,l.onApplyObservable.add(function(e){e.setFloat("intensity",l.intensity),e.setFloat("animatedSeed",l.animated?Math.random()+1:1)}),l}return l.d(t,e),t}(Ht),Sc="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nconst vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\nvoid main(void)\n{\nvec4 tex=texture2D(textureSampler,vUV);\nvec3 c=tex.rgb;\nfloat luma=dot(c.rgb,RGBLuminanceCoefficients);\n\n\ngl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a);\n}";zt.a.ShadersStore.highlightsPixelShader=Sc;var Cc=function(e){function t(t,i,n,r,o,s,a){return void 0===a&&(a=_.a.TEXTURETYPE_UNSIGNED_INT),e.call(this,t,"highlights",null,null,i,n,r,o,s,null,a)||this}return l.d(t,e),t}(Ht);zt.a.IncludesShadersStore.mrtFragmentDeclaration="#if __VERSION__>=200\nlayout(location=0) out vec4 glFragData[{X}];\n#endif\n";var Mc="#extension GL_EXT_draw_buffers : require\nprecision highp float;\nprecision highp int;\nvarying vec3 vNormalV;\nvarying vec4 vViewPos;\n#ifdef POSITION\nvarying vec3 vPosition;\n#endif\n#ifdef VELOCITY\nvarying vec4 vCurrentPosition;\nvarying vec4 vPreviousPosition;\n#endif\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\n#include[RENDER_TARGET_COUNT]\nvoid main() {\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\ngl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\n\ngl_FragData[1]=vec4(normalize(vNormalV),1.0);\n\n#ifdef POSITION\ngl_FragData[POSITION_INDEX]=vec4(vPosition,1.0);\n#endif\n#ifdef VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\nvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\nvec2 velocity=abs(a-b);\nvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\ngl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\n#endif\n}";zt.a.ShadersStore.geometryPixelShader=Mc;var Oc="precision highp float;\nprecision highp int;\n#include\n#include\nattribute vec3 position;\nattribute vec3 normal;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n\nuniform mat4 viewProjection;\nuniform mat4 view;\nvarying vec3 vNormalV;\nvarying vec4 vViewPos;\n#ifdef POSITION\nvarying vec3 vPosition;\n#endif\n#ifdef VELOCITY\nuniform mat4 previousWorld;\nuniform mat4 previousViewProjection;\n#ifdef BONES_VELOCITY_ENABLED\n#if NUM_BONE_INFLUENCERS>0\nuniform mat4 mPreviousBones[BonesPerMesh];\n#endif\n#endif\nvarying vec4 vCurrentPosition;\nvarying vec4 vPreviousPosition;\n#endif\nvoid main(void)\n{\n#include\n#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\n\nvCurrentPosition=viewProjection*finalWorld*vec4(position,1.0);\nvPreviousPosition=previousViewProjection*previousWorld*vec4(position,1.0);\n#endif\n#include\nvec4 pos=vec4(finalWorld*vec4(position,1.0));\nvNormalV=normalize(vec3((view*finalWorld)*vec4(normal,0.0)));\nvViewPos=view*pos;\n#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(position,1.0);\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;\npreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(position,1.0);\n#else\nvPreviousPosition=previousViewProjection*previousWorld*vec4(position,1.0);\n#endif\n#endif\n#ifdef POSITION\nvPosition=pos.xyz/pos.w;\n#endif\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n}";zt.a.ShadersStore.geometryVertexShader=Oc;var Ic=function(){function e(t,i){void 0===i&&(i=1),this._previousTransformationMatrices={},this._previousBonesTransformationMatrices={},this.excludedSkinnedMeshesFromVelocity=[],this._enablePosition=!1,this._enableVelocity=!1,this._positionIndex=-1,this._velocityIndex=-1,this._scene=t,this._ratio=i,e._SceneComponentInitialization(this._scene),this._createRenderTargets()}return Object.defineProperty(e.prototype,"renderList",{set:function(e){this._multiRenderTarget.renderList=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSupported",{get:function(){return this._multiRenderTarget.isSupported},enumerable:!0,configurable:!0}),e.prototype.getTextureIndex=function(t){switch(t){case e.POSITION_TEXTURE_TYPE:return this._positionIndex;case e.VELOCITY_TEXTURE_TYPE:return this._velocityIndex;default:return-1}},Object.defineProperty(e.prototype,"enablePosition",{get:function(){return this._enablePosition},set:function(e){this._enablePosition=e,this.dispose(),this._createRenderTargets()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enableVelocity",{get:function(){return this._enableVelocity},set:function(e){this._enableVelocity=e,e||(this._previousTransformationMatrices={}),this.dispose(),this._createRenderTargets()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scene",{get:function(){return this._scene},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ratio",{get:function(){return this._ratio},enumerable:!0,configurable:!0}),e.prototype.isReady=function(e,t){var i=e.getMaterial();if(i&&i.disableDepthWrite)return!1;var n=[],r=[Oi.b.PositionKind,Oi.b.NormalKind],o=e.getMesh();i&&i.needAlphaTesting()&&(n.push("#define ALPHATEST"),o.isVerticesDataPresent(Oi.b.UVKind)&&(r.push(Oi.b.UVKind),n.push("#define UV1")),o.isVerticesDataPresent(Oi.b.UV2Kind)&&(r.push(Oi.b.UV2Kind),n.push("#define UV2"))),this._enablePosition&&(n.push("#define POSITION"),n.push("#define POSITION_INDEX "+this._positionIndex)),this._enableVelocity&&(n.push("#define VELOCITY"),n.push("#define VELOCITY_INDEX "+this._velocityIndex),-1===this.excludedSkinnedMeshesFromVelocity.indexOf(o)&&n.push("#define BONES_VELOCITY_ENABLED")),o.useBones&&o.computeBonesUsingShaders?(r.push(Oi.b.MatricesIndicesKind),r.push(Oi.b.MatricesWeightsKind),o.numBoneInfluencers>4&&(r.push(Oi.b.MatricesIndicesExtraKind),r.push(Oi.b.MatricesWeightsExtraKind)),n.push("#define NUM_BONE_INFLUENCERS "+o.numBoneInfluencers),n.push("#define BonesPerMesh "+(o.skeleton?o.skeleton.bones.length+1:0))):n.push("#define NUM_BONE_INFLUENCERS 0"),t&&(n.push("#define INSTANCES"),r.push("world0"),r.push("world1"),r.push("world2"),r.push("world3")),n.push("#define RENDER_TARGET_COUNT "+this._multiRenderTarget.textures.length);var s=n.join("\n");return this._cachedDefines!==s&&(this._cachedDefines=s,this._effect=this._scene.getEngine().createEffect("geometry",r,["world","mBones","viewProjection","diffuseMatrix","view","previousWorld","previousViewProjection","mPreviousBones"],["diffuseSampler"],s,void 0,void 0,void 0,{buffersCount:this._enablePosition?3:2})),this._effect.isReady()},e.prototype.getGBuffer=function(){return this._multiRenderTarget},Object.defineProperty(e.prototype,"samples",{get:function(){return this._multiRenderTarget.samples},set:function(e){this._multiRenderTarget.samples=e},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.getGBuffer().dispose()},e.prototype._createRenderTargets=function(){var e=this,t=this._scene.getEngine(),i=2;if(this._enablePosition&&(this._positionIndex=i,i++),this._enableVelocity&&(this._velocityIndex=i,i++),this._multiRenderTarget=new ds("gBuffer",{width:t.getRenderWidth()*this._ratio,height:t.getRenderHeight()*this._ratio},i,this._scene,{generateMipMaps:!1,generateDepthTexture:!0,defaultType:_.a.TEXTURETYPE_FLOAT}),this.isSupported){this._multiRenderTarget.wrapU=ke.a.CLAMP_ADDRESSMODE,this._multiRenderTarget.wrapV=ke.a.CLAMP_ADDRESSMODE,this._multiRenderTarget.refreshRate=1,this._multiRenderTarget.renderParticles=!1,this._multiRenderTarget.renderList=null,this._multiRenderTarget.onClearObservable.add(function(e){e.clear(new o.f(0,0,0,1),!0,!0,!0)});var n=function(t){var i=t.getRenderingMesh(),n=e._scene,r=n.getEngine(),s=t.getMaterial();if(s){if(e._enableVelocity&&!e._previousTransformationMatrices[i.uniqueId]&&(e._previousTransformationMatrices[i.uniqueId]={world:o.j.Identity(),viewProjection:n.getTransformMatrix()},i.skeleton)){var a=i.skeleton.getTransformMatrices(i);e._previousBonesTransformationMatrices[i.uniqueId]=e._copyBonesTransformationMatrices(a,new Float32Array(a.length))}r.setState(s.backFaceCulling,0,!1,n.useRightHandedSystem);var c=i._getInstancesRenderList(t._id);if(!c.mustReturn){var l=r.getCaps().instancedArrays&&null!==c.visibleInstances[t._id];if(e.isReady(t,l)){if(r.enableEffect(e._effect),i._bind(t,e._effect,so.a.TriangleFillMode),e._effect.setMatrix("viewProjection",n.getTransformMatrix()),e._effect.setMatrix("view",n.getViewMatrix()),s&&s.needAlphaTesting()){var u=s.getAlphaTestTexture();u&&(e._effect.setTexture("diffuseSampler",u),e._effect.setMatrix("diffuseMatrix",u.getTextureMatrix()))}i.useBones&&i.computeBonesUsingShaders&&i.skeleton&&(e._effect.setMatrices("mBones",i.skeleton.getTransformMatrices(i)),e._enableVelocity&&e._effect.setMatrices("mPreviousBones",e._previousBonesTransformationMatrices[i.uniqueId])),e._enableVelocity&&(e._effect.setMatrix("previousWorld",e._previousTransformationMatrices[i.uniqueId].world),e._effect.setMatrix("previousViewProjection",e._previousTransformationMatrices[i.uniqueId].viewProjection)),i._processRendering(t,e._effect,so.a.TriangleFillMode,c,l,function(t,i){return e._effect.setMatrix("world",i)})}e._enableVelocity&&(e._previousTransformationMatrices[i.uniqueId].world=i.getWorldMatrix().clone(),e._previousTransformationMatrices[i.uniqueId].viewProjection=e._scene.getTransformMatrix().clone(),i.skeleton&&e._copyBonesTransformationMatrices(i.skeleton.getTransformMatrices(i),e._previousBonesTransformationMatrices[i.uniqueId]))}}};this._multiRenderTarget.customRenderFunction=function(e,i,r,o){var s;if(o.length){for(t.setColorWrite(!1),s=0;s0){var i=this._renderEffects[t[0]].getPostProcesses();i&&(i[0].samples=e)}return!0},e.prototype.dispose=function(){},l.c([Object(L.c)()],e.prototype,"_name",void 0),e}(),Gc=function(){function e(){this._renderPipelines={}}return Object.defineProperty(e.prototype,"supportedPipelines",{get:function(){var e=[];for(var t in this._renderPipelines)if(this._renderPipelines.hasOwnProperty(t)){var i=this._renderPipelines[t];i.isSupported&&e.push(i)}return e},enumerable:!0,configurable:!0}),e.prototype.addPipeline=function(e){this._renderPipelines[e._name]=e},e.prototype.attachCamerasToRenderPipeline=function(e,t,i){void 0===i&&(i=!1);var n=this._renderPipelines[e];n&&n._attachCameras(t,i)},e.prototype.detachCamerasFromRenderPipeline=function(e,t){var i=this._renderPipelines[e];i&&i._detachCameras(t)},e.prototype.enableEffectInPipeline=function(e,t,i){var n=this._renderPipelines[e];n&&n._enableEffect(t,i)},e.prototype.disableEffectInPipeline=function(e,t,i){var n=this._renderPipelines[e];n&&n._disableEffect(t,i)},e.prototype.update=function(){for(var e in this._renderPipelines)if(this._renderPipelines.hasOwnProperty(e)){var t=this._renderPipelines[e];t.isSupported?t._update():(t.dispose(),delete this._renderPipelines[e])}},e.prototype._rebuild=function(){for(var e in this._renderPipelines){if(this._renderPipelines.hasOwnProperty(e))this._renderPipelines[e]._rebuild()}},e.prototype.dispose=function(){for(var e in this._renderPipelines){if(this._renderPipelines.hasOwnProperty(e))this._renderPipelines[e].dispose()}},e}();Object.defineProperty(W.a.prototype,"postProcessRenderPipelineManager",{get:function(){if(!this._postProcessRenderPipelineManager){var e=this._getComponent(Ae.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER);e||(e=new kc(this),this._addComponent(e)),this._postProcessRenderPipelineManager=new Gc}return this._postProcessRenderPipelineManager},enumerable:!0,configurable:!0});var kc=function(){function e(e){this.name=Ae.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER,this.scene=e}return e.prototype.register=function(){this.scene._gatherRenderTargetsStage.registerStep(Ae.a.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER,this,this._gatherRenderTargets)},e.prototype.rebuild=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager._rebuild()},e.prototype.dispose=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.dispose()},e.prototype._gatherRenderTargets=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.update()},e}(),zc=function(e){function t(t,i,n,r,o){void 0===t&&(t=""),void 0===i&&(i=!0),void 0===n&&(n=P.a.LastCreatedScene),void 0===o&&(o=!0);var s=e.call(this,n.getEngine(),t)||this;s._camerasToBeAttached=[],s.SharpenPostProcessId="SharpenPostProcessEffect",s.ImageProcessingPostProcessId="ImageProcessingPostProcessEffect",s.FxaaPostProcessId="FxaaPostProcessEffect",s.ChromaticAberrationPostProcessId="ChromaticAberrationPostProcessEffect",s.GrainPostProcessId="GrainPostProcessEffect",s._glowLayer=null,s.animations=[],s._imageProcessingConfigurationObserver=null,s._sharpenEnabled=!1,s._bloomEnabled=!1,s._depthOfFieldEnabled=!1,s._depthOfFieldBlurLevel=pc.Low,s._fxaaEnabled=!1,s._imageProcessingEnabled=!0,s._bloomScale=.5,s._chromaticAberrationEnabled=!1,s._grainEnabled=!1,s._buildAllowed=!0,s._resizeObserver=null,s._hardwareScaleLevel=1,s._bloomKernel=64,s._bloomWeight=.15,s._bloomThreshold=.9,s._samples=1,s._hasCleared=!1,s._prevPostProcess=null,s._prevPrevPostProcess=null,s._depthOfFieldSceneObserver=null,s._cameras=r||n.cameras,s._cameras=s._cameras.slice(),s._camerasToBeAttached=s._cameras.slice(),s._buildAllowed=o,s._scene=n;var a=s._scene.getEngine().getCaps();s._hdr=i&&(a.textureHalfFloatRender||a.textureFloatRender),s._hdr?a.textureHalfFloatRender?s._defaultPipelineTextureType=_.a.TEXTURETYPE_HALF_FLOAT:a.textureFloatRender&&(s._defaultPipelineTextureType=_.a.TEXTURETYPE_FLOAT):s._defaultPipelineTextureType=_.a.TEXTURETYPE_UNSIGNED_INT,n.postProcessRenderPipelineManager.addPipeline(s);var c=s._scene.getEngine();return s.sharpen=new Uc("sharpen",1,null,ke.a.BILINEAR_SAMPLINGMODE,c,!1,s._defaultPipelineTextureType,!0),s._sharpenEffect=new Ja(c,s.SharpenPostProcessId,function(){return s.sharpen},!0),s.depthOfField=new mc(s._scene,null,s._depthOfFieldBlurLevel,s._defaultPipelineTextureType,!0),s.bloom=new nc(s._scene,s._bloomScale,s._bloomWeight,s.bloomKernel,s._defaultPipelineTextureType,!0),s.chromaticAberration=new oc("ChromaticAberration",c.getRenderWidth(),c.getRenderHeight(),1,null,ke.a.BILINEAR_SAMPLINGMODE,c,!1,s._defaultPipelineTextureType,!0),s._chromaticAberrationEffect=new Ja(c,s.ChromaticAberrationPostProcessId,function(){return s.chromaticAberration},!0),s.grain=new Pc("Grain",1,null,ke.a.BILINEAR_SAMPLINGMODE,c,!1,s._defaultPipelineTextureType,!0),s._grainEffect=new Ja(c,s.GrainPostProcessId,function(){return s.grain},!0),s._resizeObserver=c.onResizeObservable.add(function(){s._hardwareScaleLevel=c.getHardwareScalingLevel(),s.bloomKernel=s.bloomKernel}),s._imageProcessingConfigurationObserver=s._scene.imageProcessingConfiguration.onUpdateParameters.add(function(){s.bloom._downscale._exposure=s._scene.imageProcessingConfiguration.exposure}),s._buildPipeline(),s}return l.d(t,e),Object.defineProperty(t.prototype,"scene",{get:function(){return this._scene},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sharpenEnabled",{get:function(){return this._sharpenEnabled},set:function(e){this._sharpenEnabled!==e&&(this._sharpenEnabled=e,this._buildPipeline())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bloomKernel",{get:function(){return this._bloomKernel},set:function(e){this._bloomKernel=e,this.bloom.kernel=e/this._hardwareScaleLevel},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bloomWeight",{get:function(){return this._bloomWeight},set:function(e){this._bloomWeight!==e&&(this.bloom.weight=e,this._bloomWeight=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bloomThreshold",{get:function(){return this._bloomThreshold},set:function(e){this._bloomThreshold!==e&&(this.bloom.threshold=e,this._bloomThreshold=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bloomScale",{get:function(){return this._bloomScale},set:function(e){this._bloomScale!==e&&(this._bloomScale=e,this._rebuildBloom(),this._buildPipeline())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bloomEnabled",{get:function(){return this._bloomEnabled},set:function(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())},enumerable:!0,configurable:!0}),t.prototype._rebuildBloom=function(){var e=this.bloom;this.bloom=new nc(this._scene,this.bloomScale,this._bloomWeight,this.bloomKernel,this._defaultPipelineTextureType,!1),this.bloom.threshold=e.threshold;for(var t=0;t1){for(var i=0,n=this._cameras;i-1&&(e.depthOfField.depthTexture=t.enableDepthRenderer(t.activeCamera).getDepthMap())})}else{this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);var o=this._scene.enableDepthRenderer(this._cameras[0]);this.depthOfField.depthTexture=o.getDepthMap()}this.depthOfField._isReady()||this.depthOfField._updateEffects(),this.addEffect(this.depthOfField),this._setAutoClearAndTextureSharing(this.depthOfField._effects[0],!0)}else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);this.bloomEnabled&&(this.bloom._isReady()||this.bloom._updateEffects(),this.addEffect(this.bloom),this._setAutoClearAndTextureSharing(this.bloom._effects[0],!0)),this._imageProcessingEnabled&&(this.imageProcessing=new Ci("imageProcessing",1,null,ke.a.BILINEAR_SAMPLINGMODE,t,!1,this._defaultPipelineTextureType),this._hdr?(this.addEffect(new Ja(t,this.ImageProcessingPostProcessId,function(){return e.imageProcessing},!0)),this._setAutoClearAndTextureSharing(this.imageProcessing)):this._scene.imageProcessingConfiguration.applyByPostProcess=!1),this.sharpenEnabled&&(this.sharpen.isReady()||this.sharpen.updateEffect(),this.addEffect(this._sharpenEffect),this._setAutoClearAndTextureSharing(this.sharpen)),this.grainEnabled&&(this.grain.isReady()||this.grain.updateEffect(),this.addEffect(this._grainEffect),this._setAutoClearAndTextureSharing(this.grain)),this.chromaticAberrationEnabled&&(this.chromaticAberration.isReady()||this.chromaticAberration.updateEffect(),this.addEffect(this._chromaticAberrationEffect),this._setAutoClearAndTextureSharing(this.chromaticAberration)),this.fxaaEnabled&&(this.fxaa=new xc("fxaa",1,null,ke.a.BILINEAR_SAMPLINGMODE,t,!1,this._defaultPipelineTextureType),this.addEffect(new Ja(t,this.FxaaPostProcessId,function(){return e.fxaa},!0)),this._setAutoClearAndTextureSharing(this.fxaa,!0)),null!==this._cameras&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),!this._enableMSAAOnFirstPostProcess(this.samples)&&this.samples>1&&p.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0")}},t.prototype._disposePostProcesses=function(e){void 0===e&&(e=!1);for(var t=0;t0?i._ssaoCombinePostProcess.width:i._originalColorPostProcess.width),e.setFloat("near",i._scene.activeCamera.minZ),e.setFloat("far",i._scene.activeCamera.maxZ),e.setFloat("radius",i.radius),e.setTexture("depthSampler",i._depthTexture),i._firstUpdate&&e.setArray("samplerOffsets",i._samplerOffsets))},this._blurVPostProcess=new Ht("BlurV","ssao2",["outSize","samplerOffsets","near","far","radius"],["depthSampler"],t,null,ke.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,"#define BILATERAL_BLUR\n#define BILATERAL_BLUR_V\n#define SAMPLES 16\n#define EXPENSIVE "+(n?"1":"0")+"\n"),this._blurVPostProcess.onApply=function(e){i._scene.activeCamera&&(e.setFloat("outSize",i._ssaoCombinePostProcess.height>0?i._ssaoCombinePostProcess.height:i._originalColorPostProcess.height),e.setFloat("near",i._scene.activeCamera.minZ),e.setFloat("far",i._scene.activeCamera.maxZ),e.setFloat("radius",i.radius),e.setTexture("depthSampler",i._depthTexture),i._firstUpdate&&(e.setArray("samplerOffsets",i._samplerOffsets),i._firstUpdate=!1))},this._blurHPostProcess.samples=this.textureSamples,this._blurVPostProcess.samples=this.textureSamples},t.prototype._rebuild=function(){this._firstUpdate=!0,e.prototype._rebuild.call(this)},t.prototype._radicalInverse_VdC=function(e){return this._bits[0]=e,this._bits[0]=(this._bits[0]<<16|this._bits[0]>>16)>>>0,this._bits[0]=(1431655765&this._bits[0])<<1|(2863311530&this._bits[0])>>>1>>>0,this._bits[0]=(858993459&this._bits[0])<<2|(3435973836&this._bits[0])>>>2>>>0,this._bits[0]=(252645135&this._bits[0])<<4|(4042322160&this._bits[0])>>>4>>>0,this._bits[0]=(16711935&this._bits[0])<<8|(4278255360&this._bits[0])>>>8>>>0,2.3283064365386963e-10*this._bits[0]},t.prototype._hammersley=function(e,t){return[e/t,this._radicalInverse_VdC(e)]},t.prototype._hemisphereSample_uniform=function(e,t){var i=2*t*Math.PI,n=1-(.85*e+.15),r=Math.sqrt(1-n*n);return new o.x(Math.cos(i)*r,Math.sin(i)*r,n)},t.prototype._generateHemisphere=function(){for(var e,t=this.samples,i=[],n=0;n1&&p.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0")},t.prototype._createDownSampleX4PostProcess=function(e,t){var i=this,n=new Array(32);this.downSampleX4PostProcess=new Ht("HDRDownSampleX4","standard",["dsOffsets"],[],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define DOWN_SAMPLE_X4",_.a.TEXTURETYPE_UNSIGNED_INT),this.downSampleX4PostProcess.onApply=function(e){for(var t=0,r=i.downSampleX4PostProcess.width,o=i.downSampleX4PostProcess.height,s=-2;s<2;s++)for(var a=-2;a<2;a++)n[t]=(s+.5)*(1/r),n[t+1]=(a+.5)*(1/o),t+=2;e.setArray2("dsOffsets",n)},this.addEffect(new Ja(e.getEngine(),"HDRDownSampleX4",function(){return i.downSampleX4PostProcess},!0))},t.prototype._createBrightPassPostProcess=function(e,t){var i=this,n=new Array(8);this.brightPassPostProcess=new Ht("HDRBrightPass","standard",["dsOffsets","brightThreshold"],[],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define BRIGHT_PASS",_.a.TEXTURETYPE_UNSIGNED_INT),this.brightPassPostProcess.onApply=function(e){var t=1/i.brightPassPostProcess.width,r=1/i.brightPassPostProcess.height;n[0]=-.5*t,n[1]=.5*r,n[2]=.5*t,n[3]=.5*r,n[4]=-.5*t,n[5]=-.5*r,n[6]=.5*t,n[7]=-.5*r,e.setArray2("dsOffsets",n),e.setFloat("brightThreshold",i.brightThreshold)},this.addEffect(new Ja(e.getEngine(),"HDRBrightPass",function(){return i.brightPassPostProcess},!0))},t.prototype._createBlurPostProcesses=function(e,t,i,n){var r=this;void 0===n&&(n="blurWidth");var s=e.getEngine(),a=new $n("HDRBlurH_"+i,new o.w(1,0),this[n],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,_.a.TEXTURETYPE_UNSIGNED_INT),c=new $n("HDRBlurV_"+i,new o.w(0,1),this[n],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,_.a.TEXTURETYPE_UNSIGNED_INT);a.onActivateObservable.add(function(){var e=a.width/s.getRenderWidth();a.kernel=r[n]*e}),c.onActivateObservable.add(function(){var e=c.height/s.getRenderHeight();c.kernel=r.horizontalBlur?64*e:r[n]*e}),this.addEffect(new Ja(e.getEngine(),"HDRBlurH"+i,function(){return a},!0)),this.addEffect(new Ja(e.getEngine(),"HDRBlurV"+i,function(){return c},!0)),this.blurHPostProcesses.push(a),this.blurVPostProcesses.push(c)},t.prototype._createTextureAdderPostProcess=function(e,t){var i=this;this.textureAdderPostProcess=new Ht("HDRTextureAdder","standard",["exposure"],["otherSampler","lensSampler"],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define TEXTURE_ADDER",_.a.TEXTURETYPE_UNSIGNED_INT),this.textureAdderPostProcess.onApply=function(e){e.setTextureFromPostProcess("otherSampler",i._vlsEnabled?i._currentDepthOfFieldSource:i.originalPostProcess),e.setTexture("lensSampler",i.lensTexture),e.setFloat("exposure",i._currentExposure),i._currentDepthOfFieldSource=i.textureAdderFinalPostProcess},this.addEffect(new Ja(e.getEngine(),"HDRTextureAdder",function(){return i.textureAdderPostProcess},!0))},t.prototype._createVolumetricLightPostProcess=function(e,t){var i=this,n=e.enableGeometryBufferRenderer();n.enablePosition=!0;var r=n.getGBuffer();this.volumetricLightPostProcess=new Ht("HDRVLS","standard",["shadowViewProjection","cameraPosition","sunDirection","sunColor","scatteringCoefficient","scatteringPower","depthValues"],["shadowMapSampler","positionSampler"],t/8,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define VLS\n#define NB_STEPS "+this._volumetricLightStepsCount.toFixed(1));var s=o.w.Zero();this.volumetricLightPostProcess.onApply=function(e){if(i.sourceLight&&i.sourceLight.getShadowGenerator()&&i._scene.activeCamera){var t=i.sourceLight.getShadowGenerator();e.setTexture("shadowMapSampler",t.getShadowMap()),e.setTexture("positionSampler",r.textures[2]),e.setColor3("sunColor",i.sourceLight.diffuse),e.setVector3("sunDirection",i.sourceLight.getShadowDirection()),e.setVector3("cameraPosition",i._scene.activeCamera.globalPosition),e.setMatrix("shadowViewProjection",t.getTransformMatrix()),e.setFloat("scatteringCoefficient",i.volumetricLightCoefficient),e.setFloat("scatteringPower",i.volumetricLightPower),s.x=i.sourceLight.getDepthMinZ(i._scene.activeCamera),s.y=i.sourceLight.getDepthMaxZ(i._scene.activeCamera),e.setVector2("depthValues",s)}},this.addEffect(new Ja(e.getEngine(),"HDRVLS",function(){return i.volumetricLightPostProcess},!0)),this._createBlurPostProcesses(e,t/4,0,"volumetricLightBlurScale"),this.volumetricLightMergePostProces=new Ht("HDRVLSMerge","standard",[],["originalSampler"],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define VLSMERGE"),this.volumetricLightMergePostProces.onApply=function(e){e.setTextureFromPostProcess("originalSampler",i._bloomEnabled?i.textureAdderFinalPostProcess:i.originalPostProcess),i._currentDepthOfFieldSource=i.volumetricLightFinalPostProcess},this.addEffect(new Ja(e.getEngine(),"HDRVLSMerge",function(){return i.volumetricLightMergePostProces},!0))},t.prototype._createLuminancePostProcesses=function(e,i){var n=this,r=Math.pow(3,t.LuminanceSteps);this.luminancePostProcess=new Ht("HDRLuminance","standard",["lumOffsets"],[],{width:r,height:r},null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LUMINANCE",i);var s=[];this.luminancePostProcess.onApply=function(e){var t=1/n.luminancePostProcess.width,i=1/n.luminancePostProcess.height;s[0]=-.5*t,s[1]=.5*i,s[2]=.5*t,s[3]=.5*i,s[4]=-.5*t,s[5]=-.5*i,s[6]=.5*t,s[7]=-.5*i,e.setArray2("lumOffsets",s)},this.addEffect(new Ja(e.getEngine(),"HDRLuminance",function(){return n.luminancePostProcess},!0));for(var a=t.LuminanceSteps-1;a>=0;a--){r=Math.pow(3,a);var c="#define LUMINANCE_DOWN_SAMPLE\n";0===a&&(c+="#define FINAL_DOWN_SAMPLER");var l=new Ht("HDRLuminanceDownSample"+a,"standard",["dsOffsets","halfDestPixelSize"],[],{width:r,height:r},null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,c,i);this.luminanceDownSamplePostProcesses.push(l)}var u=this.luminancePostProcess;this.luminanceDownSamplePostProcesses.forEach(function(t,i){var r=new Array(18);t.onApply=function(e){if(u){for(var o=0,s=-1;s<2;s++)for(var a=-1;a<2;a++)r[o]=s/u.width,r[o+1]=a/u.height,o+=2;e.setArray2("dsOffsets",r),e.setFloat("halfDestPixelSize",.5/u.width),u=i===n.luminanceDownSamplePostProcesses.length-1?n.luminancePostProcess:t}},i===n.luminanceDownSamplePostProcesses.length-1&&(t.onAfterRender=function(){var t=e.getEngine().readPixels(0,0,1,1),i=new o.y(1/16581375,1/65025,1/255,1);n._hdrCurrentLuminance=(t[0]*i.x+t[1]*i.y+t[2]*i.z+t[3]*i.w)/100}),n.addEffect(new Ja(e.getEngine(),"HDRLuminanceDownSample"+i,function(){return t},!0))})},t.prototype._createHdrPostProcess=function(e,t){var i=this,n=["#define HDR"];this._hdrAutoExposure&&n.push("#define AUTO_EXPOSURE"),this.hdrPostProcess=new Ht("HDR","standard",["averageLuminance"],["textureAdderSampler"],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,n.join("\n"),_.a.TEXTURETYPE_UNSIGNED_INT);var r=1,o=0,s=0;this.hdrPostProcess.onApply=function(t){if(t.setTextureFromPostProcess("textureAdderSampler",i._currentDepthOfFieldSource),o+=e.getEngine().getDeltaTime(),r<0)r=i._hdrCurrentLuminance;else{var n=(s-o)/1e3;i._hdrCurrentLuminancer-i.hdrIncreaseRate*n?r-=i.hdrIncreaseRate*n:r=i._hdrCurrentLuminance}i.hdrAutoExposure?i._currentExposure=i._fixedExposure/r:(r=D.a.Clamp(r,i.hdrMinimumLuminance,1e20),t.setFloat("averageLuminance",r)),s=o,i._currentDepthOfFieldSource=i.hdrFinalPostProcess},this.addEffect(new Ja(e.getEngine(),"HDR",function(){return i.hdrPostProcess},!0))},t.prototype._createLensFlarePostProcess=function(e,t){var i=this;this.lensFlarePostProcess=new Ht("HDRLensFlare","standard",["strength","ghostDispersal","haloWidth","resolution","distortionStrength"],["lensColorSampler"],t/2,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LENS_FLARE",_.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Ja(e.getEngine(),"HDRLensFlare",function(){return i.lensFlarePostProcess},!0)),this._createBlurPostProcesses(e,t/4,2),this.lensFlareComposePostProcess=new Ht("HDRLensFlareCompose","standard",["lensStarMatrix"],["otherSampler","lensDirtSampler","lensStarSampler"],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LENS_FLARE_COMPOSE",_.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Ja(e.getEngine(),"HDRLensFlareCompose",function(){return i.lensFlareComposePostProcess},!0));var n=new o.w(0,0);this.lensFlarePostProcess.onApply=function(e){e.setTextureFromPostProcess("textureSampler",i._bloomEnabled?i.blurHPostProcesses[0]:i.originalPostProcess),e.setTexture("lensColorSampler",i.lensColorTexture),e.setFloat("strength",i.lensFlareStrength),e.setFloat("ghostDispersal",i.lensFlareGhostDispersal),e.setFloat("haloWidth",i.lensFlareHaloWidth),n.x=i.lensFlarePostProcess.width,n.y=i.lensFlarePostProcess.height,e.setVector2("resolution",n),e.setFloat("distortionStrength",i.lensFlareDistortionStrength)};var r=o.j.FromValues(2,0,-1,0,0,2,-1,0,0,0,1,0,0,0,0,1),s=o.j.FromValues(.5,0,.5,0,0,.5,.5,0,0,0,1,0,0,0,0,1);this.lensFlareComposePostProcess.onApply=function(e){if(i._scene.activeCamera){e.setTextureFromPostProcess("otherSampler",i._currentDepthOfFieldSource),e.setTexture("lensDirtSampler",i.lensFlareDirtTexture),e.setTexture("lensStarSampler",i.lensStarTexture);var t=i._scene.activeCamera.getViewMatrix().getRow(0),n=i._scene.activeCamera.getViewMatrix().getRow(2),a=o.x.Dot(t.toVector3(),new o.x(1,0,0))+o.x.Dot(n.toVector3(),new o.x(0,0,1));a*=4;var c=o.j.FromValues(.5*Math.cos(a),-Math.sin(a),0,0,Math.sin(a),.5*Math.cos(a),0,0,0,0,1,0,0,0,0,1),l=s.multiply(c).multiply(r);e.setMatrix("lensStarMatrix",l),i._currentDepthOfFieldSource=i.lensFlareFinalPostProcess}}},t.prototype._createDepthOfFieldPostProcess=function(e,t){var i=this;this.depthOfFieldPostProcess=new Ht("HDRDepthOfField","standard",["distance"],["otherSampler","depthSampler"],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define DEPTH_OF_FIELD",_.a.TEXTURETYPE_UNSIGNED_INT),this.depthOfFieldPostProcess.onApply=function(e){e.setTextureFromPostProcess("otherSampler",i._currentDepthOfFieldSource),e.setTexture("depthSampler",i._getDepthTexture()),e.setFloat("distance",i.depthOfFieldDistance)},this.addEffect(new Ja(e.getEngine(),"HDRDepthOfField",function(){return i.depthOfFieldPostProcess},!0))},t.prototype._createMotionBlurPostProcess=function(e,t){var i=this;this.motionBlurPostProcess=new Ht("HDRMotionBlur","standard",["inverseViewProjection","prevViewProjection","screenSize","motionScale","motionStrength"],["depthSampler"],t,null,ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES "+this.motionBlurSamples.toFixed(1),_.a.TEXTURETYPE_UNSIGNED_INT);var n=0,r=o.j.Identity(),s=o.j.Identity(),a=o.j.Identity(),c=o.w.Zero();this.motionBlurPostProcess.onApply=function(t){(a=e.getProjectionMatrix().multiply(e.getViewMatrix())).invertToRef(s),t.setMatrix("inverseViewProjection",s),t.setMatrix("prevViewProjection",r),r=a,c.x=i.motionBlurPostProcess.width,c.y=i.motionBlurPostProcess.height,t.setVector2("screenSize",c),n=e.getEngine().getFps()/60,t.setFloat("motionScale",n),t.setFloat("motionStrength",i.motionStrength),t.setTexture("depthSampler",i._getDepthTexture())},this.addEffect(new Ja(e.getEngine(),"HDRMotionBlur",function(){return i.motionBlurPostProcess},!0))},t.prototype._getDepthTexture=function(){return this._scene.getEngine().getCaps().drawBuffersExtension?this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]:this._scene.enableDepthRenderer().getDepthMap()},t.prototype._disposePostProcesses=function(){for(var e=0;e0&&-1!==this.excludedMeshes.indexOf(e)},t.prototype._createPass=function(e,t){var i=this,n=e.getEngine();this._volumetricLightScatteringRTT=new _i("volumetricLightScatteringMap",{width:n.getRenderWidth()*t,height:n.getRenderHeight()*t},e,!1,!0,_.a.TEXTURETYPE_UNSIGNED_INT),this._volumetricLightScatteringRTT.wrapU=ke.a.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.wrapV=ke.a.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.renderList=null,this._volumetricLightScatteringRTT.renderParticles=!1,this._volumetricLightScatteringRTT.ignoreCameraViewport=!0;var r=this.getCamera();r?r.customRenderTargets.push(this._volumetricLightScatteringRTT):e.customRenderTargets.push(this._volumetricLightScatteringRTT);var s,a=function(e){var t=e.getRenderingMesh();if(!i._meshExcluded(t)){var n=e.getMaterial();if(n){var r=t.getScene(),o=r.getEngine();o.setState(n.backFaceCulling);var s=t._getInstancesRenderList(e._id);if(!s.mustReturn){var a=o.getCaps().instancedArrays&&null!==s.visibleInstances[e._id];if(i._isReady(e,a)){var c=i._volumetricLightScatteringPass;if(t===i.mesh&&(c=e.effect?e.effect:n.getEffect()),o.enableEffect(c),t._bind(e,c,so.a.TriangleFillMode),t===i.mesh)n.bind(t.getWorldMatrix(),t);else{if(i._volumetricLightScatteringPass.setMatrix("viewProjection",r.getTransformMatrix()),n&&n.needAlphaTesting()){var l=n.getAlphaTestTexture();i._volumetricLightScatteringPass.setTexture("diffuseSampler",l),l&&i._volumetricLightScatteringPass.setMatrix("diffuseMatrix",l.getTextureMatrix())}t.useBones&&t.computeBonesUsingShaders&&t.skeleton&&i._volumetricLightScatteringPass.setMatrices("mBones",t.skeleton.getTransformMatrices(t))}t._processRendering(e,i._volumetricLightScatteringPass,so.a.TriangleFillMode,s,a,function(e,t){return c.setMatrix("world",t)})}}}}},c=new o.f(0,0,0,1);this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(function(){s=e.clearColor,e.clearColor=c}),this._volumetricLightScatteringRTT.onAfterRenderObservable.add(function(){e.clearColor=s}),this._volumetricLightScatteringRTT.customRenderFunction=function(t,i,n,r){var o,s=e.getEngine();if(r.length){for(s.setColorWrite(!1),o=0;ot._alphaIndex?1:e._alphaIndext._distanceToCamera?-1:0}),s.setAlphaMode(_.a.ALPHA_COMBINE),o=0;o4&&(r.push(Oi.b.MatricesIndicesExtraKind),r.push(Oi.b.MatricesWeightsExtraKind)),n.push("#define NUM_BONE_INFLUENCERS "+o.numBoneInfluencers),n.push("#define BonesPerMesh "+(o.skeleton?o.skeleton.bones.length+1:0))):n.push("#define NUM_BONE_INFLUENCERS 0"),t&&(n.push("#define INSTANCES"),r.push("world0"),r.push("world1"),r.push("world2"),r.push("world3"));var s=n.join("\n");return this._cachedDefines!==s&&(this._cachedDefines=s,this._effect=this._scene.getEngine().createEffect("depth",r,["world","mBones","viewProjection","diffuseMatrix","depthValues"],["diffuseSampler"],s)),this._effect.isReady()},e.prototype.getDepthMap=function(){return this._depthMap},e.prototype.dispose=function(){this._depthMap.dispose()},e._SceneComponentInitialization=function(e){throw be.a.WarnImport("DepthRendererSceneComponent")},e}();W.a.prototype.enableDepthRenderer=function(e){if(!(e=e||this.activeCamera))throw"No camera available to enable depth renderer";if(this._depthRenderer||(this._depthRenderer={}),!this._depthRenderer[e.id]){var t=0;if(this.getEngine().getCaps().textureHalfFloatRender)t=_.a.TEXTURETYPE_HALF_FLOAT;else{if(!this.getEngine().getCaps().textureFloatRender)throw"Depth renderer does not support int texture type";t=_.a.TEXTURETYPE_FLOAT}this._depthRenderer[e.id]=new cl(this,t,e)}return this._depthRenderer[e.id]},W.a.prototype.disableDepthRenderer=function(e){(e=e||this.activeCamera)&&this._depthRenderer&&this._depthRenderer[e.id]&&(this._depthRenderer[e.id].dispose(),delete this._depthRenderer[e.id])};var ll=function(){function e(e){this.name=Ae.a.NAME_DEPTHRENDERER,this.scene=e}return e.prototype.register=function(){this.scene._gatherRenderTargetsStage.registerStep(Ae.a.STEP_GATHERRENDERTARGETS_DEPTHRENDERER,this,this._gatherRenderTargets),this.scene._gatherActiveCameraRenderTargetsStage.registerStep(Ae.a.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER,this,this._gatherActiveCameraRenderTargets)},e.prototype.rebuild=function(){},e.prototype.dispose=function(){for(var e in this.scene._depthRenderer)this.scene._depthRenderer[e].dispose()},e.prototype._gatherRenderTargets=function(e){if(this.scene._depthRenderer)for(var t in this.scene._depthRenderer){var i=this.scene._depthRenderer[t];i.useOnlyInActiveCamera||e.push(i.getDepthMap())}},e.prototype._gatherActiveCameraRenderTargets=function(e){if(this.scene._depthRenderer)for(var t in this.scene._depthRenderer){var i=this.scene._depthRenderer[t];i.useOnlyInActiveCamera&&this.scene.activeCamera.id===t&&e.push(i.getDepthMap())}},e}();cl._SceneComponentInitialization=function(e){var t=e._getComponent(Ae.a.NAME_DEPTHRENDERER);t||(t=new ll(e),e._addComponent(t))};var ul="uniform vec4 color;\nvoid main(void) {\ngl_FragColor=color;\n}";zt.a.ShadersStore.linePixelShader=ul;var hl="\nattribute vec3 position;\nattribute vec4 normal;\n\nuniform mat4 worldViewProjection;\nuniform float width;\nuniform float aspectRatio;\nvoid main(void) {\nvec4 viewPosition=worldViewProjection*vec4(position,1.0);\nvec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);\nvec2 currentScreen=viewPosition.xy/viewPosition.w;\nvec2 nextScreen=viewPositionNext.xy/viewPositionNext.w;\ncurrentScreen.x*=aspectRatio;\nnextScreen.x*=aspectRatio;\nvec2 dir=normalize(nextScreen-currentScreen);\nvec2 normalDir=vec2(-dir.y,dir.x);\nnormalDir*=width/2.0;\nnormalDir.x/=aspectRatio;\nvec4 offset=vec4(normalDir*normal.w,0.0,0.0);\ngl_Position=viewPosition+offset;\n}";zt.a.ShadersStore.lineVertexShader=hl;Fe.a.prototype.disableEdgesRendering=function(){return this._edgesRenderer&&(this._edgesRenderer.dispose(),this._edgesRenderer=null),this},Fe.a.prototype.enableEdgesRendering=function(e,t){return void 0===e&&(e=.95),void 0===t&&(t=!1),this.disableEdgesRendering(),this._edgesRenderer=new fl(this,e,t),this},Object.defineProperty(Fe.a.prototype,"edgesRenderer",{get:function(){return this._edgesRenderer},enumerable:!0,configurable:!0}),Vs.b.prototype.enableEdgesRendering=function(e,t){return void 0===e&&(e=.95),void 0===t&&(t=!1),this.disableEdgesRendering(),this._edgesRenderer=new pl(this,e,t),this},Vs.a.prototype.enableEdgesRendering=function(e,t){return void 0===e&&(e=.95),void 0===t&&(t=!1),Vs.b.prototype.enableEdgesRendering.apply(this,arguments),this};var dl=function(){return function(){this.edges=new Array,this.edgesConnectedCount=0}}(),fl=function(){function e(e,t,i,n){var r=this;void 0===t&&(t=.95),void 0===i&&(i=!1),void 0===n&&(n=!0),this.edgesWidthScalerForOrthographic=1e3,this.edgesWidthScalerForPerspective=50,this._linesPositions=new Array,this._linesNormals=new Array,this._linesIndices=new Array,this._buffers={},this._checkVerticesInsteadOfIndices=!1,this.isEnabled=!0,this._source=e,this._checkVerticesInsteadOfIndices=i,this._epsilon=t,this._prepareRessources(),n&&this._generateEdgesLines(),this._meshRebuildObserver=this._source.onRebuildObservable.add(function(){r._rebuild()}),this._meshDisposeObserver=this._source.onDisposeObservable.add(function(){r.dispose()})}return e.prototype._prepareRessources=function(){this._lineShader||(this._lineShader=new as.a("lineShader",this._source.getScene(),"line",{attributes:["position","normal"],uniforms:["worldViewProjection","color","width","aspectRatio"]}),this._lineShader.disableDepthWrite=!0,this._lineShader.backFaceCulling=!1)},e.prototype._rebuild=function(){var e=this._buffers[Oi.b.PositionKind];e&&e._rebuild(),(e=this._buffers[Oi.b.NormalKind])&&e._rebuild();var t=this._source.getScene().getEngine();this._ib=t.createIndexBuffer(this._linesIndices)},e.prototype.dispose=function(){this._source.onRebuildObservable.remove(this._meshRebuildObserver),this._source.onDisposeObservable.remove(this._meshDisposeObserver);var e=this._buffers[Oi.b.PositionKind];e&&(e.dispose(),this._buffers[Oi.b.PositionKind]=null),(e=this._buffers[Oi.b.NormalKind])&&(e.dispose(),this._buffers[Oi.b.NormalKind]=null),this._source.getScene().getEngine()._releaseBuffer(this._ib),this._lineShader.dispose()},e.prototype._processEdgeForAdjacencies=function(e,t,i,n,r){return e===i&&t===n||e===n&&t===i?0:e===n&&t===r||e===r&&t===n?1:e===r&&t===i||e===i&&t===r?2:-1},e.prototype._processEdgeForAdjacenciesWithVertices=function(e,t,i,n,r){return e.equalsWithEpsilon(i)&&t.equalsWithEpsilon(n)||e.equalsWithEpsilon(n)&&t.equalsWithEpsilon(i)?0:e.equalsWithEpsilon(n)&&t.equalsWithEpsilon(r)||e.equalsWithEpsilon(r)&&t.equalsWithEpsilon(n)?1:e.equalsWithEpsilon(r)&&t.equalsWithEpsilon(i)||e.equalsWithEpsilon(i)&&t.equalsWithEpsilon(r)?2:-1},e.prototype._checkEdge=function(e,t,i,n,r){var s;void 0===t?s=!0:s=o.x.Dot(i[e],i[t])\nvoid main(void) {\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#include\ngl_FragColor=color;\n}";zt.a.ShadersStore.outlinePixelShader=_l;var gl="\nattribute vec3 position;\nattribute vec3 normal;\n#include\n\nuniform float offset;\n#include\nuniform mat4 viewProjection;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#include\nvoid main(void)\n{\nvec3 offsetPosition=position+normal*offset;\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(offsetPosition,1.0);\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}\n";zt.a.ShadersStore.outlineVertexShader=gl;W.a.prototype.getOutlineRenderer=function(){return this._outlineRenderer||(this._outlineRenderer=new ml(this)),this._outlineRenderer},Object.defineProperty(Fe.a.prototype,"renderOutline",{get:function(){return this._renderOutline},set:function(e){e&&this.getScene().getOutlineRenderer(),this._renderOutline=e},enumerable:!0,configurable:!0}),Object.defineProperty(Fe.a.prototype,"renderOverlay",{get:function(){return this._renderOverlay},set:function(e){e&&this.getScene().getOutlineRenderer(),this._renderOverlay=e},enumerable:!0,configurable:!0});var ml=function(){function e(e){this.name=Ae.a.NAME_OUTLINERENDERER,this.zOffset=1,this.scene=e,this._engine=e.getEngine(),this.scene._addComponent(this)}return e.prototype.register=function(){this.scene._beforeRenderingMeshStage.registerStep(Ae.a.STEP_BEFORERENDERINGMESH_OUTLINE,this,this._beforeRenderingMesh),this.scene._afterRenderingMeshStage.registerStep(Ae.a.STEP_AFTERRENDERINGMESH_OUTLINE,this,this._afterRenderingMesh)},e.prototype.rebuild=function(){},e.prototype.dispose=function(){},e.prototype.render=function(e,t,i){var n=this;void 0===i&&(i=!1);var r=this.scene,o=r.getEngine(),s=o.getCaps().instancedArrays&&null!==t.visibleInstances[e._id]&&void 0!==t.visibleInstances[e._id];if(this.isReady(e,s)){var a=e.getRenderingMesh(),c=e.getMaterial();if(c&&r.activeCamera){if(o.enableEffect(this._effect),c.useLogarithmicDepth&&this._effect.setFloat("logarithmicDepthConstant",2/(Math.log(r.activeCamera.maxZ+1)/Math.LN2)),this._effect.setFloat("offset",i?0:a.outlineWidth),this._effect.setColor4("color",i?a.overlayColor:a.outlineColor,i?a.overlayAlpha:c.alpha),this._effect.setMatrix("viewProjection",r.getTransformMatrix()),a.useBones&&a.computeBonesUsingShaders&&a.skeleton&&this._effect.setMatrices("mBones",a.skeleton.getTransformMatrices(a)),a._bind(e,this._effect,so.a.TriangleFillMode),c&&c.needAlphaTesting()){var l=c.getAlphaTestTexture();l&&(this._effect.setTexture("diffuseSampler",l),this._effect.setMatrix("diffuseMatrix",l.getTextureMatrix()))}o.setZOffset(-this.zOffset),a._processRendering(e,this._effect,so.a.TriangleFillMode,t,s,function(e,t){n._effect.setMatrix("world",t)}),o.setZOffset(0)}}},e.prototype.isReady=function(e,t){var i=[],n=[Oi.b.PositionKind,Oi.b.NormalKind],r=e.getMesh(),o=e.getMaterial();o&&(o.needAlphaTesting()&&(i.push("#define ALPHATEST"),r.isVerticesDataPresent(Oi.b.UVKind)&&(n.push(Oi.b.UVKind),i.push("#define UV1")),r.isVerticesDataPresent(Oi.b.UV2Kind)&&(n.push(Oi.b.UV2Kind),i.push("#define UV2"))),o.useLogarithmicDepth&&i.push("#define LOGARITHMICDEPTH")),r.useBones&&r.computeBonesUsingShaders?(n.push(Oi.b.MatricesIndicesKind),n.push(Oi.b.MatricesWeightsKind),r.numBoneInfluencers>4&&(n.push(Oi.b.MatricesIndicesExtraKind),n.push(Oi.b.MatricesWeightsExtraKind)),i.push("#define NUM_BONE_INFLUENCERS "+r.numBoneInfluencers),i.push("#define BonesPerMesh "+(r.skeleton?r.skeleton.bones.length+1:0))):i.push("#define NUM_BONE_INFLUENCERS 0"),t&&(i.push("#define INSTANCES"),n.push("world0"),n.push("world1"),n.push("world2"),n.push("world3"));var s=i.join("\n");return this._cachedDefines!==s&&(this._cachedDefines=s,this._effect=this.scene.getEngine().createEffect("outline",n,["world","mBones","viewProjection","diffuseMatrix","offset","color","logarithmicDepthConstant"],["diffuseSampler"],s)),this._effect.isReady()},e.prototype._beforeRenderingMesh=function(t,i,n){if(this._savedDepthWrite=this._engine.getDepthWrite(),t.renderOutline){var r=i.getMaterial();r&&r.needAlphaBlending&&(this._engine.cacheStencilState(),this._engine.setDepthWrite(!1),this._engine.setColorWrite(!1),this._engine.setStencilBuffer(!0),this._engine.setStencilOperationPass(_.a.REPLACE),this._engine.setStencilFunction(_.a.ALWAYS),this._engine.setStencilMask(e._StencilReference),this._engine.setStencilFunctionReference(e._StencilReference),this.render(i,n,!0),this._engine.setColorWrite(!0),this._engine.setStencilFunction(_.a.NOTEQUAL)),this._engine.setDepthWrite(!1),this.render(i,n),this._engine.setDepthWrite(this._savedDepthWrite),r&&r.needAlphaBlending&&this._engine.restoreStencilState()}},e.prototype._afterRenderingMesh=function(e,t,i){if(e.renderOverlay){var n=this._engine.getAlphaMode();this._engine.setAlphaMode(_.a.ALPHA_COMBINE),this.render(t,i,!0),this._engine.setAlphaMode(n)}e.renderOutline&&this._savedDepthWrite&&(this._engine.setDepthWrite(!0),this._engine.setColorWrite(!1),this.render(t,i),this._engine.setColorWrite(!0))},e._StencilReference=4,e}(),vl=i(109),yl=function(){function e(e,t){this.name=e,this.color=new o.f(1,1,1,1),this.width=1,this.height=1,this.angle=0,this.cellIndex=0,this.invertU=0,this.invertV=0,this.animations=new Array,this.isPickable=!1,this._animationStarted=!1,this._loopAnimation=!1,this._fromIndex=0,this._toIndex=0,this._delay=0,this._direction=1,this._time=0,this.isVisible=!0,this._manager=t,this._manager.sprites.push(this),this.position=o.x.Zero()}return Object.defineProperty(e.prototype,"size",{get:function(){return this.width},set:function(e){this.width=e,this.height=e},enumerable:!0,configurable:!0}),e.prototype.playAnimation=function(e,t,i,n,r){this._fromIndex=e,this._toIndex=t,this._loopAnimation=i,this._delay=n,this._animationStarted=!0,ethis._delay&&(this._time=this._time%this._delay,this.cellIndex+=this._direction,(this._direction>0&&this.cellIndex>this._toIndex||this._direction<0&&this.cellIndex0?this._fromIndex:this._toIndex:(this.cellIndex=this._toIndex,this._animationStarted=!1,this._onAnimationEnd&&this._onAnimationEnd(),this.disposeWhenFinishedAnimating&&this.dispose()))))},e.prototype.dispose=function(){for(var e=0;e0)for(var o=0;o=r.distance))&&(r=a,i))break}}return r||new en.a},W.a.prototype.pickSprite=function(e,t,i,n,r){return this.createPickingRayInCameraSpaceToRef(e,t,this._tempSpritePickingRay,r),this._internalPickSprites(this._tempSpritePickingRay,i,n,r)},W.a.prototype.pickSpriteWithRay=function(e,t,i,n){if(!this._tempSpritePickingRay)return null;if(!n){if(!this.activeCamera)return null;n=this.activeCamera}return It.a.TransformToRef(e,n.getViewMatrix(),this._tempSpritePickingRay),this._internalPickSprites(this._tempSpritePickingRay,t,i,n)},W.a.prototype.setPointerOverSprite=function(e){this._pointerOverSprite!==e&&(this._pointerOverSprite&&this._pointerOverSprite.actionManager&&this._pointerOverSprite.actionManager.processTrigger(_.a.ACTION_OnPointerOutTrigger,c.a.CreateNewFromSprite(this._pointerOverSprite,this)),this._pointerOverSprite=e,this._pointerOverSprite&&this._pointerOverSprite.actionManager&&this._pointerOverSprite.actionManager.processTrigger(_.a.ACTION_OnPointerOverTrigger,c.a.CreateNewFromSprite(this._pointerOverSprite,this)))},W.a.prototype.getPointerOverSprite=function(){return this._pointerOverSprite};var bl=function(){function e(e){this.name=Ae.a.NAME_SPRITE,this.scene=e,this.scene.spriteManagers=new Array,this.scene._tempSpritePickingRay=It.a?It.a.Zero():null,this.scene.onBeforeSpritesRenderingObservable=new r.c,this.scene.onAfterSpritesRenderingObservable=new r.c,this._spritePredicate=function(e){return!!e.actionManager&&(e.isPickable&&e.actionManager.hasPointerTriggers)}}return e.prototype.register=function(){this.scene._pointerMoveStage.registerStep(Ae.a.STEP_POINTERMOVE_SPRITE,this,this._pointerMove),this.scene._pointerDownStage.registerStep(Ae.a.STEP_POINTERDOWN_SPRITE,this,this._pointerDown),this.scene._pointerUpStage.registerStep(Ae.a.STEP_POINTERUP_SPRITE,this,this._pointerUp)},e.prototype.rebuild=function(){},e.prototype.dispose=function(){this.scene.onBeforeSpritesRenderingObservable.clear(),this.scene.onAfterSpritesRenderingObservable.clear();for(var e=this.scene.spriteManagers;e.length;)e[0].dispose()},e.prototype._pickSpriteButKeepRay=function(e,t,i,n,r){var o=this.scene.pickSprite(t,i,this._spritePredicate,n,r);return o&&(o.ray=e?e.ray:null),o},e.prototype._pointerMove=function(e,t,i,n,r){var o=this.scene;return n?o.setPointerOverSprite(null):(i=this._pickSpriteButKeepRay(i,e,t,!1,o.cameraToUseForPointers||void 0))&&i.hit&&i.pickedSprite?(o.setPointerOverSprite(i.pickedSprite),o._pointerOverSprite&&o._pointerOverSprite.actionManager&&o._pointerOverSprite.actionManager.hoverCursor?r.style.cursor=o._pointerOverSprite.actionManager.hoverCursor:r.style.cursor=o.hoverCursor):o.setPointerOverSprite(null),i},e.prototype._pointerDown=function(e,t,i,n){var r=this.scene;if(r._pickedDownSprite=null,r.spriteManagers.length>0&&(i=r.pickSprite(e,t,this._spritePredicate,!1,r.cameraToUseForPointers||void 0))&&i.hit&&i.pickedSprite&&i.pickedSprite.actionManager){switch(r._pickedDownSprite=i.pickedSprite,n.button){case 0:i.pickedSprite.actionManager.processTrigger(_.a.ACTION_OnLeftPickTrigger,c.a.CreateNewFromSprite(i.pickedSprite,r,n));break;case 1:i.pickedSprite.actionManager.processTrigger(_.a.ACTION_OnCenterPickTrigger,c.a.CreateNewFromSprite(i.pickedSprite,r,n));break;case 2:i.pickedSprite.actionManager.processTrigger(_.a.ACTION_OnRightPickTrigger,c.a.CreateNewFromSprite(i.pickedSprite,r,n))}i.pickedSprite.actionManager&&i.pickedSprite.actionManager.processTrigger(_.a.ACTION_OnPickDownTrigger,c.a.CreateNewFromSprite(i.pickedSprite,r,n))}return i},e.prototype._pointerUp=function(e,t,i,n){var r=this.scene;if(r.spriteManagers.length>0){var o=r.pickSprite(e,t,this._spritePredicate,!1,r.cameraToUseForPointers||void 0);o&&(o.hit&&o.pickedSprite&&o.pickedSprite.actionManager&&(o.pickedSprite.actionManager.processTrigger(_.a.ACTION_OnPickUpTrigger,c.a.CreateNewFromSprite(o.pickedSprite,r,n)),o.pickedSprite.actionManager&&(this.scene._inputManager._isPointerSwiping()||o.pickedSprite.actionManager.processTrigger(_.a.ACTION_OnPickTrigger,c.a.CreateNewFromSprite(o.pickedSprite,r,n)))),r._pickedDownSprite&&r._pickedDownSprite.actionManager&&r._pickedDownSprite!==o.pickedSprite&&r._pickedDownSprite.actionManager.processTrigger(_.a.ACTION_OnPickOutTrigger,c.a.CreateNewFromSprite(r._pickedDownSprite,r,n)))}return i},e}(),Tl="uniform bool alphaTest;\nvarying vec4 vColor;\n\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n\n#include\nvoid main(void) {\nvec4 color=texture2D(diffuseSampler,vUV);\nif (alphaTest)\n{\nif (color.a<0.95)\ndiscard;\n}\ncolor*=vColor;\n#include\ngl_FragColor=color;\n}";zt.a.ShadersStore.spritesPixelShader=Tl;var El="\nattribute vec4 position;\nattribute vec4 options;\nattribute vec4 cellInfo;\nattribute vec4 color;\n\nuniform vec2 textureInfos;\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#include\nvoid main(void) {\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;\nvec2 cornerPos;\nfloat angle=position.w;\nvec2 size=vec2(options.x,options.y);\nvec2 offset=options.zw;\nvec2 uvScale=textureInfos.xy;\ncornerPos=vec2(offset.x-0.5,offset.y-0.5)*size;\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nviewPos+=rotatedCorner;\ngl_Position=projection*vec4(viewPos,1.0);\n\nvColor=color;\n\nvec2 uvOffset=vec2(abs(offset.x-cellInfo.x),1.0-abs(offset.y-cellInfo.y));\nvUV=(uvOffset+cellInfo.zw)*uvScale;\n\n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n}";zt.a.ShadersStore.spritesVertexShader=El;var Al,xl=function(){function e(e,t,i,n,o,s,a){if(void 0===s&&(s=.01),void 0===a&&(a=ke.a.TRILINEAR_SAMPLINGMODE),this.name=e,this.sprites=new Array,this.renderingGroupId=0,this.layerMask=268435455,this.fogEnabled=!0,this.isPickable=!1,this.onDisposeObservable=new r.c,this._vertexBuffers={},o._getComponent(Ae.a.NAME_SPRITE)||o._addComponent(new bl(o)),this._capacity=i,this._spriteTexture=new ke.a(t,o,!0,!1,a),this._spriteTexture.wrapU=ke.a.CLAMP_ADDRESSMODE,this._spriteTexture.wrapV=ke.a.CLAMP_ADDRESSMODE,n.width&&n.height)this.cellWidth=n.width,this.cellHeight=n.height;else{if(void 0===n)return;this.cellWidth=n,this.cellHeight=n}this._epsilon=s,this._scene=o,this._scene.spriteManagers.push(this);for(var c=[],l=0,u=0;u>0;this._vertexData[o+10]=t.cellIndex-s*r,this._vertexData[o+11]=s,this._vertexData[o+12]=t.color.r,this._vertexData[o+13]=t.color.g,this._vertexData[o+14]=t.color.b,this._vertexData[o+15]=t.color.a},e.prototype.intersects=function(e,t,i,n){for(var r=Math.min(this._capacity,this.sprites.length),s=o.x.Zero(),a=o.x.Zero(),c=Number.MAX_VALUE,l=null,u=o.x.Zero(),h=o.x.Zero(),d=t.getViewMatrix(),f=0;f_&&(c=_,l=p,n))break}}}if(l){var g=new en.a;d.invertToRef(o.t.Matrix[0]),g.hit=!0,g.pickedSprite=l,g.distance=c;var m=o.t.Vector3[0];return m.copyFrom(e.direction),m.normalize(),m.scaleInPlace(c),e.origin.addToRef(m,u),g.pickedPoint=o.x.TransformCoordinates(u,o.t.Matrix[0]),g}return null},e.prototype.render=function(){if(this._effectBase.isReady()&&this._effectFog.isReady()&&this._spriteTexture&&this._spriteTexture.isReady()&&this.sprites.length){for(var e=this._scene.getEngine(),t=this._spriteTexture.getBaseSize(),i=e.getDeltaTime(),n=Math.min(this._capacity,this.sprites.length),r=t.width/this.cellWidth,o=0,s=!0,a=0;a-1&&this._tasks.splice(t,1)},e.prototype._decreaseWaitingTasksCount=function(e){this._waitingTasksCount--;try{this.onProgress&&this.onProgress(this._waitingTasksCount,this._totalTasksCount,e),this.onProgressObservable.notifyObservers(new Ml(this._waitingTasksCount,this._totalTasksCount,e))}catch(e){p.a.Error("Error running progress callbacks."),console.log(e)}if(0===this._waitingTasksCount){try{this.onFinish&&this.onFinish(this._tasks);for(var t=this._tasks.slice(),i=0,n=t;i-1&&this._tasks.splice(r,1)}}this.onTasksDoneObservable.notifyObservers(this._tasks)}catch(e){p.a.Error("Error running tasks-done callbacks."),console.log(e)}this._isLoading=!1,this._scene.getEngine().hideLoadingUI()}},e.prototype._runTask=function(e){var t=this,i=function(i,n){e._setErrorObject(i,n),t.onTaskError&&t.onTaskError(e),t.onTaskErrorObservable.notifyObservers(e),t._decreaseWaitingTasksCount(e)};e.run(this._scene,function(){try{t.onTaskSuccess&&t.onTaskSuccess(e),t.onTaskSuccessObservable.notifyObservers(e),t._decreaseWaitingTasksCount(e)}catch(e){i("Error executing task success callbacks",e)}},i)},e.prototype.reset=function(){return this._isLoading=!1,this._tasks=new Array,this},e.prototype.load=function(){if(this._isLoading)return this;if(this._isLoading=!0,this._waitingTasksCount=this._tasks.length,this._totalTasksCount=this._tasks.length,0===this._waitingTasksCount)return this._isLoading=!1,this.onFinish&&this.onFinish(this._tasks),this.onTasksDoneObservable.notifyObservers(this._tasks),this;this.useDefaultLoadingScreen&&this._scene.getEngine().displayLoadingUI();for(var e=0;e=0&&this._meshes.splice(i,1),this._centerPosition=this._centerMesh.getAbsolutePosition().clone();for(var n=0;n0&&this._textureLoadingCallback(e)}this._currentScene.render()}},e.prototype.drag=function(e){e.stopPropagation(),e.preventDefault()},e.prototype.drop=function(e){e.stopPropagation(),e.preventDefault(),this.loadFiles(e)},e.prototype._traverseFolder=function(e,t,i,n){var r=this,o=e.createReader(),s=e.fullPath.replace(/^\//,"").replace(/(.+?)\/?$/,"$1/");o.readEntries(function(e){i.count+=e.length;for(var o=0,a=e;o0)){for(var i=new Array,n=[],r=e.dataTransfer?e.dataTransfer.items:null,o=0;o0&&p.a.ClearLogCache(),this._engine.stopRenderLoop()),bn.LoadAsync("file:",this._sceneFileToLoad,this._engine,function(t){e._progressCallback&&e._progressCallback(t)}).then(function(t){e._currentScene&&e._currentScene.dispose(),e._currentScene=t,e._sceneLoadedCallback&&e._sceneLoadedCallback(e._sceneFileToLoad,e._currentScene),e._currentScene.executeWhenReady(function(){e._engine.runRenderLoop(function(){e.renderFunction()})})}).catch(function(t){e._errorCallback&&e._errorCallback(e._sceneFileToLoad,e._currentScene,t.message)})):p.a.Error("Please provide a valid .babylon file.")},e}(),zl=i(105),jl=i(106),Hl=function(){function e(e){void 0===e&&(e=0),this.priority=e}return e.prototype.getDescription=function(){return""},e.prototype.apply=function(e,t){return!0},e}(),Wl=function(e){function t(t,i,n){void 0===t&&(t=0),void 0===i&&(i=1024),void 0===n&&(n=.5);var r=e.call(this,t)||this;return r.priority=t,r.maximumSize=i,r.step=n,r}return l.d(t,e),t.prototype.getDescription=function(){return"Reducing render target texture size to "+this.maximumSize},t.prototype.apply=function(e,t){for(var i=!0,n=0;nthis.maximumSize&&(r.scale(this.step),i=!1)}}return i},t}(Hl),Xl=function(e){function t(t,i,n){void 0===t&&(t=0),void 0===i&&(i=2),void 0===n&&(n=.25);var r=e.call(this,t)||this;return r.priority=t,r.maximumScale=i,r.step=n,r._currentScale=-1,r._directionOffset=1,r}return l.d(t,e),t.prototype.getDescription=function(){return"Setting hardware scaling level to "+this._currentScale},t.prototype.apply=function(e,t){return-1===this._currentScale&&(this._currentScale=e.getEngine().getHardwareScalingLevel(),this._currentScale>this.maximumScale&&(this._directionOffset=-1)),this._currentScale+=this._directionOffset*this.step,e.getEngine().setHardwareScalingLevel(this._currentScale),1===this._directionOffset?this._currentScale>=this.maximumScale:this._currentScale<=this.maximumScale},t}(Hl),Yl=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.getDescription=function(){return"Turning shadows on/off"},t.prototype.apply=function(e,t){return e.shadowsEnabled=t.isInImprovementMode,!0},t}(Hl),Kl=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.getDescription=function(){return"Turning post-processes on/off"},t.prototype.apply=function(e,t){return e.postProcessesEnabled=t.isInImprovementMode,!0},t}(Hl),Ql=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.getDescription=function(){return"Turning lens flares on/off"},t.prototype.apply=function(e,t){return e.lensFlaresEnabled=t.isInImprovementMode,!0},t}(Hl),ql=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.getDescription=function(){return this.onGetDescription?this.onGetDescription():"Running user defined callback"},t.prototype.apply=function(e,t){return!this.onApply||this.onApply(e,t)},t}(Hl),Zl=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.getDescription=function(){return"Turning particles on/off"},t.prototype.apply=function(e,t){return e.particlesEnabled=t.isInImprovementMode,!0},t}(Hl),Jl=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.d(t,e),t.prototype.getDescription=function(){return"Turning render targets off"},t.prototype.apply=function(e,t){return e.renderTargetsEnabled=t.isInImprovementMode,!0},t}(Hl),$l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._canBeMerged=function(e){if(!(e instanceof fe.a))return!1;var t=e;return!t.isDisposed()&&(!(!t.isVisible||!t.isEnabled())&&(!(t.instances.length>0)&&(!t.skeleton&&!t.hasLODLevels)))},t}return l.d(t,e),Object.defineProperty(t,"UpdateSelectionTree",{get:function(){return t._UpdateSelectionTree},set:function(e){t._UpdateSelectionTree=e},enumerable:!0,configurable:!0}),t.prototype.getDescription=function(){return"Merging similar meshes together"},t.prototype.apply=function(e,i,n){for(var r=e.meshes.slice(0),o=r.length,s=0;s=this._targetFrameRate)return this._isRunning=!1,void this.onSuccessObservable.notifyObservers(this);for(var n=!0,r=!0,o=0;o0)for(o.reflectionProbes=[],i=0;i0&&setTimeout(function(){i.stopRecording()},1e3*t),this._fileName=e,this._recordedChunks=[],this._resolve=null,this._reject=null,this._canvas.isRecording=!0,this._mediaRecorder.start(this._options.recordChunckSize),new Promise(function(e,t){i._resolve=e,i._reject=t})},e.prototype.dispose=function(){this._canvas=null,this._mediaRecorder=null,this._recordedChunks=[],this._fileName=null,this._resolve=null,this._reject=null},e.prototype._handleDataAvailable=function(e){e.data.size>0&&this._recordedChunks.push(e.data)},e.prototype._handleError=function(e){if(this.stopRecording(),!this._reject)throw new e.error;this._reject(e.error)},e.prototype._handleStop=function(){this.stopRecording();var e=new Blob(this._recordedChunks);this._resolve&&this._resolve(e),window.URL.createObjectURL(e),this._fileName&&ye.h.Download(e,this._fileName)},e._defaultOptions={mimeType:"video/webm",fps:25,recordChunckSize:3e3},e}(),lu=function(){function e(){}return e.CreateScreenshot=function(e,t,i,n,r){var o,s;if(void 0===r&&(r="image/png"),i.precision)o=Math.round(e.getRenderWidth()*i.precision),s=Math.round(o/e.getAspectRatio(t));else if(i.width&&i.height)o=i.width,s=i.height;else if(i.width&&!i.height)o=i.width,s=Math.round(o/e.getAspectRatio(t));else if(i.height&&!i.width)s=i.height,o=Math.round(s*e.getAspectRatio(t));else{if(isNaN(i))return void p.a.Error("Invalid 'size' parameter !");s=i,o=i}ye.h._ScreenshotCanvas||(ye.h._ScreenshotCanvas=document.createElement("canvas")),ye.h._ScreenshotCanvas.width=o,ye.h._ScreenshotCanvas.height=s;var a=ye.h._ScreenshotCanvas.getContext("2d"),c=e.getRenderWidth()/e.getRenderHeight(),l=o,u=l/c;u>s&&(l=(u=s)*c);var h=Math.max(0,o-l)/2,d=Math.max(0,s-u)/2,f=e.getRenderingCanvas();a&&f&&a.drawImage(f,h,d,l,u),ye.h.EncodeScreenshotCanvasData(n,r)},e.CreateScreenshotUsingRenderTarget=function(e,t,i,n,r,o,s,a){var c,l;if(void 0===r&&(r="image/png"),void 0===o&&(o=1),void 0===s&&(s=!1),i.precision)c=Math.round(e.getRenderWidth()*i.precision),l=Math.round(c/e.getAspectRatio(t)),i={width:c,height:l};else if(i.width&&i.height)c=i.width,l=i.height;else if(i.width&&!i.height)c=i.width,l=Math.round(c/e.getAspectRatio(t)),i={width:c,height:l};else if(i.height&&!i.width)l=i.height,i={width:c=Math.round(l*e.getAspectRatio(t)),height:l};else{if(isNaN(i))return void p.a.Error("Invalid 'size' parameter !");l=i,c=i}var u=t.getScene(),h=null;u.activeCamera!==t&&(h=u.activeCamera,u.activeCamera=t);var d=e.getRenderingCanvas();if(d){var f={width:d.width,height:d.height};e.setSize(c,l),u.render();var g=new _i("screenShot",i,u,!1,!1,_.a.TEXTURETYPE_UNSIGNED_INT,!1,ke.a.NEAREST_SAMPLINGMODE);g.renderList=null,g.samples=o,s&&g.addPostProcess(new xc("antialiasing",1,u.activeCamera)),g.onAfterRenderObservable.add(function(){ye.h.DumpFramebuffer(c,l,e,n,r,a)}),u.incrementRenderId(),u.resetCachedMaterial(),g.render(!0),g.dispose(),h&&(u.activeCamera=h),e.setSize(f.width,f.height),t.getProjectionMatrix(!0)}else p.a.Error("No rendering canvas found !")},e}();ye.h.CreateScreenshot=lu.CreateScreenshot,ye.h.CreateScreenshotUsingRenderTarget=lu.CreateScreenshotUsingRenderTarget,function(e){e[e.Checkbox=0]="Checkbox",e[e.Slider=1]="Slider",e[e.Vector3=2]="Vector3",e[e.Quaternion=3]="Quaternion",e[e.Color3=4]="Color3"}(Sl||(Sl={})),i.d(t,"AbstractScene",function(){return n.a}),i.d(t,"Action",function(){return a}),i.d(t,"ActionEvent",function(){return c.a}),i.d(t,"ActionManager",function(){return C}),i.d(t,"Condition",function(){return u}),i.d(t,"ValueCondition",function(){return h}),i.d(t,"PredicateCondition",function(){return d}),i.d(t,"StateCondition",function(){return f}),i.d(t,"SwitchBooleanAction",function(){return g}),i.d(t,"SetStateAction",function(){return m}),i.d(t,"SetValueAction",function(){return v}),i.d(t,"IncrementValueAction",function(){return y}),i.d(t,"PlayAnimationAction",function(){return b}),i.d(t,"StopAnimationAction",function(){return T}),i.d(t,"DoNothingAction",function(){return E}),i.d(t,"CombineAction",function(){return A}),i.d(t,"ExecuteCodeAction",function(){return x}),i.d(t,"SetParentAction",function(){return R}),i.d(t,"PlaySoundAction",function(){return M}),i.d(t,"StopSoundAction",function(){return O}),i.d(t,"InterpolateValueAction",function(){return U}),i.d(t,"Animatable",function(){return Q}),i.d(t,"_IAnimationState",function(){return N}),i.d(t,"Animation",function(){return B}),i.d(t,"TargetedAnimation",function(){return q}),i.d(t,"AnimationGroup",function(){return Z}),i.d(t,"AnimationPropertiesOverride",function(){return J}),i.d(t,"EasingFunction",function(){return $}),i.d(t,"CircleEase",function(){return ee}),i.d(t,"BackEase",function(){return te}),i.d(t,"BounceEase",function(){return ie}),i.d(t,"CubicEase",function(){return ne}),i.d(t,"ElasticEase",function(){return re}),i.d(t,"ExponentialEase",function(){return oe}),i.d(t,"PowerEase",function(){return se}),i.d(t,"QuadraticEase",function(){return ae}),i.d(t,"QuarticEase",function(){return ce}),i.d(t,"QuinticEase",function(){return le}),i.d(t,"SineEase",function(){return ue}),i.d(t,"BezierCurveEase",function(){return he}),i.d(t,"RuntimeAnimation",function(){return H}),i.d(t,"AnimationEvent",function(){return de}),i.d(t,"AnimationKeyInterpolation",function(){return I}),i.d(t,"AnimationRange",function(){return w}),i.d(t,"KeepAssets",function(){return pe}),i.d(t,"AssetContainer",function(){return _e}),i.d(t,"Analyser",function(){return me}),i.d(t,"AudioEngine",function(){return ve}),i.d(t,"AudioSceneComponent",function(){return xe}),i.d(t,"Sound",function(){return Te}),i.d(t,"SoundTrack",function(){return Ee}),i.d(t,"WeightedSound",function(){return Re}),i.d(t,"AutoRotationBehavior",function(){return Se}),i.d(t,"BouncingBehavior",function(){return Ce}),i.d(t,"FramingBehavior",function(){return Me}),i.d(t,"AttachToBoxBehavior",function(){return Ie}),i.d(t,"FadeInOutBehavior",function(){return De}),i.d(t,"MultiPointerScaleBehavior",function(){return we}),i.d(t,"PointerDragBehavior",function(){return Le.a}),i.d(t,"SixDofDragBehavior",function(){return Ue}),i.d(t,"Bone",function(){return K}),i.d(t,"BoneIKController",function(){return Ve}),i.d(t,"BoneLookController",function(){return Ge}),i.d(t,"Skeleton",function(){return He}),i.d(t,"CameraInputTypes",function(){return We}),i.d(t,"CameraInputsManager",function(){return Xe}),i.d(t,"Camera",function(){return Ne.a}),i.d(t,"TargetCamera",function(){return yt}),i.d(t,"FreeCamera",function(){return bt}),i.d(t,"FreeCameraInputsManager",function(){return dt}),i.d(t,"TouchCamera",function(){return Tt}),i.d(t,"ArcRotateCamera",function(){return Et}),i.d(t,"ArcRotateCameraInputsManager",function(){return it}),i.d(t,"DeviceOrientationCamera",function(){return At}),i.d(t,"FlyCamera",function(){return Rt}),i.d(t,"FlyCameraInputsManager",function(){return xt}),i.d(t,"FollowCamera",function(){return Ct}),i.d(t,"ArcFollowCamera",function(){return Mt}),i.d(t,"GamepadCamera",function(){return Gt}),i.d(t,"UniversalCamera",function(){return Vt}),i.d(t,"VirtualJoysticksCamera",function(){return ai}),i.d(t,"ArcRotateCameraGamepadInput",function(){return qe}),i.d(t,"ArcRotateCameraKeyboardMoveInput",function(){return Je}),i.d(t,"ArcRotateCameraMouseWheelInput",function(){return $e}),i.d(t,"ArcRotateCameraPointersInput",function(){return tt}),i.d(t,"ArcRotateCameraVRDeviceOrientationInput",function(){return nt}),i.d(t,"FlyCameraKeyboardInput",function(){return rt}),i.d(t,"FlyCameraMouseInput",function(){return ot}),i.d(t,"FollowCameraKeyboardMoveInput",function(){return st}),i.d(t,"FollowCameraMouseWheelInput",function(){return at}),i.d(t,"FollowCameraPointersInput",function(){return ct}),i.d(t,"FreeCameraDeviceOrientationInput",function(){return ft}),i.d(t,"FreeCameraGamepadInput",function(){return pt}),i.d(t,"FreeCameraKeyboardMoveInput",function(){return lt}),i.d(t,"FreeCameraMouseInput",function(){return ut}),i.d(t,"FreeCameraTouchInput",function(){return ht}),i.d(t,"FreeCameraVirtualJoystickInput",function(){return vt}),i.d(t,"AnaglyphArcRotateCamera",function(){return Zt}),i.d(t,"AnaglyphFreeCamera",function(){return Jt}),i.d(t,"AnaglyphGamepadCamera",function(){return $t}),i.d(t,"AnaglyphUniversalCamera",function(){return ei}),i.d(t,"StereoscopicArcRotateCamera",function(){return ni}),i.d(t,"StereoscopicFreeCamera",function(){return ri}),i.d(t,"StereoscopicGamepadCamera",function(){return oi}),i.d(t,"StereoscopicUniversalCamera",function(){return si}),i.d(t,"VRCameraMetrics",function(){return ci}),i.d(t,"VRDeviceOrientationArcRotateCamera",function(){return vi}),i.d(t,"VRDeviceOrientationFreeCamera",function(){return yi}),i.d(t,"VRDeviceOrientationGamepadCamera",function(){return bi}),i.d(t,"OnAfterEnteringVRObservableEvent",function(){return Vi}),i.d(t,"VRExperienceHelper",function(){return Gi}),i.d(t,"WebVRFreeCamera",function(){return Ei}),i.d(t,"WebXRCamera",function(){return ki}),i.d(t,"WebXREnterExitUIButton",function(){return Wi}),i.d(t,"WebXREnterExitUIOptions",function(){return Xi}),i.d(t,"WebXREnterExitUI",function(){return Yi}),i.d(t,"WebXRState",function(){return Li}),i.d(t,"WebXRExperienceHelper",function(){return Hi}),i.d(t,"WebXRController",function(){return Ki}),i.d(t,"WebXRInput",function(){return Qi}),i.d(t,"WebXRManagedOutputCanvas",function(){return qi}),i.d(t,"WebXRSessionManager",function(){return zi}),i.d(t,"Collider",function(){return Ji}),i.d(t,"DefaultCollisionCoordinator",function(){return $i}),i.d(t,"PickingInfo",function(){return en.a}),i.d(t,"IntersectionInfo",function(){return tn.a}),i.d(t,"_MeshCollisionData",function(){return nn.a}),i.d(t,"BoundingBox",function(){return rn.a}),i.d(t,"BoundingInfo",function(){return on.a}),i.d(t,"BoundingSphere",function(){return sn.a}),i.d(t,"Ray",function(){return It.a}),i.d(t,"Octree",function(){return cn}),i.d(t,"OctreeBlock",function(){return an}),i.d(t,"OctreeSceneComponent",function(){return ln}),i.d(t,"AxesViewer",function(){return un.AxesViewer}),i.d(t,"BoneAxesViewer",function(){return un.BoneAxesViewer}),i.d(t,"DebugLayer",function(){return un.DebugLayer}),i.d(t,"PhysicsViewer",function(){return un.PhysicsViewer}),i.d(t,"RayHelper",function(){return un.RayHelper}),i.d(t,"SkeletonViewer",function(){return un.SkeletonViewer}),i.d(t,"Constants",function(){return _.a}),i.d(t,"InstancingAttributeInfo",function(){return ge.d}),i.d(t,"DepthTextureCreationOptions",function(){return ge.a}),i.d(t,"EngineCapabilities",function(){return ge.c}),i.d(t,"Engine",function(){return ge.b}),i.d(t,"EngineStore",function(){return P.a}),i.d(t,"NullEngineOptions",function(){return hn.b}),i.d(t,"NullEngine",function(){return hn.a}),i.d(t,"WebGLPipelineContext",function(){return pn.a}),i.d(t,"_OcclusionDataStorage",function(){return fn}),i.d(t,"_forceTransformFeedbackToBundle",function(){return!0}),i.d(t,"KeyboardEventTypes",function(){return Ze.a}),i.d(t,"KeyboardInfo",function(){return Ze.b}),i.d(t,"KeyboardInfoPre",function(){return Ze.c}),i.d(t,"PointerEventTypes",function(){return Pe.a}),i.d(t,"PointerInfoBase",function(){return Pe.c}),i.d(t,"PointerInfoPre",function(){return Pe.d}),i.d(t,"PointerInfo",function(){return Pe.b}),i.d(t,"ClipboardEventTypes",function(){return _n}),i.d(t,"ClipboardInfo",function(){return gn}),i.d(t,"DaydreamController",function(){return Tn}),i.d(t,"GearVRController",function(){return En}),i.d(t,"GenericController",function(){return An}),i.d(t,"OculusTouchController",function(){return xn}),i.d(t,"PoseEnabledControllerType",function(){return St}),i.d(t,"PoseEnabledControllerHelper",function(){return wt}),i.d(t,"PoseEnabledController",function(){return Ft}),i.d(t,"ViveController",function(){return Rn}),i.d(t,"WebVRController",function(){return Ai}),i.d(t,"WindowsMotionController",function(){return Sn}),i.d(t,"StickValues",function(){return Ye}),i.d(t,"Gamepad",function(){return Ke}),i.d(t,"GenericPad",function(){return Qe}),i.d(t,"GamepadManager",function(){return Bt}),i.d(t,"GamepadSystemSceneComponent",function(){return Ut}),i.d(t,"Xbox360Button",function(){return Dt}),i.d(t,"Xbox360Dpad",function(){return Lt}),i.d(t,"Xbox360Pad",function(){return Nt}),i.d(t,"AxisDragGizmo",function(){return Cn.a}),i.d(t,"AxisScaleGizmo",function(){return Dn}),i.d(t,"BoundingBoxGizmo",function(){return Fn}),i.d(t,"Gizmo",function(){return On.a}),i.d(t,"GizmoManager",function(){return kn}),i.d(t,"PlaneRotationGizmo",function(){return Nn}),i.d(t,"PositionGizmo",function(){return Un}),i.d(t,"RotationGizmo",function(){return Bn}),i.d(t,"ScaleGizmo",function(){return Gn}),i.d(t,"LightGizmo",function(){return Yn}),i.d(t,"EnvironmentHelper",function(){return pr}),i.d(t,"PhotoDome",function(){return gr}),i.d(t,"_forceSceneHelpersToBundle",function(){return!0}),i.d(t,"VideoDome",function(){return no}),i.d(t,"EngineInstrumentation",function(){return ro}),i.d(t,"SceneInstrumentation",function(){return oo}),i.d(t,"_TimeToken",function(){return dn}),i.d(t,"EffectLayer",function(){return lo}),i.d(t,"EffectLayerSceneComponent",function(){return uo}),i.d(t,"GlowLayer",function(){return po}),i.d(t,"HighlightLayer",function(){return mo}),i.d(t,"Layer",function(){return To}),i.d(t,"LayerSceneComponent",function(){return vo}),i.d(t,"LensFlare",function(){return Eo}),i.d(t,"LensFlareSystem",function(){return Ro}),i.d(t,"LensFlareSystemSceneComponent",function(){return Po}),i.d(t,"Light",function(){return zn.a}),i.d(t,"ShadowLight",function(){return jn}),i.d(t,"DirectionalLight",function(){return Hn}),i.d(t,"HemisphericLight",function(){return Ti.a}),i.d(t,"PointLight",function(){return Do}),i.d(t,"SpotLight",function(){return Xn}),i.d(t,"ShadowGenerator",function(){return Oo}),i.d(t,"ShadowGeneratorSceneComponent",function(){return Io}),i.d(t,"DefaultLoadingScreen",function(){return Lo}),i.d(t,"SceneLoaderProgressEvent",function(){return yn}),i.d(t,"SceneLoader",function(){return bn}),i.d(t,"SceneLoaderFlags",function(){return vn.a}),i.d(t,"_BabylonLoaderRegistered",function(){return!0}),i.d(t,"ColorCurves",function(){return is.a}),i.d(t,"EffectFallbacks",function(){return zt.c}),i.d(t,"EffectCreationOptions",function(){return zt.b}),i.d(t,"Effect",function(){return zt.a}),i.d(t,"FresnelParameters",function(){return ns}),i.d(t,"ImageProcessingConfigurationDefines",function(){return xi.b}),i.d(t,"ImageProcessingConfiguration",function(){return xi.a}),i.d(t,"Material",function(){return so.a}),i.d(t,"MaterialDefines",function(){return nr.a}),i.d(t,"MaterialHelper",function(){return ir.a}),i.d(t,"MultiMaterial",function(){return Fo.a}),i.d(t,"PushMaterial",function(){return rr.a}),i.d(t,"ShaderMaterial",function(){return as.a}),i.d(t,"StandardMaterialDefines",function(){return Ri.b}),i.d(t,"StandardMaterial",function(){return Ri.a}),i.d(t,"BaseTexture",function(){return Kn.a}),i.d(t,"CubeTexture",function(){return tr}),i.d(t,"EquiRectangularCubeTexture",function(){return ls}),i.d(t,"HDRCubeTexture",function(){return Uo}),i.d(t,"InternalTexture",function(){return ze.a}),i.d(t,"MirrorTexture",function(){return er}),i.d(t,"MultiRenderTarget",function(){return ds}),i.d(t,"RenderTargetTexture",function(){return _i}),i.d(t,"Texture",function(){return ke.a}),i.d(t,"UniformBuffer",function(){return di.a}),i.d(t,"MaterialFlags",function(){return or.a}),i.d(t,"BackgroundMaterial",function(){return dr}),i.d(t,"PBRMaterialDefines",function(){return Vr}),i.d(t,"PBRBaseMaterial",function(){return Gr}),i.d(t,"PBRBaseSimpleMaterial",function(){return rs}),i.d(t,"PBRMaterial",function(){return kr}),i.d(t,"PBRMetallicRoughnessMaterial",function(){return os}),i.d(t,"PBRSpecularGlossinessMaterial",function(){return ss}),i.d(t,"ColorGradingTexture",function(){return cs}),i.d(t,"DynamicTexture",function(){return Pi}),i.d(t,"ProceduralTexture",function(){return _s}),i.d(t,"RawCubeTexture",function(){return bs}),i.d(t,"RawTexture",function(){return je}),i.d(t,"RawTexture3D",function(){return Ts}),i.d(t,"RefractionTexture",function(){return Es}),i.d(t,"VideoTexture",function(){return io}),i.d(t,"HtmlElementTexture",function(){return As}),i.d(t,"_DDSTextureLoader",function(){return qr}),i.d(t,"_ENVTextureLoader",function(){return $r}),i.d(t,"_KTXTextureLoader",function(){return to}),i.d(t,"_TGATextureLoader",function(){return hs}),i.d(t,"CustomProceduralTexture",function(){return ms}),i.d(t,"NoiseProceduralTexture",function(){return ys}),i.d(t,"ProceduralTextureSceneComponent",function(){return fs}),i.d(t,"Scalar",function(){return D.a}),i.d(t,"ToGammaSpace",function(){return o.u}),i.d(t,"ToLinearSpace",function(){return o.v}),i.d(t,"Epsilon",function(){return o.h}),i.d(t,"Color3",function(){return o.e}),i.d(t,"Color4",function(){return o.f}),i.d(t,"Vector2",function(){return o.w}),i.d(t,"Vector3",function(){return o.x}),i.d(t,"Vector4",function(){return o.y}),i.d(t,"Size",function(){return o.r}),i.d(t,"Quaternion",function(){return o.q}),i.d(t,"Matrix",function(){return o.j}),i.d(t,"Plane",function(){return o.n}),i.d(t,"Viewport",function(){return o.z}),i.d(t,"Frustum",function(){return o.i}),i.d(t,"Space",function(){return o.s}),i.d(t,"Axis",function(){return o.c}),i.d(t,"BezierCurve",function(){return o.d}),i.d(t,"Orientation",function(){return o.k}),i.d(t,"Angle",function(){return o.a}),i.d(t,"Arc2",function(){return o.b}),i.d(t,"Path2",function(){return o.l}),i.d(t,"Path3D",function(){return o.m}),i.d(t,"Curve3",function(){return o.g}),i.d(t,"PositionNormalVertex",function(){return o.p}),i.d(t,"PositionNormalTextureVertex",function(){return o.o}),i.d(t,"Tmp",function(){return o.t}),i.d(t,"SphericalHarmonics",function(){return zr.a}),i.d(t,"SphericalPolynomial",function(){return zr.b}),i.d(t,"AbstractMesh",function(){return Fe.a}),i.d(t,"Buffer",function(){return Oi.a}),i.d(t,"VertexBuffer",function(){return Oi.b}),i.d(t,"CSG",function(){return Ns}),i.d(t,"Geometry",function(){return wo.a}),i.d(t,"GroundMesh",function(){return Ii}),i.d(t,"TrailMesh",function(){return Bs}),i.d(t,"InstancedMesh",function(){return Us.a}),i.d(t,"LinesMesh",function(){return Vs.b}),i.d(t,"InstancedLinesMesh",function(){return Vs.a}),i.d(t,"_CreationDataStorage",function(){return fe.b}),i.d(t,"_InstancesBatch",function(){return fe.c}),i.d(t,"Mesh",function(){return fe.a}),i.d(t,"VertexData",function(){return Mi.a}),i.d(t,"MeshBuilder",function(){return Js}),i.d(t,"SimplificationSettings",function(){return $s}),i.d(t,"SimplificationQueue",function(){return ea}),i.d(t,"SimplificationType",function(){return qs}),i.d(t,"SimplicationQueueSceneComponent",function(){return sa}),i.d(t,"Polygon",function(){return Hs}),i.d(t,"PolygonMeshBuilder",function(){return Ws}),i.d(t,"BaseSubMesh",function(){return Os.a}),i.d(t,"SubMesh",function(){return Os.b}),i.d(t,"MeshLODLevel",function(){return aa.a}),i.d(t,"TransformNode",function(){return _r.a}),i.d(t,"BoxBuilder",function(){return Mn.a}),i.d(t,"SphereBuilder",function(){return Ln.a}),i.d(t,"CylinderBuilder",function(){return Fi.a}),i.d(t,"LinesBuilder",function(){return wn.a}),i.d(t,"PlaneBuilder",function(){return fr.a}),i.d(t,"DataBuffer",function(){return ca.a}),i.d(t,"WebGLDataBuffer",function(){return la.a}),i.d(t,"DracoCompression",function(){return Ms}),i.d(t,"DiscBuilder",function(){return Gs}),i.d(t,"RibbonBuilder",function(){return Yo}),i.d(t,"HemisphereBuilder",function(){return Wn}),i.d(t,"TorusBuilder",function(){return wi}),i.d(t,"TorusKnotBuilder",function(){return ks}),i.d(t,"PolygonBuilder",function(){return Xs}),i.d(t,"ShapeBuilder",function(){return Ko}),i.d(t,"LatheBuilder",function(){return Ys}),i.d(t,"GroundBuilder",function(){return Di}),i.d(t,"TubeBuilder",function(){return Ks}),i.d(t,"PolyhedronBuilder",function(){return Vn}),i.d(t,"IcoSphereBuilder",function(){return Qs}),i.d(t,"DecalBuilder",function(){return Zs}),i.d(t,"MorphTarget",function(){return Vo}),i.d(t,"MorphTargetManager",function(){return Go}),i.d(t,"Node",function(){return F.a}),i.d(t,"Database",function(){return ha}),i.d(t,"BaseParticleSystem",function(){return ba}),i.d(t,"GPUParticleSystem",function(){return Ia}),i.d(t,"Particle",function(){return Ta}),i.d(t,"ParticleHelper",function(){return La}),i.d(t,"ParticleSystem",function(){return Ra}),i.d(t,"_IDoNeedToBeInTheBuild",function(){return 42}),i.d(t,"ParticleSystemSet",function(){return Da}),i.d(t,"SolidParticle",function(){return wa}),i.d(t,"ModelShape",function(){return Fa}),i.d(t,"DepthSortedParticle",function(){return Na}),i.d(t,"SolidParticleSystem",function(){return Ua}),i.d(t,"SubEmitterType",function(){return ua}),i.d(t,"SubEmitter",function(){return Ea}),i.d(t,"BoxParticleEmitter",function(){return da}),i.d(t,"ConeParticleEmitter",function(){return fa}),i.d(t,"CylinderParticleEmitter",function(){return pa}),i.d(t,"CylinderDirectedParticleEmitter",function(){return _a}),i.d(t,"HemisphericParticleEmitter",function(){return ga}),i.d(t,"PointParticleEmitter",function(){return ma}),i.d(t,"SphereParticleEmitter",function(){return va}),i.d(t,"SphereDirectedParticleEmitter",function(){return ya}),i.d(t,"PhysicsEngine",function(){return jo}),i.d(t,"PhysicsEngineSceneComponent",function(){return ka}),i.d(t,"PhysicsHelper",function(){return za}),i.d(t,"PhysicsRadialExplosionEventOptions",function(){return Ya}),i.d(t,"PhysicsUpdraftEventOptions",function(){return Ka}),i.d(t,"PhysicsVortexEventOptions",function(){return Qa}),i.d(t,"PhysicsRadialImpulseFalloff",function(){return Va}),i.d(t,"PhysicsUpdraftMode",function(){return Ga}),i.d(t,"PhysicsImpostor",function(){return ko.a}),i.d(t,"PhysicsJoint",function(){return zo.e}),i.d(t,"DistanceJoint",function(){return zo.a}),i.d(t,"MotorEnabledJoint",function(){return zo.d}),i.d(t,"HingeJoint",function(){return zo.c}),i.d(t,"Hinge2Joint",function(){return zo.b}),i.d(t,"CannonJSPlugin",function(){return Wo}),i.d(t,"AmmoJSPlugin",function(){return Qo}),i.d(t,"OimoJSPlugin",function(){return Xo}),i.d(t,"AnaglyphPostProcess",function(){return qt}),i.d(t,"BlackAndWhitePostProcess",function(){return Za}),i.d(t,"BloomEffect",function(){return nc}),i.d(t,"BloomMergePostProcess",function(){return ic}),i.d(t,"BlurPostProcess",function(){return $n}),i.d(t,"ChromaticAberrationPostProcess",function(){return oc}),i.d(t,"CircleOfConfusionPostProcess",function(){return ac}),i.d(t,"ColorCorrectionPostProcess",function(){return lc}),i.d(t,"ConvolutionPostProcess",function(){return hc}),i.d(t,"DepthOfFieldBlurPostProcess",function(){return dc}),i.d(t,"DepthOfFieldEffectBlurLevel",function(){return pc}),i.d(t,"DepthOfFieldEffect",function(){return mc}),i.d(t,"DepthOfFieldMergePostProcessOptions",function(){return _c}),i.d(t,"DepthOfFieldMergePostProcess",function(){return gc}),i.d(t,"DisplayPassPostProcess",function(){return yc}),i.d(t,"ExtractHighlightsPostProcess",function(){return ec}),i.d(t,"FilterPostProcess",function(){return Tc}),i.d(t,"FxaaPostProcess",function(){return xc}),i.d(t,"GrainPostProcess",function(){return Pc}),i.d(t,"HighlightsPostProcess",function(){return Cc}),i.d(t,"ImageProcessingPostProcess",function(){return Ci}),i.d(t,"MotionBlurPostProcess",function(){return wc}),i.d(t,"PassPostProcess",function(){return Yt}),i.d(t,"PassCubePostProcess",function(){return Kt}),i.d(t,"PostProcess",function(){return Ht}),i.d(t,"PostProcessManager",function(){return fi.a}),i.d(t,"RefractionPostProcess",function(){return Nc}),i.d(t,"SharpenPostProcess",function(){return Uc}),i.d(t,"StereoscopicInterlacePostProcess",function(){return ii}),i.d(t,"TonemappingOperator",function(){return el}),i.d(t,"TonemapPostProcess",function(){return tl}),i.d(t,"VolumetricLightScatteringPostProcess",function(){return ol}),i.d(t,"VRDistortionCorrectionPostProcess",function(){return ui}),i.d(t,"VRMultiviewToSingleviewPostProcess",function(){return mi}),i.d(t,"PostProcessRenderEffect",function(){return Ja}),i.d(t,"PostProcessRenderPipeline",function(){return Vc}),i.d(t,"PostProcessRenderPipelineManager",function(){return Gc}),i.d(t,"PostProcessRenderPipelineManagerSceneComponent",function(){return kc}),i.d(t,"DefaultRenderingPipeline",function(){return zc}),i.d(t,"LensRenderingPipeline",function(){return Wc}),i.d(t,"SSAO2RenderingPipeline",function(){return Kc}),i.d(t,"SSAORenderingPipeline",function(){return qc}),i.d(t,"StandardRenderingPipeline",function(){return Jc}),i.d(t,"ReflectionProbe",function(){return qo}),i.d(t,"BoundingBoxRenderer",function(){return sl}),i.d(t,"DepthRenderer",function(){return cl}),i.d(t,"DepthRendererSceneComponent",function(){return ll}),i.d(t,"EdgesRenderer",function(){return fl}),i.d(t,"LineEdgesRenderer",function(){return pl}),i.d(t,"GeometryBufferRenderer",function(){return Ic}),i.d(t,"GeometryBufferRendererSceneComponent",function(){return Dc}),i.d(t,"OutlineRenderer",function(){return ml}),i.d(t,"RenderingGroup",function(){return vl.a}),i.d(t,"RenderingGroupInfo",function(){return pi.a}),i.d(t,"RenderingManager",function(){return pi.b}),i.d(t,"UtilityLayerRenderer",function(){return In.a}),i.d(t,"Scene",function(){return W.a}),i.d(t,"SceneComponentConstants",function(){return Ae.a}),i.d(t,"Stage",function(){return Ae.b}),i.d(t,"Sprite",function(){return yl}),i.d(t,"SpriteManager",function(){return xl}),i.d(t,"SpriteSceneComponent",function(){return bl}),i.d(t,"_AlphaState",function(){return Rl.a}),i.d(t,"_DepthCullingState",function(){return Rl.b}),i.d(t,"_StencilState",function(){return Rl.c}),i.d(t,"AndOrNotEvaluator",function(){return Pl.a}),i.d(t,"AssetTaskState",function(){return Al}),i.d(t,"AbstractAssetTask",function(){return Cl}),i.d(t,"AssetsProgressEvent",function(){return Ml}),i.d(t,"MeshAssetTask",function(){return Ol}),i.d(t,"TextFileAssetTask",function(){return Il}),i.d(t,"BinaryFileAssetTask",function(){return Dl}),i.d(t,"ImageAssetTask",function(){return Ll}),i.d(t,"TextureAssetTask",function(){return wl}),i.d(t,"CubeTextureAssetTask",function(){return Fl}),i.d(t,"HDRCubeTextureAssetTask",function(){return Nl}),i.d(t,"EquiRectangularCubeTextureAssetTask",function(){return Bl}),i.d(t,"AssetsManager",function(){return Ul}),i.d(t,"DDSTools",function(){return Qr}),i.d(t,"expandToProperty",function(){return L.b}),i.d(t,"serialize",function(){return L.c}),i.d(t,"serializeAsTexture",function(){return L.m}),i.d(t,"serializeAsColor3",function(){return L.e}),i.d(t,"serializeAsFresnelParameters",function(){return L.h}),i.d(t,"serializeAsVector2",function(){return L.n}),i.d(t,"serializeAsVector3",function(){return L.o}),i.d(t,"serializeAsMeshReference",function(){return L.k}),i.d(t,"serializeAsColorCurves",function(){return L.g}),i.d(t,"serializeAsColor4",function(){return L.f}),i.d(t,"serializeAsImageProcessingConfiguration",function(){return L.i}),i.d(t,"serializeAsQuaternion",function(){return L.l}),i.d(t,"serializeAsMatrix",function(){return L.j}),i.d(t,"serializeAsCameraReference",function(){return L.d}),i.d(t,"SerializationHelper",function(){return L.a}),i.d(t,"Deferred",function(){return Vl}),i.d(t,"EnvironmentTextureTools",function(){return Jr}),i.d(t,"MeshExploder",function(){return Gl}),i.d(t,"FilesInput",function(){return kl}),i.d(t,"KhronosTextureContainer",function(){return eo}),i.d(t,"EventState",function(){return r.a}),i.d(t,"Observer",function(){return r.d}),i.d(t,"MultiObserver",function(){return r.b}),i.d(t,"Observable",function(){return r.c}),i.d(t,"PerformanceMonitor",function(){return zl.a}),i.d(t,"RollingAverage",function(){return zl.b}),i.d(t,"PromisePolyfill",function(){return jl.a}),i.d(t,"SceneOptimization",function(){return Hl}),i.d(t,"TextureOptimization",function(){return Wl}),i.d(t,"HardwareScalingOptimization",function(){return Xl}),i.d(t,"ShadowsOptimization",function(){return Yl}),i.d(t,"PostProcessesOptimization",function(){return Kl}),i.d(t,"LensFlaresOptimization",function(){return Ql}),i.d(t,"CustomOptimization",function(){return ql}),i.d(t,"ParticlesOptimization",function(){return Zl}),i.d(t,"RenderTargetsOptimization",function(){return Jl}),i.d(t,"MergeMeshesOptimization",function(){return $l}),i.d(t,"SceneOptimizerOptions",function(){return eu}),i.d(t,"SceneOptimizer",function(){return tu}),i.d(t,"SceneSerializer",function(){return ou}),i.d(t,"SmartArray",function(){return kt.a}),i.d(t,"SmartArrayNoDuplicate",function(){return kt.b}),i.d(t,"StringDictionary",function(){return gt.a}),i.d(t,"Tags",function(){return su.a}),i.d(t,"TextureTools",function(){return au}),i.d(t,"TGATools",function(){return us}),i.d(t,"ColorGradient",function(){return ye.c}),i.d(t,"Color3Gradient",function(){return ye.b}),i.d(t,"FactorGradient",function(){return ye.d}),i.d(t,"LoadFileError",function(){return ye.e}),i.d(t,"RetryStrategy",function(){return ye.g}),i.d(t,"Tools",function(){return ye.h}),i.d(t,"PerfCounter",function(){return ye.f}),i.d(t,"className",function(){return ye.i}),i.d(t,"AsyncLoop",function(){return ye.a}),i.d(t,"VideoRecorder",function(){return cu}),i.d(t,"JoystickAxis",function(){return _t}),i.d(t,"VirtualJoystick",function(){return mt}),i.d(t,"WorkerPool",function(){return xs}),i.d(t,"Logger",function(){return p.a}),i.d(t,"_TypeStore",function(){return s.a}),i.d(t,"FilesInputStore",function(){return mn.a}),i.d(t,"DeepCopier",function(){return S.a}),i.d(t,"PivotTools",function(){return Be.a}),i.d(t,"PrecisionDate",function(){return X.a}),i.d(t,"ScreenshotTools",function(){return lu}),i.d(t,"WebRequest",function(){return gs.a}),i.d(t,"InspectableType",function(){return Sl}),i.d(t,"CubeMapToSphericalPolynomialTools",function(){return jr.a}),i.d(t,"HDRTools",function(){return Bo}),i.d(t,"PanoramaToCubeMapTools",function(){return No})},function(e,t,i){"use strict";var n="fogFragmentDeclaration",r="#ifdef FOG\n#define FOGMODE_NONE 0.\n#define FOGMODE_EXP 1.\n#define FOGMODE_EXP2 2.\n#define FOGMODE_LINEAR 3.\n#define E 2.71828\nuniform vec4 vFogInfos;\nuniform vec3 vFogColor;\nvarying vec3 vFogDistance;\nfloat CalcFogFactor()\n{\nfloat fogCoeff=1.0;\nfloat fogStart=vFogInfos.y;\nfloat fogEnd=vFogInfos.z;\nfloat fogDensity=vFogInfos.w;\nfloat fogDistance=length(vFogDistance);\nif (FOGMODE_LINEAR == vFogInfos.x)\n{\nfogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);\n}\nelse if (FOGMODE_EXP == vFogInfos.x)\n{\nfogCoeff=1.0/pow(E,fogDistance*fogDensity);\n}\nelse if (FOGMODE_EXP2 == vFogInfos.x)\n{\nfogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);\n}\nreturn clamp(fogCoeff,0.0,1.0);\n}\n#endif";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){"use strict";var n="#ifdef FOG\nfloat fog=CalcFogFactor();\ncolor.rgb=fog*color.rgb+(1.0-fog)*vFogColor;\n#endif";i(5).a.IncludesShadersStore.fogFragment=n},function(e,t,i){"use strict";var n="fogVertexDeclaration",r="#ifdef FOG\nvarying vec3 vFogDistance;\n#endif";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){"use strict";var n="morphTargetsVertexGlobalDeclaration",r="#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#endif";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){"use strict";var n="morphTargetsVertexDeclaration",r="#ifdef MORPHTARGETS\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#endif";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){"use strict";var n="morphTargetsVertex",r="#ifdef MORPHTARGETS\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#endif";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){"use strict";i.d(t,"a",function(){return n});var n=function(){function e(){}return e.Eval=function(t,i){return"true"===(t=t.match(/\([^\(\)]*\)/g)?t.replace(/\([^\(\)]*\)/g,function(t){return t=t.slice(1,t.length-1),e._HandleParenthesisContent(t,i)}):e._HandleParenthesisContent(t,i))||"false"!==t&&e.Eval(t,i)},e._HandleParenthesisContent=function(t,i){var n;i=i||function(e){return"true"===e};var r=t.split("||");for(var o in r)if(r.hasOwnProperty(o)){var s=e._SimplifyNegation(r[o].trim()),a=s.split("&&");if(a.length>1)for(var c=0;c=this._sampleCount||e>=this._samples.length)return 0;var t=this._wrapPosition(this._pos-1);return this._samples[this._wrapPosition(t-e)]},e.prototype.isSaturated=function(){return this._sampleCount>=this._samples.length},e.prototype.reset=function(){this.average=0,this.variance=0,this._sampleCount=0,this._pos=0,this._m2=0},e.prototype._wrapPosition=function(e){var t=this._samples.length;return(e%t+t)%t},e}()},function(e,t,i){"use strict";i.d(t,"a",function(){return a});var n,r=i(9);!function(e){e[e.Pending=0]="Pending",e[e.Fulfilled=1]="Fulfilled",e[e.Rejected=2]="Rejected"}(n||(n={}));var o=function(){return function(){this.count=0,this.target=0,this.results=[]}}(),s=function(){function e(e){var t=this;if(this._state=n.Pending,this._children=new Array,this._rejectWasConsumed=!1,e)try{e(function(e){t._resolve(e)},function(e){t._reject(e)})}catch(e){this._reject(e)}}return Object.defineProperty(e.prototype,"_result",{get:function(){return this._resultValue},set:function(e){this._resultValue=e,this._parent&&void 0===this._parent._result&&(this._parent._result=e)},enumerable:!0,configurable:!0}),e.prototype.catch=function(e){return this.then(void 0,e)},e.prototype.then=function(t,i){var o=this,s=new e;return s._onFulfilled=t,s._onRejected=i,this._children.push(s),s._parent=this,this._state!==n.Pending&&r.h.SetImmediate(function(){if(o._state===n.Fulfilled||o._rejectWasConsumed){var e=s._resolve(o._result);if(null!=e)if(void 0!==e._state){var t=e;s._children.push(t),t._parent=s,s=t}else s._result=e}else s._reject(o._reason)}),s},e.prototype._moveChildren=function(e){var t,i=this;if((t=this._children).push.apply(t,e.splice(0,e.length)),this._children.forEach(function(e){e._parent=i}),this._state===n.Fulfilled)for(var r=0,o=this._children;ri._alphaIndex?1:t._alphaIndext._distanceToCamera?-1:0},e.frontToBackSortCompare=function(e,t){return e._distanceToCamerat._distanceToCamera?1:0},e.prototype.prepare=function(){this._opaqueSubMeshes.reset(),this._transparentSubMeshes.reset(),this._alphaTestSubMeshes.reset(),this._depthOnlySubMeshes.reset(),this._particleSystems.reset(),this._spriteManagers.reset(),this._edgesRenderers.reset()},e.prototype.dispose=function(){this._opaqueSubMeshes.dispose(),this._transparentSubMeshes.dispose(),this._alphaTestSubMeshes.dispose(),this._depthOnlySubMeshes.dispose(),this._particleSystems.dispose(),this._spriteManagers.dispose(),this._edgesRenderers.dispose()},e.prototype.dispatch=function(e,t,i){void 0===t&&(t=e.getMesh()),void 0===i&&(i=e.getMaterial()),null!=i&&(i.needAlphaBlendingForMesh(t)?this._transparentSubMeshes.push(e):i.needAlphaTesting()?(i.needDepthPrePass&&this._depthOnlySubMeshes.push(e),this._alphaTestSubMeshes.push(e)):(i.needDepthPrePass&&this._depthOnlySubMeshes.push(e),this._opaqueSubMeshes.push(e)),t._renderingGroup=this,t._edgesRenderer&&t._edgesRenderer.isEnabled&&this._edgesRenderers.push(t._edgesRenderer))},e.prototype.dispatchSprites=function(e){this._spriteManagers.push(e)},e.prototype.dispatchParticles=function(e){this._particleSystems.push(e)},e.prototype._renderParticles=function(e){if(0!==this._particleSystems.length){var t=this._scene.activeCamera;this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);for(var i=0;i\nvoid main(void) {\n#include\n#ifdef VERTEXCOLOR\ngl_FragColor=vColor;\n#else\ngl_FragColor=color;\n#endif\n}";n.a.ShadersStore[r]=o},function(e,t,i){"use strict";var n=i(5),r=(i(67),i(96),i(68),i(69),i(70),i(90),"colorVertexShader"),o="\nattribute vec3 position;\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n\n#include\nuniform mat4 viewProjection;\n\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\nvoid main(void) {\n#include\n#include\nvec4 worldPos=finalWorld*vec4(position,1.0);\ngl_Position=viewProjection*worldPos;\n#include\n#ifdef VERTEXCOLOR\n\nvColor=color;\n#endif\n}";n.a.ShadersStore[r]=o},function(e,t,i){"use strict";(function(e){i.d(t,"b",function(){return u}),i.d(t,"a",function(){return h});var n=i(1),r=i(6),o=i(10),s=i(92),a=i(26),c=i(3),l=i(78),u=function(){return function(){this.renderWidth=512,this.renderHeight=256,this.textureSize=512,this.deterministicLockstep=!1,this.lockstepMaxSteps=4}}(),h=function(t){function i(i){void 0===i&&(i=new u);var n=t.call(this,null)||this;void 0===i.deterministicLockstep&&(i.deterministicLockstep=!1),void 0===i.lockstepMaxSteps&&(i.lockstepMaxSteps=4),n._options=i,n._caps=new o.c,n._caps.maxTexturesImageUnits=16,n._caps.maxVertexTextureImageUnits=16,n._caps.maxTextureSize=512,n._caps.maxCubemapTextureSize=512,n._caps.maxRenderTextureSize=512,n._caps.maxVertexAttribs=16,n._caps.maxVaryingVectors=16,n._caps.maxFragmentUniformVectors=16,n._caps.maxVertexUniformVectors=16,n._caps.standardDerivatives=!1,n._caps.astc=null,n._caps.s3tc=null,n._caps.pvrtc=null,n._caps.etc1=null,n._caps.etc2=null,n._caps.textureAnisotropicFilterExtension=null,n._caps.maxAnisotropy=0,n._caps.uintIndices=!1,n._caps.fragmentDepthSupported=!1,n._caps.highPrecisionShaderSupported=!0,n._caps.colorBufferFloat=!1,n._caps.textureFloat=!1,n._caps.textureFloatLinearFiltering=!1,n._caps.textureFloatRender=!1,n._caps.textureHalfFloat=!1,n._caps.textureHalfFloatLinearFiltering=!1,n._caps.textureHalfFloatRender=!1,n._caps.textureLOD=!1,n._caps.drawBuffersExtension=!1,n._caps.depthTextureExtension=!1,n._caps.vertexArrayObject=!1,n._caps.instancedArrays=!1,r.a.Log("Babylon.js v"+o.b.Version+" - Null engine");var s="undefined"!=typeof self?self:void 0!==e?e:window;return"undefined"==typeof URL&&(s.URL={createObjectURL:function(){},revokeObjectURL:function(){}}),"undefined"==typeof Blob&&(s.Blob=function(){}),n}return n.d(i,t),i.prototype.isDeterministicLockStep=function(){return this._options.deterministicLockstep},i.prototype.getLockstepMaxSteps=function(){return this._options.lockstepMaxSteps},i.prototype.getHardwareScalingLevel=function(){return 1},i.prototype.createVertexBuffer=function(e){var t=new l.a;return t.references=1,t},i.prototype.createIndexBuffer=function(e){var t=new l.a;return t.references=1,t},i.prototype.clear=function(e,t,i,n){void 0===n&&(n=!1)},i.prototype.getRenderWidth=function(e){return void 0===e&&(e=!1),!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._options.renderWidth},i.prototype.getRenderHeight=function(e){return void 0===e&&(e=!1),!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._options.renderHeight},i.prototype.setViewport=function(e,t,i){this._cachedViewport=e},i.prototype.createShaderProgram=function(e,t,i,n,r){return{__SPECTOR_rebuildProgram:null}},i.prototype.getUniforms=function(e,t){return[]},i.prototype.getAttributes=function(e,t){return[]},i.prototype.bindSamplers=function(e){this._currentEffect=null},i.prototype.enableEffect=function(e){this._currentEffect=e,e.onBind&&e.onBind(e),e._onBindObservable&&e._onBindObservable.notifyObservers(e)},i.prototype.setState=function(e,t,i,n){void 0===t&&(t=0),void 0===n&&(n=!1)},i.prototype.setIntArray=function(e,t){},i.prototype.setIntArray2=function(e,t){},i.prototype.setIntArray3=function(e,t){},i.prototype.setIntArray4=function(e,t){},i.prototype.setFloatArray=function(e,t){},i.prototype.setFloatArray2=function(e,t){},i.prototype.setFloatArray3=function(e,t){},i.prototype.setFloatArray4=function(e,t){},i.prototype.setArray=function(e,t){},i.prototype.setArray2=function(e,t){},i.prototype.setArray3=function(e,t){},i.prototype.setArray4=function(e,t){},i.prototype.setMatrices=function(e,t){},i.prototype.setMatrix=function(e,t){},i.prototype.setMatrix3x3=function(e,t){},i.prototype.setMatrix2x2=function(e,t){},i.prototype.setFloat=function(e,t){},i.prototype.setFloat2=function(e,t,i){},i.prototype.setFloat3=function(e,t,i,n){},i.prototype.setBool=function(e,t){},i.prototype.setFloat4=function(e,t,i,n,r){},i.prototype.setColor3=function(e,t){},i.prototype.setColor4=function(e,t,i){},i.prototype.setAlphaMode=function(e,t){void 0===t&&(t=!1),this._alphaMode!==e&&(this._alphaState.alphaBlend=e!==c.a.ALPHA_DISABLE,t||this.setDepthWrite(e===c.a.ALPHA_DISABLE),this._alphaMode=e)},i.prototype.bindBuffers=function(e,t,i){},i.prototype.wipeCaches=function(e){this.preventCacheWipeBetweenFrames||(this.resetTextureCache(),this._currentEffect=null,e&&(this._currentProgram=null,this._stencilState.reset(),this._depthCullingState.reset(),this._alphaState.reset()),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null)},i.prototype.draw=function(e,t,i,n){},i.prototype.drawElementsType=function(e,t,i,n){},i.prototype.drawArraysType=function(e,t,i,n){},i.prototype._createTexture=function(){return{}},i.prototype._releaseTexture=function(e){},i.prototype.createTexture=function(e,t,i,n,r,o,s,l,u,h){void 0===r&&(r=c.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===o&&(o=null),void 0===s&&(s=null),void 0===l&&(l=null);var d=new a.a(this,a.a.DATASOURCE_URL),f=String(e);return d.url=f,d.generateMipMaps=!t,d.samplingMode=r,d.invertY=i,d.baseWidth=this._options.textureSize,d.baseHeight=this._options.textureSize,d.width=this._options.textureSize,d.height=this._options.textureSize,h&&(d.format=h),d.isReady=!0,o&&o(),this._internalTexturesCache.push(d),d},i.prototype.createRenderTargetTexture=function(e,t){var i=new s.a;void 0!==t&&"object"==typeof t?(i.generateMipMaps=t.generateMipMaps,i.generateDepthBuffer=void 0===t.generateDepthBuffer||t.generateDepthBuffer,i.generateStencilBuffer=i.generateDepthBuffer&&t.generateStencilBuffer,i.type=void 0===t.type?c.a.TEXTURETYPE_UNSIGNED_INT:t.type,i.samplingMode=void 0===t.samplingMode?c.a.TEXTURE_TRILINEAR_SAMPLINGMODE:t.samplingMode):(i.generateMipMaps=t,i.generateDepthBuffer=!0,i.generateStencilBuffer=!1,i.type=c.a.TEXTURETYPE_UNSIGNED_INT,i.samplingMode=c.a.TEXTURE_TRILINEAR_SAMPLINGMODE);var n=new a.a(this,a.a.DATASOURCE_RENDERTARGET),r=e.width||e,o=e.height||e;return n._depthStencilBuffer={},n._framebuffer={},n.baseWidth=r,n.baseHeight=o,n.width=r,n.height=o,n.isReady=!0,n.samples=1,n.generateMipMaps=!!i.generateMipMaps,n.samplingMode=i.samplingMode,n.type=i.type,n._generateDepthBuffer=i.generateDepthBuffer,n._generateStencilBuffer=!!i.generateStencilBuffer,this._internalTexturesCache.push(n),n},i.prototype.updateTextureSamplingMode=function(e,t){t.samplingMode=e},i.prototype.bindFramebuffer=function(e,t,i,n,r){this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._currentFramebuffer=e._MSAAFramebuffer?e._MSAAFramebuffer:e._framebuffer,this._cachedViewport&&!r&&this.setViewport(this._cachedViewport,i,n)},i.prototype.unBindFramebuffer=function(e,t,i){void 0===t&&(t=!1),this._currentRenderTarget=null,i&&(e._MSAAFramebuffer&&(this._currentFramebuffer=e._framebuffer),i()),this._currentFramebuffer=null},i.prototype.createDynamicVertexBuffer=function(e){var t=new l.a;return t.references=1,t.capacity=1,t},i.prototype.updateDynamicTexture=function(e,t,i,n,r){void 0===n&&(n=!1)},i.prototype.areAllEffectsReady=function(){return!0},i.prototype.getError=function(){return 0},i.prototype._getUnpackAlignement=function(){return 1},i.prototype._unpackFlipY=function(e){},i.prototype.updateDynamicIndexBuffer=function(e,t,i){void 0===i&&(i=0)},i.prototype.updateDynamicVertexBuffer=function(e,t,i,n){},i.prototype._bindTextureDirectly=function(e,t){return this._boundTexturesCache[this._activeChannel]!==t&&(this._boundTexturesCache[this._activeChannel]=t,!0)},i.prototype._bindTexture=function(e,t){e<0||this._bindTextureDirectly(0,t)},i.prototype._releaseBuffer=function(e){return e.references--,0===e.references},i.prototype.releaseEffects=function(){},i.prototype.displayLoadingUI=function(){},i.prototype.hideLoadingUI=function(){},i.prototype._uploadCompressedDataToTextureDirectly=function(e,t,i,n,r,o,s){void 0===o&&(o=0),void 0===s&&(s=0)},i.prototype._uploadDataToTextureDirectly=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0)},i.prototype._uploadArrayBufferViewToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0)},i.prototype._uploadImageToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0)},i}(o.b)}).call(this,i(119))},function(e,t,i){"use strict";i.r(t),function(e){i.d(t,"Debug",function(){return l});var n=i(97),r=i(74);i.d(t,"AbstractScene",function(){return n.AbstractScene}),i.d(t,"KeepAssets",function(){return n.KeepAssets}),i.d(t,"AssetContainer",function(){return n.AssetContainer}),i.d(t,"Node",function(){return n.Node}),i.d(t,"Scene",function(){return n.Scene}),i.d(t,"SceneComponentConstants",function(){return n.SceneComponentConstants}),i.d(t,"Stage",function(){return n.Stage}),i.d(t,"Action",function(){return n.Action}),i.d(t,"ActionEvent",function(){return n.ActionEvent}),i.d(t,"ActionManager",function(){return n.ActionManager}),i.d(t,"Condition",function(){return n.Condition}),i.d(t,"ValueCondition",function(){return n.ValueCondition}),i.d(t,"PredicateCondition",function(){return n.PredicateCondition}),i.d(t,"StateCondition",function(){return n.StateCondition}),i.d(t,"SwitchBooleanAction",function(){return n.SwitchBooleanAction}),i.d(t,"SetStateAction",function(){return n.SetStateAction}),i.d(t,"SetValueAction",function(){return n.SetValueAction}),i.d(t,"IncrementValueAction",function(){return n.IncrementValueAction}),i.d(t,"PlayAnimationAction",function(){return n.PlayAnimationAction}),i.d(t,"StopAnimationAction",function(){return n.StopAnimationAction}),i.d(t,"DoNothingAction",function(){return n.DoNothingAction}),i.d(t,"CombineAction",function(){return n.CombineAction}),i.d(t,"ExecuteCodeAction",function(){return n.ExecuteCodeAction}),i.d(t,"SetParentAction",function(){return n.SetParentAction}),i.d(t,"PlaySoundAction",function(){return n.PlaySoundAction}),i.d(t,"StopSoundAction",function(){return n.StopSoundAction}),i.d(t,"InterpolateValueAction",function(){return n.InterpolateValueAction}),i.d(t,"Animatable",function(){return n.Animatable}),i.d(t,"_IAnimationState",function(){return n._IAnimationState}),i.d(t,"Animation",function(){return n.Animation}),i.d(t,"TargetedAnimation",function(){return n.TargetedAnimation}),i.d(t,"AnimationGroup",function(){return n.AnimationGroup}),i.d(t,"AnimationPropertiesOverride",function(){return n.AnimationPropertiesOverride}),i.d(t,"EasingFunction",function(){return n.EasingFunction}),i.d(t,"CircleEase",function(){return n.CircleEase}),i.d(t,"BackEase",function(){return n.BackEase}),i.d(t,"BounceEase",function(){return n.BounceEase}),i.d(t,"CubicEase",function(){return n.CubicEase}),i.d(t,"ElasticEase",function(){return n.ElasticEase}),i.d(t,"ExponentialEase",function(){return n.ExponentialEase}),i.d(t,"PowerEase",function(){return n.PowerEase}),i.d(t,"QuadraticEase",function(){return n.QuadraticEase}),i.d(t,"QuarticEase",function(){return n.QuarticEase}),i.d(t,"QuinticEase",function(){return n.QuinticEase}),i.d(t,"SineEase",function(){return n.SineEase}),i.d(t,"BezierCurveEase",function(){return n.BezierCurveEase}),i.d(t,"RuntimeAnimation",function(){return n.RuntimeAnimation}),i.d(t,"AnimationEvent",function(){return n.AnimationEvent}),i.d(t,"AnimationKeyInterpolation",function(){return n.AnimationKeyInterpolation}),i.d(t,"AnimationRange",function(){return n.AnimationRange}),i.d(t,"Analyser",function(){return n.Analyser}),i.d(t,"AudioEngine",function(){return n.AudioEngine}),i.d(t,"AudioSceneComponent",function(){return n.AudioSceneComponent}),i.d(t,"Sound",function(){return n.Sound}),i.d(t,"SoundTrack",function(){return n.SoundTrack}),i.d(t,"WeightedSound",function(){return n.WeightedSound}),i.d(t,"Bone",function(){return n.Bone}),i.d(t,"BoneIKController",function(){return n.BoneIKController}),i.d(t,"BoneLookController",function(){return n.BoneLookController}),i.d(t,"Skeleton",function(){return n.Skeleton}),i.d(t,"CameraInputTypes",function(){return n.CameraInputTypes}),i.d(t,"CameraInputsManager",function(){return n.CameraInputsManager}),i.d(t,"Camera",function(){return n.Camera}),i.d(t,"TargetCamera",function(){return n.TargetCamera}),i.d(t,"FreeCamera",function(){return n.FreeCamera}),i.d(t,"FreeCameraInputsManager",function(){return n.FreeCameraInputsManager}),i.d(t,"TouchCamera",function(){return n.TouchCamera}),i.d(t,"ArcRotateCamera",function(){return n.ArcRotateCamera}),i.d(t,"ArcRotateCameraInputsManager",function(){return n.ArcRotateCameraInputsManager}),i.d(t,"DeviceOrientationCamera",function(){return n.DeviceOrientationCamera}),i.d(t,"FlyCamera",function(){return n.FlyCamera}),i.d(t,"FlyCameraInputsManager",function(){return n.FlyCameraInputsManager}),i.d(t,"FollowCamera",function(){return n.FollowCamera}),i.d(t,"ArcFollowCamera",function(){return n.ArcFollowCamera}),i.d(t,"GamepadCamera",function(){return n.GamepadCamera}),i.d(t,"UniversalCamera",function(){return n.UniversalCamera}),i.d(t,"VirtualJoysticksCamera",function(){return n.VirtualJoysticksCamera}),i.d(t,"Collider",function(){return n.Collider}),i.d(t,"DefaultCollisionCoordinator",function(){return n.DefaultCollisionCoordinator}),i.d(t,"PickingInfo",function(){return n.PickingInfo}),i.d(t,"IntersectionInfo",function(){return n.IntersectionInfo}),i.d(t,"_MeshCollisionData",function(){return n._MeshCollisionData}),i.d(t,"BoundingBox",function(){return n.BoundingBox}),i.d(t,"BoundingInfo",function(){return n.BoundingInfo}),i.d(t,"BoundingSphere",function(){return n.BoundingSphere}),i.d(t,"Ray",function(){return n.Ray}),i.d(t,"AxesViewer",function(){return n.AxesViewer}),i.d(t,"BoneAxesViewer",function(){return n.BoneAxesViewer}),i.d(t,"DebugLayer",function(){return n.DebugLayer}),i.d(t,"PhysicsViewer",function(){return n.PhysicsViewer}),i.d(t,"RayHelper",function(){return n.RayHelper}),i.d(t,"SkeletonViewer",function(){return n.SkeletonViewer}),i.d(t,"Constants",function(){return n.Constants}),i.d(t,"InstancingAttributeInfo",function(){return n.InstancingAttributeInfo}),i.d(t,"DepthTextureCreationOptions",function(){return n.DepthTextureCreationOptions}),i.d(t,"EngineCapabilities",function(){return n.EngineCapabilities}),i.d(t,"Engine",function(){return n.Engine}),i.d(t,"EngineStore",function(){return n.EngineStore}),i.d(t,"NullEngineOptions",function(){return n.NullEngineOptions}),i.d(t,"NullEngine",function(){return n.NullEngine}),i.d(t,"WebGLPipelineContext",function(){return n.WebGLPipelineContext}),i.d(t,"KeyboardEventTypes",function(){return n.KeyboardEventTypes}),i.d(t,"KeyboardInfo",function(){return n.KeyboardInfo}),i.d(t,"KeyboardInfoPre",function(){return n.KeyboardInfoPre}),i.d(t,"PointerEventTypes",function(){return n.PointerEventTypes}),i.d(t,"PointerInfoBase",function(){return n.PointerInfoBase}),i.d(t,"PointerInfoPre",function(){return n.PointerInfoPre}),i.d(t,"PointerInfo",function(){return n.PointerInfo}),i.d(t,"ClipboardEventTypes",function(){return n.ClipboardEventTypes}),i.d(t,"ClipboardInfo",function(){return n.ClipboardInfo}),i.d(t,"DaydreamController",function(){return n.DaydreamController}),i.d(t,"GearVRController",function(){return n.GearVRController}),i.d(t,"GenericController",function(){return n.GenericController}),i.d(t,"OculusTouchController",function(){return n.OculusTouchController}),i.d(t,"PoseEnabledControllerType",function(){return n.PoseEnabledControllerType}),i.d(t,"PoseEnabledControllerHelper",function(){return n.PoseEnabledControllerHelper}),i.d(t,"PoseEnabledController",function(){return n.PoseEnabledController}),i.d(t,"ViveController",function(){return n.ViveController}),i.d(t,"WebVRController",function(){return n.WebVRController}),i.d(t,"WindowsMotionController",function(){return n.WindowsMotionController}),i.d(t,"StickValues",function(){return n.StickValues}),i.d(t,"Gamepad",function(){return n.Gamepad}),i.d(t,"GenericPad",function(){return n.GenericPad}),i.d(t,"GamepadManager",function(){return n.GamepadManager}),i.d(t,"GamepadSystemSceneComponent",function(){return n.GamepadSystemSceneComponent}),i.d(t,"Xbox360Button",function(){return n.Xbox360Button}),i.d(t,"Xbox360Dpad",function(){return n.Xbox360Dpad}),i.d(t,"Xbox360Pad",function(){return n.Xbox360Pad}),i.d(t,"AxisDragGizmo",function(){return n.AxisDragGizmo}),i.d(t,"AxisScaleGizmo",function(){return n.AxisScaleGizmo}),i.d(t,"BoundingBoxGizmo",function(){return n.BoundingBoxGizmo}),i.d(t,"Gizmo",function(){return n.Gizmo}),i.d(t,"GizmoManager",function(){return n.GizmoManager}),i.d(t,"PlaneRotationGizmo",function(){return n.PlaneRotationGizmo}),i.d(t,"PositionGizmo",function(){return n.PositionGizmo}),i.d(t,"RotationGizmo",function(){return n.RotationGizmo}),i.d(t,"ScaleGizmo",function(){return n.ScaleGizmo}),i.d(t,"LightGizmo",function(){return n.LightGizmo}),i.d(t,"EnvironmentHelper",function(){return n.EnvironmentHelper}),i.d(t,"PhotoDome",function(){return n.PhotoDome}),i.d(t,"_forceSceneHelpersToBundle",function(){return n._forceSceneHelpersToBundle}),i.d(t,"VideoDome",function(){return n.VideoDome}),i.d(t,"EngineInstrumentation",function(){return n.EngineInstrumentation}),i.d(t,"SceneInstrumentation",function(){return n.SceneInstrumentation}),i.d(t,"_TimeToken",function(){return n._TimeToken}),i.d(t,"EffectLayer",function(){return n.EffectLayer}),i.d(t,"EffectLayerSceneComponent",function(){return n.EffectLayerSceneComponent}),i.d(t,"GlowLayer",function(){return n.GlowLayer}),i.d(t,"HighlightLayer",function(){return n.HighlightLayer}),i.d(t,"Layer",function(){return n.Layer}),i.d(t,"LayerSceneComponent",function(){return n.LayerSceneComponent}),i.d(t,"LensFlare",function(){return n.LensFlare}),i.d(t,"LensFlareSystem",function(){return n.LensFlareSystem}),i.d(t,"LensFlareSystemSceneComponent",function(){return n.LensFlareSystemSceneComponent}),i.d(t,"Light",function(){return n.Light}),i.d(t,"ShadowLight",function(){return n.ShadowLight}),i.d(t,"DirectionalLight",function(){return n.DirectionalLight}),i.d(t,"HemisphericLight",function(){return n.HemisphericLight}),i.d(t,"PointLight",function(){return n.PointLight}),i.d(t,"SpotLight",function(){return n.SpotLight}),i.d(t,"DefaultLoadingScreen",function(){return n.DefaultLoadingScreen}),i.d(t,"SceneLoaderProgressEvent",function(){return n.SceneLoaderProgressEvent}),i.d(t,"SceneLoader",function(){return n.SceneLoader}),i.d(t,"SceneLoaderFlags",function(){return n.SceneLoaderFlags}),i.d(t,"ColorCurves",function(){return n.ColorCurves}),i.d(t,"EffectFallbacks",function(){return n.EffectFallbacks}),i.d(t,"EffectCreationOptions",function(){return n.EffectCreationOptions}),i.d(t,"Effect",function(){return n.Effect}),i.d(t,"FresnelParameters",function(){return n.FresnelParameters}),i.d(t,"ImageProcessingConfigurationDefines",function(){return n.ImageProcessingConfigurationDefines}),i.d(t,"ImageProcessingConfiguration",function(){return n.ImageProcessingConfiguration}),i.d(t,"Material",function(){return n.Material}),i.d(t,"MaterialDefines",function(){return n.MaterialDefines}),i.d(t,"MaterialHelper",function(){return n.MaterialHelper}),i.d(t,"MultiMaterial",function(){return n.MultiMaterial}),i.d(t,"PushMaterial",function(){return n.PushMaterial}),i.d(t,"ShaderMaterial",function(){return n.ShaderMaterial}),i.d(t,"StandardMaterialDefines",function(){return n.StandardMaterialDefines}),i.d(t,"StandardMaterial",function(){return n.StandardMaterial}),i.d(t,"BaseTexture",function(){return n.BaseTexture}),i.d(t,"CubeTexture",function(){return n.CubeTexture}),i.d(t,"EquiRectangularCubeTexture",function(){return n.EquiRectangularCubeTexture}),i.d(t,"HDRCubeTexture",function(){return n.HDRCubeTexture}),i.d(t,"InternalTexture",function(){return n.InternalTexture}),i.d(t,"MirrorTexture",function(){return n.MirrorTexture}),i.d(t,"MultiRenderTarget",function(){return n.MultiRenderTarget}),i.d(t,"RenderTargetTexture",function(){return n.RenderTargetTexture}),i.d(t,"Texture",function(){return n.Texture}),i.d(t,"UniformBuffer",function(){return n.UniformBuffer}),i.d(t,"MaterialFlags",function(){return n.MaterialFlags}),i.d(t,"Scalar",function(){return n.Scalar}),i.d(t,"ToGammaSpace",function(){return n.ToGammaSpace}),i.d(t,"ToLinearSpace",function(){return n.ToLinearSpace}),i.d(t,"Epsilon",function(){return n.Epsilon}),i.d(t,"Color3",function(){return n.Color3}),i.d(t,"Color4",function(){return n.Color4}),i.d(t,"Vector2",function(){return n.Vector2}),i.d(t,"Vector3",function(){return n.Vector3}),i.d(t,"Vector4",function(){return n.Vector4}),i.d(t,"Size",function(){return n.Size}),i.d(t,"Quaternion",function(){return n.Quaternion}),i.d(t,"Matrix",function(){return n.Matrix}),i.d(t,"Plane",function(){return n.Plane}),i.d(t,"Viewport",function(){return n.Viewport}),i.d(t,"Frustum",function(){return n.Frustum}),i.d(t,"Space",function(){return n.Space}),i.d(t,"Axis",function(){return n.Axis}),i.d(t,"BezierCurve",function(){return n.BezierCurve}),i.d(t,"Orientation",function(){return n.Orientation}),i.d(t,"Angle",function(){return n.Angle}),i.d(t,"Arc2",function(){return n.Arc2}),i.d(t,"Path2",function(){return n.Path2}),i.d(t,"Path3D",function(){return n.Path3D}),i.d(t,"Curve3",function(){return n.Curve3}),i.d(t,"PositionNormalVertex",function(){return n.PositionNormalVertex}),i.d(t,"PositionNormalTextureVertex",function(){return n.PositionNormalTextureVertex}),i.d(t,"Tmp",function(){return n.Tmp}),i.d(t,"SphericalHarmonics",function(){return n.SphericalHarmonics}),i.d(t,"SphericalPolynomial",function(){return n.SphericalPolynomial}),i.d(t,"AbstractMesh",function(){return n.AbstractMesh}),i.d(t,"Buffer",function(){return n.Buffer}),i.d(t,"VertexBuffer",function(){return n.VertexBuffer}),i.d(t,"CSG",function(){return n.CSG}),i.d(t,"Geometry",function(){return n.Geometry}),i.d(t,"GroundMesh",function(){return n.GroundMesh}),i.d(t,"TrailMesh",function(){return n.TrailMesh}),i.d(t,"InstancedMesh",function(){return n.InstancedMesh}),i.d(t,"LinesMesh",function(){return n.LinesMesh}),i.d(t,"InstancedLinesMesh",function(){return n.InstancedLinesMesh}),i.d(t,"_CreationDataStorage",function(){return n._CreationDataStorage}),i.d(t,"_InstancesBatch",function(){return n._InstancesBatch}),i.d(t,"Mesh",function(){return n.Mesh}),i.d(t,"VertexData",function(){return n.VertexData}),i.d(t,"MeshBuilder",function(){return n.MeshBuilder}),i.d(t,"SimplificationSettings",function(){return n.SimplificationSettings}),i.d(t,"SimplificationQueue",function(){return n.SimplificationQueue}),i.d(t,"SimplificationType",function(){return n.SimplificationType}),i.d(t,"SimplicationQueueSceneComponent",function(){return n.SimplicationQueueSceneComponent}),i.d(t,"Polygon",function(){return n.Polygon}),i.d(t,"PolygonMeshBuilder",function(){return n.PolygonMeshBuilder}),i.d(t,"BaseSubMesh",function(){return n.BaseSubMesh}),i.d(t,"SubMesh",function(){return n.SubMesh}),i.d(t,"MeshLODLevel",function(){return n.MeshLODLevel}),i.d(t,"TransformNode",function(){return n.TransformNode}),i.d(t,"BoxBuilder",function(){return n.BoxBuilder}),i.d(t,"SphereBuilder",function(){return n.SphereBuilder}),i.d(t,"CylinderBuilder",function(){return n.CylinderBuilder}),i.d(t,"LinesBuilder",function(){return n.LinesBuilder}),i.d(t,"PlaneBuilder",function(){return n.PlaneBuilder}),i.d(t,"DataBuffer",function(){return n.DataBuffer}),i.d(t,"WebGLDataBuffer",function(){return n.WebGLDataBuffer}),i.d(t,"MorphTarget",function(){return n.MorphTarget}),i.d(t,"MorphTargetManager",function(){return n.MorphTargetManager}),i.d(t,"Database",function(){return n.Database}),i.d(t,"BaseParticleSystem",function(){return n.BaseParticleSystem}),i.d(t,"GPUParticleSystem",function(){return n.GPUParticleSystem}),i.d(t,"Particle",function(){return n.Particle}),i.d(t,"ParticleHelper",function(){return n.ParticleHelper}),i.d(t,"ParticleSystem",function(){return n.ParticleSystem}),i.d(t,"_IDoNeedToBeInTheBuild",function(){return n._IDoNeedToBeInTheBuild}),i.d(t,"ParticleSystemSet",function(){return n.ParticleSystemSet}),i.d(t,"SolidParticle",function(){return n.SolidParticle}),i.d(t,"ModelShape",function(){return n.ModelShape}),i.d(t,"DepthSortedParticle",function(){return n.DepthSortedParticle}),i.d(t,"SolidParticleSystem",function(){return n.SolidParticleSystem}),i.d(t,"SubEmitterType",function(){return n.SubEmitterType}),i.d(t,"SubEmitter",function(){return n.SubEmitter}),i.d(t,"PhysicsEngine",function(){return n.PhysicsEngine}),i.d(t,"PhysicsEngineSceneComponent",function(){return n.PhysicsEngineSceneComponent}),i.d(t,"PhysicsHelper",function(){return n.PhysicsHelper}),i.d(t,"PhysicsRadialExplosionEventOptions",function(){return n.PhysicsRadialExplosionEventOptions}),i.d(t,"PhysicsUpdraftEventOptions",function(){return n.PhysicsUpdraftEventOptions}),i.d(t,"PhysicsVortexEventOptions",function(){return n.PhysicsVortexEventOptions}),i.d(t,"PhysicsRadialImpulseFalloff",function(){return n.PhysicsRadialImpulseFalloff}),i.d(t,"PhysicsUpdraftMode",function(){return n.PhysicsUpdraftMode}),i.d(t,"PhysicsImpostor",function(){return n.PhysicsImpostor}),i.d(t,"PhysicsJoint",function(){return n.PhysicsJoint}),i.d(t,"DistanceJoint",function(){return n.DistanceJoint}),i.d(t,"MotorEnabledJoint",function(){return n.MotorEnabledJoint}),i.d(t,"HingeJoint",function(){return n.HingeJoint}),i.d(t,"Hinge2Joint",function(){return n.Hinge2Joint}),i.d(t,"AnaglyphPostProcess",function(){return n.AnaglyphPostProcess}),i.d(t,"BlackAndWhitePostProcess",function(){return n.BlackAndWhitePostProcess}),i.d(t,"BloomEffect",function(){return n.BloomEffect}),i.d(t,"BloomMergePostProcess",function(){return n.BloomMergePostProcess}),i.d(t,"BlurPostProcess",function(){return n.BlurPostProcess}),i.d(t,"ChromaticAberrationPostProcess",function(){return n.ChromaticAberrationPostProcess}),i.d(t,"CircleOfConfusionPostProcess",function(){return n.CircleOfConfusionPostProcess}),i.d(t,"ColorCorrectionPostProcess",function(){return n.ColorCorrectionPostProcess}),i.d(t,"ConvolutionPostProcess",function(){return n.ConvolutionPostProcess}),i.d(t,"DepthOfFieldBlurPostProcess",function(){return n.DepthOfFieldBlurPostProcess}),i.d(t,"DepthOfFieldEffectBlurLevel",function(){return n.DepthOfFieldEffectBlurLevel}),i.d(t,"DepthOfFieldEffect",function(){return n.DepthOfFieldEffect}),i.d(t,"DepthOfFieldMergePostProcessOptions",function(){return n.DepthOfFieldMergePostProcessOptions}),i.d(t,"DepthOfFieldMergePostProcess",function(){return n.DepthOfFieldMergePostProcess}),i.d(t,"DisplayPassPostProcess",function(){return n.DisplayPassPostProcess}),i.d(t,"ExtractHighlightsPostProcess",function(){return n.ExtractHighlightsPostProcess}),i.d(t,"FilterPostProcess",function(){return n.FilterPostProcess}),i.d(t,"FxaaPostProcess",function(){return n.FxaaPostProcess}),i.d(t,"GrainPostProcess",function(){return n.GrainPostProcess}),i.d(t,"HighlightsPostProcess",function(){return n.HighlightsPostProcess}),i.d(t,"ImageProcessingPostProcess",function(){return n.ImageProcessingPostProcess}),i.d(t,"MotionBlurPostProcess",function(){return n.MotionBlurPostProcess}),i.d(t,"PassPostProcess",function(){return n.PassPostProcess}),i.d(t,"PassCubePostProcess",function(){return n.PassCubePostProcess}),i.d(t,"PostProcess",function(){return n.PostProcess}),i.d(t,"PostProcessManager",function(){return n.PostProcessManager}),i.d(t,"RefractionPostProcess",function(){return n.RefractionPostProcess}),i.d(t,"SharpenPostProcess",function(){return n.SharpenPostProcess}),i.d(t,"StereoscopicInterlacePostProcess",function(){return n.StereoscopicInterlacePostProcess}),i.d(t,"TonemappingOperator",function(){return n.TonemappingOperator}),i.d(t,"TonemapPostProcess",function(){return n.TonemapPostProcess}),i.d(t,"VolumetricLightScatteringPostProcess",function(){return n.VolumetricLightScatteringPostProcess}),i.d(t,"VRDistortionCorrectionPostProcess",function(){return n.VRDistortionCorrectionPostProcess}),i.d(t,"VRMultiviewToSingleviewPostProcess",function(){return n.VRMultiviewToSingleviewPostProcess}),i.d(t,"ReflectionProbe",function(){return n.ReflectionProbe}),i.d(t,"BoundingBoxRenderer",function(){return n.BoundingBoxRenderer}),i.d(t,"DepthRenderer",function(){return n.DepthRenderer}),i.d(t,"DepthRendererSceneComponent",function(){return n.DepthRendererSceneComponent}),i.d(t,"EdgesRenderer",function(){return n.EdgesRenderer}),i.d(t,"LineEdgesRenderer",function(){return n.LineEdgesRenderer}),i.d(t,"GeometryBufferRenderer",function(){return n.GeometryBufferRenderer}),i.d(t,"GeometryBufferRendererSceneComponent",function(){return n.GeometryBufferRendererSceneComponent}),i.d(t,"OutlineRenderer",function(){return n.OutlineRenderer}),i.d(t,"RenderingGroup",function(){return n.RenderingGroup}),i.d(t,"RenderingGroupInfo",function(){return n.RenderingGroupInfo}),i.d(t,"RenderingManager",function(){return n.RenderingManager}),i.d(t,"UtilityLayerRenderer",function(){return n.UtilityLayerRenderer}),i.d(t,"Sprite",function(){return n.Sprite}),i.d(t,"SpriteManager",function(){return n.SpriteManager}),i.d(t,"SpriteSceneComponent",function(){return n.SpriteSceneComponent}),i.d(t,"_AlphaState",function(){return n._AlphaState}),i.d(t,"_DepthCullingState",function(){return n._DepthCullingState}),i.d(t,"_StencilState",function(){return n._StencilState}),i.d(t,"AndOrNotEvaluator",function(){return n.AndOrNotEvaluator}),i.d(t,"AssetTaskState",function(){return n.AssetTaskState}),i.d(t,"AbstractAssetTask",function(){return n.AbstractAssetTask}),i.d(t,"AssetsProgressEvent",function(){return n.AssetsProgressEvent}),i.d(t,"MeshAssetTask",function(){return n.MeshAssetTask}),i.d(t,"TextFileAssetTask",function(){return n.TextFileAssetTask}),i.d(t,"BinaryFileAssetTask",function(){return n.BinaryFileAssetTask}),i.d(t,"ImageAssetTask",function(){return n.ImageAssetTask}),i.d(t,"TextureAssetTask",function(){return n.TextureAssetTask}),i.d(t,"CubeTextureAssetTask",function(){return n.CubeTextureAssetTask}),i.d(t,"HDRCubeTextureAssetTask",function(){return n.HDRCubeTextureAssetTask}),i.d(t,"EquiRectangularCubeTextureAssetTask",function(){return n.EquiRectangularCubeTextureAssetTask}),i.d(t,"AssetsManager",function(){return n.AssetsManager}),i.d(t,"DDSTools",function(){return n.DDSTools}),i.d(t,"expandToProperty",function(){return n.expandToProperty}),i.d(t,"serialize",function(){return n.serialize}),i.d(t,"serializeAsTexture",function(){return n.serializeAsTexture}),i.d(t,"serializeAsColor3",function(){return n.serializeAsColor3}),i.d(t,"serializeAsFresnelParameters",function(){return n.serializeAsFresnelParameters}),i.d(t,"serializeAsVector2",function(){return n.serializeAsVector2}),i.d(t,"serializeAsVector3",function(){return n.serializeAsVector3}),i.d(t,"serializeAsMeshReference",function(){return n.serializeAsMeshReference}),i.d(t,"serializeAsColorCurves",function(){return n.serializeAsColorCurves}),i.d(t,"serializeAsColor4",function(){return n.serializeAsColor4}),i.d(t,"serializeAsImageProcessingConfiguration",function(){return n.serializeAsImageProcessingConfiguration}),i.d(t,"serializeAsQuaternion",function(){return n.serializeAsQuaternion}),i.d(t,"serializeAsMatrix",function(){return n.serializeAsMatrix}),i.d(t,"serializeAsCameraReference",function(){return n.serializeAsCameraReference}),i.d(t,"SerializationHelper",function(){return n.SerializationHelper}),i.d(t,"Deferred",function(){return n.Deferred}),i.d(t,"EnvironmentTextureTools",function(){return n.EnvironmentTextureTools}),i.d(t,"MeshExploder",function(){return n.MeshExploder}),i.d(t,"FilesInput",function(){return n.FilesInput}),i.d(t,"KhronosTextureContainer",function(){return n.KhronosTextureContainer}),i.d(t,"EventState",function(){return n.EventState}),i.d(t,"Observer",function(){return n.Observer}),i.d(t,"MultiObserver",function(){return n.MultiObserver}),i.d(t,"Observable",function(){return n.Observable}),i.d(t,"PerformanceMonitor",function(){return n.PerformanceMonitor}),i.d(t,"RollingAverage",function(){return n.RollingAverage}),i.d(t,"PromisePolyfill",function(){return n.PromisePolyfill}),i.d(t,"SceneOptimization",function(){return n.SceneOptimization}),i.d(t,"TextureOptimization",function(){return n.TextureOptimization}),i.d(t,"HardwareScalingOptimization",function(){return n.HardwareScalingOptimization}),i.d(t,"ShadowsOptimization",function(){return n.ShadowsOptimization}),i.d(t,"PostProcessesOptimization",function(){return n.PostProcessesOptimization}),i.d(t,"LensFlaresOptimization",function(){return n.LensFlaresOptimization}),i.d(t,"CustomOptimization",function(){return n.CustomOptimization}),i.d(t,"ParticlesOptimization",function(){return n.ParticlesOptimization}),i.d(t,"RenderTargetsOptimization",function(){return n.RenderTargetsOptimization}),i.d(t,"MergeMeshesOptimization",function(){return n.MergeMeshesOptimization}),i.d(t,"SceneOptimizerOptions",function(){return n.SceneOptimizerOptions}),i.d(t,"SceneOptimizer",function(){return n.SceneOptimizer}),i.d(t,"SceneSerializer",function(){return n.SceneSerializer}),i.d(t,"SmartArray",function(){return n.SmartArray}),i.d(t,"SmartArrayNoDuplicate",function(){return n.SmartArrayNoDuplicate}),i.d(t,"StringDictionary",function(){return n.StringDictionary}),i.d(t,"Tags",function(){return n.Tags}),i.d(t,"TextureTools",function(){return n.TextureTools}),i.d(t,"TGATools",function(){return n.TGATools}),i.d(t,"ColorGradient",function(){return n.ColorGradient}),i.d(t,"Color3Gradient",function(){return n.Color3Gradient}),i.d(t,"FactorGradient",function(){return n.FactorGradient}),i.d(t,"LoadFileError",function(){return n.LoadFileError}),i.d(t,"RetryStrategy",function(){return n.RetryStrategy}),i.d(t,"Tools",function(){return n.Tools}),i.d(t,"PerfCounter",function(){return n.PerfCounter}),i.d(t,"className",function(){return n.className}),i.d(t,"AsyncLoop",function(){return n.AsyncLoop}),i.d(t,"VideoRecorder",function(){return n.VideoRecorder}),i.d(t,"JoystickAxis",function(){return n.JoystickAxis}),i.d(t,"VirtualJoystick",function(){return n.VirtualJoystick}),i.d(t,"WorkerPool",function(){return n.WorkerPool}),i.d(t,"Logger",function(){return n.Logger}),i.d(t,"_TypeStore",function(){return n._TypeStore}),i.d(t,"FilesInputStore",function(){return n.FilesInputStore}),i.d(t,"DeepCopier",function(){return n.DeepCopier}),i.d(t,"PivotTools",function(){return n.PivotTools}),i.d(t,"PrecisionDate",function(){return n.PrecisionDate}),i.d(t,"ScreenshotTools",function(){return n.ScreenshotTools}),i.d(t,"WebRequest",function(){return n.WebRequest}),i.d(t,"InspectableType",function(){return n.InspectableType}),i.d(t,"AutoRotationBehavior",function(){return n.AutoRotationBehavior}),i.d(t,"BouncingBehavior",function(){return n.BouncingBehavior}),i.d(t,"FramingBehavior",function(){return n.FramingBehavior}),i.d(t,"AttachToBoxBehavior",function(){return n.AttachToBoxBehavior}),i.d(t,"FadeInOutBehavior",function(){return n.FadeInOutBehavior}),i.d(t,"MultiPointerScaleBehavior",function(){return n.MultiPointerScaleBehavior}),i.d(t,"PointerDragBehavior",function(){return n.PointerDragBehavior}),i.d(t,"SixDofDragBehavior",function(){return n.SixDofDragBehavior}),i.d(t,"ArcRotateCameraGamepadInput",function(){return n.ArcRotateCameraGamepadInput}),i.d(t,"ArcRotateCameraKeyboardMoveInput",function(){return n.ArcRotateCameraKeyboardMoveInput}),i.d(t,"ArcRotateCameraMouseWheelInput",function(){return n.ArcRotateCameraMouseWheelInput}),i.d(t,"ArcRotateCameraPointersInput",function(){return n.ArcRotateCameraPointersInput}),i.d(t,"ArcRotateCameraVRDeviceOrientationInput",function(){return n.ArcRotateCameraVRDeviceOrientationInput}),i.d(t,"FlyCameraKeyboardInput",function(){return n.FlyCameraKeyboardInput}),i.d(t,"FlyCameraMouseInput",function(){return n.FlyCameraMouseInput}),i.d(t,"FollowCameraKeyboardMoveInput",function(){return n.FollowCameraKeyboardMoveInput}),i.d(t,"FollowCameraMouseWheelInput",function(){return n.FollowCameraMouseWheelInput}),i.d(t,"FollowCameraPointersInput",function(){return n.FollowCameraPointersInput}),i.d(t,"FreeCameraDeviceOrientationInput",function(){return n.FreeCameraDeviceOrientationInput}),i.d(t,"FreeCameraGamepadInput",function(){return n.FreeCameraGamepadInput}),i.d(t,"FreeCameraKeyboardMoveInput",function(){return n.FreeCameraKeyboardMoveInput}),i.d(t,"FreeCameraMouseInput",function(){return n.FreeCameraMouseInput}),i.d(t,"FreeCameraTouchInput",function(){return n.FreeCameraTouchInput}),i.d(t,"FreeCameraVirtualJoystickInput",function(){return n.FreeCameraVirtualJoystickInput}),i.d(t,"AnaglyphArcRotateCamera",function(){return n.AnaglyphArcRotateCamera}),i.d(t,"AnaglyphFreeCamera",function(){return n.AnaglyphFreeCamera}),i.d(t,"AnaglyphGamepadCamera",function(){return n.AnaglyphGamepadCamera}),i.d(t,"AnaglyphUniversalCamera",function(){return n.AnaglyphUniversalCamera}),i.d(t,"StereoscopicArcRotateCamera",function(){return n.StereoscopicArcRotateCamera}),i.d(t,"StereoscopicFreeCamera",function(){return n.StereoscopicFreeCamera}),i.d(t,"StereoscopicGamepadCamera",function(){return n.StereoscopicGamepadCamera}),i.d(t,"StereoscopicUniversalCamera",function(){return n.StereoscopicUniversalCamera}),i.d(t,"VRCameraMetrics",function(){return n.VRCameraMetrics}),i.d(t,"VRDeviceOrientationArcRotateCamera",function(){return n.VRDeviceOrientationArcRotateCamera}),i.d(t,"VRDeviceOrientationFreeCamera",function(){return n.VRDeviceOrientationFreeCamera}),i.d(t,"VRDeviceOrientationGamepadCamera",function(){return n.VRDeviceOrientationGamepadCamera}),i.d(t,"OnAfterEnteringVRObservableEvent",function(){return n.OnAfterEnteringVRObservableEvent}),i.d(t,"VRExperienceHelper",function(){return n.VRExperienceHelper}),i.d(t,"WebVRFreeCamera",function(){return n.WebVRFreeCamera}),i.d(t,"WebXRCamera",function(){return n.WebXRCamera}),i.d(t,"WebXREnterExitUIButton",function(){return n.WebXREnterExitUIButton}),i.d(t,"WebXREnterExitUIOptions",function(){return n.WebXREnterExitUIOptions}),i.d(t,"WebXREnterExitUI",function(){return n.WebXREnterExitUI}),i.d(t,"WebXRState",function(){return n.WebXRState}),i.d(t,"WebXRExperienceHelper",function(){return n.WebXRExperienceHelper}),i.d(t,"WebXRController",function(){return n.WebXRController}),i.d(t,"WebXRInput",function(){return n.WebXRInput}),i.d(t,"WebXRManagedOutputCanvas",function(){return n.WebXRManagedOutputCanvas}),i.d(t,"WebXRSessionManager",function(){return n.WebXRSessionManager}),i.d(t,"Octree",function(){return n.Octree}),i.d(t,"OctreeBlock",function(){return n.OctreeBlock}),i.d(t,"OctreeSceneComponent",function(){return n.OctreeSceneComponent}),i.d(t,"_OcclusionDataStorage",function(){return n._OcclusionDataStorage}),i.d(t,"_forceTransformFeedbackToBundle",function(){return n._forceTransformFeedbackToBundle}),i.d(t,"ShadowGenerator",function(){return n.ShadowGenerator}),i.d(t,"ShadowGeneratorSceneComponent",function(){return n.ShadowGeneratorSceneComponent}),i.d(t,"_BabylonLoaderRegistered",function(){return n._BabylonLoaderRegistered}),i.d(t,"BackgroundMaterial",function(){return n.BackgroundMaterial}),i.d(t,"PBRMaterialDefines",function(){return n.PBRMaterialDefines}),i.d(t,"PBRBaseMaterial",function(){return n.PBRBaseMaterial}),i.d(t,"PBRBaseSimpleMaterial",function(){return n.PBRBaseSimpleMaterial}),i.d(t,"PBRMaterial",function(){return n.PBRMaterial}),i.d(t,"PBRMetallicRoughnessMaterial",function(){return n.PBRMetallicRoughnessMaterial}),i.d(t,"PBRSpecularGlossinessMaterial",function(){return n.PBRSpecularGlossinessMaterial}),i.d(t,"ColorGradingTexture",function(){return n.ColorGradingTexture}),i.d(t,"DynamicTexture",function(){return n.DynamicTexture}),i.d(t,"ProceduralTexture",function(){return n.ProceduralTexture}),i.d(t,"RawCubeTexture",function(){return n.RawCubeTexture}),i.d(t,"RawTexture",function(){return n.RawTexture}),i.d(t,"RawTexture3D",function(){return n.RawTexture3D}),i.d(t,"RefractionTexture",function(){return n.RefractionTexture}),i.d(t,"VideoTexture",function(){return n.VideoTexture}),i.d(t,"HtmlElementTexture",function(){return n.HtmlElementTexture}),i.d(t,"DracoCompression",function(){return n.DracoCompression}),i.d(t,"DiscBuilder",function(){return n.DiscBuilder}),i.d(t,"RibbonBuilder",function(){return n.RibbonBuilder}),i.d(t,"HemisphereBuilder",function(){return n.HemisphereBuilder}),i.d(t,"TorusBuilder",function(){return n.TorusBuilder}),i.d(t,"TorusKnotBuilder",function(){return n.TorusKnotBuilder}),i.d(t,"PolygonBuilder",function(){return n.PolygonBuilder}),i.d(t,"ShapeBuilder",function(){return n.ShapeBuilder}),i.d(t,"LatheBuilder",function(){return n.LatheBuilder}),i.d(t,"GroundBuilder",function(){return n.GroundBuilder}),i.d(t,"TubeBuilder",function(){return n.TubeBuilder}),i.d(t,"PolyhedronBuilder",function(){return n.PolyhedronBuilder}),i.d(t,"IcoSphereBuilder",function(){return n.IcoSphereBuilder}),i.d(t,"DecalBuilder",function(){return n.DecalBuilder}),i.d(t,"BoxParticleEmitter",function(){return n.BoxParticleEmitter}),i.d(t,"ConeParticleEmitter",function(){return n.ConeParticleEmitter}),i.d(t,"CylinderParticleEmitter",function(){return n.CylinderParticleEmitter}),i.d(t,"CylinderDirectedParticleEmitter",function(){return n.CylinderDirectedParticleEmitter}),i.d(t,"HemisphericParticleEmitter",function(){return n.HemisphericParticleEmitter}),i.d(t,"PointParticleEmitter",function(){return n.PointParticleEmitter}),i.d(t,"SphereParticleEmitter",function(){return n.SphereParticleEmitter}),i.d(t,"SphereDirectedParticleEmitter",function(){return n.SphereDirectedParticleEmitter}),i.d(t,"CannonJSPlugin",function(){return n.CannonJSPlugin}),i.d(t,"AmmoJSPlugin",function(){return n.AmmoJSPlugin}),i.d(t,"OimoJSPlugin",function(){return n.OimoJSPlugin}),i.d(t,"PostProcessRenderEffect",function(){return n.PostProcessRenderEffect}),i.d(t,"PostProcessRenderPipeline",function(){return n.PostProcessRenderPipeline}),i.d(t,"PostProcessRenderPipelineManager",function(){return n.PostProcessRenderPipelineManager}),i.d(t,"PostProcessRenderPipelineManagerSceneComponent",function(){return n.PostProcessRenderPipelineManagerSceneComponent}),i.d(t,"CubeMapToSphericalPolynomialTools",function(){return n.CubeMapToSphericalPolynomialTools}),i.d(t,"HDRTools",function(){return n.HDRTools}),i.d(t,"PanoramaToCubeMapTools",function(){return n.PanoramaToCubeMapTools}),i.d(t,"_DDSTextureLoader",function(){return n._DDSTextureLoader}),i.d(t,"_ENVTextureLoader",function(){return n._ENVTextureLoader}),i.d(t,"_KTXTextureLoader",function(){return n._KTXTextureLoader}),i.d(t,"_TGATextureLoader",function(){return n._TGATextureLoader}),i.d(t,"CustomProceduralTexture",function(){return n.CustomProceduralTexture}),i.d(t,"NoiseProceduralTexture",function(){return n.NoiseProceduralTexture}),i.d(t,"ProceduralTextureSceneComponent",function(){return n.ProceduralTextureSceneComponent}),i.d(t,"DefaultRenderingPipeline",function(){return n.DefaultRenderingPipeline}),i.d(t,"LensRenderingPipeline",function(){return n.LensRenderingPipeline}),i.d(t,"SSAO2RenderingPipeline",function(){return n.SSAO2RenderingPipeline}),i.d(t,"SSAORenderingPipeline",function(){return n.SSAORenderingPipeline}),i.d(t,"StandardRenderingPipeline",function(){return n.StandardRenderingPipeline});var o=void 0!==e?e:"undefined"!=typeof window?window:void 0;if(void 0!==o){o.BABYLON=s,o.BABYLON=o.BABYLON||{};var s=o.BABYLON;s.Debug=s.Debug||{};var a=[];for(var c in r)s.Debug[c]=r[c],a.push(c);for(var c in n)s[c]=n[c]}var l={AxesViewer:r.AxesViewer,BoneAxesViewer:r.BoneAxesViewer,PhysicsViewer:r.PhysicsViewer,SkeletonViewer:r.SkeletonViewer}}.call(this,i(119))}])});var _STRINGS={Ad:{Mobile:{Preroll:{ReadyIn:"The game is ready in ",Loading:"Your game is loading...",Close:"Close"},Header:{ReadyIn:"The game is ready in ",Loading:"Your game is loading...",Close:"Close"},End:{ReadyIn:"Advertisement ends in ",Loading:"Please wait ...",Close:"Close"}}},Splash:{TapToStart:"TAP TO START"},Game:{Settings:"SETTINGS",Paused:"PAUSED",Tutorial:"CONTROLS",TutorialText1:"WASD/ARROW to move",TutorialText2:"SPACE/CLICK to fire",TutorialText3:"Shoot the pillar to destroy the laser gate", +Score:"SCORE",Best:"BEST",Boss:"BOSS",BossFight:"BOSS FIGHT!",NewBest:"NEW BEST SCORE!",PowerupTime:"SPEED DOWN",PowerupDestroyer:"WALL DESTROYER",PowerupShield:"FORCE SHIELD"}};var _SETTINGS={API:{Enabled:!0,Log:{Events:{InitializeGame:!0,EndGame:!0,Level:{Begin:!0,End:!0,Win:!0,Lose:!0,Draw:!0}}}},Ad:{Mobile:{Preroll:{Enabled:!1,Duration:5,Width:300,Height:250,Rotation:{Enabled:!1,Weight:{MobileAdInGamePreroll:40,MobileAdInGamePreroll2:40,MobileAdInGamePreroll3:20}}},Header:{Enabled:!1,Duration:5,Width:320,Height:50,Rotation:{Enabled:!1,Weight:{MobileAdInGameHeader:40,MobileAdInGameHeader2:40,MobileAdInGameHeader3:20}}},Footer:{Enabled:!1,Duration:5,Width:320,Height:50, +Rotation:{Enabled:!1,Weight:{MobileAdInGameFooter:40,MobileAdInGameFooter2:40,MobileAdInGameFooter3:20}}},End:{Enabled:!1,Duration:1,Width:300,Height:250,Rotation:{Enabled:!1,Weight:{MobileAdInGameEnd:40,MobileAdInGameEnd2:40,MobileAdInGameEnd3:20}}}}},Language:{Default:"en"},DeveloperBranding:{Splash:{Enabled:!1},Logo:{Enabled:!1,Link:"http://google.com",LinkEnabled:!1,NewWindow:!0,Width:166,Height:61}},Branding:{Splash:{Enabled:!0},Logo:{Enabled:!0,Link:"http://google.com",LinkEnabled:!1,NewWindow:!0, +Width:166,Height:61}},MoreGames:{Enabled:!1,Link:"http://www.marketjs.com/game/links/mobile",NewWindow:!0}};var MobileAdInGamePreroll={ad_duration:_SETTINGS.Ad.Mobile.Preroll.Duration,ad_width:_SETTINGS.Ad.Mobile.Preroll.Width,ad_height:_SETTINGS.Ad.Mobile.Preroll.Height,ready_in:_STRINGS.Ad.Mobile.Preroll.ReadyIn,loading:_STRINGS.Ad.Mobile.Preroll.Loading,close:_STRINGS.Ad.Mobile.Preroll.Close+"          ",Initialize:function(){if(_SETTINGS.Ad.Mobile.Preroll.Rotation.Enabled){var c=_SETTINGS.Ad.Mobile.Preroll.Rotation.Weight,b=c.MobileAdInGamePreroll,e= +b+c.MobileAdInGamePreroll2,c=e+c.MobileAdInGamePreroll3,d=Math.floor(100*Math.random());console.log("seed: ",d);d<=b?this.selectedOverlayName="MobileAdInGamePreroll":d<=e?this.selectedOverlayName="MobileAdInGamePreroll2":d<=c&&(this.selectedOverlayName="MobileAdInGamePreroll3");console.log("Ad rotating preroll enabled")}else this.selectedOverlayName="MobileAdInGamePreroll",console.log("Ad rotating preroll disabled");console.log("selected:",this.selectedOverlayName);this.overlay=$("#"+this.selectedOverlayName); +this.box=$("#"+this.selectedOverlayName+"-Box");this.game=$("#game");this.boxContents={footer:$("#"+this.selectedOverlayName+"-Box-Footer"),header:$("#"+this.selectedOverlayName+"-Box-Header"),close:$("#"+this.selectedOverlayName+"-Box-Close"),body:$("#"+this.selectedOverlayName+"-Box-Body")};this.box.width(this.ad_width);this.box.height(this.ad_height);this.box.css("left",(this.overlay.width()-this.box.width())/2);this.box.css("top",(this.overlay.height()-this.box.height()-this.boxContents.header.height()- +this.boxContents.footer.height())/2);this.overlay.show(this.Timer(this.ad_duration))},Timer:function(c){var b=c,e=setInterval(function(){MobileAdInGamePreroll.boxContents.header.text(MobileAdInGamePreroll.ready_in+b+"...");MobileAdInGamePreroll.boxContents.footer.text(MobileAdInGamePreroll.loading);b--;0>b&&(clearInterval(e),MobileAdInGamePreroll.boxContents.close.css("left",MobileAdInGamePreroll.boxContents.body.width()-23),MobileAdInGamePreroll.boxContents.close.show(),MobileAdInGamePreroll.boxContents.header.html(MobileAdInGamePreroll.close), +MobileAdInGamePreroll.boxContents.footer.text(""))},1E3)},Close:function(){this.boxContents.close.hide();this.overlay.hide()}};var MobileAdInGameHeader={ad_duration:_SETTINGS.Ad.Mobile.Header.Duration,ad_width:_SETTINGS.Ad.Mobile.Header.Width,ad_height:_SETTINGS.Ad.Mobile.Header.Height,Initialize:function(){if(_SETTINGS.Ad.Mobile.Header.Rotation.Enabled){var c=_SETTINGS.Ad.Mobile.Header.Rotation.Weight,b=c.MobileAdInGameHeader,e=b+c.MobileAdInGameHeader2,c=e+c.MobileAdInGameHeader3,d=Math.floor(100*Math.random());console.log("seed: ",d);d<=b?this.selectedOverlayName="MobileAdInGameHeader":d<=e?this.selectedOverlayName="MobileAdInGameHeader2": +d<=c&&(this.selectedOverlayName="MobileAdInGameHeader3");console.log("Ad rotating header enabled")}else this.selectedOverlayName="MobileAdInGameHeader",console.log("Ad rotating header disabled");this.div=$("#"+this.selectedOverlayName);this.game=$("#game");this.div.width(this.ad_width);this.div.height(this.ad_height);this.div.css("left",this.game.position().left+(this.game.width()-this.div.width())/2);this.div.css("top",0);this.div.show(this.Timer(this.ad_duration))},Timer:function(c){var b=setInterval(function(){c--; +0>c&&(MobileAdInGameHeader.div.hide(),clearInterval(b))},1E3)}};var MobileAdInGameFooter={ad_duration:_SETTINGS.Ad.Mobile.Footer.Duration,ad_width:_SETTINGS.Ad.Mobile.Footer.Width,ad_height:_SETTINGS.Ad.Mobile.Footer.Height,Initialize:function(){if(_SETTINGS.Ad.Mobile.Footer.Rotation.Enabled){var c=_SETTINGS.Ad.Mobile.Footer.Rotation.Weight,b=c.MobileAdInGameFooter,e=b+c.MobileAdInGameFooter2,c=e+c.MobileAdInGameFooter3,d=Math.floor(100*Math.random());console.log("seed: ",d);d<=b?this.selectedOverlayName="MobileAdInGameFooter":d<=e?this.selectedOverlayName="MobileAdInGameFooter2": +d<=c&&(this.selectedOverlayName="MobileAdInGameFooter3");console.log("Ad rotating footer enabled")}else this.selectedOverlayName="MobileAdInGameFooter",console.log("Ad rotating footer disabled");this.div=$("#"+this.selectedOverlayName);this.game=$("#game");this.div.width(this.ad_width);this.div.height(this.ad_height);this.div.css("left",this.game.position().left+(this.game.width()-this.div.width())/2);this.div.css("top",this.game.height()-this.div.height()-5);this.div.show(this.Timer(this.ad_duration))}, +Timer:function(c){var b=setInterval(function(){c--;0>c&&(MobileAdInGameFooter.div.hide(),clearInterval(b))},1E3)}};var MobileAdInGameEnd={ad_duration:_SETTINGS.Ad.Mobile.End.Duration,ad_width:_SETTINGS.Ad.Mobile.End.Width,ad_height:_SETTINGS.Ad.Mobile.End.Height,ready_in:_STRINGS.Ad.Mobile.End.ReadyIn,loading:_STRINGS.Ad.Mobile.End.Loading,close:_STRINGS.Ad.Mobile.End.Close+"          ",Initialize:function(){if(_SETTINGS.Ad.Mobile.End.Rotation.Enabled){var c=_SETTINGS.Ad.Mobile.End.Rotation.Weight,b=c.MobileAdInGameEnd,e=b+c.MobileAdInGameEnd2,c=e+c.MobileAdInGameEnd3, +d=Math.floor(100*Math.random());console.log("seed: ",d);d<=b?this.selectedOverlayName="MobileAdInGameEnd":d<=e?this.selectedOverlayName="MobileAdInGameEnd2":d<=c&&(this.selectedOverlayName="MobileAdInGameEnd3");console.log("Ad rotating end enabled")}else this.selectedOverlayName="MobileAdInGameEnd",console.log("Ad rotating end disabled");console.log("selected:",this.selectedOverlayName);this.overlay=$("#"+this.selectedOverlayName);this.box=$("#"+this.selectedOverlayName+"-Box");this.game=$("#game"); +this.boxContents={footer:$("#"+this.selectedOverlayName+"-Box-Footer"),header:$("#"+this.selectedOverlayName+"-Box-Header"),close:$("#"+this.selectedOverlayName+"-Box-Close"),body:$("#"+this.selectedOverlayName+"-Box-Body")};this.box.width(this.ad_width);this.box.height(this.ad_height);this.box.css("left",(this.overlay.width()-this.box.width())/2);this.box.css("top",(this.overlay.height()-this.box.height()-this.boxContents.header.height()-this.boxContents.footer.height())/2);this.overlay.show(this.Timer(this.ad_duration))}, +Timer:function(c){var b=c,e=setInterval(function(){MobileAdInGameEnd.boxContents.header.text(MobileAdInGameEnd.ready_in+b+"...");MobileAdInGameEnd.boxContents.footer.text(MobileAdInGameEnd.loading);b--;0>b&&(clearInterval(e),MobileAdInGameEnd.boxContents.close.css("left",MobileAdInGameEnd.boxContents.body.width()-23),MobileAdInGameEnd.boxContents.close.show(),MobileAdInGameEnd.boxContents.header.html(MobileAdInGameEnd.close),MobileAdInGameEnd.boxContents.footer.text(""))},1E3)},Close:function(){this.boxContents.close.hide(); +this.overlay.hide()}};!function(c,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=c.document?b(c,!0):function(c){if(!c.document)throw Error("jQuery requires a window with a document");return b(c)}:b(c)}("undefined"!=typeof window?window:this,function(c,b){function e(c,b){b=b||K;var d=b.createElement("script");d.text=c;b.head.appendChild(d).parentNode.removeChild(d)}function d(c){var b=!!c&&"length"in c&&c.length,d=q.type(c);return"function"!==d&&!q.isWindow(c)&&("array"===d||0===b||"number"== +typeof b&&0tbody",c)[0]||c:c}function z(c){return c.type=(null!==c.getAttribute("type"))+"/"+c.type,c}function G(c){var b=Lc.exec(c.type);return b?c.type=b[1]:c.removeAttribute("type"),c}function N(c,b){var d,e,j,f,l,n;if(1===b.nodeType){if(Q.hasData(c)&&(d=Q.access(c),e=Q.set(b,d),n=d.events))for(j in delete e.handle,e.events={},n){d=0;for(e=n[j].length;db;b+=2)"margin"===d&&(f+=q.css(c,d+Va[b],!0,j)),e?("content"===d&&(f-=q.css(c,"padding"+Va[b],!0,j)),"margin"!==d&&(f-=q.css(c,"border"+Va[b]+"Width",!0,j))):(f+=q.css(c,"padding"+Va[b],!0,j),"padding"!==d&&(f+=q.css(c,"border"+Va[b]+"Width",!0,j)));return f}function ea(c,b,d){var e,j=tb(c),f=I(c,b,j),l="border-box"===q.css(c,"boxSizing",!1,j);return Kb.test(f)? +f:(e=l&&(X.boxSizingReliable()||f===c.style[b]),"auto"===f&&(f=c["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+M(c,b,d||(l?"border":"content"),e,j)+"px")}function T(c,b,d,e,j){return new T.prototype.init(c,b,d,e,j)}function O(){ub&&(!1===K.hidden&&c.requestAnimationFrame?c.requestAnimationFrame(O):c.setTimeout(O,q.fx.interval),q.fx.tick())}function J(){return c.setTimeout(function(){ab=void 0}),ab=q.now()}function H(c,b){var d,e=0,j={height:c};for(b=b?1:0;4>e;e+=2-b)d=Va[e],j["margin"+ +d]=j["padding"+d]=c;return b&&(j.opacity=j.width=c),j}function Y(c,b,d){for(var e,j=(ba.tweeners[b]||[]).concat(ba.tweeners["*"]),f=0,l=j.length;fd&&f?b:(f||n.notifyWith(c, +[m,1,0]),n.resolveWith(c,[m]),!1)},m=n.promise({elem:c,props:q.extend({},b),opts:q.extend(!0,{specialEasing:{},easing:q.easing._default},d),originalProperties:b,originalOptions:d,startTime:ab||J(),duration:d.duration,tweens:[],createTween:function(b,d){var e=q.Tween(c,m.opts,b,d,m.opts.specialEasing[b]||m.opts.easing);return m.tweens.push(e),e},stop:function(b){var d=0,e=b?m.tweens.length:0;if(j)return this;for(j=!0;dc?this[c+this.length]:this[c]},pushStack:function(c){c=q.merge(this.constructor(),c);return c.prevObject=this,c},each:function(c){return q.each(this,c)},map:function(c){return this.pushStack(q.map(this,function(b,d){return c.call(b,d,b)}))},slice:function(){return this.pushStack(ia.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(c){var b=this.length;c= ++c+(0>c?b:0);return this.pushStack(0<=c&&cP.cacheLength&&delete c[b.shift()],c[d+" "]=e}var b=[];return c},ga=function(c){return c[aa]=!0,c},ma=function(c){var b=V.createElement("fieldset");try{return!!c(b)}catch(d){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}},Ra=function(c,b){for(var d=c.split("|"),e=d.length;e--;)P.attrHandle[d[e]]=b},Ia=function(c,b){var d=b&&c,e=d&&1===c.nodeType&&1===b.nodeType&&c.sourceIndex-b.sourceIndex;if(e)return e;if(d)for(;d=d.nextSibling;)if(d=== +b)return-1;return c?1:-1},zb=function(c){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===c}},Sa=function(c){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===c}},db=function(c){return function(b){return"form"in b?b.parentNode&&!1===b.disabled?"label"in b?"label"in b.parentNode?b.parentNode.disabled===c:b.disabled===c:b.isDisabled===c||b.isDisabled!==!c&&Rc(b)===c:b.disabled===c:"label"in b&&b.disabled===c}},Da=function(c){return ga(function(b){return b= ++b,ga(function(d,e){for(var j,f=c([],d.length,b),l=f.length;l--;)d[j=f[l]]&&(d[j]=!(e[j]=d[j]))})})},Ca=function(c){return c&&"undefined"!=typeof c.getElementsByTagName&&c},Ea=function(){},wa=function(c){for(var b=0,d=c.length,e="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,Zc=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,$c=RegExp(":((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)"), +ad=/^(?:\\.|[\w-]|[^\x00-\xa0])+$/,Cb={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:/^((?:\\.|[\w-]|[^\x00-\xa0])+|[*])/,ATTR:RegExp("^\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\]"),PSEUDO:RegExp("^:((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)"), +CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", +"i")},bd=/^(?:input|select|textarea|button)$/i,cd=/^h\d$/i,ob=/^[^{]+\{\s*\[native \w/,Qc=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Pb=/[+~]/,Ja=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,Ka=function(c,b,d){c="0x"+b-65536;return c!==c||d?b:0>c?String.fromCharCode(c+65536):String.fromCharCode(c>>10|55296,1023&c|56320)},cc=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,dc=function(c,b){return b?"\x00"===c?"\ufffd":c.slice(0,-1)+"\\"+c.charCodeAt(c.length-1).toString(16)+" ":"\\"+c},jc=function(){Oa()}, +Rc=Xa(function(c){return!0===c.disabled&&("form"in c||"label"in c)},{dir:"parentNode",next:"legend"});try{Pa.apply($a=ic.call(ra.childNodes),ra.childNodes),$a[ra.childNodes.length].nodeType}catch(Fd){Pa={apply:$a.length?function(c,b){Vc.apply(c,ic.call(b))}:function(c,b){for(var d=c.length,e=0;c[d++]=b[e++];);c.length=d-1}}}ca=W.support={};fc=W.isXML=function(c){c=c&&(c.ownerDocument||c).documentElement;return!!c&&"HTML"!==c.nodeName};Oa=W.setDocument=function(c){var b,d;c=c?c.ownerDocument||c:ra; +return c!==V&&9===c.nodeType&&c.documentElement?(V=c,ta=V.documentElement,sa=!fc(V),ra!==V&&(d=V.defaultView)&&d.top!==d&&(d.addEventListener?d.addEventListener("unload",jc,!1):d.attachEvent&&d.attachEvent("onunload",jc)),ca.attributes=ma(function(c){return c.className="i",!c.getAttribute("className")}),ca.getElementsByTagName=ma(function(c){return c.appendChild(V.createComment("")),!c.getElementsByTagName("*").length}),ca.getElementsByClassName=ob.test(V.getElementsByClassName),ca.getById=ma(function(c){return ta.appendChild(c).id= +aa,!V.getElementsByName||!V.getElementsByName(aa).length}),ca.getById?(P.filter.ID=function(c){var b=c.replace(Ja,Ka);return function(c){return c.getAttribute("id")===b}},P.find.ID=function(c,b){if("undefined"!=typeof b.getElementById&&sa){var d=b.getElementById(c);return d?[d]:[]}}):(P.filter.ID=function(c){var b=c.replace(Ja,Ka);return function(c){return(c="undefined"!=typeof c.getAttributeNode&&c.getAttributeNode("id"))&&c.value===b}},P.find.ID=function(c,b){if("undefined"!=typeof b.getElementById&& +sa){var d,e,j,f=b.getElementById(c);if(f){if(d=f.getAttributeNode("id"),d&&d.value===c)return[f];j=b.getElementsByName(c);for(e=0;f=j[e++];)if(d=f.getAttributeNode("id"),d&&d.value===c)return[f]}return[]}}),P.find.TAG=ca.getElementsByTagName?function(c,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(c):ca.qsa?b.querySelectorAll(c):void 0}:function(c,b){var d,e=[],j=0,f=b.getElementsByTagName(c);if("*"===c){for(;d=f[j++];)1===d.nodeType&&e.push(d);return e}return f},P.find.CLASS= +ca.getElementsByClassName&&function(c,b){if("undefined"!=typeof b.getElementsByClassName&&sa)return b.getElementsByClassName(c)},Za=[],ha=[],(ca.qsa=ob.test(V.querySelectorAll))&&(ma(function(c){ta.appendChild(c).innerHTML="";c.querySelectorAll("[msallowcapture^='']").length&&ha.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")");c.querySelectorAll("[selected]").length||ha.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"); +c.querySelectorAll("[id~="+aa+"-]").length||ha.push("~=");c.querySelectorAll(":checked").length||ha.push(":checked");c.querySelectorAll("a#"+aa+"+*").length||ha.push(".#.+[+~]")}),ma(function(c){c.innerHTML="";var b=V.createElement("input");b.setAttribute("type","hidden");c.appendChild(b).setAttribute("name","D");c.querySelectorAll("[name=d]").length&&ha.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?=");2!==c.querySelectorAll(":enabled").length&& +ha.push(":enabled",":disabled");ta.appendChild(c).disabled=!0;2!==c.querySelectorAll(":disabled").length&&ha.push(":enabled",":disabled");c.querySelectorAll("*,:x");ha.push(",.*:")})),(ca.matchesSelector=ob.test(Bb=ta.matches||ta.webkitMatchesSelector||ta.mozMatchesSelector||ta.oMatchesSelector||ta.msMatchesSelector))&&ma(function(c){ca.disconnectedMatch=Bb.call(c,"*");Bb.call(c,"[s!='']:x");Za.push("!=",":((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)")}), +ha=ha.length&&RegExp(ha.join("|")),Za=Za.length&&RegExp(Za.join("|")),b=ob.test(ta.compareDocumentPosition),mb=b||ob.test(ta.contains)?function(c,b){var d=9===c.nodeType?c.documentElement:c,e=b&&b.parentNode;return c===e||!(!e||1!==e.nodeType||!(d.contains?d.contains(e):c.compareDocumentPosition&&16&c.compareDocumentPosition(e)))}:function(c,b){if(b)for(;b=b.parentNode;)if(b===c)return!0;return!1},Sb=b?function(c,b){if(c===b)return gb=!0,0;var d=!c.compareDocumentPosition-!b.compareDocumentPosition; +return d?d:(d=(c.ownerDocument||c)===(b.ownerDocument||b)?c.compareDocumentPosition(b):1,1&d||!ca.sortDetached&&b.compareDocumentPosition(c)===d?c===V||c.ownerDocument===ra&&mb(ra,c)?-1:b===V||b.ownerDocument===ra&&mb(ra,b)?1:Ta?Ya(Ta,c)-Ya(Ta,b):0:4&d?-1:1)}:function(c,b){if(c===b)return gb=!0,0;var d,e=0;d=c.parentNode;var j=b.parentNode,f=[c],l=[b];if(!d||!j)return c===V?-1:b===V?1:d?-1:j?1:Ta?Ya(Ta,c)-Ya(Ta,b):0;if(d===j)return Ia(c,b);for(d=c;d=d.parentNode;)f.unshift(d);for(d=b;d=d.parentNode;)l.unshift(d); +for(;f[e]===l[e];)e++;return e?Ia(f[e],l[e]):f[e]===ra?-1:l[e]===ra?1:0},V):V};W.matches=function(c,b){return W(c,null,null,b)};W.matchesSelector=function(c,b){if((c.ownerDocument||c)!==V&&Oa(c),b=b.replace(Zc,"='$1']"),ca.matchesSelector&&sa&&!xb[b+" "]&&(!Za||!Za.test(b))&&(!ha||!ha.test(b)))try{var d=Bb.call(c,b);if(d||ca.disconnectedMatch||c.document&&11!==c.document.nodeType)return d}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling", +first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(c){return c[1]=c[1].replace(Ja,Ka),c[3]=(c[3]||c[4]||c[5]||"").replace(Ja,Ka),"~="===c[2]&&(c[3]=" "+c[3]+" "),c.slice(0,4)},CHILD:function(c){return c[1]=c[1].toLowerCase(),"nth"===c[1].slice(0,3)?(c[3]||W.error(c[0]),c[4]=+(c[4]?c[5]+(c[6]||1):2*("even"===c[3]||"odd"===c[3])),c[5]=+(c[7]+c[8]||"odd"===c[3])):c[3]&&W.error(c[0]),c},PSEUDO:function(c){var b,d=!c[6]&&c[2];return Cb.CHILD.test(c[0])?null:(c[3]?c[2]=c[4]||c[5]||"":d&&$c.test(d)&& +(b=nb(d,!0))&&(b=d.indexOf(")",d.length-b)-d.length)&&(c[0]=c[0].slice(0,b),c[2]=d.slice(0,b)),c.slice(0,3))}},filter:{TAG:function(c){var b=c.replace(Ja,Ka).toLowerCase();return"*"===c?function(){return!0}:function(c){return c.nodeName&&c.nodeName.toLowerCase()===b}},CLASS:function(c){var b=gc[c+" "];return b||(b=RegExp("(^|[\\x20\\t\\r\\n\\f])"+c+"([\\x20\\t\\r\\n\\f]|$)"))&&gc(c,function(c){return b.test("string"==typeof c.className&&c.className||"undefined"!=typeof c.getAttribute&&c.getAttribute("class")|| +"")})},ATTR:function(c,b,d){return function(e){e=W.attr(e,c);return null==e?"!="===b:!b||(e+="","="===b?e===d:"!="===b?e!==d:"^="===b?d&&0===e.indexOf(d):"*="===b?d&&-1c.nodeType)return!1;return!0},parent:function(c){return!P.pseudos.empty(c)},header:function(c){return cd.test(c.nodeName)},input:function(c){return bd.test(c.nodeName)}, +button:function(c){var b=c.nodeName.toLowerCase();return"input"===b&&"button"===c.type||"button"===b},text:function(c){var b;return"input"===c.nodeName.toLowerCase()&&"text"===c.type&&(null==(b=c.getAttribute("type"))||"text"===b.toLowerCase())},first:Da(function(){return[0]}),last:Da(function(c,b){return[b-1]}),eq:Da(function(c,b,d){return[0>d?d+b:d]}),even:Da(function(c,b){for(var d=0;dd?d+b:d;0<=--b;)c.push(b);return c}),gt:Da(function(c,b,d){for(d=0>d?d+b:d;++d:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i, +Hc=/^.[^:#\[\.,]*$/;q.filter=function(c,b,d){var e=b[0];return d&&(c=":not("+c+")"),1===b.length&&1===e.nodeType?q.find.matchesSelector(e,c)?[e]:[]:q.find.matches(c,q.grep(b,function(c){return 1===c.nodeType}))};q.fn.extend({find:function(c){var b,d,e=this.length,j=this;if("string"!=typeof c)return this.pushStack(q(c).filter(function(){for(b=0;b)[^>]*|#([\w-]+))$/;(q.fn.init=function(c,b,d){var e,j;if(!c)return this;if(d=d||nc,"string"==typeof c){if(e="<"===c[0]&&">"===c[c.length-1]&&3<=c.length?[null,c,null]:dd.exec(c),!e||!e[1]&&b)return!b||b.jquery?(b||d).find(c):this.constructor(b).find(c);if(e[1]){if(b=b instanceof q?b[0]:b,q.merge(this,q.parseHTML(e[1], +b&&b.nodeType?b.ownerDocument||b:K,!0)),mc.test(e[1])&&q.isPlainObject(b))for(e in b)q.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return j=K.getElementById(e[2]),j&&(this[0]=j,this.length=1),this}return c.nodeType?(this[0]=c,this.length=1,this):q.isFunction(c)?void 0!==d.ready?d.ready(c):c(q):q.makeArray(c,this)}).prototype=q.fn;nc=q(K);var ed=/^(?:parents|prev(?:Until|All))/,fd={children:!0,contents:!0,next:!0,prev:!0};q.fn.extend({has:function(c){var b=q(c,this),d=b.length; +return this.filter(function(){for(var c=0;cd.nodeType&&(l?-1=n&&(e!==j&&(g=void 0,r=[c]),d.rejectWith(g,r))}};b?s():(q.Deferred.getStackHook&&(s.stackTrace=q.Deferred.getStackHook()),c.setTimeout(s))}}var n=0;return q.Deferred(function(c){d[0][3].add(l(0,c,q.isFunction(f)?f:m,c.notifyWith));d[1][3].add(l(0,c,q.isFunction(b)?b:m));d[2][3].add(l(0,c,q.isFunction(e)?e:j))}).promise()},promise:function(c){return null!=c?q.extend(c,f):f}},l={};return q.each(d,function(c,b){var j=b[2],n=b[5];f[b[1]]=j.add;n&&j.add(function(){e=n},d[3-c][2].disable, +d[0][2].lock);j.add(b[3].fire);l[b[0]]=function(){return l[b[0]+"With"](this===l?void 0:this,arguments),this};l[b[0]+"With"]=j.fireWith}),f.promise(l),b&&b.call(l,l),l},when:function(c){var b=arguments.length,d=b,e=Array(d),j=ia.call(arguments),f=q.Deferred(),n=function(c){return function(d){e[c]=this;j[c]=1=b&&(l(c,f.done(n(d)).resolve,f.reject,!b),"pending"===f.state()||q.isFunction(j[d]&&j[d].then)))return f.then();for(;d--;)l(j[d], +n(d),f.reject);return f.promise()}});var gd=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;q.Deferred.exceptionHook=function(b,d){c.console&&c.console.warn&&b&&gd.test(b.name)&&c.console.warn("jQuery.Deferred exception: "+b.message,b.stack,d)};q.readyException=function(b){c.setTimeout(function(){throw b;})};var Tb=q.Deferred();q.fn.ready=function(c){return Tb.then(c)["catch"](function(c){q.readyException(c)}),this};q.extend({isReady:!1,readyWait:1,ready:function(c){(!0===c?--q.readyWait: +q.isReady)||(q.isReady=!0,!0!==c&&0<--q.readyWait||Tb.resolveWith(K,[q]))}});q.ready.then=Tb.then;"complete"===K.readyState||"loading"!==K.readyState&&!K.documentElement.doScroll?c.setTimeout(q.ready):(K.addEventListener("DOMContentLoaded",n),c.addEventListener("load",n));var La=function(c,b,d,e,j,f,l){var n=0,g=c.length,m=null==d;if("object"===q.type(d))for(n in j=!0,d)La(c,b,n,d[n],!0,f,l);else if(void 0!==e&&(j=!0,q.isFunction(e)||(l=!0),m&&(l?(b.call(c,e),b=null):(m=b,b=function(c,b,d){return m.call(q(c), +d)})),b))for(;n\x20\t\r\n\f]+)/i,Zb=/^$|\/(?:java|ecma)script/i,na={option:[1,""],thead:[1,"","
"],col:[2,"","
"], +tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};na.optgroup=na.option;na.tbody=na.tfoot=na.colgroup=na.caption=na.thead;na.th=na.td;var Kc=/<|&#?\w+;/,Eb=K.createDocumentFragment().appendChild(K.createElement("div")),Fb=K.createElement("input");Fb.setAttribute("type","radio");Fb.setAttribute("checked","checked");Fb.setAttribute("name","t");Eb.appendChild(Fb);X.checkClone=Eb.cloneNode(!0).cloneNode(!0).lastChild.checked;Eb.innerHTML= +"";X.noCloneChecked=!!Eb.cloneNode(!0).lastChild.defaultValue;!0;var Gb=K.documentElement,hd=/^key/,id=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rc=/^([^.]*)(?:\.(.+)|)/;q.event={global:{},add:function(c,b,d,e,j){var f,l,n,g,m,r,s,p,t,u;if(m=Q.get(c)){d.handler&&(f=d,d=f.handler,j=f.selector);j&&q.find.matchesSelector(Gb,j);d.guid||(d.guid=q.guid++);(g=m.events)||(g=m.events={});(l=m.handle)||(l=m.handle=function(b){return"undefined"!=typeof q&&q.event.triggered!==b.type? +q.event.dispatch.apply(c,arguments):void 0});b=(b||"").match(oa)||[""];for(m=b.length;m--;)n=rc.exec(b[m])||[],t=u=n[1],n=(n[2]||"").split(".").sort(),t&&(s=q.event.special[t]||{},t=(j?s.delegateType:s.bindType)||t,s=q.event.special[t]||{},r=q.extend({type:t,origType:u,data:e,handler:d,guid:d.guid,selector:j,needsContext:j&&q.expr.match.needsContext.test(j),namespace:n.join(".")},f),(p=g[t])||(p=g[t]=[],p.delegateCount=0,s.setup&&!1!==s.setup.call(c,e,n,l)||c.addEventListener&&c.addEventListener(t, +l)),s.add&&(s.add.call(c,r),r.handler.guid||(r.handler.guid=d.guid)),j?p.splice(p.delegateCount++,0,r):p.push(r),q.event.global[t]=!0)}},remove:function(c,b,d,e,j){var f,l,n,g,m,r,s,p,t,u,x,y=Q.hasData(c)&&Q.get(c);if(y&&(g=y.events)){b=(b||"").match(oa)||[""];for(m=b.length;m--;)if(n=rc.exec(b[m])||[],t=x=n[1],u=(n[2]||"").split(".").sort(),t){s=q.event.special[t]||{};t=(e?s.delegateType:s.bindType)||t;p=g[t]||[];n=n[2]&&RegExp("(^|\\.)"+u.join("\\.(?:.*\\.|)")+"(\\.|$)");for(l=f=p.length;f--;)r= +p[f],!j&&x!==r.origType||d&&d.guid!==r.guid||n&&!n.test(r.namespace)||e&&e!==r.selector&&("**"!==e||!r.selector)||(p.splice(f,1),r.selector&&p.delegateCount--,s.remove&&s.remove.call(c,r));l&&!p.length&&(s.teardown&&!1!==s.teardown.call(c,u,y.handle)||q.removeEvent(c,t,y.handle),delete g[t])}else for(t in g)q.event.remove(c,t+b[m],d,e,!0);q.isEmptyObject(g)&&Q.remove(c,"handle events")}},dispatch:function(c){var b=q.event.fix(c),d,e,j,f,l,n,g=Array(arguments.length);e=(Q.get(this,"events")||{})[b.type]|| +[];var m=q.event.special[b.type]||{};g[0]=b;for(d=1;d\x20\t\r\n\f]*)[^>]*)\/>/gi,kd=/\s*$/g;q.extend({htmlPrefilter:function(c){return c.replace(jd,"<$1>")},clone:function(c,b,d){var e,j,f,l,n=c.cloneNode(!0),g=q.contains(c.ownerDocument,c);if(!X.noCloneChecked&&!(1!==c.nodeType&&11!==c.nodeType||q.isXMLDoc(c))){l=x(n);f=x(c);e=0;for(j=f.length;eq.inArray(this,c)&&(q.cleanData(x(this)),d&&d.replaceChild(b,this))},c)}});q.each({appendTo:"append",prependTo:"prepend", +insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(c,b){q.fn[c]=function(c){for(var d=[],e=q(c),j=e.length-1,f=0;f<=j;f++)c=f===j?this:this.clone(!0),q(e[f])[b](c),Na.apply(d,c.get());return this.pushStack(d)}});var $b=/^margin/,Kb=RegExp("^("+oc+")(?!px)[a-z%]+$","i"),tb=function(b){var d=b.ownerDocument.defaultView;return d&&d.opener||(d=c),d.getComputedStyle(b)},Ib=function(){if(Aa){Aa.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%"; +Aa.innerHTML="";Gb.appendChild(Hb);var b=c.getComputedStyle(Aa);sc="1%"!==b.top;tc="2px"===b.marginLeft;uc="4px"===b.width;Aa.style.marginRight="50%";vc="4px"===b.marginRight;Gb.removeChild(Hb);Aa=null}},sc,uc,vc,tc,Hb=K.createElement("div"),Aa=K.createElement("div");Aa.style&&(Aa.style.backgroundClip="content-box",Aa.cloneNode(!0).style.backgroundClip="",X.clearCloneStyle="content-box"===Aa.style.backgroundClip,Hb.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", +Hb.appendChild(Aa),q.extend(X,{pixelPosition:function(){return Ib(),sc},boxSizingReliable:function(){return Ib(),uc},pixelMarginRight:function(){return Ib(),vc},reliableMarginLeft:function(){return Ib(),tc}}));!0;var ld=/^(none|table(?!-c[ea]).+)/,wc=/^--/,md={position:"absolute",visibility:"hidden",display:"block"},xc={letterSpacing:"0",fontWeight:"400"},bc=["Webkit","Moz","ms"],ac=K.createElement("div").style;q.extend({cssHooks:{opacity:{get:function(c,b){if(b){var d=I(c,"opacity");return""===d? +"1":d}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(c,b,d,e){if(c&&3!==c.nodeType&&8!==c.nodeType&&c.style){var j,f,l,n=q.camelCase(b),g=wc.test(b),m=c.style;return g||(b=da(n)),l=q.cssHooks[b]||q.cssHooks[n],void 0===d?l&&"get"in l&&void 0!==(j=l.get(c,!1,e))?j:m[b]:(f=typeof d,"string"===f&&(j=kb.exec(d))&&j[1]&& +(d=t(c,b,j),f="number"),null!=d&&d===d&&("number"===f&&(d+=j&&j[3]||(q.cssNumber[n]?"":"px")),X.clearCloneStyle||""!==d||0!==b.indexOf("background")||(m[b]="inherit"),l&&"set"in l&&void 0===(d=l.set(c,d,e))||(g?m.setProperty(b,d):m[b]=d)),void 0)}},css:function(c,b,d,e){var j,f,l,n=q.camelCase(b);return wc.test(b)||(b=da(n)),l=q.cssHooks[b]||q.cssHooks[n],l&&"get"in l&&(j=l.get(c,!0,d)),void 0===j&&(j=I(c,b,e)),"normal"===j&&b in xc&&(j=xc[b]),""===d||d?(f=parseFloat(j),!0===d||isFinite(f)?f||0:j): +j}});q.each(["height","width"],function(c,b){q.cssHooks[b]={get:function(c,d,e){if(d)return!ld.test(q.css(c,"display"))||c.getClientRects().length&&c.getBoundingClientRect().width?ea(c,b,e):pc(c,md,function(){return ea(c,b,e)})},set:function(c,d,e){var j,f=e&&tb(c);e=e&&M(c,b,e,"border-box"===q.css(c,"boxSizing",!1,f),f);return e&&(j=kb.exec(d))&&"px"!==(j[3]||"px")&&(c.style[b]=d,d=q.css(c,b)),E(c,d,e)}}});q.cssHooks.marginLeft=Z(X.reliableMarginLeft,function(c,b){if(b)return(parseFloat(I(c,"marginLeft"))|| +c.getBoundingClientRect().left-pc(c,{marginLeft:0},function(){return c.getBoundingClientRect().left}))+"px"});q.each({margin:"",padding:"",border:"Width"},function(c,b){q.cssHooks[c+b]={expand:function(d){var e=0,j={};for(d="string"==typeof d?d.split(" "):[d];4>e;e++)j[c+Va[e]+b]=d[e]||d[e-2]||d[0];return j}};$b.test(c)||(q.cssHooks[c+b].set=E)});q.fn.extend({css:function(c,b){return La(this,function(c,b,d){var e,j={},f=0;if(Array.isArray(b)){d=tb(c);for(e=b.length;fe.indexOf(" "+f+" ")&&(e+=f+" ");e=ka(e);j!==e&&d.setAttribute("class",e)}return this},removeClass:function(c){var b,d,e,j,f,l,n=0;if(q.isFunction(c))return this.each(function(b){q(this).removeClass(c.call(this, +b,pa(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof c&&c)for(b=c.match(oa)||[];d=this[n++];)if(j=pa(d),e=1===d.nodeType&&" "+ka(j)+" "){for(l=0;f=b[l++];)for(;-1j?n:f?j:0;dt.indexOf(":")&&"on"+t,b=b[q.expando]?b:new q.Event(t,"object"==typeof b&&b),b.isTrigger=j?2:3,b.namespace=f.join("."),b.rnamespace=b.namespace?RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),d=null==d?[b]:q.makeArray(d,[b]),s=q.event.special[t]||{},j||!s.trigger|| +!1!==s.trigger.apply(e,d))){if(!j&&!s.noBubble&&!q.isWindow(e)){g=s.delegateType||t;for(zc.test(g+t)||(l=l.parentNode);l;l=l.parentNode)p.push(l),n=l;n===(e.ownerDocument||K)&&p.push(n.defaultView||n.parentWindow||c)}for(f=0;(l=p[f++])&&!b.isPropagationStopped();)b.type=1b||304===b;if(n){H=u;for(var za=v,O,G,I,E,M=H.contents,P=H.dataTypes;"*"===P[0];)P.shift(),void 0===O&&(O=H.mimeType||za.getResponseHeader("Content-Type"));if(O)for(G in M)if(M[G]&& +M[G].test(O)){P.unshift(G);break}if(P[0]in n)I=P[0];else{for(G in n){if(!P[0]||H.converters[G+" "+P[0]]){I=G;break}E||(E=G)}I=I||E}H=n=I?(I!==P[0]&&P.unshift(I),n[I]):void 0}var B;a:{n=u;O=H;G=v;I=m;var U,L,Y;H={};za=n.dataTypes.slice();if(za[1])for(U in n.converters)H[U.toLowerCase()]=n.converters[U];for(E=za.shift();E;)if(n.responseFields[E]&&(G[n.responseFields[E]]=O),!Y&&I&&n.dataFilter&&(O=n.dataFilter(O,n.dataType)),Y=E,E=za.shift())if("*"===E)E=Y;else if("*"!==Y&&Y!==E){if(U=H[Y+" "+E]||H["* "+ +E],!U)for(B in H)if(L=B.split(" "),L[1]===E&&(U=H[Y+" "+L[0]]||H["* "+L[0]])){!0===U?U=H[B]:!0!==H[B]&&(E=L[0],za.unshift(L[1]));break}if(!0!==U)if(U&&n["throws"])O=U(O);else try{O=U(O)}catch(eb){B={state:"parsererror",error:U?eb:"No conversion from "+Y+" to "+E};break a}}B={state:"success",data:O}}H=B;m?(u.ifModified&&(F=v.getResponseHeader("Last-Modified"),F&&(q.lastModified[f]=F),F=v.getResponseHeader("etag"),F&&(q.etag[f]=F)),204===b||"HEAD"===u.type?z="nocontent":304===b?z="notmodified":(z=H.state, +p=H.data,t=H.error,m=!t)):(t=z,!b&&z||(z="error",0>b&&(b=0)));v.status=b;v.statusText=(d||z)+"";m?J.resolveWith(x,[p,z,v]):J.rejectWith(x,[v,z,t]);v.statusCode(C);C=void 0;s&&y.trigger(m?"ajaxSuccess":"ajaxError",[v,u,m?p:t]);N.fireWith(x,[v,z]);s&&(y.trigger("ajaxComplete",[v,u]),--q.active||q.event.trigger("ajaxStop"))}}"object"==typeof b&&(d=b,b=void 0);d=d||{};var j,f,l,n,g,m,r,s,p,t,u=q.ajaxSetup({},d),x=u.context||u,y=u.context&&(x.nodeType||x.jquery)?q(x):q.event,J=q.Deferred(),N=q.Callbacks("once memory"), +C=u.statusCode||{},H={},F={},z="canceled",v={readyState:0,getResponseHeader:function(c){var b;if(r){if(!n)for(n={};b=yd.exec(l);)n[b[1].toLowerCase()]=b[2];b=n[c.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return r?l:null},setRequestHeader:function(c,b){return null==r&&(c=F[c.toLowerCase()]=F[c.toLowerCase()]||c,H[c]=b),this},overrideMimeType:function(c){return null==r&&(u.mimeType=c),this},statusCode:function(c){var b;if(c)if(r)v.always(c[v.status]);else for(b in c)C[b]= +[C[b],c[b]];return this},abort:function(c){c=c||z;return j&&j.abort(c),e(0,c),this}};if(J.promise(v),u.url=((b||u.url||qb.href)+"").replace(Ad,qb.protocol+"//"),u.type=d.method||d.type||u.method||u.type,u.dataTypes=(u.dataType||"*").toLowerCase().match(oa)||[""],null==u.crossDomain){m=K.createElement("a");try{m.href=u.url,m.href=m.href,u.crossDomain=Vb.protocol+"//"+Vb.host!=m.protocol+"//"+m.host}catch(za){u.crossDomain=!0}}if(u.data&&u.processData&&"string"!=typeof u.data&&(u.data=q.param(u.data, +u.traditional)),va(Cc,u,d,v),r)return v;(s=q.event&&u.global)&&0===q.active++&&q.event.trigger("ajaxStart");u.type=u.type.toUpperCase();u.hasContent=!zd.test(u.type);f=u.url.replace(wd,"");u.hasContent?u.data&&u.processData&&0===(u.contentType||"").indexOf("application/x-www-form-urlencoded")&&(u.data=u.data.replace(vd,"+")):(t=u.url.slice(f.length),u.data&&(f+=(Ub.test(f)?"&":"?")+u.data,delete u.data),!1===u.cache&&(f=f.replace(xd,"$1"),t=(Ub.test(f)?"&":"?")+"_="+Ac++ +t),u.url=f+t);u.ifModified&& +(q.lastModified[f]&&v.setRequestHeader("If-Modified-Since",q.lastModified[f]),q.etag[f]&&v.setRequestHeader("If-None-Match",q.etag[f]));(u.data&&u.hasContent&&!1!==u.contentType||d.contentType)&&v.setRequestHeader("Content-Type",u.contentType);v.setRequestHeader("Accept",u.dataTypes[0]&&u.accepts[u.dataTypes[0]]?u.accepts[u.dataTypes[0]]+("*"!==u.dataTypes[0]?", "+Dc+"; q=0.01":""):u.accepts["*"]);for(p in u.headers)v.setRequestHeader(p,u.headers[p]);if(u.beforeSend&&(!1===u.beforeSend.call(x,v,u)|| +r))return v.abort();if(z="abort",N.add(u.complete),v.done(u.success),v.fail(u.error),j=va(Lb,u,d,v)){if(v.readyState=1,s&&y.trigger("ajaxSend",[v,u]),r)return v;u.async&&0").prop({charset:c.scriptCharset,src:c.url}).on("load error",d=function(c){b.remove();d=null;c&&j("error"===c.type?404:200,c.type)});K.head.appendChild(b[0])},abort:function(){d&&d()}}}});var Ec=[],Wb=/(=)\?(?=&|$)|\?\?/;q.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var c=Ec.pop()||q.expando+ +"_"+Ac++;return this[c]=!0,c}});q.ajaxPrefilter("json jsonp",function(b,d,e){var j,f,l,n=!1!==b.jsonp&&(Wb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Wb.test(b.data)&&"data");if(n||"jsonp"===b.dataTypes[0])return j=b.jsonpCallback=q.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,n?b[n]=b[n].replace(Wb,"$1"+j):!1!==b.jsonp&&(b.url+=(Ub.test(b.url)?"&":"?")+b.jsonp+"="+j),b.converters["script json"]=function(){return l|| +q.error(j+" was not called"),l[0]},b.dataTypes[0]="json",f=c[j],c[j]=function(){l=arguments},e.always(function(){void 0===f?q(c).removeProp(j):c[j]=f;b[j]&&(b.jsonpCallback=d.jsonpCallback,Ec.push(j));l&&q.isFunction(f)&&f(l[0]);l=f=void 0}),"script"});var Cd=X,Fc,Gc=K.implementation.createHTMLDocument("").body;Fc=(Gc.innerHTML="
",2===Gc.childNodes.length);Cd.createHTMLDocument=Fc;q.parseHTML=function(c,b,d){if("string"!=typeof c)return[];"boolean"==typeof b&&(d=b,b=!1); +var e,j,f;return b||(X.createHTMLDocument?(b=K.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=K.location.href,b.head.appendChild(e)):b=K),j=mc.exec(c),f=!d&&[],j?[b.createElement(j[1])]:(j=v([c],b,f),f&&f.length&&q(f).remove(),q.merge([],j.childNodes))};q.fn.load=function(c,b,d){var e,j,f,l=this,n=c.indexOf(" ");return-1").append(q.parseHTML(c)).find(e):c)}).always(d&&function(c,b){l.each(function(){d.apply(this,f||[c.responseText,b,c])})}),this};q.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(c,b){q.fn[b]=function(c){return this.on(b,c)}});q.expr.pseudos.animated=function(c){return q.grep(q.timers,function(b){return c===b.elem}).length};q.offset={setOffset:function(c,b,d){var e,j,f,l,n,g,m=q.css(c,"position"),r=q(c), +s={};"static"===m&&(c.style.position="relative");n=r.offset();f=q.css(c,"top");g=q.css(c,"left");("absolute"===m||"fixed"===m)&&-1<(f+g).indexOf("auto")?(e=r.position(),l=e.top,j=e.left):(l=parseFloat(f)||0,j=parseFloat(g)||0);q.isFunction(b)&&(b=b.call(c,d,q.extend({},n)));null!=b.top&&(s.top=b.top-n.top+l);null!=b.left&&(s.left=b.left-n.left+j);"using"in b?b.using.call(c,s):r.css(s)}};q.fn.extend({offset:function(c){if(arguments.length)return void 0===c?this:this.each(function(b){q.offset.setOffset(this, +c,b)});var b,d,e,j,f=this[0];if(f)return f.getClientRects().length?(e=f.getBoundingClientRect(),b=f.ownerDocument,d=b.documentElement,j=b.defaultView,{top:e.top+j.pageYOffset-d.clientTop,left:e.left+j.pageXOffset-d.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var c,b,d=this[0],e={top:0,left:0};return"fixed"===q.css(d,"position")?b=d.getBoundingClientRect():(c=this.offsetParent(),b=this.offset(),g(c[0],"html")||(e=c.offset()),e={top:e.top+q.css(c[0],"borderTopWidth",!0),left:e.left+ +q.css(c[0],"borderLeftWidth",!0)}),{top:b.top-e.top-q.css(d,"marginTop",!0),left:b.left-e.left-q.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var c=this.offsetParent;c&&"static"===q.css(c,"position");)c=c.offsetParent;return c||Gb})}});q.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(c,b){var d="pageYOffset"===b;q.fn[c]=function(e){return La(this,function(c,e,j){var f;return q.isWindow(c)?f=c:9===c.nodeType&&(f=c.defaultView),void 0===j?f?f[b]: +c[e]:void(f?f.scrollTo(d?f.pageXOffset:j,d?j:f.pageYOffset):c[e]=j)},c,e,arguments.length)}});q.each(["top","left"],function(c,b){q.cssHooks[b]=Z(X.pixelPosition,function(c,d){if(d)return d=I(c,b),Kb.test(d)?q(c).position()[b]+"px":d})});q.each({Height:"height",Width:"width"},function(c,b){q.each({padding:"inner"+c,content:b,"":"outer"+c},function(d,e){q.fn[e]=function(j,f){var l=arguments.length&&(d||"boolean"!=typeof j),n=d||(!0===j||!0===f?"margin":"border");return La(this,function(b,d,j){var f; +return q.isWindow(b)?0===e.indexOf("outer")?b["inner"+c]:b.document.documentElement["client"+c]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+c],f["scroll"+c],b.body["offset"+c],f["offset"+c],f["client"+c])):void 0===j?q.css(b,d,n):q.style(b,d,j,n)},b,l?j:void 0,l)}})});q.fn.extend({bind:function(c,b,d){return this.on(c,null,b,d)},unbind:function(c,b){return this.off(c,null,b)},delegate:function(c,b,d,e){return this.on(b,c,d,e)},undelegate:function(c,b,d){return 1===arguments.length? +this.off(c,"**"):this.off(b,c||"**",d)}});q.holdReady=function(c){c?q.readyWait++:q.ready(!0)};q.isArray=Array.isArray;q.parseJSON=JSON.parse;q.nodeName=g;"function"==typeof define&&define.amd&&define("jquery",[],function(){return q});var Dd=c.jQuery,Ed=c.$;return q.noConflict=function(b){return c.$===q&&(c.$=Ed),b&&c.jQuery===q&&(c.jQuery=Dd),q},b||(c.jQuery=c.$=q),q});var HANDJS=HANDJS||{}; +(function(){function c(){A=!0;clearTimeout(D);D=setTimeout(function(){A=!1},700)}function b(c){var b=[];if(c)for(b.unshift(c);c.parentNode;)b.unshift(c.parentNode),c=c.parentNode;return b}function e(c,d){for(var e=b(c),j=b(d),f=null;0>>0;if(0===d)return-1;var e=0;0=d)return-1;for(e=0<=e?e:Math.max(d-Math.abs(e),0);ec.__handjsGlobalRegisteredEvents[b]&&(c.__handjsGlobalRegisteredEvents[b]=0));if(!window.MSPointerEvent)switch(b){case "pointerenter":void 0!==c.onmouseenter&&x(c,"mouseenter",function(c){n(c,b)},d);break;case "pointerleave":void 0!==c.onmouseleave&&x(c,"mouseleave",function(c){n(c,b)},d)}},v=function(c){var b=c.prototype?c.prototype.addEventListener:c.addEventListener, +d=function(c,d,e){-1!=p.indexOf(c)&&y(this,c,!0);void 0===b?this.attachEvent("on"+u(c),d):b.call(this,c,d,e)};c.prototype?c.prototype.addEventListener=d:c.addEventListener=d},B=function(c){var b=c.prototype?c.prototype.removeEventListener:c.removeEventListener,d=function(c,d,e){-1!=p.indexOf(c)&&y(this,c,!1);void 0===b?this.detachEvent(u(c),d):b.call(this,c,d,e)};c.prototype?c.prototype.removeEventListener=d:c.removeEventListener=d};v(window);v(window.HTMLElement||window.Element);v(document);v(HTMLBodyElement); +v(HTMLDivElement);v(HTMLImageElement);v(HTMLUListElement);v(HTMLAnchorElement);v(HTMLLIElement);v(HTMLTableElement);window.HTMLSpanElement&&v(HTMLSpanElement);window.HTMLCanvasElement&&v(HTMLCanvasElement);window.SVGElement&&v(SVGElement);B(window);B(window.HTMLElement||window.Element);B(document);B(HTMLBodyElement);B(HTMLDivElement);B(HTMLImageElement);B(HTMLUListElement);B(HTMLAnchorElement);B(HTMLLIElement);B(HTMLTableElement);window.HTMLSpanElement&&B(HTMLSpanElement);window.HTMLCanvasElement&& +B(HTMLCanvasElement);window.SVGElement&&B(SVGElement);var A=!1,D=-1;window.MSPointerEvent?f(function(c){c=p.indexOf(c);return"MS"+m[c]},l):(f(u,n),void 0!==window.ontouchstart&&(window.addEventListener("touchstart",function(b){for(var e=0;e (http://steffe.se)",keywords:["cannon.js","cannon","physics","engine","3d"],main:"./build/cannon.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/cannon.js.git"}, +bugs:{url:"https://github.com/schteppe/cannon.js/issues"},licenses:[{type:"MIT"}],devDependencies:{jshint:"latest","uglify-js":"latest",nodeunit:"^0.9.0",grunt:"~0.4.0","grunt-contrib-jshint":"~0.1.1","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-concat":"~0.1.3","grunt-contrib-uglify":"^0.5.1","grunt-browserify":"^2.1.4","grunt-contrib-yuidoc":"^0.5.2",browserify:"*"},dependencies:{}}},{}],2:[function(b,e){e.exports={version:b("../package.json").version,AABB:b("./collision/AABB"),ArrayCollisionMatrix:b("./collision/ArrayCollisionMatrix"), +Body:b("./objects/Body"),Box:b("./shapes/Box"),Broadphase:b("./collision/Broadphase"),Constraint:b("./constraints/Constraint"),ContactEquation:b("./equations/ContactEquation"),Narrowphase:b("./world/Narrowphase"),ConeTwistConstraint:b("./constraints/ConeTwistConstraint"),ContactMaterial:b("./material/ContactMaterial"),ConvexPolyhedron:b("./shapes/ConvexPolyhedron"),Cylinder:b("./shapes/Cylinder"),DistanceConstraint:b("./constraints/DistanceConstraint"),Equation:b("./equations/Equation"),EventTarget:b("./utils/EventTarget"), +FrictionEquation:b("./equations/FrictionEquation"),GSSolver:b("./solver/GSSolver"),GridBroadphase:b("./collision/GridBroadphase"),Heightfield:b("./shapes/Heightfield"),HingeConstraint:b("./constraints/HingeConstraint"),LockConstraint:b("./constraints/LockConstraint"),Mat3:b("./math/Mat3"),Material:b("./material/Material"),NaiveBroadphase:b("./collision/NaiveBroadphase"),ObjectCollisionMatrix:b("./collision/ObjectCollisionMatrix"),Pool:b("./utils/Pool"),Particle:b("./shapes/Particle"),Plane:b("./shapes/Plane"), +PointToPointConstraint:b("./constraints/PointToPointConstraint"),Quaternion:b("./math/Quaternion"),Ray:b("./collision/Ray"),RaycastVehicle:b("./objects/RaycastVehicle"),RaycastResult:b("./collision/RaycastResult"),RigidVehicle:b("./objects/RigidVehicle"),RotationalEquation:b("./equations/RotationalEquation"),RotationalMotorEquation:b("./equations/RotationalMotorEquation"),SAPBroadphase:b("./collision/SAPBroadphase"),SPHSystem:b("./objects/SPHSystem"),Shape:b("./shapes/Shape"),Solver:b("./solver/Solver"), +Sphere:b("./shapes/Sphere"),SplitSolver:b("./solver/SplitSolver"),Spring:b("./objects/Spring"),Trimesh:b("./shapes/Trimesh"),Vec3:b("./math/Vec3"),Vec3Pool:b("./utils/Vec3Pool"),World:b("./world/World")}},{"../package.json":1,"./collision/AABB":3,"./collision/ArrayCollisionMatrix":4,"./collision/Broadphase":5,"./collision/GridBroadphase":6,"./collision/NaiveBroadphase":7,"./collision/ObjectCollisionMatrix":8,"./collision/Ray":9,"./collision/RaycastResult":10,"./collision/SAPBroadphase":11,"./constraints/ConeTwistConstraint":12, +"./constraints/Constraint":13,"./constraints/DistanceConstraint":14,"./constraints/HingeConstraint":15,"./constraints/LockConstraint":16,"./constraints/PointToPointConstraint":17,"./equations/ContactEquation":19,"./equations/Equation":20,"./equations/FrictionEquation":21,"./equations/RotationalEquation":22,"./equations/RotationalMotorEquation":23,"./material/ContactMaterial":24,"./material/Material":25,"./math/Mat3":27,"./math/Quaternion":28,"./math/Vec3":30,"./objects/Body":31,"./objects/RaycastVehicle":32, +"./objects/RigidVehicle":33,"./objects/SPHSystem":34,"./objects/Spring":35,"./shapes/Box":37,"./shapes/ConvexPolyhedron":38,"./shapes/Cylinder":39,"./shapes/Heightfield":40,"./shapes/Particle":41,"./shapes/Plane":42,"./shapes/Shape":43,"./shapes/Sphere":44,"./shapes/Trimesh":45,"./solver/GSSolver":46,"./solver/Solver":47,"./solver/SplitSolver":48,"./utils/EventTarget":49,"./utils/Pool":51,"./utils/Vec3Pool":54,"./world/Narrowphase":55,"./world/World":56}],3:[function(b,e){function d(b){b=b||{};this.lowerBound= +new g;b.lowerBound&&this.lowerBound.copy(b.lowerBound);this.upperBound=new g;b.upperBound&&this.upperBound.copy(b.upperBound)}var g=b("../math/Vec3");b("../utils/Utils");e.exports=d;var f=new g;d.prototype.setFromPoints=function(b,d,e,n){var g=this.lowerBound,s=this.upperBound;g.copy(b[0]);e&&e.vmult(g,g);s.copy(g);for(var p=1;ps.x&&(s.x=u.x);u.xs.y&&(s.y=u.y);u.ys.z&&(s.z=u.z);u.zd&&(this.lowerBound.x=d);d=b.upperBound.x;this.upperBound.xd&&(this.lowerBound.y=d);d=b.upperBound.y;this.upperBound.yd&&(this.lowerBound.z=d);d=b.upperBound.z;this.upperBound.z=b.x&&d.y<=f.y&&e.y>= +b.y&&d.z<=f.z&&e.z>=b.z};d.prototype.getCorners=function(b,d,e,f,g,s,p,u){var x=this.lowerBound,y=this.upperBound;b.copy(x);d.set(y.x,x.y,x.z);e.set(y.x,y.y,x.z);f.set(x.x,y.y,y.z);g.set(y.x,x.y,x.z);s.set(x.x,y.y,x.z);p.set(x.x,x.y,y.z);u.copy(y)};var p=[new g,new g,new g,new g,new g,new g,new g,new g];d.prototype.toLocalFrame=function(b,d){this.getCorners(p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7]);for(var e=0;8!==e;e++){var f=p[e];b.pointToLocal(f,f)}return d.setFromPoints(p)};d.prototype.toWorldFrame= +function(b,d){this.getCorners(p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7]);for(var e=0;8!==e;e++){var f=p[e];b.pointToWorld(f,f)}return d.setFromPoints(p)}},{"../math/Vec3":30,"../utils/Utils":53}],4:[function(b,e){function d(){this.matrix=[]}e.exports=d;d.prototype.get=function(b,d){b=b.index;d=d.index;if(d>b){var e=d;d=b;b=e}return this.matrix[(b*(b+1)>>1)+d-1]};d.prototype.set=function(b,d,e){b=b.index;d=d.index;if(d>b){var m=d;d=b;b=m}this.matrix[(b*(b+1)>>1)+d-1]=e?1:0};d.prototype.reset=function(){for(var b= +0,d=this.matrix.length;b!==d;b++)this.matrix[b]=0};d.prototype.setNumObjects=function(b){this.matrix.length=b*(b-1)>>1}},{}],5:[function(b,e){function d(){this.world=null;this.useBoundingBoxes=!1;this.dirty=!0}var g=b("../objects/Body"),f=b("../math/Vec3"),p=b("../math/Quaternion");b("../shapes/Shape");b("../shapes/Plane");e.exports=d;d.prototype.collisionPairs=function(){throw Error("collisionPairs not implemented for this BroadPhase class!");};var m=g.STATIC|g.KINEMATIC;d.prototype.needBroadphaseCollision= +function(b,d){return 0===(b.collisionFilterGroup&d.collisionFilterMask)||0===(d.collisionFilterGroup&b.collisionFilterMask)||(0!==(b.type&m)||b.sleepState===g.SLEEPING)&&(0!==(d.type&m)||d.sleepState===g.SLEEPING)?!1:!0};d.prototype.intersectionTest=function(b,d,e,j){this.useBoundingBoxes?this.doBoundingBoxBroadphase(b,d,e,j):this.doBoundingSphereBroadphase(b,d,e,j)};var j=new f;new f;new p;new f;d.prototype.doBoundingSphereBroadphase=function(b,d,e,f){d.position.vsub(b.position,j);var l=Math.pow(b.boundingRadius+ +d.boundingRadius,2);j.norm2()s.norm2()};d.prototype.aabbQuery=function(){console.warn(".aabbQuery is not implemented in this Broadphase subclass.");return[]}},{"../math/Quaternion":28,"../math/Vec3":30,"../objects/Body":31,"../shapes/Plane":42,"../shapes/Shape":43}],6:[function(b,e){function d(b, +d,e,m,s){g.apply(this);this.nx=e||10;this.ny=m||10;this.nz=s||10;this.aabbMin=b||new f(100,100,100);this.aabbMax=d||new f(-100,-100,-100);b=this.nx*this.ny*this.nz;if(0>=b)throw"GridBroadphase: Each dimension's n must be >0";this.bins=[];this.binLengths=[];this.bins.length=b;this.binLengths.length=b;for(d=0;db?b=0:b>=x&&(b=x-1);0>d?d=0:d>=y&&(d=y-1);0>e?e=0:e>=v&&(e=v-1);0>j?j=0:j>=x&&(j=x-1);0>l?l=0:l>=y&&(l=y-1);0>n?n=0:n>=v&&(n=v-1);b*=B;d*=A;e*=D;j*=B;l*=A;for(n*=D;b<=j;b+=B)for(var m=d;m<=l;m+=A)for(var r=e;r<=n;r+=D){var s=b+m+r;T[s][O[s]++]=g}}var g=b.numObjects();b=b.bodies;for(var t=this.aabbMax,u=this.aabbMin,x=this.nx,y=this.ny,v=this.nz,B=y*v,A=v,D=1,F=t.x,C=t.y,z=t.z,G=u.x, +N=u.y,L=u.z,S=x/(F-G),I=y/(C-N),Z=v/(z-L),F=(F-G)/x,da=(C-N)/y,z=(z-L)/v,E=0.5*Math.sqrt(F*F+da*da+z*z),C=p.types,M=C.SPHERE,ea=C.PLANE,T=this.bins,O=this.binLengths,C=this.bins.length,u=0;u!==C;u++)O[u]=0;for(var J=Math.ceil,u=Math.min,t=Math.max,u=0;u!==g;u++){var t=b[u],H=t.shape;switch(H.type){case M:var Y=t.position.x,ba=t.position.y,ka=t.position.z,H=H.radius;f(Y-H,ba-H,ka-H,Y+H,ba+H,ka+H,t);break;case ea:H.worldNormalNeedsUpdate&&H.computeWorldNormal(t.quaternion);var ka=H.worldNormal,H=N+ +0.5*da-t.position.y,pa=L+0.5*z-t.position.z,fa=m;fa.set(G+0.5*F-t.position.x,H,pa);for(var ua=Y=0;Y!==x;Y++,ua+=B,fa.y=H,fa.x+=F)for(var va=ba=0;ba!==y;ba++,va+=A,fa.z=pa,fa.y+=da)for(var Ma=0,la=0;Ma!==v;Ma++,la+=D,fa.z+=z)if(fa.dot(ka)b){var e=d;d=b;b=e}return b+"-"+d in this.matrix};d.prototype.set=function(b,d,e){b=b.id;d=d.id;if(d>b){var m=d;d=b;b=m}e?this.matrix[b+"-"+d]=!0:delete this.matrix[b+"-"+d]}; +d.prototype.reset=function(){this.matrix={}};d.prototype.setNumObjects=function(){}},{}],9:[function(b,e){function d(b,e){this.from=b?b.clone():new f;this.to=e?e.clone():new f;this._direction=new f;this.precision=1E-4;this.checkCollisionResponse=!0;this.skipBackfaces=!1;this.collisionFilterGroup=this.collisionFilterMask=-1;this.mode=d.ANY;this.result=new j;this.hasHit=!1;this.callback=function(){}}function g(b,d,e,j){j.vsub(d,T);e.vsub(d,t);b.vsub(d,u);b=T.dot(T);d=T.dot(t);e=T.dot(u);j=t.dot(t); +var f=t.dot(u),l,n;return 0<=(l=j*e-d*f)&&0<=(n=b*f-d*e)&&l+nb.boundingSphereRadius||(f=this[b.type])&&f.call(this,b,d,e,j)};new f;new f;var v=new f,B=new f,A=new f,D= +new f;new f;new j;d.prototype.intersectBox=function(b,d,e,j){return this.intersectConvex(b.convexPolyhedronRepresentation,d,e,j)};d.prototype[l.types.BOX]=d.prototype.intersectBox;d.prototype.intersectPlane=function(b,d,e,j){var l=this.from,n=this.to,g=this._direction,m=new f(0,0,1);d.vmult(m,m);var r=new f;l.vsub(e,r);d=r.dot(m);n.vsub(e,r);r=r.dot(m);if(!(0t)t=r[0];if(null===p||r[1]u)u=r[1]}if(null!==s){b.getRectMinMax(s,p,t,u,[]);for(g=s;g<=t;g++)for(r=p;r<=u;r++){if(this.result._shouldStop)return;b.getConvexTrianglePillar(g,r,!1);m.pointToWorldFrame(j,e,b.pillarOffset,n);this.intersectConvex(b.pillarConvex, +e,n,l,F);if(this.result._shouldStop)return;b.getConvexTrianglePillar(g,r,!0);m.pointToWorldFrame(j,e,b.pillarOffset,n);this.intersectConvex(b.pillarConvex,e,n,l,F)}}};d.prototype[l.types.HEIGHTFIELD]=d.prototype.intersectHeightfield;var C=new f,z=new f;d.prototype.intersectSphere=function(b,d,e,j){d=this.from;var f=this.to,l=b.radius,n=Math.pow(f.x-d.x,2)+Math.pow(f.y-d.y,2)+Math.pow(f.z-d.z,2),g=2*((f.x-d.x)*(d.x-e.x)+(f.y-d.y)*(d.y-e.y)+(f.z-d.z)*(d.z-e.z)),l=Math.pow(d.x-e.x,2)+Math.pow(d.y-e.y, +2)+Math.pow(d.z-e.z,2)-Math.pow(l,2),m=Math.pow(g,2)-4*n*l;0>m||(0===m?(d.lerp(f,m,C),C.vsub(e,z),z.normalize(),this.reportIntersection(z,C,b,j,-1)):(l=(-g-Math.sqrt(m))/(2*n),n=(-g+Math.sqrt(m))/(2*n),0<=l&&1>=l&&(d.lerp(f,l,C),C.vsub(e,z),z.normalize(),this.reportIntersection(z,C,b,j,-1)),!this.result._shouldStop&&0<=n&&1>=n&&(d.lerp(f,n,C),C.vsub(e,z),z.normalize(),this.reportIntersection(z,C,b,j,-1))))};d.prototype[l.types.SPHERE]=d.prototype.intersectSphere;var G=new f;new f;new f;var N=new f; +d.prototype.intersectConvex=function(b,d,e,j,f){f=f&&f.faceList||null;for(var l=b.faces,n=b.vertices,m=b.faceNormals,r=this._direction,s=this.from,p=s.distanceTo(this.to),t=f?f.length:l.length,u=this.result,x=0;!u._shouldStop&&xI))){r.mult(I,v);v.vadd(s,v);B.copy(n[O[0]]);C.vmult(B,B);E.vadd(B,B);for(I=1;!u._shouldStop&&Ip||this.reportIntersection(G,v,b,j,y)}}}};d.prototype[l.types.CONVEXPOLYHEDRON]=d.prototype.intersectConvex;var L=new f,S=new f,I=new f,Z=new f,da=new f,E=new f;new n;var M=[],ea=new m;d.prototype.intersectTrimesh=function(b,d,e,j){var f=b.indices,l=this.from,n=this.to,r=this._direction;ea.position.copy(e);ea.quaternion.copy(d);m.vectorToLocalFrame(e,d,r,S); +m.pointToLocalFrame(e,d,l,I);m.pointToLocalFrame(e,d,n,Z);l=I.distanceSquared(Z);b.tree.rayQuery(this,ea,M);n=0;for(r=M.length;!this.result._shouldStop&&n!==r;n++){var s=M[n];b.getNormal(s,L);b.getVertex(f[3*s],B);B.vsub(I,N);var p=S.dot(L),p=L.dot(N)/p;0>p||(S.scale(p,v),v.vadd(I,v),b.getVertex(f[3*s+1],A),b.getVertex(f[3*s+2],D),p=v.distanceSquared(I),!g(v,A,B,D)&&!g(v,B,A,D)||p>l||(m.vectorToWorldFrame(d,L,da),m.pointToWorldFrame(e,d,v,E),this.reportIntersection(da,E,b,j,s)))}M.length=0};d.prototype[l.types.TRIMESH]= +d.prototype.intersectTrimesh;d.prototype.reportIntersection=function(b,e,j,f,l){var n=this.from,g=this.to,m=n.distanceTo(e),r=this.result;if(!(this.skipBackfaces&&0e?b>l?0:2:e>l?1:2};d.prototype.aabbQuery=function(b,d,e){e=e||[];this.dirty&&(this.sortList(),this.dirty=!1);b=this.axisList;for(var j=0;jj;j++)for(var l=0;3>l;l++){for(var n=0,r=0;3>r;r++)n+=b.elements[j+3*r]*this.elements[r+3*l];g.elements[j+3*l]=n}return g};d.prototype.scale=function(b,e){e=e||new d;for(var g=this.elements,j=e.elements,l=0;3!==l;l++)j[3*l+0]=b.x*g[3*l+0],j[3*l+1]=b.y*g[3*l+1],j[3*l+2]=b.z*g[3*l+2];return e};d.prototype.solve=function(b,d){d= +d||new g;for(var e=[],j=0;12>j;j++)e.push(0);for(var l,j=0;3>j;j++)for(l=0;3>l;l++)e[j+4*l]=this.elements[j+3*l];e[3]=b.x;e[7]=b.y;e[11]=b.z;var n=3,r=n,s,t;do{j=r-n;if(0===e[j+4*j])for(l=j+1;ld;d++)b+=this.elements[d]+",";return b};d.prototype.reverse=function(b){b=b||new d; +for(var e=[],g=0;18>g;g++)e.push(0);for(var j,g=0;3>g;g++)for(j=0;3>j;j++)e[g+6*j]=this.elements[g+3*j];e[3]=1;e[9]=0;e[15]=0;e[4]=0;e[10]=1;e[16]=0;e[5]=0;e[11]=0;e[17]=1;var l=3,n=l,r,s;do{g=n-l;if(0===e[g+6*g])for(j=g+1;je?(b.x=this.x,b.y=this.y,b.z=this.z):(b.x=this.x/e,b.y=this.y/e,b.z=this.z/e);return[b,d]};var f=new g,p=new g;d.prototype.setFromVectors=function(b,d){if(b.isAntiparallelTo(d))b.tangents(f,p),this.setFromAxisAngle(f,Math.PI);else{var e=b.cross(d); +this.x=e.x;this.y=e.y;this.z=e.z;this.w=Math.sqrt(Math.pow(b.norm(),2)*Math.pow(d.norm(),2))+b.dot(d);this.normalize()}};var m=new g,j=new g,l=new g;d.prototype.mult=function(b,e){e=e||new d;var f=this.w;m.set(this.x,this.y,this.z);j.set(b.x,b.y,b.z);e.w=f*b.w-m.dot(j);m.cross(j,l);e.x=f*j.x+b.w*m.x+l.x;e.y=f*j.y+b.w*m.y+l.y;e.z=f*j.z+b.w*m.z+l.z;return e};d.prototype.inverse=function(b){var e=this.x,j=this.y,f=this.z,l=this.w;b=b||new d;this.conjugate(b);e=1/(e*e+j*j+f*f+l*l);b.x*=e;b.y*=e;b.z*= +e;b.w*=e;return b};d.prototype.conjugate=function(b){b=b||new d;b.x=-this.x;b.y=-this.y;b.z=-this.z;b.w=this.w;return b};d.prototype.normalize=function(){var b=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);0===b?this.w=this.z=this.y=this.x=0:(b=1/b,this.x*=b,this.y*=b,this.z*=b,this.w*=b)};d.prototype.normalizeFast=function(){var b=(3-(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w))/2;0===b?this.w=this.z=this.y=this.x=0:(this.x*=b,this.y*=b,this.z*=b,this.w*=b)};d.prototype.vmult= +function(b,d){d=d||new g;var e=b.x,j=b.y,f=b.z,l=this.x,m=this.y,p=this.z,B=this.w,A=B*e+m*f-p*j,D=B*j+p*e-l*f,F=B*f+l*j-m*e,e=-l*e-m*j-p*f;d.x=A*B+e*-l+D*-p-F*-m;d.y=D*B+e*-m+F*-l-A*-p;d.z=F*B+e*-p+A*-m-D*-l;return d};d.prototype.copy=function(b){this.x=b.x;this.y=b.y;this.z=b.z;this.w=b.w;return this};d.prototype.toEuler=function(b,d){d=d||"YZX";var e,j,f,l=this.x,g=this.y,m=this.z,p=this.w;switch(d){case "YZX":var A=l*g+m*p;0.499A&&(e=-2*Math.atan2(l, +p),j=-Math.PI/2,f=0);if(isNaN(e)){f=l*l;var D=m*m;e=Math.atan2(2*g*p-2*l*m,1-2*g*g-2*D);j=Math.asin(2*A);f=Math.atan2(2*l*p-2*g*m,1-2*f-2*D)}break;default:throw Error("Euler order "+d+" not supported yet.");}b.y=e;b.z=j;b.x=f};d.prototype.setFromEuler=function(b,d,e,j){j=j||"XYZ";var f=Math.cos(b/2),l=Math.cos(d/2),g=Math.cos(e/2);b=Math.sin(b/2);d=Math.sin(d/2);e=Math.sin(e/2);"XYZ"===j?(this.x=b*l*g+f*d*e,this.y=f*d*g-b*l*e,this.z=f*l*e+b*d*g,this.w=f*l*g-b*d*e):"YXZ"===j?(this.x=b*l*g+f*d*e,this.y= +f*d*g-b*l*e,this.z=f*l*e-b*d*g,this.w=f*l*g+b*d*e):"ZXY"===j?(this.x=b*l*g-f*d*e,this.y=f*d*g+b*l*e,this.z=f*l*e+b*d*g,this.w=f*l*g-b*d*e):"ZYX"===j?(this.x=b*l*g-f*d*e,this.y=f*d*g+b*l*e,this.z=f*l*e-b*d*g,this.w=f*l*g+b*d*e):"YZX"===j?(this.x=b*l*g+f*d*e,this.y=f*d*g+b*l*e,this.z=f*l*e-b*d*g,this.w=f*l*g-b*d*e):"XZY"===j&&(this.x=b*l*g-f*d*e,this.y=f*d*g-b*l*e,this.z=f*l*e+b*d*g,this.w=f*l*g+b*d*e);return this};d.prototype.clone=function(){return new d(this.x,this.y,this.z,this.w)}},{"./Vec3":30}], +29:[function(b,e){function d(b){b=b||{};this.position=new g;b.position&&this.position.copy(b.position);this.quaternion=new f;b.quaternion&&this.quaternion.copy(b.quaternion)}var g=b("./Vec3"),f=b("./Quaternion");e.exports=d;var p=new f;d.pointToLocalFrame=function(b,d,e,f){f=f||new g;e.vsub(b,f);d.conjugate(p);p.vmult(f,f);return f};d.prototype.pointToLocal=function(b,e){return d.pointToLocalFrame(this.position,this.quaternion,b,e)};d.pointToWorldFrame=function(b,d,e,f){f=f||new g;d.vmult(e,f);f.vadd(b, +f);return f};d.prototype.pointToWorld=function(b,e){return d.pointToWorldFrame(this.position,this.quaternion,b,e)};d.prototype.vectorToWorldFrame=function(b,d){d=d||new g;this.quaternion.vmult(b,d);return d};d.vectorToWorldFrame=function(b,d,e){b.vmult(d,e);return e};d.vectorToLocalFrame=function(b,d,e,f){f=f||new g;d.w*=-1;d.vmult(e,f);d.w*=-1;return f}},{"./Quaternion":28,"./Vec3":30}],30:[function(b,e){function d(b,d,e){this.x=b||0;this.y=d||0;this.z=e||0}e.exports=d;var g=b("./Mat3");d.ZERO=new d(0, +0,0);d.UNIT_X=new d(1,0,0);d.UNIT_Y=new d(0,1,0);d.UNIT_Z=new d(0,0,1);d.prototype.cross=function(b,e){var f=b.x,g=b.y,m=b.z,t=this.x,p=this.y,x=this.z;e=e||new d;e.x=p*m-x*g;e.y=x*f-t*m;e.z=t*g-p*f;return e};d.prototype.set=function(b,d,e){this.x=b;this.y=d;this.z=e;return this};d.prototype.setZero=function(){this.x=this.y=this.z=0};d.prototype.vadd=function(b,e){if(e)e.x=b.x+this.x,e.y=b.y+this.y,e.z=b.z+this.z;else return new d(this.x+b.x,this.y+b.y,this.z+b.z)};d.prototype.vsub=function(b,e){if(e)e.x= +this.x-b.x,e.y=this.y-b.y,e.z=this.z-b.z;else return new d(this.x-b.x,this.y-b.y,this.z-b.z)};d.prototype.crossmat=function(){return new g([0,-this.z,this.y,this.z,0,-this.x,-this.y,this.x,0])};d.prototype.normalize=function(){var b=this.x,d=this.y,e=this.z,b=Math.sqrt(b*b+d*d+e*e);0Math.abs(f.x)? +p.set(1,0,0):p.set(0,1,0),f.cross(p,b),f.cross(b,d)):(b.set(1,0,0),d.set(0,1,0))};d.prototype.toString=function(){return this.x+","+this.y+","+this.z};d.prototype.toArray=function(){return[this.x,this.y,this.z]};d.prototype.copy=function(b){this.x=b.x;this.y=b.y;this.z=b.z;return this};d.prototype.lerp=function(b,d,e){var f=this.x,g=this.y,m=this.z;e.x=f+(b.x-f)*d;e.y=g+(b.y-g)*d;e.z=m+(b.z-m)*d};d.prototype.almostEquals=function(b,d){void 0===d&&(d=1E-6);return Math.abs(this.x-b.x)>d||Math.abs(this.y- +b.y)>d||Math.abs(this.z-b.z)>d?!1:!0};d.prototype.almostZero=function(b){void 0===b&&(b=1E-6);return Math.abs(this.x)>b||Math.abs(this.y)>b||Math.abs(this.z)>b?!1:!0};var m=new d;d.prototype.isAntiparallelTo=function(b,d){this.negate(m);return m.almostEquals(b,d)};d.prototype.clone=function(){return new d(this.x,this.y,this.z)}},{"./Mat3":27}],31:[function(b,e){function d(b){b=b||{};g.apply(this);this.id=d.idCounter++;this.postStep=this.preStep=this.world=null;this.vlambda=new f;this.collisionFilterGroup= +"number"===typeof b.collisionFilterGroup?b.collisionFilterGroup:1;this.collisionFilterMask="number"===typeof b.collisionFilterMask?b.collisionFilterMask:1;this.collisionResponse=!0;this.position=new f;b.position&&this.position.copy(b.position);this.previousPosition=new f;this.initPosition=new f;this.velocity=new f;b.velocity&&this.velocity.copy(b.velocity);this.initVelocity=new f;this.force=new f;var e="number"===typeof b.mass?b.mass:0;this.mass=e;this.invMass=0=e?d.STATIC:d.DYNAMIC;typeof b.type===typeof d.STATIC&&(this.type=b.type);this.allowSleep="undefined"!==typeof b.allowSleep?b.allowSleep:!0;this.sleepState=0;this.sleepSpeedLimit="undefined"!==typeof b.sleepSpeedLimit?b.sleepSpeedLimit:0.1;this.sleepTimeLimit="undefined"!==typeof b.sleepTimeLimit?b.sleepTimeLimit:1;this.timeLastSleepy=0;this._wakeUpAfterNarrowphase=!1;this.torque=new f;this.quaternion=new m; +b.quaternion&&this.quaternion.copy(b.quaternion);this.initQuaternion=new m;this.angularVelocity=new f;b.angularVelocity&&this.angularVelocity.copy(b.angularVelocity);this.initAngularVelocity=new f;this.interpolatedPosition=new f;this.interpolatedQuaternion=new m;this.shapes=[];this.shapeOffsets=[];this.shapeOrientations=[];this.inertia=new f;this.invInertia=new f;this.invInertiaWorld=new p;this.invMassSolve=0;this.invInertiaSolve=new f;this.invInertiaWorldSolve=new p;this.fixedRotation="undefined"!== +typeof b.fixedRotation?b.fixedRotation:!1;this.angularDamping="undefined"!==typeof b.angularDamping?b.angularDamping:0.01;this.aabb=new j;this.aabbNeedsUpdate=!0;this.wlambda=new f;b.shape&&this.addShape(b.shape);this.updateMassProperties()}e.exports=d;var g=b("../utils/EventTarget");b("../shapes/Shape");var f=b("../math/Vec3"),p=b("../math/Mat3"),m=b("../math/Quaternion");b("../material/Material");var j=b("../collision/AABB"),l=b("../shapes/Box");d.prototype=new g;d.prototype.constructor=d;d.DYNAMIC= +1;d.STATIC=2;d.KINEMATIC=4;d.AWAKE=0;d.SLEEPY=1;d.SLEEPING=2;d.idCounter=0;d.prototype.wakeUp=function(){var b=this.sleepState;this.sleepState=0;b===d.SLEEPING&&this.dispatchEvent({type:"wakeup"})};d.prototype.sleep=function(){this.sleepState=d.SLEEPING;this.velocity.set(0,0,0);this.angularVelocity.set(0,0,0)};d.sleepyEvent={type:"sleepy"};d.sleepEvent={type:"sleep"};d.prototype.sleepTick=function(b){if(this.allowSleep){var e=this.sleepState,j=this.velocity.norm2()+this.angularVelocity.norm2(),f= +Math.pow(this.sleepSpeedLimit,2);e===d.AWAKE&&jf?this.wakeUp():e===d.SLEEPY&&b-this.timeLastSleepy>this.sleepTimeLimit&&(this.sleep(),this.dispatchEvent(d.sleepEvent))}};d.prototype.updateSolveMassProperties=function(){this.sleepState===d.SLEEPING||this.type===d.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve.setZero(),this.invInertiaWorldSolve.setZero()):(this.invMassSolve=this.invMass,this.invInertiaSolve.copy(this.invInertia), +this.invInertiaWorldSolve.copy(this.invInertiaWorld))};d.prototype.pointToLocalFrame=function(b,d){d=d||new f;b.vsub(this.position,d);this.quaternion.conjugate().vmult(d,d);return d};d.prototype.vectorToLocalFrame=function(b,d){d=d||new f;this.quaternion.conjugate().vmult(b,d);return d};d.prototype.pointToWorldFrame=function(b,d){d=d||new f;this.quaternion.vmult(b,d);d.vadd(this.position,d);return d};d.prototype.vectorToWorldFrame=function(b,d){d=d||new f;this.quaternion.vmult(b,d);return d};var n= +new f,r=new m;d.prototype.addShape=function(b,d,e){var j=new f,l=new m;d&&j.copy(d);e&&l.copy(e);this.shapes.push(b);this.shapeOffsets.push(j);this.shapeOrientations.push(l);this.updateMassProperties();this.updateBoundingRadius();this.aabbNeedsUpdate=!0;return this};d.prototype.updateBoundingRadius=function(){for(var b=this.shapes,d=this.shapeOffsets,e=b.length,j=0,f=0;f!==e;f++){var l=b[f];l.updateBoundingSphereRadius();var g=d[f].norm(),l=l.boundingSphereRadius;g+l>j&&(j=g+l)}this.boundingRadius= +j};var s=new j;d.prototype.computeAABB=function(){for(var b=this.shapes,d=this.shapeOffsets,e=this.shapeOrientations,j=b.length,f=this.quaternion,l=this.aabb,g=0;g!==j;g++){var m=b[g];e[g].mult(f,r);r.vmult(d[g],n);n.vadd(this.position,n);m.calculateWorldAABB(n,r,s.lowerBound,s.upperBound);0===g?l.copy(s):l.extend(s)}this.aabbNeedsUpdate=!1};var t=new p,u=new p;new p;d.prototype.updateInertiaWorld=function(b){var d=this.invInertia;d.x===d.y&&d.y===d.z&&!b||(t.setRotationFromQuaternion(this.quaternion), +t.transpose(u),t.scale(d,t),t.mmult(u,this.invInertiaWorld))};var x=new f,y=new f;d.prototype.applyForce=function(b,e){this.type===d.DYNAMIC&&(e.vsub(this.position,x),x.cross(b,y),this.force.vadd(b,this.force),this.torque.vadd(y,this.torque))};var v=new f,B=new f;d.prototype.applyLocalForce=function(b,e){this.type===d.DYNAMIC&&(this.vectorToWorldFrame(b,v),this.pointToWorldFrame(e,B),this.applyForce(v,B))};var A=new f,D=new f,F=new f;d.prototype.applyImpulse=function(b,e){this.type===d.DYNAMIC&&(e.vsub(this.position, +A),D.copy(b),D.mult(this.invMass,D),this.velocity.vadd(D,this.velocity),A.cross(b,F),this.invInertiaWorld.vmult(F,F),this.angularVelocity.vadd(F,this.angularVelocity))};var C=new f,z=new f;d.prototype.applyLocalImpulse=function(b,e){this.type===d.DYNAMIC&&(this.vectorToWorldFrame(b,C),this.pointToWorldFrame(e,z),this.applyImpulse(C,z))};var G=new f;d.prototype.updateMassProperties=function(){this.invMass=0l.dot(j.velocity)&&(this.currentVehicleSpeedKmHour*=-1);for(l=0;lm.maxSuspensionForce&&(r=m.maxSuspensionForce);m.raycastResult.hitNormalWorld.scale(r*b,g);m.raycastResult.hitPointWorld.vsub(j.position,n);j.applyImpulse(g,m.raycastResult.hitPointWorld)}this.updateFriction(b); +g=new f;n=new f;r=new f;for(l=0;lMath.abs(m.engineForce)&&(m.deltaRotation=0);m.rotation+=m.deltaRotation;m.deltaRotation*=0.99}};d.prototype.updateSuspension=function(){for(var b=this.chassisBody.mass,d=this.wheelInfos,e=d.length,j=0;jg?f.dampingCompression:f.dampingRelaxation)*g;f.suspensionForce=l*b;0>f.suspensionForce&&(f.suspensionForce= +0)}else f.suspensionForce=0}};d.prototype.removeFromWorld=function(b){b.remove(this.chassisBody);b.removeEventListener("preStep",this.preStepCallback);this.world=null};var s=new f,t=new f;d.prototype.castRay=function(b){this.updateWheelTransformWorld(b);var d=this.chassisBody,e=-1;b.directionWorld.scale(b.suspensionRestLength+b.radius,s);var j=b.chassisConnectionPointWorld;j.vadd(s,t);var l=b.raycastResult;l.reset();var g=d.collisionResponse;d.collisionResponse=!1;this.world.rayTest(j,t,l);d.collisionResponse= +g;j=l.body;b.raycastResult.groundObject=0;j?(e=l.distance,b.raycastResult.hitNormalWorld=l.hitNormalWorld,b.isInContact=!0,b.suspensionLength=l.distance-b.radius,l=b.suspensionRestLength-b.maxSuspensionTravel,j=b.suspensionRestLength+b.maxSuspensionTravel,b.suspensionLengthj&&(b.suspensionLength=j,b.raycastResult.reset()),l=b.raycastResult.hitNormalWorld.dot(b.directionWorld),j=new f,d.getVelocityAtWorldPoint(b.raycastResult.hitPointWorld,j),d=b.raycastResult.hitNormalWorld.dot(j), +-0.1<=l?(b.suspensionRelativeVelocity=0,b.clippedInvContactDotSuspension=10):(l=-1/l,b.suspensionRelativeVelocity=d*l,b.clippedInvContactDotSuspension=l)):(b.suspensionLength=b.suspensionRestLength+0*b.maxSuspensionTravel,b.suspensionRelativeVelocity=0,b.directionWorld.scale(-1,b.raycastResult.hitNormalWorld),b.clippedInvContactDotSuspension=1);return e};d.prototype.updateWheelTransformWorld=function(b){b.isInContact=!1;var d=this.chassisBody;d.pointToWorldFrame(b.chassisConnectionPointLocal,b.chassisConnectionPointWorld); +d.vectorToWorldFrame(b.directionLocal,b.directionWorld);d.vectorToWorldFrame(b.axleLocal,b.axleWorld)};d.prototype.updateWheelTransform=function(b){b=this.wheelInfos[b];this.updateWheelTransformWorld(b);b.directionLocal.scale(-1,l);n.copy(b.axleLocal);l.cross(n,r);r.normalize();n.normalize();var d=b.steering,e=new p;e.setFromAxisAngle(l,d);d=new p;d.setFromAxisAngle(n,b.rotation);var j=b.worldTransform.quaternion;this.chassisBody.quaternion.mult(e,j);j.mult(d,j);j.normalize();e=b.worldTransform.position; +e.copy(b.directionWorld);e.scale(b.suspensionLength,e);e.vadd(b.chassisConnectionPointWorld,e)};var u=[new f(1,0,0),new f(0,1,0),new f(0,0,1)];d.prototype.getWheelTransformWorld=function(b){return this.wheelInfos[b].worldTransform};var x=new f,y=[],v=[];d.prototype.updateFriction=function(b){for(var d=this.wheelInfos,e=d.length,j=this.chassisBody,l=0,n=0;nl&&(this.sliding=!0,m.sliding=!0,l=r/Math.sqrt(t),m.skidInfo*=l))}if(this.sliding)for(n=0;nm.skidInfo&&(m.forwardImpulse*=m.skidInfo,m.sideImpulse*=m.skidInfo);for(n=0;nthis.particles.length&&this.neighbors.pop())};var f=new g;d.prototype.getNeighbors=function(b,d){for(var e=this.particles.length,j=b.id,l=this.smoothingRadius*this.smoothingRadius,g=0;g!==e;g++){var n=this.particles[g];n.position.vsub(b.position,f);j!==n.id&&f.norm2()g;g++){m=j[g];d.vmult(m,m);b.vadd(m,m);var p=m.x,y=m.y,m=m.z;p>f.x&&(f.x=p);y>f.y&&(f.y=y);m>f.z&&(f.z=m);pd.dot(this.vertices[this.faces[b][0]])){console.error(".faceNormals["+b+"] = Vec3("+d.toString()+") looks like it points into the shape? The vertices follow. Make sure they are ordered CCW around the normal, using the right hand rule.");for(d=0;dt&&(t=x,p=u)}for(var t=[],u=e.faces[p],x=u.length,y=0;ym)){b=this.faces[m];b.connectedFaces=[];for(r=0;r=d&&g.push({point:e,normal:I,depth:d}))}};d.prototype.clipFaceAgainstPlane=function(b,d,e,j){var l,g,n=b.length;if(2>n)return d;var m=b[b.length-1],r=b[0];l=e.dot(m)+j;for(var s=0;sl){if(0>g){var p=new f;p.copy(r)}else p=new f,m.lerp(r,l/(l-g),p);d.push(p)}else 0>g&&(p=new f,m.lerp(r, +l/(l-g),p),d.push(p),d.push(r));m=r;l=g}return d};d.prototype.computeWorldVertices=function(b,d){for(var e=this.vertices.length;this.worldVertices.lengthd.x&&(d.x=l.x);l.yd.y&&(d.y=l.y);l.zd.z&&(d.z=l.z)}};d.prototype.computeWorldFaceNormals=function(b){for(var d=this.faceNormals.length;this.worldFaceNormals.lengthb&&(b=f)}this.boundingSphereRadius=Math.sqrt(b)};var Z=new f;d.prototype.calculateWorldAABB=function(b,d,e,j){for(var f=this.vertices.length,l=this.vertices,g,n,m,r,s,p,t=0;tr||void 0===r)r=u.x;if(u.ys||void 0===s)s=u.y;if(u.zp||void 0===p)p=u.z}e.set(g,n,m);j.set(r,s,p)};d.prototype.volume=function(){return 4* +Math.PI*this.boundingSphereRadius/3};d.prototype.getAveragePointLocal=function(b){b=b||new f;for(var d=this.vertices.length,e=this.vertices,j=0;jm&&0d)return!1}return-1};new f;var ea=new f,T=new f;d.project=function(b,d,e,j,f){var l=b.vertices.length,g=0,n=0;b=b.vertices;T.setZero();p.vectorToLocalFrame(e,j,d,ea);p.pointToLocalFrame(e,j,T,T);d=T.dot(ea);n=g=b[0].dot(ea);for(e=1;eg&& +(g=j),jg&&(l=n,n=g,g=l);f[0]=g;f[1]=n}},{"../math/Quaternion":28,"../math/Transform":29,"../math/Vec3":30,"./Shape":43}],39:[function(b,e){function d(b,d,e,n){var r=[],s=[],t=[],u=[],x=[],y=Math.cos,v=Math.sin;r.push(new f(d*y(0),d*v(0),0.5*-e));u.push(0);r.push(new f(b*y(0),b*v(0),0.5*e));x.push(1);for(var B=0;Bd&&(d=g)}this.maxValue=d};d.prototype.setHeightValueAtIndex=function(b,d,e){this.data[b][d]=e;this.clearCachedConvexTrianglePillar(b,d,!1);0p&&(p=y)}g[0]=this.minValue;g[1]=p};d.prototype.getIndexOfPosition=function(b,d,e,f){var g=this.elementSize,m=this.data;b=Math.floor(b/g);d=Math.floor(d/ +g);e[0]=b;e[1]=d;f&&(0>b&&(b=0),0>d&&(d=0),b>=m.length-1&&(b=m.length-1),d>=m[0].length-1&&(d=m[0].length-1));return 0>b||0>d||b>=m.length-1||d>=m[0].length-1?!1:!0};d.prototype.getHeightAt=function(b,d,e){var f=[];this.getIndexOfPosition(b,d,f,e);b=[];this.getRectMinMax(f[0],f[1]+1,f[0],f[1]+1,b);return(b[0]+b[1])/2};d.prototype.getCacheConvexTrianglePillarKey=function(b,d,e){return b+"_"+d+"_"+(e?1:0)};d.prototype.getCachedConvexTrianglePillar=function(b,d,e){return this._cachedPillars[this.getCacheConvexTrianglePillarKey(b, +d,e)]};d.prototype.setCachedConvexTrianglePillar=function(b,d,e,f,g){this._cachedPillars[this.getCacheConvexTrianglePillarKey(b,d,e)]={convex:f,offset:g}};d.prototype.clearCachedConvexTrianglePillar=function(b,d,e){delete this._cachedPillars[this.getCacheConvexTrianglePillarKey(b,d,e)]};d.prototype.getConvexTrianglePillar=function(b,d,e){var g=this.pillarConvex,m=this.pillarOffset;if(this.cacheEnabled){var t=this.getCachedConvexTrianglePillar(b,d,e);if(t){this.pillarConvex=t.convex;this.pillarOffset= +t.offset;return}g=new f;m=new p;this.pillarConvex=g;this.pillarOffset=m}var t=this.data,u=this.elementSize,x=g.faces;g.vertices.length=6;for(var y=0;6>y;y++)g.vertices[y]||(g.vertices[y]=new p);x.length=5;for(y=0;5>y;y++)x[y]||(x[y]=[]);var y=g.vertices,v=(Math.min(t[b][d],t[b+1][d],t[b][d+1],t[b+1][d+1])-this.minValue)/2+this.minValue;e?(m.set((b+0.75)*u,(d+0.75)*u,v),y[0].set(0.25*u,0.25*u,t[b+1][d+1]-v),y[1].set(-0.75*u,0.25*u,t[b][d+1]-v),y[2].set(0.25*u,-0.75*u,t[b+1][d]-v),y[3].set(0.25*u,0.25* +u,-v-1),y[4].set(-0.75*u,0.25*u,-v-1),y[5].set(0.25*u,-0.75*u,-v-1),x[0][0]=0,x[0][1]=1,x[0][2]=2,x[1][0]=5,x[1][1]=4,x[1][2]=3,x[2][0]=2,x[2][1]=5,x[2][2]=3,x[2][3]=0,x[3][0]=3,x[3][1]=4,x[3][2]=1,x[3][3]=0,x[4][0]=1,x[4][1]=4,x[4][2]=5,x[4][3]=2):(m.set((b+0.25)*u,(d+0.25)*u,v),y[0].set(-0.25*u,-0.25*u,t[b][d]-v),y[1].set(0.75*u,-0.25*u,t[b+1][d]-v),y[2].set(-0.25*u,0.75*u,t[b][d+1]-v),y[3].set(-0.25*u,-0.25*u,-v-1),y[4].set(0.75*u,-0.25*u,-v-1),y[5].set(-0.25*u,0.75*u,-v-1),x[0][0]=0,x[0][1]=1, +x[0][2]=2,x[1][0]=5,x[1][1]=4,x[1][2]=3,x[2][0]=0,x[2][1]=2,x[2][2]=5,x[2][3]=3,x[3][0]=1,x[3][1]=0,x[3][2]=3,x[3][3]=4,x[4][0]=4,x[4][1]=5,x[4][2]=2,x[4][3]=1);g.computeNormals();g.computeEdges();g.updateBoundingSphereRadius();this.setCachedConvexTrianglePillar(b,d,e,g,m)};d.prototype.calculateLocalInertia=function(b,d){d=d||new p;d.set(0,0,0);return d};d.prototype.volume=function(){return Number.MAX_VALUE};d.prototype.calculateWorldAABB=function(b,d,e,f){e.set(-Number.MAX_VALUE,-Number.MAX_VALUE, +-Number.MAX_VALUE);f.set(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)};d.prototype.updateBoundingSphereRadius=function(){var b=this.data,d=this.elementSize;this.boundingSphereRadius=(new p(b.length*d,b[0].length*d,Math.max(Math.abs(this.maxValue),Math.abs(this.minValue)))).norm()}},{"../math/Vec3":30,"../utils/Utils":53,"./ConvexPolyhedron":38,"./Shape":43}],41:[function(b,e){function d(){g.call(this);this.type=g.types.PARTICLE}e.exports=d;var g=b("./Shape"),f=b("../math/Vec3");d.prototype= +new g;d.prototype.constructor=d;d.prototype.calculateLocalInertia=function(b,d){d=d||new f;d.set(0,0,0);return d};d.prototype.volume=function(){return 0};d.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=0};d.prototype.calculateWorldAABB=function(b,d,e,f){e.copy(b);f.copy(b)}},{"../math/Vec3":30,"./Shape":43}],42:[function(b,e){function d(){g.call(this);this.type=g.types.PLANE;this.worldNormal=new f;this.worldNormalNeedsUpdate=!0;this.boundingSphereRadius=Number.MAX_VALUE} +e.exports=d;var g=b("./Shape"),f=b("../math/Vec3");d.prototype=new g;d.prototype.constructor=d;d.prototype.computeWorldNormal=function(b){var d=this.worldNormal;d.set(0,0,1);b.vmult(d,d);this.worldNormalNeedsUpdate=!1};d.prototype.calculateLocalInertia=function(b,d){return d||new f};d.prototype.volume=function(){return Number.MAX_VALUE};var p=new f;d.prototype.calculateWorldAABB=function(b,d,e,f){p.set(0,0,1);d.vmult(p,p);d=Number.MAX_VALUE;e.set(-d,-d,-d);f.set(d,d,d);1===p.x&&(f.x=b.x);1===p.y&& +(f.y=b.y);1===p.z&&(f.z=b.z);-1===p.x&&(e.x=b.x);-1===p.y&&(e.y=b.y);-1===p.z&&(e.z=b.z)};d.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=Number.MAX_VALUE}},{"../math/Vec3":30,"./Shape":43}],43:[function(b,e){function d(){this.id=d.idCounter++;this.boundingSphereRadius=this.type=0;this.collisionResponse=!0;this.material=null}e.exports=d;d=b("./Shape");b("../math/Vec3");b("../math/Quaternion");b("../material/Material");d.prototype.constructor=d;d.prototype.updateBoundingSphereRadius= +function(){throw"computeBoundingSphereRadius() not implemented for shape type "+this.type;};d.prototype.volume=function(){throw"volume() not implemented for shape type "+this.type;};d.prototype.calculateLocalInertia=function(){throw"calculateLocalInertia() not implemented for shape type "+this.type;};d.idCounter=0;d.types={SPHERE:1,PLANE:2,BOX:4,COMPOUND:8,CONVEXPOLYHEDRON:16,HEIGHTFIELD:32,PARTICLE:64,CYLINDER:128,TRIMESH:256}},{"../material/Material":25,"../math/Quaternion":28,"../math/Vec3":30, +"./Shape":43}],44:[function(b,e){function d(b){g.call(this);this.radius=void 0!==b?Number(b):1;this.type=g.types.SPHERE;if(0>this.radius)throw Error("The sphere radius cannot be negative.");this.updateBoundingSphereRadius()}e.exports=d;var g=b("./Shape"),f=b("../math/Vec3");d.prototype=new g;d.prototype.constructor=d;d.prototype.calculateLocalInertia=function(b,d){d=d||new f;var e=2*b*this.radius*this.radius/5;d.x=e;d.y=e;d.z=e;return d};d.prototype.volume=function(){return 4*Math.PI*this.radius/ +3};d.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=this.radius};d.prototype.calculateWorldAABB=function(b,d,e,f){d=this.radius;for(var g=["x","y","z"],r=0;rb.x&&(b.x=A.x),A.yb.y&&(b.y=A.y),A.zb.z&&(b.z=A.z)};d.prototype.updateAABB=function(){this.computeLocalAABB(this.aabb)};d.prototype.updateBoundingSphereRadius= +function(){for(var b=0,d=this.vertices,e=new f,j=0,d=d.length/3;j!==d;j++){this.getVertex(j,e);var g=e.norm2();g>b&&(b=g)}this.boundingSphereRadius=Math.sqrt(b)};new f;var D=new p,F=new m;d.prototype.calculateWorldAABB=function(b,d,e,j){D.position=b;D.quaternion=d;this.aabb.toWorldFrame(D,F);e.copy(F.lowerBound);j.copy(F.upperBound)};d.prototype.volume=function(){return 4*Math.PI*this.boundingSphereRadius/3};d.createTorus=function(b,e,j,f,g){b=b||1;e=e||0.5;j=j||8;f=f||6;g=g||2*Math.PI;for(var l= +[],n=[],m=0;m<=j;m++)for(var r=0;r<=f;r++){var s=r/f*g,p=2*m/j*Math.PI,t=(b+e*Math.cos(p))*Math.cos(s),s=(b+e*Math.cos(p))*Math.sin(s),p=e*Math.sin(p);l.push(t,s,p)}for(m=1;m<=j;m++)for(r=1;r<=f;r++)b=(f+1)*(m-1)+r-1,e=(f+1)*(m-1)+r,g=(f+1)*m+r,n.push((f+1)*m+r-1,b,g),n.push(b,e,g);return new d(l,n)}},{"../collision/AABB":3,"../math/Quaternion":28,"../math/Transform":29,"../math/Vec3":30,"../utils/Octree":50,"./Shape":43}],46:[function(b,e){function d(){g.call(this);this.iterations=10;this.tolerance= +1E-7}e.exports=d;b("../math/Vec3");b("../math/Quaternion");var g=b("./Solver");d.prototype=new g;var f=[],p=[],m=[];d.prototype.solve=function(b,d){var e=0,g=this.iterations,s=this.tolerance*this.tolerance,t=this.equations,u=t.length,x=d.bodies,y=x.length,v,B,A,D,F;if(0!==u)for(A=0;A!==y;A++)x[A].updateSolveMassProperties();p.length=u;m.length=u;f.length=u;for(A=0;A!==u;A++){var C=t[A];f[A]=0;m[A]=C.computeB(b);p[A]=1/C.computeC()}if(0!==u){for(A=0;A!==y;A++)C=x[A],e=C.wlambda,C.vlambda.set(0,0,0), +e&&e.set(0,0,0);for(e=0;e!==g;e++){for(var z=A=0;z!==u;z++)C=t[z],v=m[z],B=p[z],F=f[z],D=C.computeGWlambda(),v=B*(v-D-C.eps*F),F+vC.maxForce&&(v=C.maxForce-F),f[z]+=v,A+=0this.nodePool.length;)this.nodePool.push(this.createNode())}function g(b){for(var d=b.length,e=0;e!==d;e++){var j=b[e];if(!j.visited&& +!(j.body.type&s))return j}return!1}function f(b,d,e){d.push(b.body);d=b.eqs.length;for(var j=0;j!==d;j++){var f=b.eqs[j];-1===e.indexOf(f)&&e.push(f)}}function p(b,d){return d.id-b.id}e.exports=d;b("../math/Vec3");b("../math/Quaternion");var m=b("./Solver"),j=b("../objects/Body");d.prototype=new m;var l=[],n=[],r={bodies:[]},s=j.STATIC,t=[];d.prototype.createNode=function(){return{body:null,children:[],eqs:[],visited:!1}};d.prototype.solve=function(b,d){for(var e=this.nodePool,j=d.bodies,m=this.equations, +s=m.length,D=j.length,F=this.subsolver;e.lengthd){var e=d;d=b;b=e}return this.data[b+"-"+d]};d.prototype.set=function(b,d,e){if(b>d){var m=d;d=b;b=m}m=b+"-"+d;this.get(b,d)||this.data.keys.push(m); +this.data[m]=e};d.prototype.reset=function(){for(var b=this.data,d=b.keys;0r.boundingSphereRadius+q.boundingSphereRadius)){var p=null;r.material&&q.material&&(p=e.getContactMaterial(r.material,q.material)||null);this.currentContactMaterial=p||n||e.defaultContactMaterial;(p=this[r.type|q.type])&&(r.type=D.dot(q)){var p=this.createContactEquation(n,r,b,d);p.ni.copy(D);var t=C;D.scale(q.dot(D),t);s.vsub(t,t);p.ri.copy(t);p.ri.vsub(n.position,p.ri);p.rj.copy(s);p.rj.vsub(r.position,p.rj);this.result.push(p);this.createFrictionEquationsFromContact(p,this.frictionResult)}}};var z=new m,G=new m;new m;var N=new m,L=new m,S=new m,I=new m,Z=new m,da=new m,E=new m,M=new m,ea=new m,T=new m,O=new m,J=new g,H=[];d.prototype[f.types.SPHERE|f.types.TRIMESH]=d.prototype.sphereTrimesh= +function(b,d,e,f,g,l,n,m){j.pointToLocalFrame(f,l,e,E);g=b.radius;J.lowerBound.set(E.x-g,E.y-g,E.z-g);J.upperBound.set(E.x+g,E.y+g,E.z+g);d.getTrianglesInAABB(J,H);var r=b.radius*b.radius;for(g=0;gs;s++)if(d.getVertex(d.indices[3*H[g]+s],N),N.vsub(E,G),G.norm2()<=r){L.copy(N);j.pointToWorldFrame(f,l,L,N);N.vsub(e,G);var q=this.createContactEquation(n,m,b,d);q.ni.copy(G);q.ni.normalize();q.ri.copy(q.ni);q.ri.scale(b.radius,q.ri);q.ri.vadd(e,q.ri);q.ri.vsub(n.position,q.ri); +q.rj.copy(N);q.rj.vsub(m.position,q.rj);this.result.push(q);this.createFrictionEquationsFromContact(q,this.frictionResult)}for(g=0;gs;s++)d.getVertex(d.indices[3*H[g]+s],S),d.getVertex(d.indices[3*H[g]+(s+1)%3],I),I.vsub(S,Z),E.vsub(I,M),e=M.dot(Z),E.vsub(S,M),q=M.dot(Z),0e&&(E.vsub(S,M),da.copy(Z),da.normalize(),q=M.dot(da),da.scale(q,M),M.vadd(S,M),e=M.distanceTo(E),e-C&&(J-A)&&(E=Math.abs(E-y-g),null===t||EE&&0=M&&!1===A)null===A&&(A=0=Ha.dot(qa)){var r=this.createContactEquation(l,n,b,d),q=lb;Ha.mult(Ha.dot(qa), +q);Ba.vsub(q,q);q.vsub(e,r.ri);r.ni.copy(Ha);Ba.vsub(j,r.rj);r.ri.vadd(e,r.ri);r.ri.vsub(l.position,r.ri);r.rj.vadd(j,r.rj);r.rj.vsub(n.position,r.rj);this.result.push(r);f++;this.enableFrictionReduction||this.createFrictionEquationsFromContact(r,this.frictionResult)}this.enableFrictionReduction&&f&&this.createFrictionFromAverage(f)};var W=new m,Qa=new m;d.prototype[f.types.CONVEXPOLYHEDRON]=d.prototype.convexConvex=function(b,d,e,j,f,g,l,n,m,r,q,s){if(!(e.distanceTo(j)>b.boundingSphereRadius+d.boundingSphereRadius)&& +b.findSeparatingAxis(d,e,f,j,g,W,q,s)){q=[];b.clipAgainstHull(e,f,d,j,g,W,-100,100,q);for(g=f=0;g!==q.length;g++){s=this.createContactEquation(l,n,b,d,m,r);var p=s.ri,t=s.rj;W.negate(s.ni);q[g].normal.negate(Qa);Qa.mult(q[g].depth,Qa);q[g].point.vadd(Qa,p);t.copy(q[g].point);p.vsub(e,p);t.vsub(j,t);p.vadd(e,p);p.vsub(l.position,p);t.vadd(j,t);t.vsub(n.position,t);this.result.push(s);f++;this.enableFrictionReduction||this.createFrictionEquationsFromContact(s,this.frictionResult)}this.enableFrictionReduction&& +f&&this.createFrictionFromAverage(f)}};var ga=new m,ma=new m,Ra=new m;d.prototype[f.types.PLANE|f.types.PARTICLE]=d.prototype.planeParticle=function(b,d,e,j,f,g,l,n){ga.set(0,0,1);l.quaternion.vmult(ga,ga);j.vsub(l.position,ma);0>=ga.dot(ma)&&(b=this.createContactEquation(n,l,d,b),b.ni.copy(ga),b.ni.negate(b.ni),b.ri.set(0,0,0),ga.mult(ga.dot(j),Ra),j.vsub(Ra,Ra),b.rj.copy(Ra),this.result.push(b),this.createFrictionEquationsFromContact(b,this.frictionResult))};var Ia=new m;d.prototype[f.types.PARTICLE| +f.types.SPHERE]=d.prototype.sphereParticle=function(b,d,e,j,f,g,l,n){Ia.set(0,0,1);j.vsub(e,Ia);Ia.norm2()<=b.radius*b.radius&&(d=this.createContactEquation(n,l,d,b),Ia.normalize(),d.rj.copy(Ia),d.rj.mult(b.radius,d.rj),d.ni.copy(Ia),d.ni.negate(d.ni),d.ri.set(0,0,0),this.result.push(d),this.createFrictionEquationsFromContact(d,this.frictionResult))};var zb=new l,Sa=new m;new m;var db=new m,Da=new m,Ca=new m;d.prototype[f.types.PARTICLE|f.types.CONVEXPOLYHEDRON]=d.prototype.convexParticle=function(b, +d,e,j,f,g,l,n){var m=-1;g=null;var r=0;Sa.copy(j);Sa.vsub(e,Sa);f.conjugate(zb);zb.vmult(Sa,Sa);if(b.pointIsInside(Sa)){b.worldVerticesNeedsUpdate&&b.computeWorldVertices(e,f);b.worldFaceNormalsNeedsUpdate&&b.computeWorldFaceNormals(f);f=0;for(var q=b.faces.length;f!==q;f++){var s=b.worldFaceNormals[f];j.vsub(b.worldVertices[b.faces[f][0]],Da);var p=-s.dot(Da);if(null===g||Math.abs(p)t||0>q||p>r.length||u>r[0].length)){0>p&&(p=0);0>t&&(t=0);0>u&&(u=0);0>q&&(q=0);p>=r.length&& +(p=r.length-1);t>=r.length&&(t=r.length-1);q>=r[0].length&&(q=r[0].length-1);u>=r[0].length&&(u=r[0].length-1);r=[];d.getRectMinMax(p,u,t,q,r);var x=r[0];if(!(Ea.z-s>r[1]||Ea.z+st||0>s||p>r.length||s>r[0].length)){0> +p&&(p=0);0>t&&(t=0);0>u&&(u=0);0>s&&(s=0);p>=r.length&&(p=r.length-1);t>=r.length&&(t=r.length-1);s>=r[0].length&&(s=r[0].length-1);u>=r[0].length&&(u=r[0].length-1);r=[];d.getRectMinMax(p,u,t,s,r);var x=r[0];if(!(xa.z-q>r[1]||xa.z+q1E3*b);f++);this.time+=d;b=this.time%b/b;d=this.bodies;for(j=0;j!==d.length;j++)e=d[j],e.type!==s.STATIC&&e.sleepState!==s.SLEEPING?(e.position.vsub(e.previousPosition,D),D.scale(b,D),e.position.vadd(D,e.interpolatedPosition)):(e.interpolatedPosition.copy(e.position), +e.interpolatedQuaternion.copy(e.quaternion))}};var F={type:"postStep"},C={type:"preStep"},z={type:"collide",body:null,contact:null},G=[],N=[],L=[],S=[];new g;new g;new g;new g;new g;new g;new g;new g;new g;new f;var I=new f,Z=new f,da=new g;d.prototype.internalStep=function(b){this.dt=b;var d=this.contacts,e=this.numObjects(),j=this.bodies,f=this.solver,g=this.gravity,l=this.doProfiling,n=this.profile,m=s.DYNAMIC,r,p=this.constraints;g.norm();var t=g.x,u=g.y,x=g.z;l&&(r=performance.now());for(g=0;g!== +e;g++){var v=j[g];if(v.type&m){var y=v.force,v=v.mass;y.x+=v*t;y.y+=v*u;y.z+=v*x}}g=0;for(v=this.subsystems.length;g!==v;g++)this.subsystems[g].update();l&&(r=performance.now());L.length=0;S.length=0;this.broadphase.collisionPairs(this,L,S);l&&(n.broadphase=performance.now()-r);v=p.length;for(g=0;g!==v;g++)if(t=p[g],!t.collideConnected)for(u=L.length-1;0<=u;u-=1)if(t.bodyA===L[u]&&t.bodyB===S[u]||t.bodyB===L[u]&&t.bodyA===S[u])L.splice(u,1),S.splice(u,1);this.collisionMatrixTick();l&&(r=performance.now()); +v=d.length;for(g=0;g!==v;g++)G.push(d[g]);d.length=0;v=this.frictionEquations.length;for(g=0;g!==v;g++)N.push(this.frictionEquations[g]);this.frictionEquations.length=0;this.narrowphase.getContacts(L,S,this,d,G,this.frictionEquations,N);l&&(n.narrowphase=performance.now()-r);l&&(r=performance.now());for(g=0;g=2*B&&(v._wakeUpAfterNarrowphase=!0)}x.allowSleep&&x.type===s.DYNAMIC&&(x.sleepState===s.SLEEPING&&v.sleepState===s.AWAKE&&v.type!==s.STATIC)&&(y=v.velocity.norm2()+ +v.angularVelocity.norm2(),B=Math.pow(v.sleepSpeedLimit,2),y>=2*B&&(x._wakeUpAfterNarrowphase=!0));this.collisionMatrix.set(v,x,!0);this.collisionMatrixPrevious.get(v,x)||(z.body=x,z.contact=t,v.dispatchEvent(z),z.body=v,x.dispatchEvent(z))}l&&(n.makeContactConstraints=performance.now()-r,r=performance.now());for(g=0;g!==e;g++)v=j[g],v._wakeUpAfterNarrowphase&&(v.wakeUp(),v._wakeUpAfterNarrowphase=!1);v=p.length;for(g=0;g!==v;g++){t=p[g];t.update();u=0;for(d=t.equations.length;u!==d;u++)f.addEquation(t.equations[u])}f.solve(b, +this);l&&(n.solve=performance.now()-r);f.removeAllEquations();f=Math.pow;for(g=0;g!==e;g++)if(v=j[g],v.type&m&&(p=f(1-v.linearDamping,b),d=v.velocity,d.mult(p,d),p=v.angularVelocity))d=f(1-v.angularDamping,b),p.mult(d,p);this.dispatchEvent(C);for(g=0;g!==e;g++)v=j[g],v.preStep&&v.preStep.call(v);l&&(r=performance.now());m=s.DYNAMIC|s.KINEMATIC;f=0===this.stepnumber%(this.quatNormalizeSkip+1);p=this.quatNormalizeFast;d=0.5*b;for(g=0;g!==e;g++)if(v=j[g],t=v.force,u=v.torque,v.type&m&&v.sleepState!== +s.SLEEPING){var x=v.velocity,y=v.angularVelocity,B=v.position,A=v.quaternion,D=v.invMass,Ga=v.invInertiaWorld;x.x+=t.x*D*b;x.y+=t.y*D*b;x.z+=t.z*D*b;v.angularVelocity&&(Ga.vmult(u,da),da.mult(b,da),da.vadd(y,y));B.x+=x.x*b;B.y+=x.y*b;B.z+=x.z*b;v.angularVelocity&&(I.set(y.x,y.y,y.z,0),I.mult(A,Z),A.x+=d*Z.x,A.y+=d*Z.y,A.z+=d*Z.z,A.w+=d*Z.w,f&&(p?A.normalizeFast():A.normalize()));v.aabb&&(v.aabbNeedsUpdate=!0);v.updateInertiaWorld&&v.updateInertiaWorld()}this.clearForces();this.broadphase.dirty=!0; +l&&(n.integrate=performance.now()-r);this.time+=b;this.stepnumber+=1;this.dispatchEvent(F);for(g=0;g!==e;g++)v=j[g],(b=v.postStep)&&b.call(v);if(this.allowSleep)for(g=0;g!==e;g++)j[g].sleepTick(this.time)};d.prototype.clearForces=function(){for(var b=this.bodies,d=b.length,e=0;e!==d;e++){var j=b[e];j.force.set(0,0,0);j.torque.set(0,0,0)}}},{"../collision/AABB":3,"../collision/ArrayCollisionMatrix":4,"../collision/NaiveBroadphase":7,"../collision/Ray":9,"../collision/RaycastResult":10,"../equations/ContactEquation":19, +"../equations/FrictionEquation":21,"../material/ContactMaterial":24,"../material/Material":25,"../math/Quaternion":28,"../math/Vec3":30,"../objects/Body":31,"../shapes/Shape":43,"../solver/GSSolver":46,"../utils/EventTarget":49,"../utils/TupleDictionary":52,"../utils/Vec3Pool":54,"./Narrowphase":55}]},{},[2])(2)}); +function getInternetExplorerVersion(){var c=-1;"Microsoft Internet Explorer"==navigator.appName&&null!=/MSIE ([0-9]{1,}[.0-9]{0,})/.exec(navigator.userAgent)&&(c=parseFloat(RegExp.$1));return c}var ie=getInternetExplorerVersion();function getQueryVariable(c){for(var b=window.location.search.substring(1).split("&"),e=0;e=e[g].start&&d<= +e[g].end){c=g;break}}void 0!==d&&"[object Object]"===Object.prototype.toString.call(e[c])&&(this.isPlaying=this.settings.spritemap[c],this.context.play&&this.context.play(),this.wasReady=this.setCurrentTime(d))}},stop:function(){this.__lastPosition=0;this.isPlaying=null;this.backgroundMusic?this.backgroundHackForiOS():this.context.pause();return!0},pause:function(){this.isPlaying=null;this.__lastPosition=this.getCurrentTime();this.context.pause();return this.__lastPosition},resume:function(c){c="number"=== +typeof c?c:this.__lastPosition;if(null!==c)return this.play(c),this.__lastPosition=null,!0;this.context.play();return!1},HTML5API:{getVolume:function(){return this.context.volume||1},setVolume:function(c){this.context.volume=c;return 1E-4>Math.abs(this.context.volume-c)?!0:!1},getCurrentTime:function(){return this.context.currentTime||0},setCurrentTime:function(c){try{return this.context.currentTime=c,!0}catch(b){return!1}}},FLASHAPI:{getVolume:function(){return this.context&&"function"===typeof this.context.getVolume? +this.context.getVolume():1},setVolume:function(c){return this.context&&"function"===typeof this.context.setVolume?(this.context.setVolume(c),!0):!1},getCurrentTime:function(){return this.context&&"function"===typeof this.context.getCurrentTime?this.context.getCurrentTime():0},setCurrentTime:function(c){return this.context&&"function"===typeof this.context.setCurrentTime?this.context.setCurrentTime(c):!1}}}; +if(void 0===this.jukebox)throw"jukebox.Manager requires jukebox.Player (Player.js) to run properly."; +jukebox.Manager=function(c){this.features={};this.codecs={};this.__players={};this.__playersLength=0;this.__clones={};this.__queue=[];this.settings={};for(var b in this.defaults)this.settings[b]=this.defaults[b];if("[object Object]"===Object.prototype.toString.call(c))for(var e in c)this.settings[e]=c[e];this.__detectFeatures();jukebox.Manager.__initialized=!1===this.settings.useGameLoop?window.setInterval(function(){jukebox.Manager.loop()},20):!0}; +jukebox.Manager.prototype={defaults:{useFlash:!1,useGameLoop:!1},__detectFeatures:function(){var c=window.Audio&&new Audio;if(c&&c.canPlayType&&!1===this.settings.useFlash){for(var b=[{e:"3gp",m:["audio/3gpp","audio/amr"]},{e:"aac",m:["audio/aac","audio/aacp"]},{e:"amr",m:["audio/amr","audio/3gpp"]},{e:"caf",m:["audio/IMA-ADPCM","audio/x-adpcm",'audio/x-aiff; codecs="IMA-ADPCM, ADPCM"']},{e:"m4a",m:'audio/mp4{audio/mp4; codecs="mp4a.40.2,avc1.42E01E"{audio/mpeg4{audio/mpeg4-generic{audio/mp4a-latm{audio/MP4A-LATM{audio/x-m4a'.split("{")}, +{e:"mp3",m:["audio/mp3","audio/mpeg",'audio/mpeg; codecs="mp3"',"audio/MPA","audio/mpa-robust"]},{e:"mpga",m:["audio/MPA","audio/mpa-robust","audio/mpeg","video/mpeg"]},{e:"mp4",m:["audio/mp4","video/mp4"]},{e:"ogg",m:["application/ogg","audio/ogg",'audio/ogg; codecs="theora, vorbis"',"video/ogg",'video/ogg; codecs="theora, vorbis"']},{e:"wav",m:["audio/wave","audio/wav",'audio/wav; codecs="1"',"audio/x-wav","audio/x-pn-wav"]},{e:"webm",m:["audio/webm",'audio/webm; codecs="vorbis"',"video/webm"]}], +e,d,g=0,f=b.length;gMath.abs(c.volume-0.1337));navigator.userAgent.match(/iPhone|iPod|iPad/i)&&(this.features.channels=1)}this.features.flashaudio= +!!navigator.mimeTypes["application/x-shockwave-flash"]||!!navigator.plugins["Shockwave Flash"]||!1;if(window.ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash.10"),this.features.flashaudio=!0}catch(j){}!0===this.settings.useFlash&&(this.features.flashaudio=!0);!0===this.features.flashaudio&&!this.features.html5audio&&(this.codecs.mp3="audio/mp3",this.codecs.mpga="audio/mpeg",this.codecs.mp4="audio/mp4",this.codecs.m4a="audio/mp4",this.codecs["3gp"]="audio/3gpp",this.codecs.amr="audio/amr", +this.features.volume=!0,this.features.channels=1)},__getPlayerById:function(c){return this.__players&&void 0!==this.__players[c]?this.__players[c]:null},__getClone:function(c,b){for(var e in this.__clones){var d=this.__clones[e];if(null===d.isPlaying&&d.origin===c)return d}if("[object Object]"===Object.prototype.toString.call(b)){e={};for(var g in b)e[g]=b[g];e.autoplay=!1;g=new jukebox.Player(e,c);g.isClone=!0;g.wasReady=!1;return this.__clones[g.id]=g}return null},loop:function(){if(0!==this.__playersLength)if(this.__queue.length&& +this.__playersLengthc.isPlaying.end&&(!0===c.isPlaying.loop?c.play(c.isPlaying.start,!0):c.stop()):c.isClone&&null===c.isPlaying?this.remove(c):void 0!==c.backgroundMusic&&null===c.isPlaying&&b>c.backgroundMusic.end&&c.backgroundHackForiOS()},getPlayableResource:function(c){"[object Array]"!==Object.prototype.toString.call(c)&&(c=[c]);for(var b=0,e=c.length;b=c){d._volume=c;if(d._muted)return d;d.usingWebAudio&&d.masterGain.gain.setValueAtTime(c,b.ctx.currentTime);for(var e=0;eparseInt(g[0].split("/")[1],10);c._codecs={mp3:!(g||!f&&!d.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!f,opus:!!d.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!d.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!d.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!d.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!d.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!d.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(d.canPlayType("audio/x-m4a;")|| +d.canPlayType("audio/m4a;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(d.canPlayType("audio/x-mp4;")||d.canPlayType("audio/mp4;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!d.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!d.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!d.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(d.canPlayType("audio/x-flac;")||d.canPlayType("audio/flac;")).replace(/^no$/,"")};return c}, +_unlockAudio:function(){var c=this||b,d=/iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi|Chrome|Safari/i.test(c._navigator&&c._navigator.userAgent);if(!c._audioUnlocked&&c.ctx&&d){c._audioUnlocked=!1;c.autoUnlock=!1;!c._mobileUnloaded&&44100!==c.ctx.sampleRate&&(c._mobileUnloaded=!0,c.unload());c._scratchBuffer=c.ctx.createBuffer(1,1,22050);var e=function(){for(var b=0;b=D)e._ended(p);else{var z=p._node;if(e._webAudio)f= +function(){e._playLock=!1;C();e._refreshBuffer(p);z.gain.setValueAtTime(p._muted||e._muted?0:p._volume,b.ctx.currentTime);p._playStart=b.ctx.currentTime;"undefined"===typeof z.bufferSource.start?p._loop?z.bufferSource.noteGrainOn(0,y,86400):z.bufferSource.noteGrainOn(0,y,v):p._loop?z.bufferSource.start(0,y,86400):z.bufferSource.start(0,y,v);Infinity!==B&&(e._endTimers[p._id]=setTimeout(e._ended.bind(e,p),B));d||setTimeout(function(){e._emit("play",p._id);e._loadQueue()},0)},"running"===b.state?f(): +(e._playLock=!0,e.once("resume",f),e._clearTimer(p._id));else{var G=function(){z.currentTime=y;z.muted=p._muted||e._muted||b._muted||z.muted;z.volume=p._volume*b.volume();z.playbackRate=p._rate;try{var f=z.play();f&&"undefined"!==typeof Promise&&(f instanceof Promise||"function"===typeof f.then)?(e._playLock=!0,C(),f.then(function(){e._playLock=!1;z._unlocked=!0;d||(e._emit("play",p._id),e._loadQueue())}).catch(function(){e._playLock=!1;e._emit("playerror",p._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."); +p._ended=!0;p._paused=!0})):d||(e._playLock=!1,C(),e._emit("play",p._id),e._loadQueue());z.playbackRate=p._rate;z.paused?e._emit("playerror",p._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."):"__default"!==c||p._loop?e._endTimers[p._id]=setTimeout(e._ended.bind(e,p),B):(e._endTimers[p._id]=function(){e._ended(p);z.removeEventListener("ended",e._endTimers[p._id],!1)},z.addEventListener("ended",e._endTimers[p._id], +!1))}catch(g){e._emit("playerror",p._id,g)}},f=window&&window.ejecta||!z.readyState&&b._navigator.isCocoonJS;if(3<=z.readyState||f)G();else{e._playLock=!0;var N=function(){G();z.removeEventListener(b._canPlayEvent,N,!1)};z.addEventListener(b._canPlayEvent,N,!1);e._clearTimer(p._id)}}return p._id}},pause:function(b,c){var d=this;if("loaded"!==d._state||d._playLock)return d._queue.push({event:"pause",action:function(){d.pause(b)}}),d;for(var e=d._getSoundIds(b),f=0;f=e){if("loaded"!==c._state||c._playLock)return c._queue.push({event:"volume",action:function(){c.volume.apply(c,d)}}),c;"undefined"===typeof f&&(c._volume=e);f=c._getSoundIds(f);for(var m= +0;mc&&p>=d)clearInterval(b._interval),b._interval=null,b._fadeTo=null,m.volume(d,b._id),m._emit("fade",b._id)},f)},_stopFade:function(c){var d=this._soundById(c);d&&d._interval&&(this._webAudio&&d._node.gain.cancelScheduledValues(b.ctx.currentTime),clearInterval(d._interval),d._interval=null,this.volume(d._fadeTo,c),d._fadeTo=null,this._emit("fade", +c));return this},loop:function(){var b=arguments,c,d;if(0===b.length)return this._loop;if(1===b.length)if("boolean"===typeof b[0])this._loop=c=b[0];else return(b=this._soundById(parseInt(b[0],10)))?b._loop:!1;else 2===b.length&&(c=b[0],d=parseInt(b[1],10));d=this._getSoundIds(d);for(var e=0;ee&&(d=/safari/.test(b._navigator&&b._navigator.userAgent.toLowerCase()),b._navigator&&b._navigator.standalone&&!d||b._navigator&&!b._navigator.standalone&&!d))b.usingWebAudio=!1;b.usingWebAudio&&(b.masterGain="undefined"===typeof b.ctx.createGain?b.ctx.createGainNode():b.ctx.createGain(),b.masterGain.gain.setValueAtTime(b._muted? +0:1,b.ctx.currentTime),b.masterGain.connect(b.ctx.destination));b._setup()}};"function"===typeof define&&define.amd&&define([],function(){return{Howler:b,Howl:e}});"undefined"!==typeof exports&&(exports.Howler=b,exports.Howl=e);"undefined"!==typeof window?(window.HowlerGlobal=c,window.Howler=b,window.Howl=e,window.Sound=d):"undefined"!==typeof global&&(global.HowlerGlobal=c,global.Howler=b,global.Howl=e,global.Sound=d)})(); +(function(){HowlerGlobal.prototype._pos=[0,0,0];HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0];HowlerGlobal.prototype.stereo=function(b){if(!this.ctx||!this.ctx.listener)return this;for(var c=this._howls.length-1;0<=c;c--)this._howls[c].stereo(b);return this};HowlerGlobal.prototype.pos=function(b,c,d){if(!this.ctx||!this.ctx.listener)return this;c="number"!==typeof c?this._pos[1]:c;d="number"!==typeof d?this._pos[2]:d;if("number"===typeof b)this._pos=[b,c,d],"undefined"!==typeof this.ctx.listener.positionX? +(this.ctx.listener.positionX.setTargetAtTime(this._pos[0],Howler.ctx.currentTime,0.1),this.ctx.listener.positionY.setTargetAtTime(this._pos[1],Howler.ctx.currentTime,0.1),this.ctx.listener.positionZ.setTargetAtTime(this._pos[2],Howler.ctx.currentTime,0.1)):this.ctx.listener.setPosition(this._pos[0],this._pos[1],this._pos[2]);else return this._pos;return this};HowlerGlobal.prototype.orientation=function(b,c,d,e,j,l){if(!this.ctx||!this.ctx.listener)return this;var n=this._orientation;c="number"!== +typeof c?n[1]:c;d="number"!==typeof d?n[2]:d;e="number"!==typeof e?n[3]:e;j="number"!==typeof j?n[4]:j;l="number"!==typeof l?n[5]:l;if("number"===typeof b)this._orientation=[b,c,d,e,j,l],"undefined"!==typeof this.ctx.listener.forwardX?(this.ctx.listener.forwardX.setTargetAtTime(b,Howler.ctx.currentTime,0.1),this.ctx.listener.forwardY.setTargetAtTime(c,Howler.ctx.currentTime,0.1),this.ctx.listener.forwardZ.setTargetAtTime(d,Howler.ctx.currentTime,0.1),this.ctx.listener.upX.setTargetAtTime(b,Howler.ctx.currentTime, +0.1),this.ctx.listener.upY.setTargetAtTime(c,Howler.ctx.currentTime,0.1),this.ctx.listener.upZ.setTargetAtTime(d,Howler.ctx.currentTime,0.1)):this.ctx.listener.setOrientation(b,c,d,e,j,l);else return n;return this};var c=Howl.prototype.init;Howl.prototype.init=function(b){this._orientation=b.orientation||[1,0,0];this._stereo=b.stereo||null;this._pos=b.pos||null;this._pannerAttr={coneInnerAngle:"undefined"!==typeof b.coneInnerAngle?b.coneInnerAngle:360,coneOuterAngle:"undefined"!==typeof b.coneOuterAngle? +b.coneOuterAngle:360,coneOuterGain:"undefined"!==typeof b.coneOuterGain?b.coneOuterGain:0,distanceModel:"undefined"!==typeof b.distanceModel?b.distanceModel:"inverse",maxDistance:"undefined"!==typeof b.maxDistance?b.maxDistance:1E4,panningModel:"undefined"!==typeof b.panningModel?b.panningModel:"HRTF",refDistance:"undefined"!==typeof b.refDistance?b.refDistance:1,rolloffFactor:"undefined"!==typeof b.rolloffFactor?b.rolloffFactor:1};this._onstereo=b.onstereo?[{fn:b.onstereo}]:[];this._onpos=b.onpos? +[{fn:b.onpos}]:[];this._onorientation=b.onorientation?[{fn:b.onorientation}]:[];return c.call(this,b)};Howl.prototype.stereo=function(b,c){var e=this;if(!e._webAudio)return e;if("loaded"!==e._state)return e._queue.push({event:"stereo",action:function(){e.stereo(b,c)}}),e;var m="undefined"===typeof Howler.ctx.createStereoPanner?"spatial":"stereo";if("undefined"===typeof c)if("number"===typeof b)e._stereo=b,e._pos=[b,0,0];else return e._stereo;for(var j=e._getSoundIds(c),l=0;lc;c++)d(b,b._deferreds[c]);b._deferreds=null}function m(b,c){var d=!1;try{b(function(b){d|| +(d=!0,g(c,b))},function(b){d||(d=!0,f(c,b))})}catch(e){d||(d=!0,f(c,e))}}var j=setTimeout;e.prototype["catch"]=function(b){return this.then(null,b)};e.prototype.then=function(c,e){var f=new this.constructor(b);return d(this,new function(b,c,d){this.onFulfilled="function"==typeof b?b:null;this.onRejected="function"==typeof c?c:null;this.promise=d}(c,e,f)),f};e.prototype["finally"]=c;e.all=function(b){return new e(function(c,d){function e(b,g){try{if(g&&("object"==typeof g||"function"==typeof g)){var l= +g.then;if("function"==typeof l)return void l.call(g,function(c){e(b,c)},d)}f[b]=g;0==--j&&c(f)}catch(m){d(m)}}if(!b||"undefined"==typeof b.length)throw new TypeError("Promise.all accepts an array");var f=Array.prototype.slice.call(b);if(0===f.length)return c([]);for(var j=f.length,g=0;f.length>g;g++)e(g,f[g])})};e.resolve=function(b){return b&&"object"==typeof b&&b.constructor===e?b:new e(function(c){c(b)})};e.reject=function(b){return new e(function(c,d){d(b)})};e.race=function(b){return new e(function(c, +d){for(var e=0,f=b.length;f>e;e++)b[e].then(c,d)})};e._immediateFn="function"==typeof setImmediate&&function(b){setImmediate(b)}||function(b){j(b,0)};e._unhandledRejectionFn=function(b){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",b)};var l=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object");}();"Promise"in l?l.Promise.prototype["finally"]|| +(l.Promise.prototype["finally"]=c):l.Promise=e}); +(function(){function c(b,c){document.addEventListener?b.addEventListener("scroll",c,!1):b.attachEvent("scroll",c)}function b(b){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(b));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText= +"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)}function e(b,c){b.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+ +c+";"}function d(b){var c=b.a.offsetWidth,d=c+100;b.f.style.width=d+"px";b.c.scrollLeft=d;b.b.scrollLeft=b.b.scrollWidth+100;return b.g!==c?(b.g=c,!0):!1}function g(b,e){function f(){var b=j;d(b)&&b.a.parentNode&&e(b.g)}var j=b;c(b.b,f);c(b.c,f);d(b)}function f(b,c){var d=c||{};this.family=b;this.style=d.style||"normal";this.weight=d.weight||"normal";this.stretch=d.stretch||"normal"}function p(){null===s&&(s=!!document.fonts);return s}function m(){if(null===r){var b=document.createElement("div"); +try{b.style.font="condensed 100px sans-serif"}catch(c){}r=""!==b.style.font}return r}function j(b,c){return[b.style,b.weight,m()?b.stretch:"","100px",c].join(" ")}var l=null,n=null,r=null,s=null;f.prototype.load=function(c,d){var f=this,m=c||"BESbswy",r=0,s=d||3E3,A=(new Date).getTime();return new Promise(function(c,d){var t;if(t=p())null===n&&(p()&&/Apple/.test(window.navigator.vendor)?(t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent),n=!!t&&603>parseInt(t[1], +10)):n=!1),t=!n;if(t){t=new Promise(function(b,c){function d(){(new Date).getTime()-A>=s?c(Error(""+s+"ms timeout exceeded")):document.fonts.load(j(f,'"'+f.family+'"'),m).then(function(c){1<=c.length?b():setTimeout(d,25)},c)}d()});var u=new Promise(function(b,c){r=setTimeout(function(){c(Error(""+s+"ms timeout exceeded"))},s)});Promise.race([u,t]).then(function(){clearTimeout(r);c(f)},d)}else{var G=function(){function n(){var b;if(b=-1!=C&&-1!=E||-1!=C&&-1!=G||-1!=E&&-1!=G)(b=C!=E&&C!=G&&E!=G)||(null=== +l&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),l=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=l&&(C==ea&&E==ea&&G==ea||C==T&&E==T&&G==T||C==O&&E==O&&G==O)),b=!b;b&&(J.parentNode&&J.parentNode.removeChild(J),clearTimeout(r),c(f))}function p(){if((new Date).getTime()-A>=s)J.parentNode&&J.parentNode.removeChild(J),d(Error(""+s+"ms timeout exceeded"));else{var b=document.hidden;if(!0===b||void 0===b)C=t.a.offsetWidth,E=u.a.offsetWidth,G= +z.a.offsetWidth,n();r=setTimeout(p,50)}}var t=new b(m),u=new b(m),z=new b(m),C=-1,E=-1,G=-1,ea=-1,T=-1,O=-1,J=document.createElement("div");J.dir="ltr";e(t,j(f,"sans-serif"));e(u,j(f,"serif"));e(z,j(f,"monospace"));J.appendChild(t.a);J.appendChild(u.a);J.appendChild(z.a);document.body.appendChild(J);ea=t.a.offsetWidth;T=u.a.offsetWidth;O=z.a.offsetWidth;p();g(t,function(b){C=b;n()});e(t,j(f,'"'+f.family+'",sans-serif'));g(u,function(b){E=b;n()});e(u,j(f,'"'+f.family+'",serif'));g(z,function(b){G= +b;n()});e(z,j(f,'"'+f.family+'",monospace'))};document.body?G():document.addEventListener?document.addEventListener("DOMContentLoaded",function L(){document.removeEventListener("DOMContentLoaded",L);G()}):document.attachEvent("onreadystatechange",function S(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",S),G()})}})};"object"===typeof module?module.exports=f:(window.FontFaceObserver=f,window.FontFaceObserver.prototype.load=f.prototype.load)})(); +(function(c){Number.prototype.map=function(b,c,d,e){return d+(e-d)*((this-b)/(c-b))};Number.prototype.limit=function(b,c){return Math.min(c,Math.max(b,this))};Number.prototype.round=function(b){b=Math.pow(10,b||0);return Math.round(this*b)/b};Number.prototype.floor=function(){return Math.floor(this)};Number.prototype.ceil=function(){return Math.ceil(this)};Number.prototype.toInt=function(){return this|0};Number.prototype.toRad=function(){return this/180*Math.PI};Number.prototype.toDeg=function(){return 180* +this/Math.PI};Array.prototype.erase=function(b){for(var c=this.length;c--;)this[c]===b&&this.splice(c,1);return this};Array.prototype.random=function(){return this[Math.floor(Math.random()*this.length)]};Function.prototype.bind=Function.prototype.bind||function(b){if("function"!==typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var c=Array.prototype.slice.call(arguments,1),d=this,e=function(){},f=function(){return d.apply(this instanceof e&&b? +this:b,c.concat(Array.prototype.slice.call(arguments)))};e.prototype=this.prototype;f.prototype=new e;return f};c.ig={game:null,debug:null,version:"1.23",global:c,modules:{},resources:[],ready:!1,baked:!1,nocache:"",ua:{},prefix:c.ImpactPrefix||"",lib:"lib/",_current:null,_loadQueue:[],_waitForOnload:0,$:function(b){return"#"==b.charAt(0)?document.getElementById(b.substr(1)):document.getElementsByTagName(b)},$new:function(b){return document.createElement(b)},copy:function(b){if(!b||"object"!=typeof b|| +b instanceof HTMLElement||b instanceof ig.Class)return b;if(b instanceof Array)for(var c=[],d=0,e=b.length;dthis.width||g>this.height)){var m=ig.system.scale,j=Math.floor(d*m),l=Math.floor(g*m),n=f?-1:1,r=p?-1:1;if(f||p)ig.system.context.save(),ig.system.context.scale(n,r);ig.system.context.drawImage(this.data,Math.floor(e*d)%this.width*m,Math.floor(e*d/this.width)*g*m,j,l,ig.system.getDrawPos(c)*n-(f?j:0),ig.system.getDrawPos(b)*r-(p?l:0),j,l);(f|| +p)&&ig.system.context.restore();ig.Image.drawCount++}}});ig.Image.drawCount=0;ig.Image.cache={};ig.Image.reloadCache=function(){for(var c in ig.Image.cache)ig.Image.cache[c].reload()}});ig.baked=!0; +ig.module("impact.font").requires("impact.image").defines(function(){ig.Font=ig.Image.extend({widthMap:[],indices:[],firstChar:32,alpha:1,letterSpacing:1,lineSpacing:0,onload:function(c){this._loadMetrics(this.data);this.parent(c)},widthForString:function(c){if(-1!==c.indexOf("\n")){c=c.split("\n");for(var b=0,e=0;ec||c>=this.indices.length)return 0;var d=ig.system.scale,g=this.widthMap[c]*d,f=(this.height-2)*d;ig.system.context.drawImage(this.data,this.indices[c]*d,0,g,f,ig.system.getDrawPos(b),ig.system.getDrawPos(e),g,f);return this.widthMap[c]+this.letterSpacing},_loadMetrics:function(c){this.height=c.height-1;this.widthMap=[];this.indices= +[];for(var b=ig.getImagePixels(c,0,c.height-1,c.width,1),e=0,d=0,g=0;gb.data[f]&&d&&(this.widthMap.push(d),this.indices.push(g-d),e++,d=0)}this.widthMap.push(d);this.indices.push(g-d)}});ig.Font.ALIGN={LEFT:0,RIGHT:1,CENTER:2}});ig.baked=!0; +ig.module("impact.sound").defines(function(){ig.SoundManager=ig.Class.extend({clips:{},volume:1,format:null,init:function(){if(!ig.Sound.enabled||!window.Audio)ig.Sound.enabled=!1;else{for(var c=new Audio,b=0;b=c?(this.stop(),this.currentTrack.volume=this._volume,clearInterval(this._fadeInterval)):this.currentTrack.volume=c},_endedCallback:function(){this._loop?this.play():this.next()}});ig.Sound=ig.Class.extend({path:"",volume:1,currentClip:null,multiChannel:!0,init:function(c,b){this.path=c;this.multiChannel=!1!==b;this.load()},load:function(c){ig.Sound.enabled?ig.ready?ig.soundManager.load(this.path, +this.multiChannel,c):ig.addResource(this):c&&c(this.path,!0)},play:function(){ig.Sound.enabled&&(this.currentClip=ig.soundManager.get(this.path),this.currentClip.volume=ig.soundManager.volume*this.volume,this.currentClip.play())},stop:function(){this.currentClip&&(this.currentClip.pause(),this.currentClip.currentTime=0)}});ig.Sound.FORMAT={MP3:{ext:"mp3",mime:"audio/mpeg"},M4A:{ext:"m4a",mime:"audio/mp4; codecs=mp4a"},OGG:{ext:"ogg",mime:"audio/ogg; codecs=vorbis"},WEBM:{ext:"webm",mime:"audio/webm; codecs=vorbis"}, +CAF:{ext:"caf",mime:"audio/x-caf"}};ig.Sound.use=[ig.Sound.FORMAT.OGG,ig.Sound.FORMAT.MP3];ig.Sound.channels=4;ig.Sound.enabled=!0});ig.baked=!0; +ig.module("impact.loader").requires("impact.image","impact.font","impact.sound").defines(function(){ig.Loader=ig.Class.extend({resources:[],gameClass:null,status:0,done:!1,_unloaded:[],_drawStatus:0,_intervalId:0,_loadCallbackBound:null,init:function(c,b){this.gameClass=c;this.resources=b;this._loadCallbackBound=this._loadCallback.bind(this);for(var e=0;ec?this.initMouse():0ig.system.width||b>ig.system.height||(0>c+e||0>b+e)||(1!=this.alpha&&(ig.system.context.globalAlpha=this.alpha),0==this.angle?this.sheet.image.drawTile(c,b,this.tile,this.sheet.width,this.sheet.height,this.flip.x,this.flip.y):(ig.system.context.save(),ig.system.context.translate(ig.system.getDrawPos(c+this.pivot.x),ig.system.getDrawPos(b+this.pivot.y)),ig.system.context.rotate(this.angle), +this.sheet.image.drawTile(-this.pivot.x,-this.pivot.y,this.tile,this.sheet.width,this.sheet.height,this.flip.x,this.flip.y),ig.system.context.restore()),1!=this.alpha&&(ig.system.context.globalAlpha=1))}})});ig.baked=!0; +ig.module("impact.entity").requires("impact.animation","impact.impact").defines(function(){ig.Entity=ig.Class.extend({id:0,settings:{},size:{x:16,y:16},offset:{x:0,y:0},pos:{x:0,y:0},last:{x:0,y:0},vel:{x:0,y:0},accel:{x:0,y:0},friction:{x:0,y:0},maxVel:{x:100,y:100},zIndex:0,gravityFactor:1,standing:!1,bounciness:0,minBounceVelocity:40,anims:{},animSheet:null,currentAnim:null,health:10,type:0,checkAgainst:0,collides:0,_killed:!1,slopeStanding:{min:(44).toRad(),max:(136).toRad()},init:function(c, +b,e){this.id=++ig.Entity._lastId;this.pos.x=this.last.x=c;this.pos.y=this.last.y=b;ig.merge(this,e)},reset:function(c,b,e){var d=this.constructor.prototype;this.pos.x=c;this.pos.y=b;this.last.x=c;this.last.y=b;this.vel.x=d.vel.x;this.vel.y=d.vel.y;this.accel.x=d.accel.x;this.accel.y=d.accel.y;this.health=d.health;this._killed=d._killed;this.standing=d.standing;this.type=d.type;this.checkAgainst=d.checkAgainst;this.collides=d.collides;ig.merge(this,e)},addAnim:function(c,b,e,d){if(!this.animSheet)throw"No animSheet to add the animation "+ +c+" to.";b=new ig.Animation(this.animSheet,b,e,d);this.anims[c]=b;this.currentAnim||(this.currentAnim=b);return b},update:function(){this.last.x=this.pos.x;this.last.y=this.pos.y;this.vel.y+=ig.game.gravity*ig.system.tick*this.gravityFactor;this.vel.x=this.getNewVelocity(this.vel.x,this.accel.x,this.friction.x,this.maxVel.x);this.vel.y=this.getNewVelocity(this.vel.y,this.accel.y,this.friction.y,this.maxVel.y);var c=ig.game.collisionMap.trace(this.pos.x,this.pos.y,this.vel.x*ig.system.tick,this.vel.y* +ig.system.tick,this.size.x,this.size.y);this.handleMovementTrace(c);this.currentAnim&&this.currentAnim.update()},getNewVelocity:function(c,b,e,d){return b?(c+b*ig.system.tick).limit(-d,d):e?(b=e*ig.system.tick,0c+b?c+b:0):c.limit(-d,d)},handleMovementTrace:function(c){this.standing=!1;c.collision.y&&(0this.minBounceVelocity?this.vel.y*=-this.bounciness:(0 +this.minBounceVelocity?this.vel.x*-this.bounciness:0);if(c.collision.slope){var b=c.collision.slope;if(0this.slopeStanding.min&&b=this.health&&this.kill()},touches:function(c){return!(this.pos.x>=c.pos.x+c.size.x||this.pos.x+this.size.x<=c.pos.x||this.pos.y>=c.pos.y+c.size.y||this.pos.y+this.size.y<=c.pos.y)},distanceTo:function(c){var b=this.pos.x+this.size.x/2-(c.pos.x+c.size.x/2);c=this.pos.y+this.size.y/2-(c.pos.y+c.size.y/2);return Math.sqrt(b*b+c*c)},angleTo:function(c){return Math.atan2(c.pos.y+ +c.size.y/2-(this.pos.y+this.size.y/2),c.pos.x+c.size.x/2-(this.pos.x+this.size.x/2))},check:function(){},collideWith:function(){},ready:function(){},erase:function(){}});ig.Entity._lastId=0;ig.Entity.COLLIDES={NEVER:0,LITE:1,PASSIVE:2,ACTIVE:4,FIXED:8};ig.Entity.TYPE={NONE:0,A:1,B:2,BOTH:3};ig.Entity.checkPair=function(c,b){c.checkAgainst&b.type&&c.check(b);b.checkAgainst&c.type&&b.check(c);c.collides&&b.collides&&c.collides+b.collides>ig.Entity.COLLIDES.ACTIVE&&ig.Entity.solveCollision(c,b)};ig.Entity.solveCollision= +function(c,b){var e=null;if(c.collides==ig.Entity.COLLIDES.LITE||b.collides==ig.Entity.COLLIDES.FIXED)e=c;else if(b.collides==ig.Entity.COLLIDES.LITE||c.collides==ig.Entity.COLLIDES.FIXED)e=b;c.last.x+c.size.x>b.last.x&&c.last.xb.last.y&&c.last.yc.minBounceVelocity?c.vel.y*=-c.bounciness:(c.standing=!0,c.vel.y=0)):(e=(c.vel.y-b.vel.y)/2,c.vel.y=-e,b.vel.y=e,g=b.vel.x*ig.system.tick,e=ig.game.collisionMap.trace(c.pos.x,c.pos.y,g,-d/2,c.size.x,c.size.y),c.pos.y=e.pos.y,c=ig.game.collisionMap.trace(b.pos.x,b.pos.y,0,d/2,b.size.x,b.size.y),b.pos.y=c.pos.y)}});ig.baked=!0; +ig.module("impact.map").defines(function(){ig.Map=ig.Class.extend({tilesize:8,width:1,height:1,data:[[]],name:null,init:function(c,b){this.tilesize=c;this.data=b;this.height=b.length;this.width=b[0].length;this.pxWidth=this.width*this.tilesize;this.pxHeight=this.height*this.tilesize},getTile:function(c,b){var e=Math.floor(c/this.tilesize),d=Math.floor(b/this.tilesize);return 0<=e&&ethis.lastSlope&&(this.lastSlope=f|0)},trace:function(b,c,g,f,p,m){var j={collision:{x:!1,y:!1,slope:!1},pos:{x:b,y:c},tile:{x:0,y:0}},l=Math.ceil(Math.max(Math.abs(g),Math.abs(f))/this.tilesize);if(1f?this.tilesize:0,s=Math.max(Math.floor(g/this.tilesize),0),x=Math.min(Math.ceil((g+j)/this.tilesize),this.height);f=Math.floor((b.pos.x+t)/this.tilesize);var y=Math.floor((c+t)/this.tilesize);if(0y||y>=this.width)y=-1;if(0<=f&&fthis.lastSlope||1p?this.tilesize:0;s=Math.max(Math.floor(b.pos.x/this.tilesize),0);u=Math.min(Math.ceil((b.pos.x+m)/this.tilesize),this.width);v=Math.floor((b.pos.y+t)/this.tilesize); +x=Math.floor((g+t)/this.tilesize);if(0x||x>=this.height)x=-1;if(0<=v&&vthis.lastSlope||1t?j:0)-(n+s[0])*this.tilesize;l=f+m+(0p*-t+m*c)return u;n=Math.sqrt(c*c+t*t);r=t/n;n=-c/n;var x=j*r+l*n,s=r*x,x=n*x;if(s*s+x*x>=p*p+m*m)return u||0.5>c*(l-m)-t*(j-p);b.pos.x=g+p-s;b.pos.y=f+m-x;b.collision.slope={x:c,y:t,nx:r,ny:n};return!0}return!1}});var c=1/3,b=2/3;ig.CollisionMap.defaultTileDef={5:[0,1,1,b,!0],6:[0,b,1,c,!0],7:[0,c,1,0,!0],3:[0,1,1,0.5,!0],4:[0,0.5,1,0,!0],2:[0, +1,1,0,!0],10:[0.5,1,1,0,!0],21:[0,1,0.5,0,!0],32:[b,1,1,0,!0],43:[c,1,b,0,!0],54:[0,1,c,0,!0],27:[0,0,1,c,!0],28:[0,c,1,b,!0],29:[0,b,1,1,!0],25:[0,0,1,0.5,!0],26:[0,0.5,1,1,!0],24:[0,0,1,1,!0],11:[0,0,0.5,1,!0],22:[0.5,0,1,1,!0],33:[0,0,c,1,!0],44:[c,0,b,1,!0],55:[b,0,1,1,!0],16:[1,c,0,0,!0],17:[1,b,0,c,!0],18:[1,1,0,b,!0],14:[1,0.5,0,0,!0],15:[1,1,0,0.5,!0],13:[1,1,0,0,!0],8:[0.5,1,0,0,!0],19:[1,1,0.5,0,!0],30:[c,1,0,0,!0],41:[b,1,c,0,!0],52:[1,1,b,0,!0],38:[1,b,0,1,!0],39:[1,c,0,b,!0],40:[1,0, +0,c,!0],36:[1,0.5,0,1,!0],37:[1,0,0,0.5,!0],35:[1,0,0,1,!0],9:[1,0,0.5,1,!0],20:[0.5,0,0,1,!0],31:[1,0,b,1,!0],42:[b,0,c,1,!0],53:[c,0,0,1,!0],12:[0,0,1,0,!1],23:[1,1,0,1,!1],34:[1,0,1,1,!1],45:[0,1,0,0,!1]};ig.CollisionMap.staticNoCollision={trace:function(b,c,g,f){return{collision:{x:!1,y:!1,slope:!1},pos:{x:b+g,y:c+f},tile:{x:0,y:0}}}}});ig.baked=!0; +ig.module("impact.background-map").requires("impact.map","impact.image").defines(function(){ig.BackgroundMap=ig.Map.extend({tiles:null,scroll:{x:0,y:0},distance:1,repeat:!1,tilesetName:"",foreground:!1,enabled:!0,preRender:!1,preRenderedChunks:null,chunkSize:512,debugChunks:!1,anims:{},init:function(c,b,e){this.parent(c,b);this.setTileset(e)},setTileset:function(c){this.tilesetName=c instanceof ig.Image?c.path:c;this.tiles=new ig.Image(this.tilesetName);this.preRenderedChunks=null},setScreenPos:function(c, +b){this.scroll.x=c/this.distance;this.scroll.y=b/this.distance},preRenderMapToChunks:function(){var c=this.width*this.tilesize*ig.system.scale,b=this.height*this.tilesize*ig.system.scale;this.chunkSize=Math.min(Math.max(c,b),this.chunkSize);var e=Math.ceil(c/this.chunkSize),d=Math.ceil(b/this.chunkSize);this.preRenderedChunks=[];for(var g=0;g=this.height||0>l){if(!this.repeat)continue;l=(l%this.height+this.height)%this.height}for(var n=-1,r=p;r=this.width||0>c){if(!this.repeat)continue;c=(c%this.width+this.width)%this.width}if(c=this.data[l][c])(b=this.anims[c- +1])?b.draw(r,f):this.tiles.drawTile(r,f,c-1,this.tilesize)}}}})});ig.baked=!0; +ig.module("impact.game").requires("impact.impact","impact.entity","impact.collision-map","impact.background-map").defines(function(){ig.Game=ig.Class.extend({clearColor:"#000000",gravity:0,screen:{x:0,y:0},_rscreen:{x:0,y:0},entities:[],namedEntities:{},collisionMap:ig.CollisionMap.staticNoCollision,backgroundMaps:[],backgroundAnims:{},autoSort:!1,sortBy:null,cellSize:64,_deferredKill:[],_levelToLoad:null,_doSortEntities:!1,staticInstantiate:function(){this.sortBy=this.sortBy||ig.Game.SORT.Z_INDEX; +ig.game=this;return null},loadLevel:function(c){this.screen={x:0,y:0};this.entities=[];this.namedEntities={};for(var b=0;bd&&window.focus(),("touchstart"==b.type||"mousedown"==b.type)&&this.mousemove(b),d=this.bindings[d])this.actions[d]=!0,this.locks[d]||(this.presses[d]=!0,this.locks[d]= +!0),b.stopPropagation(),b.preventDefault()}})});ig.baked=!0; +ig.module("plugins.patches.mouse-move-patch").defines(function(){ig.Input.inject({move:new BABYLON.Vector2(0,0),initMouse:function(){if(!this.isUsingMouse){this.isUsingMouse=!0;var c=this.mousewheel.bind(this);ig.system.canvas.addEventListener("mousewheel",c,!1);ig.system.canvas.addEventListener("DOMMouseScroll",c,!1);ig.system.canvas.addEventListener("contextmenu",this.contextmenu.bind(this),!1);ig.system.canvas.addEventListener("mousedown",this.keydown.bind(this),!1);ig.system.canvas.addEventListener("mouseup", +this.keyup.bind(this),!1);ig.system.canvas.addEventListener("mousemove",this.mousemove.bind(this),!1);ig.ua.touchDevice&&(ig.system.canvas.addEventListener("touchstart",this.keydown.bind(this),!1),ig.system.canvas.addEventListener("touchend",this.keyup.bind(this),!1),ig.system.canvas.addEventListener("touchmove",this.mousemove.bind(this),!1),ig.system.canvas.addEventListener("MSPointerDown",this.keydown.bind(this),!1),ig.system.canvas.addEventListener("MSPointerUp",this.keyup.bind(this),!1),ig.system.canvas.addEventListener("MSPointerMove", +this.mousemove.bind(this),!1),ig.system.canvas.style.msTouchAction="none")}},mousemove:function(c){var b=parseInt(wgl.system.canvas.offsetWidth);parseInt(wgl.system.canvas.offsetHeight);ig.ua.mobile&&(b=ig.system.realWidth);var b=ig.system.scale*(b/ig.system.realWidth),e={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(e=ig.system.canvas.getBoundingClientRect());var d=c.touches?c.touches[0]:c;this.mouse.x=(d.clientX-e.left)/b;this.mouse.y=(d.clientY-e.top)/b;void 0!==typeof c.movementX?(this.move.x= +c.movementX,this.move.y=c.movementY):(this.move.x=0,this.move.y=0)}})});ig.baked=!0; +ig.module("plugins.handlers.dom-handler").defines(function(){ig.DomHandler=ig.Class.extend({JQUERYAVAILABLE:!1,init:function(){this.JQUERYAVAILABLE=this._jqueryAvailable()},_jqueryAvailable:function(){return"undefined"!==typeof jQuery},addEvent:function(c,b,e,d){if(this.JQUERYAVAILABLE)c.on(b,e);else c.addEventListener(b,e,d)},create:function(c){return this.JQUERYAVAILABLE?$("<"+c+">"):ig.$new(c)},getElementByClass:function(c){return this.JQUERYAVAILABLE?$("."+c):document.getElementsByClassName(c)}, +getElementById:function(c){return this.JQUERYAVAILABLE?0<$(c).length?$(c):null:ig.$(c)},appendChild:function(c,b){this.JQUERYAVAILABLE?c.append(b):c.appendChild(b)},appendToBody:function(c){this.JQUERYAVAILABLE?$("body").append(c):document.body.appendChild(c)},resize:function(c,b,e){if(this.JQUERYAVAILABLE)c.width(b.toFixed(2)),c.height(e.toFixed(2));else{var d=c.style.visibility;b="width:"+b.toFixed(2)+"px; height:"+e.toFixed(2)+"px;";this.attr(c,"style",b);c.style.visibility=d}},resizeOffsetLeft:function(c, +b,e,d){if(this.JQUERYAVAILABLE)c.width(b.toFixed(2)),c.height(e.toFixed(2)),c.css("left",d);else{var g=c.style.visibility;b="width:"+b.toFixed(2)+"px; height:"+e.toFixed(2)+"px; left: "+d.toFixed(2)+"px;";this.attr(c,"style",b);c.style.visibility=g}},resizeOffset:function(c,b,e,d,g){if(this.JQUERYAVAILABLE)c.width(b.toFixed(2)),c.height(e.toFixed(2)),c.css("left",d),c.css("top",g);else{var f=c.style.visibility;b="width:"+b.toFixed(2)+"px; height:"+e.toFixed(2)+"px; left: "+d.toFixed(2)+"px; top: "+ +g.toFixed(2)+"px;";this.attr(c,"style",b);c.style.visibility=f}},css:function(c,b){if(this.JQUERYAVAILABLE)c.css(b);else{var e="",d;for(d in b)e+=d+":"+b[d]+";";this.attr(c,"style",e)}},getOffsets:function(c){return this.JQUERYAVAILABLE?(c=c.offset(),{left:c.left,top:c.top}):{left:c.offsetLeft,top:c.offsetTop}},attr:function(c,b,e){if("undefined"===typeof e)return this.JQUERYAVAILABLE?c.attr(b):c.getAttribute(b);this.JQUERYAVAILABLE?c.attr(b,e):c.setAttribute(b,e)},show:function(c){this.JQUERYAVAILABLE? +(c.show(),c.css("visibility","visible")):c&&(c.style?c.style.visibility="visible":c[0]&&(c[0].style.visibility="visible"))},hide:function(c){this.JQUERYAVAILABLE?(c.hide(),c.css("visibility","hidden")):c&&(c.style?c.style.visibility="hidden":c[0]&&(c[0].style.visibility="hidden"))},getQueryVariable:function(c){for(var b=window.location.search.substring(1).split("&"),e=0;ethis.maxScalingOnMobile&&(b=this.maxScalingOnMobile),bthis.maxScalingOnDesktop&&(b=this.maxScalingOnDesktop),be&&(e=0);0>d&&(d=0);ig.domHandler.resizeOffset(b,Math.floor(ig.sizeHandler.mobile.actualSize.x),Math.floor(ig.sizeHandler.mobile.actualSize.y),e,d);var g=!1;if(this.portraitMode?window.innerHeight +window.innerWidth)if(this.enableStretchToFitOnAntiPortraitModeFlag)ig.domHandler.resizeOffset(b,Math.floor(window.innerWidth),Math.floor(window.innerHeight),0,0);else{var g=new BABYLON.Vector2(window.innerWidth/this.mobile.actualResolution.y,window.innerHeight/this.mobile.actualResolution.x),e=Math.min(g.x,g.y),g=this.mobile.actualResolution.y*e,f=this.mobile.actualResolution.x*e,e=Math.floor(ig.sizeHandler.windowSize.x/2-g/2),d=Math.floor(ig.sizeHandler.windowSize.y/2-f/2);0>e&&(e=0);0>d&&(d=0); +ig.domHandler.resizeOffset(b,Math.floor(g),Math.floor(f),e,d)}}else ig.domHandler.resize(b,Math.floor(ig.sizeHandler.mobile.actualSize.x),Math.floor(ig.sizeHandler.mobile.actualSize.y));else this.enableStretchToFitOnDesktopFlag?ig.domHandler.resize(b,Math.floor(ig.sizeHandler.desktop.actualSize.x),Math.floor(ig.sizeHandler.desktop.actualSize.y)):(e=Math.floor(ig.sizeHandler.windowSize.x/2-ig.sizeHandler.desktop.actualSize.x/2),d=Math.floor(ig.sizeHandler.windowSize.y/2-ig.sizeHandler.desktop.actualSize.y/ +2),0>e&&(e=0),0>d&&(d=0),ig.domHandler.resizeOffset(b,Math.floor(ig.sizeHandler.desktop.actualSize.x),Math.floor(ig.sizeHandler.desktop.actualSize.y),e,d))}for(var p in this.adsToResize)c=ig.domHandler.getElementById("#"+p),b=ig.domHandler.getElementById("#"+p+"-Box"),g=(window.innerWidth-this.adsToResize[p]["box-width"])/2+"px",e=(window.innerHeight-this.adsToResize[p]["box-height"])/2+"px",c&&ig.domHandler.css(c,{width:window.innerWidth,height:window.innerHeight}),b&&ig.domHandler.css(b,{left:g, +top:e});c=this.dynamicClickableEntityDivs;for(p in c){var b=Math.min(ig.sizeHandler.scaleRatioMultiplier.x,ig.sizeHandler.scaleRatioMultiplier.y),g=ig.domHandler.getElementById("#"+p),m=c[p].entity_pos_x,f=c[p].entity_pos_y,d=c[p].width,e=c[p].height,j=ig.domHandler.getElementById("#canvas"),l=ig.domHandler.getOffsets(j);ig.ua.mobile?(j=l.left,l=l.top,ig.sizeHandler.disableStretchToFitOnMobileFlag?(m=Math.floor(j+m*ig.sizeHandler.scaleRatioMultiplier.x)+"px",f=Math.floor(l+f*ig.sizeHandler.scaleRatioMultiplier.y)+ +"px",d=Math.floor(d*ig.sizeHandler.scaleRatioMultiplier.x)+"px",e=Math.floor(e*ig.sizeHandler.scaleRatioMultiplier.y)+"px"):(m=Math.floor(m*ig.sizeHandler.sizeRatio.x)+"px",f=Math.floor(f*ig.sizeHandler.sizeRatio.y)+"px",d=Math.floor(d*ig.sizeHandler.sizeRatio.x)+"px",e=Math.floor(e*ig.sizeHandler.sizeRatio.y)+"px")):(j=l.left,l=l.top,m=Math.floor(j+m*b)+"px",f=Math.floor(l+f*b)+"px",d=Math.floor(d*b)+"px",e=Math.floor(e*b)+"px");ig.domHandler.css(g,{"float":"left",position:"absolute",left:m,top:f, +width:d,height:e,"z-index":3});c[p]["font-size"]&&ig.domHandler.css(g,{"font-size":c[p]["font-size"]*b+"px"})}},resize:function(){this.sizeCalcs();this.resizeLayers()},reorient:function(){console.log("changing orientation ...");if(ig.ua.mobile){var c=BABYLON.Camera.FOVMODE_VERTICAL_FIXED,b=BABYLON.Camera.FOVMODE_VERTICAL_FIXED,e=!1;this.portraitMode?(e=window.innerHeightwindow.innerWidth, +c=BABYLON.Camera.FOVMODE_HORIZONTAL_FIXED,b=BABYLON.Camera.FOVMODE_VERTICAL_FIXED);var d=this.domHandler.getElementById("#orientate"),g=this.domHandler.getElementById("#game");if(e){if(wgl.system&&wgl.system.engine.scene&&(e=wgl.system.engine.scene.activeCamera))e.fovMode=b;this.domHandler.show(d);this.domHandler.hide(g);console.log("portrait"+window.innerWidth+","+window.innerHeight)}else{if(wgl.system&&wgl.system.engine.scene&&(e=wgl.system.engine.scene.activeCamera))e.fovMode=c;this.domHandler.show(g); +this.domHandler.hide(d);console.log("landscape"+window.innerWidth+","+window.innerHeight)}}ig.ua.mobile?(this.resize(),this.resizeAds()):this.resize();wgl.system.engine.setSize(ig.system.width,ig.system.height);wgl.system.engine.resize()},resizeAds:function(){for(var c in this.adsToResize){var b=ig.domHandler.getElementById("#"+c),e=ig.domHandler.getElementById("#"+c+"-Box"),d=(window.innerWidth-this.adsToResize[c]["box-width"])/2+"px",g=(window.innerHeight-this.adsToResize[c]["box-height"])/2+"px"; +b&&ig.domHandler.css(b,{width:window.innerWidth,height:window.innerHeight});e&&ig.domHandler.css(e,{left:d,top:g})}},samsungFix:function(){ig.ua.android&&!(4.2>parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf("Android")+8,navigator.userAgent.indexOf("Android")+11)))&&(!(0>navigator.userAgent.indexOf("GT"))&&!(0c?0:isNaN(c)?1:1c?0:isNaN(c)?1:1c){this.soundList[b].volume(0);break}isNaN(c)?this.soundList[b].volume(1):1c){this.soundList[b].volume(0);break}isNaN(c)?this.soundList[b].volume(1):1=c?this.jukeboxPlayer.setVolume(this.minVolume):isNaN(c)?this.jukeboxPlayer.setVolume(1): +1=e.indexOf("chrome")&&(f=b),e.indexOf("win64")&&(f=b));var p=new XMLHttpRequest;p.open("GET",f,!0);p.responseType="arraybuffer";p.onload=function(){this.webaudio.context.decodeAudioData(p.response, +function(b){this.webaudio.buffer=b;this.webaudio.source_loop={};this.bgmPlaying?this.play(null,!0):this.stop()}.bind(this),function(){console.log('Error decoding audio "'+f+'".')})}.bind(this);p.send();if(4==p.readyState&&"undefined"!==typeof Audio){this.useHTML5Audio=!0;try{new Audio}catch(m){this.useHTML5Audio=!1}this.useHTML5Audio&&(console.log("Using HTML5 Audio"),this.webaudio=null,this.audio=new Audio,this.isSupported=!0,this.initHTML5Audio(c))}break}},initIOSWebAudioUnlock:function(){if(this.webaudio){webaudio= +this.webaudio;var c=function(){var b=webaudio.context,e=b.createBuffer(1,1,22050),d=b.createBufferSource();d.buffer=e;d.connect(b.destination);"undefined"===typeof d.start?d.noteOn(0):d.start(0);setTimeout(function(){(d.playbackState===d.PLAYING_STATE||d.playbackState===d.FINISHED_STATE)&&window.removeEventListener("touchend",c,!1)}.bind(this),0)};window.addEventListener("touchend",c,!1)}},initHTML5Audio:function(c){if(this.useHTML5Audio&&this.audio){var b=this.audio;this.codecs={};this.codecs={mp3:!!b.canPlayType("audio/mpeg;").replace(/^no$/, +""),opus:!!b.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!b.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!b.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!b.canPlayType("audio/aac;").replace(/^no$/,""),m4a:!!(b.canPlayType("audio/x-m4a;")||b.canPlayType("audio/m4a;")||b.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(b.canPlayType("audio/x-mp4;")||b.canPlayType("audio/mp4;")||b.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!b.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, +"")};this.is={ff:Boolean(null!=window.mozInnerScreenX&&/firefox/.test(navigator.userAgent.toLowerCase())),ie:Boolean(document.all&&!window.opera),opera:Boolean(window.opera),chrome:Boolean(window.chrome),safari:Boolean(!window.chrome&&/safari/.test(navigator.userAgent.toLowerCase())&&window.getComputedStyle&&!window.globalStorage&&!window.opera)};this.playDelay=-60;this.stopDelay=30;this.is.chrome&&(this.playDelay=-25);this.is.chrome&&(this.stopDelay=25);this.is.ff&&(this.playDelay=-25);this.is.ff&& +(this.stopDelay=85);this.is.opera&&(this.playDelay=5);this.is.opera&&(this.stopDelay=0);for(var e in c){this.soundList[e]=e;var d=c[e].path,b=d+"."+ig.Sound.FORMAT.OGG.ext,d=d+"."+ig.Sound.FORMAT.MP3.ext,g=null;this.codecs[ig.Sound.FORMAT.OGG.ext.toLowerCase()]?g=b:this.codecs[ig.Sound.FORMAT.MP3.ext.toLowerCase()]&&(g=d);if(g){ig.ua.mobile?ig.ua.iOS&&(g=d):(c=navigator.userAgent.toLowerCase(),-1!=c.indexOf("safari")&&-1>=c.indexOf("chrome")&&(g=d));this.audio.addEventListener("error",function(){this.audio.error&& +4===this.audio.error.code&&(this.isSupported=!1)},!1);this.audio.src=g;this.audio._pos=0;this.audio.preload="auto";this.audio.volume=this._volume;this.inactiveAudio=new Audio;this.inactiveAudio.src=g;this.inactiveAudio._pos=0;this.inactiveAudio.preload="auto";this.inactiveAudio.volume=this._volume;this.inactiveAudio.load();var f=function(){this._duration=this.audio.duration;this._loaded||(this._loaded=!0);this.bgmPlaying?this.play(null,!0):this.stop();this.audio.removeEventListener("canplaythrough", +f,!1)}.bind(this);this.audio.addEventListener("canplaythrough",f,!1);this.audio.load();break}}}},play:function(c,b){if(this.isSupported)if(this.bgmPlaying=!0,this.webaudio){if(!b&&this.reinitOnPlay&&this.webaudio.source_loop.buffer==this.webaudio.buffer){if(this.webaudio.source_loop._playing&&(this.webaudio.source_loop[this.webaudio.compatibility.stop](0),this.webaudio.source_loop._playing=!1,this.pausedTime+=this.webaudio.context.currentTime-this.webaudio.source_loop._startTime,this.pausedTime%= +this.webaudio.source_loop.buffer.duration,this.webaudio.source_loop._startTime=0,"noteOn"===this.webaudio.compatibility.start))this.webaudio.source_once[this.webaudio.compatibility.stop](0);try{this.webaudio.context.close();this.webaudio.context=new this.AudioContext;this.webaudio.gainNode=this.webaudio.context.createGain();this.webaudio.gainNode.connect(this.webaudio.context.destination);this.webaudio.gainNode.gain.value=this._volume;var e="start",d="stop",g=this.webaudio.context.createBufferSource(); +"function"!==typeof g.start&&(e="noteOn");this.webaudio.compatibility.start=e;"function"!==typeof g.stop&&(d="noteOff");this.webaudio.compatibility.stop=d;this.webaudio.source_loop={};this.play(null,!0)}catch(f){}}if(this.webaudio.buffer){if(!this.muteFlag&&(this.bgmPlaying=!0,!this.webaudio.source_loop._playing)){this.webaudio.source_loop=this.webaudio.context.createBufferSource();this.webaudio.source_loop.buffer=this.webaudio.buffer;this.webaudio.source_loop.loop=!0;this.webaudio.source_loop.connect(this.webaudio.gainNode); +if(null==c||isNaN(c))c=0,this.pausedTime&&(c=this.pausedTime);this.webaudio.source_loop._startTime=this.webaudio.context.currentTime;if("noteOn"===this.webaudio.compatibility.start)this.webaudio.source_once=this.webaudio.context.createBufferSource(),this.webaudio.source_once.buffer=this.webaudio.buffer,this.webaudio.source_once.connect(this.webaudio.gainNode),this.webaudio.source_once.noteGrainOn(0,c,this.webaudio.buffer.duration-c),this.webaudio.source_loop[this.webaudio.compatibility.start](this.webaudio.context.currentTime+ +(this.webaudio.buffer.duration-c));else this.webaudio.source_loop[this.webaudio.compatibility.start](0,c);this.webaudio.source_loop._playing=!0}}else this.bgmPlaying=!0}else if(this.audio){var p=this.audio;if(!this.muteFlag)if(this.bgmPlaying=!0,isNaN(c)&&(c=0,this.pausedTime&&(c=this.pausedTime)),e=this._duration-c,this._onEndTimer&&(clearTimeout(this._onEndTimer),this._onEndTimer=null),this._onEndTimer=setTimeout(function(){this.audio.currentTime=0;this.audio.pause();this.pausedTime=0;if(this.inactiveAudio){var b= +this.audio;this.audio=this.inactiveAudio;this.inactiveAudio=b}this.play()}.bind(this),1E3*e+this.playDelay),4===p.readyState||!p.readyState&&navigator.isCocoonJS)p.readyState=4,p.currentTime=c,p.muted=this.muteFlag||p.muted,p.volume=this._volume,setTimeout(function(){p.play()},0);else{clearTimeout(this._onEndTimer);this._onEndTimer=null;var m=function(){typeof("function"==this.play)&&(this.play(),p.removeEventListener("canplaythrough",m,!1))}.bind(this);p.addEventListener("canplaythrough",m,!1)}}}, +stop:function(){this.bgmPlaying=!1;if(this.isSupported)if(this.webaudio){if(this.webaudio.source_loop._playing&&(this.webaudio.source_loop[this.webaudio.compatibility.stop](0),this.webaudio.source_loop._playing=!1,this.pausedTime+=this.webaudio.context.currentTime-this.webaudio.source_loop._startTime,this.pausedTime%=this.webaudio.source_loop.buffer.duration,this.webaudio.source_loop._startTime=0,"noteOn"===this.webaudio.compatibility.start))this.webaudio.source_once[this.webaudio.compatibility.stop](0)}else if(this.audio){var c= +this.audio;4==c.readyState&&(this.pausedTime=c.currentTime,c.currentTime=0,c.pause(),clearTimeout(this._onEndTimer),this._onEndTimer=null)}},volume:function(c){if(isNaN(c)||null==c)return this.getVolume();this.isSupported&&(this._volume=c,0>this._volume?this._volume=0:1=c&&(c=b.settings.spritemap.music.start,ig.ua.android?this.forcelooped||(b.play(c,!0),this.forcelooped=!0,setTimeout(function(){ig.soundHandler.forcelooped=!1},e)):b.setCurrentTime(c)))}else"ImpactMusicPlayer"==this.bgmPlayer.tagName&&(null!=window.mozInnerScreenX&&/firefox/.test(navigator.userAgent.toLowerCase()),c=Boolean(window.chrome),!window.chrome&&/safari/.test(navigator.userAgent.toLowerCase()), +e=0.1,ig.ua.mobile&&(e=0.115,ig.ua.android&&(e=0.45,c&&(e=0.3))),b=0,"mp3"==ig.soundManager.format.ext&&(b=0.05),ig.music.currentTrack&&(c=ig.music.currentTrack.duration-e,ig.music.currentTrack.currentTime>=c&&(ig.ua.android?this.forcelooped||(ig.music.currentTrack.pause(),ig.music.currentTrack.currentTime=b,ig.music.currentTrack.play(),this.forcelooped=!0,setTimeout(function(){ig.soundHandler.forcelooped=!1},e)):ig.music.currentTrack.currentTime=b)))}}})});ig.baked=!0; +ig.module("plugins.io.storage").defines(function(){ig.Storage=ig.Class.extend({staticInstantiate:function(){return!ig.Storage.instance?null:ig.Storage.instance},init:function(){ig.Storage.instance=this},isCapable:function(){return"undefined"!==typeof window.localStorage},isSet:function(c){return null!==this.get(c)},initUnset:function(c,b){null===this.get(c)&&this.set(c,b)},get:function(c){if(!this.isCapable())return null;try{return JSON.parse(localStorage.getItem(c))}catch(b){return window.localStorage.getItem(c)}}, +getInt:function(c){return~~this.get(c)},getFloat:function(c){return parseFloat(this.get(c))},getBool:function(c){return!!this.get(c)},key:function(c){return this.isCapable()?window.localStorage.key(c):null},set:function(c,b){if(!this.isCapable())return null;try{window.localStorage.setItem(c,JSON.stringify(b))}catch(e){console.log(e)}},setHighest:function(c,b){b>this.getFloat(c)&&this.set(c,b)},remove:function(c){if(!this.isCapable())return null;window.localStorage.removeItem(c)},clear:function(){if(!this.isCapable())return null; +window.localStorage.clear()}})});ig.baked=!0; +ig.module("plugins.io.mouse").defines(function(){Mouse=ig.Class.extend({bindings:{click:[ig.KEY.MOUSE1]},last:new BABYLON.Vector2.Zero,init:function(){ig.input.initMouse();for(var c in this.bindings){this[c]=c;for(var b=0;be?e:c},pollGamepads:function(){if(this.isSupported){this.leftStick.x=0;this.leftStick.y=0;this.rightStick.x=0;this.rightStick.y=0;this.list=navigator.getGamepads();for(var c in this.bindings){for(var b= +!1,e=0;ethis.getFloat(c)&&this.set(c,b)},get:function(c){return"undefined"==typeof this.tempData[c]?null:JSON.parse(this.tempData[c])},getInt:function(c){return~~this.get(c)},getFloat:function(c){return parseFloat(this.get(c))}, +getBool:function(c){return!!this.get(c)},isSet:function(c){return null!==this.get(c)},remove:function(c){delete this.tempData[c]},clear:function(){this.tempData={}}})});ig.baked=!0; +ig.module("plugins.io.io-manager").requires("plugins.io.storage","plugins.io.mouse","plugins.io.keyboard","plugins.io.gamepad","plugins.io.multitouch-input","plugins.io.gamepad-input","plugins.fake-storage").defines(function(){IoManager=ig.Class.extend({storage:null,localStorageSupport:!1,gamekey:"SurviveTheRoom",mouse:null,keyboard:null,multitouch:null,gamepad:null,init:function(){ig.multitouchInput=new ig.MultitouchInput;ig.gamepadInput=new ig.GamepadInput;this.unbindAll();this.initStorage();this.initMouse(); +this.initKeyboard();this.initMultitouch()},unbindAll:function(){ig.input.unbindAll();ig.gamepadInput.unbindAll()},initStorage:function(){try{window.localStorage.setItem("test","test"),this.storage=new ig.Storage}catch(c){console.log("using fake storage"),this.storage=new ig.FakeStorage}},initMouse:function(){this.mouse=new Mouse},initKeyboard:function(){this.keyboard=new Keyboard},initMultitouch:function(){ig.multitouchInput.start()},initGamepad:function(){this.gamepad=new Gamepad},press:function(c){return ig.input.pressed(c)|| +this.gamepad&&this.gamepad.press(c)?!0:!1},held:function(c){return ig.input.state(c)||this.gamepad&&this.gamepad.state(c)?!0:!1},release:function(c){return ig.input.released(c)||this.gamepad&&this.gamepad.released(c)?!0:!1},getClickPos:function(){return this.mouse.getPos()},getLastClickPos:function(){return this.mouse.getLast()},getTouchesPos:function(){return this.multitouch.getTouchesPos()},checkOverlap:function(c,b,e,d,g){return c.x>b+d||c.xe+g||c.yc&&(c=20);ig.drawRoundRect(b,105,455,c,20,10,!0,!1);b.globalAlpha=1;b.font="12px mainfont";b.fillText("Schadenfreude",1E3,1E3);b.restore()}else{var b=ig.system.context;b.fillStyle="#2fdbdf";b.strokeStyle="#17455a";b.lineWidth=8;b.lineJoin="round";b.textAlign= +"center";b.font="54px mainfont";b.strokeText("UNABLE TO RUN GAME",480,350);b.fillText("UNABLE TO RUN GAME",480,350);b.font="32px mainfont";b.strokeText("THIS BROWSER DOES NOT SUPPORT WEBGL",480,420);b.fillText("THIS BROWSER DOES NOT SUPPORT WEBGL",480,420)}},tapToStartDiv:function(c){this.desktopCoverDIV=document.getElementById(this.desktopCoverDIVID);if(!this.desktopCoverDIV){this.desktopCoverDIV=document.createElement("div");this.desktopCoverDIV.id=this.desktopCoverDIVID;this.desktopCoverDIV.setAttribute("class", +"play");this.desktopCoverDIV.setAttribute("style","position: absolute; display: block; z-index: 999999; background-color: rgba(23, 32, 53, 0.7); visibility: visible; font-size: 10vmin; text-align: center; vertical-align: middle; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;");this.desktopCoverDIV.innerHTML="
"+ +_STRINGS.Splash.TapToStart+"
";(document.getElementById("play").parentNode||document.getElementById("ajaxbar")).appendChild(this.desktopCoverDIV);try{"undefined"!==typeof ig.sizeHandler?"undefined"!==typeof ig.sizeHandler.coreDivsToResize&&(ig.sizeHandler.coreDivsToResize.push("#"+this.desktopCoverDIVID),"function"===typeof ig.sizeHandler.reorient&&ig.sizeHandler.reorient()):"undefined"!==typeof coreDivsToResize&&(coreDivsToResize.push(this.desktopCoverDIVID),"function"===typeof sizeHandler&& +sizeHandler())}catch(b){console.log(b)}this.desktopCoverDIV.addEventListener("click",function(){try{"undefined"!==typeof ig.soundHandler?("undefined"!==typeof ig.soundHandler.bgmPlayer?"undefined"!==typeof ig.soundHandler.bgmPlayer.webaudio&&"undefined"!==typeof ig.soundHandler.bgmPlayer.webaudio.context&&ig.soundHandler.bgmPlayer.webaudio.context.resume():(ig.soundHandler=null,ig.soundHandler="undefined"!==typeof ig.soundList?new ig.SoundHandler(ig.soundList):new ig.SoundHandler),"undefined"!==typeof ig.soundHandler.sfxPlayer? +"function"===typeof ig.soundHandler.sfxPlayer.play&&ig.soundHandler.sfxPlayer.play("staticSound"):"undefined"!==typeof ig.soundHandler.staticSound?"function"===typeof ig.soundHandler.staticSound.play&&ig.soundHandler.staticSound.play():"function"===typeof ig.soundHandler.playSound&&ig.soundHandler.playSound("staticSound")):"undefined"!==typeof Howl?(ig.global.staticSound=new Howl({src:["media/audio/play/static.ogg","media/audio/play/static.mp3"]}),ig.global.staticSound.play()):"undefined"!==typeof createjs&& +"undefined"!==typeof createjs.Sound&&"function"===typeof createjs.Sound.play&&createjs.Sound.play("opening")}catch(b){console.log(b)}this.setAttribute("style","visibility: hidden;");"function"===typeof c&&c();ig.system.setGame(MyGame)})}}})});ig.baked=!0; +ig.module("babylon.plugins.wgl-entity").defines(function(){wgl.Entity=ig.Class.extend({pos:null,vel:null,acc:null,meshes:[],_killed:!1,init:function(c,b,e,d){ig.merge(this,d);this.pos=new BABYLON.Vector3(0,0,0);this.vel=new BABYLON.Vector3(0,0,0);this.acc=new BABYLON.Vector3(0,0,0);d&&d._mesh&&this.meshes.push(d._mesh);isNaN(c)||(this.pos.x=c);isNaN(b)||(this.pos.y=b);isNaN(e)||(this.pos.z=e)},update:function(){},render:function(){},kill:function(){for(var c=0;c(c*=2)?0.5*c*c:-0.5*(--c*(c-2)-1)};ig.Tween.Easing.Cubic.EaseIn=function(c){return c*c*c};ig.Tween.Easing.Cubic.EaseOut=function(c){return--c*c*c+1};ig.Tween.Easing.Cubic.EaseInOut=function(c){return 1>(c*=2)?0.5*c*c*c:0.5*((c-=2)*c*c+2)};ig.Tween.Easing.Quartic.EaseIn= +function(c){return c*c*c*c};ig.Tween.Easing.Quartic.EaseOut=function(c){return-(--c*c*c*c-1)};ig.Tween.Easing.Quartic.EaseInOut=function(c){return 1>(c*=2)?0.5*c*c*c*c:-0.5*((c-=2)*c*c*c-2)};ig.Tween.Easing.Quintic.EaseIn=function(c){return c*c*c*c*c};ig.Tween.Easing.Quintic.EaseOut=function(c){return(c-=1)*c*c*c*c+1};ig.Tween.Easing.Quintic.EaseInOut=function(c){return 1>(c*=2)?0.5*c*c*c*c*c:0.5*((c-=2)*c*c*c*c+2)};ig.Tween.Easing.Sinusoidal.EaseIn=function(c){return-Math.cos(c*Math.PI/2)+1};ig.Tween.Easing.Sinusoidal.EaseOut= +function(c){return Math.sin(c*Math.PI/2)};ig.Tween.Easing.Sinusoidal.EaseInOut=function(c){return-0.5*(Math.cos(Math.PI*c)-1)};ig.Tween.Easing.Exponential.EaseIn=function(c){return 0==c?0:Math.pow(2,10*(c-1))};ig.Tween.Easing.Exponential.EaseOut=function(c){return 1==c?1:-Math.pow(2,-10*c)+1};ig.Tween.Easing.Exponential.EaseInOut=function(c){return 0==c?0:1==c?1:1>(c*=2)?0.5*Math.pow(2,10*(c-1)):0.5*(-Math.pow(2,-10*(c-1))+2)};ig.Tween.Easing.Circular.EaseIn=function(c){return-(Math.sqrt(1-c*c)-1)}; +ig.Tween.Easing.Circular.EaseOut=function(c){return Math.sqrt(1- --c*c)};ig.Tween.Easing.Circular.EaseInOut=function(c){return 1>(c/=0.5)?-0.5*(Math.sqrt(1-c*c)-1):0.5*(Math.sqrt(1-(c-=2)*c)+1)};ig.Tween.Easing.Elastic.EaseIn=function(c){var b,e=0.1,d=0.4;if(0==c)return 0;if(1==c)return 1;d||(d=0.3);!e||1>e?(e=1,b=d/4):b=d/(2*Math.PI)*Math.asin(1/e);return-(e*Math.pow(2,10*(c-=1))*Math.sin(2*(c-b)*Math.PI/d))};ig.Tween.Easing.Elastic.EaseOut=function(c){var b,e=0.1,d=0.4;if(0==c)return 0;if(1==c)return 1; +d||(d=0.3);!e||1>e?(e=1,b=d/4):b=d/(2*Math.PI)*Math.asin(1/e);return e*Math.pow(2,-10*c)*Math.sin(2*(c-b)*Math.PI/d)+1};ig.Tween.Easing.Elastic.EaseInOut=function(c){var b,e=0.1,d=0.4;if(0==c)return 0;if(1==c)return 1;d||(d=0.3);!e||1>e?(e=1,b=d/4):b=d/(2*Math.PI)*Math.asin(1/e);return 1>(c*=2)?-0.5*e*Math.pow(2,10*(c-=1))*Math.sin(2*(c-b)*Math.PI/d):0.5*e*Math.pow(2,-10*(c-=1))*Math.sin(2*(c-b)*Math.PI/d)+1};ig.Tween.Easing.Back.EaseIn=function(c){return c*c*(2.70158*c-1.70158)};ig.Tween.Easing.Back.EaseOut= +function(c){return(c-=1)*c*(2.70158*c+1.70158)+1};ig.Tween.Easing.Back.EaseInOut=function(c){return 1>(c*=2)?0.5*c*c*(3.5949095*c-2.5949095):0.5*((c-=2)*c*(3.5949095*c+2.5949095)+2)};ig.Tween.Easing.Bounce.EaseIn=function(c){return 1-ig.Tween.Easing.Bounce.EaseOut(1-c)};ig.Tween.Easing.Bounce.EaseOut=function(c){return(c/=1)<1/2.75?7.5625*c*c:c<2/2.75?7.5625*(c-=1.5/2.75)*c+0.75:c<2.5/2.75?7.5625*(c-=2.25/2.75)*c+0.9375:7.5625*(c-=2.625/2.75)*c+0.984375};ig.Tween.Easing.Bounce.EaseInOut=function(c){return 0.5> +c?0.5*ig.Tween.Easing.Bounce.EaseIn(2*c):0.5*ig.Tween.Easing.Bounce.EaseOut(2*c-1)+0.5}});ig.baked=!0; +ig.module("plugins.url-parameters").defines(function(){ig.UrlParameters=ig.Class.extend({init:function(){switch(getQueryVariable("iphone")){case "true":ig.ua.iPhone=!0,console.log("iPhone mode")}var c=getQueryVariable("webview");if(c)switch(c){case "true":ig.ua.is_uiwebview=!0,console.log("webview mode")}if(c=getQueryVariable("debug"))switch(c){case "true":ig.game.showDebugMenu(),console.log("debug mode")}if(c=getQueryVariable("debugwgl"))switch(c){case "true":wgl.debug.debug=!0,console.log("wgl debug mode")}switch(getQueryVariable("view")){case "stats":ig.game.resetPlayerStats(), +ig.game.endGame()}getQueryVariable("ad")}})});ig.baked=!0; +ig.module("plugins.director").requires("impact.impact").defines(function(){ig.Director=ig.Class.extend({init:function(c,b){this.game=c;this.levels=[];this.currentLevel=0;this.append(b)},loadLevel:function(c){for(var b in ig.sizeHandler.dynamicClickableEntityDivs){var e=ig.domHandler.getElementById("#"+b);ig.domHandler.hide(e)}this.currentLevel=c;this.game.loadLevel(this.levels[c]);return!0},loadLevelWithoutEntities:function(c){this.currentLevel=c;this.game.loadLevelWithoutEntities(this.levels[c]); +return!0},append:function(c){newLevels=[];return"object"===typeof c?(c.constructor===[].constructor?newLevels=c:newLevels[0]=c,this.levels=this.levels.concat(newLevels),!0):!1},nextLevel:function(){return this.currentLevel+1this.getFloat(c)&&this.set(c,b)},remove:function(c){if(!this.isCapable())return null;window.localStorage.removeItem(c)},clear:function(){if(!this.isCapable())return null; +window.localStorage.clear()}})});ig.baked=!0; +ig.module("plugins.multitouch").requires("impact.game","impact.input").defines(function(){var c=function(b,c,d,g){this.x=b;this.y=c;this.id=d;this.state=g};ig.Input.inject({touches:{},delayedTouchUp:[],fingerCount:[],initMouse:function(){if(!this.isUsingMouse)if(this.isUsingMouse=!0,"undefined"!=typeof ios&&ios)this._touchInput=new native.TouchInput,this._touchInput.touchStart(this.multitouchstart.bind(this)),this._touchInput.touchEnd(this.multitouchend.bind(this)),this._touchInput.touchMove(this.multitouchmove.bind(this)); +else{var b=this.mousewheel.bind(this);ig.system.canvas.addEventListener("mousewheel",b,!1);ig.system.canvas.addEventListener("DOMMouseScroll",b,!1);ig.system.canvas.addEventListener("contextmenu",this.contextmenu.bind(this),!1);ig.system.canvas.addEventListener("mousedown",this.keydown.bind(this),!1);ig.system.canvas.addEventListener("mouseup",this.keyup.bind(this),!1);ig.system.canvas.addEventListener("mousemove",this.mousemove.bind(this),!1);ig.system.canvas.addEventListener("touchstart",this.touchEvent.bind(this), +!1);ig.system.canvas.addEventListener("touchmove",this.touchEvent.bind(this),!1);ig.system.canvas.addEventListener("touchend",this.touchEvent.bind(this),!1);ig.system.canvas.addEventListener("touchcancel",this.touchEvent.bind(this),!1)}},keydown:function(b){this.parent(b);"mousedown"==b.type&&!this.touches.mouse&&(this.touches.mouse=new c(this.mouse.x,this.mouse.y,"mouse","down"))},keyup:function(b){this.parent(b);if("mouseup"==b.type&&!this.actions[this.bindings[2==b.button?ig.KEY.MOUSE1:ig.KEY.MOUSE2]]&& +this.touches.mouse)this.touches.mouse.state="up",this.touches.mouse.x=this.mouse.x,this.touches.mouse.y=this.mouse.y,this.delayedTouchUp.push("mouse")},mousemove:function(b){this.parent(b);this.state("click")&&this.touches.mouse&&(this.touches.mouse.x=this.mouse.x,this.touches.mouse.y=this.mouse.y)},clearPressed:function(){this.parent();this.ent=ig.game.entities;for(var b=this.delayedTouchUp.length;b--;)delete this.touches[ig.input.delayedTouchUp[b]];this.delayedTouchUp=[];this.multitouchState()}, +touchedEntity:function(){for(var b=0;bthis.ent[b].pos.x&&dthis.ent[b].pos.y&&gthis.ent[b].pos.x&&dthis.ent[b].pos.y&&gthis.ent[b].pos.x&& +ethis.ent[b].pos.y&&dthis.ent[b].pos.x&&cthis.ent[b].pos.y&&f=ig.system.width?(this.size.x=320,this.size.y=200):(this.size.x=480,this.size.y=240);this.pos.x=(ig.system.width-this.size.x)/ +2;this.pos.y=-this.size.y-200;this.endPosY=(ig.system.height-this.size.y)/2;c=this.tween({pos:{y:this.endPosY}},0.5,{easing:ig.Tween.Easing.Bounce.EaseIn});b=this.tween({},2.5,{onComplete:function(){ig.game.director.loadLevel(ig.game.director.currentLevel)}});c.chain(b);c.start();this.currentAnim=this.anims.idle},createClickableLayer:function(){console.log("Build clickable layer");this.checkClickableLayer("branding-splash",_SETTINGS.Branding.Logo.Link,_SETTINGS.Branding.Logo.NewWindow)},doesClickableLayerExist:function(c){for(k in dynamicClickableEntityDivs)if(k== +c)return!0;return!1},checkClickableLayer:function(c,b,e){"undefined"==typeof wm&&(this.doesClickableLayerExist(c)?(ig.game.showOverlay([c]),$("#"+c).find("[href]").attr("href",b)):this.createClickableOutboundLayer(c,b,"media/graphics/misc/invisible.png",e))},createClickableOutboundLayer:function(c,b,e,d){var g=ig.$new("div");g.id=c;document.body.appendChild(g);g=$("#"+g.id);g.css("float","left");g.css("position","absolute");if(ig.ua.mobile){var f=window.innerHeight/mobileHeight,p=window.innerWidth/ +mobileWidth;g.css("left",this.pos.x*p);g.css("top",this.pos.y*f);g.css("width",this.size.x*p);g.css("height",this.size.y*f)}else f=w/2-destW/2,p=h/2-destH/2,console.log(f,p),g.css("left",f+this.pos.x*multiplier),g.css("top",p+this.pos.y*multiplier),g.css("width",this.size.x*multiplier),g.css("height",this.size.y*multiplier);d?g.html(""):g.html(""); +dynamicClickableEntityDivs[c]={};dynamicClickableEntityDivs[c].width=this.size.x*multiplier;dynamicClickableEntityDivs[c].height=this.size.y*multiplier;dynamicClickableEntityDivs[c].entity_pos_x=this.pos.x;dynamicClickableEntityDivs[c].entity_pos_y=this.pos.y},draw:function(){ig.system.context.fillStyle="#100A36";ig.system.context.fillRect(0,0,ig.system.width,ig.system.height);ig.system.context.fillStyle="#000";ig.system.context.font="12px Arial";ig.system.context.textAlign="left";this.parent();this.splash&& +ig.system.context.drawImage(this.splash.data,0,0,this.splash.data.width,this.splash.data.height,this.pos.x,this.pos.y,this.size.x,this.size.y)}})});this.END_BRANDING_SPLASH;ig.baked=!0; +ig.module("plugins.datastructure.binary-heap").defines(function(){BinaryHeap=ig.Class.extend({content:[],getValue:null,minHeap:!0,tagName:"BinaryHeap",init:function(c,b){this.getValue=c;b&&(this.minHeap=!1)},push:function(c){this.content.push(c);this.sinkDown(this.content.length-1)},pop:function(){var c=this.content[0],b=this.content.pop();0this.getValue(c)?this.sinkDown(b):this.bubbleUp(b))},size:function(){return this.content.length},rescoreElement:function(c){this.sinkDown(this.content.indexOf(c))},sinkDown:function(c){for(var b=this.content[c];0>1)-1,d=this.content[e];if(this.minHeap)if(this.getValue(b) +this.getValue(d))this.content[e]=b,this.content[c]=d,c=e;else break}},bubbleUp:function(c){for(var b=this.content.length,e=this.content[c],d=this.getValue(e);;){var g=c+1<<1,f=g-1,p=null,m;fd&&(p=f));if(g(null===p?d:m))p=g;if(null!==p)this.content[c]=this.content[p],this.content[p]=e,c=p;else break}},empty:function(){for(;0>>1)-(this.size.x>>>1),console.log("centralize true ... centering branded logo ...")),_SETTINGS.Branding.Logo.LinkEnabled&&(this.link=_SETTINGS.Branding.Logo.Link,this.newWindow=_SETTINGS.Branding.Logo.NewWindow, +this.clickableLayer=new ClickableDivLayer(this));else{this.kill();return}this.div_layer_name=e.div_layer_name?e.div_layer_name:"branding-logo"}},show:function(){var c=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.show(c)},hide:function(){var c=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.hide(c)},clicked:function(){},clicking:function(){},released:function(){}})});ig.baked=!0; +ig.module("game.entities.branding-logo-placeholder").requires("impact.entity","game.entities.buttons.button-branding-logo").defines(function(){EntityBrandingLogoPlaceholder=ig.Entity.extend({gravityFactor:0,size:{x:32,y:32},_wmDrawBox:!0,_wmBoxColor:"rgba(0, 0, 255, 0.7)",init:function(c,b,e){this.parent(c,b,e);if(e)switch(console.log("settings found ... using that div layer name"),c=e.div_layer_name,console.log("settings.centralize:",e.centralize),e.centralize){case "true":console.log("centralize true"); +centralize=!0;break;case "false":console.log("centralize false");centralize=!1;break;default:console.log("default ... centralize false"),centralize=!1}else c="branding-logo",centralize=!1;if("undefined"==typeof wm){if(_SETTINGS.Branding.Logo.Enabled)try{ig.game.spawnEntity(EntityButtonBrandingLogo,this.pos.x,this.pos.y,{div_layer_name:c,centralize:centralize})}catch(d){console.log(d)}this.kill()}}})});ig.baked=!0; +ig.module("game.entities.buttons.button-more-games").requires("game.entities.buttons.button","plugins.clickable-div-layer").defines(function(){EntityButtonMoreGames=EntityButton.extend({type:ig.Entity.TYPE.A,gravityFactor:0,logo:new ig.AnimationSheet("media/graphics/sprites/button-more-games.png",64,66),size:{x:64,y:66},zIndex:750,clickableLayer:null,link:null,newWindow:!1,div_layer_name:"more-games",name:"moregames",init:function(c,b,e){this.parent(c,b,e);ig.global.wm||(this.div_layer_name=e.div_layer_name? +e.div_layer_name:"more-games",_SETTINGS.MoreGames.Enabled?(this.anims.idle=new ig.Animation(this.logo,0,[0],!0),this.currentAnim=this.anims.idle,_SETTINGS.MoreGames.Link&&(this.link=_SETTINGS.MoreGames.Link),_SETTINGS.MoreGames.NewWindow&&(this.newWindow=_SETTINGS.MoreGames.NewWindow),this.clickableLayer=new ClickableDivLayer(this)):this.kill())},show:function(){var c=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.show(c)},hide:function(){var c=ig.domHandler.getElementById("#"+ +this.div_layer_name);ig.domHandler.hide(c)},clicked:function(){},clicking:function(){},released:function(){}})});ig.baked=!0; +ig.module("game.entities.opening-shield").requires("impact.entity").defines(function(){EntityOpeningShield=ig.Entity.extend({size:{x:48,y:48},move:0,mIconAnim:0,shieldAnim:0,titleAnim:0,shieldImage:new ig.Image("media/graphics/opening/shield.png"),mIconImage:new ig.Image("media/graphics/opening/m_icon.png"),titleImage:new ig.Image("media/graphics/opening/title.png"),init:function(c,b,e){this.parent(c,b,e)},ready:function(){if(!ig.wm)if(_SETTINGS.DeveloperBranding.Splash.Enabled){this.initTimer=new ig.Timer(0.1); +try{ig.soundHandler.playSound(ig.soundHandler.SOUNDID.openingSound)}catch(c){console.log(c)}}else ig.game.director.nextLevel(),ig.system.context.globalAlpha=1,this.kill()},update:function(){this.parent();this.updateOriginalShieldOpening()},draw:function(){this.parent();ig.global.wm||(this.nextLevelTimer&&0>this.nextLevelTimer.delta()&&(ig.system.context.globalAlpha=-this.nextLevelTimer.delta()),this.drawOriginalShieldOpening())},updateOriginalShieldOpening:function(){this.initTimer&&0this.shieldAnim?(this.shieldAnim++,this.sheildTimer.reset()):(this.sheildTimer=null,this.moveTimer=new ig.Timer(0.001),this.mIconTimer=new ig.Timer(0.05),this.titleTimer=new ig.Timer(0.15)));this.moveTimer&&0this.mIconAnim?(this.mIconAnim++,this.moveTimer.reset()):this.mIconTimer= +null);this.titleTimer&&0this.titleAnim?(this.titleAnim++,this.titleTimer.reset()):(this.titleTimer=null,this.nextLevelTimer=new ig.Timer(1)));this.nextLevelTimer&&0=g;g+=1)c.lineTo(0+800*Math.cos(2*g*Math.PI/48),0+800*Math.sin(2*g*Math.PI/48)),d++,2==d&&(d=0,c.lineTo(0,0));c.translate(-b,-e);b=c.createRadialGradient(b,e,100,b,e,250);b.addColorStop(0,"rgba(255,255,255,0.1)");b.addColorStop(1,"rgba(0,0,0,0)");c.fillStyle=b;c.fill();c.restore()}this.shieldImage.drawTile(ig.system.width/2-91,0-(768-ig.system.height)/2,this.shieldAnim,182,768);this.moveTimer&&(this.mIconImage.drawTile(ig.system.width/2-96,ig.system.height/2-70,this.mIconAnim, +166,160),this.titleImage.drawTile(ig.system.width/2-204,ig.system.height/2+100,this.titleAnim,409,76));ig.system.context.globalAlpha=1}})});ig.baked=!0; +ig.module("game.entities.opening-kitty").requires("impact.entity").defines(function(){EntityOpeningKitty=ig.Entity.extend({size:{x:48,y:48},kittyAnim:-1,kittyImage:new ig.Image("media/graphics/opening/kitty.png"),kittyTitleImage:new ig.Image("media/graphics/opening/kittytitle.png"),soundKey:"kittyopeningSound",init:function(c,b,e){this.parent(c,b,e)},ready:function(){if(!ig.wm)if(_SETTINGS.DeveloperBranding.Splash.Enabled){this.initTimer=new ig.Timer(0.1);try{ig.soundHandler.sfxPlayer.play(this.soundKey)}catch(c){console.log(c)}}else ig.game.director.nextLevel(), +ig.system.context.globalAlpha=1,this.kill()},update:function(){this.parent();this.updateKittyOpening()},draw:function(){this.parent();ig.global.wm||(this.nextLevelTimer&&0>this.nextLevelTimer.delta()&&(ig.system.context.globalAlpha=-this.nextLevelTimer.delta()),this.drawKittyOpening())},updateKittyOpening:function(){this.initTimer&&0this.kittyAnim?(this.kittyAnim++,this.kittyTimer.reset()): +(this.kittyTimer=null,this.nextLevelTimer=new ig.Timer(2)));this.nextLevelTimer&&0>> +1)-(this.kittyImage.width>>>3),(ig.system.height>>>1)-(this.kittyImage.height>>>2),this.kittyAnim,218,325),this.kittyTitleImage.drawTile((ig.system.width>>>1)-(this.kittyTitleImage.width>>>1),(ig.system.height>>>1)+(this.kittyImage.height>>>2)+10,this.kittyAnim,380,37));ig.system.context.globalAlpha=1}})});ig.baked=!0; +ig.module("game.entities.pointer").requires("impact.entity").defines(function(){EntityPointer=ig.Entity.extend({checkAgainst:ig.Entity.TYPE.BOTH,isFirstPressed:!1,isPressed:!1,isReleased:!1,isHovering:!1,hoveringItem:null,objectArray:[],clickedObjectList:[],ignorePause:!0,zIndex:5E3,name:"pointer",check:function(c){this.objectArray.push(c)},clickObject:function(c){this.isFirstPressed&&"function"==typeof c.clicked&&(c.clicked(),this.addToClickedObjectList(c));this.isPressed&&!this.isReleased&&"function"== +typeof c.clicking&&c.clicking();this.isReleased&&"function"==typeof c.released&&(c.released(),this.removeFromClickedObjectList(c))},refreshPos:function(){this.pos=ig.game.io.getClickPos()},update:function(){this.parent();this.refreshPos();var c=null,b=-1;for(a=this.objectArray.length-1;-1b&&(b=this.objectArray[a].zIndex,c=this.objectArray[a]);if(null!=c)null!=this.hoveringItem?this.hoveringItem!=c&&("function"==typeof this.hoveringItem.leave&&this.hoveringItem.leave(), +"function"==typeof c.over&&c.over()):"function"==typeof c.over&&c.over(),this.hoveringItem=this.lastEnt=c,this.clickObject(c),this.objectArray=[];else if(null!=this.hoveringItem&&"function"==typeof this.hoveringItem.leave&&(this.hoveringItem.leave(),this.hoveringItem=null),this.isReleased){for(c=0;c"):$("#"+g.id).html("");dynamicClickableEntityDivs[c]={};dynamicClickableEntityDivs[c].width=$("#"+g.id).width();dynamicClickableEntityDivs[c].height= +$("#"+g.id).height();dynamicClickableEntityDivs[c].entity_pos_x=this.pos.x;dynamicClickableEntityDivs[c].entity_pos_y=this.pos.y},hovered:function(){this.isHovering=!0;this.dehoverOthers()},dehoverOthers:function(){var c=ig.game.getEntitiesByType(EntitySelect);for(i=0;i=c;g--)d.push(g);return d},draw:function(){if(this.visible&&(this.forceDraw||this.currentAnim||this.drawAsRect|| +this.drawAsOutline)){var c=ig.system.context;c.save();c.translate(ig.system.getDrawPos(this.pos.x.round()-this.offset.x-ig.game.screen.x),ig.system.getDrawPos(this.pos.y.round()-this.offset.y-ig.game.screen.y));(1!=this.scaleX||1!=this.scaleY)&&c.scale(this.scaleX,this.scaleY);this.drawObject(-this.anchorX*this.width,-this.anchorY*this.height);c.restore()}},drawObject:function(c,b){var e=ig.system.context,d=this.rectColor;this.drawAsRect&&(e.fillStyle=1>this.alpha?"rgba("+d.r+","+d.g+","+d.b+","+ +this.alpha+")":d.hex,e.fillRect(c,b,this.width,this.height));this.drawAsOutline?(e.strokeStyle=1>this.alpha?"rgba("+d.r+","+d.g+","+d.b+","+this.alpha+")":d.hex,e.strokeRect(c,b,this.width,this.height)):null!=this.currentAnim&&(this.currentAnim.alpha=this.alpha,this.currentAnim.draw(c,b))},update:function(){this.parent();if(this.inputEnabled&&this.isFinishEntering){var c=!1,b;for(b in ig.input.touches){var c=!0,e=ig.input.touches[b];this.isInsideBounds(e.x,e.y)&&!this.isClicking&&(this.isClicking= +!0,this.onClicked.dispatch(this))}c||(this.isClicking&&this.onReleased.dispatch(this),this.isClicking=!1)}-999!=this.timedLife&&(this.timedLife-=ig.system.tick,0>=this.timedLife&&(this.timedLife=-999,this.exit()))},isInsideBounds:function(c,b){var e=this.scaleX*this.width,d=this.scaleY*this.height;this.boundLeft=this.pos.x-e*this.anchorX;this.boundTop=this.pos.y-d*this.anchorY;this.boundRight=this.boundLeft+e;this.boundBottom=this.boundTop+d;this.boundLeft>this.boundRight&&(e=this.boundLeft,this.boundLeft= +this.boundRight,this.boundRight=e);this.boundTop>this.boundBottom&&(e=this.boundTop,this.boundTop=this.boundBottom,this.boundBottom=e);return cthis.boundRight||b>this.boundBottom?!1:!0},fadeBounceRightIn:function(){this.alpha=0;var c=this.pos.x;this.pos.x-=100;this.tween({alpha:1},0.75*this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Quadratic.EaseOut}).start();this.tween({pos:{x:c}},this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Back.EaseOut}).start()}, +fadeBounceRightOut:function(){this.tween({alpha:0},0.75*this.exitDuration,{delay:this.exitDelay+0.25*this.exitDuration,easing:ig.Tween.Easing.Quadratic.EaseOut}).start();this.tween({pos:{x:this.pos.x-100}},this.exitDuration,{delay:this.exitDelay,easing:ig.Tween.Easing.Back.EaseIn}).start()},fadeBounceLeftIn:function(){this.alpha=0;var c=this.pos.x;this.pos.x+=100;this.tween({alpha:1},0.75*this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Quadratic.EaseOut}).start();this.tween({pos:{x:c}}, +this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Back.EaseOut}).start()},fadeBounceLeftOut:function(){this.tween({alpha:0},0.75*this.exitDuration,{delay:this.exitDelay+0.25*this.exitDuration,easing:ig.Tween.Easing.Quadratic.EaseOut}).start();this.tween({pos:{x:this.pos.x+100}},this.exitDuration,{delay:this.exitDelay,easing:ig.Tween.Easing.Back.EaseIn}).start()},fadeJumpIn:function(){this.alpha=0;var c=this.pos.y;this.pos.y+=100;this.tween({alpha:1},0.75*this.entryDuration,{delay:this.entryDelay, +easing:ig.Tween.Easing.Quadratic.EaseOut}).start();this.tween({pos:{y:c}},this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Back.EaseOut}).start()},fadeJumpOut:function(){this.tween({alpha:0},0.75*this.exitDuration,{delay:this.exitDelay+0.25*this.exitDuration,easing:ig.Tween.Easing.Quadratic.EaseOut}).start();this.tween({pos:{y:this.pos.y+100}},this.exitDuration,{delay:this.exitDelay,easing:ig.Tween.Easing.Back.EaseIn}).start()},fadeIn:function(){var c=this.alpha;this.alpha=0;this.tween({alpha:c}, +this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Quadratic.EaseOut}).start()},fadeOut:function(){this.tween({alpha:0},this.exitDuration,{delay:this.exitDelay,easing:ig.Tween.Easing.Quadratic.EaseOut}).start()},expandIn:function(){this.alpha=0;this.tween({alpha:1},this.entryDuration,{delay:this.entryDelay,easing:ig.Tween.Easing.Quadratic.EaseOut}).start()},expandOut:function(){this.tween({alpha:0},this.exitDuration,{delay:this.exitDelay,easing:ig.Tween.Easing.Quadratic.EaseOut}).start()}, +dropBoinkIn:function(){this.alpha=0;var c=this.pos.y,b=1.2*this.scaleX,e=0.8*this.scaleY,d=this.scaleX,g=this.scaleY;this.pos.y-=0this.alpha?"rgba("+d.r+","+d.g+","+d.b+","+this.alpha+")":d.hex;e.fillRect(this.pos.x,this.pos.y,this.size.x,this.size.y);e.restore()}this.parent(c,b)}});ig.dropCurtain= +function(c){void 0===c&&(c=-1);ig.hasFadeBlack=!0;ig.game.spawnEntity(EntityFadeBlack,0,0,{isIn:!0,nextLevelID:c})};ig.liftCurtain=function(){ig.hasFadeBlack=!1;ig.game.spawnEntity(EntityFadeBlack,0,0,{isIn:!1})}});ig.baked=!0; +ig.module("game.toybox.controllers.controller").requires("impact.entity","game.entities.pointer","game.toybox.objects.ui.fade-black").defines(function(){EntityController=ig.Entity.extend({gravityFactor:0,isAllowInput:!0,pointer:null,liftCurtainOnStart:!0,size:{x:960,y:540},init:function(c,b,e){this.parent(c,b,e);this.pointer=ig.game.getEntitiesByType(EntityPointer)[0];this.liftCurtainOnStart&&ig.liftCurtain()},goToLevel:function(c){this.isAllowInput=!1;ig.dropCurtain(c)},showPopup:function(c,b){b|| +(b={});b.controller=this;this.isAllowInput=!1;ig.game.spawnEntity(c,0,0,b);ig.game.sortEntitiesDeferred()},onPopupFinished:function(){this.isAllowInput=!0}})});ig.baked=!0; +ig.module("game.toybox.objects.ui.buttons.button").requires("game.toybox.objects.game-object").defines(function(){EntityButton=EntityGameObject.extend({collides:ig.Entity.COLLIDES.NEVER,type:ig.Entity.TYPE.A,originalX:0,originalY:0,transitionInDelay:0,zIndex:7E3,textString:"",textFont:"24px Arial",textRgb:ig.color.hexToRgb("#e8bba3"),textAlign:"center",textVAlign:"center",textLineSpacing:1,textOffsetX:0,textOffsetY:0,_previousTextString:"",_multiline:!1,_lines:[],_lineSpacing:0,init:function(c,b, +e){this.parent(c,b,e);this._lineSpacing=parseInt(this.textFont.split("px")[0].split(" ").pop())*this.textLineSpacing},drawObject:function(c,b){this.parent(c,b);if(this.visible&&0this.alpha?"rgba("+this.textRgb.r+","+this.textRgb.g+","+this.textRgb.b+","+this.alpha+")":this.textRgb.hex;var d=c+this.textOffsetX,g=b+this.textOffsetY;this.singleFrameImage&&(d+=this.singleFrameImage.width/2,g+=this.singleFrameImage.height/2);if(this._multiline){var f=g;"center"==this.textVAlign&&(f=g-(this._lines.length-1)*this._lineSpacing/2);for(g=0;g=c)this.controller.onPopupFinished(this.name);else this.delayedCall(c,function(){this.controller.onPopupFinished(this.name)}.bind(this))}}})}); +ig.baked=!0; +ig.module("game.toybox.objects.ui.buttons.slider-button").requires("game.toybox.objects.ui.buttons.button","game.toybox.objects.game-object").defines(function(){EntitySliderButton=EntityButton.extend({zIndex:11E3,onStopSliding:null,value:0,xMin:0,xMax:0,yMin:0,yMax:0,indicatorOffsetX:0,indicatorOffsetY:0,indicator:null,indicatorImage:null,isHorizontal:!0,isSliding:!1,inputEnabled:!0,pair:null,init:function(c,b,e){this.onStopSliding=new ig.Signal;this.parent(c,b,e);0==this.xMax&&(this.xMax=this.width); +0==this.yMax&&(this.yMax=this.height);null==this.indicator&&(c=this.width,this.size.ythis.xMax-b.width&&(b.pos.x=this.pos.x+this.xMax-b.width);this.value=(b.pos.x-this.pos.x-this.xMin)/(this.xMax-this.xMin-b.width)}})});ig.baked=!0; +ig.module("game.toybox.objects.ui.buttons.volume-slider-button").requires("game.toybox.objects.ui.buttons.slider-button","game.toybox.objects.ui.buttons.button","game.toybox.objects.game-object").defines(function(){EntityVolumeSliderButton=EntitySliderButton.extend({indicatorOffsetY:2,xMin:3,xMax:254,indicatorImage:new ig.Image("media/graphics/sprites/dot.png"),init:function(c,b,e){this.parent(c,b,e)},drawObject:function(c,b){var e=this.xMax-this.xMin-this.indicator.width,d=ig.system.context;d.save(); +d.globalAlpha=0.2;d.fillStyle="#29eaff";d.fillRect(c,b+this.indicatorOffsetY,this.xMin+e*this.value+this.indicatorOffsetX,25);d.globalAlpha=1;d.restore();this.parent(c,b)}})});ig.baked=!0; +ig.module("game.entities.popup.settings-popup").requires("game.toybox.objects.ui.popups.popup","game.toybox.objects.ui.buttons.volume-slider-button").defines(function(){EntitySettingsPopup=EntityPopup.extend({Images:[new ig.Image("media/graphics/sprites/slider.png"),new ig.Image("media/graphics/sprites/bg-popup.png"),new ig.Image("media/graphics/sprites/button-home.png"),new ig.Image("media/graphics/sprites/button-continue.png"),new ig.Image("media/graphics/sprites/icon-bgm.png"),new ig.Image("media/graphics/sprites/icon-sfx.png")], +homeButton:null,title:null,exitDelay:0,exitDuration:0.25,sfxBar:null,bgmBar:null,init:function(c,b,e){this.parent(c,b,e);this.spawnMember(EntityGameObject,480,220,{singleFrameImage:this.Images[1],anchorX:0.5,anchorY:0.5,entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25});this.title=this.spawnMember(EntityShadowText,480,140,{shadowOffsetY:4,anchorX:0.5,anchorY:0.5,textString:_STRINGS.Game.Settings,textFont:"46px mainfont",textAlign:"center",textRgb:ig.color.hexToRgb("#29eaff"), +entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25});this.homeButton=this.spawnMember(EntityButton,480,470,{singleFrameImage:this.Images[2],anchorX:0.5,anchorY:0.5,entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25});this.homeButton.onClicked.addOnce(this.onClickHome,this);this.bgmBar=this.spawnMember(EntityVolumeSliderButton,380,210,{singleFrameImage:this.Images[0],value:ig.game.sessionData.music,entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25, +exitDuration:0.25});this.bgmBar.onStopSliding.add(this.onValueChanged,this);this.sfxBar=this.spawnMember(EntityVolumeSliderButton,380,290,{singleFrameImage:this.Images[0],value:ig.game.sessionData.sound,entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25});this.sfxBar.onStopSliding.add(this.onValueChanged,this);this.spawnMember(EntityGameObject,320,225,{singleFrameImage:this.Images[4],anchorX:0.5,anchorY:0.5,entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25}); +this.spawnMember(EntityGameObject,320,305,{singleFrameImage:this.Images[5],anchorX:0.5,anchorY:0.5,entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25});this.bgmBar.pair=this.sfxBar;this.sfxBar.pair=this.bgmBar;ig.game.sortEntitiesDeferred()},onValueChanged:function(){ig.game.sessionData.music=this.bgmBar.value;ig.game.sessionData.sound=this.sfxBar.value;ig.game.saveAll();ig.soundHandler.bgmPlayer.volume(ig.game.sessionData.music);ig.soundHandler.sfxPlayer.volume(ig.game.sessionData.sound); +ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.click)},onClickHome:function(){this.isAllowInput&&(this.isAllowInput=!1,this.exit(),ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.click))}})});ig.baked=!0; +ig.module("game.entities.controllers.main-menu-controller").requires("impact.entity","game.toybox.controllers.controller","game.toybox.objects.game-object","game.toybox.objects.ui.buttons.button","game.entities.popup.settings-popup").defines(function(){EntityMainMenuController=EntityController.extend({buttonImages:[new ig.Image("media/graphics/sprites/button-settings.png"),new ig.Image("media/graphics/sprites/button-more-games.png"),new ig.Image("media/graphics/sprites/button-play.png"),new ig.Image("media/graphics/sprites/title.png"), +new ig.Image("media/graphics/sprites/hd.png"),new ig.Image("media/graphics/sprites/sd.png")],items:[],qualityBtn:null,init:function(c,b,e){this.parent(c,b,e);c=ig.game.spawnEntity(EntityButton,620,420,{singleFrameImage:this.buttonImages[0],anchorX:0.5,entryType:"fadeIn",exitType:"fadeOut"});c.onClicked.add(this.onClickSettings,this);b=ig.game.spawnEntity(EntityButton,285,420,{singleFrameImage:this.buttonImages[1],entryType:"fadeIn",exitType:"fadeOut"});b.size.x=93;b.size.y=109;e=ig.game.spawnEntity(EntityButton, +480,340,{singleFrameImage:this.buttonImages[2],anchorX:0.5,entryType:"fadeIn",exitType:"fadeOut"});e.onClicked.add(this.onClickPlay,this);var d=ig.game.spawnEntity(EntityGameObject,480,20,{singleFrameImage:this.buttonImages[3],anchorX:0.5,entryType:"fadeIn",exitType:"fadeOut"});this.items.push(c,b,e,d);_SETTINGS.MoreGames.Enabled?(_SETTINGS.MoreGames.Link&&(b.link=_SETTINGS.MoreGames.Link),_SETTINGS.MoreGames.NewWindow&&(b.newWindow=_SETTINGS.MoreGames.NewWindow),this.clickableLayer=new ClickableDivLayer(b)): +(e.pos.y=270,c.pos.x=e.pos.x,b.kill());ig.game.spawnEntity(ig.FullscreenButton,5,5,{enterImage:new ig.Image("media/graphics/sprites/button-maximize.png"),exitImage:new ig.Image("media/graphics/sprites/button-minimize.png")})},exitAllItems:function(){for(var c=0;c>>1),this.pos.y+(this.size.y>>>1));c.textAlign="start"},clicked:function(){this.fillColor=this.altColor;console.log("clicked");ig.game.paused=!ig.game.paused;ig.game.paused?wgl.system.stopRender():wgl.system.startRender()},clicking:function(){},released:function(){this.fillColor=this.oriColor;console.log("released")}})});ig.baked=!0; +ig.module("plugins.io.virtual-joystick").defines(function(){VirtualJoystick=ig.Class.extend({pos:new BABYLON.Vector2(0,0),start:new BABYLON.Vector2(0,0),last:new BABYLON.Vector2(0,0),deltaPos:new BABYLON.Vector3(0,0,0),deltaVector:new BABYLON.Vector2(0,0),axis:{x:0,y:1,z:2},reverseDirections:[!1,!1],rotationspeed:25,inverseRotationspeed:25,sensibility:25,inversedSensibility:25,deltaPosition:new BABYLON.Vector3.Zero,touches:[],rotateOnAxisRelativeToMesh:!1,pressed:!1,color:"cyan",pointerID:-1,axisTarget:{leftright:0, +updown:1},identifier:null,drawVirtualStick:!1,camera:null,pressed:!1,init:function(c){this.camera=c;this.deltaPos=new BABYLON.Vector3.Zero;this.inversedSensibility=1/(this.sensibility/1E3);this.inverseRotationspeed=1/(this.rotationspeed/1E3);this.axisTarget.leftright=this.axis.x;this.axisTarget.updown=this.axis.y;this.rotateOnAxisRelativeToMesh=!1},initialPos:function(c){null!==this.identifier?this.identifier===c.identifier&&(this.drawVirtualStick=!0,this.start=new BABYLON.Vector2(c.x+0,c.y+0),this.pos= +this.start.clone(),this.last=this.start.clone(),this.deltaVector.x=0,this.deltaVector.y=0,this.pressed=!0):(this.drawVirtualStick=!0,this.identifier=c.identifier,this.start=new BABYLON.Vector2(c.x+0,c.y+0),this.pos=this.start.clone(),this.last=this.start.clone(),this.deltaVector.x=0,this.deltaVector.y=0,this.pressed=!0)},updatePos:function(c){if(c.identifier===this.identifier){this.pos.x=c.x;this.pos.y=c.y;this.deltaVector=this.pos.clone();this.deltaVector=this.deltaVector.subtract(this.start);c= +(this.reverseDirections[1]?-1:1)*this.deltaVector.x/this.inversedSensibility;switch(this.axisTarget.leftright){case this.axis.x:this.deltaPos.x=Math.min(1,Math.max(-1,c));break;case this.axis.y:this.deltaPos.y=Math.min(1,Math.max(-1,c));break;case this.axis.z:this.deltaPos.z=Math.min(1,Math.max(-1,c))}c=(this.reverseDirections[0]?1:-1)*this.deltaVector.y/this.inversedSensibility;switch(this.axisTarget.updown){case this.axis.x:this.deltaPos.x=Math.min(1,Math.max(-1,c));break;case this.axis.y:this.deltaPos.y= +Math.min(1,Math.max(-1,c));break;case this.axis.z:this.deltaPos.z=Math.min(1,Math.max(-1,c))}}this.action()},release:function(c,b){"undefined"!==typeof b?b&&(this.drawVirtualStick=!1,this.deltaVector.x=0,this.deltaVector.y=0,this.identifier=null,this.pressed=!1):c.identifier===this.identifier&&(this.drawVirtualStick=!1,this.deltaVector.x=0,this.deltaVector.y=0,this.identifier=null,this.pressed=!1)},action:function(){},debugText:function(c,b){var e=ig.system.context;e.fillStyle="rgba(255,255,0,1)"; +e.fillText(":"+this.deltaVector.x+" , "+this.deltaVector.y,c,b);e.fillText(":"+this.deltaPos.x+" , "+this.deltaPos.y+" , "+this.deltaPos.z,c,b+30)},draw:function(){var c=ig.system.context;this.drawVirtualStick&&(c.beginPath(),c.lineWidth=6,c.strokeStyle=this.color,c.arc(this.start.x,this.start.y,40,0,2*Math.PI,!0),c.stroke(),c.closePath(),c.beginPath(),c.strokeStyle=this.color,c.lineWidth=2,c.arc(this.start.x,this.start.y,60,0,2*Math.PI,!0),c.stroke(),c.closePath(),c.beginPath(),c.strokeStyle=this.color, +c.arc(this.pos.x,this.pos.y,40,0,2*Math.PI,!0),c.stroke(),c.closePath())},setSensibility:function(c){this.sensibility=c;this.inversedSensibility=1/(this.sensibility/1E3)}})});ig.baked=!0; +ig.module("plugins.handlers.webgl-virtual-joystick-handler").requires("plugins.io.virtual-joystick").defines(function(){ig.WebglVirtualJoystickHandler=ig.Class.extend({leftJoystick:null,rightJoystick:null,camera:null,init:function(c){this.camera=c;this.setupLeftJoystick();this.setupRightJoystick()},setupLeftJoystick:function(){this.leftJoystick=new VirtualJoystick(this.camera);this.leftJoystick.color="yellow";this.leftJoystick.axisTarget.updown=this.leftJoystick.axis.z;this.leftJoystick.axisTarget.leftright= +this.leftJoystick.axis.x;this.leftJoystick.setSensibility(0.15);this.leftJoystick.action=function(){var c=this.camera,b=50*c._computeLocalCameraSpeed(),e=BABYLON.Matrix.RotationYawPitchRoll(c.rotation.y,c.rotation.x,0),b=BABYLON.Vector3.TransformCoordinates(new BABYLON.Vector3(this.deltaPos.x*b,this.deltaPos.y*b,this.deltaPos.z*b),e);c.cameraDirection=c.cameraDirection.add(b);this.pressed||(this.deltaPos=this.deltaPos.scale(0.9))}.bind(this.leftJoystick)},setupRightJoystick:function(){this.rightJoystick= +new VirtualJoystick(this.camera);this.rightJoystick.color="cyan";this.rightJoystick.axisTarget.updown=this.rightJoystick.axis.x;this.rightJoystick.axisTarget.leftright=this.rightJoystick.axis.y;this.rightJoystick.reverseDirections[0]=!0;this.rightJoystick.setSensibility(0.05);this.rightJoystick.action=function(){var c=this.camera;c.cameraRotation=c.cameraRotation.addVector3(this.deltaPos);this.pressed||(this.deltaPos=this.deltaPos.scale(0.9))}.bind(this.rightJoystick)},update:function(){this.resolveLeftRight(ig.multitouchInput.pressed, +this.leftJoystick.initialPos.bind(this.leftJoystick),this.rightJoystick.initialPos.bind(this.rightJoystick));this.resolveLeftRight(ig.multitouchInput.state,this.leftJoystick.updatePos.bind(this.leftJoystick),this.rightJoystick.updatePos.bind(this.rightJoystick));this.resolveLeftRight(ig.multitouchInput.released,this.leftJoystick.release.bind(this.leftJoystick),this.rightJoystick.release.bind(this.rightJoystick));var c=ig.multitouchInput.released.length;if(0>=c+ig.multitouchInput.state.length+ig.multitouchInput.pressed.length)this.leftJoystick.release(null, +!0),this.rightJoystick.release(null,!0);else if(0ig.system.width>>>1?e(g):b(g)}},draw:function(){var c=ig.system.context;this.leftJoystick.draw();this.rightJoystick.draw();if(wgl.debug.debug){this.leftJoystick.debugText(20,100);c.fillText(ig.multitouchInput.pressed.length+";"+ +ig.multitouchInput.state.length+";"+ig.multitouchInput.released.length,20,200);for(var b=0;bthis.alpha?"rgba("+ +this.textRgb.r+","+this.textRgb.g+","+this.textRgb.b+","+this.alpha+")":this.textRgb.hex;c.fillText(this.textString,this.textOffsetX,this.textOffsetY);c.restore()}},measureTextWidth:function(){var c=ig.system.context;c.save();c.font=this.textFont;c.textAlign="left";var b=c.measureText(this.textString);c.restore();return b.width}})});ig.baked=!0; +ig.module("game.toybox.objects.ui.texts.shadow-text").requires("game.toybox.objects.ui.texts.text").defines(function(){EntityShadowText=EntityText.extend({shadowRgb:ig.color.hexToRgb("#000000"),shadowOffsetX:0,shadowOffsetY:4,shadowAlpha:0.4,init:function(c,b,e){this.parent(c,b,e)},drawObject:function(){if(this.visible){var c=ig.system.context;c.save();c.font=this.textFont;c.textAlign=this.textAlign;if(!this.shadowRgb.none){c.fillStyle=1>this.alpha||1>this.shadowAlpha?"rgba("+this.shadowRgb.r+","+ +this.shadowRgb.g+","+this.shadowRgb.b+","+this.alpha*this.shadowAlpha+")":this.shadowRgb.hex;var b=this.textOffsetX+this.shadowOffsetX,e=this.textOffsetY+this.shadowOffsetY;c.fillText(this.textString,b,e)}c.fillStyle=1>this.alpha?"rgba("+this.textRgb.r+","+this.textRgb.g+","+this.textRgb.b+","+this.alpha+")":this.textRgb.hex;b=this.textOffsetX;e=this.textOffsetY;c.fillText(this.textString,b,e);c.restore()}}})});ig.baked=!0; +ig.module("game.entities.ui.flying-score").requires("game.toybox.objects.ui.texts.shadow-text").defines(function(){EntityFlyingScore=EntityShadowText.extend({playerMesh:null,camera:null,textFont:"48px mainfont",textRgb:ig.color.hexToRgb("#fafaff"),textAlign:"center",zIndex:7E3,identity:null,entryDelay:0.5,entryType:"fadeIn",exitType:"fadeOut",yRise:0,riseVec:null,init:function(c,b,e){this.parent(c,b,e);this.identity=BABYLON.Matrix.Identity();this.riseVec=new BABYLON.Vector3(0,0,0);this.yRise=5;this.tween({yRise:15}, +0.3,{easing:ig.Tween.Easing.Quadratic.EaseOut,delay:0.5,onComplete:function(){this.delayedCall(0.25,function(){this.exit()}.bind(this))}.bind(this)}).start()},update:function(){this.parent();this.riseVec.y=this.yRise;var c=this.playerMesh.position.add(this.riseVec),b=BABYLON.Matrix.Identity(),e=wgl.game.currentScene.getTransformMatrix(),c=BABYLON.Vector3.Project(c,b,e,this.camera.viewport);this.pos.x=540*c.x;this.pos.y=960*c.y}})});ig.baked=!0; +ig.module("game.entities.webgl.webgl-gameplay-controller").requires("impact.entity","game.entities.buttons.button-pause","game.entities.pointer","plugins.handlers.webgl-virtual-joystick-handler","plugins.handlers.webgl-mouse-handler","game.toybox.controllers.controller","game.entities.popup.gameplay-settings-popup","game.entities.popup.tutorial-popup","game.entities.ui.flying-score","game.toybox.objects.ui.texts.shadow-text").defines(function(){EntityWebglGameplayController=EntityController.extend({scoreDisplay:null, +turnRatio:10,craftX:0,craftXMin:-75,craftXMax:75,craftY:0,craftYMin:-18,craftYMax:70,craftAngle:0,craftAngleMin:-15*Math.PI/180,craftAngleMax:15*Math.PI/180,fireDelayMax:0.5,fireDelay:0,warningBlink:0,endgameDelay:3.5,warnings:[],hasExitUI:!1,dPadX:120,dPadY:420,firePadX:840,firePadY:420,dPad:null,dPadButton:null,firePad:null,images:[new ig.Image("media/graphics/sprites/button-pause.png"),new ig.Image("media/graphics/sprites/warning.png"),new ig.Image("media/graphics/sprites/dpad.png"),new ig.Image("media/graphics/sprites/dpad-button.png"), +new ig.Image("media/graphics/sprites/fire.png"),new ig.Image("media/graphics/sprites/button-continue.png")],init:function(c,b,e){this.parent(c,b,e);ig.global.wm||(this.allowToPauseTimer=2,ig.currentGame=this,ig.game.lastScore=0,ig.ua.mobile&&(this.dPad=ig.game.spawnEntity(EntityGameObject,this.dPadX,this.dPadY,{entryType:"fadeIn",exitType:"fadeOut",anchorX:0.5,anchorY:0.5,singleFrameImage:this.images[2],zIndex:2E3}),this.dPadButton=ig.game.spawnEntity(EntityGameObject,this.dPadX,this.dPadY,{entryType:"fadeIn", +exitType:"fadeOut",anchorX:0.5,anchorY:0.5,singleFrameImage:this.images[3],zIndex:2001}),this.firePad=ig.game.spawnEntity(EntityGameObject,this.firePadX,this.firePadY,{entryType:"fadeIn",exitType:"fadeOut",anchorX:0.5,anchorY:0.5,singleFrameImage:this.images[4],zIndex:2E3})),this.scoreDisplay=ig.game.spawnEntity(EntityShadowText,20,50,{entryType:"fadeIn",exitType:"fadeOut",shadowOffsetY:6,textString:ig.game.lastScore+"",textFont:"48px mainfont",textAlign:"left",textRgb:ig.color.hexToRgb("#29eaff")}), +this.bossText=ig.game.spawnEntity(EntityShadowText,150,16,{shadowOffsetY:3,textString:_STRINGS.Game.Boss,textFont:"16px mainfont",textRgb:ig.color.hexToRgb("#29eaff")}),this.bossHpBar=ig.game.spawnEntity(EntityGameObject,150,20,{width:660,height:15,drawAsOutline:!0,zIndex:1001,rectColor:ig.color.hexToRgb("#29eaff")}),this.bossHpFill=ig.game.spawnEntity(EntityGameObject,150,20,{width:660,height:15,drawAsRect:!0,rectColor:ig.color.hexToRgb("#29eaff")}),this.bossHpFill.alpha=0.5,this.settingsButton= +ig.game.spawnEntity(EntityButton,950,10,{entryType:"fadeIn",exitType:"fadeOut",singleFrameImage:this.images[0],anchorX:1,anchorY:0,scaleX:0.7,scaleY:0.7}),this.settingsButton.onClicked.add(this.onClickSettings,this),this.warnings=[ig.game.spawnEntity(EntityGameObject,150,130,{singleFrameImage:this.images[1],anchorX:0.5,anchorY:0.5,visible:!1}),ig.game.spawnEntity(EntityGameObject,810,130,{singleFrameImage:this.images[1],anchorX:0.5,anchorY:0.5,visible:!1}),ig.game.spawnEntity(EntityGameObject,150, +410,{singleFrameImage:this.images[1],anchorX:0.5,anchorY:0.5,visible:!1}),ig.game.spawnEntity(EntityGameObject,810,410,{singleFrameImage:this.images[1],anchorX:0.5,anchorY:0.5,visible:!1})],ig.ua.mobile&&(this.warnings[2].pos.x+=100,this.warnings[3].pos.x-=100),wgl.objects.restart(),!ig.ua.mobile&&!ig.game.sessionData.hasShownTutorial&&(console.log("delayed call tutorial"),this.delayedCall(1.5,function(){this.showPopup(EntityTutorialPopup);console.log("showTutorial");ig.game.sessionData.hasShownTutorial= +!0;ig.game.saveAll()}.bind(this))),ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.woosh))},onClickSettings:function(){!(0e.position.z)if(this.isAllowInput=!1,this.gateTutorial1)for(var d in ig.input.touches)e=ig.input.touches[d],this.gateTutorial4.isInsideBounds(e.x,e.y)&&(this.isAllowInput=!0,ig.game.sessionData.hasShownLaserGateTutorial=!0,ig.game.saveAll(),this.gateTutorial1.exit(),this.gateTutorial2.exit(), +this.gateTutorial3.exit(),this.gateTutorial4.exit());else this.gateTutorial1=ig.game.spawnEntity(EntityShadowText,480,280,{shadowOffsetY:4,anchorX:0.5,anchorY:0.5,textString:_STRINGS.Game.TutorialText3,textFont:"28px mainfont",textAlign:"center",textRgb:ig.color.hexToRgb("#29eaff"),entryType:"fadeIn",exitType:"fadeOut",entryDuration:0.25,exitDuration:0.25}),this.gateTutorial2=ig.game.spawnEntity(EntityGameObject,480,270,{anchorX:0.5,anchorY:0.5,width:660,height:80,drawAsOutline:!0,zIndex:1001,rectColor:ig.color.hexToRgb("#29eaff")}), +this.gateTutorial3=ig.game.spawnEntity(EntityGameObject,480,270,{anchorX:0.5,anchorY:0.5,width:660,height:80,drawAsRect:!0,rectColor:ig.color.hexToRgb("#000000"),alpha:0.5}),this.gateTutorial4=ig.game.spawnEntity(EntityGameObject,480,350,{singleFrameImage:this.images[5],anchorX:0.5,anchorY:0}),this.gateTutorial3.alpha=0.7,ig.game.sortEntitiesDeferred()}},update:function(){this.parent();0r){l=180*Math.atan2(n,l)/Math.PI;0>l&&(l+=360);30l&&(b=!0);120l&&(d=!0);210l&&(c=!0);if(300l)e=!0;l=j.x;n=j.y;lthis.dPadX+75&&(l=this.dPadX+75);nthis.dPadY+75&&(n=this.dPadY+75);this.dPadButton.pos.x=l;this.dPadButton.pos.y=n}l=this.firePadX-j.x;n=this.firePadY-j.y;r=l*l+n*n;4900>r&&(g=!0)}}else for(m in ig.input.touches)if(j=ig.input.touches[m],80j.x)g=!0;this.craftAngle=0;e&&(this.craftX-=p*f,this.craftX +this.craftAngleMax&&(this.craftAngle=this.craftAngleMax));d&&(this.craftX+=p*f,this.craftX>this.craftXMax&&(this.craftX=this.craftXMax),this.craftAngle+=this.craftAngleMin,this.craftAnglethis.craftYMax&&(this.craftY=this.craftYMax));g&&0>=this.fireDelay&&(ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.laserPlayer), +c=wgl.objects.spacecraft.position.clone(),c.x+=16,c.y+=5,c.z+=40,b=c.clone(),b.x-=32,e=b.clone(),d=c.clone(),e.y=d.y=b.y-17,wgl.objects.spawnBullet(!0,c,new BABYLON.Vector3(0,0,1),3600),wgl.objects.spawnBullet(!0,b,new BABYLON.Vector3(0,0,1),3600),wgl.objects.spawnBullet(!0,d,new BABYLON.Vector3(0,0,1),3600),wgl.objects.spawnBullet(!0,e,new BABYLON.Vector3(0,0,1),3600),this.fireDelay=this.fireDelayMax)}},updateCraft:function(){if(wgl.objects.spacecraft.alive){var c=wgl.objects.spacecraft;c.position.x= +wgl.objects.lerp(c.position.x,this.craftX,0.1);c.position.y=wgl.objects.lerp(c.position.y,this.craftY,0.1);c.rotation.z=wgl.objects.lerp(c.rotation.z,this.craftAngle,0.1)}},endLevel:function(){this.tween({},1.5,{onComplete:function(){this.fadeInCover();this.tween({},ig.game.fadeDuration,{onComplete:function(){ig.game.lastScore=this.score;this.enableUpdate=!1;setTimeout(function(){ig.game.goToLevel("GameOver")},50)}.bind(this)}).start()}.bind(this)}).start()}})});ig.baked=!0; +ig.module("game.levels.webgl-gameplay").requires("impact.image","game.entities.webgl.webgl-gameplay-controller").defines(function(){LevelWebglGameplay={entities:[{type:"EntityWebglGameplayController",x:0,y:0}],layer:[]}});ig.baked=!0; +ig.module("game.entities.controllers.game-over-controller").requires("impact.entity","game.toybox.controllers.controller","game.toybox.objects.ui.texts.text","game.toybox.objects.ui.buttons.button","game.toybox.objects.ui.texts.shadow-text").defines(function(){EntityGameOverController=EntityController.extend({fadeInAlpha:1,fadeOutAlpha:0,Images:[new ig.Image("media/graphics/sprites/button-home.png"),new ig.Image("media/graphics/sprites/button-restart.png"),new ig.Image("media/graphics/sprites/game-over.png"), +new ig.Image("media/graphics/sprites/bg-popup.png")],cover:null,init:function(c,b,e){this.parent(c,b,e);this.isAllowInput=!0;ig.game.spawnEntity(EntityGameObject,480,80,{singleFrameImage:this.Images[2],anchorX:0.5,anchorY:0.5});ig.game.spawnEntity(EntityGameObject,480,260,{singleFrameImage:this.Images[3],anchorX:0.5,anchorY:0.5,scaleX:0.75,scaleY:0.75});this.homeButton=ig.game.spawnEntity(EntityButton,420,460,{singleFrameImage:this.Images[0],anchorX:0.5,anchorY:0.5});this.homeButton.onClicked.add(this.onClickHome, +this);this.playButton=ig.game.spawnEntity(EntityButton,540,460,{singleFrameImage:this.Images[1],anchorX:0.5,anchorY:0.5});this.playButton.onClicked.add(this.onClickPlay,this);c=ig.game.spawnEntity(EntityShadowText,480,185,{shadowOffsetY:2,anchorX:0.5,anchorY:0.5,textString:_STRINGS.Game.Score,textFont:"28px mainfont",textAlign:"center",textRgb:ig.color.hexToRgb("#29eaff")});ig.game.spawnEntity(EntityShadowText,480,c.pos.y+50,{shadowOffsetY:6,anchorX:0.5,anchorY:0.5,textString:""+ig.game.lastScore, +textFont:"48px mainfont",textAlign:"center",textRgb:ig.color.hexToRgb("#29eaff")});ig.game.spawnEntity(EntityShadowText,480,c.pos.y+50*2.3,{shadowOffsetY:2,anchorX:0.5,anchorY:0.5,textString:_STRINGS.Game.Best,textFont:"28px mainfont",textAlign:"center",textRgb:ig.color.hexToRgb("#29eaff")});b=ig.game.spawnEntity(EntityShadowText,480,c.pos.y+165,{shadowOffsetY:4,anchorX:0.5,anchorY:0.5,textString:""+ig.game.sessionData.score,textFont:"36px mainfont",textAlign:"center",textRgb:ig.color.hexToRgb("#29eaff")}); +(e=getQueryVariable("token"))?(ig.ConvexInteractivePlugin.submitScore({token:e,gameid:ig.game.gameid,score:ig.game.lastScore}),console.log("gameid= "+ig.game.gameid)):console.log("no token provided");ig.game.lastScore>ig.game.sessionData.score&&(ig.game.sessionData.score=ig.game.lastScore,ig.game.saveAll(),b.textString=ig.game.lastScore+"",c.textString=_STRINGS.Game.NewBest);ig.game.sortEntitiesDeferred();ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.endlevel)},update:function(){this.parent(); +wgl.objects.updateObjects(ig.system.tick);var c=wgl.objects,b=20-c.camera.position.y,e=-100-c.camera.position.z;c.camera.position.x+=(0-c.camera.position.x)/40;c.camera.position.y+=b/40;c.camera.position.z+=e/40;b=c.cameraTweenTarget.z/40;c.cameraTweenTarget.x-=c.cameraTweenTarget.x/40;c.cameraTweenTarget.y-=c.cameraTweenTarget.y/40;c.cameraTweenTarget.z-=b;c.camera.setTarget(c.cameraTweenTarget)},onClickHome:function(){this.isAllowInput&&(this.isAllowInput=!1,this.tween({},ig.game.fadeDuration,{onComplete:function(){ig.game.goToLevel("MainMenu")}.bind(this)}).start(), +ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.click))},onClickPlay:function(){this.isAllowInput&&(this.isAllowInput=!1,this.tween({},ig.game.fadeDuration,{onComplete:function(){ig.game.goToLevel("WebglGameplay")}.bind(this)}).start(),this.tween({},0.4,{onComplete:function(){wgl.objects.cleanup()}.bind(this)}).start(),ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.click))},draw:function(){this.parent();ig.global.wm||ig.system.context.clearRect(0,0,ig.system.width, +ig.system.height)}})});ig.baked=!0;ig.module("game.levels.game-over").requires("impact.image","game.entities.controllers.game-over-controller").defines(function(){LevelGameOver={entities:[{type:"EntityGameOverController",x:0,y:0}],layer:[]}});ig.baked=!0; +ig.module("babylon.plugins.wgl-game").defines(function(){wgl.Game=ig.Class.extend({entities:[],ready:!1,init:function(){},update:function(){this.entitiesIndexToKill=[];for(var c=0;c>>1;e=BABYLON.Mesh.CreateCylinder("y",b,0.1,0.1,6,4,c,!1);e.material=new BABYLON.StandardMaterial("yColor",c); +e.material.diffuseColor=new BABYLON.Color3(0,1,0);e.position=new BABYLON.Vector3(0,b/2,0);e=BABYLON.Mesh.CreateCylinder("z",b,0.1,0.1,6,4,c,!1);e.material=new BABYLON.StandardMaterial("zColor",c);e.material.diffuseColor=new BABYLON.Color3(0,0,1);e.position=new BABYLON.Vector3(0,0,b/2);e.rotation.x=Math.PI>>>1}})});ig.baked=!0; +ig.module("babylon.entities.game-camera").requires("babylon.plugins.wgl-entity").defines(function(){wgl.modules.GameCamera=wgl.Entity.extend({camera:null,controlEnabled:!1,name:"Camera",cameraCounter:null,addedDebugDraw:!1,hitbox:null,init:function(c,b,e,d){this.parent(c,b,e,d);ig.merge(this,d);d._camera&&(this.camera=d._camera,wgl.game.camera=this.camera);ig.ua.touchDevice?(b=wgl.game.currentScene,c=b.activeCamera,b.activeCamera=c,c.attachControl(window),c.ellipsoid=new BABYLON.Vector3(2,2,2),wgl.game.currentScene.collisionsEnabled= +!0,c.checkCollisions=!0,b=wgl.game.getMeshByName("Cube"),b.checkCollisions=!0,this.camera=c):(b=wgl.game.currentScene,c=b.activeCamera,c.attachControl(window),c.ellipsoid=new BABYLON.Vector3(2,2,2),wgl.game.currentScene.collisionsEnabled=!0,c.checkCollisions=!0,b=wgl.game.getMeshByName("Cube"),b.checkCollisions=!0,this.camera=c,this.camera.keysUp.push(ig.KEY.W),this.camera.keysDown.push(ig.KEY.S),this.camera.keysLeft.push(ig.KEY.A));this.camera.keysRight.push(ig.KEY.D);this.camera.fov=1.1;this.camera.minZ= +0.1;this.camera.maxZ=1E3;this.camera.angularSensibility=2E3;this.camera.inertia=0.8;this.camera.speed=4;this.setupHitbox()},setupHitbox:function(){this.hitbox=BABYLON.Mesh.CreateBox("box",10,wgl.game.currentScene);this.hitbox.parent=this.camera},update:function(){this.parent();if(wgl.debug.debug){if(!this.addedDebugDraw){var c=function(){ig.system.context.fillText("FOV:"+this.camera.fov+" minZ: "+this.camera.minZ+" maxZ: "+this.camera.maxZ+" innertia: "+this.camera.inertia+" fovMode: "+this.camera.fovMode+ +" speed: "+this.camera.speed+" angularSensibility: "+this.camera.angularSensibility,20,100)}.bind(this);ig.game.lastDraw.push(c)}this.addedDebugDraw=!0}},kill:function(){this.parent();this.hitbox.dispose();this.camera.dispose()}})});ig.baked=!0; +ig.module("babylon.entities.laser").requires("babylon.plugins.wgl-entity").defines(function(){wgl.modules.Laser=wgl.Entity.extend({lifeTimer:null,lifeTime:10,indexID:null,deltaRotation:new BABYLON.Vector3.Zero,laserMaterial:null,array:null,init:function(c,b,e,d){this.parent(c,b,e,d);this.lifeTimer=new ig.Timer;this.meshes.push(BABYLON.MeshBuilder.CreatePlane("pl",{width:2,height:50},wgl.game.currentScene));this.meshes[0].position=new BABYLON.Vector3.Zero;this.laserMaterial=new BABYLON.StandardMaterial("texture1", +wgl.game.currentScene);this.laserMaterial.emissiveColor=new BABYLON.Color3(1,0.2,0.7);this.laserMaterial.backFaceCulling=!1;console.log(this.laserMaterial);this.meshes[0].material=this.laserMaterial;this.meshes[0].position=this.pos;d.indexID&&(this.indexID=d.indexID);d.array&&(this.array=d.array);c=1*Math.random();this.deltaRotation.x=0.5>c?10*Math.random():-10*Math.random();c=1*Math.random();this.deltaRotation.y=0.5>c?10*Math.random():-10*Math.random();c=1*Math.random();this.deltaRotation.z=0.5> +c?10*Math.random():-10*Math.random()},update:function(){this.parent();this.lifeTimer&&this.lifeTimer.delta()>this.lifeTime?this.kill():(this.meshes[0].rotation.x+=this.deltaRotation.x*ig.system.tick,this.meshes[0].rotation.y+=this.deltaRotation.y*ig.system.tick,this.meshes[0].rotation.z+=this.deltaRotation.z*ig.system.tick)},kill:function(){this.parent();this.array.splice(this.indexID,1)}})});ig.baked=!0; +ig.module("babylon.entities.laser-spawner").requires("babylon.plugins.wgl-entity","babylon.entities.laser").defines(function(){wgl.modules.LaserSpawner=wgl.Entity.extend({laserArray:[],laserLength:50,laserPattern:null,laserTimer:null,spawnTime:3,spawnLimit:3,name:"LaserSpawner",startSpawn:!1,init:function(c,b,e,d){this.parent(c,b,e,d);this.laserTimer=new ig.Timer},update:function(){this.parent();this.laserTimer&&(this.startSpawn||this.laserTimer.reset(),this.laserTimer.delta()>this.spawnTime&&this.laserArray.length< +this.spawnLimit&&(this.spawnLaser(),this.laserTimer.reset()))},start:function(){this.startSpawn=!0},spawnLaser:function(){this.laserArray.push(wgl.game.spawnEntity(wgl.modules.Laser,0,0,0,{indexID:this.laserArray.length,array:this.laserArray}))},kill:function(){this.parent()}})});ig.baked=!0; +ig.module("babylon.game.wgl-main").requires("babylon.plugins.wgl-game","babylon.plugins.wgl-system","babylon.plugins.wgl-debug","babylon.plugins.wgl-game","babylon.entities.game-camera","babylon.entities.laser-spawner","babylon.entities.laser").defines(function(){MyWGLGame=wgl.Game.extend({gameover:!1,score:0,debug:!1,levels:{game:"game-scene.babylon"},root:"media/scenes/",init:function(){},reloadLevel:function(){for(wgl.system.unregisterBeforeRender();0=this.pool[c].length&&this.createObject(c);b=this.pool[c].pop();b.isVisible=!0;b.scaling.set(1,1,1);b.visibility=1;b.position.set(0,0,0);return b},returnObject:function(c){if(this.enablePool){console.log("return:", +c.poolId);c.poolId||console.error("Error: Object does not originated from the pool, poolId not found");for(var b=0;bc;c++){var b=this.trench.clone("trench-instance");b.position.set(0,20,-1800+(c+1)*this.trenchSize); +this.trenches.push(b)}this.obstacleBarTop=wgl.game.currentScene.getMeshByName("ObstacleBarTop");this.obstacleBarBottom=wgl.game.currentScene.getMeshByName("ObstacleBarBottom");this.obstacleColumnLeft=wgl.game.currentScene.getMeshByName("ObstacleColumnLeft");this.obstacleColumnRight=wgl.game.currentScene.getMeshByName("ObstacleColumnRight");this.obstacleCornerBottomLeft=wgl.game.currentScene.getMeshByName("ObstacleCornerBottomLeft");this.obstacleCornerBottomRight=wgl.game.currentScene.getMeshByName("ObstacleCornerBottomRight"); +this.obstacleHoleBottomLeft=wgl.game.currentScene.getMeshByName("ObstacleHoleBottomLeft");this.obstacleHoleBottomRight=wgl.game.currentScene.getMeshByName("ObstacleHoleBottomRight");this.obstacleHoleTopLeft=wgl.game.currentScene.getMeshByName("ObstacleHoleTopLeft");this.obstacleHoleTopRight=wgl.game.currentScene.getMeshByName("ObstacleHoleTopRight");this.obstaclePole=wgl.game.currentScene.getMeshByName("ObstaclePole");this.targetTutorial=wgl.game.currentScene.getMeshByName("Target");this.turret=wgl.game.currentScene.getMeshByName("Turret"); +this.playerBullet=wgl.game.currentScene.getMeshByName("PlayerBullet");this.enemyBullet=wgl.game.currentScene.getMeshByName("EnemyBullet");this.explosion=wgl.game.currentScene.getMeshByName("Explosion");this.explosionRing=wgl.game.currentScene.getMeshByName("ExplosionDisk");this.powerupTime=wgl.game.currentScene.getMeshByName("PowerUpSlowDown");this.powerupDestroyer=wgl.game.currentScene.getMeshByName("PowerUpWallBreaker");this.powerupShield=wgl.game.currentScene.getMeshByName("PowerUpShield");this.shield= +wgl.game.currentScene.getMeshByName("ShieldBubble");this.bossBubble=wgl.game.currentScene.getMeshByName("BossShotBubble");this.destroyerBullet=wgl.game.currentScene.getMeshByName("WallBreaker");b="obstacleBarTop obstacleBarBottom obstacleColumnLeft obstacleColumnRight obstacleCornerBottomLeft obstacleCornerBottomRight obstacleHoleBottomLeft obstacleHoleBottomRight obstacleHoleTopLeft obstacleHoleTopRight obstaclePole targetTutorial turret playerBullet enemyBullet explosion explosionRing powerupTime powerupDestroyer powerupShield bossBubble destroyerBullet".split(" "); +this.pool=new ObjectPool;this.pool.preparePool(this,b,[2,2,2,2,2,2,2,2,2,2,5,5,5,20,10,30,10,2,2,2,2,4,2]);this.shield.material.opacityTexture=this.shield.material.diffuseTexture;this.explosion.material.opacityTexture=this.explosion.material.diffuseTexture;this.explosionRing.material.opacityTexture=this.explosionRing.material.diffuseTexture;this.spacecraft.position.set(0,0,-1E3);this.pointCameraTo(0,0,0);wgl.game.currentScene.autoClear=!1;wgl.game.currentScene.autoClearDepthAndStencil=!1;for(c=0;c< +b.length;c++)this[b[c]].isVisible=!1;wgl.game.currentScene.getMeshByName("StarSkybox");console.log("webgl version",wgl.system.engine.webGLVersion)},attachHitboxMeshes:function(c){if(this.showHitboxes&&c.hitboxes)for(var b=0;b=this.startDelay?this.speed+=this.acceleration*c:0Math.abs(this.speed-this.defaultSpeed)&&(this.speed=this.defaultSpeed));this.updateTrenches(c);this.updateSpawnObstacle(c);this.updateObstacles(c);this.updatePowerups(c);this.updateTurrets(c);this.updateBullets(c);this.updateCollision(c);this.updateExplosions(c); +this.updateShield(c);this.updateBoss(c);this.spacecraft.position.z=this.spacecraft.alive?this.spacecraft.position.z-this.spacecraft.position.z/20:this.spacecraft.position.z-this.speed*c},updateBoss:function(c){if(0e?0.28:-0.28);this.boss.rotation.z=this.boss.rotation.z=this.lerp(this.boss.rotation.z,b,0.2);this.bossShootDelay-=c;0>this.bossShootDelay&&(this.bossShootDelay=this.bossShootDelayMax,this.spawnBullet(!1,this.bossBubble.position,new BABYLON.Vector3(0,0,-1),1E3+this.speed,!0),ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.laserPlayer));e=1-this.bossShootDelay/this.bossShootDelayMax; +0>e&&(e=0);this.bossBubble.scaling.set(e,e,e);this.bossBubble.rotation.x+=2*c;this.bossBubble.rotation.z+=1*c;this.bossBubble.rotation.x>2*Math.PI&&(this.bossBubble.rotation.x-=2*Math.PI);this.bossBubble.rotation.z>2*Math.PI&&(this.bossBubble.rotation.z-=2*Math.PI)}else this.boss.position.z>-this.objectSpawnZ&&(this.boss.position.z-=this.speed*c,0this.boss.visibility&&(this.boss.visibility=0))),this.spacecraft.alive&&0=this.bossSpawnTimer&&(this.bossSpawnTimer=this.bossSpawnTimerMax,this.boss.position.set(0,300,-200),this.bossHp=this.bossHpMax=this.speed,this.bostLastObstacle="",this.bossPositionY=this.bossPositionX=0,this.bossShootDelay=5));this.bossBubble.position.x=this.boss.position.x;this.bossBubble.position.y=this.boss.position.y;this.bossBubble.position.z=this.boss.position.z-20},applyMaxSpeed:function(c,b){return 0>c?c<-b?-b:c:c>b?b:c},findGoodBossPosition:function(){var c=this.findObstacleNearestToBoss(); +if(null!=c&&this.bossLastObstacle!=c.type){this.bossLastObstacle=c.type;var b=null;switch(c.type){case "obstacleBarTop":b=[2,3];break;case "obstacleBarBottom":b=[0,1];break;case "obstacleColumnLeft":b=[1,3];break;case "obstacleColumnRight":b=[0,2];break;case "obstacleCornerBottomLeft":b=[0,1,3];break;case "obstacleCornerBottomRight":b=[0,1,2];break;case "obstacleHoleBottomRight":b=[3];break;case "obstacleHoleBottomLeft":b=[2];break;case "obstacleHoleTopRight":b=[1];break;case "obstacleHoleTopLeft":b= +[0];break;case "fullLaser":b=[4]}switch(ig.random.fromArray(b)){case 0:this.bossPositionX=-50;this.bossPositionY=50;break;case 1:this.bossPositionY=this.bossPositionX=50;break;case 2:this.bossPositionX=-50;this.bossPositionY=-10;break;case 3:this.bossPositionX=50;this.bossPositionY=-10;break;case 4:this.bossPositionY=100}}},findObstacleNearestToBoss:function(){for(var c=null,b=0;bthis.boss.position.z&&2E3>e.position.z-this.boss.position.z&& +(null==c||c.position.z>e.position.z))c=e}return c},updateShield:function(c){this.shield.position.x=this.spacecraft.position.x;this.shield.position.y=this.spacecraft.position.y;this.shield.position.z=this.spacecraft.position.z;this.spacecraft.alive?0this.shieldFadeToggleTime?this.shieldFadeToggleTime=1:this.shield.visibility=0.5this.shield.visibility&&(this.shield.visibility=0))},updateCollision:function(){for(var c=0;c=this.bossHp?(ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.explosionPlayer),this.spawnExplosionSet(this.boss.position.x, +this.boss.position.y,this.boss.position.z),this.spacecraft.alive&&(ig.game.lastScore+=50)):(this.spawnSmallExplosion(b.position.x,b.position.y,this.bossBubble.position.z),ig.soundHandler.sfxPlayer.play(ig.soundHandler.sfxPlayer.soundList.explosionEnemy));b.destroyer||(this.playerBullets.splice(c,1),this.pool.returnObject(b));break}}for(var e=0;eb+d.size.z||g+e.size.xp+d.size.x||f+e.size.ym+d.size.y?!1:!0},updateTrenches:function(c){for(var b=0;b=e.position.z-this.speed*c&&ig.game.lastScore++;e.position.z-=this.speed*c;e.scaling.z=1+Math.abs(e.position.z)/400;if(e.alive){if(this.updateObjectVisibility(e,c),e.target){e.target.rotation.z+=0.5*Math.PI*c;var d=c;0e.target.scaling.z&&(e.target.scaleDirection=1))}}else e.target&&(e.target.visibility=0),0=e.visibility&&(e.visibility=0,e.position.z=this.exitLimit-1));e.position.zc.visibility&&(c.visibility+=4*b,1=e.visibility&&(e.visibility=0,e.position.z=this.exitLimit-1));e.position.z=e.visibility&&(e.visibility=0,e.position.z=this.exitLimit-1));15002*Math.PI&&(e.rotation.y-=2*Math.PI)):6.27>e.rotation.y&&(e.rotation.y+=4*c);e.position.zthis.objectSpawnZ+ +1E3&&(c.alive=!1);!c.isLaser&&c.position.z>this.objectSpawnZ-200&&(c.alive=!1);c.position.z<-this.trenchSize&&(c.alive=!1)},updateSpawnObstacle:function(c){this.spacecraft.alive&&(this.obstacleTick+=this.speed*c,this.obstacleTick>this.obstacleTickEvery&&(this.obstacleTick=0,0>this.nextObstacleIn||(0==this.nextObstacleIn&&(this.nextObstacleIn=ig.random.int(this.nextObstacleMin,this.nextObstacleMax),this.spawnObstacle()),this.nextObstacleIn--)))},spawnObstacle:function(){for(var c=this.lastObstacle;c== +this.lastObstacle;)c=0f;f++)0==f? +this.spawnExplosion(c,b,e,d,g,0):this.spawnExplosion(c+ig.random.float(5,10),b+ig.random.float(5,10),e+ig.random.float(5,10),null,null,0);d=ig.random.float(0,Math.PI);g=ig.random.float(0,Math.PI);this.spawnExplosionRing(c,b,e,0,d,g);this.spawnExplosionRing(c,b,e,Math.PI/2,d,g)},spawnExplosion:function(c,b,e,d,g,f){var p=this.pool.getObject("explosion"),m=[BABYLON.Mesh.BILLBOARDMODE_ALL,BABYLON.Mesh.BILLBOARDMODE_Y,,BABYLON.Mesh.BILLBOARDMODE_ALL,BABYLON.Mesh.BILLBOARDMODE_X,BABYLON.Mesh.BILLBOARDMODE_ALL, +BABYLON.Mesh.BILLBOARDMODE_Z];p.isShrinking=!1;p.delay=f;var j=ig.random.float(0.3,0.6);f=0.1*j;j=1-j;this.explosions.push(p);p.anchorX=c;p.anchorY=b;p.anchorZ=e;p.scaleSpeed=j;p.position.set(c,b,e);p.scaling.set(f,f,1);p.visibilityCap=0.8;d?(p.attachedObject=d,p.attachedObjectArray=g,p.billboardMode=BABYLON.Mesh.BILLBOARDMODE_ALL,p.scaleSpeed=1,p.scaling.set(0.1,0.1,1)):p.billboardMode=ig.random.fromArray(m)},spawnSmallExplosion:function(c,b,e){var d=this.pool.getObject("explosion");d.isShrinking= +!1;d.delay=0;this.explosions.push(d);d.anchorX=c;d.anchorY=b;d.anchorZ=e;d.position.set(c,b,e);d.visibilityCap=0.8;d.billboardMode=BABYLON.Mesh.BILLBOARDMODE_ALL;d.scaleSpeed=-2;d.scaling.set(0.8,0.8,1)},spawnExplosionRing:function(c,b,e,d){var g=this.pool.getObject("explosionRing");g.isShrinking=!1;g.delay=0;this.explosions.push(g);g.anchorX=c;g.anchorY=b;g.anchorZ=e;g.visibilityCap=0.7;g.position.set(c,b,e);g.billboardMode=0d.aliveTime?d.visibility=d.visibility=d.visibility&&(d.visibility=0,d.position.z=this.exitLimit-1)),g=1*f,d.scaling.x<1*d.scaleSpeed?g=3*f:d.scaling.x<2*d.scaleSpeed&&(g=2*f),d.scaling.x+=g*d.scaleSpeed,d.scaling.y+=g*d.scaleSpeed,0>=d.scaling.x&&(d.scaling.x=0,d.position.z=this.exitLimit-1),0>d.scaling.y&&(d.scaling.y=0),d.position.zMath.random()},"int":function(c,b){return c+Math.floor((b-c+1)*Math.random())},"float":function(c,b){return c+(b-c)*Math.random()},string:function(c,b){void 0===b&&(b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");for(var e="",d=0;dthis.fpsTimer.delta()? +null!=this.fpsCounter?this.fpsCounter++:this.fpsCounter=0:(ig.game.fps=this.fpsCounter,this.fpsCounter=0,this.fpsTimer.reset())},endGame:function(){console.log("End game");ig.soundHandler.bgmPlayer.stop();ig.apiHandler.run("MJSEnd")},resetPlayerStats:function(){ig.log("resetting player stats ...");this.playerStats={id:this.playerStats?this.playerStats.id:null}},splashClick:function(){var c=ig.domHandler.getElementById("#play");ig.domHandler.hide(c);ig.apiHandler.run("MJSFooter");ig.apiHandler.run("MJSHeader"); +ig.game.start()},pauseGame:function(){ig.system.stopRunLoop.call(ig.system);console.log("Game Paused")},resumeGame:function(){ig.system.startRunLoop.call(ig.system);console.log("Game Resumed")},showOverlay:function(c){for(i=0;ithis.debug.length||this.debug.splice(0,1),this.debug.push(c),this.debugLine++):(this.debug=[],this.debugLine=1,this.debug.push(c));console.log(c)},debugEnable:function(){ig.input.pressed("click")&&(this.debugEnableTimer=new ig.Timer(2));this.debugEnableTimer&&0>this.debugEnableTimer.delta()?ig.input.released("click")&&(this.debugEnableTimer=null):this.debugEnableTimer&& +0 + + + + + + + + X-Trench Run + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ + + +
+
+
+ +
+
+ + + + +
+
+ +
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ + + +
+ + + + + + + + + + + diff --git a/games/x-trench-run/media/audio/bgm.mp3 b/games/x-trench-run/media/audio/bgm.mp3 new file mode 100644 index 00000000..818cd99b Binary files /dev/null and b/games/x-trench-run/media/audio/bgm.mp3 differ diff --git a/games/x-trench-run/media/audio/click.ogg b/games/x-trench-run/media/audio/click.ogg new file mode 100644 index 00000000..a755b426 Binary files /dev/null and b/games/x-trench-run/media/audio/click.ogg differ diff --git a/games/x-trench-run/media/audio/explosion-enemy.ogg b/games/x-trench-run/media/audio/explosion-enemy.ogg new file mode 100644 index 00000000..fad7d6f8 Binary files /dev/null and b/games/x-trench-run/media/audio/explosion-enemy.ogg differ diff --git a/games/x-trench-run/media/audio/explosion-player.ogg b/games/x-trench-run/media/audio/explosion-player.ogg new file mode 100644 index 00000000..a63448d5 Binary files /dev/null and b/games/x-trench-run/media/audio/explosion-player.ogg differ diff --git a/games/x-trench-run/media/audio/laser-enemy.ogg b/games/x-trench-run/media/audio/laser-enemy.ogg new file mode 100644 index 00000000..f57f9d9f Binary files /dev/null and b/games/x-trench-run/media/audio/laser-enemy.ogg differ diff --git a/games/x-trench-run/media/audio/laser-player.ogg b/games/x-trench-run/media/audio/laser-player.ogg new file mode 100644 index 00000000..69673db2 Binary files /dev/null and b/games/x-trench-run/media/audio/laser-player.ogg differ diff --git a/games/x-trench-run/media/audio/opening/kittyopening.ogg b/games/x-trench-run/media/audio/opening/kittyopening.ogg new file mode 100644 index 00000000..e822deb3 Binary files /dev/null and b/games/x-trench-run/media/audio/opening/kittyopening.ogg differ diff --git a/games/x-trench-run/media/audio/opening/opening.ogg b/games/x-trench-run/media/audio/opening/opening.ogg new file mode 100644 index 00000000..ed68945a Binary files /dev/null and b/games/x-trench-run/media/audio/opening/opening.ogg differ diff --git a/games/x-trench-run/media/audio/play/static.ogg b/games/x-trench-run/media/audio/play/static.ogg new file mode 100644 index 00000000..ca63e9c2 Binary files /dev/null and b/games/x-trench-run/media/audio/play/static.ogg differ diff --git a/games/x-trench-run/media/audio/powerup.ogg b/games/x-trench-run/media/audio/powerup.ogg new file mode 100644 index 00000000..f24ac2ee Binary files /dev/null and b/games/x-trench-run/media/audio/powerup.ogg differ diff --git a/games/x-trench-run/media/audio/woosh.ogg b/games/x-trench-run/media/audio/woosh.ogg new file mode 100644 index 00000000..02b8932b Binary files /dev/null and b/games/x-trench-run/media/audio/woosh.ogg differ diff --git a/games/x-trench-run/media/graphics/font/mainfont.woff b/games/x-trench-run/media/graphics/font/mainfont.woff new file mode 100644 index 00000000..e85b0945 Binary files /dev/null and b/games/x-trench-run/media/graphics/font/mainfont.woff differ diff --git a/games/x-trench-run/media/graphics/loading/ajax-loader.gif b/games/x-trench-run/media/graphics/loading/ajax-loader.gif new file mode 100644 index 00000000..c95d05a0 Binary files /dev/null and b/games/x-trench-run/media/graphics/loading/ajax-loader.gif differ diff --git a/games/x-trench-run/media/graphics/misc/invisible.png b/games/x-trench-run/media/graphics/misc/invisible.png new file mode 100644 index 00000000..36de275e Binary files /dev/null and b/games/x-trench-run/media/graphics/misc/invisible.png differ diff --git a/games/x-trench-run/media/graphics/opening/kitty.png b/games/x-trench-run/media/graphics/opening/kitty.png new file mode 100644 index 00000000..88bea3d1 Binary files /dev/null and b/games/x-trench-run/media/graphics/opening/kitty.png differ diff --git a/games/x-trench-run/media/graphics/opening/kittytitle.png b/games/x-trench-run/media/graphics/opening/kittytitle.png new file mode 100644 index 00000000..ea12b86c Binary files /dev/null and b/games/x-trench-run/media/graphics/opening/kittytitle.png differ diff --git a/games/x-trench-run/media/graphics/opening/m_icon.png b/games/x-trench-run/media/graphics/opening/m_icon.png new file mode 100644 index 00000000..47dde3ae Binary files /dev/null and b/games/x-trench-run/media/graphics/opening/m_icon.png differ diff --git a/games/x-trench-run/media/graphics/opening/shield.png b/games/x-trench-run/media/graphics/opening/shield.png new file mode 100644 index 00000000..b6498b3b Binary files /dev/null and b/games/x-trench-run/media/graphics/opening/shield.png differ diff --git a/games/x-trench-run/media/graphics/opening/title.png b/games/x-trench-run/media/graphics/opening/title.png new file mode 100644 index 00000000..112d1e26 Binary files /dev/null and b/games/x-trench-run/media/graphics/opening/title.png differ diff --git a/games/x-trench-run/media/graphics/orientate/portrait.jpg b/games/x-trench-run/media/graphics/orientate/portrait.jpg new file mode 100644 index 00000000..b8f1bf69 Binary files /dev/null and b/games/x-trench-run/media/graphics/orientate/portrait.jpg differ diff --git a/games/x-trench-run/media/graphics/splash/loading.png b/games/x-trench-run/media/graphics/splash/loading.png new file mode 100644 index 00000000..d075fb24 Binary files /dev/null and b/games/x-trench-run/media/graphics/splash/loading.png differ diff --git a/games/x-trench-run/media/graphics/splash/mobile/cover-start.jpg b/games/x-trench-run/media/graphics/splash/mobile/cover-start.jpg new file mode 100644 index 00000000..78118ef3 Binary files /dev/null and b/games/x-trench-run/media/graphics/splash/mobile/cover-start.jpg differ diff --git a/games/x-trench-run/media/graphics/sprites/bg-popup.png b/games/x-trench-run/media/graphics/sprites/bg-popup.png new file mode 100644 index 00000000..50dba96c Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/bg-popup.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-continue.png b/games/x-trench-run/media/graphics/sprites/button-continue.png new file mode 100644 index 00000000..248642da Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-continue.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-home.png b/games/x-trench-run/media/graphics/sprites/button-home.png new file mode 100644 index 00000000..5032dadc Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-home.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-maximize.png b/games/x-trench-run/media/graphics/sprites/button-maximize.png new file mode 100644 index 00000000..07badb95 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-maximize.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-minimize.png b/games/x-trench-run/media/graphics/sprites/button-minimize.png new file mode 100644 index 00000000..5fe6badb Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-minimize.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-more-games.png b/games/x-trench-run/media/graphics/sprites/button-more-games.png new file mode 100644 index 00000000..96993d24 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-more-games.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-pause.png b/games/x-trench-run/media/graphics/sprites/button-pause.png new file mode 100644 index 00000000..d4a5301c Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-pause.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-play.png b/games/x-trench-run/media/graphics/sprites/button-play.png new file mode 100644 index 00000000..bec1af34 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-play.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-restart.png b/games/x-trench-run/media/graphics/sprites/button-restart.png new file mode 100644 index 00000000..aa03342c Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-restart.png differ diff --git a/games/x-trench-run/media/graphics/sprites/button-settings.png b/games/x-trench-run/media/graphics/sprites/button-settings.png new file mode 100644 index 00000000..f9bcadc5 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/button-settings.png differ diff --git a/games/x-trench-run/media/graphics/sprites/dot.png b/games/x-trench-run/media/graphics/sprites/dot.png new file mode 100644 index 00000000..dc49d296 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/dot.png differ diff --git a/games/x-trench-run/media/graphics/sprites/dpad-button.png b/games/x-trench-run/media/graphics/sprites/dpad-button.png new file mode 100644 index 00000000..ac8e137b Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/dpad-button.png differ diff --git a/games/x-trench-run/media/graphics/sprites/dpad.png b/games/x-trench-run/media/graphics/sprites/dpad.png new file mode 100644 index 00000000..e3404e6a Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/dpad.png differ diff --git a/games/x-trench-run/media/graphics/sprites/fire.png b/games/x-trench-run/media/graphics/sprites/fire.png new file mode 100644 index 00000000..60096e6a Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/fire.png differ diff --git a/games/x-trench-run/media/graphics/sprites/game-over.png b/games/x-trench-run/media/graphics/sprites/game-over.png new file mode 100644 index 00000000..fff3d2ca Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/game-over.png differ diff --git a/games/x-trench-run/media/graphics/sprites/hd.png b/games/x-trench-run/media/graphics/sprites/hd.png new file mode 100644 index 00000000..2130ced3 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/hd.png differ diff --git a/games/x-trench-run/media/graphics/sprites/icon-bgm.png b/games/x-trench-run/media/graphics/sprites/icon-bgm.png new file mode 100644 index 00000000..9ec006db Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/icon-bgm.png differ diff --git a/games/x-trench-run/media/graphics/sprites/icon-sfx.png b/games/x-trench-run/media/graphics/sprites/icon-sfx.png new file mode 100644 index 00000000..bf8c3bb2 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/icon-sfx.png differ diff --git a/games/x-trench-run/media/graphics/sprites/sd.png b/games/x-trench-run/media/graphics/sprites/sd.png new file mode 100644 index 00000000..f09a9abb Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/sd.png differ diff --git a/games/x-trench-run/media/graphics/sprites/slider.png b/games/x-trench-run/media/graphics/sprites/slider.png new file mode 100644 index 00000000..4f8504a0 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/slider.png differ diff --git a/games/x-trench-run/media/graphics/sprites/title.png b/games/x-trench-run/media/graphics/sprites/title.png new file mode 100644 index 00000000..ccb586f0 Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/title.png differ diff --git a/games/x-trench-run/media/graphics/sprites/warning.png b/games/x-trench-run/media/graphics/sprites/warning.png new file mode 100644 index 00000000..e226067a Binary files /dev/null and b/games/x-trench-run/media/graphics/sprites/warning.png differ diff --git a/games/x-trench-run/media/scenes/boss.png b/games/x-trench-run/media/scenes/boss.png new file mode 100644 index 00000000..defee96b Binary files /dev/null and b/games/x-trench-run/media/scenes/boss.png differ diff --git a/games/x-trench-run/media/scenes/boss_shot_bubble.png b/games/x-trench-run/media/scenes/boss_shot_bubble.png new file mode 100644 index 00000000..c0796cb7 Binary files /dev/null and b/games/x-trench-run/media/scenes/boss_shot_bubble.png differ diff --git a/games/x-trench-run/media/scenes/game-scene.babylon b/games/x-trench-run/media/scenes/game-scene.babylon new file mode 100644 index 00000000..47dbbbac --- /dev/null +++ b/games/x-trench-run/media/scenes/game-scene.babylon @@ -0,0 +1,4176 @@ +{"producer":{"name":"Blender","version":"2.78 (sub 0)","exporter_version":"5.6.4","file":"game_scene.babylon"}, +"autoClear":true,"clearColor":[0,0,0],"ambientColor":[0,0,0],"gravity":[0,-9.81,0], +"materials":[{"name":"game_scene.PowerUpMaterial","id":"game_scene.PowerUpMaterial","ambient":[0.8,0.8,0.8],"diffuse":[0.64,0.64,0.64],"specular":[0,0,0],"emissive":[0.8,0.8,0.8],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"power_ups.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.TargetMaterial","id":"game_scene.TargetMaterial","ambient":[0.8,0.8,0.8],"diffuse":[0.8,0.8,0.8],"specular":[0,0,0],"emissive":[1.2,1.2,1.2],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"wall_breaker.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.BossShotBubbleMaterial","id":"game_scene.BossShotBubbleMaterial","ambient":[0.8,0.8,0.8],"diffuse":[0.64,0.64,0.64],"specular":[0,0,0],"emissive":[0.96,0.96,0.96],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"boss_shot_bubble.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.ShieldBubbleMaterial","id":"game_scene.ShieldBubbleMaterial","ambient":[0.8,0.8,0.8],"diffuse":[0.64,0.64,0.64],"specular":[0,0,0],"emissive":[0.96,0.96,0.96],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"shield_bubble.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.BossMaterial","id":"game_scene.BossMaterial","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[0,0,0],"emissive":[1,1,1],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"boss.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.VColMaterial","id":"game_scene.VColMaterial","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[0,0,0],"emissive":[1.2,1.2,1.2],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4}, +{"name":"game_scene.TrenchMainMaterial","id":"game_scene.TrenchMainMaterial","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[0,0,0],"emissive":[1,1,1],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"trench_main.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.TrenchSideMaterial","id":"game_scene.TrenchSideMaterial","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[0,0,0],"emissive":[1,1,1],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"trench_side.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.SpacecraftMaterial","id":"game_scene.SpacecraftMaterial","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[0,0,0],"emissive":[1,1,1],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"spacecraft.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.StarsSkyboxMaterial","id":"game_scene.StarsSkyboxMaterial","ambient":[1,1,1],"diffuse":[0.8,0.8,0.8],"specular":[0,0,0],"emissive":[1,1,1],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"stars_skybox.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}, +{"name":"game_scene.ObstaclesMaterial","id":"game_scene.ObstaclesMaterial","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[0.5,0.5,0.5],"emissive":[1,1,1],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false,"maxSimultaneousLights":4, +"diffuseTexture":{"name":"obstacles.png","level":1,"hasAlpha":1,"coordinatesMode":0,"uOffset":0,"vOffset":0,"uScale":1,"vScale":1,"uAng":0,"vAng":0,"wAng":0,"wrapU":1,"wrapV":1,"coordinatesIndex":0}}], +"multiMaterials":[{"name":"game_scene.Multimaterial#0","id":"game_scene.Multimaterial#0","materials":["game_scene.TrenchMainMaterial","game_scene.TrenchSideMaterial"]}], +"skeletons":[], +"meshes":[{"name":"PowerUpWallBreaker","id":"PowerUpWallBreaker","materialId":"game_scene.PowerUpMaterial","billboardMode":0,"position":[64.9673,-4852.665,-65.486],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[10.6251,5.5484,-2.0752,-10.6251,5.5484,-2.0752,-10.6251,-5.5484,-2.0752,10.6251,5.5484,2.0752,10.6251,-5.5484,-2.0752,10.6251,-5.5484,2.0752,-10.6251,5.5484,-2.0752,-10.6251,-5.5484,2.0752,-10.6251,-5.5484,-2.0752,-10.6251,-5.5484,2.0752,10.6251,5.5484,2.0752,10.6251,-5.5484,2.0752,0.1346,-12.0764,2.0752,-10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,-10.6251,5.5484,2.0752,-10.6251,5.5484,-2.0752 +,0.1346,-12.0764,-2.0752,10.6251,-5.5484,-2.0752,0.1346,12.0764,2.0752,10.6251,5.5484,-2.0752,0.1346,-12.0764,-2.0752,10.6251,-5.5484,-2.0752,10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,10.6251,5.5484,-2.0752,-10.6251,5.5484,-2.0752,10.6251,-5.5484,2.0752,0.1346,-12.0764,2.0752,-10.6251,-5.5484,2.0752,-10.6251,-5.5484,2.0752,-10.6251,5.5484,2.0752,10.6251,5.5484,2.0752,0.1346,12.0764,2.0752 +,10.6251,5.5484,2.0752,-10.6251,5.5484,2.0752,0.1346,-12.0764,-2.0752,-10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,10.6251,5.5484,-2.0752] +,"normals":[0.691,0.384,-0.612,-0.689,0.388,-0.612,-0.689,-0.388,-0.612,0.691,0.384,0.612,0.691,-0.384,-0.612,0.691,-0.384,0.612,-0.689,0.388,-0.612,-0.689,-0.388,0.612,-0.689,-0.388,-0.612,-0.689,-0.388,0.612,0.691,0.384,0.612,0.691,-0.384,0.612,0.004,-0.795,0.606,-0.689,-0.388,-0.612,0.004,0.795,-0.606,-0.689,0.388,0.612,-0.689,0.388,-0.612 +,0.004,-0.795,-0.606,0.691,-0.384,-0.612,0.004,0.795,0.606,0.691,0.384,-0.612,0.004,-0.795,-0.606,0.691,-0.384,-0.612,0.691,-0.384,-0.612,0.004,0.795,-0.606,0.691,0.384,-0.612,-0.689,0.388,-0.612,0.691,-0.384,0.612,0.004,-0.795,0.606,-0.689,-0.388,0.612,-0.689,-0.388,0.612,-0.689,0.388,0.612,0.691,0.384,0.612,0.004,0.795,0.606 +,0.691,0.384,0.612,-0.689,0.388,0.612,0.004,-0.795,-0.606,-0.689,-0.388,-0.612,0.004,0.795,-0.606,0.691,0.384,-0.612] +,"uvs":[0.951,0.866,0.528,0.866,0.528,0.639,0.847,0.232,0.778,0.219,0.791,0.199,0.924,0.105,0.856,0.092,0.868,0.071,0.951,0.639,0.528,0.866,0.528,0.639,0.79,0.126,0.845,0.07,0.936,0.2,0.912,0.126,0.936,0.126,0.766,0.126,0.767,0.199,0.912,0.2,0.858,0.254,0.739,0.516,0.951,0.639,0.951,0.639,0.739,0.981 +,0.834,0.253,0.924,0.105,0.528,0.639,0.739,0.516,0.951,0.639,0.951,0.639,0.951,0.866,0.528,0.866,0.739,0.981,0.528,0.866,0.951,0.866,0.779,0.104,0.845,0.07,0.923,0.221,0.858,0.254] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,7,14,15,16,17,5,18,19,20,3,2,21,22,23,0,2,24,1,0,3,25,4,26,15,7,27,28,29,30,31,32,33,34,35,12,36 +,37,14,19,15,17,12,5,19,38,39] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":40,"indexStart":0,"indexCount":60}] +,"instances":[]} +,{"name":"PowerUpSlowDown","id":"PowerUpSlowDown","materialId":"game_scene.PowerUpMaterial","billboardMode":0,"position":[41.0807,-4852.665,-65.486],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[10.6251,5.5484,-2.0752,-10.6251,5.5484,-2.0752,-10.6251,-5.5484,-2.0752,10.6251,5.5484,2.0752,10.6251,-5.5484,-2.0752,10.6251,-5.5484,2.0752,-10.6251,5.5484,-2.0752,-10.6251,-5.5484,2.0752,-10.6251,-5.5484,-2.0752,-10.6251,-5.5484,2.0752,10.6251,5.5484,2.0752,10.6251,-5.5484,2.0752,0.1346,-12.0764,2.0752,-10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,-10.6251,5.5484,2.0752,-10.6251,5.5484,-2.0752 +,0.1346,-12.0764,-2.0752,10.6251,-5.5484,-2.0752,0.1346,12.0764,2.0752,10.6251,5.5484,-2.0752,0.1346,-12.0764,-2.0752,10.6251,-5.5484,-2.0752,10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,10.6251,5.5484,-2.0752,-10.6251,5.5484,-2.0752,10.6251,-5.5484,2.0752,0.1346,-12.0764,2.0752,-10.6251,-5.5484,2.0752,-10.6251,-5.5484,2.0752,-10.6251,5.5484,2.0752,10.6251,5.5484,2.0752,0.1346,12.0764,2.0752 +,10.6251,5.5484,2.0752,-10.6251,5.5484,2.0752,0.1346,-12.0764,-2.0752,-10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,10.6251,5.5484,-2.0752] +,"normals":[0.691,0.384,-0.612,-0.689,0.388,-0.612,-0.689,-0.388,-0.612,0.691,0.384,0.612,0.691,-0.384,-0.612,0.691,-0.384,0.612,-0.689,0.388,-0.612,-0.689,-0.388,0.612,-0.689,-0.388,-0.612,-0.689,-0.388,0.612,0.691,0.384,0.612,0.691,-0.384,0.612,0.004,-0.795,0.606,-0.689,-0.388,-0.612,0.004,0.795,-0.606,-0.689,0.388,0.612,-0.689,0.388,-0.612 +,0.004,-0.795,-0.606,0.691,-0.384,-0.612,0.004,0.795,0.606,0.691,0.384,-0.612,0.004,-0.795,-0.606,0.691,-0.384,-0.612,0.691,-0.384,-0.612,0.004,0.795,-0.606,0.691,0.384,-0.612,-0.689,0.388,-0.612,0.691,-0.384,0.612,0.004,-0.795,0.606,-0.689,-0.388,0.612,-0.689,-0.388,0.612,-0.689,0.388,0.612,0.691,0.384,0.612,0.004,0.795,0.606 +,0.691,0.384,0.612,-0.689,0.388,0.612,0.004,-0.795,-0.606,-0.689,-0.388,-0.612,0.004,0.795,-0.606,0.691,0.384,-0.612] +,"uvs":[0.477,0.866,0.054,0.866,0.054,0.639,0.641,0.447,0.573,0.434,0.586,0.413,0.719,0.319,0.65,0.306,0.663,0.286,0.477,0.639,0.054,0.866,0.054,0.639,0.585,0.341,0.639,0.285,0.73,0.414,0.706,0.34,0.73,0.34,0.56,0.341,0.561,0.413,0.706,0.414,0.652,0.469,0.265,0.516,0.477,0.639,0.477,0.639,0.265,0.981 +,0.629,0.468,0.719,0.319,0.054,0.639,0.265,0.516,0.477,0.639,0.477,0.639,0.477,0.866,0.054,0.866,0.265,0.981,0.054,0.866,0.477,0.866,0.574,0.319,0.639,0.285,0.717,0.436,0.652,0.469] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,7,14,15,16,17,5,18,19,20,3,2,21,22,23,0,2,24,1,0,3,25,4,26,15,7,27,28,29,30,31,32,33,34,35,12,36 +,37,14,19,15,17,12,5,19,38,39] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":40,"indexStart":0,"indexCount":60}] +,"instances":[]} +,{"name":"PowerUpShield","id":"PowerUpShield","materialId":"game_scene.PowerUpMaterial","billboardMode":0,"position":[17.1026,-4852.665,-65.486],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[10.6251,5.5484,-2.0752,-10.6251,5.5484,-2.0752,-10.6251,-5.5484,-2.0752,10.6251,5.5484,2.0752,10.6251,-5.5484,-2.0752,10.6251,-5.5484,2.0752,-10.6251,5.5484,-2.0752,-10.6251,-5.5484,2.0752,-10.6251,-5.5484,-2.0752,-10.6251,-5.5484,2.0752,10.6251,5.5484,2.0752,10.6251,-5.5484,2.0752,0.1346,-12.0764,2.0752,-10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,-10.6251,5.5484,2.0752,-10.6251,5.5484,-2.0752 +,0.1346,-12.0764,-2.0752,10.6251,-5.5484,-2.0752,0.1346,12.0764,2.0752,10.6251,5.5484,-2.0752,0.1346,-12.0764,-2.0752,10.6251,-5.5484,-2.0752,10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,10.6251,5.5484,-2.0752,-10.6251,5.5484,-2.0752,10.6251,-5.5484,2.0752,0.1346,-12.0764,2.0752,-10.6251,-5.5484,2.0752,-10.6251,-5.5484,2.0752,-10.6251,5.5484,2.0752,10.6251,5.5484,2.0752,0.1346,12.0764,2.0752 +,10.6251,5.5484,2.0752,-10.6251,5.5484,2.0752,0.1346,-12.0764,-2.0752,-10.6251,-5.5484,-2.0752,0.1346,12.0764,-2.0752,10.6251,5.5484,-2.0752] +,"normals":[0.691,0.384,-0.612,-0.689,0.388,-0.612,-0.689,-0.388,-0.612,0.691,0.384,0.612,0.691,-0.384,-0.612,0.691,-0.384,0.612,-0.689,0.388,-0.612,-0.689,-0.388,0.612,-0.689,-0.388,-0.612,-0.689,-0.388,0.612,0.691,0.384,0.612,0.691,-0.384,0.612,0.004,-0.795,0.606,-0.689,-0.388,-0.612,0.004,0.795,-0.606,-0.689,0.388,0.612,-0.689,0.388,-0.612 +,0.004,-0.795,-0.606,0.691,-0.384,-0.612,0.004,0.795,0.606,0.691,0.384,-0.612,0.004,-0.795,-0.606,0.691,-0.384,-0.612,0.691,-0.384,-0.612,0.004,0.795,-0.606,0.691,0.384,-0.612,-0.689,0.388,-0.612,0.691,-0.384,0.612,0.004,-0.795,0.606,-0.689,-0.388,0.612,-0.689,-0.388,0.612,-0.689,0.388,0.612,0.691,0.384,0.612,0.004,0.795,0.606 +,0.691,0.384,0.612,-0.689,0.388,0.612,0.004,-0.795,-0.606,-0.689,-0.388,-0.612,0.004,0.795,-0.606,0.691,0.384,-0.612] +,"uvs":[0.477,0.37,0.054,0.37,0.048,0.14,0.641,0.232,0.573,0.219,0.586,0.199,0.719,0.105,0.65,0.092,0.663,0.071,0.477,0.143,0.054,0.37,0.048,0.14,0.585,0.126,0.639,0.07,0.73,0.2,0.706,0.126,0.73,0.126,0.56,0.126,0.561,0.199,0.706,0.2,0.652,0.254,0.265,0.021,0.477,0.143,0.477,0.143,0.265,0.485 +,0.629,0.253,0.719,0.105,0.048,0.14,0.265,0.021,0.477,0.143,0.477,0.143,0.477,0.37,0.054,0.37,0.265,0.485,0.054,0.37,0.477,0.37,0.574,0.104,0.639,0.07,0.717,0.221,0.652,0.254] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,7,14,15,16,17,5,18,19,20,3,2,21,22,23,0,2,24,1,0,3,25,4,26,15,7,27,28,29,30,31,32,33,34,35,12,36 +,37,14,19,15,17,12,5,19,38,39] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":40,"indexStart":0,"indexCount":60}] +,"instances":[]} +,{"name":"WallBreaker","id":"WallBreaker","materialId":"game_scene.TargetMaterial","billboardMode":0,"position":[0,-4850.3418,33.0092],"rotation":[-1.5708,0,0],"scaling":[1.4461,1.4461,1.4461],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[40.6979,0,36.2818,61.0469,0,25.8373,40.6979,0,38.2298,61.0469,0,-25.8373,40.6979,0,-35.9677,40.6979,0,-38.2298,61.0469,0,24.5207,-40.6979,0,-35.9677,-61.0469,0,24.5207,-61.0469,0,-24.3085,-40.6979,0,36.2818,-61.0469,0,-25.8373,-40.6979,0,-38.2298,-61.0469,0,25.8373,-40.6979,0,38.2298,61.0469,0,-24.3085] +,"normals":[0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0] +,"uvs":[0.409,0.973,0.489,0.909,0.409,0.986,0.489,0.589,0.409,0.527,0.409,0.513,0.489,0.901,0.091,0.527,0.011,0.901,0.011,0.599,0.091,0.973,0.011,0.589,0.091,0.513,0.011,0.909,0.091,0.986,0.489,0.599] +,"indices":[0,1,2,3,4,5,4,6,0,7,8,9,4,10,7,11,7,9,12,4,7,10,13,8,0,14,10,0,6,1,3,15,4,4,15,6,7,10,8,4,0,10,11,12,7,12,5,4,10,14 +,13,0,2,14] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":16,"indexStart":0,"indexCount":54}] +,"instances":[]} +,{"name":"BossShotBubble","id":"BossShotBubble","materialId":"game_scene.BossShotBubbleMaterial","billboardMode":0,"position":[-56.1376,-4880.3013,-155.2789],"rotation":[-1.5708,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,-18.3736,18.3736,5.8242,-21.7362,12.9921,0,-22.503,12.9921,0,-12.9921,-22.503,1.7406,-6.4961,-25.0988,0,-6.7252,-25.0988,0,-6.7252,25.0988,0,0,25.9842,1.7406,-6.4961,25.0988,0,-25.0988,-6.7252,5.8242,-21.7362,-12.9921,0,-22.503,-12.9921,0,-25.0988,6.7252,6.4961,-24.2436,6.7252,0,0,-25.9842,0,-12.9921,22.503,3.3626,-12.5494,22.503 +,4.7554,-17.7476,-18.3736,0,-18.3736,-18.3736,6.7252,-25.0988,0,0,-25.9842,0,4.7554,-17.7476,18.3736,3.3626,-12.5494,-22.503,6.4961,-24.2436,-6.7252,6.496,-11.2515,22.503,11.2515,-19.4882,-12.9921,9.1868,-15.912,-18.3736,12.5494,-21.7362,6.7252,12.9921,-22.503,0,9.1868,-15.912,18.3736,6.4961,-11.2515,-22.503,12.5494,-21.7362,-6.7252,11.2515,-19.4882,12.9921,3.3626,-5.8242,-25.0988 +,0,0,25.9842,3.3626,-5.8242,25.0988,0,0,-25.9842,4.7554,-4.7555,-25.0988,0,0,25.9842,4.7554,-4.7554,25.0988,17.7475,-17.7476,-6.7252,15.912,-15.912,-12.9921,17.7475,-17.7476,6.7252,0,0,-25.9842,9.1868,-9.1868,22.503,12.9921,-12.9921,-18.3736,18.3736,-18.3736,0,12.9921,-12.9921,18.3736,9.1868,-9.1868,-22.503,15.912,-15.912,12.9921,15.912,-9.1868,18.3736 +,15.912,-9.1868,-18.3736,11.2515,-6.4961,-22.503,21.7362,-12.5494,-6.7252,19.4882,-11.2515,12.9921,5.8242,-3.3626,-25.0988,0,0,25.9842,5.8242,-3.3626,25.0988,19.4882,-11.2515,-12.9921,21.7362,-12.5494,6.7252,0,0,-25.9842,11.2515,-6.4961,22.503,22.503,-12.9921,0,0,0,-25.9842,6.4961,-1.7406,-25.0988,12.5494,-3.3626,22.503,17.7475,-4.7555,-18.3736,24.2436,-6.4961,6.7252 +,25.0988,-6.7252,0,17.7475,-4.7554,18.3736,12.5494,-3.3626,-22.503,24.2436,-6.4961,-6.7252,21.7362,-5.8242,12.9921,0,0,25.9842,6.496,-1.7406,25.0988,21.7362,-5.8242,-12.9921,22.503,0,12.9921,12.9921,0,-22.503,6.7252,0,-25.0988,0,0,25.9842,6.7252,0,25.0988,25.0988,0,-6.7252,22.503,0,-12.9921,25.0988,0,6.7252,0,0,-25.9842 +,12.9921,0,22.503,18.3736,0,-18.3736,25.9842,0,0,18.3736,0,18.3736,17.7475,4.7554,18.3736,12.5494,3.3626,-22.503,24.2436,6.496,-6.7252,21.7362,5.8242,12.9921,6.4961,1.7406,-25.0988,0,0,25.9842,6.496,1.7406,25.0988,21.7362,5.8242,-12.9921,24.2436,6.496,6.7252,0,0,-25.9842,12.5494,3.3626,22.503,17.7475,4.7554,-18.3736,25.0988,6.7252,0 +,21.7362,12.5494,6.7252,0,0,-25.9842,5.8242,3.3626,-25.0988,5.8242,3.3626,25.0988,11.2515,6.496,22.503,15.912,9.1868,-18.3736,22.503,12.9921,0,15.912,9.1868,18.3736,11.2515,6.496,-22.503,21.7362,12.5494,-6.7252,19.4882,11.2515,12.9921,0,0,25.9842,19.4882,11.2515,-12.9921,15.912,15.912,12.9921,4.7554,4.7554,-25.0988,0,0,25.9842,4.7554,4.7554,25.0988 +,17.7475,17.7475,-6.7252,15.912,15.912,-12.9921,17.7475,17.7475,6.7252,0,0,-25.9842,9.1868,9.1868,22.503,12.9921,12.9921,-18.3736,18.3736,18.3736,0,12.9921,12.9921,18.3736,9.1868,9.1868,-22.503,12.5494,21.7362,6.7252,12.9921,22.503,0,6.496,11.2515,22.503,9.1868,15.912,18.3736,6.4961,11.2515,-22.503,12.5494,21.7362,-6.7252,11.2515,19.4881,12.9921,3.3626,5.8242,-25.0988 +,0,0,25.9842,3.3626,5.8242,25.0988,11.2515,19.4881,-12.9921,0,0,-25.9842,9.1868,15.912,-18.3736,5.8242,21.7362,12.9921,6.496,24.2436,6.7252,0,0,-25.9842,1.7406,6.496,-25.0988,3.3626,12.5494,22.503,5.8242,21.7362,-12.9921,4.7554,17.7475,-18.3736,6.7252,25.0988,0,4.7554,17.7475,18.3736,3.3626,12.5494,-22.503,6.4961,24.2436,-6.7252,0,0,25.9842 +,1.7406,6.496,25.0988,0,25.0988,-6.7252,0,22.503,12.9921,0,6.7252,-25.0988,0,0,25.9842,0,6.7252,25.0988,0,22.503,-12.9921,0,25.0988,6.7252,0,0,-25.9842,0,12.9921,22.503,0,18.3736,-18.3736,0,25.9842,0,0,18.3736,18.3736,0,12.9921,-22.503,-6.7252,25.0988,0,-4.7554,17.7475,18.3736,-4.7554,17.7475,-18.3736 +,-3.3626,12.5494,-22.503,-6.4961,24.2436,-6.7252,-5.8242,21.7362,12.9921,-1.7406,6.496,-25.0988,0,0,25.9842,-1.7406,6.496,25.0988,-5.8242,21.7362,-12.9921,-6.4961,24.2436,6.7252,0,0,-25.9842,-3.3626,12.5494,22.503,-12.5494,21.7362,-6.7252,-11.2515,19.4881,-12.9921,-12.5494,21.7362,6.7252,0,0,-25.9842,-3.3626,5.8242,-25.0988,-6.4961,11.2515,22.503,-9.1868,15.912,-18.3736 +,-12.9921,22.503,0,-9.1868,15.912,18.3736,-6.4961,11.2515,-22.503,-11.2515,19.4881,12.9921,0,0,25.9842,-3.3626,5.8242,25.0988,-17.7475,17.7475,-6.7252,-15.912,15.912,12.9921,-9.1868,9.1868,-22.503,-4.7554,4.7554,-25.0988,0,0,25.9842,-4.7554,4.7554,25.0988,-15.912,15.912,-12.9921,-17.7475,17.7475,6.7252,0,0,-25.9842,-9.1868,9.1868,22.503,-12.9921,12.9921,-18.3736 +,-18.3736,18.3736,0,-12.9921,12.9921,18.3736,-19.4882,11.2515,-12.9921,-15.912,9.1868,-18.3736,-21.7362,12.5494,6.7252,-22.503,12.9921,0,-15.912,9.1868,18.3736,-11.2515,6.496,-22.503,-21.7362,12.5494,-6.7252,-19.4882,11.2515,12.9921,-5.8242,3.3626,-25.0988,0,0,25.9842,-5.8242,3.3626,25.0988,0,0,-25.9842,-11.2515,6.496,22.503,0,0,25.9842,-6.496,1.7406,25.0988 +,-24.2436,6.496,-6.7252,-21.7362,5.8242,-12.9921,-24.2436,6.496,6.7252,0,0,-25.9842,-6.4961,1.7406,-25.0988,-12.5494,3.3626,22.503,-17.7475,4.7554,-18.3736,-25.0988,6.7252,0,-17.7475,4.7554,18.3736,-12.5494,3.3626,-22.503,-21.7362,5.8242,12.9921,-12.9921,0,-22.503,-25.0988,0,-6.7252,-22.503,0,12.9921,-6.7252,0,-25.0988,0,0,25.9842,-6.7252,0,25.0988 +,-22.503,0,-12.9921,-25.0988,0,6.7252,0,0,-25.9842,-12.9921,0,22.503,-18.3736,0,-18.3736,-25.9842,0,0,-18.3736,0,18.3736,-12.9921,0,22.503,-6.496,-1.7406,25.0988,-12.5494,-3.3626,22.503,-22.503,0,-12.9921,-17.7475,-4.7555,-18.3736,-18.3736,0,-18.3736,-25.0988,0,6.7252,-25.0988,-6.7252,0,-25.9842,0,0,-18.3736,0,18.3736 +,-17.7475,-4.7555,18.3736,-18.3736,0,-18.3736,-12.5494,-3.3626,-22.503,-12.9921,0,-22.503,-25.9842,0,0,-24.2436,-6.4961,-6.7252,-25.0988,0,-6.7252,-22.503,0,12.9921,-21.7362,-5.8242,12.9921,-6.7252,0,-25.0988,-6.4961,-1.7406,-25.0988,-6.7252,0,25.0988,0,0,25.9842,-22.503,0,-12.9921,-21.7362,-5.8242,-12.9921,-22.503,0,12.9921,-24.2436,-6.4961,6.7252 +,-25.0988,0,6.7252,0,0,-25.9842,-6.7252,0,-25.0988,-11.2515,-6.4961,-22.503,-5.8242,-3.3626,-25.0988,0,0,25.9842,-5.8242,-3.3626,25.0988,-21.7362,-12.5494,-6.7252,-19.4882,-11.2515,-12.9921,-21.7362,-12.5494,6.7252,0,0,-25.9842,-11.2515,-6.4961,22.503,-15.912,-9.1868,-18.3736,-22.503,-12.9921,0,-15.912,-9.1868,18.3736,-19.4882,-11.2515,12.9921,-12.9921,-12.9921,18.3736 +,-9.1868,-9.1868,-22.503,-17.7475,-17.7476,-6.7252,-15.912,-15.912,12.9921,-4.7554,-4.7555,-25.0988,0,0,25.9842,-4.7554,-4.7554,25.0988,-15.912,-15.912,-12.9921,-17.7475,-17.7476,6.7252,0,0,-25.9842,-9.1868,-9.1868,22.503,-12.9921,-12.9921,-18.3736,-18.3736,-18.3736,0,0,0,-25.9842,-3.3626,-5.8242,-25.0988,-6.496,-11.2515,22.503,-11.2515,-19.4882,-12.9921,-9.1868,-15.912,-18.3736 +,-12.9921,-22.503,0,-9.1868,-15.912,18.3736,-6.4961,-11.2515,-22.503,-12.5494,-21.7362,-6.7252,-11.2515,-19.4882,12.9921,0,0,25.9842,-3.3626,-5.8242,25.0988,-12.5494,-21.7362,6.7252,-5.8242,-21.7362,12.9921,-3.3626,-12.5494,-22.503,-1.7406,-6.4961,-25.0988,0,0,25.9842,-1.7406,-6.4961,25.0988,-6.4961,-24.2436,-6.7252,-5.8242,-21.7362,-12.9921,-6.4961,-24.2436,6.7252,0,0,-25.9842 +,-3.3626,-12.5494,22.503,-4.7554,-17.7476,-18.3736,-6.7252,-25.0988,0,-4.7554,-17.7476,18.3736,0,0,25.9842,0,0,-25.9842,-12.9921,0,22.503,-6.7252,0,25.0988,-22.503,0,-12.9921,-25.0988,0,6.7252,-18.3736,0,18.3736,-12.9921,0,22.503,-18.3736,0,-18.3736,-25.9842,0,0,-22.503,0,12.9921,-18.3736,0,18.3736,-6.7252,0,-25.0988 +,-12.9921,0,-22.503,-22.503,0,-12.9921,-25.0988,0,-6.7252,-22.503,0,12.9921] +,"normals":[0,-0.712,0.702,0.225,-0.839,0.495,0,-0.869,0.495,0,-0.508,-0.861,0.07,-0.26,-0.963,0,-0.269,-0.963,0,-0.269,0.963,0,0,1,0.07,-0.26,0.963,0,-0.967,-0.256,0.225,-0.839,-0.495,0,-0.869,-0.495,0,-0.967,0.256,0.25,-0.934,0.256,0,0,-1,0,-0.508,0.861,0.131,-0.491,0.861 +,0.184,-0.688,-0.702,0,-0.712,-0.702,0.259,-0.966,0,0,-1,0,0.184,-0.688,0.702,0.131,-0.491,-0.861,0.25,-0.934,-0.256,0.254,-0.44,0.861,0.434,-0.752,-0.495,0.356,-0.617,-0.702,0.483,-0.837,0.256,0.5,-0.866,0,0.356,-0.617,0.702,0.254,-0.44,-0.861,0.483,-0.837,-0.256,0.434,-0.752,0.495,0.134,-0.233,-0.963 +,0,0,1,0.134,-0.233,0.963,0,0,-1,0.19,-0.19,-0.963,0,0,1,0.19,-0.19,0.963,0.683,-0.683,-0.256,0.614,-0.614,-0.495,0.683,-0.683,0.256,0,0,-1,0.359,-0.359,0.861,0.504,-0.504,-0.702,0.707,-0.707,0,0.504,-0.504,0.702,0.359,-0.359,-0.861,0.614,-0.614,0.495,0.617,-0.356,0.702 +,0.617,-0.356,-0.702,0.44,-0.254,-0.861,0.837,-0.483,-0.256,0.752,-0.434,0.495,0.233,-0.134,-0.963,0,0,1,0.233,-0.134,0.963,0.752,-0.434,-0.495,0.837,-0.483,0.256,0,0,-1,0.44,-0.254,0.861,0.866,-0.5,0,0,0,-1,0.26,-0.07,-0.963,0.491,-0.131,0.861,0.688,-0.184,-0.702,0.934,-0.25,0.256 +,0.966,-0.259,0,0.688,-0.184,0.702,0.491,-0.131,-0.861,0.934,-0.25,-0.256,0.839,-0.225,0.495,0,0,1,0.26,-0.07,0.963,0.839,-0.225,-0.495,0.869,0,0.495,0.508,0,-0.861,0.269,0,-0.963,0,0,1,0.269,0,0.963,0.967,0,-0.256,0.869,0,-0.495,0.967,0,0.256,0,0,-1 +,0.508,0,0.861,0.712,0,-0.702,1,0,0,0.712,0,0.702,0.688,0.184,0.702,0.491,0.131,-0.861,0.934,0.25,-0.256,0.839,0.225,0.495,0.26,0.07,-0.963,0,0,1,0.26,0.07,0.963,0.839,0.225,-0.495,0.934,0.25,0.256,0,0,-1,0.491,0.131,0.861,0.688,0.184,-0.702,0.966,0.259,0 +,0.837,0.483,0.256,0,0,-1,0.233,0.134,-0.963,0.233,0.134,0.963,0.44,0.254,0.861,0.617,0.356,-0.702,0.866,0.5,0,0.617,0.356,0.702,0.44,0.254,-0.861,0.837,0.483,-0.256,0.752,0.434,0.495,0,0,1,0.752,0.434,-0.495,0.614,0.614,0.495,0.19,0.19,-0.963,0,0,1,0.19,0.19,0.963 +,0.683,0.683,-0.256,0.614,0.614,-0.495,0.683,0.683,0.256,0,0,-1,0.359,0.359,0.861,0.504,0.504,-0.702,0.707,0.707,0,0.504,0.504,0.702,0.359,0.359,-0.861,0.483,0.837,0.256,0.5,0.866,0,0.254,0.44,0.861,0.356,0.617,0.702,0.254,0.44,-0.861,0.483,0.837,-0.256,0.434,0.752,0.495,0.134,0.233,-0.963 +,0,0,1,0.134,0.233,0.963,0.434,0.752,-0.495,0,0,-1,0.356,0.617,-0.702,0.225,0.839,0.495,0.25,0.934,0.256,0,0,-1,0.07,0.26,-0.963,0.131,0.491,0.861,0.225,0.839,-0.495,0.184,0.688,-0.702,0.259,0.966,0,0.184,0.688,0.702,0.131,0.491,-0.861,0.25,0.934,-0.256,0,0,1 +,0.07,0.26,0.963,0,0.967,-0.256,0,0.869,0.495,0,0.269,-0.963,0,0,1,0,0.269,0.963,0,0.869,-0.495,0,0.967,0.256,0,0,-1,0,0.508,0.861,0,0.712,-0.702,0,1,0,0,0.712,0.702,0,0.508,-0.861,-0.259,0.966,0,-0.184,0.688,0.702,-0.184,0.688,-0.702 +,-0.131,0.491,-0.861,-0.25,0.934,-0.256,-0.225,0.839,0.495,-0.07,0.26,-0.963,0,0,1,-0.07,0.26,0.963,-0.225,0.839,-0.495,-0.25,0.934,0.256,0,0,-1,-0.131,0.491,0.861,-0.483,0.837,-0.256,-0.434,0.752,-0.495,-0.483,0.837,0.256,0,0,-1,-0.134,0.233,-0.963,-0.254,0.44,0.861,-0.356,0.617,-0.702 +,-0.5,0.866,0,-0.356,0.617,0.702,-0.254,0.44,-0.861,-0.434,0.752,0.495,0,0,1,-0.134,0.233,0.963,-0.683,0.683,-0.256,-0.614,0.614,0.495,-0.359,0.359,-0.861,-0.19,0.19,-0.963,0,0,1,-0.19,0.19,0.963,-0.614,0.614,-0.495,-0.683,0.683,0.256,0,0,-1,-0.359,0.359,0.861,-0.504,0.504,-0.702 +,-0.707,0.707,0,-0.504,0.504,0.702,-0.752,0.434,-0.495,-0.617,0.356,-0.702,-0.837,0.483,0.256,-0.866,0.5,0,-0.617,0.356,0.702,-0.44,0.254,-0.861,-0.837,0.483,-0.256,-0.752,0.434,0.495,-0.233,0.134,-0.963,0,0,1,-0.233,0.134,0.963,0,0,-1,-0.44,0.254,0.861,0,0,1,-0.26,0.07,0.963 +,-0.934,0.25,-0.256,-0.839,0.225,-0.495,-0.934,0.25,0.256,0,0,-1,-0.26,0.07,-0.963,-0.491,0.131,0.861,-0.688,0.184,-0.702,-0.966,0.259,0,-0.688,0.184,0.702,-0.491,0.131,-0.861,-0.839,0.225,0.495,-0.508,0,-0.861,-0.967,0,-0.256,-0.869,0,0.495,-0.269,0,-0.963,0,0,1,-0.269,0,0.963 +,-0.869,0,-0.495,-0.967,0,0.256,0,0,-1,-0.508,0,0.861,-0.712,0,-0.702,-1,0,0,-0.712,0,0.702,-0.508,0,0.861,-0.26,-0.07,0.963,-0.491,-0.131,0.861,-0.869,0,-0.495,-0.688,-0.184,-0.702,-0.712,0,-0.702,-0.967,0,0.256,-0.966,-0.259,0,-1,0,0,-0.712,0,0.702 +,-0.688,-0.184,0.702,-0.712,0,-0.702,-0.491,-0.131,-0.861,-0.508,0,-0.861,-1,0,0,-0.934,-0.25,-0.256,-0.967,0,-0.256,-0.869,0,0.495,-0.839,-0.225,0.495,-0.269,0,-0.963,-0.26,-0.07,-0.963,-0.269,0,0.963,0,0,1,-0.869,0,-0.495,-0.839,-0.225,-0.495,-0.869,0,0.495,-0.934,-0.25,0.256 +,-0.967,0,0.256,0,0,-1,-0.269,0,-0.963,-0.44,-0.254,-0.861,-0.233,-0.134,-0.963,0,0,1,-0.233,-0.134,0.963,-0.837,-0.483,-0.256,-0.752,-0.434,-0.495,-0.837,-0.483,0.256,0,0,-1,-0.44,-0.254,0.861,-0.617,-0.356,-0.702,-0.866,-0.5,0,-0.617,-0.356,0.702,-0.752,-0.434,0.495,-0.504,-0.504,0.702 +,-0.359,-0.359,-0.861,-0.683,-0.683,-0.256,-0.614,-0.614,0.495,-0.19,-0.19,-0.963,0,0,1,-0.19,-0.19,0.963,-0.614,-0.614,-0.495,-0.683,-0.683,0.256,0,0,-1,-0.359,-0.359,0.861,-0.504,-0.504,-0.702,-0.707,-0.707,0,0,0,-1,-0.134,-0.233,-0.963,-0.254,-0.44,0.861,-0.434,-0.752,-0.495,-0.356,-0.617,-0.702 +,-0.5,-0.866,0,-0.356,-0.617,0.702,-0.254,-0.44,-0.861,-0.483,-0.837,-0.256,-0.434,-0.752,0.495,0,0,1,-0.134,-0.233,0.963,-0.483,-0.837,0.256,-0.225,-0.839,0.495,-0.131,-0.491,-0.861,-0.07,-0.26,-0.963,0,0,1,-0.07,-0.26,0.963,-0.25,-0.934,-0.256,-0.225,-0.839,-0.495,-0.25,-0.934,0.256,0,0,-1 +,-0.131,-0.491,0.861,-0.184,-0.688,-0.702,-0.259,-0.966,0,-0.184,-0.688,0.702,0,0,1,0,0,-1,-0.508,0,0.861,-0.269,0,0.963,-0.869,0,-0.495,-0.967,0,0.256,-0.712,0,0.702,-0.508,0,0.861,-0.712,0,-0.702,-1,0,0,-0.869,0,0.495,-0.712,0,0.702,-0.269,0,-0.963 +,-0.508,0,-0.861,-0.869,0,-0.495,-0.967,0,-0.256,-0.869,0,0.495] +,"uvs":[0.75,0.75,0.708,0.667,0.75,0.667,0.75,0.167,0.708,0.083,0.75,0.083,0.75,0.917,0.729,1,0.708,0.917,0.75,0.417,0.708,0.333,0.75,0.333,0.75,0.583,0.708,0.583,0.729,0,0.75,0.833,0.708,0.833,0.708,0.25,0.75,0.25,0.708,0.5,0.75,0.5,0.708,0.75,0.708,0.167,0.708,0.417,0.667,0.833 +,0.667,0.333,0.667,0.25,0.667,0.583,0.667,0.5,0.667,0.75,0.667,0.167,0.667,0.417,0.667,0.667,0.667,0.083,0.688,1,0.667,0.917,0.688,0,0.625,0.083,0.646,1,0.625,0.917,0.625,0.417,0.625,0.333,0.625,0.583,0.646,0,0.625,0.833,0.625,0.25,0.625,0.5,0.625,0.75,0.625,0.167,0.625,0.667 +,0.583,0.75,0.583,0.25,0.583,0.167,0.583,0.417,0.583,0.667,0.583,0.083,0.604,1,0.583,0.917,0.583,0.333,0.583,0.583,0.604,0,0.583,0.833,0.583,0.5,0.562,0,0.542,0.083,0.542,0.833,0.542,0.25,0.542,0.583,0.542,0.5,0.542,0.75,0.542,0.167,0.542,0.417,0.542,0.667,0.562,1,0.542,0.917 +,0.542,0.333,0.5,0.667,0.5,0.167,0.5,0.083,0.521,1,0.5,0.917,0.5,0.417,0.5,0.333,0.5,0.583,0.521,0,0.5,0.833,0.5,0.25,0.5,0.5,0.5,0.75,0.458,0.75,0.458,0.167,0.458,0.417,0.458,0.667,0.458,0.083,0.479,1,0.458,0.917,0.458,0.333,0.458,0.583,0.479,0,0.458,0.833 +,0.458,0.25,0.458,0.5,0.417,0.583,0.438,0,0.417,0.083,0.417,0.917,0.417,0.833,0.417,0.25,0.417,0.5,0.417,0.75,0.417,0.167,0.417,0.417,0.417,0.667,0.438,1,0.417,0.333,0.375,0.667,0.375,0.083,0.396,1,0.375,0.917,0.375,0.417,0.375,0.333,0.375,0.583,0.396,0,0.375,0.833,0.375,0.25 +,0.375,0.5,0.375,0.75,0.375,0.167,0.333,0.583,0.333,0.5,0.333,0.833,0.333,0.75,0.333,0.167,0.333,0.417,0.333,0.667,0.333,0.083,0.354,1,0.333,0.917,0.333,0.333,0.354,0,0.333,0.25,0.292,0.667,0.292,0.583,0.312,0,0.292,0.083,0.292,0.833,0.292,0.333,0.292,0.25,0.292,0.5,0.292,0.75 +,0.292,0.167,0.292,0.417,0.312,1,0.292,0.917,0.25,0.417,0.25,0.667,0.25,0.083,0.271,1,0.25,0.917,0.25,0.333,0.25,0.583,0.271,0,0.25,0.833,0.25,0.25,0.25,0.5,0.25,0.75,0.25,0.167,0.208,0.5,0.208,0.75,0.208,0.25,0.208,0.167,0.208,0.417,0.208,0.667,0.208,0.083,0.229,1 +,0.208,0.917,0.208,0.333,0.208,0.583,0.229,0,0.208,0.833,0.167,0.417,0.167,0.333,0.167,0.583,0.188,0,0.167,0.083,0.167,0.833,0.167,0.25,0.167,0.5,0.167,0.75,0.167,0.167,0.167,0.667,0.188,1,0.167,0.917,0.125,0.417,0.125,0.667,0.125,0.167,0.125,0.083,0.146,1,0.125,0.917,0.125,0.333 +,0.125,0.583,0.146,0,0.125,0.833,0.125,0.25,0.125,0.5,0.125,0.75,0.083,0.333,0.083,0.25,0.083,0.583,0.083,0.5,0.083,0.75,0.083,0.167,0.083,0.417,0.083,0.667,0.083,0.083,0.104,1,0.083,0.917,0.104,0,0.083,0.833,0.062,1,0.042,0.917,0.042,0.417,0.042,0.333,0.042,0.583,0.062,0 +,0.042,0.083,0.042,0.833,0.042,0.25,0.042,0.5,0.042,0.75,0.042,0.167,0.042,0.667,0,0.167,0,0.417,0,0.667,0,0.083,0.021,1,0,0.917,0,0.333,0,0.583,0.021,0,0,0.833,0,0.25,0,0.5,0,0.75,1,0.833,0.958,0.917,0.958,0.833,1,0.333,0.958,0.25 +,1,0.25,1,0.583,0.958,0.5,1,0.5,1,0.75,0.958,0.75,1,0.25,0.958,0.167,1,0.167,1,0.5,0.958,0.417,1,0.417,1,0.667,0.958,0.667,1,0.083,0.958,0.083,1,0.917,0.979,1,1,0.333,0.958,0.333,1,0.667,0.958,0.583,1,0.583,0.979,0,1,0.083 +,0.917,0.167,0.917,0.083,0.938,1,0.917,0.917,0.917,0.417,0.917,0.333,0.917,0.583,0.938,0,0.917,0.833,0.917,0.25,0.917,0.5,0.917,0.75,0.917,0.667,0.875,0.75,0.875,0.167,0.875,0.417,0.875,0.667,0.875,0.083,0.896,1,0.875,0.917,0.875,0.333,0.875,0.583,0.896,0,0.875,0.833,0.875,0.25 +,0.875,0.5,0.854,0,0.833,0.083,0.833,0.833,0.833,0.333,0.833,0.25,0.833,0.5,0.833,0.75,0.833,0.167,0.833,0.417,0.833,0.667,0.854,1,0.833,0.917,0.833,0.583,0.792,0.667,0.792,0.167,0.792,0.083,0.812,1,0.792,0.917,0.792,0.417,0.792,0.333,0.792,0.583,0.812,0,0.792,0.833,0.792,0.25 +,0.792,0.5,0.792,0.75,0.771,1,0.771,0,1,0.833,1,0.917,1,0.333,1,0.583,1,0.75,1,0.833,1,0.25,1,0.5,1,0.667,1,0.75,1,0.083,1,0.167,1,0.333,1,0.417,1,0.667] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,1,13,14,5,4,15,8,16,11,17,18,12,19,20,0,16,21,18,22,3,20,23,9,8,24,16,17,25,26,19,27,28,16,29,21,22,26 +,30,19,31,23,21,32,1,22,33,4,8,34,35,23,25,10,1,27,13,36,4,33,30,37,33,35,38,39,25,40,41,32,42,27,43,33,37,35,44,24,26,41,45,28,42,46,24,47,29,30 +,45,48,28,40,31,29,49,32,44,50,47,48,51,52,46,53,40,47,54,49,37,52,55,39,56,57,41,53,58,49,59,42,60,37,55,39,61,44,45,58,51,46,59,62,63,55,64,57,65,61 +,58,66,51,62,67,68,61,69,50,52,66,70,62,71,53,50,72,54,52,64,55,57,73,74,58,71,75,54,67,59,69,76,72,64,77,78,74,79,80,75,81,82,72,83,67,84,64,78,65,80 +,85,66,82,86,68,83,87,65,88,69,70,86,77,68,81,71,85,89,88,86,90,77,87,91,81,88,92,76,77,93,78,80,94,95,82,91,96,76,97,83,98,78,93,80,99,85,82,100,86,87 +,97,101,92,102,97,103,93,104,99,105,106,96,107,100,101,102,108,89,106,109,100,110,90,101,111,91,89,112,92,93,110,104,95,113,105,96,111,114,109,115,112,110,116,104,105,117,118,114,119,120 +,112,121,102,122,104,116,105,123,106,114,124,107,102,125,108,109,123,126,107,127,110,108,119,111,125,128,129,126,130,131,124,132,127,125,133,119,126,134,115,127,135,116,118,136,137,120,133,138,115,128 +,121,139,116,135,123,137,130,124,138,140,128,141,142,143,135,144,137,145,130,140,146,147,129,142,148,130,149,131,140,150,132,129,151,133,131,141,134,132,144,135,137,152,153,133,146,138,148,154,151,149 +,155,141,150,156,144,153,157,158,151,159,146,141,160,142,161,144,156,145,158,162,147,159,163,148,160,164,149,162,165,147,166,150,160,167,164,162,168,165,166,169,170,164,171,154,165,172,155,156,170,173 +,158,174,175,154,176,159,160,172,177,178,156,173,162,175,179,159,169,163,176,180,181,172,182,177,183,173,184,175,185,179,169,181,186,167,182,187,168,185,188,169,189,170,167,180,171,168,190,172,170,184 +,173,175,191,192,187,193,180,188,194,190,184,195,196,192,197,198,181,193,199,190,200,182,201,184,196,185,198,202,186,199,203,182,204,187,185,205,188,189,203,195,203,206,207,204,208,209,202,210,205,203 +,211,195,193,209,212,205,213,194,196,211,214,198,215,216,193,206,199,194,208,200,217,196,214,198,218,202,216,219,220,206,221,222,213,223,208,224,214,225,218,220,226,207,222,227,209,223,228,218,229,210 +,207,230,211,212,228,221,210,231,213,214,230,225,227,232,230,228,233,221,229,234,231,225,232,235,220,236,237,222,233,238,231,239,223,240,225,235,220,241,226,227,238,242,223,243,228,226,244,229,245,246 +,247,248,249,250,251,252,253,254,247,255,256,257,258,259,260,261,262,255,263,264,257,265,266,267,246,268,260,269,270,271,272,273,274,265,265,275,276,246,277,278,269,279,280,263,281,271,282,265,276,247 +,278,283,269,284,249,252,281,285,255,283,286,249,275,257,252,279,260,255,287,263,283,288,286,284,289,275,285,290,279,286,291,287,275,292,276,278,293,294,280,290,295,287,296,281,297,276,292,278,298,283 +,284,295,299,281,300,285,301,292,302,294,303,298,299,304,305,296,306,300,298,307,288,299,308,289,300,309,290,288,310,291,292,308,302,294,311,312,295,309,304,291,313,296,307,314,310,302,315,316,312,317 +,318,304,319,320,310,321,313,322,302,316,312,323,303,305,320,324,313,325,306,307,323,326,305,315,308,306,319,309,326,15,0,324,3,315,319,20,9,326,2,314,315,5,316,318,327,6,319,11,320,314 +,12,321,328,316,5,323,6,15,324,11,18,325,12,20,0,21,1,3,22,4,9,23,10,12,2,1,15,6,8,11,10,17,12,13,19,0,15,16,18,17,22,20,19,23,8,35,24,17,10,25 +,19,13,27,16,24,29,22,17,26,19,28,31,21,29,32,22,30,33,23,31,25,1,32,27,30,48,37,25,31,40,32,49,42,35,39,44,26,25,41,28,27,42,24,44,47,30,26,45,28,46 +,40,29,47,49,44,61,50,48,45,51,46,62,53,47,50,54,37,48,52,41,40,53,49,54,59,39,57,61,45,41,58,46,42,59,57,74,65,58,75,66,62,59,67,61,65,69,52,51,66,62 +,68,71,50,69,72,52,70,64,58,53,71,54,72,67,69,88,76,64,70,77,75,71,81,72,76,83,65,74,80,66,75,82,68,67,83,65,85,88,70,66,86,68,87,81,85,99,89,86,100,90 +,87,101,91,88,89,92,77,90,93,82,81,91,76,92,97,80,95,99,82,96,100,87,83,97,92,112,102,99,95,105,96,114,107,101,97,102,89,99,106,100,107,110,101,108,111,89,109,112,93,90 +,110,96,91,111,109,126,115,110,127,116,114,111,119,112,115,121,105,118,123,114,120,124,102,121,125,109,106,123,107,124,127,108,125,119,125,121,128,126,123,130,124,140,132,125,129,133,126,131,134,127 +,132,135,120,119,133,115,134,128,123,118,137,124,120,138,128,134,141,137,153,145,140,138,146,129,128,142,130,145,149,140,147,150,129,148,151,131,149,141,132,150,144,133,151,146,148,164,154,149,165,155 +,150,166,156,151,154,159,141,155,160,145,153,158,147,146,159,148,142,160,149,145,162,147,163,166,160,177,167,162,179,168,166,163,169,164,167,171,165,168,172,156,166,170,154,171,176,160,155,172,162,158 +,175,159,176,169,176,171,180,172,190,182,175,192,185,169,176,181,167,177,182,168,179,185,169,186,189,167,187,180,168,188,190,170,189,184,187,204,193,188,205,194,184,189,195,181,180,193,190,194,200,185 +,192,198,186,181,199,182,200,204,185,202,205,189,186,203,203,199,206,204,200,208,202,218,210,203,207,211,193,204,209,205,210,213,196,195,211,193,212,206,194,213,208,198,216,218,206,212,221,213,231,223 +,218,216,220,207,206,222,209,208,223,218,226,229,207,227,230,212,209,228,210,229,231,214,211,230,227,242,232,228,243,233,229,244,234,225,230,232,222,221,233,231,234,239,220,237,241,227,222,238,223,239 +,243,226,241,244,329,330,246,331,269,249,332,271,252,333,334,247,335,249,257,336,252,260,337,338,255,339,340,257,341,342,260,343,263,271,265,257,275,269,260,279,263,287,281,247,246,278,269,280,284,252 +,271,281,255,247,283,249,284,275,252,285,279,255,286,287,283,298,288,284,299,289,285,300,290,286,288,291,275,289,292,280,279,290,287,291,296,278,294,298,284,280,295,281,296,300,294,312,303,299,295,304 +,296,313,306,298,303,307,299,305,308,300,306,309,288,307,310,292,289,308,295,290,309,291,310,313,307,326,314,302,308,315,304,309,319,310,314,321,312,318,323,305,304,320,313,321,325,307,303,323,305,324 +,315,306,325,319,326,323,15,324,18,3,319,325,20,326,0,2,315,3,5,319,9,11,314,2,12,323,318,6,324,320,11,325,321,12] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":344,"indexStart":0,"indexCount":1584}] +,"instances":[]} +,{"name":"ShieldBubble","id":"ShieldBubble","materialId":"game_scene.ShieldBubbleMaterial","billboardMode":0,"position":[44.4397,-4880.3013,-155.2789],"rotation":[-1.5708,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,-18.3736,18.3736,5.8242,-21.7362,12.9921,0,-22.503,12.9921,0,-12.9921,-22.503,1.7406,-6.4961,-25.0988,0,-6.7252,-25.0988,0,-6.7252,25.0988,0,0,25.9842,1.7406,-6.4961,25.0988,0,-25.0988,-6.7252,5.8242,-21.7362,-12.9921,0,-22.503,-12.9921,0,-25.0988,6.7252,6.4961,-24.2436,6.7252,0,0,-25.9842,0,-12.9921,22.503,3.3626,-12.5494,22.503 +,4.7554,-17.7476,-18.3736,0,-18.3736,-18.3736,6.7252,-25.0988,0,0,-25.9842,0,4.7554,-17.7476,18.3736,3.3626,-12.5494,-22.503,6.4961,-24.2436,-6.7252,6.496,-11.2515,22.503,11.2515,-19.4882,-12.9921,9.1868,-15.912,-18.3736,12.5494,-21.7362,6.7252,12.9921,-22.503,0,9.1868,-15.912,18.3736,6.4961,-11.2515,-22.503,12.5494,-21.7362,-6.7252,11.2515,-19.4882,12.9921,3.3626,-5.8242,-25.0988 +,0,0,25.9842,3.3626,-5.8242,25.0988,0,0,-25.9842,4.7554,-4.7555,-25.0988,0,0,25.9842,4.7554,-4.7554,25.0988,17.7475,-17.7476,-6.7252,15.912,-15.912,-12.9921,17.7475,-17.7476,6.7252,0,0,-25.9842,9.1868,-9.1868,22.503,12.9921,-12.9921,-18.3736,18.3736,-18.3736,0,12.9921,-12.9921,18.3736,9.1868,-9.1868,-22.503,15.912,-15.912,12.9921,15.912,-9.1868,18.3736 +,15.912,-9.1868,-18.3736,11.2515,-6.4961,-22.503,21.7362,-12.5494,-6.7252,19.4882,-11.2515,12.9921,5.8242,-3.3626,-25.0988,0,0,25.9842,5.8242,-3.3626,25.0988,19.4882,-11.2515,-12.9921,21.7362,-12.5494,6.7252,0,0,-25.9842,11.2515,-6.4961,22.503,22.503,-12.9921,0,0,0,-25.9842,6.4961,-1.7406,-25.0988,12.5494,-3.3626,22.503,17.7475,-4.7555,-18.3736,24.2436,-6.4961,6.7252 +,25.0988,-6.7252,0,17.7475,-4.7554,18.3736,12.5494,-3.3626,-22.503,24.2436,-6.4961,-6.7252,21.7362,-5.8242,12.9921,0,0,25.9842,6.496,-1.7406,25.0988,21.7362,-5.8242,-12.9921,22.503,0,12.9921,12.9921,0,-22.503,6.7252,0,-25.0988,0,0,25.9842,6.7252,0,25.0988,25.0988,0,-6.7252,22.503,0,-12.9921,25.0988,0,6.7252,0,0,-25.9842 +,12.9921,0,22.503,18.3736,0,-18.3736,25.9842,0,0,18.3736,0,18.3736,17.7475,4.7554,18.3736,12.5494,3.3626,-22.503,24.2436,6.496,-6.7252,21.7362,5.8242,12.9921,6.4961,1.7406,-25.0988,0,0,25.9842,6.496,1.7406,25.0988,21.7362,5.8242,-12.9921,24.2436,6.496,6.7252,0,0,-25.9842,12.5494,3.3626,22.503,17.7475,4.7554,-18.3736,25.0988,6.7252,0 +,21.7362,12.5494,6.7252,0,0,-25.9842,5.8242,3.3626,-25.0988,5.8242,3.3626,25.0988,11.2515,6.496,22.503,15.912,9.1868,-18.3736,22.503,12.9921,0,15.912,9.1868,18.3736,11.2515,6.496,-22.503,21.7362,12.5494,-6.7252,19.4882,11.2515,12.9921,0,0,25.9842,19.4882,11.2515,-12.9921,15.912,15.912,12.9921,4.7554,4.7554,-25.0988,0,0,25.9842,4.7554,4.7554,25.0988 +,17.7475,17.7475,-6.7252,15.912,15.912,-12.9921,17.7475,17.7475,6.7252,0,0,-25.9842,9.1868,9.1868,22.503,12.9921,12.9921,-18.3736,18.3736,18.3736,0,12.9921,12.9921,18.3736,9.1868,9.1868,-22.503,12.5494,21.7362,6.7252,12.9921,22.503,0,6.496,11.2515,22.503,9.1868,15.912,18.3736,6.4961,11.2515,-22.503,12.5494,21.7362,-6.7252,11.2515,19.4881,12.9921,3.3626,5.8242,-25.0988 +,0,0,25.9842,3.3626,5.8242,25.0988,11.2515,19.4881,-12.9921,0,0,-25.9842,9.1868,15.912,-18.3736,5.8242,21.7362,12.9921,6.496,24.2436,6.7252,0,0,-25.9842,1.7406,6.496,-25.0988,3.3626,12.5494,22.503,5.8242,21.7362,-12.9921,4.7554,17.7475,-18.3736,6.7252,25.0988,0,4.7554,17.7475,18.3736,3.3626,12.5494,-22.503,6.4961,24.2436,-6.7252,0,0,25.9842 +,1.7406,6.496,25.0988,0,25.0988,-6.7252,0,22.503,12.9921,0,6.7252,-25.0988,0,0,25.9842,0,6.7252,25.0988,0,22.503,-12.9921,0,25.0988,6.7252,0,0,-25.9842,0,12.9921,22.503,0,18.3736,-18.3736,0,25.9842,0,0,18.3736,18.3736,0,12.9921,-22.503,-6.7252,25.0988,0,-4.7554,17.7475,18.3736,-4.7554,17.7475,-18.3736 +,-3.3626,12.5494,-22.503,-6.4961,24.2436,-6.7252,-5.8242,21.7362,12.9921,-1.7406,6.496,-25.0988,0,0,25.9842,-1.7406,6.496,25.0988,-5.8242,21.7362,-12.9921,-6.4961,24.2436,6.7252,0,0,-25.9842,-3.3626,12.5494,22.503,-12.5494,21.7362,-6.7252,-11.2515,19.4881,-12.9921,-12.5494,21.7362,6.7252,0,0,-25.9842,-3.3626,5.8242,-25.0988,-6.4961,11.2515,22.503,-9.1868,15.912,-18.3736 +,-12.9921,22.503,0,-9.1868,15.912,18.3736,-6.4961,11.2515,-22.503,-11.2515,19.4881,12.9921,0,0,25.9842,-3.3626,5.8242,25.0988,-17.7475,17.7475,-6.7252,-15.912,15.912,12.9921,-9.1868,9.1868,-22.503,-4.7554,4.7554,-25.0988,0,0,25.9842,-4.7554,4.7554,25.0988,-15.912,15.912,-12.9921,-17.7475,17.7475,6.7252,0,0,-25.9842,-9.1868,9.1868,22.503,-12.9921,12.9921,-18.3736 +,-18.3736,18.3736,0,-12.9921,12.9921,18.3736,-19.4882,11.2515,-12.9921,-15.912,9.1868,-18.3736,-21.7362,12.5494,6.7252,-22.503,12.9921,0,-15.912,9.1868,18.3736,-11.2515,6.496,-22.503,-21.7362,12.5494,-6.7252,-19.4882,11.2515,12.9921,-5.8242,3.3626,-25.0988,0,0,25.9842,-5.8242,3.3626,25.0988,0,0,-25.9842,-11.2515,6.496,22.503,0,0,25.9842,-6.496,1.7406,25.0988 +,-24.2436,6.496,-6.7252,-21.7362,5.8242,-12.9921,-24.2436,6.496,6.7252,0,0,-25.9842,-6.4961,1.7406,-25.0988,-12.5494,3.3626,22.503,-17.7475,4.7554,-18.3736,-25.0988,6.7252,0,-17.7475,4.7554,18.3736,-12.5494,3.3626,-22.503,-21.7362,5.8242,12.9921,-12.9921,0,-22.503,-25.0988,0,-6.7252,-22.503,0,12.9921,-6.7252,0,-25.0988,0,0,25.9842,-6.7252,0,25.0988 +,-22.503,0,-12.9921,-25.0988,0,6.7252,0,0,-25.9842,-12.9921,0,22.503,-18.3736,0,-18.3736,-25.9842,0,0,-18.3736,0,18.3736,-12.9921,0,22.503,-6.496,-1.7406,25.0988,-12.5494,-3.3626,22.503,-22.503,0,-12.9921,-17.7475,-4.7555,-18.3736,-18.3736,0,-18.3736,-25.0988,0,6.7252,-25.0988,-6.7252,0,-25.9842,0,0,-18.3736,0,18.3736 +,-17.7475,-4.7555,18.3736,-18.3736,0,-18.3736,-12.5494,-3.3626,-22.503,-12.9921,0,-22.503,-25.9842,0,0,-24.2436,-6.4961,-6.7252,-25.0988,0,-6.7252,-22.503,0,12.9921,-21.7362,-5.8242,12.9921,-6.7252,0,-25.0988,-6.4961,-1.7406,-25.0988,-6.7252,0,25.0988,0,0,25.9842,-22.503,0,-12.9921,-21.7362,-5.8242,-12.9921,-22.503,0,12.9921,-24.2436,-6.4961,6.7252 +,-25.0988,0,6.7252,0,0,-25.9842,-6.7252,0,-25.0988,-11.2515,-6.4961,-22.503,-5.8242,-3.3626,-25.0988,0,0,25.9842,-5.8242,-3.3626,25.0988,-21.7362,-12.5494,-6.7252,-19.4882,-11.2515,-12.9921,-21.7362,-12.5494,6.7252,0,0,-25.9842,-11.2515,-6.4961,22.503,-15.912,-9.1868,-18.3736,-22.503,-12.9921,0,-15.912,-9.1868,18.3736,-19.4882,-11.2515,12.9921,-12.9921,-12.9921,18.3736 +,-9.1868,-9.1868,-22.503,-17.7475,-17.7476,-6.7252,-15.912,-15.912,12.9921,-4.7554,-4.7555,-25.0988,0,0,25.9842,-4.7554,-4.7554,25.0988,-15.912,-15.912,-12.9921,-17.7475,-17.7476,6.7252,0,0,-25.9842,-9.1868,-9.1868,22.503,-12.9921,-12.9921,-18.3736,-18.3736,-18.3736,0,0,0,-25.9842,-3.3626,-5.8242,-25.0988,-6.496,-11.2515,22.503,-11.2515,-19.4882,-12.9921,-9.1868,-15.912,-18.3736 +,-12.9921,-22.503,0,-9.1868,-15.912,18.3736,-6.4961,-11.2515,-22.503,-12.5494,-21.7362,-6.7252,-11.2515,-19.4882,12.9921,0,0,25.9842,-3.3626,-5.8242,25.0988,-12.5494,-21.7362,6.7252,-5.8242,-21.7362,12.9921,-3.3626,-12.5494,-22.503,-1.7406,-6.4961,-25.0988,0,0,25.9842,-1.7406,-6.4961,25.0988,-6.4961,-24.2436,-6.7252,-5.8242,-21.7362,-12.9921,-6.4961,-24.2436,6.7252,0,0,-25.9842 +,-3.3626,-12.5494,22.503,-4.7554,-17.7476,-18.3736,-6.7252,-25.0988,0,-4.7554,-17.7476,18.3736,0,0,25.9842,0,0,-25.9842,-12.9921,0,22.503,-6.7252,0,25.0988,-22.503,0,-12.9921,-25.0988,0,6.7252,-18.3736,0,18.3736,-12.9921,0,22.503,-18.3736,0,-18.3736,-25.9842,0,0,-22.503,0,12.9921,-18.3736,0,18.3736,-6.7252,0,-25.0988 +,-12.9921,0,-22.503,-22.503,0,-12.9921,-25.0988,0,-6.7252,-22.503,0,12.9921] +,"normals":[0,-0.712,0.702,0.225,-0.839,0.495,0,-0.869,0.495,0,-0.508,-0.861,0.07,-0.26,-0.963,0,-0.269,-0.963,0,-0.269,0.963,0,0,1,0.07,-0.26,0.963,0,-0.967,-0.256,0.225,-0.839,-0.495,0,-0.869,-0.495,0,-0.967,0.256,0.25,-0.934,0.256,0,0,-1,0,-0.508,0.861,0.131,-0.491,0.861 +,0.184,-0.688,-0.702,0,-0.712,-0.702,0.259,-0.966,0,0,-1,0,0.184,-0.688,0.702,0.131,-0.491,-0.861,0.25,-0.934,-0.256,0.254,-0.44,0.861,0.434,-0.752,-0.495,0.356,-0.617,-0.702,0.483,-0.837,0.256,0.5,-0.866,0,0.356,-0.617,0.702,0.254,-0.44,-0.861,0.483,-0.837,-0.256,0.434,-0.752,0.495,0.134,-0.233,-0.963 +,0,0,1,0.134,-0.233,0.963,0,0,-1,0.19,-0.19,-0.963,0,0,1,0.19,-0.19,0.963,0.683,-0.683,-0.256,0.614,-0.614,-0.495,0.683,-0.683,0.256,0,0,-1,0.359,-0.359,0.861,0.504,-0.504,-0.702,0.707,-0.707,0,0.504,-0.504,0.702,0.359,-0.359,-0.861,0.614,-0.614,0.495,0.617,-0.356,0.702 +,0.617,-0.356,-0.702,0.44,-0.254,-0.861,0.837,-0.483,-0.256,0.752,-0.434,0.495,0.233,-0.134,-0.963,0,0,1,0.233,-0.134,0.963,0.752,-0.434,-0.495,0.837,-0.483,0.256,0,0,-1,0.44,-0.254,0.861,0.866,-0.5,0,0,0,-1,0.26,-0.07,-0.963,0.491,-0.131,0.861,0.688,-0.184,-0.702,0.934,-0.25,0.256 +,0.966,-0.259,0,0.688,-0.184,0.702,0.491,-0.131,-0.861,0.934,-0.25,-0.256,0.839,-0.225,0.495,0,0,1,0.26,-0.07,0.963,0.839,-0.225,-0.495,0.869,0,0.495,0.508,0,-0.861,0.269,0,-0.963,0,0,1,0.269,0,0.963,0.967,0,-0.256,0.869,0,-0.495,0.967,0,0.256,0,0,-1 +,0.508,0,0.861,0.712,0,-0.702,1,0,0,0.712,0,0.702,0.688,0.184,0.702,0.491,0.131,-0.861,0.934,0.25,-0.256,0.839,0.225,0.495,0.26,0.07,-0.963,0,0,1,0.26,0.07,0.963,0.839,0.225,-0.495,0.934,0.25,0.256,0,0,-1,0.491,0.131,0.861,0.688,0.184,-0.702,0.966,0.259,0 +,0.837,0.483,0.256,0,0,-1,0.233,0.134,-0.963,0.233,0.134,0.963,0.44,0.254,0.861,0.617,0.356,-0.702,0.866,0.5,0,0.617,0.356,0.702,0.44,0.254,-0.861,0.837,0.483,-0.256,0.752,0.434,0.495,0,0,1,0.752,0.434,-0.495,0.614,0.614,0.495,0.19,0.19,-0.963,0,0,1,0.19,0.19,0.963 +,0.683,0.683,-0.256,0.614,0.614,-0.495,0.683,0.683,0.256,0,0,-1,0.359,0.359,0.861,0.504,0.504,-0.702,0.707,0.707,0,0.504,0.504,0.702,0.359,0.359,-0.861,0.483,0.837,0.256,0.5,0.866,0,0.254,0.44,0.861,0.356,0.617,0.702,0.254,0.44,-0.861,0.483,0.837,-0.256,0.434,0.752,0.495,0.134,0.233,-0.963 +,0,0,1,0.134,0.233,0.963,0.434,0.752,-0.495,0,0,-1,0.356,0.617,-0.702,0.225,0.839,0.495,0.25,0.934,0.256,0,0,-1,0.07,0.26,-0.963,0.131,0.491,0.861,0.225,0.839,-0.495,0.184,0.688,-0.702,0.259,0.966,0,0.184,0.688,0.702,0.131,0.491,-0.861,0.25,0.934,-0.256,0,0,1 +,0.07,0.26,0.963,0,0.967,-0.256,0,0.869,0.495,0,0.269,-0.963,0,0,1,0,0.269,0.963,0,0.869,-0.495,0,0.967,0.256,0,0,-1,0,0.508,0.861,0,0.712,-0.702,0,1,0,0,0.712,0.702,0,0.508,-0.861,-0.259,0.966,0,-0.184,0.688,0.702,-0.184,0.688,-0.702 +,-0.131,0.491,-0.861,-0.25,0.934,-0.256,-0.225,0.839,0.495,-0.07,0.26,-0.963,0,0,1,-0.07,0.26,0.963,-0.225,0.839,-0.495,-0.25,0.934,0.256,0,0,-1,-0.131,0.491,0.861,-0.483,0.837,-0.256,-0.434,0.752,-0.495,-0.483,0.837,0.256,0,0,-1,-0.134,0.233,-0.963,-0.254,0.44,0.861,-0.356,0.617,-0.702 +,-0.5,0.866,0,-0.356,0.617,0.702,-0.254,0.44,-0.861,-0.434,0.752,0.495,0,0,1,-0.134,0.233,0.963,-0.683,0.683,-0.256,-0.614,0.614,0.495,-0.359,0.359,-0.861,-0.19,0.19,-0.963,0,0,1,-0.19,0.19,0.963,-0.614,0.614,-0.495,-0.683,0.683,0.256,0,0,-1,-0.359,0.359,0.861,-0.504,0.504,-0.702 +,-0.707,0.707,0,-0.504,0.504,0.702,-0.752,0.434,-0.495,-0.617,0.356,-0.702,-0.837,0.483,0.256,-0.866,0.5,0,-0.617,0.356,0.702,-0.44,0.254,-0.861,-0.837,0.483,-0.256,-0.752,0.434,0.495,-0.233,0.134,-0.963,0,0,1,-0.233,0.134,0.963,0,0,-1,-0.44,0.254,0.861,0,0,1,-0.26,0.07,0.963 +,-0.934,0.25,-0.256,-0.839,0.225,-0.495,-0.934,0.25,0.256,0,0,-1,-0.26,0.07,-0.963,-0.491,0.131,0.861,-0.688,0.184,-0.702,-0.966,0.259,0,-0.688,0.184,0.702,-0.491,0.131,-0.861,-0.839,0.225,0.495,-0.508,0,-0.861,-0.967,0,-0.256,-0.869,0,0.495,-0.269,0,-0.963,0,0,1,-0.269,0,0.963 +,-0.869,0,-0.495,-0.967,0,0.256,0,0,-1,-0.508,0,0.861,-0.712,0,-0.702,-1,0,0,-0.712,0,0.702,-0.508,0,0.861,-0.26,-0.07,0.963,-0.491,-0.131,0.861,-0.869,0,-0.495,-0.688,-0.184,-0.702,-0.712,0,-0.702,-0.967,0,0.256,-0.966,-0.259,0,-1,0,0,-0.712,0,0.702 +,-0.688,-0.184,0.702,-0.712,0,-0.702,-0.491,-0.131,-0.861,-0.508,0,-0.861,-1,0,0,-0.934,-0.25,-0.256,-0.967,0,-0.256,-0.869,0,0.495,-0.839,-0.225,0.495,-0.269,0,-0.963,-0.26,-0.07,-0.963,-0.269,0,0.963,0,0,1,-0.869,0,-0.495,-0.839,-0.225,-0.495,-0.869,0,0.495,-0.934,-0.25,0.256 +,-0.967,0,0.256,0,0,-1,-0.269,0,-0.963,-0.44,-0.254,-0.861,-0.233,-0.134,-0.963,0,0,1,-0.233,-0.134,0.963,-0.837,-0.483,-0.256,-0.752,-0.434,-0.495,-0.837,-0.483,0.256,0,0,-1,-0.44,-0.254,0.861,-0.617,-0.356,-0.702,-0.866,-0.5,0,-0.617,-0.356,0.702,-0.752,-0.434,0.495,-0.504,-0.504,0.702 +,-0.359,-0.359,-0.861,-0.683,-0.683,-0.256,-0.614,-0.614,0.495,-0.19,-0.19,-0.963,0,0,1,-0.19,-0.19,0.963,-0.614,-0.614,-0.495,-0.683,-0.683,0.256,0,0,-1,-0.359,-0.359,0.861,-0.504,-0.504,-0.702,-0.707,-0.707,0,0,0,-1,-0.134,-0.233,-0.963,-0.254,-0.44,0.861,-0.434,-0.752,-0.495,-0.356,-0.617,-0.702 +,-0.5,-0.866,0,-0.356,-0.617,0.702,-0.254,-0.44,-0.861,-0.483,-0.837,-0.256,-0.434,-0.752,0.495,0,0,1,-0.134,-0.233,0.963,-0.483,-0.837,0.256,-0.225,-0.839,0.495,-0.131,-0.491,-0.861,-0.07,-0.26,-0.963,0,0,1,-0.07,-0.26,0.963,-0.25,-0.934,-0.256,-0.225,-0.839,-0.495,-0.25,-0.934,0.256,0,0,-1 +,-0.131,-0.491,0.861,-0.184,-0.688,-0.702,-0.259,-0.966,0,-0.184,-0.688,0.702,0,0,1,0,0,-1,-0.508,0,0.861,-0.269,0,0.963,-0.869,0,-0.495,-0.967,0,0.256,-0.712,0,0.702,-0.508,0,0.861,-0.712,0,-0.702,-1,0,0,-0.869,0,0.495,-0.712,0,0.702,-0.269,0,-0.963 +,-0.508,0,-0.861,-0.869,0,-0.495,-0.967,0,-0.256,-0.869,0,0.495] +,"uvs":[0.75,0.75,0.708,0.667,0.75,0.667,0.75,0.167,0.708,0.083,0.75,0.083,0.75,0.917,0.729,1,0.708,0.917,0.75,0.417,0.708,0.333,0.75,0.333,0.75,0.583,0.708,0.583,0.729,0,0.75,0.833,0.708,0.833,0.708,0.25,0.75,0.25,0.708,0.5,0.75,0.5,0.708,0.75,0.708,0.167,0.708,0.417,0.667,0.833 +,0.667,0.333,0.667,0.25,0.667,0.583,0.667,0.5,0.667,0.75,0.667,0.167,0.667,0.417,0.667,0.667,0.667,0.083,0.688,1,0.667,0.917,0.688,0,0.625,0.083,0.646,1,0.625,0.917,0.625,0.417,0.625,0.333,0.625,0.583,0.646,0,0.625,0.833,0.625,0.25,0.625,0.5,0.625,0.75,0.625,0.167,0.625,0.667 +,0.583,0.75,0.583,0.25,0.583,0.167,0.583,0.417,0.583,0.667,0.583,0.083,0.604,1,0.583,0.917,0.583,0.333,0.583,0.583,0.604,0,0.583,0.833,0.583,0.5,0.562,0,0.542,0.083,0.542,0.833,0.542,0.25,0.542,0.583,0.542,0.5,0.542,0.75,0.542,0.167,0.542,0.417,0.542,0.667,0.562,1,0.542,0.917 +,0.542,0.333,0.5,0.667,0.5,0.167,0.5,0.083,0.521,1,0.5,0.917,0.5,0.417,0.5,0.333,0.5,0.583,0.521,0,0.5,0.833,0.5,0.25,0.5,0.5,0.5,0.75,0.458,0.75,0.458,0.167,0.458,0.417,0.458,0.667,0.458,0.083,0.479,1,0.458,0.917,0.458,0.333,0.458,0.583,0.479,0,0.458,0.833 +,0.458,0.25,0.458,0.5,0.417,0.583,0.438,0,0.417,0.083,0.417,0.917,0.417,0.833,0.417,0.25,0.417,0.5,0.417,0.75,0.417,0.167,0.417,0.417,0.417,0.667,0.438,1,0.417,0.333,0.375,0.667,0.375,0.083,0.396,1,0.375,0.917,0.375,0.417,0.375,0.333,0.375,0.583,0.396,0,0.375,0.833,0.375,0.25 +,0.375,0.5,0.375,0.75,0.375,0.167,0.333,0.583,0.333,0.5,0.333,0.833,0.333,0.75,0.333,0.167,0.333,0.417,0.333,0.667,0.333,0.083,0.354,1,0.333,0.917,0.333,0.333,0.354,0,0.333,0.25,0.292,0.667,0.292,0.583,0.312,0,0.292,0.083,0.292,0.833,0.292,0.333,0.292,0.25,0.292,0.5,0.292,0.75 +,0.292,0.167,0.292,0.417,0.312,1,0.292,0.917,0.25,0.417,0.25,0.667,0.25,0.083,0.271,1,0.25,0.917,0.25,0.333,0.25,0.583,0.271,0,0.25,0.833,0.25,0.25,0.25,0.5,0.25,0.75,0.25,0.167,0.208,0.5,0.208,0.75,0.208,0.25,0.208,0.167,0.208,0.417,0.208,0.667,0.208,0.083,0.229,1 +,0.208,0.917,0.208,0.333,0.208,0.583,0.229,0,0.208,0.833,0.167,0.417,0.167,0.333,0.167,0.583,0.188,0,0.167,0.083,0.167,0.833,0.167,0.25,0.167,0.5,0.167,0.75,0.167,0.167,0.167,0.667,0.188,1,0.167,0.917,0.125,0.417,0.125,0.667,0.125,0.167,0.125,0.083,0.146,1,0.125,0.917,0.125,0.333 +,0.125,0.583,0.146,0,0.125,0.833,0.125,0.25,0.125,0.5,0.125,0.75,0.083,0.333,0.083,0.25,0.083,0.583,0.083,0.5,0.083,0.75,0.083,0.167,0.083,0.417,0.083,0.667,0.083,0.083,0.104,1,0.083,0.917,0.104,0,0.083,0.833,0.062,1,0.042,0.917,0.042,0.417,0.042,0.333,0.042,0.583,0.062,0 +,0.042,0.083,0.042,0.833,0.042,0.25,0.042,0.5,0.042,0.75,0.042,0.167,0.042,0.667,0,0.167,0,0.417,0,0.667,0,0.083,0.021,1,0,0.917,0,0.333,0,0.583,0.021,0,0,0.833,0,0.25,0,0.5,0,0.75,1,0.833,0.958,0.917,0.958,0.833,1,0.333,0.958,0.25 +,1,0.25,1,0.583,0.958,0.5,1,0.5,1,0.75,0.958,0.75,1,0.25,0.958,0.167,1,0.167,1,0.5,0.958,0.417,1,0.417,1,0.667,0.958,0.667,1,0.083,0.958,0.083,1,0.917,0.979,1,1,0.333,0.958,0.333,1,0.667,0.958,0.583,1,0.583,0.979,0,1,0.083 +,0.917,0.167,0.917,0.083,0.938,1,0.917,0.917,0.917,0.417,0.917,0.333,0.917,0.583,0.938,0,0.917,0.833,0.917,0.25,0.917,0.5,0.917,0.75,0.917,0.667,0.875,0.75,0.875,0.167,0.875,0.417,0.875,0.667,0.875,0.083,0.896,1,0.875,0.917,0.875,0.333,0.875,0.583,0.896,0,0.875,0.833,0.875,0.25 +,0.875,0.5,0.854,0,0.833,0.083,0.833,0.833,0.833,0.333,0.833,0.25,0.833,0.5,0.833,0.75,0.833,0.167,0.833,0.417,0.833,0.667,0.854,1,0.833,0.917,0.833,0.583,0.792,0.667,0.792,0.167,0.792,0.083,0.812,1,0.792,0.917,0.792,0.417,0.792,0.333,0.792,0.583,0.812,0,0.792,0.833,0.792,0.25 +,0.792,0.5,0.792,0.75,0.771,1,0.771,0,1,0.833,1,0.917,1,0.333,1,0.583,1,0.75,1,0.833,1,0.25,1,0.5,1,0.667,1,0.75,1,0.083,1,0.167,1,0.333,1,0.417,1,0.667] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,1,13,14,5,4,15,8,16,11,17,18,12,19,20,0,16,21,18,22,3,20,23,9,8,24,16,17,25,26,19,27,28,16,29,21,22,26 +,30,19,31,23,21,32,1,22,33,4,8,34,35,23,25,10,1,27,13,36,4,33,30,37,33,35,38,39,25,40,41,32,42,27,43,33,37,35,44,24,26,41,45,28,42,46,24,47,29,30 +,45,48,28,40,31,29,49,32,44,50,47,48,51,52,46,53,40,47,54,49,37,52,55,39,56,57,41,53,58,49,59,42,60,37,55,39,61,44,45,58,51,46,59,62,63,55,64,57,65,61 +,58,66,51,62,67,68,61,69,50,52,66,70,62,71,53,50,72,54,52,64,55,57,73,74,58,71,75,54,67,59,69,76,72,64,77,78,74,79,80,75,81,82,72,83,67,84,64,78,65,80 +,85,66,82,86,68,83,87,65,88,69,70,86,77,68,81,71,85,89,88,86,90,77,87,91,81,88,92,76,77,93,78,80,94,95,82,91,96,76,97,83,98,78,93,80,99,85,82,100,86,87 +,97,101,92,102,97,103,93,104,99,105,106,96,107,100,101,102,108,89,106,109,100,110,90,101,111,91,89,112,92,93,110,104,95,113,105,96,111,114,109,115,112,110,116,104,105,117,118,114,119,120 +,112,121,102,122,104,116,105,123,106,114,124,107,102,125,108,109,123,126,107,127,110,108,119,111,125,128,129,126,130,131,124,132,127,125,133,119,126,134,115,127,135,116,118,136,137,120,133,138,115,128 +,121,139,116,135,123,137,130,124,138,140,128,141,142,143,135,144,137,145,130,140,146,147,129,142,148,130,149,131,140,150,132,129,151,133,131,141,134,132,144,135,137,152,153,133,146,138,148,154,151,149 +,155,141,150,156,144,153,157,158,151,159,146,141,160,142,161,144,156,145,158,162,147,159,163,148,160,164,149,162,165,147,166,150,160,167,164,162,168,165,166,169,170,164,171,154,165,172,155,156,170,173 +,158,174,175,154,176,159,160,172,177,178,156,173,162,175,179,159,169,163,176,180,181,172,182,177,183,173,184,175,185,179,169,181,186,167,182,187,168,185,188,169,189,170,167,180,171,168,190,172,170,184 +,173,175,191,192,187,193,180,188,194,190,184,195,196,192,197,198,181,193,199,190,200,182,201,184,196,185,198,202,186,199,203,182,204,187,185,205,188,189,203,195,203,206,207,204,208,209,202,210,205,203 +,211,195,193,209,212,205,213,194,196,211,214,198,215,216,193,206,199,194,208,200,217,196,214,198,218,202,216,219,220,206,221,222,213,223,208,224,214,225,218,220,226,207,222,227,209,223,228,218,229,210 +,207,230,211,212,228,221,210,231,213,214,230,225,227,232,230,228,233,221,229,234,231,225,232,235,220,236,237,222,233,238,231,239,223,240,225,235,220,241,226,227,238,242,223,243,228,226,244,229,245,246 +,247,248,249,250,251,252,253,254,247,255,256,257,258,259,260,261,262,255,263,264,257,265,266,267,246,268,260,269,270,271,272,273,274,265,265,275,276,246,277,278,269,279,280,263,281,271,282,265,276,247 +,278,283,269,284,249,252,281,285,255,283,286,249,275,257,252,279,260,255,287,263,283,288,286,284,289,275,285,290,279,286,291,287,275,292,276,278,293,294,280,290,295,287,296,281,297,276,292,278,298,283 +,284,295,299,281,300,285,301,292,302,294,303,298,299,304,305,296,306,300,298,307,288,299,308,289,300,309,290,288,310,291,292,308,302,294,311,312,295,309,304,291,313,296,307,314,310,302,315,316,312,317 +,318,304,319,320,310,321,313,322,302,316,312,323,303,305,320,324,313,325,306,307,323,326,305,315,308,306,319,309,326,15,0,324,3,315,319,20,9,326,2,314,315,5,316,318,327,6,319,11,320,314 +,12,321,328,316,5,323,6,15,324,11,18,325,12,20,0,21,1,3,22,4,9,23,10,12,2,1,15,6,8,11,10,17,12,13,19,0,15,16,18,17,22,20,19,23,8,35,24,17,10,25 +,19,13,27,16,24,29,22,17,26,19,28,31,21,29,32,22,30,33,23,31,25,1,32,27,30,48,37,25,31,40,32,49,42,35,39,44,26,25,41,28,27,42,24,44,47,30,26,45,28,46 +,40,29,47,49,44,61,50,48,45,51,46,62,53,47,50,54,37,48,52,41,40,53,49,54,59,39,57,61,45,41,58,46,42,59,57,74,65,58,75,66,62,59,67,61,65,69,52,51,66,62 +,68,71,50,69,72,52,70,64,58,53,71,54,72,67,69,88,76,64,70,77,75,71,81,72,76,83,65,74,80,66,75,82,68,67,83,65,85,88,70,66,86,68,87,81,85,99,89,86,100,90 +,87,101,91,88,89,92,77,90,93,82,81,91,76,92,97,80,95,99,82,96,100,87,83,97,92,112,102,99,95,105,96,114,107,101,97,102,89,99,106,100,107,110,101,108,111,89,109,112,93,90 +,110,96,91,111,109,126,115,110,127,116,114,111,119,112,115,121,105,118,123,114,120,124,102,121,125,109,106,123,107,124,127,108,125,119,125,121,128,126,123,130,124,140,132,125,129,133,126,131,134,127 +,132,135,120,119,133,115,134,128,123,118,137,124,120,138,128,134,141,137,153,145,140,138,146,129,128,142,130,145,149,140,147,150,129,148,151,131,149,141,132,150,144,133,151,146,148,164,154,149,165,155 +,150,166,156,151,154,159,141,155,160,145,153,158,147,146,159,148,142,160,149,145,162,147,163,166,160,177,167,162,179,168,166,163,169,164,167,171,165,168,172,156,166,170,154,171,176,160,155,172,162,158 +,175,159,176,169,176,171,180,172,190,182,175,192,185,169,176,181,167,177,182,168,179,185,169,186,189,167,187,180,168,188,190,170,189,184,187,204,193,188,205,194,184,189,195,181,180,193,190,194,200,185 +,192,198,186,181,199,182,200,204,185,202,205,189,186,203,203,199,206,204,200,208,202,218,210,203,207,211,193,204,209,205,210,213,196,195,211,193,212,206,194,213,208,198,216,218,206,212,221,213,231,223 +,218,216,220,207,206,222,209,208,223,218,226,229,207,227,230,212,209,228,210,229,231,214,211,230,227,242,232,228,243,233,229,244,234,225,230,232,222,221,233,231,234,239,220,237,241,227,222,238,223,239 +,243,226,241,244,329,330,246,331,269,249,332,271,252,333,334,247,335,249,257,336,252,260,337,338,255,339,340,257,341,342,260,343,263,271,265,257,275,269,260,279,263,287,281,247,246,278,269,280,284,252 +,271,281,255,247,283,249,284,275,252,285,279,255,286,287,283,298,288,284,299,289,285,300,290,286,288,291,275,289,292,280,279,290,287,291,296,278,294,298,284,280,295,281,296,300,294,312,303,299,295,304 +,296,313,306,298,303,307,299,305,308,300,306,309,288,307,310,292,289,308,295,290,309,291,310,313,307,326,314,302,308,315,304,309,319,310,314,321,312,318,323,305,304,320,313,321,325,307,303,323,305,324 +,315,306,325,319,326,323,15,324,18,3,319,325,20,326,0,2,315,3,5,319,9,11,314,2,12,323,318,6,324,320,11,325,321,12] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":344,"indexStart":0,"indexCount":1584}] +,"instances":[]} +,{"name":"Boss","id":"Boss","materialId":"game_scene.BossMaterial","billboardMode":0,"position":[0,-4902.1475,-295.0457],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-3.4411,-3.4048,-12.1113,-3.1553,-5.9591,-11.0762,-2.2088,-5.9747,-12.1113,-3.4411,-3.4048,-12.1113,-2.7683,-4.548,-16.7175,-4.2714,-2.5562,-16.7175,-3.6523,-2.3003,16.2137,-5.238,-3.3838,15.0147,-5.238,-2.2793,14.9648,-3.2891,4.4332,-12.1113,-3.4411,4.154,-12.1113,-2.5821,5.2733,-16.7175,-2.0561,7.0195,-11.0547,0,6.6969,-12.1113,0,7.0195,-10.9568,-3.4411,1.021,-12.1113,-4.2714,3.3024,-16.7175 +,-4.2714,-2.5562,-16.7175,-1.5346,-2.5958,-10.9597,-2.4408,-1.395,-10.9597,-4.2714,3.3024,-16.7175,-1.4224,3.3252,-10.9597,-2.5821,5.2733,-16.7175,0,5.2733,-16.7175,-2.0561,6.6969,-12.1113,-2.4408,2.137,-10.9597,-2.7486,5.4255,-12.1113,-3.0026,6.7126,-11.1021,-3.6951,5.4411,-11.0362,0,3.3252,-10.9597,-2.4408,-1.395,-10.9597,0,-2.5958,-10.9597,-3.6523,-3.4048,16.2636,-3.4793,-8.0367,13.2895 +,-5.238,-3.3838,15.0147,-1.1044,-8.3861,14.3495,0,-8.3861,14.233,0,-8.3861,10.2232,-2.2088,-5.9747,-12.1113,0,-4.548,-16.7175,-2.7683,-4.548,-16.7175,0,-4.548,-16.7175,-2.7683,-4.548,-16.7175,-6.0567,-3.3838,11.7115,-6.0567,-2.2793,11.6687,0,-3.4048,16.7175,-1.1044,-8.3861,14.3495,-1.8262,-3.4048,16.6071,-3.3266,6.7179,-9.8023,-4.2876,5.4465,-9.6515,-2.2088,-6.3031,-11.0331 +,-2.2088,-5.9747,-12.1113,-3.1553,-5.9591,-11.0762,-3.4411,4.154,-12.1113,-4.3877,3.071,-10.9658,-3.4411,3.0553,-12.1113,-3.0559,7.1752,9.8677,-4.3265,6.7179,11.6643,-4.3265,6.7179,9.8543,-2.2088,-8.3861,14.233,-2.3825,7.1272,-9.8023,-2.2088,-6.3031,-9.743,-3.4793,-5.9537,-5.1791,-2.2088,-6.3031,-5.1791,-4.3265,6.7179,-5.525,-5.3477,5.4465,-5.1721,-6.0567,-3.3838,11.7115,-5.2486,-2.2793,-9.4487 +,-4.3877,-3.3891,-10.9444,-4.3877,-2.2846,-10.9476,0,-6.3031,-10.9271,0,5.2733,-16.7175,0,3.3252,-10.9597,-2.7132,5.6281,14.4273,-3.3541,5.6646,14.2532,-3.0559,7.1752,12.6423,-2.0561,6.6969,-12.1113,0,-5.9747,-12.1113,-3.4793,-5.9537,-9.743,0,7.565,-5.6496,-3.0559,7.1752,-5.6496,-5.2486,3.0763,-9.4902,-4.3877,1.0366,-10.9573,-5.238,3.0763,14.6853,-6.0567,1.042,12.2542 +,-6.0567,3.0763,11.6792,-3.6523,3.0553,15.9341,-5.238,1.042,14.815,-3.4411,1.021,-12.1113,-4.3877,-0.3157,-10.9534,-3.4411,-0.3314,-12.1113,-6.4029,3.0763,-0.6644,-6.369,1.0419,-4.7455,-6.369,3.0763,-4.7933,-6.4464,4.175,-0.6947,-10.4549,2.969,-1.3757,-6.5429,1.8195,-0.6515,0,7.3153,-9.8023,-1.8262,3.0553,16.2776,0,4.154,16.3181,0,3.0553,16.3881,-5.3647,5.4465,8.2935 +,-5.1916,5.4465,10.6114,-4.3265,6.7179,-0.2565,-4.3265,6.7179,8.2935,-2.2088,-8.3861,8.2935,-3.4793,-8.0367,10.2232,-2.2088,-8.3861,10.2232,-3.4793,-8.0367,-1.8558,-3.4793,-8.0367,8.2935,-3.0559,7.1752,-0.3862,-3.0559,7.1752,8.2935,-3.4793,-5.9537,-9.743,-4.3877,-3.3891,-10.9444,-5.2486,-3.3838,-9.4413,-6.4029,-3.3838,-0.5219,-3.4793,-5.9537,-5.1791,-6.369,-3.3838,-4.6718,-6.4029,-2.2793,-0.5435 +,-6.369,-3.3838,-4.6718,-6.369,-2.2793,-4.6901,-6.4029,-2.2793,8.2935,-6.4029,-3.3838,-0.5219,-2.2088,-8.3861,-1.8558,0,-6.3031,-5.1791,-2.2088,-6.3031,-5.1791,0,-8.3861,-1.8558,-2.2088,-8.3861,-1.8558,-6.4464,4.175,8.2935,-10.4549,2.969,7.2094,-10.7632,4.175,7.0663,-6.5429,1.8195,-0.6515,-10.4549,2.969,7.2094,-6.5429,1.8195,8.2935,-6.4464,4.175,1.5751,-10.7632,4.175,7.0663 +,-10.7632,4.175,0.6917,-10.4799,2.1733,-4.6142,-11.0854,-0.9331,0.1152,-10.2531,2.1733,0.1152,-16.4659,-3.8127,-4.6142,-19.5723,-3.2072,0.1152,-16.4659,-4.0395,0.1152,-22.4518,2.1733,-4.6142,-21.8463,5.2797,0.1152,-22.6787,2.1733,0.1152,-11.2819,5.1663,-4.6142,-10.2531,2.1733,0.1152,-11.0854,5.2797,0.1152,-13.4729,-3.0107,-4.6142,-13.3595,-3.2072,0.1152,-21.6499,-0.8197,-4.6142,-22.6787,2.1733,0.1152 +,-21.8463,-0.9331,0.1152,-13.4729,7.3573,-4.6142,-13.3595,7.5537,0.1152,-19.4589,7.3573,-4.6142,-16.4659,8.3861,0.1152,-19.5723,7.5537,0.1152,-11.2819,-0.8197,-4.6142,-19.4589,-3.0107,-4.6142,-16.4659,8.1592,-4.6142,-21.6499,5.1663,-4.6142,0,-6.3031,-9.743,-5.2486,-3.3838,-9.4413,-3.4793,-8.0367,8.2935,-6.4029,-3.3838,8.2935,-5.2486,1.0419,-9.471,0,7.6271,9.8677,-5.3647,5.4465,-0.4756 +,-3.4793,-8.0367,-1.8558,-13.4841,0.4518,12.6832,-11.435,2.1733,12.6832,-12.109,-0.3422,12.6832,-21.513,-0.7407,-6.8321,-22.4518,2.1733,-4.6142,-20.8228,4.6887,12.6832,-19.3798,7.2204,10.7675,-18.9813,6.5302,12.6832,-16.4659,8.0012,10.7675,-13.9504,6.5302,12.6832,-16.4659,7.2042,12.6832,-19.3798,-2.8738,10.7675,-20.8228,-0.3422,12.6832,-18.9813,-2.1836,12.6832,-11.4187,-0.7407,10.7675,-13.9504,-2.1836,12.6832 +,-12.109,-0.3422,12.6832,-13.5519,7.2204,10.7675,-12.109,4.6887,12.6832,-22.2938,2.1733,10.7675,-21.4968,2.1733,12.6832,-16.4659,-3.6546,10.7675,-16.4659,-2.8576,12.6832,-11.4187,5.0872,10.7675,-11.435,2.1733,12.6832,-21.4968,2.1733,12.6832,-21.513,5.0872,10.7675,-10.638,2.1733,10.7675,-11.435,2.1733,12.6832,-16.4659,-0.3542,10.3501,-14.7444,-0.8084,12.6832,-16.4659,-1.2697,12.6832,-18.9813,-2.1836,12.6832 +,-16.4659,-1.2697,12.6832,-16.4659,-2.8576,12.6832,-19.4476,3.8948,12.6832,-21.4968,2.1733,12.6832,-20.8228,4.6887,12.6832,-13.0229,2.1733,12.6832,-12.109,4.6887,12.6832,-11.435,2.1733,12.6832,-14.7444,-0.8084,12.6832,-13.9504,-2.1836,12.6832,-21.4968,2.1733,12.6832,-19.4476,0.4518,12.6832,-20.8228,-0.3422,12.6832,-13.4841,3.8948,12.6832,-13.9504,6.5302,12.6832,-16.4659,5.6163,12.6832,-18.9813,6.5302,12.6832 +,-16.4659,7.2042,12.6832,-14.277,3.437,10.3501,-16.4659,-0.3542,10.3501,-18.6547,3.437,10.3501,-18.9933,2.1733,10.3501,-19.4476,0.4518,12.6832,-19.9089,2.1733,12.6832,-13.4841,3.8948,12.6832,-15.2021,4.3621,10.3501,-14.7444,5.155,12.6832,-16.4659,4.7007,10.3501,-18.1874,5.155,12.6832,-16.4659,5.6163,12.6832,-15.2021,-0.0156,10.3501,-13.4841,0.4518,12.6832,-18.6547,0.9096,10.3501,-18.1874,-0.8084,12.6832 +,-18.6547,3.437,10.3501,-19.4476,3.8948,12.6832,-13.9384,2.1733,10.3501,-13.0229,2.1733,12.6832,-17.7296,-0.0156,10.3501,-19.9089,2.1733,12.6832,-13.0229,2.1733,12.6832,-14.277,3.437,10.3501,-22.2938,2.1733,-6.8321,-19.4482,3.8951,-7.8833,-21.513,5.0872,-6.8321,-13.5519,7.2204,-6.8321,-19.3798,7.2204,-6.8321,-11.4187,-0.7407,-6.8321,-19.3798,-2.8738,-6.8321,-21.513,5.0872,-6.8321,-10.638,2.1733,-6.8321 +,-11.4187,5.0872,-6.8321,-10.4799,2.1733,-4.6142,-13.5519,-2.8738,-6.8321,-18.9731,2.1733,-5.6914,-19.4482,3.8951,-7.8833,-19.9096,2.1733,-7.8833,-11.4187,5.0872,-6.8321,-13.0222,2.1733,-7.8833,-10.638,2.1733,-6.8321,-14.744,-0.8091,-7.8833,-16.4659,-3.6546,-6.8321,-13.5519,-2.8738,-6.8321,-19.4482,0.4514,-7.8833,-22.2938,2.1733,-6.8321,-21.513,-0.7407,-6.8321,-13.5519,7.2204,-6.8321,-13.4835,3.8951,-7.8833 +,-19.3798,7.2204,-6.8321,-16.4659,5.617,-7.8833,-16.4659,8.0012,-6.8321,-13.4835,0.4514,-7.8833,-11.4187,-0.7407,-6.8321,-19.3798,-2.8738,-6.8321,-14.744,5.1556,-7.8833,-10.638,2.1733,-6.8321,-16.4659,-1.2704,-7.8833,-13.4835,3.8951,-7.8833,-13.9586,2.1733,-5.6914,-13.0222,2.1733,-7.8833,-15.2122,0.0019,-5.6913,-16.4659,-1.2704,-7.8833,-14.744,-0.8091,-7.8833,-18.6372,0.9196,-5.6914,-19.9096,2.1733,-7.8833 +,-19.4482,0.4514,-7.8833,-14.744,5.1556,-7.8833,-14.2945,3.4269,-5.6914,-18.1877,5.1556,-7.8833,-16.4659,4.6805,-5.6914,-16.4659,5.617,-7.8833,-14.2945,0.9196,-5.6914,-13.4835,0.4514,-7.8833,-17.7195,0.0019,-5.6913,-18.1877,-0.8091,-7.8833,-15.2122,4.3446,-5.6914,-18.6372,3.4269,-5.6914,-13.0222,2.1733,-7.8833,-16.4659,-0.334,-5.6913,-21.8463,5.2797,5.9636,-19.4925,7.4155,7.9556,-21.7081,5.1999,7.9556 +,-21.8463,5.2797,0.6768,-19.5723,7.5537,0.6768,-16.4659,8.2265,7.9556,-13.3595,7.5537,5.9636,-13.4393,7.4155,7.9556,-16.4659,8.3861,0.6768,-13.3595,7.5537,0.6768,-19.4925,-3.0689,7.9556,-21.8463,-0.9331,5.9636,-21.7081,-0.8533,7.9556,-19.5723,-3.2072,0.6768,-21.8463,-0.9331,0.6768,-11.2236,-0.8533,7.9556,-13.3595,-3.2072,5.9636,-13.4393,-3.0689,7.9556,-13.3595,-3.2072,0.6768,-11.0854,-0.9331,0.6768 +,-19.5723,7.5537,5.9636,-11.2236,5.1999,7.9556,-11.0854,5.2797,0.6768,-22.5191,2.1733,7.9556,-22.6787,2.1733,0.6768,-16.4659,-3.8799,7.9556,-16.4659,-4.0395,0.6768,-10.2531,2.1733,5.9636,-10.4127,2.1733,7.9556,-10.2531,2.1733,0.1152,-10.2531,2.1733,0.6768,-22.6787,2.1733,5.9636,-22.5191,2.1733,7.9556,-22.6787,2.1733,0.6768,-16.4659,-4.0395,5.9636,-10.2531,2.1733,5.9636,-10.4127,2.1733,7.9556 +,-10.2531,2.1733,0.6768,-5.2486,-0.3104,-9.4619,-6.4029,1.042,8.2935,-6.4029,-0.3104,-0.5819,-6.4029,1.0419,-0.6083,-6.369,-0.3104,-4.7229,-3.4411,-2.3003,-12.1113,-1.8262,-2.3003,16.5572,0,-0.3313,16.5788,0,-2.3003,16.6677,-6.0567,-0.3104,11.5924,-6.4029,-0.3104,8.2935,-3.4793,-8.0367,13.2895,-2.2088,-8.3861,14.233,-4.7822,5.4465,13.1398,0,7.6271,8.2935,-6.4029,3.0763,8.2935 +,-6.4029,-3.3838,8.2935,0,-8.3861,8.2935,0,1.021,12.3066,-3.6523,1.021,16.0638,-1.8262,1.021,16.4073,-3.6523,-0.3313,16.1249,-5.238,-0.3104,14.876,0,-0.3104,11.5924,-6.0567,1.042,12.2542,0,-0.3104,11.5924,-6.0567,-0.3104,11.5924,-8.5712,1.7215,8.5334,-9.4781,1.7265,-3.1065,-8.5712,1.9696,-3.1065,-7.6431,-0.3801,9.0361,-7.0053,0.1557,8.5334,-7.2151,-0.6272,8.5334 +,-9.3541,-1.2004,8.5334,-10.142,-0.7513,-3.1065,-9.9272,-0.6272,8.5334,-9.107,-0.7724,9.0361,-8.5712,-1.4102,8.5334,-9.3541,-1.2004,8.5334,-9.4992,0.6915,9.0361,-10.137,0.1557,8.5334,-9.9272,0.9386,8.5334,-7.4996,0.1557,9.0361,-7.2151,0.9386,8.5334,-8.5712,-1.4102,8.5334,-8.0354,-0.7724,9.0361,-7.7882,-1.2004,8.5334,-9.4992,-0.3801,9.0361,-9.9272,-0.6272,8.5334,-7.6431,0.6915,9.0361 +,-7.7882,1.5117,8.5334,-8.5712,1.2273,9.0361,-9.3541,1.5117,8.5334,-8.5712,1.7215,8.5334,-8.0354,1.0837,9.0361,-8.5712,0.1557,8.8108,-7.4996,0.1557,9.0361,-7.6431,-0.3801,9.0361,-9.643,0.1557,-3.5761,-10.142,1.0626,-3.1065,-10.385,0.1557,-3.1065,-7.6642,1.7265,-3.1065,-7.7882,1.5117,8.5334,-9.9272,0.9386,8.5334,-9.3541,1.5117,8.5334,-7.0053,0.1557,8.5334,-7.0003,-0.7513,-3.1065 +,-7.2151,-0.6272,8.5334,-8.5712,-1.4102,8.5334,-9.4781,-1.4152,-3.1065,-10.137,0.1557,8.5334,-10.142,1.0626,-3.1065,-7.2151,0.9386,8.5334,-6.7573,0.1557,-3.1065,-7.7882,-1.2004,8.5334,-8.5712,-1.6582,-3.1065,-8.5712,-1.4102,8.5334,-10.385,0.1557,-3.1065,-7.0003,1.0626,-3.1065,-7.6642,-1.4152,-3.1065,-7.0003,1.0626,-3.1065,-7.4993,0.1557,-3.5761,-6.7573,0.1557,-3.1065,-8.0352,-0.7726,-3.5761 +,-8.5712,-1.6582,-3.1065,-7.6642,-1.4152,-3.1065,-10.142,-0.7513,-3.1065,-7.6642,1.7265,-3.1065,-7.6429,0.6916,-3.5761,-9.4781,1.7265,-3.1065,-8.5712,1.2275,-3.5761,-8.5712,1.9696,-3.1065,-7.6429,-0.3803,-3.5761,-7.0003,-0.7513,-3.1065,-9.1071,-0.7726,-3.5761,-9.4781,-1.4152,-3.1065,-8.0352,1.0839,-3.5761,-9.4994,0.6916,-3.5761,-8.5712,-0.9162,-3.5761,-8.5712,-1.6582,-3.1065,-8.5712,0.1557,-3.368 +,-9.643,0.1557,-3.5761,-9.4994,-0.3803,-3.5761,-16.4659,-0.334,-5.6913,-14.2945,0.9196,-5.6914,-16.4659,4.6805,-5.6914,-6.4029,4.175,8.2935,0,7.6271,-0.3862,0,7.6271,12.6423,-1.528,7.4012,12.7588,-10.4127,2.1733,7.9556,-22.5191,2.1733,7.9556,-22.2938,2.1733,10.7675,-10.638,2.1733,10.7675,-13.5519,-2.8738,10.7675,-21.513,-0.7407,10.7675,-5.238,4.175,14.6152,-6.1448,4.4542,-4.8967 +,-6.1749,4.4542,-0.6466,-3.6523,4.154,15.8641,-1.8262,4.154,16.2076,-5.0376,4.4542,-9.5338,-4.2356,4.4488,-10.9848,-3.2891,4.4332,-12.1113,-6.0567,4.175,11.3686,-6.369,4.175,-4.8192,-5.2486,4.175,-9.5006,-1.8262,1.021,16.4073,0,1.021,16.5178,-6.4029,4.175,-0.6947,-3.6523,4.154,15.8641,-5.238,4.175,14.6152,-5.238,4.175,14.6152,-4.3877,4.1696,-10.9703,-3.6523,1.021,16.0638 +,0,5.5251,14.867,0,4.154,16.3181,-1.8262,4.154,16.2076,-1.8262,-0.3313,16.4684,-3.4793,-8.0367,10.2232,-1.6961,5.5701,14.7036,-3.6523,-3.4048,16.2636,-1.8262,-3.4048,16.6071,0,-3.4048,16.7175,-3.4411,-3.4048,-12.1113,-5.238,-0.3104,14.876,-3.6523,-0.3313,16.1249,-7.4993,0.1557,-3.5761,-7.6429,0.6916,-3.5761,-8.5712,-0.9162,-3.5761,-8.0352,-0.7726,-3.5761,-9.4994,0.6916,-3.5761 +,-8.5712,1.2275,-3.5761,-8.0352,1.0839,-3.5761,-9.1071,-0.7726,-3.5761,-7.6429,-0.3803,-3.5761,-9.1071,1.0839,-3.5761,-7.6431,0.6915,9.0361,-8.5712,-0.9159,9.0361,-9.107,-0.7724,9.0361,-9.4992,0.6915,9.0361,-9.6428,0.1557,9.0361,-8.0354,-0.7724,9.0361,-9.107,1.0837,9.0361,-8.5712,1.2273,9.0361,-8.0354,1.0837,9.0361,-9.4992,-0.3801,9.0361,-6.4464,4.175,-0.6947,-10.7632,4.175,0.1868 +,-10.7632,4.175,-1.462,-6.4464,4.175,1.043,-10.2531,2.1733,0.6768,-11.0854,-0.9331,5.9636,-10.2531,2.1733,5.9636,-19.5723,-3.2072,5.9636,-22.6787,2.1733,0.6768,-11.0854,5.2797,5.9636,-22.6787,2.1733,5.9636,-16.4659,8.3861,5.9636,-3.4411,4.154,-12.1113,-4.3877,4.1696,-10.9703,-4.3877,4.1696,-10.9703,-5.2486,4.175,-9.5006,-5.2486,4.175,-9.5006,-6.369,4.175,-4.8192,-6.4029,4.175,8.2935 +,-6.369,4.175,-4.8192,-6.4029,4.175,-0.6947,-6.0567,4.175,11.3686,-6.4029,4.175,8.2935,-6.0567,4.175,11.3686,3.1553,-5.9591,-11.0762,3.4411,-3.4048,-12.1113,2.2088,-5.9747,-12.1113,2.7683,-4.548,-16.7175,3.4411,-3.4048,-12.1113,4.2714,-2.5562,-16.7175,3.6523,-2.3003,16.2137,5.238,-3.3838,15.0147,3.6523,-3.4048,16.2636,2.5821,5.2733,-16.7175,3.2891,4.4332,-12.1113,2.7486,5.4255,-12.1113 +,2.0561,7.0195,-11.0547,2.0561,6.6969,-12.1113,3.4411,-0.3314,-12.1113,3.4411,1.021,-12.1113,4.2714,-2.5562,-16.7175,1.5346,-2.5958,-10.9597,2.7683,-4.548,-16.7175,1.4224,3.3252,-10.9597,4.2714,3.3024,-16.7175,2.5821,5.2733,-16.7175,2.0561,6.6969,-12.1113,0,6.6969,-12.1113,2.4408,2.137,-10.9597,2.7486,5.4255,-12.1113,3.0026,6.7126,-11.1021,2.4408,-1.395,-10.9597,3.6523,-3.4048,16.2636 +,3.4793,-8.0367,13.2895,2.2088,-8.3861,14.233,1.1044,-8.3861,14.3495,2.2088,-8.3861,10.2232,2.2088,-5.9747,-12.1113,0,-5.9747,-12.1113,6.0567,-3.3838,11.7115,5.238,-2.2793,14.9648,6.0567,-2.2793,11.6687,1.1044,-8.3861,14.3495,0,-8.3861,14.233,3.3266,6.7179,-9.8023,3.6951,5.4411,-11.0362,4.2876,5.4465,-9.6515,2.2088,-6.3031,-11.0331,3.1553,-5.9591,-11.0762,2.2088,-5.9747,-12.1113 +,4.3877,3.071,-10.9658,3.4411,4.154,-12.1113,3.4411,3.0553,-12.1113,3.0559,7.1752,9.8677,4.3265,6.7179,11.6643,3.0559,7.1752,12.6423,1.8262,-3.4048,16.6071,2.3825,7.1272,-9.8023,2.2088,-6.3031,-5.1791,3.4793,-5.9537,-9.743,2.2088,-6.3031,-9.743,4.3265,6.7179,-5.525,5.3477,5.4465,-5.1721,6.0567,-3.3838,11.7115,5.238,-3.3838,15.0147,4.3877,-3.3891,-10.9444,5.2486,-2.2793,-9.4487 +,4.3877,-2.2846,-10.9476,2.7132,5.6281,14.4273,3.3541,5.6646,14.2532,3.0559,7.1752,-5.6496,4.3877,1.0366,-10.9573,5.2486,3.0763,-9.4902,6.0567,1.042,12.2542,5.238,3.0763,14.6853,6.0567,3.0763,11.6792,3.6523,3.0553,15.9341,5.238,1.042,14.815,3.6523,1.021,16.0638,4.3877,-0.3157,-10.9534,3.4411,1.021,-12.1113,3.4411,-0.3314,-12.1113,6.369,1.0419,-4.7455,6.4029,3.0763,-0.6644 +,6.369,3.0763,-4.7933,10.4549,2.969,-1.3757,6.4464,4.175,-0.6947,6.5429,1.8195,-0.6515,1.8262,3.0553,16.2776,1.8262,4.154,16.2076,4.3265,6.7179,9.8543,5.3647,5.4465,8.2935,5.1916,5.4465,10.6114,4.3265,6.7179,-0.2565,5.3647,5.4465,-0.4756,3.4793,-8.0367,10.2232,2.2088,-8.3861,8.2935,3.4793,-8.0367,-1.8558,2.2088,-8.3861,-1.8558,3.0559,7.1752,-0.3862,3.0559,7.1752,8.2935 +,4.3877,-3.3891,-10.9444,3.4793,-5.9537,-9.743,5.2486,-3.3838,-9.4413,6.4029,-3.3838,-0.5219,3.4793,-5.9537,-5.1791,3.4793,-8.0367,-1.8558,6.369,-3.3838,-4.6718,6.4029,-2.2793,-0.5435,6.369,-2.2793,-4.6901,6.4029,-3.3838,-0.5219,6.4029,-2.2793,8.2935,2.2088,-8.3861,-1.8558,2.2088,-6.3031,-5.1791,6.4464,4.175,8.2935,10.4549,2.969,7.2094,6.5429,1.8195,8.2935,10.4549,2.969,7.2094 +,6.5429,1.8195,-0.6515,6.5429,1.8195,8.2935,6.4464,4.175,1.5751,10.7632,4.175,7.0663,6.4464,4.175,8.2935,11.0854,-0.9331,0.1152,10.4799,2.1733,-4.6142,10.2531,2.1733,0.1152,19.5723,-3.2072,0.1152,16.4659,-3.8127,-4.6142,16.4659,-4.0395,0.1152,21.8463,5.2797,0.1152,22.4518,2.1733,-4.6142,22.6787,2.1733,0.1152,10.2531,2.1733,0.1152,11.2819,5.1663,-4.6142,11.0854,5.2797,0.1152 +,13.3595,-3.2072,0.1152,13.4729,-3.0107,-4.6142,22.6787,2.1733,0.1152,21.6499,-0.8197,-4.6142,21.8463,-0.9331,0.1152,13.4729,7.3573,-4.6142,13.3595,7.5537,0.1152,19.5723,7.5537,0.1152,16.4659,8.1592,-4.6142,19.4589,7.3573,-4.6142,11.2819,-0.8197,-4.6142,19.4589,-3.0107,-4.6142,16.4659,8.3861,0.1152,21.6499,5.1663,-4.6142,5.2486,-3.3838,-9.4413,3.4793,-8.0367,8.2935,6.4029,-3.3838,8.2935 +,5.2486,1.0419,-9.471,3.4793,-8.0367,-1.8558,11.435,2.1733,12.6832,13.4841,0.4518,12.6832,12.109,-0.3422,12.6832,22.4518,2.1733,-4.6142,21.513,-0.7407,-6.8321,20.8228,4.6887,12.6832,19.3798,7.2204,10.7675,21.513,5.0872,10.7675,13.9504,6.5302,12.6832,16.4659,8.0012,10.7675,16.4659,7.2042,12.6832,20.8228,-0.3422,12.6832,19.3798,-2.8738,10.7675,18.9813,-2.1836,12.6832,13.9504,-2.1836,12.6832 +,11.4187,-0.7407,10.7675,12.109,-0.3422,12.6832,18.9813,6.5302,12.6832,12.109,4.6887,12.6832,13.5519,7.2204,10.7675,22.2938,2.1733,10.7675,21.513,-0.7407,10.7675,16.4659,-3.6546,10.7675,13.5519,-2.8738,10.7675,11.435,2.1733,12.6832,11.4187,5.0872,10.7675,21.4968,2.1733,12.6832,22.2938,2.1733,10.7675,16.4659,-2.8576,12.6832,10.638,2.1733,10.7675,11.435,2.1733,12.6832,14.7444,-0.8084,12.6832 +,16.4659,-0.3542,10.3501,16.4659,-1.2697,12.6832,18.9813,-2.1836,12.6832,16.4659,-1.2697,12.6832,18.1874,-0.8084,12.6832,21.4968,2.1733,12.6832,19.4476,3.8948,12.6832,20.8228,4.6887,12.6832,12.109,4.6887,12.6832,13.0229,2.1733,12.6832,11.435,2.1733,12.6832,16.4659,-2.8576,12.6832,14.7444,-0.8084,12.6832,21.4968,2.1733,12.6832,19.4476,0.4518,12.6832,19.9089,2.1733,12.6832,13.9504,6.5302,12.6832 +,13.4841,3.8948,12.6832,18.9813,6.5302,12.6832,16.4659,5.6163,12.6832,16.4659,7.2042,12.6832,13.9504,-2.1836,12.6832,20.8228,-0.3422,12.6832,14.7444,5.155,12.6832,18.1874,5.155,12.6832,16.4659,-0.3542,10.3501,14.277,0.9096,10.3501,16.4659,4.7007,10.3501,19.4476,0.4518,12.6832,18.9933,2.1733,10.3501,19.9089,2.1733,12.6832,13.4841,3.8948,12.6832,15.2021,4.3621,10.3501,14.277,3.437,10.3501 +,16.4659,5.6163,12.6832,17.7296,4.3621,10.3501,16.4659,4.7007,10.3501,13.4841,0.4518,12.6832,15.2021,-0.0156,10.3501,17.7296,-0.0156,10.3501,18.6547,0.9096,10.3501,14.7444,5.155,12.6832,19.4476,3.8948,12.6832,18.1874,5.155,12.6832,13.0229,2.1733,12.6832,14.277,0.9096,10.3501,18.1874,-0.8084,12.6832,19.9089,2.1733,12.6832,18.6547,3.437,10.3501,13.0229,2.1733,12.6832,13.9384,2.1733,10.3501 +,22.2938,2.1733,-6.8321,19.4482,3.8951,-7.8833,19.9096,2.1733,-7.8833,13.5519,7.2204,-6.8321,19.3798,7.2204,-6.8321,11.4187,-0.7407,-6.8321,19.3798,-2.8738,-6.8321,16.4659,8.0012,-6.8321,21.513,5.0872,-6.8321,10.638,2.1733,-6.8321,16.4659,-3.6546,-6.8321,22.2938,2.1733,-6.8321,10.4799,2.1733,-4.6142,11.4187,5.0872,-6.8321,13.5519,-2.8738,-6.8321,19.4482,3.8951,-7.8833,18.9731,2.1733,-5.6914 +,19.9096,2.1733,-7.8833,11.4187,5.0872,-6.8321,13.0222,2.1733,-7.8833,13.4835,3.8951,-7.8833,16.4659,-3.6546,-6.8321,14.744,-0.8091,-7.8833,13.5519,-2.8738,-6.8321,22.2938,2.1733,-6.8321,19.4482,0.4514,-7.8833,21.513,-0.7407,-6.8321,13.5519,7.2204,-6.8321,14.744,5.1556,-7.8833,19.3798,7.2204,-6.8321,16.4659,5.617,-7.8833,18.1877,5.1556,-7.8833,13.4835,0.4514,-7.8833,11.4187,-0.7407,-6.8321 +,19.3798,-2.8738,-6.8321,18.1877,-0.8091,-7.8833,16.4659,8.0012,-6.8321,21.513,5.0872,-6.8321,10.638,2.1733,-6.8321,13.0222,2.1733,-7.8833,16.4659,-1.2704,-7.8833,13.4835,3.8951,-7.8833,13.9586,2.1733,-5.6914,14.2945,3.4269,-5.6914,16.4659,-1.2704,-7.8833,15.2122,0.0019,-5.6913,14.744,-0.8091,-7.8833,19.9096,2.1733,-7.8833,18.6372,0.9196,-5.6914,19.4482,0.4514,-7.8833,14.744,5.1556,-7.8833 +,15.2122,4.3446,-5.6914,18.1877,5.1556,-7.8833,16.4659,4.6805,-5.6914,17.7195,4.3446,-5.6914,14.2945,0.9196,-5.6914,13.4835,0.4514,-7.8833,17.7195,0.0019,-5.6913,18.1877,-0.8091,-7.8833,16.4659,5.617,-7.8833,18.6372,3.4269,-5.6914,13.0222,2.1733,-7.8833,13.9586,2.1733,-5.6914,16.4659,-0.334,-5.6913,19.4925,7.4155,7.9556,21.8463,5.2797,5.9636,21.7081,5.1999,7.9556,21.8463,5.2797,0.6768 +,16.4659,8.2265,7.9556,13.3595,7.5537,5.9636,16.4659,8.3861,5.9636,16.4659,8.3861,0.6768,19.4925,-3.0689,7.9556,21.8463,-0.9331,5.9636,19.5723,-3.2072,5.9636,19.5723,-3.2072,0.6768,11.2236,-0.8533,7.9556,13.3595,-3.2072,5.9636,11.0854,-0.9331,5.9636,13.3595,-3.2072,0.6768,11.0854,-0.9331,0.6768,19.5723,7.5537,5.9636,19.5723,7.5537,0.6768,13.4393,7.4155,7.9556,11.0854,5.2797,5.9636 +,11.0854,5.2797,0.6768,13.3595,7.5537,0.6768,22.5191,2.1733,7.9556,21.7081,-0.8533,7.9556,22.6787,2.1733,0.6768,21.8463,-0.9331,0.6768,16.4659,-3.8799,7.9556,13.4393,-3.0689,7.9556,16.4659,-4.0395,0.6768,11.2236,5.1999,7.9556,10.2531,2.1733,5.9636,10.2531,2.1733,0.1152,22.6787,2.1733,5.9636,22.5191,2.1733,7.9556,22.6787,2.1733,0.6768,16.4659,-4.0395,5.9636,10.2531,2.1733,5.9636 +,10.4127,2.1733,7.9556,10.2531,2.1733,0.6768,5.2486,-0.3104,-9.4619,6.4029,-0.3104,-0.5819,6.4029,1.042,8.2935,6.4029,1.0419,-0.6083,6.369,-0.3104,-4.7229,3.4411,-2.3003,-12.1113,1.8262,-2.3003,16.5572,1.8262,-0.3313,16.4684,6.0567,-0.3104,11.5924,3.4793,-8.0367,13.2895,2.2088,-8.3861,14.233,4.7822,5.4465,13.1398,6.4029,3.0763,8.2935,6.369,-3.3838,-4.6718,6.4029,-3.3838,8.2935 +,3.6523,1.021,16.0638,5.238,1.042,14.815,3.6523,-0.3313,16.1249,1.8262,-0.3313,16.4684,6.0567,1.042,12.2542,6.0567,-0.3104,11.5924,8.5712,1.7215,8.5334,9.4781,1.7265,-3.1065,9.3541,1.5117,8.5334,7.2151,-0.6272,8.5334,7.4996,0.1557,9.0361,7.6431,-0.3801,9.0361,10.142,-0.7513,-3.1065,9.3541,-1.2004,8.5334,9.9272,-0.6272,8.5334,8.5712,-1.4102,8.5334,9.107,-0.7724,9.0361 +,9.3541,-1.2004,8.5334,10.137,0.1557,8.5334,9.4992,0.6915,9.0361,9.9272,0.9386,8.5334,7.2151,0.9386,8.5334,7.0053,0.1557,8.5334,8.5712,-1.4102,8.5334,8.0354,-0.7724,9.0361,8.5712,-0.9159,9.0361,9.4992,-0.3801,9.0361,9.6428,0.1557,9.0361,7.7882,1.5117,8.5334,7.6431,0.6915,9.0361,9.3541,1.5117,8.5334,8.5712,1.2273,9.0361,8.5712,1.7215,8.5334,7.7882,-1.2004,8.5334 +,9.9272,-0.6272,8.5334,8.0354,1.0837,9.0361,9.107,1.0837,9.0361,8.5712,0.1557,8.8108,7.6431,-0.3801,9.0361,7.4996,0.1557,9.0361,10.142,1.0626,-3.1065,9.643,0.1557,-3.5761,10.385,0.1557,-3.1065,7.6642,1.7265,-3.1065,7.7882,1.5117,8.5334,9.9272,0.9386,8.5334,7.0003,-0.7513,-3.1065,7.0053,0.1557,8.5334,7.2151,-0.6272,8.5334,9.4781,-1.4152,-3.1065,8.5712,-1.4102,8.5334 +,10.142,1.0626,-3.1065,10.137,0.1557,8.5334,7.0003,1.0626,-3.1065,7.2151,0.9386,8.5334,8.5712,-1.6582,-3.1065,7.7882,-1.2004,8.5334,8.5712,-1.4102,8.5334,7.6642,-1.4152,-3.1065,7.0003,1.0626,-3.1065,7.4993,0.1557,-3.5761,7.6429,0.6916,-3.5761,8.5712,-1.6582,-3.1065,8.0352,-0.7726,-3.5761,7.6642,-1.4152,-3.1065,10.142,-0.7513,-3.1065,9.4994,-0.3803,-3.5761,7.6642,1.7265,-3.1065 +,8.0352,1.0839,-3.5761,9.4781,1.7265,-3.1065,8.5712,1.2275,-3.5761,9.1071,1.0839,-3.5761,7.6429,-0.3803,-3.5761,7.0003,-0.7513,-3.1065,9.1071,-0.7726,-3.5761,9.4781,-1.4152,-3.1065,8.5712,1.9696,-3.1065,9.4994,0.6916,-3.5761,6.7573,0.1557,-3.1065,8.5712,-0.9162,-3.5761,8.5712,-1.6582,-3.1065,8.5712,0.1557,-3.368,9.4994,-0.3803,-3.5761,9.643,0.1557,-3.5761,14.2945,3.4269,-5.6914 +,16.4659,-0.334,-5.6913,18.6372,3.4269,-5.6914,6.4029,4.175,8.2935,6.4029,4.175,-0.6947,1.528,7.4012,12.7588,22.5191,2.1733,7.9556,22.2938,2.1733,10.7675,10.4127,2.1733,7.9556,5.238,4.175,14.6152,3.6523,4.154,15.8641,6.1448,4.4542,-4.8967,6.1749,4.4542,-0.6466,5.0376,4.4542,-9.5338,4.2356,4.4488,-10.9848,3.2891,4.4332,-12.1113,6.0567,4.175,11.3686,6.369,4.175,-4.8192 +,5.2486,4.175,-9.5006,1.8262,1.021,16.4073,3.6523,4.154,15.8641,5.238,4.175,14.6152,4.3877,4.1696,-10.9703,1.8262,4.154,16.2076,0,4.154,16.3181,3.6523,4.154,15.8641,1.6961,5.5701,14.7036,3.6523,-0.3313,16.1249,3.4793,-8.0367,10.2232,6.4029,-0.3104,8.2935,1.8262,-3.4048,16.6071,3.4411,-3.4048,-12.1113,5.238,-0.3104,14.876,7.6429,0.6916,-3.5761,7.4993,0.1557,-3.5761 +,8.0352,-0.7726,-3.5761,8.5712,-0.9162,-3.5761,9.4994,0.6916,-3.5761,8.5712,1.2275,-3.5761,8.0352,1.0839,-3.5761,9.1071,-0.7726,-3.5761,7.6429,-0.3803,-3.5761,9.1071,1.0839,-3.5761,7.6431,0.6915,9.0361,9.107,-0.7724,9.0361,8.5712,-0.9159,9.0361,9.4992,0.6915,9.0361,9.6428,0.1557,9.0361,8.0354,-0.7724,9.0361,9.107,1.0837,9.0361,8.5712,1.2273,9.0361,8.0354,1.0837,9.0361 +,9.4992,-0.3801,9.0361,6.4464,4.175,-0.6947,10.7632,4.175,0.1868,6.4464,4.175,1.043,10.7632,4.175,0.6917,10.2531,2.1733,5.9636,22.6787,2.1733,0.6768,10.2531,2.1733,0.6768,3.4411,4.154,-12.1113,4.3877,4.1696,-10.9703,5.2486,4.175,-9.5006,5.2486,4.175,-9.5006,6.369,4.175,-4.8192,6.4029,4.175,-0.6947,6.4029,4.175,8.2935,6.369,4.175,-4.8192,6.4029,4.175,-0.6947 +,6.0567,4.175,11.3686,6.4029,4.175,8.2935,6.0567,4.175,11.3686,-2.2088,-5.9747,-12.1113,-2.7486,5.4255,-12.1113,-3.4411,3.0553,-12.1113,-3.4411,-0.3314,-12.1113,-3.4411,-2.3003,-12.1113,-1.5346,-2.5958,-10.9597,-1.4224,3.3252,-10.9597,-2.4408,2.137,-10.9597,0,-2.5958,-10.9597,-10.7632,4.175,-1.462,-1.8262,4.154,16.2076,-3.4793,-8.0367,-1.8558,0,-8.3861,-1.8558,-6.5429,1.8195,8.2935 +,-10.4549,2.969,-1.3757,-6.4464,4.175,8.2935,-10.4799,2.1733,-4.6142,-10.2531,2.1733,0.1152,-22.4518,2.1733,-4.6142,-22.6787,2.1733,0.1152,0,-6.3031,-5.1791,-3.4793,-5.9537,-5.1791,-13.0229,2.1733,12.6832,-22.2938,2.1733,-6.8321,-22.4518,2.1733,-4.6142,-10.638,2.1733,10.7675,-21.4968,2.1733,12.6832,-22.2938,2.1733,10.7675,-18.1874,-0.8084,12.6832,-19.9089,2.1733,12.6832,-21.4968,2.1733,12.6832 +,-19.9089,2.1733,12.6832,-14.7444,5.155,12.6832,-18.1874,5.155,12.6832,-17.7296,4.3621,10.3501,-16.4659,4.7007,10.3501,-15.2021,4.3621,10.3501,-13.9384,2.1733,10.3501,-14.277,0.9096,10.3501,-15.2021,-0.0156,10.3501,-17.7296,-0.0156,10.3501,-18.6547,0.9096,10.3501,-18.9933,2.1733,10.3501,-17.7296,4.3621,10.3501,-14.277,0.9096,10.3501,-18.9933,2.1733,10.3501,-19.9089,2.1733,12.6832,-13.0229,2.1733,12.6832 +,-13.9384,2.1733,10.3501,-19.9096,2.1733,-7.8833,-16.4659,8.0012,-6.8321,-16.4659,-3.6546,-6.8321,-22.2938,2.1733,-6.8321,-10.638,2.1733,-6.8321,-10.4799,2.1733,-4.6142,-19.9096,2.1733,-7.8833,-22.2938,2.1733,-6.8321,-18.1877,5.1556,-7.8833,-18.1877,-0.8091,-7.8833,-10.638,2.1733,-6.8321,-13.0222,2.1733,-7.8833,-18.9731,2.1733,-5.6914,-19.9096,2.1733,-7.8833,-17.7195,4.3446,-5.6914,-13.0222,2.1733,-7.8833 +,-13.9586,2.1733,-5.6914,-22.6787,2.1733,5.9636,-22.6787,2.1733,0.1152,-10.2531,2.1733,0.1152,-10.2531,2.1733,5.9636,0,1.021,16.5178,-6.0567,1.042,12.2542,-5.238,1.042,14.815,0,-0.3313,16.5788,-1.8262,-0.3313,16.4684,-6.0567,-0.3104,11.5924,0,1.021,12.3066,-8.5712,-0.9159,9.0361,-9.6428,0.1557,9.0361,-8.5712,-1.4102,8.5334,-8.5712,-0.9159,9.0361,-9.107,1.0837,9.0361 +,-8.5712,-1.6582,-3.1065,-8.5712,-0.9162,-3.5761,-9.4994,-0.3803,-3.5761,-9.1071,1.0839,-3.5761,-17.7195,4.3446,-5.6914,-18.6372,3.4269,-5.6914,-18.9731,2.1733,-5.6914,-18.6372,0.9196,-5.6914,-17.7195,0.0019,-5.6913,-15.2122,0.0019,-5.6913,-13.9586,2.1733,-5.6914,-14.2945,3.4269,-5.6914,-15.2122,4.3446,-5.6914,-10.4127,2.1733,7.9556,-22.5191,2.1733,7.9556,-3.6523,4.154,15.8641,-5.238,4.175,14.6152 +,-3.6523,4.154,15.8641,-1.8262,4.154,16.2076,-10.2531,2.1733,0.6768,-22.6787,2.1733,0.6768,-22.6787,2.1733,5.9636,-3.4411,4.154,-12.1113,-4.3877,4.1696,-10.9703,-5.2486,4.175,-9.5006,-6.4029,4.175,8.2935,-6.4029,4.175,8.2935,-6.4029,4.175,-0.6947,-6.369,4.175,-4.8192,-6.0567,4.175,11.3686,-6.4029,4.175,8.2935,2.2088,-5.9747,-12.1113,4.2714,3.3024,-16.7175,3.4411,4.154,-12.1113 +,3.4411,3.0553,-12.1113,3.4411,-2.3003,-12.1113,2.4408,-1.395,-10.9597,2.4408,2.137,-10.9597,1.5346,-2.5958,-10.9597,1.4224,3.3252,-10.9597,2.7683,-4.548,-16.7175,3.4793,-5.9537,-5.1791,10.7632,4.175,-1.462,4.3265,6.7179,8.2935,3.4793,-8.0367,8.2935,10.7632,4.175,7.0663,10.4549,2.969,-1.3757,10.2531,2.1733,0.1152,10.4799,2.1733,-4.6142,22.6787,2.1733,0.1152,22.4518,2.1733,-4.6142 +,3.4793,-5.9537,-5.1791,13.0229,2.1733,12.6832,22.4518,2.1733,-4.6142,22.2938,2.1733,-6.8321,21.4968,2.1733,12.6832,10.638,2.1733,10.7675,19.9089,2.1733,12.6832,21.4968,2.1733,12.6832,17.7296,4.3621,10.3501,18.6547,3.437,10.3501,18.9933,2.1733,10.3501,18.6547,0.9096,10.3501,17.7296,-0.0156,10.3501,15.2021,-0.0156,10.3501,13.9384,2.1733,10.3501,14.277,3.437,10.3501,15.2021,4.3621,10.3501 +,13.9384,2.1733,10.3501,19.9089,2.1733,12.6832,18.9933,2.1733,10.3501,13.0229,2.1733,12.6832,10.4799,2.1733,-4.6142,10.638,2.1733,-6.8321,10.638,2.1733,-6.8321,22.2938,2.1733,-6.8321,19.9096,2.1733,-7.8833,13.0222,2.1733,-7.8833,19.9096,2.1733,-7.8833,18.9731,2.1733,-5.6914,22.6787,2.1733,5.9636,22.6787,2.1733,0.1152,10.4127,2.1733,7.9556,10.2531,2.1733,0.6768,10.2531,2.1733,0.1152 +,10.2531,2.1733,5.9636,1.8262,1.021,16.4073,6.0567,1.042,12.2542,6.0567,-0.3104,11.5924,5.238,-0.3104,14.876,8.5712,1.9696,-3.1065,8.5712,-0.9159,9.0361,8.5712,-1.4102,8.5334,6.7573,0.1557,-3.1065,8.5712,-1.6582,-3.1065,10.385,0.1557,-3.1065,8.5712,-0.9162,-3.5761,17.7195,4.3446,-5.6914,16.4659,4.6805,-5.6914,15.2122,4.3446,-5.6914,13.9586,2.1733,-5.6914,14.2945,0.9196,-5.6914 +,15.2122,0.0019,-5.6913,17.7195,0.0019,-5.6913,18.6372,0.9196,-5.6914,18.9731,2.1733,-5.6914,22.5191,2.1733,7.9556,10.638,2.1733,10.7675,10.4127,2.1733,7.9556,1.8262,4.154,16.2076,1.8262,4.154,16.2076,3.6523,4.154,15.8641,5.238,4.175,14.6152,5.238,4.175,14.6152,1.8262,4.154,16.2076,10.7632,4.175,-1.462,22.6787,2.1733,0.6768,10.2531,2.1733,0.6768,22.6787,2.1733,5.9636 +,3.4411,4.154,-12.1113,4.3877,4.1696,-10.9703,4.3877,4.1696,-10.9703,5.2486,4.175,-9.5006,6.4029,4.175,8.2935,6.4029,4.175,8.2935,6.369,4.175,-4.8192,6.0567,4.175,11.3686,6.4029,4.175,8.2935] +,"normals":[-0.727,-0.326,-0.605,-0.805,-0.376,-0.46,-0.698,-0.335,-0.633,-0.956,-0.284,0.075,-0.834,-0.551,0.015,-0.954,-0.273,0.122,-0.413,0.041,0.91,-0.835,0.025,0.55,-0.84,0.024,0.542,-0.877,0.478,-0.047,-0.947,0.315,0.064,-0.507,0.849,-0.148,-0.148,0.965,-0.218,0,0.961,-0.276,0,0.966,-0.258,-0.984,0,0.177,-0.947,0.298,0.116 +,0.885,0.312,-0.344,0.404,0.837,-0.37,0.897,0.281,-0.342,0.875,-0.338,-0.347,0.379,-0.851,-0.364,0.397,-0.842,-0.365,0,0.955,-0.295,-0.436,0.873,-0.22,0.886,-0.309,-0.344,-0.69,0.366,-0.624,-0.619,0.694,-0.367,-0.774,0.424,-0.471,0,0,-1,0,0,-1,0,0,-1,-0.387,-0.45,0.805,-0.787,-0.483,0.384 +,-0.739,-0.461,0.491,0,-1,0,0,-1,0,0,-1,0,0,-0.955,-0.296,0,-0.955,-0.296,0,-0.955,-0.296,0,0.947,-0.321,0.422,0.827,-0.371,-0.985,0.007,0.173,-0.985,0.007,0.172,0,-0.423,0.906,-0.008,-0.433,0.901,-0.11,-0.417,0.902,-0.629,0.759,-0.17,-0.789,0.546,-0.28,-0.165,-0.976,-0.142 +,-0.108,-0.951,-0.29,-0.31,-0.943,-0.116,-0.75,0.21,-0.628,-0.82,-0.002,-0.573,-0.771,-0.001,-0.636,-0.244,0.97,0,-0.638,0.756,0.145,-0.599,0.801,0.012,-0.341,-0.449,0.826,-0.238,0.967,-0.089,-0.142,-0.99,-0.009,-0.265,-0.964,0,-0.134,-0.991,0,-0.603,0.794,-0.078,-0.789,0.607,-0.095,-0.875,-0.469,0.122,-0.93,-0.002,-0.367 +,-0.824,-0.002,-0.566,-0.824,-0.002,-0.567,0,-0.991,-0.131,0,-0.947,-0.32,0,-0.947,-0.32,-0.14,0.731,0.668,-0.318,0.729,0.607,-0.315,0.882,0.35,-0.329,0.828,-0.455,0,-0.962,-0.274,-0.265,-0.964,-0.028,0,1,-0.023,-0.243,0.969,-0.03,-0.928,-0.003,-0.372,-0.822,-0.002,-0.57,-0.829,0.042,0.557,-0.985,0.02,0.17 +,-0.984,0.044,0.175,-0.413,0.058,0.909,-0.815,0.037,0.579,-0.773,0,-0.634,-0.823,-0.002,-0.569,-0.775,-0.001,-0.632,-1,0,-0.004,-0.993,-0.002,-0.12,-0.993,-0.003,-0.121,0.175,-0.025,-0.984,0.175,-0.026,-0.984,0.175,-0.025,-0.984,0,0.992,-0.129,-0.123,0.063,0.99,0,0.419,0.908,0,0.064,0.998,-0.779,0.627,0.022 +,-0.812,0.579,0.081,-0.578,0.816,0,-0.578,0.816,0,-0.134,-0.991,0,-0.265,-0.964,0,-0.134,-0.991,0,-0.265,-0.964,0,-0.265,-0.964,0,-0.242,0.97,-0.002,-0.244,0.97,0,-0.851,-0.501,-0.159,-0.781,-0.409,-0.471,-0.78,-0.586,-0.219,-0.819,-0.57,-0.062,-0.766,-0.627,-0.14,-0.67,-0.739,-0.071,-1,0,-0.004 +,-0.993,-0.002,-0.118,-0.993,-0.002,-0.119,-0.999,0,0.051,-1,0,-0.004,-0.109,-0.842,-0.528,0,-0.847,-0.531,-0.119,-0.841,-0.527,0,-1,0,-0.134,-0.991,0,-0.266,0.017,0.964,-0.271,0.035,0.962,-0.273,0.044,0.961,-0.282,-0.959,0,-0.282,-0.959,0,-0.282,-0.959,0,0,1,0,0,1,0 +,0,1,0,0.998,0,-0.059,0.866,-0.5,-0.024,1,0,-0.024,0,-0.998,-0.059,-0.5,-0.866,-0.024,0,-1,-0.024,-0.998,0,-0.059,-0.866,0.5,-0.024,-1,0,-0.024,0.864,0.499,-0.059,1,0,-0.024,0.866,0.5,-0.024,0.499,-0.864,-0.059,0.5,-0.866,-0.024,-0.864,-0.499,-0.059,-1,0,-0.024 +,-0.866,-0.5,-0.024,0.499,0.864,-0.059,0.5,0.866,-0.024,-0.499,0.864,-0.059,0,1,-0.024,-0.5,0.866,-0.024,0.864,-0.499,-0.059,-0.499,-0.864,-0.059,0,0.998,-0.059,-0.864,0.499,-0.059,0,-1,0,-0.93,-0.003,-0.366,-0.847,-0.532,0,-0.852,-0.522,0.033,-0.929,-0.003,-0.37,0,1,0,-0.775,0.632,-0.002 +,-0.227,-0.825,-0.517,0,0,1,0,0,1,0,0,1,-0.864,-0.499,-0.071,-0.998,0,-0.059,-0.8,0.462,0.384,-0.487,0.843,0.229,-0.462,0.8,0.384,0,0.973,0.229,0.462,0.8,0.384,0,0.923,0.384,-0.487,-0.843,0.229,-0.8,-0.462,0.384,-0.462,-0.8,0.384,0.843,-0.487,0.229,0.462,-0.8,0.384 +,0.8,-0.462,0.384,0.487,0.843,0.229,0.8,0.462,0.384,-0.973,0,0.229,-0.923,0,0.384,0,-0.973,0.229,0,-0.923,0.384,0.843,0.487,0.229,0.923,0,0.384,-0.923,0,0.384,-0.843,0.487,0.229,0.973,0,0.229,0.923,0,0.384,0,0.931,0.365,-0.465,0.806,0.365,0,0.931,0.365,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,0.931,0,0.365,0.806,0.465,0.365,0.931,0,0.365,-0.806,-0.465,0.365,-0.465,-0.806,0.365,-0.465,-0.806,0.365,0,-0.931,0.365,0.465,-0.806,0.365,0,-0.931,0.365,-0.465,0.806,0.365,-0.806,0.465,0.365,0.806,0.465,0.365,0.465,0.806,0.365 +,0.806,-0.465,0.365,0.806,-0.465,0.365,-0.931,0,0.365,-0.931,0,0.365,0.465,0.806,0.365,0.931,0,0.365,-0.931,0,0.365,-0.806,-0.465,0.365,-0.403,0,-0.915,-0.349,0.202,-0.915,-0.349,0.202,-0.915,0.499,0.864,-0.071,-0.499,0.864,-0.071,0.864,-0.499,-0.071,-0.499,-0.864,-0.071,-0.864,0.499,-0.071,0.997,0,-0.071 +,0.864,0.499,-0.071,0.998,0,-0.059,0.499,-0.864,-0.071,0.92,0,-0.393,0.796,-0.46,-0.393,0.92,0,-0.393,0.349,0.202,-0.915,0.403,0,-0.915,0.403,0,-0.915,0.202,-0.349,-0.915,0,-0.403,-0.915,0.202,-0.349,-0.915,-0.349,-0.202,-0.915,-0.403,0,-0.915,-0.349,-0.202,-0.915,0.202,0.349,-0.915,0.349,0.202,-0.915 +,-0.202,0.349,-0.915,0,0.403,-0.915,0,0.403,-0.915,0.349,-0.202,-0.915,0.349,-0.202,-0.915,-0.202,-0.349,-0.915,0.202,0.349,-0.915,0.403,0,-0.915,0,-0.403,-0.915,-0.796,-0.46,-0.393,-0.92,0,-0.393,-0.92,0,-0.393,-0.46,0.796,-0.393,0,0.92,-0.393,-0.46,0.796,-0.393,0.796,0.46,-0.393,0.92,0,-0.393 +,0.796,0.46,-0.393,-0.46,-0.796,-0.393,-0.796,-0.46,-0.393,0.46,-0.796,-0.393,0,-0.92,-0.393,0,-0.92,-0.393,-0.796,0.46,-0.393,-0.796,0.46,-0.393,0.46,0.796,-0.393,0.46,0.796,-0.393,-0.46,-0.796,-0.393,0.796,-0.46,-0.393,-0.92,0,-0.393,0,0.92,-0.393,-0.865,0.5,0.04,-0.498,0.863,0.08,-0.863,0.498,0.08 +,-0.866,0.5,0,-0.5,0.866,0,0,0.997,0.08,0.5,0.865,0.04,0.498,0.863,0.08,0,1,0,0.5,0.866,0,-0.498,-0.863,0.08,-0.865,-0.5,0.04,-0.863,-0.498,0.08,-0.5,-0.866,0,-0.866,-0.5,0,0.863,-0.498,0.08,0.5,-0.865,0.04,0.498,-0.863,0.08,0.5,-0.866,0,0.866,-0.5,0 +,-0.5,0.865,0.04,0.863,0.498,0.08,0.866,0.5,0,-0.997,0,0.08,-1,0,0,0,-0.997,0.08,0,-1,0,0.999,0,0.04,0.997,0,0.08,1,0,-0.024,1,0,0,-0.999,0,0.04,-0.997,0,0.08,-1,0,0,0,-0.999,0.04,0.999,0,0.04,0.997,0,0.08 +,1,0,0,-0.929,-0.002,-0.369,-0.999,0,0.049,-1,0,-0.004,-1,0,-0.004,-0.993,-0.002,-0.12,-0.776,0,-0.631,-0.123,0.045,0.991,0,0.045,0.999,0,0.045,0.999,-0.99,-0.01,0.14,-0.999,0,0.052,-0.265,-0.964,0,-0.097,-0.995,0,-0.692,0.638,0.338,0,1,0,-0.999,0.002,0.053 +,-0.999,0,0.051,0,-1,0,0,-1,-0.001,-0.005,-1,-0.005,0,-1,0,0.003,1,0.007,0.003,1,0.005,0,1,0.004,-0.001,-0.445,0.896,0,-0.468,0.884,0,-0.44,0.898,0,1,0.021,-0.5,0.866,0.021,0,1,0.021,0.618,-0.357,0.701,0.713,0,0.701,0.618,-0.357,0.701 +,-0.5,-0.866,0.021,-0.866,-0.5,0.021,-0.866,-0.5,0.021,-0.357,-0.618,0.701,0,-0.713,0.701,-0.357,-0.618,0.701,-0.618,0.357,0.701,-0.713,0,0.701,-0.618,0.357,0.701,0.713,0,0.701,0.618,0.357,0.701,0,-0.713,0.701,0.357,-0.618,0.701,0.357,-0.618,0.701,-0.618,-0.357,0.701,-0.618,-0.357,0.701,0.618,0.357,0.701 +,0.357,0.618,0.701,0,0.713,0.701,-0.357,0.618,0.701,0,0.713,0.701,0.357,0.618,0.701,0,0,1,-0.206,0,0.979,-0.178,0.103,0.979,-0.535,0,-0.845,-0.463,0.267,-0.845,-0.535,0,-0.845,0.5,0.866,0.021,0.5,0.866,0.021,-0.866,0.5,0.021,-0.5,0.866,0.021,1,0,0.021,0.866,-0.5,0.021 +,0.866,-0.5,0.021,0,-1,0.021,-0.5,-0.866,0.021,-1,0,0.021,-0.866,0.5,0.021,0.866,0.5,0.021,1,0,0.021,0.5,-0.866,0.021,0,-1,0.021,0,-1,0.021,-1,0,0.021,0.866,0.5,0.021,0.5,-0.866,0.021,0.463,0.267,-0.845,0.535,0,-0.845,0.535,0,-0.845,0.267,-0.463,-0.845 +,0,-0.535,-0.845,0.267,-0.463,-0.845,-0.463,-0.267,-0.845,0.267,0.463,-0.845,0.463,0.267,-0.845,-0.267,0.463,-0.845,0,0.535,-0.845,0,0.535,-0.845,0.463,-0.267,-0.845,0.463,-0.267,-0.845,-0.267,-0.463,-0.845,-0.267,-0.463,-0.845,0.267,0.463,-0.845,-0.463,0.267,-0.845,0,-0.535,-0.845,0,-0.535,-0.845,0,0,-1 +,0.191,0,-0.982,0.165,0.095,-0.982,0,0,-1,0,0,-1,0,0,-1,-0.943,0.328,0.048,0,1,-0.006,0,0.939,0.343,-0.13,0.916,0.378,0.997,0,0.08,-0.997,0,0.08,-0.973,0,0.229,0.973,0,0.229,0.487,-0.843,0.229,-0.843,-0.487,0.229,-0.771,0.36,0.526,-0.789,0.607,-0.097 +,-0.774,0.633,-0.003,-0.373,0.401,0.837,-0.113,0.421,0.9,-0.777,0.547,-0.311,-0.761,0.405,-0.507,-0.702,0.375,-0.605,-0.933,0.326,0.153,-0.943,0.315,-0.108,-0.894,0.282,-0.347,-0.122,0.063,0.99,0,0.064,0.998,-0.942,0.336,-0.004,-0.373,0.401,0.837,-0.771,0.36,0.526,-0.771,0.36,0.526,-0.809,0.201,-0.552,-0.408,0.058,0.911 +,0,0.729,0.685,0,0.419,0.908,-0.113,0.421,0.9,-0.123,0.045,0.991,-0.862,-0.507,0.017,-0.094,0.729,0.678,-0.41,0.041,0.911,-0.123,0.045,0.991,0,0.045,0.999,-0.777,0,-0.63,-0.844,0.024,0.535,-0.416,0.041,0.908,-0.191,0,-0.982,-0.165,-0.095,-0.982,0,0.191,-0.982,-0.095,0.165,-0.982,0.165,-0.095,-0.982 +,0,-0.191,-0.982,-0.095,-0.165,-0.982,0.095,0.165,-0.982,-0.165,0.095,-0.982,0.095,-0.165,-0.982,-0.178,-0.103,0.979,0,0.206,0.979,0.103,0.178,0.979,0.178,-0.103,0.979,0.206,0,0.979,-0.103,0.178,0.979,0.103,-0.178,0.979,0,-0.206,0.979,-0.103,-0.178,0.979,0.178,0.103,0.979,0,1,0,0,1,0 +,0,1,0,0,1,0,1,0,0,0.865,-0.5,0.04,0.999,0,0.04,-0.5,-0.865,0.04,-1,0,0,0.865,0.5,0.04,-0.999,0,0.04,0,0.999,0.04,-0.75,0.21,-0.628,-0.809,0.201,-0.552,-0.809,0.201,-0.552,-0.894,0.282,-0.347,-0.894,0.282,-0.347,-0.943,0.315,-0.108,-0.943,0.328,0.048 +,-0.943,0.315,-0.108,-0.942,0.336,-0.004,-0.933,0.326,0.153,-0.943,0.328,0.048,-0.933,0.326,0.153,0.805,-0.376,-0.46,0.727,-0.326,-0.605,0.698,-0.335,-0.633,0.834,-0.551,0.015,0.956,-0.284,0.075,0.954,-0.273,0.122,0.413,0.041,0.91,0.835,0.025,0.55,0.41,0.041,0.911,0.507,0.849,-0.148,0.877,0.478,-0.047,0.877,0.478,-0.047 +,0.148,0.965,-0.218,0.329,0.828,-0.455,0.984,0,0.177,0.984,0,0.177,-0.885,0.312,-0.344,-0.404,0.837,-0.37,-0.422,0.827,-0.371,-0.379,-0.851,-0.364,-0.875,-0.338,-0.347,-0.397,-0.842,-0.365,0.436,0.873,-0.22,0,0.955,-0.295,-0.886,-0.309,-0.344,0.69,0.366,-0.624,0.619,0.694,-0.367,0,0,-1,0.387,-0.45,0.805 +,0.787,-0.483,0.384,0.341,-0.449,0.826,0,-1,0,0.134,-0.991,0,0,-0.955,-0.296,0,-0.955,-0.296,0.985,0.007,0.173,0.84,0.024,0.542,0.985,0.007,0.172,0.008,-0.433,0.901,0,-0.446,0.895,0.629,0.759,-0.17,0.774,0.424,-0.471,0.789,0.546,-0.28,0.165,-0.976,-0.142,0.31,-0.943,-0.116,0.108,-0.951,-0.29 +,0.82,-0.002,-0.573,0.75,0.21,-0.628,0.771,-0.001,-0.636,0.244,0.97,0,0.638,0.756,0.145,0.315,0.882,0.35,0.11,-0.417,0.902,0.238,0.967,-0.089,0.134,-0.991,0,0.265,-0.964,-0.028,0.142,-0.99,-0.009,0.603,0.794,-0.078,0.789,0.607,-0.095,0.875,-0.469,0.122,0.739,-0.461,0.491,0.824,-0.002,-0.566,0.93,-0.002,-0.367 +,0.824,-0.002,-0.567,0.14,0.731,0.668,0.318,0.729,0.607,0.243,0.969,-0.03,0.822,-0.002,-0.57,0.928,-0.003,-0.372,0.985,0.02,0.17,0.829,0.042,0.557,0.984,0.044,0.175,0.413,0.058,0.909,0.815,0.037,0.579,0.408,0.058,0.911,0.823,-0.002,-0.569,0.773,0,-0.634,0.775,-0.001,-0.632,0.993,-0.002,-0.12,1,0,-0.004 +,0.993,-0.003,-0.121,-0.175,-0.026,-0.984,-0.175,-0.025,-0.984,-0.175,-0.025,-0.984,0.123,0.063,0.99,0.113,0.421,0.9,0.599,0.801,0.012,0.779,0.627,0.022,0.812,0.579,0.081,0.578,0.816,0,0.775,0.632,-0.002,0.265,-0.964,0,0.134,-0.991,0,0.265,-0.964,0,0.134,-0.991,0,0.242,0.97,-0.002,0.244,0.97,0 +,0.781,-0.409,-0.471,0.851,-0.501,-0.159,0.78,-0.586,-0.219,0.819,-0.57,-0.062,0.766,-0.627,-0.14,0.856,-0.497,-0.143,0.993,-0.002,-0.118,1,0,-0.004,0.993,-0.002,-0.119,1,0,-0.004,0.999,0,0.051,0.109,-0.842,-0.528,0.119,-0.841,-0.527,0.266,0.017,0.964,0.271,0.035,0.962,0.264,0.011,0.964,0.282,-0.959,0 +,0.282,-0.959,0,0.282,-0.959,0,0,1,0,0,1,0,0,1,0,-0.866,-0.5,-0.024,-0.998,0,-0.059,-1,0,-0.024,0.5,-0.866,-0.024,0,-0.998,-0.059,0,-1,-0.024,0.866,0.5,-0.024,0.998,0,-0.059,1,0,-0.024,-1,0,-0.024,-0.864,0.499,-0.059,-0.866,0.5,-0.024 +,-0.5,-0.866,-0.024,-0.499,-0.864,-0.059,1,0,-0.024,0.864,-0.499,-0.059,0.866,-0.5,-0.024,-0.499,0.864,-0.059,-0.5,0.866,-0.024,0.5,0.866,-0.024,0,0.998,-0.059,0.499,0.864,-0.059,-0.864,-0.499,-0.059,0.499,-0.864,-0.059,0,1,-0.024,0.864,0.499,-0.059,0.93,-0.003,-0.366,0.847,-0.532,0,0.852,-0.522,0.033 +,0.929,-0.003,-0.37,0.227,-0.825,-0.517,0,0,1,0,0,1,0,0,1,0.998,0,-0.059,0.864,-0.499,-0.071,0.8,0.462,0.384,0.487,0.843,0.229,0.843,0.487,0.229,-0.462,0.8,0.384,0,0.973,0.229,0,0.923,0.384,0.8,-0.462,0.384,0.487,-0.843,0.229,0.462,-0.8,0.384,-0.462,-0.8,0.384 +,-0.843,-0.487,0.229,-0.8,-0.462,0.384,0.462,0.8,0.384,-0.8,0.462,0.384,-0.487,0.843,0.229,0.973,0,0.229,0.843,-0.487,0.229,0,-0.973,0.229,-0.487,-0.843,0.229,-0.923,0,0.384,-0.843,0.487,0.229,0.923,0,0.384,0.973,0,0.229,0,-0.923,0.384,-0.973,0,0.229,-0.923,0,0.384,0.465,0.806,0.365 +,0,0.931,0.365,0,0.931,0.365,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.806,0.465,0.365,-0.931,0,0.365,-0.931,0,0.365,0.806,-0.465,0.365,0.465,-0.806,0.365,0.806,-0.465,0.365 +,0,-0.931,0.365,-0.465,-0.806,0.365,0,-0.931,0.365,0.806,0.465,0.365,0.465,0.806,0.365,-0.465,0.806,0.365,-0.806,0.465,0.365,0.465,-0.806,0.365,-0.806,-0.465,0.365,-0.465,-0.806,0.365,0.931,0,0.365,0.806,0.465,0.365,-0.465,0.806,0.365,-0.931,0,0.365,-0.806,-0.465,0.365,0.931,0,0.365,0.931,0,0.365 +,0.403,0,-0.915,0.349,0.202,-0.915,0.403,0,-0.915,-0.499,0.864,-0.071,0.499,0.864,-0.071,-0.864,-0.499,-0.071,0.499,-0.864,-0.071,0,0.997,-0.071,0.864,0.499,-0.071,-0.997,0,-0.071,0,-0.997,-0.071,0.997,0,-0.071,-0.998,0,-0.059,-0.864,0.499,-0.071,-0.499,-0.864,-0.071,-0.796,-0.46,-0.393,-0.92,0,-0.393 +,-0.92,0,-0.393,-0.349,0.202,-0.915,-0.403,0,-0.915,-0.349,0.202,-0.915,0,-0.403,-0.915,-0.202,-0.349,-0.915,-0.202,-0.349,-0.915,0.403,0,-0.915,0.349,-0.202,-0.915,0.349,-0.202,-0.915,-0.202,0.349,-0.915,-0.202,0.349,-0.915,0.202,0.349,-0.915,0,0.403,-0.915,0.202,0.349,-0.915,-0.349,-0.202,-0.915,-0.349,-0.202,-0.915 +,0.202,-0.349,-0.915,0.202,-0.349,-0.915,0,0.403,-0.915,0.349,0.202,-0.915,-0.403,0,-0.915,-0.403,0,-0.915,0,-0.403,-0.915,0.796,-0.46,-0.393,0.92,0,-0.393,0.796,-0.46,-0.393,0,0.92,-0.393,0.46,0.796,-0.393,0.46,0.796,-0.393,-0.92,0,-0.393,-0.796,0.46,-0.393,-0.796,0.46,-0.393,0.46,-0.796,-0.393 +,0.46,-0.796,-0.393,-0.46,-0.796,-0.393,0,-0.92,-0.393,-0.46,-0.796,-0.393,0.796,0.46,-0.393,0.796,0.46,-0.393,-0.46,0.796,-0.393,-0.46,0.796,-0.393,0,-0.92,-0.393,-0.796,-0.46,-0.393,0.92,0,-0.393,0.92,0,-0.393,0,0.92,-0.393,0.498,0.863,0.08,0.865,0.5,0.04,0.863,0.498,0.08,0.866,0.5,0 +,0,0.997,0.08,-0.5,0.865,0.04,0,0.999,0.04,0,1,0,0.498,-0.863,0.08,0.865,-0.5,0.04,0.5,-0.865,0.04,0.5,-0.866,0,-0.863,-0.498,0.08,-0.5,-0.865,0.04,-0.865,-0.5,0.04,-0.5,-0.866,0,-0.866,-0.5,0,0.5,0.865,0.04,0.5,0.866,0,-0.498,0.863,0.08,-0.865,0.5,0.04 +,-0.866,0.5,0,-0.5,0.866,0,0.997,0,0.08,0.863,-0.498,0.08,1,0,0,0.866,-0.5,0,0,-0.997,0.08,-0.498,-0.863,0.08,0,-1,0,-0.863,0.498,0.08,-0.999,0,0.04,-1,0,-0.024,0.999,0,0.04,0.997,0,0.08,1,0,0,0,-0.999,0.04,-0.999,0,0.04 +,-0.997,0,0.08,-1,0,0,0.929,-0.002,-0.369,1,0,-0.004,0.999,0,0.049,1,0,-0.004,0.993,-0.002,-0.12,0.776,0,-0.631,0.123,0.045,0.991,0.123,0.045,0.991,0.99,-0.01,0.14,0.265,-0.964,0,0.097,-0.995,0,0.692,0.638,0.338,0.999,0.002,0.053,0.67,-0.739,-0.071,0.999,0,0.051 +,0.005,-1,-0.005,0.005,-1,-0.003,-0.003,1,0.007,0.001,1,0.004,0.001,-0.445,0.896,0,-0.44,0.898,0,1,0.021,0.5,0.866,0.021,0.5,0.866,0.021,-0.618,-0.357,0.701,-0.713,0,0.701,-0.618,-0.357,0.701,0.866,-0.5,0.021,0.5,-0.866,0.021,0.866,-0.5,0.021,0,-0.713,0.701,0.357,-0.618,0.701 +,0.357,-0.618,0.701,0.713,0,0.701,0.618,0.357,0.701,0.618,0.357,0.701,-0.618,0.357,0.701,-0.713,0,0.701,0,-0.713,0.701,-0.357,-0.618,0.701,0,-0.713,0.701,0.618,-0.357,0.701,0.713,0,0.701,-0.357,0.618,0.701,-0.618,0.357,0.701,0.357,0.618,0.701,0,0.713,0.701,0,0.713,0.701,-0.357,-0.618,0.701 +,0.618,-0.357,0.701,-0.357,0.618,0.701,0.357,0.618,0.701,0,0,1,0.178,0.103,0.979,0.206,0,0.979,0.463,0.267,-0.845,0.535,0,-0.845,0.535,0,-0.845,-0.5,0.866,0.021,-0.5,0.866,0.021,0.866,0.5,0.021,-0.866,-0.5,0.021,-1,0,0.021,-0.866,-0.5,0.021,0.5,-0.866,0.021,0,-1,0.021 +,0.866,0.5,0.021,1,0,0.021,-0.866,0.5,0.021,-0.866,0.5,0.021,0,-1,0.021,-0.5,-0.866,0.021,0,-1,0.021,-0.5,-0.866,0.021,-0.463,0.267,-0.845,-0.535,0,-0.845,-0.463,0.267,-0.845,0,-0.535,-0.845,-0.267,-0.463,-0.845,-0.267,-0.463,-0.845,0.463,-0.267,-0.845,0.463,-0.267,-0.845,-0.267,0.463,-0.845 +,-0.267,0.463,-0.845,0.267,0.463,-0.845,0,0.535,-0.845,0.267,0.463,-0.845,-0.463,-0.267,-0.845,-0.463,-0.267,-0.845,0.267,-0.463,-0.845,0.267,-0.463,-0.845,0,0.535,-0.845,0.463,0.267,-0.845,-0.535,0,-0.845,0,-0.535,-0.845,0,-0.535,-0.845,0,0,-1,-0.165,0.095,-0.982,-0.191,0,-0.982,0,0,-1 +,0,0,-1,0,0,-1,0.943,0.328,0.048,0.942,0.336,-0.004,0.13,0.916,0.378,0.997,0,0.08,0.973,0,0.229,-0.997,0,0.08,0.771,0.36,0.526,0.373,0.401,0.837,0.789,0.607,-0.097,0.774,0.633,-0.003,0.777,0.547,-0.311,0.761,0.405,-0.507,0.702,0.375,-0.605,0.933,0.326,0.153,0.943,0.315,-0.108 +,0.894,0.282,-0.347,0.122,0.063,0.99,0.373,0.401,0.837,0.771,0.36,0.526,0.809,0.201,-0.552,0.113,0.421,0.9,0,0.419,0.908,0.373,0.401,0.837,0.094,0.729,0.678,0.416,0.041,0.908,0.862,-0.507,0.017,0.999,0,0.052,0.123,0.045,0.991,0.777,0,-0.63,0.844,0.024,0.535,0.165,-0.095,-0.982,0.191,0,-0.982 +,0.095,0.165,-0.982,0,0.191,-0.982,-0.165,-0.095,-0.982,0,-0.191,-0.982,0.095,-0.165,-0.982,-0.095,0.165,-0.982,0.165,0.095,-0.982,-0.095,-0.165,-0.982,0.178,-0.103,0.979,-0.103,0.178,0.979,0,0.206,0.979,-0.178,-0.103,0.979,-0.206,0,0.979,0.103,0.178,0.979,-0.103,-0.178,0.979,0,-0.206,0.979,0.103,-0.178,0.979 +,-0.178,0.103,0.979,0,1,0,0,1,0,0,1,0,0,1,0,-0.999,0,0.04,1,0,0,-1,0,0,0.75,0.21,-0.628,0.809,0.201,-0.552,0.894,0.282,-0.347,0.894,0.282,-0.347,0.943,0.315,-0.108,0.942,0.336,-0.004,0.943,0.328,0.048,0.943,0.315,-0.108,0.942,0.336,-0.004 +,0.933,0.326,0.153,0.943,0.328,0.048,0.933,0.326,0.153,-0.901,-0.432,-0.024,-0.877,0.478,-0.047,-0.984,0,0.177,-0.984,0,0.177,-0.984,0,0.177,0,0,-1,0,0,-1,0,0,-1,0,0.947,-0.321,0.175,-0.026,-0.984,-0.113,0.421,0.9,-0.856,-0.497,-0.143,0,-0.847,-0.531,-0.264,0.011,0.964 +,-0.282,-0.959,0,0,1,0,0.998,0,-0.059,1,0,-0.024,-0.998,0,-0.059,-1,0,-0.024,0,-1,0,-0.227,-0.825,-0.517,0,0,1,-0.997,0,-0.071,-0.998,0,-0.059,0.973,0,0.229,-0.923,0,0.384,-0.973,0,0.229,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0.465,-0.806,0.365,-0.806,0.465,0.365,0.931,0,0.365,0.931,0,0.365,-0.931,0,0.365 +,-0.931,0,0.365,-0.403,0,-0.915,0,0.997,-0.071,0,-0.997,-0.071,-0.997,0,-0.071,0.997,0,-0.071,0.998,0,-0.059,-0.403,0,-0.915,-0.403,0,-0.915,-0.202,0.349,-0.915,-0.202,-0.349,-0.915,0.403,0,-0.915,0.403,0,-0.915,0.92,0,-0.393,0.92,0,-0.393,0.46,-0.796,-0.393,-0.92,0,-0.393 +,-0.92,0,-0.393,-0.999,0,0.04,-1,0,-0.024,1,0,-0.024,0.999,0,0.04,0,-1,0,-0.003,-1,0.001,-0.005,-1,-0.003,0,1,0.004,-0.001,1,0.004,0,1,0,0,-0.473,0.881,0,-0.713,0.701,-0.713,0,0.701,0,-0.713,0.701,0,-0.713,0.701,-0.357,0.618,0.701 +,0,-1,0.021,0,-0.535,-0.845,-0.463,-0.267,-0.845,-0.267,0.463,-0.845,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.997,0,0.08,-0.997,0,0.08,-0.373,0.401,0.837,-0.771,0.36,0.526 +,-0.373,0.401,0.837,-0.113,0.421,0.9,1,0,0,-1,0,0,-0.999,0,0.04,-0.75,0.21,-0.628,-0.809,0.201,-0.552,-0.894,0.282,-0.347,-0.943,0.328,0.048,-0.943,0.328,0.048,-0.942,0.336,-0.004,-0.943,0.315,-0.108,-0.933,0.326,0.153,-0.943,0.328,0.048,0.901,-0.432,-0.024,0.947,0.298,0.116,0.947,0.315,0.064 +,0.984,0,0.177,0.984,0,0.177,-0.897,0.281,-0.342,0,0,-1,0,0,-1,0,0,-1,0,-0.955,-0.296,0.265,-0.964,0,-0.175,-0.026,-0.984,0.578,0.816,0,0.265,-0.964,0,0.273,0.044,0.961,0.282,-0.959,0,-1,0,-0.024,-0.998,0,-0.059,1,0,-0.024,0.998,0,-0.059 +,0.227,-0.825,-0.517,0,0,1,0.998,0,-0.059,0.997,0,-0.071,0.923,0,0.384,-0.973,0,0.229,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,0.931,0,0.365,-0.931,0,0.365,-0.931,0,0.365,0.931,0,0.365,-0.998,0,-0.059,-0.997,0,-0.071,-0.403,0,-0.915,0.403,0,-0.915,0.403,0,-0.915,0.92,0,-0.393,-0.92,0,-0.393,-0.92,0,-0.393,0.999,0,0.04,1,0,-0.024,-0.997,0,0.08,-1,0,0,-1,0,-0.024 +,-0.999,0,0.04,0,-1,0,0.003,-1,0.001,0,1,0,-0.003,1,0.005,0,1,0.021,0,-0.713,0.701,0,-0.713,0.701,-1,0,0.021,0,-1,0.021,1,0,0.021,0,-0.535,-0.845,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.997,0,0.08,-0.973,0,0.229,-0.997,0,0.08,0.113,0.421,0.9,0.113,0.421,0.9,0.373,0.401,0.837,0.771,0.36,0.526,0.771,0.36,0.526,0.113,0.421,0.9,0,1,0,1,0,0,-1,0,0,0.999,0,0.04 +,0.75,0.21,-0.628,0.809,0.201,-0.552,0.809,0.201,-0.552,0.894,0.282,-0.347,0.943,0.328,0.048,0.943,0.328,0.048,0.943,0.315,-0.108,0.933,0.326,0.153,0.943,0.328,0.048] +,"uvs":[0.389,0.99,0.423,0.965,0.432,0.984,0.016,0.571,0.088,0.557,0.084,0.593,0.653,0.468,0.636,0.438,0.653,0.437,0.014,0.7,0.013,0.695,0.086,0.712,0.857,0.035,0.886,0.014,0.888,0.033,0.01,0.643,0.083,0.674,0.084,0.593,0.178,0.582,0.174,0.606,0.083,0.674,0.179,0.688,0.086,0.712,0.101,0.75,0.017,0.742 +,0.175,0.662,0.832,0.014,0.843,0.035,0.821,0.033,0.73,0.733,0.767,0.805,0.73,0.823,0.332,0.541,0.402,0.588,0.323,0.57,0.578,0.905,0.561,0.905,0.56,0.844,0.021,0.526,0.104,0.518,0.088,0.557,0.104,0.518,0.088,0.557,0.637,0.385,0.654,0.385,0.36,0.492,0.423,0.552,0.346,0.516,0.839,0.054,0.814,0.055 +,0.593,0.509,0.593,0.492,0.608,0.508,0.756,0.011,0.739,0.033,0.739,0.011,0.847,0.355,0.827,0.381,0.827,0.355,0.413,0.566,0.854,0.054,0.593,0.529,0.615,0.599,0.594,0.6,0.826,0.119,0.801,0.124,0.324,0.622,0.657,0.059,0.64,0.033,0.657,0.033,0.559,0.511,0.101,0.75,0.189,0.708,0.84,0.429,0.831,0.425 +,0.846,0.395,0.854,0.018,0.559,0.492,0.614,0.529,0.894,0.116,0.846,0.117,0.739,0.059,0.708,0.033,0.736,0.434,0.705,0.394,0.736,0.386,0.736,0.465,0.705,0.436,0.708,0.01,0.687,0.033,0.687,0.01,0.738,0.197,0.707,0.134,0.738,0.133,0.524,0.664,0.453,0.633,0.526,0.628,0.89,0.051,0.738,0.493,0.756,0.52 +,0.739,0.521,0.801,0.331,0.804,0.367,0.826,0.199,0.826,0.331,0.593,0.814,0.614,0.843,0.594,0.843,0.611,0.66,0.614,0.813,0.847,0.197,0.847,0.331,0.417,0.944,0.379,0.969,0.369,0.945,0.345,0.809,0.41,0.875,0.35,0.872,0.656,0.198,0.639,0.134,0.656,0.134,0.654,0.333,0.639,0.198,0.591,0.661,0.56,0.6 +,0.594,0.6,0.557,0.66,0.591,0.661,0.538,0.801,0.461,0.816,0.464,0.79,0.526,0.628,0.464,0.502,0.538,0.492,0.528,0.699,0.464,0.79,0.455,0.693,0.021,0.361,0.063,0.276,0.01,0.279,0.157,0.339,0.203,0.275,0.157,0.274,0.335,0.36,0.376,0.277,0.323,0.28,0.553,0.351,0.617,0.284,0.564,0.28,0.115,0.341 +,0.111,0.274,0.242,0.349,0.304,0.282,0.251,0.278,0.51,0.343,0.515,0.276,0.427,0.341,0.469,0.275,0.424,0.275,0.071,0.348,0.199,0.342,0.468,0.34,0.383,0.348,0.559,0.529,0.64,0.059,0.411,0.664,0.328,0.675,0.708,0.059,0.894,0.356,0.801,0.196,0.611,0.66,0.098,0.065,0.053,0.068,0.088,0.087,0.234,0.38 +,0.29,0.363,0.4,0.088,0.431,0.125,0.435,0.097,0.47,0.128,0.505,0.098,0.47,0.1,0.197,0.125,0.23,0.088,0.193,0.097,0.078,0.116,0.123,0.097,0.088,0.087,0.51,0.126,0.542,0.088,0.286,0.101,0.269,0.068,0.157,0.127,0.158,0.1,0.552,0.118,0.582,0.068,0.364,0.069,0.39,0.117,0.034,0.099,0.053,0.068 +,0.158,0.031,0.128,0.073,0.159,0.075,0.193,0.097,0.159,0.075,0.158,0.1,0.41,0.064,0.364,0.069,0.4,0.088,0.56,0.046,0.542,0.088,0.582,0.068,0.128,0.073,0.123,0.097,0.269,0.068,0.22,0.062,0.23,0.088,0.532,0.063,0.505,0.098,0.47,0.076,0.435,0.097,0.47,0.1,0.236,0.792,0.283,0.745,0.218,0.728 +,0.222,0.01,0.22,0.062,0.248,0.047,0.532,0.063,0.491,0.029,0.501,0.073,0.469,0.032,0.439,0.074,0.47,0.076,0.136,0.03,0.098,0.065,0.202,0.021,0.189,0.072,0.427,0.024,0.41,0.064,0.094,0.014,0.071,0.05,0.18,0.028,0.383,0.05,0.56,0.046,0.513,0.022,0.347,0.397,0.406,0.418,0.391,0.378,0.506,0.373 +,0.43,0.371,0.079,0.38,0.195,0.371,0.391,0.378,0.033,0.399,0.544,0.383,0.603,0.366,0.12,0.371,0.401,0.468,0.406,0.418,0.377,0.433,0.544,0.383,0.555,0.438,0.587,0.404,0.126,0.411,0.158,0.368,0.12,0.371,0.218,0.417,0.275,0.399,0.234,0.38,0.506,0.373,0.527,0.422,0.43,0.371,0.467,0.409,0.468,0.369 +,0.095,0.421,0.079,0.38,0.195,0.371,0.498,0.411,0.033,0.399,0.157,0.408,0.527,0.422,0.529,0.472,0.555,0.438,0.135,0.454,0.157,0.408,0.126,0.411,0.203,0.457,0.245,0.432,0.218,0.417,0.498,0.411,0.509,0.46,0.436,0.409,0.465,0.45,0.467,0.409,0.113,0.461,0.095,0.421,0.181,0.451,0.188,0.41,0.488,0.453 +,0.421,0.458,0.066,0.438,0.158,0.45,0.377,0.187,0.427,0.164,0.383,0.158,0.376,0.268,0.424,0.267,0.47,0.166,0.516,0.192,0.513,0.165,0.469,0.267,0.515,0.268,0.201,0.164,0.251,0.188,0.246,0.159,0.203,0.267,0.251,0.269,0.071,0.157,0.113,0.19,0.115,0.163,0.111,0.266,0.063,0.267,0.425,0.191,0.559,0.159 +,0.564,0.271,0.296,0.149,0.304,0.273,0.158,0.165,0.157,0.266,0.617,0.184,0.61,0.15,0.617,0.284,0.617,0.274,0.325,0.18,0.334,0.147,0.324,0.27,0.158,0.192,0.013,0.179,0.022,0.145,0.01,0.269,0.687,0.059,0.705,0.334,0.686,0.197,0.706,0.197,0.686,0.134,0.657,0.01,0.654,0.496,0.685,0.523,0.655,0.524 +,0.684,0.384,0.684,0.333,0.615,0.89,0.595,0.905,0.811,0.406,0.895,0.332,0.736,0.334,0.637,0.333,0.56,0.814,0.273,0.605,0.215,0.661,0.212,0.633,0.215,0.53,0.234,0.505,0.285,0.586,0.787,0.825,0.81,0.733,0.81,0.825,0.658,0.629,0.778,0.643,0.778,0.63,0.642,0.581,0.656,0.592,0.655,0.579,0.653,0.689 +,0.778,0.684,0.655,0.677,0.641,0.686,0.649,0.702,0.653,0.689,0.645,0.652,0.657,0.664,0.657,0.653,0.643,0.593,0.657,0.604,0.649,0.553,0.639,0.57,0.652,0.566,0.642,0.674,0.655,0.677,0.644,0.605,0.657,0.616,0.644,0.628,0.658,0.641,0.658,0.629,0.644,0.617,0.077,0.808,0.072,0.824,0.081,0.824,0.794,0.67 +,0.777,0.656,0.778,0.67,0.778,0.616,0.657,0.616,0.657,0.653,0.658,0.641,0.656,0.592,0.779,0.575,0.655,0.579,0.649,0.702,0.78,0.698,0.657,0.664,0.777,0.656,0.657,0.604,0.778,0.588,0.652,0.566,0.784,0.544,0.649,0.553,0.778,0.67,0.778,0.602,0.78,0.56,0.778,0.602,0.796,0.589,0.778,0.588,0.796,0.564 +,0.784,0.544,0.78,0.56,0.778,0.684,0.778,0.616,0.797,0.603,0.778,0.643,0.796,0.63,0.778,0.63,0.795,0.576,0.779,0.575,0.796,0.694,0.78,0.698,0.795,0.616,0.796,0.657,0.799,0.705,0.783,0.713,0.026,0.808,0.01,0.804,0.01,0.813,0.636,0.78,0.663,0.807,0.71,0.76,0.753,0.334,0.895,0.197,0.892,0.399 +,0.869,0.397,0.022,0.145,0.334,0.147,0.346,0.1,0.599,0.102,0.118,0.125,0.239,0.117,0.795,0.432,0.781,0.128,0.781,0.193,0.817,0.455,0.844,0.466,0.795,0.055,0.805,0.031,0.815,0.011,0.753,0.381,0.755,0.133,0.756,0.059,0.706,0.495,0.708,0.523,0.754,0.196,0.753,0.464,0.753,0.433,0.753,0.433,0.756,0.033 +,0.705,0.466,0.88,0.446,0.872,0.477,0.754,0.492,0.684,0.495,0.408,0.635,0.855,0.436,0.636,0.469,0.637,0.497,0.638,0.525,0.64,0.01,0.683,0.436,0.683,0.467,0.041,0.813,0.041,0.804,0.021,0.824,0.03,0.824,0.014,0.797,0.03,0.793,0.037,0.797,0.014,0.82,0.037,0.82,0.021,0.793,0.065,0.82,0.093,0.813 +,0.093,0.804,0.072,0.793,0.081,0.793,0.088,0.82,0.065,0.797,0.061,0.804,0.061,0.813,0.088,0.797,0.524,0.664,0.454,0.685,0.451,0.66,0.527,0.691,0.01,0.269,0.065,0.186,0.013,0.179,0.203,0.191,0.324,0.27,0.564,0.189,0.304,0.183,0.47,0.193,0.811,0.01,0.8,0.031,0.8,0.031,0.79,0.055,0.79,0.055 +,0.776,0.129,0.776,0.332,0.776,0.129,0.775,0.193,0.781,0.38,0.776,0.332,0.781,0.38,0.423,0.965,0.389,0.99,0.432,0.984,0.088,0.557,0.016,0.571,0.084,0.593,0.653,0.468,0.636,0.438,0.636,0.469,0.086,0.712,0.014,0.7,0.015,0.718,0.857,0.035,0.854,0.018,0.011,0.621,0.01,0.643,0.084,0.593,0.178,0.582 +,0.088,0.557,0.179,0.688,0.083,0.674,0.086,0.712,0.017,0.742,0.027,0.773,0.175,0.662,0.832,0.014,0.843,0.035,0.767,0.805,0.332,0.541,0.402,0.588,0.413,0.566,0.578,0.905,0.594,0.843,0.021,0.526,0.032,0.493,0.637,0.385,0.653,0.437,0.654,0.385,0.423,0.552,0.432,0.538,0.839,0.054,0.821,0.033,0.814,0.055 +,0.593,0.509,0.608,0.508,0.593,0.492,0.739,0.033,0.756,0.011,0.739,0.011,0.847,0.355,0.827,0.381,0.846,0.395,0.346,0.516,0.854,0.054,0.594,0.6,0.614,0.529,0.593,0.529,0.826,0.119,0.801,0.124,0.324,0.622,0.323,0.57,0.64,0.033,0.657,0.059,0.657,0.033,0.84,0.429,0.831,0.425,0.846,0.117,0.708,0.033 +,0.739,0.059,0.705,0.394,0.736,0.434,0.736,0.386,0.736,0.465,0.705,0.436,0.705,0.466,0.687,0.033,0.708,0.01,0.687,0.01,0.707,0.134,0.738,0.197,0.738,0.133,0.453,0.633,0.524,0.664,0.526,0.628,0.738,0.493,0.754,0.492,0.827,0.355,0.801,0.331,0.804,0.367,0.826,0.199,0.801,0.196,0.614,0.843,0.593,0.814 +,0.611,0.66,0.591,0.661,0.847,0.197,0.847,0.331,0.379,0.969,0.417,0.944,0.369,0.945,0.345,0.809,0.41,0.875,0.431,0.819,0.639,0.134,0.656,0.198,0.656,0.134,0.639,0.198,0.654,0.333,0.591,0.661,0.594,0.6,0.538,0.801,0.461,0.816,0.532,0.837,0.464,0.502,0.526,0.628,0.538,0.492,0.528,0.699,0.464,0.79 +,0.538,0.801,0.063,0.276,0.021,0.361,0.01,0.279,0.203,0.275,0.157,0.339,0.157,0.274,0.376,0.277,0.335,0.36,0.323,0.28,0.617,0.284,0.553,0.351,0.564,0.28,0.111,0.274,0.115,0.341,0.304,0.282,0.242,0.349,0.251,0.278,0.51,0.343,0.515,0.276,0.424,0.275,0.468,0.34,0.427,0.341,0.071,0.348,0.199,0.342 +,0.469,0.275,0.383,0.348,0.64,0.059,0.411,0.664,0.328,0.675,0.708,0.059,0.611,0.66,0.053,0.068,0.098,0.065,0.088,0.087,0.29,0.363,0.234,0.38,0.4,0.088,0.431,0.125,0.39,0.117,0.505,0.098,0.47,0.128,0.47,0.1,0.23,0.088,0.197,0.125,0.193,0.097,0.123,0.097,0.078,0.116,0.088,0.087,0.435,0.097 +,0.542,0.088,0.51,0.126,0.286,0.101,0.239,0.117,0.157,0.127,0.118,0.125,0.582,0.068,0.552,0.118,0.364,0.069,0.346,0.1,0.158,0.1,0.034,0.099,0.053,0.068,0.128,0.073,0.158,0.031,0.159,0.075,0.193,0.097,0.159,0.075,0.189,0.072,0.364,0.069,0.41,0.064,0.4,0.088,0.542,0.088,0.56,0.046,0.582,0.068 +,0.158,0.1,0.128,0.073,0.269,0.068,0.22,0.062,0.248,0.047,0.505,0.098,0.532,0.063,0.435,0.097,0.47,0.076,0.47,0.1,0.123,0.097,0.23,0.088,0.501,0.073,0.439,0.074,0.283,0.745,0.273,0.782,0.208,0.765,0.22,0.062,0.222,0.01,0.248,0.047,0.532,0.063,0.491,0.029,0.513,0.022,0.47,0.076,0.448,0.031 +,0.469,0.032,0.098,0.065,0.136,0.03,0.18,0.028,0.202,0.021,0.501,0.073,0.41,0.064,0.439,0.074,0.071,0.05,0.114,0.024,0.189,0.072,0.383,0.05,0.427,0.024,0.56,0.046,0.533,0.01,0.347,0.397,0.406,0.418,0.377,0.433,0.506,0.373,0.43,0.371,0.079,0.38,0.195,0.371,0.468,0.369,0.391,0.378,0.033,0.399 +,0.158,0.368,0.347,0.397,0.603,0.366,0.544,0.383,0.12,0.371,0.406,0.418,0.401,0.468,0.377,0.433,0.544,0.383,0.555,0.438,0.527,0.422,0.158,0.368,0.126,0.411,0.12,0.371,0.275,0.399,0.218,0.417,0.234,0.38,0.506,0.373,0.498,0.411,0.43,0.371,0.467,0.409,0.436,0.409,0.095,0.421,0.079,0.38,0.195,0.371 +,0.188,0.41,0.468,0.369,0.391,0.378,0.033,0.399,0.066,0.438,0.157,0.408,0.527,0.422,0.529,0.472,0.509,0.46,0.157,0.408,0.135,0.454,0.126,0.411,0.245,0.432,0.203,0.457,0.218,0.417,0.498,0.411,0.488,0.453,0.436,0.409,0.465,0.45,0.443,0.451,0.113,0.461,0.095,0.421,0.181,0.451,0.188,0.41,0.467,0.409 +,0.421,0.458,0.066,0.438,0.092,0.473,0.158,0.45,0.427,0.164,0.377,0.187,0.383,0.158,0.376,0.268,0.47,0.166,0.516,0.192,0.47,0.193,0.469,0.267,0.201,0.164,0.251,0.188,0.203,0.191,0.203,0.267,0.071,0.157,0.113,0.19,0.065,0.186,0.111,0.266,0.063,0.267,0.425,0.191,0.424,0.267,0.513,0.165,0.564,0.189 +,0.564,0.271,0.515,0.268,0.296,0.149,0.246,0.159,0.304,0.273,0.251,0.269,0.158,0.165,0.115,0.163,0.157,0.266,0.559,0.159,0.617,0.184,0.617,0.284,0.325,0.18,0.334,0.147,0.324,0.27,0.158,0.192,0.013,0.179,0.022,0.145,0.01,0.269,0.687,0.059,0.686,0.197,0.705,0.334,0.706,0.197,0.686,0.134,0.657,0.01 +,0.654,0.496,0.684,0.495,0.684,0.384,0.615,0.89,0.595,0.905,0.811,0.406,0.736,0.334,0.35,0.872,0.637,0.333,0.215,0.661,0.234,0.685,0.215,0.53,0.212,0.558,0.787,0.825,0.81,0.825,0.658,0.629,0.778,0.643,0.658,0.641,0.655,0.579,0.643,0.593,0.642,0.581,0.778,0.684,0.653,0.689,0.655,0.677,0.649,0.702 +,0.641,0.686,0.653,0.689,0.657,0.664,0.645,0.652,0.657,0.653,0.657,0.604,0.656,0.592,0.649,0.553,0.639,0.57,0.636,0.559,0.642,0.674,0.645,0.663,0.657,0.616,0.644,0.605,0.658,0.641,0.644,0.628,0.658,0.629,0.652,0.566,0.655,0.677,0.644,0.617,0.645,0.64,0.077,0.808,0.081,0.824,0.072,0.824,0.777,0.656 +,0.794,0.67,0.778,0.67,0.778,0.616,0.657,0.616,0.657,0.653,0.779,0.575,0.656,0.592,0.655,0.579,0.78,0.698,0.649,0.702,0.777,0.656,0.657,0.664,0.778,0.602,0.657,0.604,0.784,0.544,0.652,0.566,0.649,0.553,0.78,0.56,0.778,0.602,0.796,0.589,0.797,0.603,0.784,0.544,0.796,0.564,0.78,0.56,0.778,0.684 +,0.795,0.682,0.778,0.616,0.795,0.616,0.778,0.643,0.796,0.63,0.795,0.643,0.795,0.576,0.779,0.575,0.796,0.694,0.78,0.698,0.778,0.63,0.796,0.657,0.778,0.588,0.799,0.705,0.783,0.713,0.026,0.808,0.01,0.813,0.01,0.804,0.701,0.797,0.636,0.78,0.683,0.733,0.753,0.334,0.754,0.196,0.869,0.397,0.334,0.147 +,0.346,0.1,0.61,0.15,0.795,0.432,0.817,0.455,0.781,0.128,0.781,0.193,0.795,0.055,0.805,0.031,0.815,0.011,0.753,0.381,0.755,0.133,0.756,0.059,0.706,0.495,0.753,0.464,0.753,0.433,0.756,0.033,0.844,0.466,0.872,0.477,0.753,0.464,0.855,0.436,0.683,0.467,0.408,0.635,0.684,0.333,0.637,0.497,0.64,0.01 +,0.683,0.436,0.041,0.804,0.041,0.813,0.03,0.824,0.021,0.824,0.014,0.797,0.03,0.793,0.037,0.797,0.014,0.82,0.037,0.82,0.021,0.793,0.065,0.82,0.093,0.804,0.093,0.813,0.072,0.793,0.081,0.793,0.088,0.82,0.065,0.797,0.061,0.804,0.061,0.813,0.088,0.797,0.524,0.664,0.454,0.685,0.527,0.691,0.455,0.693 +,0.013,0.179,0.324,0.27,0.617,0.274,0.811,0.01,0.8,0.031,0.79,0.055,0.79,0.055,0.776,0.129,0.775,0.193,0.776,0.332,0.776,0.129,0.775,0.193,0.781,0.38,0.776,0.332,0.781,0.38,0.021,0.526,0.015,0.718,0.012,0.676,0.011,0.621,0.014,0.589,0.753,0.823,0.752,0.733,0.767,0.751,0.189,0.561,0.451,0.66 +,0.754,0.492,0.431,0.819,0.557,0.66,0.532,0.837,0.453,0.633,0.538,0.801,0.603,0.366,0.617,0.284,0.29,0.363,0.304,0.282,0.56,0.6,0.615,0.599,0.071,0.05,0.275,0.399,0.29,0.363,0.599,0.102,0.364,0.069,0.346,0.1,0.189,0.072,0.383,0.05,0.269,0.068,0.248,0.047,0.501,0.073,0.439,0.074,0.208,0.745 +,0.208,0.765,0.218,0.782,0.256,0.792,0.273,0.782,0.283,0.765,0.273,0.728,0.256,0.718,0.236,0.718,0.448,0.031,0.114,0.024,0.407,0.014,0.383,0.05,0.56,0.046,0.533,0.01,0.377,0.433,0.468,0.369,0.158,0.368,0.347,0.397,0.587,0.404,0.603,0.366,0.245,0.432,0.275,0.399,0.436,0.409,0.188,0.41,0.033,0.399 +,0.066,0.438,0.223,0.467,0.245,0.432,0.443,0.451,0.066,0.438,0.092,0.473,0.304,0.183,0.304,0.282,0.617,0.284,0.013,0.179,0.208,0.605,0.273,0.698,0.234,0.685,0.208,0.586,0.212,0.558,0.285,0.493,0.787,0.733,0.637,0.696,0.645,0.663,0.649,0.553,0.636,0.559,0.645,0.64,0.783,0.713,0.799,0.553,0.795,0.682 +,0.795,0.643,0.701,0.743,0.683,0.733,0.663,0.733,0.646,0.743,0.636,0.76,0.646,0.797,0.683,0.807,0.701,0.797,0.71,0.78,0.022,0.145,0.334,0.147,0.753,0.464,0.753,0.433,0.753,0.464,0.754,0.492,0.01,0.269,0.324,0.27,0.304,0.183,0.811,0.01,0.8,0.031,0.79,0.055,0.776,0.332,0.776,0.332,0.775,0.193 +,0.776,0.129,0.781,0.38,0.776,0.332,0.021,0.526,0.083,0.674,0.013,0.695,0.012,0.676,0.014,0.589,0.174,0.606,0.767,0.751,0.753,0.823,0.752,0.733,0.088,0.557,0.615,0.599,0.451,0.66,0.826,0.331,0.614,0.813,0.464,0.79,0.453,0.633,0.617,0.284,0.603,0.366,0.304,0.282,0.29,0.363,0.615,0.599,0.071,0.05 +,0.29,0.363,0.275,0.399,0.269,0.068,0.599,0.102,0.383,0.05,0.269,0.068,0.208,0.745,0.218,0.728,0.236,0.718,0.256,0.718,0.273,0.728,0.283,0.765,0.256,0.792,0.236,0.792,0.218,0.782,0.094,0.014,0.383,0.05,0.407,0.014,0.56,0.046,0.603,0.366,0.587,0.404,0.587,0.404,0.275,0.399,0.245,0.432,0.555,0.438 +,0.245,0.432,0.223,0.467,0.304,0.183,0.304,0.282,0.61,0.15,0.617,0.274,0.617,0.284,0.013,0.179,0.212,0.633,0.273,0.698,0.285,0.493,0.234,0.505,0.778,0.63,0.637,0.696,0.649,0.553,0.778,0.588,0.783,0.713,0.778,0.67,0.799,0.553,0.701,0.743,0.71,0.76,0.71,0.78,0.683,0.807,0.663,0.807,0.646,0.797 +,0.636,0.76,0.646,0.743,0.663,0.733,0.334,0.147,0.599,0.102,0.61,0.15,0.844,0.466,0.844,0.466,0.753,0.464,0.753,0.433,0.753,0.433,0.844,0.466,0.451,0.66,0.324,0.27,0.617,0.274,0.304,0.183,0.811,0.01,0.8,0.031,0.8,0.031,0.79,0.055,0.776,0.332,0.776,0.332,0.776,0.129,0.781,0.38,0.776,0.332 +] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,5,16,17,18,19,20,21,22,23,24,11,17,25,20,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,18,42,8,43 +,44,45,46,47,28,48,49,50,51,52,53,54,55,56,57,58,47,59,32,60,27,12,61,62,63,49,64,65,33,66,34,67,68,69,61,70,50,71,21,72,73,74,75,76,12,27,50,77,51,61 +,52,78,60,79,80,81,82,54,83,84,85,86,87,83,88,89,90,91,92,93,94,95,96,12,97,60,98,99,100,101,58,102,101,103,104,105,106,107,105,108,109,110,64,80,111,103,110,112,113,114 +,115,116,117,118,119,120,121,122,118,123,124,125,105,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,142,150,151,152,153,154,148,155,156,157,158,159,150 +,138,160,153,141,161,155,157,162,158,144,63,163,61,120,164,67,165,115,166,80,48,60,93,167,81,111,168,56,65,103,169,125,170,123,171,172,173,174,175,151,176,177,178,179,180,181,182,183,184,185 +,186,187,177,181,178,188,189,180,183,190,191,186,192,193,194,195,189,196,197,176,193,182,184,198,187,199,200,201,202,203,204,205,206,207,208,209,210,211,205,212,213,214,215,216,217,218,210,219,220,221 +,213,171,173,215,203,216,218,219,221,220,206,208,222,223,224,225,226,227,228,229,230,231,232,233,234,235,201,236,237,226,230,231,233,232,238,239,235,240,241,242,202,237,238,243,239,244,245,228,246,247 +,248,249,146,154,250,161,156,251,149,159,252,151,160,161,249,154,253,156,162,254,159,137,140,252,160,143,253,162,255,256,146,257,140,149,258,259,260,261,262,263,264,265,266,267,268,269,270,271,261,272 +,273,274,275,266,276,277,267,269,274,278,270,247,272,248,279,275,276,280,277,265,281,282,283,284,285,286,287,288,289,290,291,281,292,293,294,295,286,296,297,289,298,294,299,290,300,292,259,301,295,296 +,302,298,285,303,304,305,306,158,307,308,309,310,311,155,312,313,314,315,316,153,317,318,319,320,138,321,322,323,308,304,158,311,307,309,324,310,155,325,312,314,326,315,153,327,317,319,328,320,150,329 +,321,324,330,331,325,332,333,334,305,335,145,306,336,337,313,328,142,316,329,338,318,339,139,322,340,92,341,167,342,343,344,344,345,92,90,69,346,347,348,349,167,89,82,342,350,351,107,352,353,102 +,57,354,110,355,111,85,342,356,111,58,104,116,114,117,44,357,121,105,37,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,372,385,386,387 +,381,388,389,390,391,384,392,393,394,387,371,373,388,379,389,395,394,391,393,380,382,396,397,398,399,400,401,368,402,403,404,369,405,406,407,408,409,410,374,411,412,404,413,414,406,415,416,417,411,375 +,418,403,419,413,408,420,415,421,422,423,424,425,426,427,399,401,428,429,421,430,431,432,433,426,434,435,427,436,432,437,428,438,430,400,422,434,423,439,436,440,441,442,443,444,445,446,91,447,356,110 +,79,448,168,449,450,451,185,198,328,182,192,452,197,453,194,331,454,320,192,455,315,190,456,310,194,188,304,179,177,318,455,185,313,456,182,179,310,188,197,304,177,74,457,354,458,169,459,460,73,461 +,462,65,458,75,354,57,463,49,462,464,28,463,344,356,342,465,356,447,466,81,467,468,100,469,470,93,466,471,83,472,473,85,465,467,54,474,55,82,88,475,98,468,461,476,477,86,478,98,476,450 +,449,6,479,347,480,166,66,73,450,481,482,347,483,350,121,351,483,349,484,346,68,485,345,67,341,351,118,343,343,120,345,341,69,89,486,44,350,487,8,486,441,488,489,441,490,491,492,442,441,493 +,441,494,490,441,495,441,491,496,493,497,441,488,441,496,497,492,441,494,441,489,495,441,443,498,397,396,396,499,500,501,396,502,396,398,503,504,505,396,505,506,396,396,500,507,506,498,396,502,396,507 +,499,396,503,501,504,396,508,509,510,511,136,509,512,513,514,329,515,337,516,303,334,517,333,330,321,337,319,317,518,314,309,325,517,307,519,323,513,321,319,515,317,314,519,312,309,306,323,303,520,463 +,521,522,462,523,524,458,525,526,459,169,527,459,528,529,354,457,530,102,531,532,533,534,535,536,537,538,539,540,541,542,543,544,13,545,537,546,547,548,549,550,551,552,553,23,554,555,556,548,552,557 +,558,545,559,29,31,560,561,562,37,563,564,565,39,566,549,41,550,567,568,569,45,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,562,570,558,585,544,586,587,588,589,574,590,591,561,592 +,593,594,595,70,588,575,71,551,553,596,583,597,545,558,544,77,575,577,588,576,575,79,585,598,599,600,578,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,97,544,585,616,99,617,618,619 +,620,619,621,622,623,624,564,624,625,626,589,627,598,621,628,627,629,630,631,632,633,634,635,636,637,638,639,636,124,640,641,126,624,626,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657 +,658,659,660,661,662,663,655,664,665,666,667,662,668,669,670,671,672,663,673,651,667,674,654,669,671,675,670,676,657,163,586,588,677,637,594,632,678,679,572,598,585,680,612,600,168,628,581,621,590,622 +,681,641,640,682,683,684,685,686,666,687,688,689,690,691,692,693,694,695,696,697,698,692,688,699,700,701,690,693,702,703,696,704,705,706,707,700,708,689,709,710,694,704,698,711,712,713,714,715,716,717 +,718,719,720,721,722,723,724,725,726,717,727,728,729,730,731,722,732,733,734,735,683,726,716,728,736,730,733,737,732,720,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,713,742,753,754,755 +,750,746,756,749,757,758,759,751,715,753,760,761,762,756,763,747,764,765,766,767,661,768,668,671,769,672,664,770,673,666,771,674,668,772,671,672,773,676,652,770,774,655,771,775,658,773,776,777,778,661 +,655,779,664,780,781,782,783,784,785,786,787,788,789,790,791,792,785,793,794,795,796,788,797,798,799,790,800,801,793,795,794,766,802,803,797,804,799,805,786,806,807,808,809,810,811,812,813,814,815,808 +,816,817,818,819,811,820,821,814,822,823,824,816,818,817,825,780,826,820,827,823,828,809,829,830,831,832,670,657,833,834,835,836,669,675,837,838,839,840,667,654,841,842,843,844,651,845,829,835,846,836 +,670,847,848,849,834,850,669,851,852,838,853,854,667,855,856,842,857,858,663,844,859,860,849,850,861,662,831,862,863,832,659,864,837,865,856,840,656,858,841,866,867,845,653,868,869,610,680,870,871,872 +,873,872,610,595,609,874,875,348,876,607,680,599,871,877,601,878,564,879,582,620,880,355,627,628,871,603,881,628,618,581,631,633,882,883,569,639,624,37,564,884,885,359,364,886,887,366,888,889,890,891 +,892,893,894,895,896,897,898,899,900,901,902,903,904,905,894,906,907,908,909,902,910,911,912,913,905,914,915,916,917,895,908,901,910,918,916,919,912,914,903,920,921,922,923,924,925,926,927,890,928,891 +,929,892,930,931,932,933,934,897,935,936,929,931,937,938,939,940,941,936,896,898,937,928,938,942,932,940,943,944,945,946,947,948,949,925,950,951,945,952,953,954,955,948,956,957,949,958,959,960,952,954 +,953,961,924,957,944,962,959,963,964,965,966,967,968,969,970,611,971,972,627,79,598,973,168,581,697,867,711,694,856,704,689,974,975,707,976,859,704,857,705,702,853,703,707,848,701,691,829,688,705,841 +,697,703,837,694,691,848,833,689,829,831,597,977,978,622,979,980,596,597,978,590,981,979,583,880,597,574,982,981,983,573,557,872,881,611,881,984,971,600,985,986,987,100,616,612,972,985,988,602,604,603 +,989,984,578,986,990,599,580,608,606,616,604,476,991,992,604,617,993,476,973,994,538,876,995,679,996,591,973,596,994,540,875,538,639,877,997,998,349,875,593,874,999,594,873,869,636,997,870,637,870,873 +,595,869,607,569,1000,877,995,568,538,965,1001,1002,965,1003,1004,1005,965,967,1006,1007,965,1004,1008,965,965,1009,1003,1006,965,1010,1002,1009,965,1010,965,1005,1007,1001,965,1008,966,965,1011,921,923,921,1012,1013,1014,1015 +,921,921,1016,922,1017,921,1018,1018,921,1019,921,1020,1012,1019,921,1011,1015,1020,921,1013,1016,921,1014,921,1017,1021,1022,1023,1023,1024,648,843,868,1025,839,858,865,830,1026,862,849,1027,850,865,844,842,838,854,855,849 +,851,834,835,847,846,843,844,845,839,855,840,835,851,836,846,832,830,1028,982,983,981,1029,1030,979,1031,1032,980,1033,1034,980,1035,1036,880,1037,977,620,1038,1039,0,113,1,3,1040,4,6,482,7,11,24,1041 +,1041,9,11,10,16,11,12,76,13,16,10,1042,15,1043,5,16,1042,15,3,5,1044,1043,1044,5,17,42,18,20,25,21,23,555,24,17,19,25,26,76,27,1045,31,30,29,1046,1047,1047,30,29,32,59 +,33,37,107,35,353,35,107,38,566,39,41,1048,18,8,7,43,45,571,46,28,27,48,53,474,54,56,75,57,47,46,59,60,48,27,61,78,62,49,48,64,33,480,66,67,164,68,61,163,70,71 +,22,21,50,70,77,61,50,52,60,97,79,81,167,82,83,87,84,86,475,87,88,82,89,91,344,92,94,1049,95,12,14,97,98,1050,99,101,104,58,101,169,103,105,109,106,105,127,108,110,103,64 +,111,104,103,112,1,113,115,1051,116,118,122,119,121,357,122,123,1052,124,105,358,126,128,1053,129,131,1054,132,134,1055,135,137,159,138,140,160,141,143,162,144,146,1056,1057,149,140,142,151,1058,1059,154,146 +,148,156,161,157,159,149,150,160,151,153,161,154,155,162,156,158,63,1060,163,120,119,164,165,1051,115,80,64,48,93,92,167,111,355,168,65,64,103,125,1061,170,171,1062,172,174,1063,1064,176,197,177,179 +,188,180,182,456,183,185,455,186,177,179,181,188,194,189,183,456,190,186,455,192,194,1065,195,1066,1067,197,193,192,182,198,185,187,200,234,201,203,1068,204,206,1069,207,209,217,210,205,204,212,1070,1071,215 +,217,1072,218,219,1073,220,213,212,171,215,1068,203,218,1072,219,220,1073,206,224,1074,222,1075,1076,222,222,1077,1078,1078,1079,223,223,1080,1081,1081,1082,223,1074,1075,222,222,1078,223,223,1082,224,225,236,226,228,245 +,229,231,1083,232,234,1084,235,236,242,237,230,229,231,232,1083,238,235,1084,240,242,200,202,238,1085,1086,1087,1088,245,246,1089,247,249,255,146,250,1090,161,251,257,149,252,174,151,161,1090,249,253,250,156,254 +,251,159,140,1091,252,143,1092,253,255,1093,1094,257,1091,140,258,300,259,261,271,262,264,280,265,267,1095,1096,270,278,271,272,1097,273,275,264,266,277,1098,267,274,273,278,247,1097,272,1099,1100,275,280,1098,277 +,281,291,282,284,302,285,287,1101,1102,290,299,291,292,1103,293,295,284,286,297,287,289,294,293,299,300,1103,292,1104,1105,295,302,297,298,303,323,304,306,144,158,308,519,309,311,157,155,313,515,314,316,141 +,153,318,513,319,138,150,321,323,519,308,158,157,311,309,517,324,155,148,325,314,1106,326,153,1107,327,319,337,328,150,142,329,324,517,330,325,148,1108,334,303,305,145,144,306,337,515,313,142,141,316,1109 +,513,318,139,138,322,92,345,341,342,351,343,344,343,345,90,89,69,347,479,348,167,341,89,342,84,350,107,106,352,102,58,57,110,448,355,85,84,342,111,56,58,116,112,114,44,43,357,105,107,37 +,361,1110,359,359,1111,1112,1112,360,359,364,1113,1114,1114,362,364,363,1115,364,365,1116,366,368,405,369,371,383,372,374,410,375,377,1117,378,380,1118,381,383,390,384,1119,1120,386,381,1118,388,390,395,391,392,1121 +,393,387,386,371,388,377,379,395,392,394,393,1121,380,399,438,400,368,370,402,404,412,369,406,414,407,409,1122,410,411,418,412,413,419,414,415,420,416,411,376,375,403,402,419,408,407,420,421,429,422,424 +,1123,425,427,1124,399,428,437,429,430,1125,431,433,424,426,435,1124,427,432,431,437,438,1125,430,422,433,434,439,435,436,446,1126,1127,1127,1128,446,1129,1130,444,444,1131,445,445,1132,1133,1133,1134,445,446,1128,1129 +,1129,444,446,445,1134,446,91,470,447,110,80,79,450,75,56,56,168,450,1135,318,185,328,313,182,1136,305,197,194,324,331,320,328,192,315,326,190,310,324,194,304,308,179,318,320,455,313,315,456,179,308 +,310,197,305,304,74,460,457,458,65,169,481,461,73,460,74,73,462,49,65,75,74,354,463,28,49,464,26,28,344,91,356,465,85,356,466,93,81,468,98,100,470,91,93,1137,86,83,1138,83,85,467 +,81,54,55,54,82,475,86,98,461,481,476,86,1139,1140,476,481,450,6,487,479,480,165,166,73,75,450,482,6,347,350,44,121,483,347,349,346,69,68,345,120,67,351,121,118,343,118,120,341,67,69 +,486,8,44,487,6,8,508,511,509,511,134,136,1141,322,513,329,316,515,1142,306,303,517,325,333,321,329,337,317,327,1143,309,312,325,307,311,519,513,322,321,515,316,317,519,311,312,306,307,323,1144,464 +,463,1145,463,462,1146,462,458,169,101,1147,1148,1149,459,1150,458,459,1151,102,354,1152,101,102,532,629,533,535,1153,536,538,568,539,543,554,541,541,1154,1155,1155,542,541,544,14,13,1156,1155,1154,1154,537,547,1157 +,546,537,537,536,1157,547,1156,1154,548,1158,549,551,556,552,23,541,554,556,1158,548,557,573,558,29,559,1159,1160,559,31,1159,1161,29,560,592,561,879,564,563,37,36,563,565,1162,39,549,1048,41,567,539,568 +,45,584,570,572,558,573,578,990,579,581,618,582,584,560,562,558,572,585,586,1163,587,589,572,574,591,996,561,593,677,594,70,163,588,71,72,551,77,70,575,588,587,576,79,97,585,599,680,600,601,605 +,602,604,602,605,607,599,608,610,872,611,613,1164,614,97,14,544,616,100,99,618,1165,619,619,1165,621,623,1166,624,624,1166,625,589,621,627,621,1165,628,629,532,630,632,882,633,635,638,636,638,883,639,124 +,1052,640,126,358,624,642,1167,643,645,1168,646,648,1024,649,651,673,652,654,674,655,657,676,658,1169,1170,661,663,656,655,1171,1172,666,662,661,668,670,675,671,663,664,673,667,666,674,669,668,671,670,672,676 +,163,1060,586,677,635,637,632,634,678,572,589,598,680,610,612,168,355,628,621,589,590,681,1173,641,682,1174,683,1175,1176,686,687,699,688,690,701,691,693,703,694,696,705,697,692,691,688,700,707,701,693,1177 +,702,696,710,704,706,1178,707,708,687,689,710,695,694,698,697,711,713,752,714,716,725,717,719,1179,720,722,731,723,725,735,726,1180,736,728,730,737,731,732,738,733,735,684,683,716,718,728,730,734,733,732 +,721,720,741,1181,1182,1182,1183,741,1184,1185,739,739,1186,740,740,1187,1188,1188,1189,741,741,1183,1184,1184,739,741,740,1188,741,742,754,743,745,755,746,748,757,749,751,759,752,742,760,753,755,748,750,756,762,749 +,758,1190,759,715,714,753,1191,1192,762,1193,745,747,765,802,766,661,778,768,671,772,769,664,779,770,666,686,771,668,768,772,672,769,773,652,673,770,655,674,771,658,676,773,1194,1195,778,655,775,779,780,825 +,781,783,1196,784,786,805,787,1197,1198,790,792,783,785,794,801,795,788,787,797,799,791,790,801,792,793,794,796,766,803,798,797,799,800,805,806,1199,807,809,828,810,1200,1201,813,815,806,808,817,824,818,811 +,810,820,814,813,822,824,815,816,817,819,825,826,821,820,823,822,828,829,846,830,832,847,670,833,848,834,836,851,669,837,853,838,840,855,667,841,857,842,844,663,651,829,833,835,836,675,670,848,859,849 +,850,662,669,852,1202,838,854,1203,667,856,865,842,858,656,663,859,1204,860,850,1205,1206,831,830,862,832,657,659,837,839,865,840,654,656,841,843,1207,845,651,653,869,873,610,870,997,871,873,870,872,595,607 +,609,875,349,348,607,869,680,871,997,877,878,623,564,582,618,620,355,448,627,871,601,603,628,1165,618,631,630,633,883,567,569,624,358,37,359,1110,1208,1208,884,359,885,1209,359,887,1113,364,364,1210,1211,1211 +,886,364,366,1116,888,890,1212,891,893,906,894,896,933,897,899,1213,900,902,911,903,905,913,894,1214,917,908,902,918,910,912,919,913,914,920,915,917,893,895,901,900,910,916,915,919,914,904,903,924,961,925 +,927,1212,890,891,935,929,930,1215,931,933,1216,934,935,1217,936,931,1215,937,939,942,940,936,1217,896,937,927,928,942,930,932,943,962,944,946,1218,947,949,926,925,951,943,945,953,960,954,948,947,956,949,950 +,958,960,951,952,953,955,961,957,956,944,959,958,963,970,1219,968,1220,1221,968,968,1222,1223,1223,1224,969,969,1225,1226,1226,1227,969,1219,1220,968,968,1223,969,969,1227,970,611,881,971,627,448,79,581,583,973,973 +,449,168,697,841,867,694,837,856,689,831,1228,707,1229,1230,704,856,857,702,852,853,707,859,848,691,833,829,705,857,841,703,853,837,691,701,848,689,688,829,597,880,977,622,590,979,978,1231,596,994,596,1232 +,590,574,981,583,582,880,574,573,982,983,982,573,872,871,881,881,603,984,600,612,985,987,469,100,612,611,972,1233,1234,602,603,602,1235,578,600,986,599,578,580,606,987,616,476,994,1236,604,616,617,476,449 +,973,538,875,876,679,678,996,973,583,596,540,998,875,639,569,877,998,484,349,593,595,874,594,637,873,636,639,997,637,636,870,595,594,869,569,568,1000,995,1000,568,1021,1237,1022,1023,1022,1024,843,845,868,839 +,840,858,830,832,1238,849,860,1239,865,858,844,838,1240,854,849,850,851,835,836,847,843,842,844,839,838,855,835,834,851,846,847,832,1241,1242,982,981,982,1243,979,981,1244,1245,619,622,622,980,1246,980,979,1247 +,880,620,1248,620,619,1249] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":1250,"indexStart":0,"indexCount":3906}] +,"instances":[]} +,{"name":"EnemyBullet","id":"EnemyBullet","materialId":"game_scene.VColMaterial","billboardMode":0,"position":[4.5289,-4870.6479,-170.5883],"rotation":[1.5708,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,21.4706,2.3676,1.7678,20.0041,1.7678,0,20.0041,2.5,0,23.0212,1.9224,0.6949,24.1515,0.6949,1.3593,23.0212,1.3593,1.6741,21.4706,1.6741,0,24.1515,0.9828,0,24.564,0,2.3676,21.4706,0,0.9828,24.1515,0,2.5,20.0041,0,1.9224,23.0212,0,1.3593,23.0212,-1.3593,1.6741,21.4706,-1.6741,0.6949,24.1515,-0.6949,1.7678,20.0041,-1.7678 +,0,20.0041,-2.5,0,23.0212,-1.9224,0,21.4706,-2.3676,0,24.1515,-0.9828,-0.6949,24.1515,-0.6949,-1.3593,23.0212,-1.3593,-1.6741,21.4706,-1.6741,-1.7678,20.0041,-1.7678,-2.3676,21.4706,0,-0.9828,24.1515,0,-2.5,20.0041,0,-1.9224,23.0212,0,-0.6949,24.1515,0.6949,1.7678,0,1.7678,0,0,2.5,-1.6741,21.4706,1.6741,-1.7678,20.0041,1.7678 +,-1.3593,23.0212,1.3593,-2.5,0,0,-1.7678,0,1.7678,1.7678,0,-1.7678,0,0,-2.5,-1.7678,0,-1.7678,2.5,0,0,1.7678,-20.0041,1.7678,0,-21.4706,2.3676,0,-20.0041,2.5,0,-23.0212,1.9224,0.6949,-24.1515,0.6949,0,-24.1515,0.9828,1.6741,-21.4706,1.6741,0,-24.564,0,2.3676,-21.4706,0,1.3593,-23.0212,1.3593 +,0.9828,-24.1515,0,2.5,-20.0041,0,1.9224,-23.0212,0,1.6741,-21.4706,-1.6741,0.6949,-24.1515,-0.6949,1.7678,-20.0041,-1.7678,1.3593,-23.0212,-1.3593,0,-20.0041,-2.5,0,-23.0212,-1.9224,0,-21.4706,-2.3676,0,-24.1515,-0.9828,-1.3593,-23.0212,-1.3593,-1.6741,-21.4706,-1.6741,-0.6949,-24.1515,-0.6949,-2.3676,-21.4706,0,-0.9828,-24.1515,0,-2.5,-20.0041,0 +,-1.7678,-20.0041,-1.7678,-1.9224,-23.0212,0,-0.6949,-24.1515,0.6949,-1.6741,-21.4706,1.6741,-1.3593,-23.0212,1.3593,-1.7678,-20.0041,1.7678] +,"normals":[0,0.18,0.984,0.706,0.045,0.706,0,0.045,0.999,0,0.448,0.894,0.446,0.776,0.446,0.632,0.448,0.632,0.696,0.18,0.696,0,0.776,0.631,0,1,0,0.984,0.18,0,0.631,0.776,0,0.999,0.045,0,0.894,0.448,0,0.632,0.448,-0.632,0.696,0.18,-0.696,0.446,0.776,-0.446,0.706,0.045,-0.706 +,0,0.045,-0.999,0,0.448,-0.894,0,0.18,-0.984,0,0.776,-0.631,-0.446,0.776,-0.446,-0.632,0.448,-0.632,-0.696,0.18,-0.696,-0.706,0.045,-0.706,-0.984,0.18,0,-0.631,0.776,0,-0.999,0.045,0,-0.894,0.448,0,-0.446,0.776,0.446,0.707,0,0.707,0,0,1,-0.696,0.18,0.696,-0.706,0.045,0.706 +,-0.632,0.448,0.632,-1,0,0,-0.707,0,0.707,0.707,0,-0.707,0,0,-1,-0.707,0,-0.707,1,0,0,0.706,-0.045,0.706,0,-0.18,0.984,0,-0.045,0.999,0,-0.448,0.894,0.446,-0.776,0.446,0,-0.776,0.631,0.696,-0.18,0.696,0,-1,0,0.984,-0.18,0,0.632,-0.448,0.632 +,0.631,-0.776,0,0.999,-0.045,0,0.894,-0.448,0,0.696,-0.18,-0.696,0.446,-0.776,-0.446,0.706,-0.045,-0.706,0.632,-0.448,-0.632,0,-0.045,-0.999,0,-0.448,-0.894,0,-0.18,-0.984,0,-0.776,-0.631,-0.632,-0.448,-0.632,-0.696,-0.18,-0.696,-0.446,-0.776,-0.446,-0.984,-0.18,0,-0.631,-0.776,0,-0.999,-0.045,0 +,-0.706,-0.045,-0.706,-0.894,-0.448,0,-0.446,-0.776,0.446,-0.696,-0.18,0.696,-0.632,-0.448,0.632,-0.706,-0.045,0.706] +,"colors":[0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192 +,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1 +,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192 +,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1 +,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192 +,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1,0.898,0.192,0.298,1] +,"indices":[0,1,2,3,4,5,3,6,0,7,8,4,5,9,6,4,8,10,6,11,1,5,10,12,9,13,14,10,8,15,11,14,16,10,13,12,14,17,16,15,18,13,13,19,14,15,8,20,18,21 +,22,18,23,19,20,8,21,17,23,24,22,25,23,21,8,26,23,27,24,21,28,22,26,8,29,11,30,1,1,31,2,27,32,33,26,34,28,33,35,27,2,36,33,28,32,25,17,37,16,33 +,0,2,29,3,34,24,38,17,24,35,39,34,0,32,29,8,7,16,40,11,41,42,43,44,45,46,47,44,42,46,45,48,49,50,47,45,51,48,52,47,41,53,45,50,54,53,49,51,55,48 +,56,49,52,57,51,53,58,54,56,59,55,57,60,57,54,55,61,48,62,61,59,63,59,60,61,64,48,58,63,60,65,62,63,64,66,48,67,63,68,69,64,62,66,70,48,30,52,41,31,41 +,43,67,71,65,72,66,69,35,73,67,36,43,73,71,69,65,37,58,56,73,42,71,44,70,72,38,68,58,68,35,67,42,72,71,70,46,48,40,56,52,0,6,1,3,7,4,3,5,6,5 +,12,9,6,9,11,5,4,10,9,12,13,11,9,14,10,15,13,14,19,17,15,20,18,13,18,19,18,20,21,18,22,23,17,19,23,22,28,25,23,25,27,21,26,28,11,40,30,1,30,31 +,27,25,32,26,29,34,33,36,35,2,31,36,28,34,32,17,38,37,33,32,0,29,7,3,24,39,38,24,27,35,34,3,0,16,37,40,41,47,42,44,50,45,47,50,44,49,53,50,52,49 +,47,53,51,45,54,57,53,56,54,49,57,55,51,58,60,54,59,61,55,60,59,57,62,64,61,63,62,59,58,68,63,65,69,62,67,65,63,69,66,64,30,40,52,31,30,41,67,73,71,72 +,70,66,35,36,73,36,31,43,71,72,69,37,38,58,73,43,42,44,46,70,38,39,68,68,39,35,42,44,72,40,37,56] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":74,"indexStart":0,"indexCount":432}] +,"instances":[]} +,{"name":"PlayerBullet","id":"PlayerBullet","materialId":"game_scene.VColMaterial","billboardMode":0,"position":[-3.6373,-4870.6479,-170.5883],"rotation":[1.5708,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,21.4706,2.3676,1.7678,20.0041,1.7678,0,20.0041,2.5,0,23.0212,1.9224,0.6949,24.1515,0.6949,1.3593,23.0212,1.3593,1.6741,21.4706,1.6741,0,24.1515,0.9828,0,24.564,0,2.3676,21.4706,0,0.9828,24.1515,0,2.5,20.0041,0,1.9224,23.0212,0,1.3593,23.0212,-1.3593,1.6741,21.4706,-1.6741,0.6949,24.1515,-0.6949,1.7678,20.0041,-1.7678 +,0,20.0041,-2.5,0,23.0212,-1.9224,0,21.4706,-2.3676,0,24.1515,-0.9828,-0.6949,24.1515,-0.6949,-1.3593,23.0212,-1.3593,-1.6741,21.4706,-1.6741,-1.7678,20.0041,-1.7678,-2.3676,21.4706,0,-0.9828,24.1515,0,-2.5,20.0041,0,-1.9224,23.0212,0,-0.6949,24.1515,0.6949,1.7678,0,1.7678,0,0,2.5,-1.6741,21.4706,1.6741,-1.7678,20.0041,1.7678 +,-1.3593,23.0212,1.3593,-2.5,0,0,-1.7678,0,1.7678,1.7678,0,-1.7678,0,0,-2.5,-1.7678,0,-1.7678,2.5,0,0,1.7678,-20.0041,1.7678,0,-21.4706,2.3676,0,-20.0041,2.5,0,-23.0212,1.9224,0.6949,-24.1515,0.6949,0,-24.1515,0.9828,1.6741,-21.4706,1.6741,0,-24.564,0,2.3676,-21.4706,0,1.3593,-23.0212,1.3593 +,0.9828,-24.1515,0,2.5,-20.0041,0,1.9224,-23.0212,0,1.6741,-21.4706,-1.6741,0.6949,-24.1515,-0.6949,1.7678,-20.0041,-1.7678,1.3593,-23.0212,-1.3593,0,-20.0041,-2.5,0,-23.0212,-1.9224,0,-21.4706,-2.3676,0,-24.1515,-0.9828,-1.3593,-23.0212,-1.3593,-1.6741,-21.4706,-1.6741,-0.6949,-24.1515,-0.6949,-2.3676,-21.4706,0,-0.9828,-24.1515,0,-2.5,-20.0041,0 +,-1.7678,-20.0041,-1.7678,-1.9224,-23.0212,0,-0.6949,-24.1515,0.6949,-1.6741,-21.4706,1.6741,-1.3593,-23.0212,1.3593,-1.7678,-20.0041,1.7678] +,"normals":[0,0.18,0.984,0.706,0.045,0.706,0,0.045,0.999,0,0.448,0.894,0.446,0.776,0.446,0.632,0.448,0.632,0.696,0.18,0.696,0,0.776,0.631,0,1,0,0.984,0.18,0,0.631,0.776,0,0.999,0.045,0,0.894,0.448,0,0.632,0.448,-0.632,0.696,0.18,-0.696,0.446,0.776,-0.446,0.706,0.045,-0.706 +,0,0.045,-0.999,0,0.448,-0.894,0,0.18,-0.984,0,0.776,-0.631,-0.446,0.776,-0.446,-0.632,0.448,-0.632,-0.696,0.18,-0.696,-0.706,0.045,-0.706,-0.984,0.18,0,-0.631,0.776,0,-0.999,0.045,0,-0.894,0.448,0,-0.446,0.776,0.446,0.707,0,0.707,0,0,1,-0.696,0.18,0.696,-0.706,0.045,0.706 +,-0.632,0.448,0.632,-1,0,0,-0.707,0,0.707,0.707,0,-0.707,0,0,-1,-0.707,0,-0.707,1,0,0,0.706,-0.045,0.706,0,-0.18,0.984,0,-0.045,0.999,0,-0.448,0.894,0.446,-0.776,0.446,0,-0.776,0.631,0.696,-0.18,0.696,0,-1,0,0.984,-0.18,0,0.632,-0.448,0.632 +,0.631,-0.776,0,0.999,-0.045,0,0.894,-0.448,0,0.696,-0.18,-0.696,0.446,-0.776,-0.446,0.706,-0.045,-0.706,0.632,-0.448,-0.632,0,-0.045,-0.999,0,-0.448,-0.894,0,-0.18,-0.984,0,-0.776,-0.631,-0.632,-0.448,-0.632,-0.696,-0.18,-0.696,-0.446,-0.776,-0.446,-0.984,-0.18,0,-0.631,-0.776,0,-0.999,-0.045,0 +,-0.706,-0.045,-0.706,-0.894,-0.448,0,-0.446,-0.776,0.446,-0.696,-0.18,0.696,-0.632,-0.448,0.632,-0.706,-0.045,0.706] +,"colors":[0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898 +,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1 +,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898 +,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1 +,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898 +,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1,0.765,0.898,0,1] +,"indices":[0,1,2,3,4,5,3,6,0,7,8,4,5,9,6,4,8,10,6,11,1,5,10,12,9,13,14,10,8,15,11,14,16,10,13,12,14,17,16,15,18,13,13,19,14,15,8,20,18,21 +,22,18,23,19,20,8,21,17,23,24,22,25,23,21,8,26,23,27,24,21,28,22,26,8,29,11,30,1,1,31,2,27,32,33,26,34,28,33,35,27,2,36,33,28,32,25,17,37,16,33 +,0,2,29,3,34,24,38,17,24,35,39,34,0,32,29,8,7,16,40,11,41,42,43,44,45,46,47,44,42,46,45,48,49,50,47,45,51,48,52,47,41,53,45,50,54,53,49,51,55,48 +,56,49,52,57,51,53,58,54,56,59,55,57,60,57,54,55,61,48,62,61,59,63,59,60,61,64,48,58,63,60,65,62,63,64,66,48,67,63,68,69,64,62,66,70,48,30,52,41,31,41 +,43,67,71,65,72,66,69,35,73,67,36,43,73,71,69,65,37,58,56,73,42,71,44,70,72,38,68,58,68,35,67,42,72,71,70,46,48,40,56,52,0,6,1,3,7,4,3,5,6,5 +,12,9,6,9,11,5,4,10,9,12,13,11,9,14,10,15,13,14,19,17,15,20,18,13,18,19,18,20,21,18,22,23,17,19,23,22,28,25,23,25,27,21,26,28,11,40,30,1,30,31 +,27,25,32,26,29,34,33,36,35,2,31,36,28,34,32,17,38,37,33,32,0,29,7,3,24,39,38,24,27,35,34,3,0,16,37,40,41,47,42,44,50,45,47,50,44,49,53,50,52,49 +,47,53,51,45,54,57,53,56,54,49,57,55,51,58,60,54,59,61,55,60,59,57,62,64,61,63,62,59,58,68,63,65,69,62,67,65,63,69,66,64,30,40,52,31,30,41,67,73,71,72 +,70,66,35,36,73,36,31,43,71,72,69,37,38,58,73,43,42,44,46,70,38,39,68,68,39,35,42,44,72,40,37,56] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":74,"indexStart":0,"indexCount":432}] +,"instances":[]} +,{"name":"ExplosionDisk","id":"ExplosionDisk","materialId":"game_scene.TargetMaterial","billboardMode":0,"position":[-50.6032,-4847.6108,-81.3008],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[54.9079,-54.9079,0,-54.9079,54.9079,0,-54.9079,-54.9079,0,54.9079,54.9079,0] +,"normals":[0,0,-1,0,0,-1,0,0,-1,0,0,-1] +,"uvs":[0.5,1,1,0.5,1,1,0.5,0.5] +,"indices":[0,1,2,0,3,1] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":4,"indexStart":0,"indexCount":6}] +,"instances":[]} +,{"name":"Explosion","id":"Explosion","materialId":"game_scene.TargetMaterial","billboardMode":0,"position":[-50.6226,-4848.5542,-126.4907],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[42.7283,-42.7283,0,-42.7283,42.7283,0,-42.7283,-42.7283,0,42.7283,42.7283,0] +,"normals":[0,0,-1,0,0,-1,0,0,-1,0,0,-1] +,"uvs":[1,0,0.5,0.5,0.5,0,1,0.5] +,"indices":[0,1,2,0,3,1] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":4,"indexStart":0,"indexCount":6}] +,"instances":[]} +,{"name":"Trench","id":"Trench","materialId":"game_scene.Multimaterial#0","billboardMode":0,"position":[-3.8834,-4850.6411,605.7773],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[104.0056,-67.991,-319.9249,55.7458,-60.178,-319.925,55.7458,-67.991,-319.925,32.9082,-60.178,-319.925,28.5458,-67.991,-319.925,-104.1832,-57.069,-758.2316,-17.5769,-57.069,-899.9999,-17.5769,-57.069,-758.2314,-17.5769,-57.069,-899.9999,-104.1832,-67.991,-900,-4.5192,-67.991,-899.9999,-17.5769,-57.069,-758.2314,-4.5192,-67.991,-899.9999,-4.5192,-67.991,-758.2314,-104.1832,-67.991,-758.2316,-17.5769,-57.069,-758.2314,-4.5192,-67.991,-758.2314 +,104.0056,-58.2846,-788.4141,7.0036,-58.2846,-899.9999,104.0056,-58.2846,-900.0001,7.0036,-58.2846,-899.9999,-1.6234,-67.991,-788.4139,-1.6234,-67.991,-899.9999,7.0036,-58.2846,-788.4139,104.0056,-67.991,-788.4141,-1.6234,-67.991,-788.4139,104.0056,-58.2846,-788.4141,111.9593,-67.991,-788.4141,104.0056,-67.991,-900.0001,7.0036,-58.2846,-899.9999,-1.6234,-67.991,-899.9999,104.6636,-62.9193,-664.7655,37.0173,-62.9193,-778.7513,104.6636,-62.9193,-778.7515 +,111.9593,-67.991,-778.7515,104.6636,-62.9193,-778.7515,92.7136,-67.991,-778.7515,33.7635,-67.991,-664.7654,37.0173,-62.9193,-778.7513,37.0173,-62.9193,-664.7654,92.7136,-67.991,-664.7655,37.0173,-62.9193,-664.7654,104.6636,-62.9193,-664.7655,-31.7127,-64.0231,-435.0914,8.3107,-64.0231,-510.6059,19.3303,-64.0231,-435.0913,-31.7127,-67.991,-435.0914,-31.7127,-64.0231,-545.6588,-31.7127,-64.0231,-435.0914,19.3303,-67.991,-545.6588,-31.7127,-64.0231,-545.6588 +,-31.7127,-67.991,-545.6588,19.3303,-67.991,-435.0913,19.3303,-64.0231,-545.6588,19.3303,-67.991,-545.6588,-31.7127,-67.991,-435.0914,19.3303,-64.0231,-435.0913,19.3303,-67.991,-435.0913,111.9593,-60.9615,-483.2107,91.5792,-60.9615,-580.2135,111.9593,-60.9615,-600.16,111.9593,-67.991,-600.16,31.1477,-60.9615,-600.16,24.6143,-67.991,-600.16,31.1477,-60.9615,-600.16,24.6143,-67.991,-483.2106,24.6143,-67.991,-600.16,31.1477,-60.9615,-483.2106 +,111.9593,-67.991,-483.2107,24.6143,-67.991,-483.2106,-104.1832,-60.5609,-656.306,-12.1076,-60.5609,-748.5688,-12.1076,-60.5609,-656.306,-104.1832,-60.5609,-607.7705,-12.1076,-60.5609,-607.7704,-4.5192,-63.547,-656.306,111.9593,-60.5609,-656.306,-4.5192,-60.5609,-656.306,-104.1832,-67.991,-607.7705,-12.1076,-60.5609,-607.7704,-12.1076,-67.991,-607.7705,111.9593,-56.1568,-656.306,103.6507,-56.1568,-656.306,-4.5192,-60.5609,-656.306,-0.1311,-56.1568,-607.7704 +,-4.5192,-60.5609,-607.7704,-4.5192,-67.991,-607.7705,111.9593,-60.5609,-607.7704,111.9593,-67.991,-607.7705,-84.3311,-64.0079,-435.0913,-36.8287,-67.991,-435.0914,-84.3311,-67.991,-435.0913,-84.3311,-64.0079,-584.9952,-84.3311,-67.991,-435.0913,-84.3311,-67.991,-584.9952,-84.3311,-64.0079,-584.9952,-78.4882,-64.0079,-449.8812,-84.3311,-64.0079,-435.0913,-36.8287,-64.0079,-435.0914,-36.8287,-67.991,-545.897,-36.8287,-67.991,-435.0914,-96.3123,-64.199,-423.1802 +,-96.3123,-61.236,-330.9202,-96.3123,-64.199,-330.9202,104.0056,-67.991,-330.9202,104.0056,-64.199,-423.1802,104.0056,-67.991,-423.1802,104.0056,-64.199,-468.0732,104.0056,-67.991,-468.0732,26.279,-67.991,-330.9202,104.0056,-64.199,-330.9202,104.0056,-67.991,-330.9202,24.6143,-67.991,-423.1802,2.649,-64.199,-423.1802,1.329,-67.991,-423.1802,104.0056,-67.991,-468.0732,26.279,-64.199,-468.0732,24.6143,-67.991,-468.0732,24.6143,-67.991,-468.0732 +,26.279,-64.199,-423.1802,24.6143,-67.991,-423.1802,-96.3124,-67.991,-330.9202,2.6491,-64.199,-330.9202,2.6491,-67.991,-330.9202,-96.3124,-67.991,-423.1802,-96.3124,-67.991,-330.9202,32.9082,-60.178,-186.4224,55.7458,-60.178,-319.925,55.7458,-60.178,-186.4224,104.0056,-60.178,-319.9249,104.0056,-60.178,-182.1907,51.2449,-67.991,-182.1907,32.9082,-60.178,-186.4224,55.7458,-60.178,-186.4224,28.5458,-67.991,-319.925,32.9082,-60.178,-186.4224 +,28.5458,-67.991,-182.1907,104.0056,-67.991,-182.1907,104.0056,-60.178,-319.9249,104.0056,-67.991,-319.9249,55.7458,-60.178,-161.2635,104.0056,-60.178,-182.1907,104.0056,-60.178,-161.2635,-26.7093,-62.3494,-124.3475,-96.3124,-62.3494,-190.1443,-26.7093,-62.3494,-190.1443,23.0675,-62.3494,-190.1445,-26.7093,-62.3494,-319.925,23.0675,-62.3494,-319.925,-76.9584,-62.3494,-295.544,-96.3124,-62.3494,-319.925,-96.3124,-67.991,-190.1443,-96.3124,-62.3494,-124.3475 +,-96.3124,-67.991,-124.3475,-96.3124,-67.991,-319.925,-96.3124,-62.3494,-190.1443,-96.3124,-67.991,-124.3475,-26.7093,-62.3494,-124.3475,-23.4336,-67.991,-124.3475,-26.7093,-67.991,-319.925,23.0675,-62.3494,-319.925,-26.7093,-62.3494,-319.925,-23.4336,-67.991,-183.284,23.0675,-62.3494,-190.1445,27.6242,-67.991,-183.284,27.6242,-67.991,-319.925,23.0675,-62.3494,-190.1445,23.0675,-62.3494,-319.925,-96.3124,-62.3494,-319.925,-96.3124,-67.991,-319.925 +,-23.4336,-67.991,-183.284,-26.7093,-62.3494,-124.3475,-26.7093,-62.3494,-190.1443,104.0056,-61.3328,-81.0647,55.0449,-61.3328,-146.7249,104.0056,-61.3328,-146.7249,104.0056,-61.3328,-5.9264,55.0449,-61.3328,-75.1085,18.0242,-61.3328,-5.9264,55.0449,-61.3328,-5.9264,104.0056,-67.991,-81.0647,104.0056,-61.3328,-146.7249,104.0056,-67.991,-146.7249,104.0056,-67.991,-5.9264,104.0056,-61.3328,-81.0647,55.0449,-67.991,-5.9264,104.0056,-61.3328,-5.9264 +,104.0056,-67.991,-5.9264,15.0065,-67.991,-5.9264,18.0242,-61.3328,-75.1085,18.0242,-61.3328,-5.9264,51.2449,-67.991,-81.0647,18.0242,-61.3328,-75.1085,15.0065,-67.991,-81.0648,51.2449,-67.991,-81.0647,55.0449,-61.3328,-146.7249,55.0449,-61.3328,-75.1085,104.0056,-67.991,-146.7249,55.0449,-61.3328,-146.7249,51.2449,-67.991,-146.7249,18.0242,-61.3328,-5.9264,55.0449,-61.3328,-5.9264,-12.9981,-64.199,-95.4802,-12.9981,-60.2452,-167.5883 +,-12.9981,-64.199,-167.5883,47.0821,-64.199,-175.4672,-18.9161,-67.991,-175.4671,47.0821,-67.991,-175.4672,-18.9161,-64.199,-87.6013,47.0821,-67.991,-87.6014,-18.9161,-67.991,-87.6013,47.0821,-64.199,-87.6014,47.0821,-67.991,-175.4672,47.0821,-67.991,-87.6014,-18.9161,-64.199,-175.4671,-18.9161,-67.991,-87.6013,-18.9161,-67.991,-175.4671,-96.3124,-62.4253,-81.142,-26.685,-62.4253,-116.0652,-26.685,-62.4253,-74.7271,-96.3124,-62.4253,-5.9264 +,-26.685,-62.4253,-5.9264,5.3549,-62.4253,-74.7271,5.3549,-62.4253,-5.9264,-96.3124,-67.991,-81.142,-96.3124,-62.4253,-5.9264,-96.3124,-67.991,-5.9264,-96.3124,-67.991,-5.9264,-26.685,-62.4253,-5.9264,-26.685,-67.991,-5.9264,5.3549,-62.4253,-5.9264,9.7224,-67.991,-5.9264,-96.3124,-67.991,-116.0652,-26.685,-62.4253,-116.0652,-96.3124,-62.4253,-116.0652,-96.3124,-67.991,-116.0652,-96.3124,-62.4253,-81.142,9.7224,-67.991,-5.9264 +,5.3549,-62.4253,-74.7271,9.7224,-67.991,-81.142,-22.8782,-67.991,-81.142,-26.685,-62.4253,-116.0652,-22.8782,-67.991,-116.0652,-22.8782,-67.991,-81.142,5.3549,-62.4253,-74.7271,-26.685,-62.4253,-74.7271,55.7458,-60.178,-161.2635,104.0056,-67.991,-156.3875,51.2449,-67.991,-156.3875,104.0056,-60.178,-161.2635,104.0056,-67.991,-182.1907,104.0056,-67.991,-156.3875,51.2449,-67.991,-182.1907,55.7458,-60.178,-161.2635,51.2449,-67.991,-156.3875 +,104.0056,-67.991,-182.1907,55.7458,-60.178,-186.4224,51.2449,-67.991,-182.1907,-76.9584,-62.3494,-207.6649,-37.6226,-58.9017,-207.6649,-37.6226,-62.3494,-207.6649,-76.9584,-62.3494,-207.6649,-37.6226,-62.3494,-207.6649,-37.6226,-62.3494,-295.544,-76.9584,-58.9017,-207.6649,-40.7579,-58.9017,-212.9726,-37.6226,-58.9017,-207.6649,-76.9584,-62.3494,-295.544,-76.9584,-58.9017,-207.6649,-76.9584,-62.3494,-207.6649,-37.6226,-62.3494,-207.6649,-37.6226,-58.9017,-295.544 +,-37.6226,-62.3494,-295.544,-37.6226,-62.3494,-295.544,-76.9584,-58.9017,-295.544,-76.9584,-62.3494,-295.544,26.279,-64.199,-423.1802,104.0056,-64.199,-468.0732,104.0056,-64.199,-423.1802,26.279,-64.199,-330.9202,104.0056,-64.199,-330.9202,-76.9584,-58.9017,-295.544,-73.8232,-58.9017,-212.9726,-37.6226,-58.9017,-295.544,-40.7579,-58.9017,-290.2364,-73.8232,-58.9017,-290.2364,-73.8232,-58.9017,-212.9726,-40.7579,-62.2761,-212.9726,-40.7579,-58.9017,-212.9726 +,-40.7579,-62.2761,-212.9726,-73.8231,-62.2761,-290.2364,-40.7579,-62.2761,-290.2364,-73.8232,-58.9017,-290.2364,-73.8232,-62.2761,-212.9726,-73.8232,-58.9017,-212.9726,-40.7579,-58.9017,-212.9726,-40.7579,-62.2761,-290.2364,-40.7579,-58.9017,-290.2364,-40.7579,-58.9017,-290.2364,-73.8231,-62.2761,-290.2364,-73.8232,-58.9017,-290.2364,26.279,-64.199,-330.9202,-96.3123,-64.199,-423.1802,-96.3124,-67.991,-423.1802,2.6491,-64.199,-330.9202,26.279,-64.199,-423.1802 +,26.279,-64.199,-330.9202,-3.5166,-61.236,-330.9202,-96.3123,-61.236,-423.1802,-3.5166,-61.236,-423.1802,-96.3123,-64.199,-330.9202,-3.5166,-61.236,-330.9202,-3.5166,-61.236,-423.1802,-96.3123,-61.236,-423.1802,2.6491,-64.199,-330.9202,-3.5166,-61.236,-423.1802,2.649,-64.199,-423.1802,103.6507,-56.1568,-656.306,-0.1311,-56.1568,-607.7704,-0.1311,-56.1568,-656.306,-4.5192,-60.5609,-607.7704,103.6507,-56.1568,-607.7704,-7.7263,-60.5609,-748.5688 +,-7.7263,-60.5609,-656.306,-12.1076,-67.991,-748.5688,-104.1832,-60.5609,-748.5688,-104.1832,-67.991,-748.5688,-4.5192,-67.991,-656.306,-4.5192,-63.547,-748.5688,-4.5192,-67.991,-748.5688,-4.5192,-63.547,-748.5688,-7.7263,-60.5609,-748.5688,-4.5192,-63.547,-656.306,-7.7263,-60.5609,-748.5688,-4.5192,-63.547,-748.5688,-4.5192,-60.5609,-607.7704,-7.7263,-60.5609,-656.306,-0.887,-67.991,-667.2903,31.5826,-64.3233,-667.2903,31.5826,-67.991,-667.2903 +,31.5826,-64.3233,-667.2903,1.701,-64.3233,-671.3309,28.9946,-64.3233,-671.3309,-0.887,-67.991,-778.1465,-0.887,-64.3233,-667.2903,-0.887,-67.991,-667.2903,31.5826,-67.991,-667.2903,31.5826,-64.3233,-778.1465,31.5826,-67.991,-778.1465,31.5826,-67.991,-778.1465,-0.887,-64.3233,-778.1465,-0.887,-67.991,-778.1465,-0.887,-64.3233,-778.1465,-0.887,-64.3233,-667.2903,31.5826,-64.3233,-778.1465,28.9946,-64.3233,-774.1059,1.701,-64.3233,-774.1059 +,1.701,-64.3233,-671.3309,28.9946,-65.339,-671.3309,28.9946,-64.3233,-671.3309,28.9946,-65.339,-671.3309,1.701,-65.339,-774.1059,28.9946,-65.339,-774.1059,1.701,-64.3233,-774.1059,1.701,-65.339,-671.3309,1.701,-64.3233,-671.3309,28.9946,-64.3233,-671.3309,28.9946,-65.339,-774.1059,28.9946,-64.3233,-774.1059,28.9946,-64.3233,-774.1059,1.701,-65.339,-774.1059,1.701,-64.3233,-774.1059,41.1641,-64.199,-95.4803,-12.9981,-64.199,-167.5883 +,41.1641,-64.199,-167.5883,41.1641,-64.199,-167.5883,41.1641,-60.2452,-95.4803,41.1641,-64.199,-95.4803,47.0821,-60.2452,-87.6014,47.0821,-64.199,-87.6014,-18.9161,-60.2452,-175.4671,-18.9161,-64.199,-175.4671,47.0821,-60.2452,-175.4672,-12.9981,-60.2452,-167.5883,-18.9161,-60.2452,-175.4671,47.0821,-60.2452,-87.6014,-12.9981,-60.2452,-95.4802,41.1641,-60.2452,-95.4803,41.1641,-60.2452,-167.5883,-18.9161,-60.2452,-87.6013,47.0821,-60.2452,-175.4672 +,47.0821,-64.199,-175.4672,-18.9161,-60.2452,-87.6013,-18.9161,-64.199,-87.6013,-12.9981,-64.199,-167.5883,41.1641,-60.2452,-167.5883,41.1641,-64.199,-167.5883,41.1641,-64.199,-95.4803,-12.9981,-60.2452,-95.4802,-12.9981,-64.199,-95.4802,111.9593,-58.2846,-900.0001,104.0056,52.0576,-900.0001,104.0056,-58.2846,-900.0001,111.9593,-58.2846,-900.0001,104.0056,-58.2846,-900.0001,111.9593,-58.2846,-788.4141,104.0056,52.0576,-788.4141,111.9593,52.0576,-788.4141 +,105.058,38.0689,-827.7573,105.058,40.5138,-797.6898,105.058,38.0689,-797.6898,105.058,29.4456,-827.7573,105.058,31.8904,-797.6898,105.058,29.4456,-797.6898,105.058,42.2317,-827.7573,105.058,44.6766,-797.6898,105.058,42.2317,-797.6898,105.058,33.8182,-827.7573,105.058,36.2631,-797.6898,105.058,33.8182,-797.6898,104.0056,44.6766,-827.7573,105.058,42.2317,-827.7573,104.0056,42.2317,-827.7573,104.0056,40.5138,-827.7573,105.058,38.0689,-827.7573 +,104.0056,38.0689,-827.7573,104.0056,42.2317,-797.6898,105.058,44.6766,-797.6898,104.0056,44.6766,-797.6898,104.0056,38.0689,-797.6898,105.058,40.5138,-797.6898,104.0056,40.5138,-797.6898,104.0056,29.4456,-797.6898,105.058,31.8904,-797.6898,104.0056,31.8904,-797.6898,104.0056,33.8182,-827.7573,105.058,33.8182,-797.6898,104.0056,33.8182,-797.6898,104.0056,31.8904,-827.7573,105.058,29.4456,-827.7573,104.0056,29.4456,-827.7573,104.0056,36.2631,-797.6898 +,105.058,36.2631,-827.7573,104.0056,36.2631,-827.7573,104.0056,31.8904,-797.6898,105.058,31.8904,-827.7573,104.0056,31.8904,-827.7573,104.0056,36.2631,-827.7573,105.058,33.8182,-827.7573,104.0056,33.8182,-827.7573,104.0056,29.4456,-827.7573,105.058,29.4456,-797.6898,104.0056,29.4456,-797.6898,104.0056,42.2317,-827.7573,105.058,42.2317,-797.6898,104.0056,42.2317,-797.6898,104.0056,33.8182,-797.6898,105.058,36.2631,-797.6898,104.0056,36.2631,-797.6898 +,104.0056,38.0689,-827.7573,105.058,38.0689,-797.6898,104.0056,38.0689,-797.6898,104.0056,44.6766,-797.6898,105.058,44.6766,-827.7573,104.0056,44.6766,-827.7573,104.0056,40.5138,-797.6898,105.058,40.5138,-827.7573,104.0056,40.5138,-827.7573,104.0056,31.8904,-827.7573,104.0056,26.5256,-830.8002,104.0056,47.787,-830.8002,104.0056,-58.2846,-788.4141,104.0056,24.4739,-833.4255,104.0056,24.5697,-792.3127,104.0056,49.7421,-833.6498,104.0056,52.0576,-788.4141 +,104.0056,49.7421,-792.3127,104.0056,33.8182,-797.6898,104.0056,31.8904,-827.7573,104.0056,33.8182,-827.7573,104.0056,38.0689,-797.6898,104.0056,36.2631,-827.7573,104.0056,38.0689,-827.7573,104.0056,42.2317,-797.6898,104.0056,40.5138,-827.7573,104.0056,42.2317,-827.7573,104.0056,26.5256,-795.1241,104.0056,29.4456,-827.7573,104.0056,29.4456,-797.6898,111.9593,-67.991,-664.7655,111.9593,-62.9193,-664.7655,37.0173,-62.9193,-778.7513,33.7635,-67.991,-778.7513 +,104.6636,-8.2101,-664.7655,107.8353,-5.0422,-664.7655,111.9593,-5.0422,-664.7655,104.6636,-62.9193,-778.7515,104.6636,-8.2101,-664.7655,104.6636,-62.9193,-664.7655,107.8353,-5.0422,-664.7655,111.9593,-5.0422,-778.7515,111.9593,-5.0422,-664.7655,104.825,4.3425,-768.496,104.825,35.9351,-675.021,104.825,4.3425,-675.021,104.825,4.3425,-768.496,111.9593,41.9563,-778.7515,104.825,35.9351,-768.496,111.9593,-3.2072,-664.7655,104.825,4.3425,-768.496 +,104.825,4.3425,-675.021,111.9593,41.9563,-664.7655,104.825,4.3425,-675.021,104.825,35.9351,-675.021,111.9593,41.9563,-778.7515,104.825,35.9351,-675.021,104.825,35.9351,-768.496,111.9593,52.0576,-656.3058,106.2042,58.9083,-656.306,103.6508,56.3578,-656.306,103.6508,2.6115,-607.7704,103.6508,56.3578,-537.1594,103.6508,2.6115,-537.1594,103.6508,2.6115,-607.7704,111.9593,-56.1568,-607.7704,103.6507,-56.1568,-607.7704,111.9593,58.9083,-607.7704 +,106.2042,58.9083,-537.1594,106.2042,58.9083,-607.7704,103.6508,2.6115,-656.306,103.6508,56.3578,-607.7704,111.9593,2.6115,-537.1594,103.6508,2.6115,-607.7704,103.6508,2.6115,-537.1594,106.2042,58.9083,-537.1594,111.9593,52.0576,-537.1594,103.6508,56.3578,-537.1594,103.6507,-56.1568,-656.306,103.6508,2.6115,-656.306,111.9593,-56.1568,-656.306,111.9593,2.6115,-656.306,-36.8287,-64.0079,-545.8971,-71.5832,-67.991,-584.9952,-36.8287,-67.991,-545.897 +,-71.5832,-67.991,-584.9952,-84.3311,-64.0079,-584.9952,-84.3311,-67.991,-584.9952,104.0056,52.0576,-900.0001,104.0056,44.6766,-797.6898,104.0056,47.787,-795.1241,104.0056,26.5256,-830.8002,102.4008,47.787,-830.8002,104.0056,47.787,-830.8002,104.0056,47.787,-795.1241,102.4008,26.5256,-795.1241,104.0056,26.5256,-795.1241,104.0056,24.5697,-792.3127,102.4008,49.7421,-792.3127,104.0056,49.7421,-792.3127,104.0056,24.4739,-833.4255,102.4008,24.5697,-792.3127 +,104.0056,24.5697,-792.3127,104.0056,44.6766,-827.7573,102.4008,49.7421,-833.6498,102.4008,26.5256,-830.8002,102.4008,24.4739,-833.4255,102.4008,26.5256,-795.1241,102.4008,49.7421,-792.3127,102.4008,24.5697,-792.3127,102.4008,47.787,-830.8002,104.0056,49.7421,-833.6498,102.4008,24.4739,-833.4255,104.0056,24.4739,-833.4255,104.0056,49.7421,-792.3127,102.4008,49.7421,-833.6498,104.0056,49.7421,-833.6498,104.0056,26.5256,-795.1241,102.4008,26.5256,-830.8002 +,104.0056,26.5256,-830.8002,104.0056,47.787,-830.8002,102.4008,47.787,-795.1241,104.0056,47.787,-795.1241,104.3491,57.5681,-788.4141,105.3188,59.1758,-788.4141,111.9593,60.7835,-788.4141,151.2628,52.0576,-788.4139,111.9593,52.0576,-900,106.9347,60.3527,-900.0001,105.3188,59.1758,-900.0001,108.7636,60.7835,-900.0001,111.9593,60.7835,-788.4141,108.7636,60.7835,-788.4141,111.9593,60.7835,-900.0001,151.2628,52.0576,-899.9998,151.2628,60.7835,-899.9999 +,151.2628,60.7835,-899.9999,151.2628,60.7835,-788.414,104.3491,57.5681,-900.0001,105.3188,59.1758,-788.4141,104.3491,57.5681,-788.4141,105.3188,59.1758,-900.0001,106.9347,60.3527,-788.4141,105.3188,59.1758,-788.4141,106.9347,60.3527,-900.0001,-20.6931,-64.0231,-510.6059,8.3107,-60.6175,-510.6059,8.3107,-64.0231,-510.6059,19.3303,-64.0231,-545.6588,8.3107,-64.0231,-532.0122,-31.7127,-64.0231,-545.6588,-20.6931,-64.0231,-510.6059,-20.6931,-64.0231,-532.0122 +,-20.6931,-60.6175,-510.6059,8.3107,-60.6175,-532.0122,8.3107,-60.6175,-510.6059,8.3107,-64.0231,-510.6059,8.3107,-60.6175,-532.0122,8.3107,-64.0231,-532.0122,-20.6931,-64.0231,-532.0122,-20.6931,-60.6175,-510.6059,-20.6931,-64.0231,-510.6059,8.3107,-64.0231,-532.0122,-20.6931,-60.6175,-532.0122,-20.6931,-64.0231,-532.0122,103.6508,56.3578,-656.306,106.2042,58.9083,-607.7704,103.6508,56.3578,-607.7704,106.2042,58.9083,-537.1594,103.6508,56.3578,-537.1594 +,111.9593,58.9083,-656.306,106.2042,58.9083,-656.306,104.6636,-8.2101,-778.7515,107.8353,-5.0422,-664.7655,104.6636,-8.2101,-664.7655,111.9593,-5.0422,-778.7515,107.8353,-5.0422,-778.7515,104.6636,-8.2101,-778.7515,43.5741,-60.9615,-580.2135,43.5741,-58.3309,-503.1571,43.5741,-60.9615,-503.1571,31.1477,-60.9615,-483.2106,91.5792,-60.9615,-503.1572,31.1477,-60.9615,-600.16,43.5741,-60.9615,-580.2135,43.5741,-60.9615,-503.1571,91.5792,-58.3309,-503.1572 +,43.5741,-58.3309,-580.2135,91.5792,-58.3309,-580.2135,91.5792,-60.9615,-503.1572,91.5792,-58.3309,-580.2135,91.5792,-60.9615,-580.2135,43.5741,-60.9615,-503.1571,91.5792,-58.3309,-503.1572,91.5792,-60.9615,-503.1572,91.5792,-60.9615,-580.2135,43.5741,-58.3309,-580.2135,43.5741,-60.9615,-580.2135,-71.5153,-64.0079,-572.1019,-78.4882,-61.4873,-572.1019,-78.4882,-64.0079,-572.1019,-36.8287,-64.0079,-545.8971,-71.5153,-64.0079,-572.1019,-71.5832,-64.0079,-584.9952 +,-41.4639,-64.0079,-449.8812,-41.4639,-64.0079,-537.0491,-78.4882,-64.0079,-572.1019,-36.8287,-64.0079,-435.0914,-78.4882,-61.4873,-572.1019,-71.5153,-61.4873,-572.1019,-41.4639,-61.4873,-537.0491,-78.4882,-64.0079,-449.8812,-41.4639,-61.4873,-449.8812,-41.4639,-64.0079,-449.8812,-41.4639,-64.0079,-449.8812,-41.4639,-61.4873,-537.0491,-41.4639,-64.0079,-537.0491,-41.4639,-64.0079,-537.0491,-71.5153,-61.4873,-572.1019,-71.5153,-64.0079,-572.1019,-78.4882,-64.0079,-572.1019 +,-78.4882,-61.4873,-449.8812,-78.4882,-64.0079,-449.8812,104.4903,-52.2008,-520.5009,104.4903,36.6433,-420.1494,104.4903,-52.2008,-420.1494,104.4903,-52.2008,-520.5009,111.9593,41.9563,-527.3181,104.4903,36.6433,-520.5009,111.9593,-57.5139,-413.3322,104.4903,-52.2008,-520.5009,104.4903,-52.2008,-420.1494,111.9593,41.9563,-413.3322,104.4903,-52.2008,-420.1494,104.4903,36.6433,-420.1494,111.9593,41.9563,-527.3181,104.4903,36.6433,-420.1494,104.4903,36.6433,-520.5009 +,104.4586,36.2723,24.5156,104.4586,4.6873,120.8527,104.4586,4.6873,24.5156,104.4586,36.2723,120.8527,111.9593,4.6873,131.4448,104.4586,4.6873,120.8527,104.4586,-48.6681,120.8527,111.9593,-57.5139,17.4589,104.4586,-48.6681,24.5156,104.4586,-48.6681,24.5156,111.9593,-2.4611,17.4589,104.4586,4.6873,24.5156,104.4586,36.2723,120.8527,111.9593,41.9563,24.5156,111.9593,41.9563,131.4448,105.3385,1.4972,-389.6675,105.3385,34.0323,-245.3376 +,105.3385,1.4972,-245.3376,105.3385,1.4972,-389.6675,111.9593,39.0483,-401.1639,105.3385,34.0323,-389.6675,111.9593,-4.1038,-250.7017,105.3385,1.4972,-389.6675,105.3385,1.4972,-245.3376,105.3385,34.0323,-155.6205,111.9593,-1.2983,-145.9298,105.3385,1.4972,-155.6205,111.9593,39.0483,-249.0907,105.3385,34.0323,-155.6205,105.3385,34.0323,-245.3376,151.2628,58.9083,-656.3059,151.2628,58.9083,-607.7704,111.9593,58.9083,-537.1594,151.2628,52.0576,-537.1593 +,111.9593,58.9083,-537.1594,151.2628,58.9083,-537.1594,111.9593,58.9083,-656.306,151.2628,52.0576,-656.3058,151.2628,58.9083,-656.3059,-95.7718,52.0576,-442.5061,-104.1832,-55.0577,-442.5062,-95.7718,-55.0577,-442.5062,-104.1832,52.0576,-330.9202,-95.7718,-55.0577,-330.9202,-104.1832,-55.0577,-330.9202,-96.8242,40.5138,-340.1959,-96.8242,38.0689,-370.2635,-96.8242,38.0689,-340.1959,-96.8242,31.8904,-340.1959,-96.8242,29.4456,-370.2635,-96.8242,29.4456,-340.1959 +,-96.8242,44.6766,-340.1959,-96.8242,42.2317,-370.2635,-96.8242,42.2317,-340.1959,-96.8242,36.2631,-340.1959,-96.8242,33.8182,-370.2635,-96.8242,33.8182,-340.1959,-96.8242,42.2317,-370.2635,-95.7718,44.6766,-370.2635,-95.7718,42.2317,-370.2635,-96.8242,38.0689,-370.2635,-95.7718,40.5138,-370.2635,-95.7718,38.0689,-370.2635,-96.8242,44.6766,-340.1959,-95.7718,42.2317,-340.1959,-95.7718,44.6766,-340.1959,-96.8242,40.5138,-340.1959,-95.7718,38.0689,-340.1959 +,-95.7718,40.5138,-340.1959,-96.8242,31.8904,-340.1959,-95.7718,29.4456,-340.1959,-95.7718,31.8904,-340.1959,-96.8242,33.8182,-340.1959,-95.7718,33.8182,-370.2635,-95.7718,33.8182,-340.1959,-96.8242,29.4456,-370.2635,-95.7718,31.8904,-370.2635,-95.7718,29.4456,-370.2635,-96.8242,36.2631,-370.2635,-95.7718,36.2631,-340.1959,-95.7718,36.2631,-370.2635,-96.8242,31.8904,-370.2635,-95.7718,31.8904,-340.1959,-95.7718,31.8904,-370.2635,-96.8242,33.8182,-370.2635 +,-95.7718,36.2631,-370.2635,-95.7718,33.8182,-370.2635,-96.8242,29.4456,-340.1959,-95.7718,29.4456,-370.2635,-95.7718,29.4456,-340.1959,-96.8242,42.2317,-340.1959,-95.7718,42.2317,-370.2635,-95.7718,42.2317,-340.1959,-96.8242,36.2631,-340.1959,-95.7718,33.8182,-340.1959,-95.7718,36.2631,-340.1959,-96.8242,38.0689,-340.1959,-95.7718,38.0689,-370.2635,-95.7718,38.0689,-340.1959,-96.8242,44.6766,-370.2635,-95.7718,44.6766,-340.1959,-95.7718,44.6766,-370.2635 +,-96.8242,40.5138,-370.2635,-95.7718,40.5138,-340.1959,-95.7718,40.5138,-370.2635,-95.7718,26.5256,-373.3063,-95.7718,29.4456,-370.2635,-95.7718,31.8904,-370.2635,-95.7718,-55.0577,-330.9202,-95.7718,24.4739,-375.9316,-95.7718,-55.0577,-442.5062,-95.7718,49.7421,-376.1559,-95.7718,52.0576,-330.9202,-95.7718,52.0576,-442.5061,-95.7718,31.8904,-370.2635,-95.7718,33.8182,-340.1959,-95.7718,33.8182,-370.2635,-95.7718,36.2631,-370.2635,-95.7718,38.0689,-340.1959 +,-95.7718,38.0689,-370.2635,-95.7718,40.5138,-370.2635,-95.7718,42.2317,-340.1959,-95.7718,42.2317,-370.2635,-95.7718,26.5256,-337.6302,-95.7718,44.6766,-340.1959,-95.7718,29.4456,-340.1959,-95.7718,24.5697,-334.8188,-94.167,47.787,-373.3063,-95.7718,26.5256,-373.3063,-95.7718,47.787,-373.3063,-94.167,26.5256,-337.6302,-95.7718,47.787,-337.6302,-95.7718,26.5256,-337.6302,-94.167,49.7421,-334.8188,-95.7718,24.5697,-334.8188,-95.7718,49.7421,-334.8188 +,-94.167,24.5697,-334.8188,-95.7718,24.4739,-375.9316,-95.7718,24.5697,-334.8188,-95.7718,44.6766,-370.2635,-95.7718,47.787,-337.6302,-95.7718,47.787,-373.3063,-94.167,26.5256,-373.3063,-94.167,49.7421,-376.1559,-94.167,24.4739,-375.9316,-94.167,26.5256,-337.6302,-94.167,49.7421,-334.8188,-94.167,47.787,-337.6302,-94.167,47.787,-373.3063,-94.167,24.4739,-375.9316,-95.7718,49.7421,-376.1559,-95.7718,24.4739,-375.9316,-94.167,49.7421,-376.1559 +,-95.7718,49.7421,-334.8188,-95.7718,49.7421,-376.1559,-94.167,26.5256,-373.3063,-95.7718,26.5256,-337.6302,-95.7718,26.5256,-373.3063,-94.167,47.787,-337.6302,-95.7718,47.787,-373.3063,-95.7718,47.787,-337.6302,-100.5298,58.8036,-330.9202,-98.7008,58.3728,-330.9202,-151.7372,52.0576,-330.9203,-104.1832,58.8036,-330.9202,-97.085,57.1959,-442.5062,-98.7008,58.3728,-442.5062,-104.1832,52.0576,-442.5061,-104.1832,58.8036,-330.9202,-100.5298,58.8036,-442.5062 +,-100.5298,58.8036,-330.9202,-104.1832,58.8036,-442.5062,-151.7372,52.0576,-442.5061,-151.7372,58.8036,-330.9202,-104.1832,58.8036,-442.5062,-97.085,57.1959,-330.9202,-96.1153,55.5882,-442.5062,-96.1153,55.5882,-330.9202,-98.7008,58.3728,-330.9202,-97.085,57.1959,-442.5062,-97.085,57.1959,-330.9202,-98.7008,58.3728,-442.5062,-98.284,-67.991,-466.8922,-98.284,38.1967,-572.2172,-98.284,-67.991,-572.2172,-104.1832,-67.991,-462.5617,-98.284,38.1967,-466.8922 +,-98.284,-67.991,-466.8922,-98.284,38.1967,-572.2172,-104.1832,-67.991,-576.5476,-98.284,-67.991,-572.2172,-98.284,38.1967,-466.8922,-104.1832,41.9563,-576.5476,-98.284,38.1967,-572.2172,-96.8078,5.0172,-592.4279,-96.8077,38.2236,-832.5055,-96.8077,5.0172,-832.5055,-104.1832,4.1926,-586.4658,-96.8078,38.2236,-592.4279,-96.8078,5.0172,-592.4279,-96.8077,5.0172,-832.5055,-104.1832,4.1926,-586.4658,-96.8078,5.0172,-592.4279,-104.1832,39.0483,-838.4677 +,-96.8077,5.0172,-832.5055,-96.8077,38.2236,-832.5055,-104.1832,39.0483,-586.4658,-96.8077,38.2236,-832.5055,-96.8078,38.2236,-592.4279,-96.8078,-30.9675,183.7652,-96.8077,19.9596,82.9042,-96.8077,-30.9675,82.9042,-104.1832,-30.9675,183.7652,-96.8078,19.9596,183.7652,-96.8078,-30.9675,183.7652,-104.1832,19.9596,82.9042,-96.8077,-30.9675,82.9042,-96.8077,19.9596,82.9042,-104.1832,19.9596,183.7652,-96.8077,19.9596,82.9042,-96.8078,19.9596,183.7652 +,-98.284,-53.3171,48.4826,-98.284,37.7595,-54.7332,-98.284,-53.3171,-54.7332,-104.1832,-57.5139,53.8676,-98.284,37.7595,48.4826,-98.284,-53.3171,48.4826,-104.1832,-57.5139,-60.1182,-98.284,-53.3171,48.4826,-98.284,-53.3171,-54.7332,-104.1832,41.9563,-60.1182,-98.284,-53.3171,-54.7332,-98.284,37.7595,-54.7332,-104.1832,41.9563,53.8676,-98.284,37.7595,-54.7332,-98.284,37.7595,48.4826,-96.8078,4.1668,-78.139,-96.8077,43.8378,-319.925 +,-96.8077,4.1668,-319.925,-104.1832,-1.4613,-78.139,-96.8078,43.8378,-78.139,-96.8078,4.1668,-78.139,-104.1832,-1.4613,-319.925,-96.8078,4.1668,-78.139,-96.8077,4.1668,-319.925,-96.8077,43.8378,-319.925,-104.1832,-1.4613,-319.925,-96.8077,4.1668,-319.925,-104.1832,49.4658,-78.139,-96.8077,43.8378,-319.925,-96.8078,43.8378,-78.139,105.3385,-41.645,-391.5098,105.3385,-6.7892,-302.2769,105.3385,-41.645,-302.2769,105.3385,-41.645,-391.5098 +,111.9593,-6.7892,-401.1639,105.3385,-6.7892,-391.5098,111.9593,-41.645,-292.6229,105.3385,-41.645,-391.5098,105.3385,-41.645,-302.2769,111.9593,-6.7892,-292.6229,105.3385,-41.645,-302.2769,105.3385,-6.7892,-302.2769,105.3385,-6.7892,-391.5098,111.9593,-6.7892,-292.6229,105.3385,-6.7892,-302.2769,105.3385,-36.0847,-245.3376,105.3385,1.4972,-155.6205,105.3385,-36.0847,-155.6205,105.3385,-36.0847,-245.3376,111.9593,-4.1038,-250.7017,105.3385,1.4972,-245.3376 +,105.3385,-36.0847,-155.6205,111.9593,-41.645,-250.7017,105.3385,-36.0847,-245.3376,111.9593,-1.2983,-145.9298,105.3385,-36.0847,-155.6205,105.3385,1.4972,-155.6205,105.3385,34.0323,-389.6675,105.3385,34.0323,-155.6205,104.0056,-67.991,714.9974,32.9082,-60.178,714.9974,28.085,-67.991,714.9974,-96.3124,-57.069,226.2709,-17.5769,-57.069,120.3484,-17.5769,-57.069,226.2709,-96.3124,-57.069,120.3483,-96.3124,-67.991,226.2709,-96.3124,-67.991,120.3483 +,-17.5769,-57.069,120.3484,-96.3124,-67.991,120.3483,-4.5192,-67.991,120.3484,-17.5769,-57.069,226.2709,-4.5192,-67.991,120.3484,-4.5192,-67.991,226.2709,-96.3124,-67.991,226.2709,-17.5769,-57.069,226.2709,-4.5192,-67.991,226.2709,104.0056,-58.2846,265.5822,10.6297,-58.2846,153.9964,104.0056,-58.2846,153.9963,10.6297,-58.2846,153.9964,2.0026,-67.991,265.5823,2.0026,-67.991,153.9964,10.6297,-58.2846,265.5823,104.0056,-67.991,265.5822 +,2.0026,-67.991,265.5823,104.0056,-58.2846,265.5822,111.9593,-67.991,265.5822,104.0056,-67.991,153.9963,10.6297,-58.2846,153.9964,2.0026,-67.991,153.9964,-96.7703,-62.9193,244.2247,-40.5332,-62.9193,364.5499,-96.7703,-62.9193,364.55,-104.1832,-67.991,364.55,-96.7703,-62.9193,364.55,-83.2163,-67.991,364.55,-37.2794,-67.991,364.5499,-40.5332,-62.9193,244.2245,-37.2794,-67.991,244.2245,-83.2163,-67.991,244.2247,-40.5332,-62.9193,244.2245 +,-96.7703,-62.9193,244.2247,-32.7842,-64.0231,360.9411,-9.5529,-64.0231,281.227,-3.1567,-64.0231,360.9411,-32.7842,-67.991,244.2245,-32.7842,-64.0231,360.9411,-32.7842,-67.991,360.9411,-3.1567,-67.991,244.2245,-32.7842,-64.0231,244.2245,-32.7842,-67.991,244.2245,-3.1567,-67.991,360.9411,-3.1567,-64.0231,244.2245,-3.1567,-67.991,244.2245,-32.7842,-67.991,360.9411,-3.1567,-64.0231,360.9411,-3.1567,-67.991,360.9411,111.9593,-60.9615,551.7117 +,91.5792,-60.9615,454.7089,111.9593,-60.9615,434.7623,111.9593,-67.991,434.7623,31.1477,-60.9615,434.7623,24.6143,-67.991,434.7623,31.1477,-60.9615,434.7623,24.6143,-67.991,551.7117,24.6143,-67.991,434.7623,31.1477,-60.9615,551.7117,111.9593,-67.991,551.7117,24.6143,-67.991,551.7117,11.9584,-60.5609,286.3535,104.0056,-60.5609,378.6164,11.9584,-60.5609,378.6164,104.0056,-60.5609,427.1519,11.9584,-60.5609,427.1519,-1.9302,-60.5609,378.6164 +,-104.1832,-67.991,378.6164,-1.9302,-67.991,378.6164,11.9584,-60.5609,427.1519,104.0056,-67.991,427.1519,11.9584,-67.991,427.1519,-6.3183,-56.1568,378.6164,-104.1832,-60.5609,378.6164,-6.3183,-56.1568,447.9147,-1.9302,-60.5609,378.6164,-1.9302,-60.5609,447.9147,104.0056,-60.5609,427.1519,104.0056,-67.991,378.6164,104.0056,-67.991,427.1519,104.0056,-60.5609,378.6164,104.0056,-67.991,286.3533,-104.1832,-60.5609,447.9147,-1.9302,-67.991,447.9147 +,-104.1832,-67.991,447.9147,-96.792,-64.0079,0.925,-96.792,-67.991,107.3426,-96.792,-67.991,0.925,21.4861,-64.0079,0.925,-96.792,-67.991,0.925,21.4861,-67.991,0.925,21.4861,-64.0079,0.925,-80.9007,-64.0079,10.2676,-96.792,-64.0079,0.925,-96.792,-64.0079,107.3426,-14.6208,-67.991,107.3426,-96.792,-67.991,107.3426,-96.3123,-64.199,611.7422,-96.3123,-61.236,704.0021,-96.3123,-64.199,704.0021,104.0056,-67.991,704.0021 +,104.0049,-64.199,611.7422,104.0056,-67.991,611.7422,104.0056,-64.199,566.8492,104.0056,-67.991,566.8492,2.6491,-67.991,704.0021,104.0056,-64.199,704.0021,104.0056,-67.991,704.0021,104.0056,-67.991,566.8492,34.0179,-64.199,566.8492,32.3532,-67.991,566.8492,-96.3124,-67.991,704.0021,2.6491,-64.199,704.0021,-96.3124,-67.991,611.7422,-96.3124,-67.991,704.0021,32.9082,-60.178,796.1942,104.0056,-60.178,714.9974,104.0056,-60.178,796.1942 +,104.0056,-67.991,796.1942,32.9082,-60.178,796.1942,104.0056,-60.178,796.1942,28.085,-67.991,795.6474,32.9082,-60.178,714.9974,32.9082,-60.178,796.1942,104.0056,-67.991,796.1942,104.0056,-60.178,714.9974,104.0056,-67.991,714.9974,23.0675,-62.3494,795.1008,-26.7093,-62.3494,714.9974,23.0675,-62.3494,714.9974,-76.9584,-62.3494,739.3785,-96.3124,-62.3494,714.9974,-96.3124,-67.991,714.9974,-96.3124,-62.3494,795.1008,-96.3124,-67.991,795.1008 +,-96.3124,-67.991,795.1008,-26.7093,-62.3494,795.1008,-23.4336,-67.991,795.1008,-26.7093,-67.991,714.9974,23.0675,-62.3494,714.9974,-26.7093,-62.3494,714.9974,-23.4336,-67.991,795.1008,23.0675,-62.3494,795.1008,28.085,-67.991,795.6474,28.085,-67.991,714.9974,23.0675,-62.3494,795.1008,23.0675,-62.3494,714.9974,-96.3124,-62.3494,714.9974,-96.3124,-67.991,714.9974,55.0449,-61.3328,888.1176,104.0056,-61.3328,804.6937,104.0056,-61.3328,888.1176 +,104.0056,-67.991,888.1176,104.0056,-61.3328,804.6937,104.0056,-67.991,804.6937,51.2449,-67.991,804.6937,55.0449,-61.3328,888.1176,51.2449,-67.991,888.1176,104.0056,-67.991,804.6937,55.0449,-61.3328,804.6937,51.2449,-67.991,804.6937,-74.232,-64.199,585.8642,-74.232,-60.2452,481.1682,-74.232,-64.199,481.1682,-11.5797,-64.199,585.8642,-74.232,-60.2452,585.8642,-74.232,-64.199,585.8642,18.8083,-60.2452,468.9671,-83.3966,-67.991,468.9671 +,18.8083,-67.991,468.9671,18.8083,-60.2452,561.0539,18.8083,-67.991,468.9671,18.8083,-67.991,561.0539,-96.3124,-62.4253,888.1176,-26.685,-62.4253,804.6938,-26.685,-62.4253,888.1176,-96.3124,-67.991,804.6938,-26.685,-62.4253,804.6938,-96.3124,-62.4253,804.6938,-96.3124,-67.991,804.6938,-96.3124,-62.4253,888.1176,-96.3124,-67.991,888.1176,-22.8782,-67.991,888.1176,-26.685,-62.4253,804.6938,-22.8782,-67.991,804.6938,-76.9584,-62.3494,770.7198 +,-37.6226,-58.9017,770.7198,-37.6226,-62.3494,770.7198,-26.7093,-62.3494,795.1008,-76.9584,-62.3494,770.7198,-37.6226,-62.3494,770.7198,-37.6226,-62.3494,739.3785,-96.3124,-62.3494,795.1008,-76.9584,-58.9017,770.7198,-40.7579,-58.9017,765.412,-37.6226,-58.9017,770.7198,-76.9584,-62.3494,739.3785,-76.9584,-58.9017,770.7198,-76.9584,-62.3494,770.7198,-37.6226,-62.3494,770.7198,-37.6226,-58.9017,739.3785,-37.6226,-62.3494,739.3785,-37.6226,-62.3494,739.3785 +,-76.9584,-58.9017,739.3785,-76.9584,-62.3494,739.3785,2.6491,-64.199,704.0021,104.0049,-64.199,611.7422,104.0056,-64.199,704.0021,-76.9584,-58.9017,739.3785,-73.8232,-58.9017,765.412,-37.6226,-58.9017,739.3785,-40.7579,-58.9017,744.686,-73.8232,-58.9017,744.686,-73.8232,-58.9017,765.412,-40.7579,-62.2761,765.412,-40.7579,-58.9017,765.412,-40.7579,-62.2761,765.412,-73.8231,-62.2761,744.686,-40.7579,-62.2761,744.686,-73.8232,-58.9017,744.686 +,-73.8232,-62.2761,765.412,-73.8232,-58.9017,765.412,-40.7579,-58.9017,765.412,-40.7579,-62.2761,744.686,-40.7579,-58.9017,744.686,-40.7579,-58.9017,744.686,-73.8231,-62.2761,744.686,-73.8232,-58.9017,744.686,34.0179,-64.199,566.8492,2.649,-64.199,611.7422,1.329,-67.991,611.7422,-96.3123,-64.199,611.7422,-96.3124,-67.991,611.7422,-3.5166,-61.236,704.0021,-96.3123,-61.236,611.7422,-3.5166,-61.236,611.7422,-96.3123,-64.199,704.0021 +,-3.5166,-61.236,704.0021,-3.5166,-61.236,611.7422,-96.3123,-61.236,611.7422,2.6491,-64.199,704.0021,-3.5166,-61.236,611.7422,2.649,-64.199,611.7422,-6.3183,-56.1568,447.9147,-104.1832,-56.1568,378.6164,-6.3183,-56.1568,378.6164,-6.3183,-56.1568,447.9147,-1.9302,-60.5609,447.9147,7.577,-60.5609,286.3535,7.577,-60.5609,378.6164,104.0056,-67.991,286.3533,11.9584,-60.5609,286.3535,11.9584,-67.991,286.3535,8.1641,-60.5609,427.1519 +,4.3699,-63.547,286.3535,4.3699,-67.991,378.6164,4.3699,-67.991,286.3535,7.577,-60.5609,286.3535,4.3699,-63.547,286.3535,7.577,-60.5609,286.3535,4.3699,-63.547,378.6164,4.3699,-63.547,286.3535,8.1641,-60.5609,427.1519,4.3699,-63.547,427.1519,7.577,-60.5609,378.6164,8.1641,-60.5609,427.1519,61.6545,-67.991,140.1047,98.0815,-64.3233,134.523,102.0779,-67.991,140.1046,61.6545,-67.991,140.1047,65.0486,-64.3233,9.4717 +,65.0486,-64.3233,134.5231,102.0779,-67.991,140.1046,98.0815,-64.3233,9.4717,102.0779,-67.991,3.8901,61.6545,-67.991,3.8901,98.0815,-64.3233,9.4717,65.0486,-64.3233,9.4717,98.0815,-64.3233,134.523,65.0486,-64.3233,9.4717,98.0815,-64.3233,9.4717,9.6437,-64.199,481.1682,9.6437,-60.2452,554.2645,9.6437,-64.199,554.2645,-6.5472,-60.2452,598.0654,-74.232,-60.2452,585.8642,-11.5797,-60.2452,585.8642,18.8083,-60.2452,468.9671 +,-74.232,-60.2452,481.1682,-83.3966,-60.2452,468.9671,18.8083,-60.2452,561.0539,9.6437,-60.2452,481.1682,-83.3966,-60.2452,598.0654,-74.232,-64.199,481.1682,9.6437,-60.2452,481.1682,9.6437,-64.199,481.1682,-74.232,-64.199,585.8642,-74.232,-64.199,481.1682,9.6437,-64.199,554.2645,111.9593,-58.2846,153.9963,104.0056,50.0976,153.9963,104.0056,-58.2846,153.9963,111.9593,-58.2846,153.9963,104.0056,-58.2846,153.9963,111.9593,-58.2846,265.5822 +,104.0056,50.0976,265.5822,111.9593,52.0576,265.5822,105.058,33.5939,226.2391,105.058,36.0388,256.3066,105.058,33.5939,256.3066,105.058,24.9705,226.2391,105.058,27.4154,256.3066,105.058,24.9705,256.3066,105.058,37.7567,226.2391,105.058,40.2016,256.3066,105.058,37.7567,256.3066,105.058,29.3432,226.2391,105.058,31.7881,256.3066,105.058,29.3432,256.3066,104.0056,40.2016,226.2391,105.058,37.7567,226.2391,104.0056,37.7567,226.2391 +,104.0056,36.0388,226.2391,105.058,33.5939,226.2391,104.0056,33.5939,226.2391,104.0056,37.7567,256.3066,105.058,40.2016,256.3066,104.0056,40.2016,256.3066,104.0056,33.5939,256.3066,105.058,36.0388,256.3066,104.0056,36.0388,256.3066,104.0056,24.9705,256.3066,105.058,27.4154,256.3066,104.0056,27.4154,256.3066,104.0056,29.3432,226.2391,105.058,29.3432,256.3066,104.0056,29.3432,256.3066,104.0056,27.4154,226.2391,105.058,24.9705,226.2391 +,104.0056,24.9705,226.2391,104.0056,31.7881,256.3066,105.058,31.7881,226.2391,104.0056,31.7881,226.2391,104.0056,27.4154,256.3066,105.058,27.4154,226.2391,104.0056,27.4154,226.2391,104.0056,31.7881,226.2391,105.058,29.3432,226.2391,104.0056,29.3432,226.2391,104.0056,24.9705,226.2391,105.058,24.9705,256.3066,104.0056,24.9705,256.3066,104.0056,37.7567,226.2391,105.058,37.7567,256.3066,104.0056,37.7567,256.3066,104.0056,29.3432,256.3066 +,105.058,31.7881,256.3066,104.0056,31.7881,256.3066,104.0056,33.5939,226.2391,105.058,33.5939,256.3066,104.0056,33.5939,256.3066,104.0056,40.2016,256.3066,105.058,40.2016,226.2391,104.0056,40.2016,226.2391,104.0056,36.0388,256.3066,105.058,36.0388,226.2391,104.0056,36.0388,226.2391,104.0056,27.4154,226.2391,104.0056,22.0506,223.1961,104.0056,43.312,223.1961,104.0056,-58.2846,265.5822,104.0056,19.9989,220.5709,104.0056,20.0947,261.6837 +,104.0056,45.2671,220.3466,104.0056,50.0976,265.5822,104.0056,45.2671,261.6837,104.0056,29.3432,256.3066,104.0056,27.4154,226.2391,104.0056,29.3432,226.2391,104.0056,33.5939,256.3066,104.0056,31.7881,226.2391,104.0056,33.5939,226.2391,104.0056,37.7567,256.3066,104.0056,36.0388,226.2391,104.0056,37.7567,226.2391,104.0056,22.0506,258.8724,104.0056,24.9705,226.2391,104.0056,24.9705,256.3066,-104.1832,-67.991,244.2247,-104.1832,-62.9193,244.2247 +,-40.5332,-62.9193,364.5499,-37.2794,-67.991,364.5499,-96.7703,-8.2102,244.2247,-99.942,-5.0422,244.2247,-104.1832,-5.0422,244.2247,-96.7703,-62.9193,364.55,-96.7703,-8.2102,244.2247,-96.7703,-62.9193,244.2247,-99.942,-5.0422,244.2247,-104.1832,-5.0422,364.55,-104.1832,-5.0422,244.2247,104.825,5.9653,281.2092,104.825,39.4225,363.8947,104.825,5.9653,363.8947,104.825,5.9653,281.2092,111.9593,41.9563,274.9472,104.825,39.4225,281.2092 +,104.825,5.9653,363.8947,111.9593,-3.2072,274.9472,104.825,5.9653,281.2092,111.9593,41.9563,370.1569,104.825,5.9653,363.8947,104.825,39.4225,363.8947,111.9593,41.9563,274.9472,104.825,39.4225,363.8947,104.825,39.4225,281.2092,111.9593,52.0576,383.777,106.2042,58.9083,383.777,103.6508,56.3578,383.777,103.6508,2.6115,439.0366,103.6508,56.3578,497.7629,103.6508,2.6115,497.7629,103.6508,2.6115,439.0366,111.9593,-41.3755,439.0366 +,103.6508,-52.0108,439.0366,111.9593,58.9083,439.0366,106.2042,58.9083,497.7629,106.2042,58.9083,439.0366,103.6508,2.6115,383.777,103.6508,56.3578,439.0366,111.9593,2.6115,497.7629,103.6508,2.6115,439.0366,103.6508,2.6115,497.7629,106.2042,58.9083,497.7629,111.9593,52.0576,497.7629,103.6508,56.3578,497.7629,111.9593,-41.3755,439.0366,103.6508,-52.0108,383.777,103.6508,-52.0108,439.0366,103.6508,-52.0108,383.777,103.6508,2.6115,383.777 +,111.9593,-41.3755,383.777,111.9593,2.6115,383.777,-14.6208,-64.0079,107.3426,21.4861,-67.991,23.3717,-14.6208,-67.991,107.3426,21.4861,-64.0079,23.3717,21.4861,-67.991,0.925,104.0056,50.0976,153.9963,104.0056,40.2016,256.3066,104.0056,43.312,258.8724,104.0056,22.0506,223.1961,102.4008,43.312,223.1961,104.0056,43.312,223.1961,104.0056,43.312,258.8724,102.4008,22.0506,258.8724,104.0056,22.0506,258.8724,104.0056,20.0947,261.6837 +,102.4008,45.2671,261.6837,104.0056,45.2671,261.6837,104.0056,19.9989,220.5709,102.4008,20.0947,261.6837,104.0056,20.0947,261.6837,104.0056,40.2016,226.2391,102.4008,45.2671,220.3466,102.4008,22.0506,223.1961,102.4008,19.9989,220.5709,102.4008,22.0506,258.8724,102.4008,45.2671,261.6837,102.4008,20.0947,261.6837,102.4008,43.312,223.1961,104.0056,45.2671,220.3466,102.4008,19.9989,220.5709,104.0056,19.9989,220.5709,104.0056,45.2671,261.6837 +,102.4008,45.2671,220.3466,104.0056,45.2671,220.3466,104.0056,22.0506,258.8724,102.4008,22.0506,223.1961,104.0056,22.0506,223.1961,104.0056,43.312,223.1961,102.4008,43.312,258.8724,104.0056,43.312,258.8724,104.3491,55.6081,265.5822,105.3188,57.2158,265.5822,111.9593,58.8235,265.5822,151.2628,52.0576,265.5822,111.9593,52.0576,153.9963,106.9347,58.3927,153.9963,105.3188,57.2158,153.9963,108.7636,58.8235,153.9963,111.9593,58.8235,265.5822 +,108.7636,58.8235,265.5822,111.9593,58.8235,153.9963,151.2628,52.0576,153.9963,151.2628,58.8235,153.9963,111.9593,58.8235,153.9963,151.2628,58.8235,265.5822,104.3491,55.6081,153.9963,105.3188,57.2158,265.5822,104.3491,55.6081,265.5822,105.3188,57.2158,153.9963,106.9347,58.3927,265.5822,105.3188,57.2158,265.5822,106.9347,58.3927,153.9963,-26.388,-64.0231,281.227,-9.5529,-60.6175,281.227,-9.5529,-64.0231,281.227,-3.1567,-64.0231,244.2245 +,-9.5529,-64.0231,258.6301,-32.7842,-64.0231,244.2245,-26.388,-64.0231,281.227,-26.388,-64.0231,258.6301,-26.388,-60.6175,281.227,-9.5529,-60.6175,258.6301,-9.5529,-60.6175,281.227,-9.5529,-64.0231,281.227,-9.5529,-60.6175,258.6301,-9.5529,-64.0231,258.6301,-26.388,-64.0231,258.6301,-26.388,-60.6175,281.227,-26.388,-64.0231,281.227,-9.5529,-64.0231,258.6301,-26.388,-60.6175,258.6301,-26.388,-64.0231,258.6301,103.6508,56.3578,383.777 +,106.2042,58.9083,439.0366,103.6508,56.3578,439.0366,106.2042,58.9083,497.7629,103.6508,56.3578,497.7629,111.9593,58.9083,383.777,106.2042,58.9083,383.777,-96.7703,-8.2102,364.55,-99.942,-5.0422,244.2247,-96.7703,-8.2102,244.2247,-104.1832,-5.0422,364.55,-99.942,-5.0422,364.55,-96.7703,-8.2102,364.55,43.5741,-60.9615,454.7089,43.5741,-58.3309,531.7653,43.5741,-60.9615,531.7653,31.1477,-60.9615,551.7117,91.5792,-60.9615,531.7652 +,31.1477,-60.9615,434.7623,43.5741,-60.9615,454.7089,43.5741,-60.9615,531.7653,91.5792,-58.3309,531.7652,43.5741,-58.3309,454.7089,91.5792,-58.3309,454.7089,91.5792,-60.9615,531.7652,91.5792,-58.3309,454.7089,91.5792,-60.9615,454.7089,43.5741,-60.9615,531.7653,91.5792,-58.3309,531.7652,91.5792,-60.9615,531.7652,91.5792,-60.9615,454.7089,43.5741,-58.3309,454.7089,43.5741,-60.9615,454.7089,12.9068,-64.0079,25.5059,12.9068,-61.4873,10.2676 +,12.9068,-64.0079,10.2676,21.4861,-64.0079,23.3717,-17.1446,-64.0079,95.2195,12.9068,-64.0079,25.5059,-14.6208,-64.0079,107.3426,-80.9007,-64.0079,95.2195,12.9068,-64.0079,10.2676,-96.792,-64.0079,107.3426,-80.9007,-61.4873,10.2676,12.9068,-61.4873,25.5059,-17.1446,-61.4873,95.2195,-80.9007,-64.0079,10.2676,-80.9007,-61.4873,95.2195,-80.9007,-64.0079,95.2195,-80.9007,-64.0079,95.2195,-17.1446,-61.4873,95.2195,-17.1446,-64.0079,95.2195 +,-17.1446,-64.0079,95.2195,12.9068,-61.4873,25.5059,12.9068,-64.0079,10.2676,-80.9007,-61.4873,10.2676,-80.9007,-64.0079,10.2676,104.4903,-50.9838,515.9831,104.4903,35.4263,613.2112,104.4903,-50.9838,613.2112,111.9593,-57.5139,507.6042,104.4903,35.4263,515.9831,104.4903,-50.9838,515.9831,104.4903,-50.9838,613.2112,111.9593,-57.5139,507.6042,104.4903,-50.9838,515.9831,104.4903,35.4263,613.2112,111.9593,-57.5139,621.5903,104.4903,-50.9838,613.2112 +,111.9593,41.9563,507.6042,104.4903,35.4263,613.2112,104.4903,35.4263,515.9831,105.3385,1.4972,645.2549,105.3385,34.0323,789.5849,105.3385,1.4972,789.5849,105.3385,1.4972,645.2549,111.9593,39.0483,633.7585,105.3385,34.0323,645.2549,111.9593,-4.1038,784.2208,105.3385,1.4972,645.2549,105.3385,1.4972,789.5849,105.3385,34.0323,878.4268,111.9593,-1.2983,888.1176,105.3385,1.4972,878.4268,111.9593,39.0483,785.8317,105.3385,34.0323,878.4268 +,105.3385,34.0323,789.5849,151.2628,58.9083,439.0366,111.9593,58.9083,497.7629,151.2628,52.0576,497.7629,151.2628,58.9083,497.7629,111.9593,58.9083,497.7629,111.9593,58.9083,383.777,151.2628,52.0576,383.777,151.2628,58.9083,383.777,-95.7718,52.0576,592.4161,-104.1832,-55.0577,592.4161,-95.7718,-55.0577,592.4161,-104.1832,52.0576,704.002,-95.7718,-55.0577,704.0021,-104.1832,-55.0577,704.0021,-96.8242,40.5138,633.9777,-96.8242,38.0689,603.9101 +,-96.8242,38.0689,633.9777,-96.8242,31.8904,633.9777,-96.8242,29.4456,603.9101,-96.8242,29.4456,633.9777,-96.8242,44.6766,633.9777,-96.8242,42.2317,603.9101,-96.8242,42.2317,633.9777,-96.8242,36.2631,633.9777,-96.8242,33.8182,603.9101,-96.8242,33.8182,633.9777,-96.8242,42.2317,603.9101,-95.7718,44.6766,603.9101,-95.7718,42.2317,603.9101,-96.8242,38.0689,603.9101,-95.7718,40.5138,603.9101,-95.7718,38.0689,603.9101,-96.8242,44.6766,633.9777 +,-95.7718,42.2317,633.9777,-95.7718,44.6766,633.9777,-96.8242,40.5138,633.9777,-95.7718,38.0689,633.9777,-95.7718,40.5138,633.9777,-96.8242,31.8904,633.9777,-95.7718,29.4456,633.9777,-95.7718,31.8904,633.9777,-96.8242,33.8182,633.9777,-95.7718,33.8182,603.9101,-95.7718,33.8182,633.9777,-96.8242,29.4456,603.9101,-95.7718,31.8904,603.9101,-95.7718,29.4456,603.9101,-96.8242,36.2631,603.9101,-95.7718,36.2631,633.9777,-95.7718,36.2631,603.9101 +,-96.8242,31.8904,603.9101,-95.7718,31.8904,633.9777,-95.7718,31.8904,603.9101,-96.8242,33.8182,603.9101,-95.7718,36.2631,603.9101,-95.7718,33.8182,603.9101,-96.8242,29.4456,633.9777,-95.7718,29.4456,603.9101,-95.7718,29.4456,633.9777,-96.8242,42.2317,633.9777,-95.7718,42.2317,603.9101,-95.7718,42.2317,633.9777,-96.8242,36.2631,633.9777,-95.7718,33.8182,633.9777,-95.7718,36.2631,633.9777,-96.8242,38.0689,633.9777,-95.7718,38.0689,603.9101 +,-95.7718,38.0689,633.9777,-96.8242,44.6766,603.9101,-95.7718,44.6766,633.9777,-95.7718,44.6766,603.9101,-96.8242,40.5138,603.9101,-95.7718,40.5138,633.9777,-95.7718,40.5138,603.9101,-95.7718,26.5256,600.8674,-95.7718,29.4456,603.9101,-95.7718,31.8904,603.9101,-95.7718,24.5697,639.3549,-95.7718,-55.0577,592.4161,-95.7718,-55.0577,704.0021,-95.7718,49.7421,639.3549,-95.7718,52.0576,592.4161,-95.7718,49.7421,598.0178,-95.7718,31.8904,603.9101 +,-95.7718,33.8182,633.9777,-95.7718,33.8182,603.9101,-95.7718,36.2631,603.9101,-95.7718,38.0689,633.9777,-95.7718,38.0689,603.9101,-95.7718,40.5138,603.9101,-95.7718,42.2317,633.9777,-95.7718,42.2317,603.9101,-95.7718,26.5256,636.5433,-95.7718,24.4739,598.2421,-95.7718,44.6766,633.9777,-95.7718,29.4456,633.9777,-95.7718,52.0576,704.002,-94.167,47.787,600.8674,-95.7718,26.5256,600.8674,-95.7718,47.787,600.8674,-94.167,26.5256,636.5433 +,-95.7718,47.787,636.5433,-95.7718,26.5256,636.5433,-94.167,49.7421,639.3549,-95.7718,24.5697,639.3549,-95.7718,49.7421,639.3549,-94.167,24.5697,639.3549,-95.7718,24.4739,598.2421,-95.7718,24.5697,639.3549,-95.7718,44.6766,603.9101,-95.7718,47.787,636.5433,-95.7718,47.787,600.8674,-94.167,26.5256,600.8674,-94.167,49.7421,598.0178,-94.167,24.4739,598.2421,-94.167,26.5256,636.5433,-94.167,49.7421,639.3549,-94.167,47.787,636.5433 +,-94.167,47.787,600.8674,-94.167,24.4739,598.2421,-95.7718,49.7421,598.0178,-95.7718,24.4739,598.2421,-94.167,49.7421,598.0178,-95.7718,49.7421,639.3549,-95.7718,49.7421,598.0178,-94.167,26.5256,600.8674,-95.7718,26.5256,636.5433,-95.7718,26.5256,600.8674,-94.167,47.787,636.5433,-95.7718,47.787,600.8674,-95.7718,47.787,636.5433,-100.5298,58.8036,704.0021,-98.7008,58.3728,704.0021,-151.7372,52.0576,704.002,-104.1832,58.8036,704.0021 +,-97.085,57.1959,592.4161,-98.7008,58.3728,592.4161,-104.1832,52.0576,592.4161,-104.1832,58.8036,704.0021,-100.5298,58.8036,592.4161,-100.5298,58.8036,704.0021,-104.1832,58.8036,592.4161,-151.7372,52.0576,592.4161,-151.7372,58.8036,704.0021,-104.1832,58.8036,592.4161,-97.085,57.1959,704.0021,-96.1153,55.5882,592.4161,-96.1153,55.5882,704.0021,-98.7008,58.3728,704.0021,-97.085,57.1959,592.4161,-97.085,57.1959,704.0021,-98.7008,58.3728,592.4161 +,-98.284,-67.991,572.3605,-98.284,41.9563,458.3748,-98.284,-67.991,458.3748,-104.1832,-67.991,572.3605,-98.284,41.9563,572.3605,-98.284,-67.991,572.3605,-104.1832,-67.991,458.3748,-98.284,-67.991,572.3605,-98.284,-67.991,458.3748,-104.1832,41.9563,458.3748,-98.284,-67.991,458.3748,-98.284,41.9563,458.3748,-104.1832,41.9563,572.3605,-98.284,41.9563,458.3748,-98.284,41.9563,572.3605,-96.8078,5.099,441.9029,-96.8077,38.1418,203.0084 +,-96.8077,5.099,203.0084,-104.1832,4.1926,448.4567,-96.8078,38.1418,441.9029,-96.8078,5.099,441.9029,-104.1832,4.1926,196.4547,-96.8078,5.099,441.9029,-96.8077,5.099,203.0084,-96.8077,38.1418,203.0084,-104.1832,4.1926,196.4547,-96.8077,5.099,203.0084,-96.8078,38.1418,441.9029,-104.1832,39.0483,196.4547,-96.8077,38.1418,203.0084,-96.8078,-55.0577,888.1176,-96.8077,-8.0877,714.9974,-96.8077,-55.0577,714.9974,-104.1832,-55.0577,888.1176 +,-96.8078,-8.0877,888.1176,-96.8078,-55.0577,888.1176,-104.1832,-55.0577,714.9974,-96.8078,-55.0577,888.1176,-96.8077,-55.0577,714.9974,-96.8077,-8.0877,714.9974,-104.1832,-55.0577,714.9974,-96.8077,-55.0577,714.9974,-104.1832,-3.98,888.1176,-96.8077,-8.0877,714.9974,-96.8078,-8.0877,888.1176,-96.8078,4.1668,888.1176,-96.8077,40.9297,714.9974,-96.8077,4.1668,714.9974,-104.1832,-1.4613,888.1176,-96.8078,40.9297,888.1176,-96.8078,4.1668,888.1176 +,-104.1832,-1.4613,714.9974,-96.8078,4.1668,888.1176,-96.8077,4.1668,714.9974,-104.1832,46.5578,714.9974,-96.8077,4.1668,714.9974,-96.8077,40.9297,714.9974,-104.1832,46.5578,888.1176,-96.8077,40.9297,714.9974,-96.8078,40.9297,888.1176,105.3385,-41.645,643.4125,105.3385,-6.7892,732.6456,105.3385,-41.645,732.6456,111.9593,-41.645,633.7585,105.3385,-6.7892,643.4125,105.3385,-41.645,643.4125,111.9593,-41.645,742.2996,105.3385,-41.645,643.4125 +,105.3385,-41.645,732.6456,111.9593,-6.7892,742.2996,105.3385,-41.645,732.6456,105.3385,-6.7892,732.6456,111.9593,-6.7892,633.7585,105.3385,-6.7892,732.6456,105.3385,-6.7892,643.4125,105.3385,-36.0847,789.5849,105.3385,1.4972,878.4268,105.3385,-36.0847,878.4268,105.3385,-36.0847,789.5849,111.9593,-4.1038,784.2208,105.3385,1.4972,789.5849,105.3385,-36.0847,878.4268,111.9593,-41.645,784.2208,105.3385,-36.0847,789.5849,111.9593,-1.2983,888.1176 +,105.3385,-36.0847,878.4268,105.3385,1.4972,878.4268,105.3385,34.0323,645.2549,105.3385,34.0323,878.4268,105.3385,1.4972,878.4268,53.2389,-67.991,131.5233,54.1128,-63.9265,47.4082,54.1128,-63.9265,133.241,6.9559,-63.9265,140.1047,57.6046,-67.991,140.1047,6.9559,-67.991,140.1047,57.6046,-63.9265,40.5444,21.1403,-67.991,40.5443,57.6046,-67.991,40.5444,22.8807,-63.9265,47.4082,6.9559,-63.9265,71.8912,21.1403,-63.9265,40.5443 +,10.4477,-63.9265,133.241,6.9559,-63.9265,140.1047,57.6046,-63.9265,140.1047,54.1128,-63.9265,47.4082,57.6046,-63.9265,40.5444,6.9559,-63.9265,71.8912,21.1403,-67.991,40.5443,21.1403,-63.9265,40.5443,53.2389,-67.991,49.126,22.8807,-63.9265,47.4082,54.1128,-63.9265,47.4082,54.1128,-63.9265,133.241,11.3216,-67.991,131.5233,10.4477,-63.9265,76.1227,11.3216,-67.991,77.1818,11.3216,-67.991,131.5233,54.1128,-63.9265,133.241 +,10.4477,-63.9265,133.241,57.6046,-63.9265,40.5444,57.6046,-67.991,140.1047,57.6046,-63.9265,140.1047,23.3163,-67.991,49.126,22.8807,-63.9265,47.4082,-83.3966,-60.2452,468.9671,-83.3966,-67.991,598.0654,-83.3966,-67.991,468.9671,18.8083,-67.991,561.0539,-6.5472,-60.2452,598.0654,18.8083,-60.2452,561.0539,9.6437,-60.2452,554.2645,-11.5797,-64.199,585.8642,9.6437,-60.2452,554.2645,-11.5797,-60.2452,585.8642,-83.3966,-60.2452,598.0654 +,-6.5472,-67.991,598.0654,-83.3966,-67.991,598.0654,-1.9302,-67.991,378.6164,-1.9302,-60.5609,447.9147,-1.9302,-60.5609,378.6164,4.3699,-63.547,427.1519,4.3699,-67.991,378.6164,4.3699,-63.547,378.6164,32.3532,-67.991,566.8492,2.649,-64.199,611.7422,1.329,-67.991,611.7422,21.3817,-60.6966,670.6756,77.3522,-62.5644,669.3622,78.4952,-60.6966,670.6756,83.0624,-64.199,675.923,83.0624,-60.6966,599.806,83.0624,-64.199,599.806 +,16.8145,-64.199,618.8954,16.8145,-60.6966,675.923,16.8145,-64.199,675.923,16.8145,-60.6966,618.8954,32.3325,-60.6966,605.0536,21.3817,-60.6966,621.511,29.5167,-60.6966,599.806,78.4953,-60.6966,605.0536,16.8145,-60.6966,675.923,78.4952,-60.6966,670.6756,83.0624,-60.6966,675.923,16.8145,-64.199,618.8954,29.5167,-60.6966,599.806,16.8145,-60.6966,618.8954,83.0624,-64.199,599.806,29.5167,-60.6966,599.806,29.5167,-64.199,599.806 +,21.3817,-60.6966,621.511,22.5247,-62.5644,669.3622,21.3817,-60.6966,670.6756,83.0624,-60.6966,599.806,21.3817,-60.6966,670.6756,77.3522,-62.5644,606.367,32.3325,-60.6966,605.0536,78.4953,-60.6966,605.0536,78.4952,-60.6966,670.6756,77.3522,-62.5644,606.367,78.4953,-60.6966,605.0536,21.3817,-60.6966,621.511,33.0372,-62.5644,606.367,22.5247,-62.5644,622.1656,-17.0514,-62.071,-476.0645,-14.8761,-62.071,-521.5942,-14.8761,-62.071,-476.0645 +,-17.0514,-63.6416,-521.5942,-17.0514,-62.071,-476.0645,-17.0514,-63.6416,-476.0645,-14.8761,-63.6416,-521.5942,-17.0514,-62.071,-521.5942,-17.0514,-63.6416,-521.5942,-14.8761,-63.6416,-476.0645,-14.8761,-62.071,-521.5942,-14.8761,-63.6416,-521.5942,-13.7087,-63.6416,-476.0645,-13.7087,-62.3692,-459.9679,-13.7087,-62.3692,-476.0645,-14.8761,-63.6416,-476.0645,-13.7087,-62.3692,-476.0645,-14.8761,-62.071,-476.0645,-17.0764,-61.2282,-459.9679,-13.7087,-63.6416,-459.9679 +,-18.2188,-63.6416,-459.9679,-17.0514,-63.6416,-476.0645,-18.2188,-62.3692,-476.0645,-18.2188,-63.6416,-476.0645,-18.2188,-62.3692,-476.0645,-18.2188,-63.6416,-459.9679,-18.2188,-63.6416,-476.0645,-17.0764,-61.2282,-476.0645,-17.0514,-62.071,-476.0645,-13.8618,-61.7987,-476.0645,-14.2799,-61.381,-476.0645,-14.8511,-61.2282,-476.0645,-17.6476,-61.381,-476.0645,-18.0657,-61.7987,-476.0645,-14.8511,-61.2282,-476.0645,-14.2799,-61.381,-459.9679,-14.8511,-61.2282,-459.9679 +,-14.2799,-61.381,-476.0645,-13.8618,-61.7987,-459.9679,-14.2799,-61.381,-459.9679,-13.8618,-61.7987,-476.0645,-13.8618,-61.7987,-459.9679,-17.0764,-61.2282,-459.9679,-17.6476,-61.381,-476.0645,-17.0764,-61.2282,-476.0645,-17.6476,-61.381,-459.9679,-18.0657,-61.7987,-476.0645,-17.6476,-61.381,-476.0645,-18.0657,-61.7987,-459.9679,-18.0657,-61.7987,-476.0645,-10.7825,-62.071,-476.0645,-8.6071,-62.071,-521.5942,-8.6071,-62.071,-476.0645,-10.7825,-63.6416,-521.5942 +,-10.7825,-62.071,-476.0645,-10.7825,-63.6416,-476.0645,-8.6071,-63.6416,-521.5942,-10.7825,-62.071,-521.5942,-10.7825,-63.6416,-521.5942,-8.6071,-63.6416,-476.0645,-8.6071,-62.071,-521.5942,-8.6071,-63.6416,-521.5942,-7.4398,-63.6416,-476.0645,-7.4398,-62.3692,-459.9679,-7.4398,-62.3692,-476.0645,-8.6071,-63.6416,-476.0645,-7.4398,-62.3692,-476.0645,-8.6071,-62.071,-476.0645,-10.8074,-61.2282,-459.9679,-7.4398,-63.6416,-459.9679,-11.9498,-63.6416,-459.9679 +,-10.7825,-63.6416,-476.0645,-11.9498,-62.3692,-476.0645,-11.9498,-63.6416,-476.0645,-11.9498,-62.3692,-476.0645,-11.9498,-63.6416,-459.9679,-11.9498,-63.6416,-476.0645,-10.8074,-61.2282,-476.0645,-10.7825,-62.071,-476.0645,-7.5928,-61.7987,-476.0645,-8.011,-61.381,-476.0645,-8.5822,-61.2282,-476.0645,-11.3786,-61.381,-476.0645,-11.7968,-61.7987,-476.0645,-8.5822,-61.2282,-476.0645,-8.011,-61.381,-459.9679,-8.5822,-61.2282,-459.9679,-8.011,-61.381,-476.0645 +,-7.5928,-61.7987,-459.9679,-8.011,-61.381,-459.9679,-7.5928,-61.7987,-476.0645,-7.5928,-61.7987,-459.9679,-10.8074,-61.2282,-459.9679,-11.3786,-61.381,-476.0645,-10.8074,-61.2282,-476.0645,-11.3786,-61.381,-459.9679,-11.7968,-61.7987,-476.0645,-11.3786,-61.381,-476.0645,-11.7968,-61.7987,-459.9679,-11.7968,-61.7987,-476.0645,-4.5136,-62.071,-476.0645,-2.3382,-62.071,-521.5942,-2.3382,-62.071,-476.0645,-4.5136,-63.6416,-521.5942,-4.5136,-62.071,-476.0645 +,-4.5136,-63.6416,-476.0645,-2.3382,-63.6416,-521.5942,-4.5136,-62.071,-521.5942,-4.5136,-63.6416,-521.5942,-2.3382,-63.6416,-476.0645,-2.3382,-62.071,-521.5942,-2.3382,-63.6416,-521.5942,-1.1709,-63.6416,-476.0645,-1.1709,-62.3692,-459.9679,-1.1709,-62.3692,-476.0645,-2.3382,-63.6416,-476.0645,-1.1709,-62.3692,-476.0645,-2.3382,-62.071,-476.0645,-4.5385,-61.2282,-459.9679,-1.1709,-63.6416,-459.9679,-5.6809,-63.6416,-459.9679,-4.5136,-63.6416,-476.0645 +,-5.6809,-62.3692,-476.0645,-5.6809,-63.6416,-476.0645,-5.6809,-62.3692,-476.0645,-5.6809,-63.6416,-459.9679,-5.6809,-63.6416,-476.0645,-4.5385,-61.2282,-476.0645,-4.5136,-62.071,-476.0645,-1.3239,-61.7987,-476.0645,-1.742,-61.381,-476.0645,-2.3132,-61.2282,-476.0645,-5.1097,-61.381,-476.0645,-5.5278,-61.7987,-476.0645,-2.3132,-61.2282,-476.0645,-1.742,-61.381,-459.9679,-2.3132,-61.2282,-459.9679,-1.742,-61.381,-476.0645,-1.3239,-61.7987,-459.9679 +,-1.742,-61.381,-459.9679,-1.3239,-61.7987,-476.0645,-1.3239,-61.7987,-459.9679,-4.5385,-61.2282,-459.9679,-5.1097,-61.381,-476.0645,-4.5385,-61.2282,-476.0645,-5.1097,-61.381,-459.9679,-5.5278,-61.7987,-476.0645,-5.1097,-61.381,-476.0645,-5.5278,-61.7987,-459.9679,-5.5278,-61.7987,-476.0645,1.7554,-62.071,-476.0645,3.9307,-62.071,-521.5942,3.9307,-62.071,-476.0645,1.7554,-63.6416,-521.5942,1.7554,-62.071,-476.0645,1.7554,-63.6416,-476.0645 +,3.9307,-63.6416,-521.5942,1.7554,-62.071,-521.5942,1.7554,-63.6416,-521.5942,3.9307,-63.6416,-476.0645,3.9307,-62.071,-521.5942,3.9307,-63.6416,-521.5942,5.0981,-63.6416,-476.0645,5.0981,-62.3692,-459.9679,5.0981,-62.3692,-476.0645,3.9307,-63.6416,-476.0645,5.0981,-62.3692,-476.0645,3.9307,-62.071,-476.0645,1.7304,-61.2282,-459.9679,5.0981,-63.6416,-459.9679,0.5881,-63.6416,-459.9679,1.7554,-63.6416,-476.0645,0.5881,-62.3692,-476.0645 +,0.5881,-63.6416,-476.0645,0.5881,-62.3692,-476.0645,0.5881,-63.6416,-459.9679,0.5881,-63.6416,-476.0645,1.7304,-61.2282,-476.0645,1.7554,-62.071,-476.0645,4.945,-61.7987,-476.0645,4.5269,-61.381,-476.0645,3.9557,-61.2282,-476.0645,1.1592,-61.381,-476.0645,0.7411,-61.7987,-476.0645,3.9557,-61.2282,-476.0645,4.5269,-61.381,-459.9679,3.9557,-61.2282,-459.9679,4.5269,-61.381,-476.0645,4.945,-61.7987,-459.9679,4.5269,-61.381,-459.9679 +,4.945,-61.7987,-476.0645,4.945,-61.7987,-459.9679,1.7304,-61.2282,-459.9679,1.1592,-61.381,-476.0645,1.7304,-61.2282,-476.0645,1.1592,-61.381,-459.9679,0.7411,-61.7987,-476.0645,1.1592,-61.381,-476.0645,0.7411,-61.7987,-459.9679,0.7411,-61.7987,-476.0645,64.8862,-58.666,187.6226,64.8862,-55.2604,231.2108,64.8862,-58.666,231.2108,64.8862,-55.2604,231.2108,79.1301,-55.2604,187.6226,79.1301,-55.2604,231.211,64.8862,-58.666,231.2108 +,79.1301,-55.2604,231.211,79.1301,-58.666,231.211,79.1301,-58.666,187.6226,64.8862,-55.2604,187.6226,64.8862,-58.666,187.6226,79.1301,-58.666,231.211,79.1301,-55.2604,187.6226,79.1301,-58.666,187.6226,41.9023,-56.7139,193.0955,72.1979,-56.7139,196.3648,41.9023,-56.7139,196.3648,72.1979,-58.2846,193.0955,41.9023,-56.7139,193.0955,41.9023,-58.2846,193.0955,72.1979,-58.2846,196.3648,72.1979,-56.7139,193.0955,72.1979,-58.2846,193.0955 +,41.9023,-58.2846,196.3648,72.1979,-56.7139,196.3648,72.1979,-58.2846,196.3648,41.9023,-58.2846,198.1192,31.1915,-57.0121,198.1192,41.9023,-57.0121,198.1192,41.9023,-58.2846,196.3648,41.9023,-57.0121,198.1192,41.9023,-56.7139,196.3648,31.1915,-55.8711,193.0582,31.1915,-58.2846,198.1192,31.1915,-58.2846,191.3411,41.9023,-58.2846,193.0955,41.9023,-57.0121,191.3411,41.9023,-58.2846,191.3411,41.9023,-57.0121,191.3411,31.1915,-58.2846,191.3411 +,41.9023,-58.2846,191.3411,41.9023,-55.8711,193.0582,41.9023,-56.7139,193.0955,41.9023,-56.4416,197.8891,41.9023,-56.024,197.2606,41.9023,-55.8711,196.4022,41.9023,-56.024,192.1995,41.9023,-56.4416,191.5712,41.9023,-55.8711,196.4022,31.1915,-56.024,197.2606,31.1915,-55.8711,196.4022,31.1915,-56.024,197.2606,41.9023,-56.4416,197.8891,31.1915,-56.4416,197.8891,41.9023,-56.4416,197.8891,31.1915,-56.4416,197.8891,41.9023,-55.8711,193.0582 +,31.1915,-56.024,192.1998,41.9023,-56.024,192.1995,41.9023,-56.024,192.1995,31.1915,-56.4416,191.5712,41.9023,-56.4416,191.5712,31.1915,-56.4416,191.5712,41.9023,-56.4416,191.5712,31.1915,-55.8711,193.0582,41.9023,-56.7139,202.5168,72.1979,-56.7139,205.7861,41.9023,-56.7139,205.7861,72.1979,-58.2846,202.5168,41.9023,-56.7139,202.5168,41.9023,-58.2846,202.5168,72.1979,-58.2846,205.7861,72.1979,-56.7139,202.5168,72.1979,-58.2846,202.5168 +,41.9023,-58.2846,205.7861,72.1979,-56.7139,205.7861,72.1979,-58.2846,205.7861,41.9023,-58.2846,207.5402,31.1915,-57.0121,207.5402,41.9023,-57.0121,207.5402,41.9023,-58.2846,205.7861,41.9023,-57.0121,207.5402,41.9023,-56.7139,205.7861,31.1915,-55.8711,202.4792,31.1915,-58.2846,207.5402,31.1915,-58.2846,200.7624,41.9023,-58.2846,202.5168,41.9023,-57.0121,200.7624,41.9023,-58.2846,200.7624,41.9023,-57.0121,200.7624,31.1915,-58.2846,200.7624 +,41.9023,-58.2846,200.7624,41.9023,-56.7139,202.5168,41.9023,-55.8711,205.8234,41.9023,-55.8711,202.4792,41.9023,-56.4416,207.3104,41.9023,-56.024,206.6819,41.9023,-56.024,201.6208,41.9023,-56.4416,200.9925,41.9023,-55.8711,205.8234,31.1915,-56.024,206.6819,31.1915,-55.8711,205.8234,31.1915,-56.024,206.6819,41.9023,-56.4416,207.3104,31.1915,-56.4416,207.3104,41.9023,-56.4416,207.3104,31.1915,-56.4416,207.3104,31.1915,-55.8711,202.4792 +,41.9023,-56.024,201.6208,41.9023,-55.8711,202.4792,41.9023,-56.024,201.6208,31.1915,-56.4416,200.9925,41.9023,-56.4416,200.9925,31.1915,-56.4416,200.9925,41.9023,-56.4416,200.9925,41.9023,-56.7139,211.9379,72.1979,-56.7139,215.2073,41.9023,-56.7139,215.2073,72.1979,-58.2846,211.9379,41.9023,-56.7139,211.9379,41.9023,-58.2846,211.9379,72.1979,-58.2846,215.2073,72.1979,-56.7139,211.9379,72.1979,-58.2846,211.9379,41.9023,-58.2846,215.2073 +,72.1979,-56.7139,215.2073,72.1979,-58.2846,215.2073,41.9023,-58.2846,216.9616,31.1915,-57.0121,216.9616,41.9023,-57.0121,216.9616,41.9023,-58.2846,215.2073,41.9023,-57.0121,216.9616,41.9023,-56.7139,215.2073,31.1915,-55.8711,211.9006,31.1915,-58.2846,216.9616,31.1915,-58.2846,210.1837,41.9023,-58.2846,211.9379,41.9023,-57.0121,210.1837,41.9023,-58.2846,210.1837,41.9023,-57.0121,210.1837,31.1915,-58.2846,210.1837,41.9023,-58.2846,210.1837 +,41.9023,-55.8711,211.9006,41.9023,-56.7139,211.9379,41.9023,-56.4416,216.7315,41.9023,-56.024,216.1031,41.9023,-55.8711,215.2447,41.9023,-56.024,211.0421,41.9023,-56.4416,210.4136,41.9023,-55.8711,215.2447,31.1915,-56.024,216.1031,31.1915,-55.8711,215.2447,31.1915,-56.024,216.1031,41.9023,-56.4416,216.7315,31.1915,-56.4416,216.7315,41.9023,-56.4416,216.7315,31.1915,-56.4416,216.7315,31.1915,-55.8711,211.9006,41.9023,-56.024,211.0421 +,41.9023,-55.8711,211.9006,41.9023,-56.024,211.0421,31.1915,-56.4416,210.4136,41.9023,-56.4416,210.4136,31.1915,-56.4416,210.4136,41.9023,-56.4416,210.4136,41.9023,-56.7139,221.3593,72.1979,-56.7139,224.6286,41.9023,-56.7139,224.6286,72.1979,-58.2846,221.3593,41.9023,-56.7139,221.3593,41.9023,-58.2846,221.3593,72.1979,-58.2846,224.6286,72.1979,-56.7139,221.3593,72.1979,-58.2846,221.3593,41.9023,-58.2846,224.6286,72.1979,-56.7139,224.6286 +,72.1979,-58.2846,224.6286,41.9023,-58.2846,226.3828,31.1915,-57.0121,226.3828,41.9023,-57.0121,226.3828,41.9023,-58.2846,224.6286,41.9023,-57.0121,226.3828,41.9023,-56.7139,224.6286,31.1915,-55.8711,221.3217,31.1915,-58.2846,226.3828,31.1915,-58.2846,219.6049,41.9023,-58.2846,221.3593,41.9023,-57.0121,219.6049,41.9023,-58.2846,219.6049,41.9023,-57.0121,219.6049,31.1915,-58.2846,219.6049,41.9023,-58.2846,219.6049,41.9023,-56.7139,221.3593 +,41.9023,-55.8711,224.666,41.9023,-55.8711,221.3217,41.9023,-56.4416,226.1526,41.9023,-56.024,225.5245,41.9023,-56.024,220.4633,41.9023,-56.4416,219.835,31.1915,-55.8711,224.666,41.9023,-56.024,225.5245,31.1915,-56.024,225.5245,41.9023,-56.024,225.5245,31.1915,-56.4416,226.1526,31.1915,-56.024,225.5245,41.9023,-56.4416,226.1526,31.1915,-56.4416,226.1526,41.9023,-55.8711,221.3217,31.1915,-56.024,220.4633,41.9023,-56.024,220.4633 +,41.9023,-56.024,220.4633,31.1915,-56.4416,219.835,41.9023,-56.4416,219.835,31.1915,-56.4416,219.835,41.9023,-56.4416,219.835,31.1915,-55.8711,221.3217,104.4586,36.2723,-123.6241,104.4586,36.2723,24.5156,104.4586,-48.6681,120.8527,111.9593,-57.5139,131.4448,104.4586,-48.6681,120.8527,104.4586,-48.6681,24.5156,104.4586,4.6873,-123.6241,111.9593,41.9563,-132.8068,104.4586,36.2723,-123.6241,111.9593,-2.4611,17.4589,104.4586,4.6873,-123.6241 +,104.4586,4.6873,24.5156,111.9593,41.9563,-132.8068,111.9593,52.0576,24.5156,111.9593,41.9563,24.5156,104.4586,4.6873,-123.6241,-10.387,-63.7283,-167.5883,-7.0388,-61.2333,-167.5883,-10.733,-63.098,-167.5883,-10.387,-63.7283,-95.4802,-10.733,-63.098,-167.5883,-10.733,-63.098,-95.4802,-7.0388,-61.2333,-167.5883,-10.733,-63.098,-95.4802,-10.733,-63.098,-167.5883,-6.6929,-61.8636,-167.5883,-7.0388,-61.2333,-95.4802,-7.0388,-61.2333,-167.5883 +,-7.0388,-61.2333,-95.4802,-10.387,-63.7283,-95.4802,-10.733,-63.098,-95.4802,-5.3591,-63.7283,-167.5883,-2.011,-61.2333,-167.5883,-5.7051,-63.098,-167.5883,-5.3591,-63.7283,-95.4802,-5.7051,-63.098,-167.5883,-5.7051,-63.098,-95.4802,-2.011,-61.2333,-167.5883,-5.7051,-63.098,-95.4802,-5.7051,-63.098,-167.5883,-1.665,-61.8636,-167.5883,-2.0109,-61.2333,-95.4802,-2.011,-61.2333,-167.5883,-2.0109,-61.2333,-95.4802,-5.3591,-63.7283,-95.4802 +,-5.7051,-63.098,-95.4802,-0.3312,-63.7283,-167.5883,3.0169,-61.2333,-167.5883,-0.6772,-63.098,-167.5883,-0.3312,-63.7283,-95.4802,-0.6772,-63.098,-167.5883,-0.6772,-63.098,-95.4802,3.0169,-61.2333,-167.5883,-0.6772,-63.098,-95.4802,-0.6772,-63.098,-167.5883,3.3629,-61.8636,-167.5883,3.017,-61.2333,-95.4802,3.0169,-61.2333,-167.5883,3.017,-61.2333,-95.4802,-0.3312,-63.7283,-95.4802,-0.6772,-63.098,-95.4802,4.6967,-63.7283,-167.5883 +,8.0448,-61.2333,-167.5883,4.3507,-63.098,-167.5883,4.6967,-63.7283,-95.4802,4.3507,-63.098,-167.5883,4.3507,-63.098,-95.4802,8.0448,-61.2333,-167.5883,4.3507,-63.098,-95.4802,4.3507,-63.098,-167.5883,8.3908,-61.8636,-167.5883,8.0449,-61.2333,-95.4802,8.0448,-61.2333,-167.5883,8.0449,-61.2333,-95.4802,4.6967,-63.7283,-95.4802,4.3507,-63.098,-95.4802,9.7246,-63.7283,-167.5883,13.0727,-61.2333,-167.5883,9.3786,-63.098,-167.5883 +,9.7246,-63.7283,-95.4802,9.3786,-63.098,-167.5883,9.3786,-63.098,-95.4802,9.3786,-63.098,-167.5883,13.0728,-61.2333,-95.4802,9.3786,-63.098,-95.4802,13.4187,-61.8636,-167.5883,13.0728,-61.2333,-95.4802,13.0727,-61.2333,-167.5883,13.0728,-61.2333,-95.4802,9.7246,-63.7283,-95.4802,9.3786,-63.098,-95.4802,14.7524,-63.7283,-167.5883,18.1006,-61.2333,-167.5883,14.4065,-63.098,-167.5883,14.7525,-63.7283,-95.4802,14.4065,-63.098,-167.5883 +,14.4065,-63.098,-95.4802,18.1006,-61.2333,-167.5883,14.4065,-63.098,-95.4802,14.4065,-63.098,-167.5883,18.4466,-61.8636,-167.5883,18.1007,-61.2333,-95.4802,18.1006,-61.2333,-167.5883,18.1007,-61.2333,-95.4802,14.7525,-63.7283,-95.4802,14.4065,-63.098,-95.4802,19.7803,-63.7283,-167.5883,23.1285,-61.2333,-167.5883,19.4344,-63.098,-167.5883,19.7803,-63.7283,-95.4802,19.4344,-63.098,-167.5883,19.4344,-63.098,-95.4802,23.1285,-61.2333,-167.5883 +,19.4344,-63.098,-95.4802,19.4344,-63.098,-167.5883,23.4745,-61.8636,-167.5883,23.1285,-61.2333,-95.4802,23.1285,-61.2333,-167.5883,23.1285,-61.2333,-95.4802,19.7803,-63.7283,-95.4802,19.4344,-63.098,-95.4802,24.8082,-63.7283,-167.5883,28.1564,-61.2333,-167.5883,24.4623,-63.098,-167.5883,24.8083,-63.7283,-95.4802,24.4623,-63.098,-167.5883,24.4623,-63.098,-95.4802,28.1564,-61.2333,-167.5883,24.4623,-63.098,-95.4802,24.4623,-63.098,-167.5883 +,28.5024,-61.8636,-167.5883,28.1565,-61.2333,-95.4802,28.1564,-61.2333,-167.5883,28.1565,-61.2333,-95.4802,24.8083,-63.7283,-95.4802,24.4623,-63.098,-95.4802,29.8361,-63.7283,-167.5883,33.1843,-61.2333,-167.5883,29.4902,-63.098,-167.5883,29.8361,-63.7283,-95.4802,29.4902,-63.098,-167.5883,29.4902,-63.098,-95.4802,33.1843,-61.2333,-167.5883,29.4902,-63.098,-95.4802,29.4902,-63.098,-167.5883,33.5303,-61.8636,-167.5883,33.1843,-61.2333,-95.4802 +,33.1843,-61.2333,-167.5883,33.1843,-61.2333,-95.4802,29.8361,-63.7283,-95.4802,29.4902,-63.098,-95.4802,34.864,-63.7283,-167.5883,38.2122,-61.2333,-167.5883,34.5181,-63.098,-167.5883,34.864,-63.7283,-95.4802,34.5181,-63.098,-167.5883,34.5181,-63.098,-95.4802,38.2122,-61.2333,-167.5883,34.5181,-63.098,-95.4802,34.5181,-63.098,-167.5883,38.5582,-61.8636,-167.5883,38.2122,-61.2333,-95.4802,38.2122,-61.2333,-167.5883,38.2122,-61.2333,-95.4802 +,34.864,-63.7283,-95.4802,34.5181,-63.098,-95.4802,105.4565,-15.2119,-256.8887,108.4184,-12.8789,-257.3264,108.4184,-15.2119,-256.8887,105.4565,-12.8789,-257.3264,108.4184,-10.9011,-258.5727,105.4565,-10.9011,-258.5727,108.4184,-9.5796,-260.4382,108.4184,-10.9011,-258.5727,105.4565,-9.5796,-260.4382,108.4184,-9.1156,-262.6385,108.4184,-9.5796,-260.4382,105.4565,-9.1156,-262.6385,108.4184,-9.5796,-264.8389,105.4565,-9.5796,-264.8389,108.4184,-10.9011,-266.7043 +,108.4184,-9.5796,-264.8389,105.4565,-10.9011,-266.7043,108.4184,-12.8789,-267.9507,108.4184,-10.9011,-266.7043,105.4565,-12.8789,-267.9507,108.4184,-15.2119,-268.3884,105.4565,-15.2119,-268.3884,108.4184,-17.5448,-267.9507,105.4565,-17.5448,-267.9507,108.4184,-19.5226,-266.7043,105.4565,-19.5226,-266.7043,108.4184,-20.8441,-264.8389,108.4184,-19.5226,-266.7043,108.4184,-20.8441,-264.8389,105.4565,-21.3081,-262.6385,108.4184,-21.3081,-262.6385,108.4184,-20.8441,-260.4382 +,105.4565,-20.8441,-260.4382,108.4184,-19.5226,-258.5727,108.4184,-20.8441,-260.4382,105.4565,-12.8789,-267.9507,105.4565,-10.9011,-266.7043,105.4565,-12.8789,-257.3264,105.4565,-19.5226,-258.5727,108.4184,-17.5448,-257.3264,108.4184,-19.5226,-258.5727,105.4565,-17.5448,-257.3264,108.4184,-10.9011,-258.5727,108.4184,-12.0798,-255.5068,108.4184,-12.8789,-257.3264,108.4184,-15.2119,-254.9193,111.9593,-18.3439,-255.5068,108.4184,-18.3439,-255.5068,108.4184,-10.9011,-266.7043 +,108.4184,-12.0798,-269.7703,108.4184,-9.4245,-268.097,108.4184,-21.3081,-262.6385,108.4184,-22.7734,-265.5927,108.4184,-20.8441,-264.8389,108.4184,-9.1156,-262.6385,108.4184,-7.6503,-265.5927,108.4184,-7.0273,-262.6385,108.4184,-19.5226,-266.7043,108.4184,-18.3439,-269.7703,108.4184,-17.5448,-267.9507,108.4184,-19.5226,-258.5727,108.4184,-18.3439,-255.5068,108.4184,-20.9992,-257.1801,108.4184,-9.5796,-260.4382,108.4184,-9.4245,-257.1801,108.4184,-12.8789,-267.9507 +,108.4184,-15.2119,-270.3579,108.4184,-15.2119,-254.9193,108.4184,-15.2119,-256.8887,108.4184,-22.7734,-259.6844,108.4184,-23.3964,-262.6385,108.4184,-9.5796,-264.8389,108.4184,-20.9992,-268.097,108.4184,-17.5448,-257.3264,108.4184,-7.6503,-259.6844,108.4184,-15.2119,-268.3884,108.4184,-20.8441,-260.4382,108.4184,-18.3439,-269.7703,111.9593,-15.2119,-270.3579,108.4184,-15.2119,-270.3579,108.4184,-9.4245,-257.1801,111.9593,-12.0798,-255.5068,108.4184,-12.0798,-255.5068 +,108.4184,-20.9992,-268.097,111.9593,-18.3439,-269.7703,108.4184,-7.6503,-259.6844,111.9593,-9.4245,-257.1801,108.4184,-9.4245,-257.1801,108.4184,-22.7734,-265.5927,111.9593,-20.9992,-268.097,108.4184,-20.9992,-268.097,108.4184,-7.0273,-262.6385,111.9593,-7.6503,-259.6844,108.4184,-7.6503,-259.6844,108.4184,-23.3964,-262.6385,111.9593,-22.7734,-265.5927,108.4184,-22.7734,-265.5927,108.4184,-7.6503,-265.5927,111.9593,-7.0273,-262.6385,108.4184,-22.7734,-259.6844 +,111.9593,-23.3964,-262.6385,108.4184,-9.4245,-268.097,111.9593,-7.6503,-265.5927,108.4184,-7.6503,-265.5927,108.4184,-20.9992,-257.1801,111.9593,-22.7734,-259.6844,108.4184,-22.7734,-259.6844,108.4184,-12.0798,-269.7703,111.9593,-9.4245,-268.097,108.4184,-9.4245,-268.097,111.9593,-20.9992,-257.1801,108.4184,-20.9992,-257.1801,111.9593,-12.0798,-269.7703,111.9593,-15.2119,-254.9193,105.4565,-34.705,-256.8887,108.4184,-32.3721,-257.3264,108.4184,-34.705,-256.8887 +,105.4565,-32.3721,-257.3264,108.4184,-30.3943,-258.5727,105.4565,-30.3943,-258.5727,108.4184,-29.0728,-260.4382,108.4184,-30.3943,-258.5727,105.4565,-29.0728,-260.4382,108.4184,-28.6088,-262.6385,108.4184,-29.0728,-260.4382,105.4565,-28.6088,-262.6385,108.4184,-29.0728,-264.8389,105.4565,-29.0728,-264.8389,108.4184,-30.3943,-266.7043,108.4184,-29.0728,-264.8389,105.4565,-30.3943,-266.7043,108.4184,-32.3721,-267.9507,108.4184,-30.3943,-266.7043,105.4565,-32.3721,-267.9507 +,108.4184,-34.705,-268.3884,105.4565,-34.705,-268.3884,108.4184,-37.038,-267.9507,105.4565,-37.038,-267.9507,108.4184,-39.0158,-266.7043,105.4565,-39.0158,-266.7043,108.4184,-40.3373,-264.8389,108.4184,-39.0158,-266.7043,105.4565,-40.3373,-264.8389,108.4184,-40.8013,-262.6385,108.4184,-40.3373,-264.8389,105.4565,-40.8013,-262.6385,108.4184,-40.3373,-260.4382,105.4565,-40.3373,-260.4382,108.4184,-39.0158,-258.5727,108.4184,-40.3373,-260.4382,105.4565,-32.3721,-267.9507 +,105.4565,-30.3943,-266.7043,105.4565,-32.3721,-257.3264,105.4565,-39.0158,-258.5727,108.4184,-37.038,-257.3264,108.4184,-39.0158,-258.5727,105.4565,-37.038,-257.3264,108.4184,-30.3943,-258.5727,108.4184,-31.573,-255.5068,108.4184,-32.3721,-257.3264,108.4184,-34.705,-254.9193,111.9593,-37.8371,-255.5068,108.4184,-37.8371,-255.5068,108.4184,-30.3943,-266.7043,108.4184,-31.573,-269.7703,108.4184,-28.9177,-268.097,108.4184,-40.8013,-262.6385,108.4184,-42.2666,-265.5927 +,108.4184,-40.3373,-264.8389,108.4184,-28.6088,-262.6385,108.4184,-27.1435,-265.5927,108.4184,-26.5205,-262.6385,108.4184,-39.0158,-266.7043,108.4184,-37.8371,-269.7703,108.4184,-37.038,-267.9507,108.4184,-39.0158,-258.5727,108.4184,-37.8371,-255.5068,108.4184,-40.4924,-257.1801,108.4184,-29.0728,-260.4382,108.4184,-28.9177,-257.1801,108.4184,-32.3721,-267.9507,108.4184,-34.705,-270.3579,108.4184,-34.705,-254.9193,108.4184,-34.705,-256.8887,108.4184,-42.2666,-259.6844 +,108.4184,-42.8896,-262.6385,108.4184,-29.0728,-264.8389,108.4184,-40.4924,-268.097,108.4184,-37.038,-257.3264,108.4184,-27.1435,-259.6844,108.4184,-34.705,-268.3884,108.4184,-40.3373,-260.4382,108.4184,-37.8371,-269.7703,111.9593,-34.705,-270.3579,108.4184,-34.705,-270.3579,108.4184,-28.9177,-257.1801,111.9593,-31.573,-255.5068,108.4184,-31.573,-255.5068,108.4184,-40.4924,-268.097,111.9593,-37.8371,-269.7703,108.4184,-27.1435,-259.6844,111.9593,-28.9177,-257.1801 +,108.4184,-28.9177,-257.1801,108.4184,-42.2666,-265.5927,111.9593,-40.4924,-268.097,108.4184,-40.4924,-268.097,108.4184,-26.5205,-262.6385,111.9593,-27.1435,-259.6844,108.4184,-27.1435,-259.6844,108.4184,-42.8896,-262.6385,111.9593,-42.2666,-265.5927,108.4184,-42.2666,-265.5927,108.4184,-27.1435,-265.5927,111.9593,-26.5205,-262.6385,108.4184,-42.2666,-259.6844,111.9593,-42.8896,-262.6385,108.4184,-28.9177,-268.097,111.9593,-27.1435,-265.5927,108.4184,-27.1435,-265.5927 +,108.4184,-40.4924,-257.1801,111.9593,-42.2666,-259.6844,108.4184,-42.2666,-259.6844,108.4184,-31.573,-269.7703,111.9593,-28.9177,-268.097,108.4184,-28.9177,-268.097,111.9593,-40.4924,-257.1801,108.4184,-40.4924,-257.1801,111.9593,-31.573,-269.7703,111.9593,-34.705,-254.9193,-54.8617,-56.7015,-710.3831,-51.1124,-58.4594,-711.0813,-54.8617,-58.4594,-710.3831,-51.1124,-56.7015,-711.0813,-47.9338,-58.4594,-713.0697,-51.1124,-58.4594,-711.0813,-47.9338,-56.7015,-713.0697 +,-45.8101,-58.4594,-716.0454,-47.9338,-58.4594,-713.0697,-45.8101,-56.7015,-716.0454,-45.0643,-58.4594,-719.5556,-45.0643,-56.7015,-719.5556,-45.8101,-58.4594,-723.0658,-45.8101,-56.7015,-723.0658,-47.9338,-58.4594,-726.0416,-47.9338,-56.7015,-726.0416,-51.1124,-58.4594,-728.0299,-47.9338,-58.4594,-726.0416,-51.1124,-56.7015,-728.0299,-54.8617,-58.4594,-728.7281,-54.8617,-56.7015,-728.7281,-58.611,-58.4594,-728.0299,-58.611,-56.7015,-728.0299,-61.7895,-58.4594,-726.0416 +,-58.611,-58.4594,-728.0299,-61.7895,-56.7015,-726.0416,-63.9133,-58.4594,-723.0658,-61.7895,-58.4594,-726.0416,-63.9133,-56.7015,-723.0658,-64.6591,-58.4594,-719.5556,-64.6591,-56.7015,-719.5556,-63.9133,-58.4594,-716.0454,-63.9133,-56.7015,-716.0454,-61.7895,-58.4594,-713.0697,-51.1124,-56.7015,-728.0299,-47.9338,-56.7015,-726.0416,-47.9338,-56.7015,-713.0697,-61.7895,-56.7015,-713.0697,-58.611,-58.4594,-711.0813,-58.611,-56.7015,-711.0813,-47.9338,-58.4594,-713.0697 +,-49.8281,-58.4594,-708.1785,-51.1124,-58.4594,-711.0813,-54.8617,-58.4594,-707.2411,-59.8953,-60.5609,-708.1785,-59.8953,-58.4594,-708.1785,-47.9338,-58.4594,-726.0416,-49.8281,-58.4594,-730.9327,-45.5608,-58.4594,-728.2633,-64.6591,-58.4594,-719.5556,-67.0139,-58.4594,-724.2682,-63.9133,-58.4594,-723.0658,-45.0643,-58.4594,-719.5556,-42.7095,-58.4594,-724.2682,-41.7082,-58.4594,-719.5556,-61.7895,-58.4594,-726.0416,-59.8953,-58.4594,-730.9327,-58.611,-58.4594,-728.0299 +,-61.7895,-58.4594,-713.0697,-59.8953,-58.4594,-708.1785,-64.1626,-58.4594,-710.8479,-45.8101,-58.4594,-716.0454,-45.5608,-58.4594,-710.8479,-51.1124,-58.4594,-728.0299,-54.8617,-58.4594,-731.8701,-54.8617,-58.4594,-707.2411,-54.8617,-58.4594,-710.3831,-67.0139,-58.4594,-714.8431,-68.0151,-58.4594,-719.5556,-45.8101,-58.4594,-723.0658,-64.1626,-58.4594,-728.2633,-58.611,-58.4594,-711.0813,-42.7095,-58.4594,-714.8431,-54.8617,-58.4594,-728.7281,-63.9133,-58.4594,-716.0454 +,-59.8953,-58.4594,-730.9327,-54.8617,-60.5609,-731.8701,-54.8617,-58.4594,-731.8701,-45.5608,-58.4594,-710.8479,-49.8281,-60.5609,-708.1785,-49.8281,-58.4594,-708.1785,-64.1626,-58.4594,-728.2633,-59.8953,-60.5609,-730.9327,-59.8953,-58.4594,-730.9327,-42.7095,-58.4594,-714.8431,-45.5608,-60.5609,-710.8479,-45.5608,-58.4594,-710.8479,-67.0139,-58.4594,-724.2682,-64.1626,-60.5609,-728.2633,-64.1626,-58.4594,-728.2633,-41.7082,-58.4594,-719.5556,-42.7095,-60.5609,-714.8431 +,-68.0151,-58.4594,-719.5556,-67.0139,-60.5609,-724.2682,-42.7095,-58.4594,-724.2682,-41.7082,-60.5609,-719.5556,-67.0139,-58.4594,-714.8431,-68.0151,-60.5609,-719.5556,-45.5608,-58.4594,-728.2633,-42.7095,-60.5609,-724.2682,-64.1626,-58.4594,-710.8479,-67.0139,-60.5609,-714.8431,-49.8281,-58.4594,-730.9327,-45.5608,-60.5609,-728.2633,-45.5608,-58.4594,-728.2633,-64.1626,-60.5609,-710.8479,-64.1626,-58.4594,-710.8479,-49.8281,-60.5609,-730.9327,-49.8281,-58.4594,-708.1785 +,-54.8617,-60.5609,-707.2411,-81.1272,-56.7015,-692.9573,-77.3779,-58.4594,-693.6555,-81.1272,-58.4594,-692.9573,-77.3779,-56.7015,-693.6555,-74.1994,-58.4594,-695.6439,-77.3779,-58.4594,-693.6555,-74.1994,-56.7015,-695.6439,-72.0756,-58.4594,-698.6196,-74.1994,-58.4594,-695.6439,-72.0756,-56.7015,-698.6196,-71.3298,-58.4594,-702.1298,-71.3298,-56.7015,-702.1298,-72.0756,-58.4594,-705.64,-72.0756,-56.7015,-705.64,-74.1994,-58.4594,-708.6157,-74.1994,-56.7015,-708.6157 +,-77.3779,-58.4594,-710.6041,-74.1994,-58.4594,-708.6157,-77.3779,-56.7015,-710.6041,-81.1272,-58.4594,-711.3024,-81.1272,-56.7015,-711.3024,-84.8765,-58.4594,-710.6041,-84.8765,-56.7015,-710.6041,-88.055,-58.4594,-708.6158,-84.8765,-58.4594,-710.6041,-88.055,-56.7015,-708.6158,-90.1789,-58.4594,-705.64,-88.055,-58.4594,-708.6158,-90.1789,-56.7015,-705.64,-90.9246,-58.4594,-702.1298,-90.9246,-56.7015,-702.1298,-90.1789,-58.4594,-698.6196,-90.1789,-56.7015,-698.6196 +,-88.055,-58.4594,-695.6438,-77.3779,-56.7015,-710.6041,-74.1994,-56.7015,-708.6157,-77.3779,-56.7015,-693.6555,-88.055,-56.7015,-695.6438,-84.8765,-58.4594,-693.6555,-88.055,-58.4594,-695.6438,-84.8765,-56.7015,-693.6555,-74.1994,-58.4594,-695.6439,-76.0936,-58.4594,-690.7527,-77.3779,-58.4594,-693.6555,-81.1272,-58.4594,-689.8153,-86.1608,-60.5609,-690.7527,-86.1608,-58.4594,-690.7527,-74.1994,-58.4594,-708.6157,-76.0936,-58.4594,-713.507,-71.8263,-58.4594,-710.8375 +,-90.9246,-58.4594,-702.1298,-93.2794,-58.4594,-706.8423,-90.1789,-58.4594,-705.64,-71.3298,-58.4594,-702.1298,-68.975,-58.4594,-706.8423,-67.9737,-58.4594,-702.1298,-88.055,-58.4594,-708.6158,-86.1608,-58.4594,-713.507,-84.8765,-58.4594,-710.6041,-88.055,-58.4594,-695.6438,-86.1608,-58.4594,-690.7527,-90.4281,-58.4594,-693.4221,-72.0756,-58.4594,-698.6196,-71.8263,-58.4594,-693.4221,-77.3779,-58.4594,-710.6041,-81.1272,-58.4594,-714.4443,-81.1272,-58.4594,-689.8153 +,-81.1272,-58.4594,-692.9573,-93.2794,-58.4594,-697.4172,-94.2807,-58.4594,-702.1298,-72.0756,-58.4594,-705.64,-90.4281,-58.4594,-710.8375,-84.8765,-58.4594,-693.6555,-68.975,-58.4594,-697.4172,-81.1272,-58.4594,-711.3024,-90.1789,-58.4594,-698.6196,-86.1608,-58.4594,-713.507,-81.1272,-60.5609,-714.4443,-81.1272,-58.4594,-714.4443,-71.8263,-58.4594,-693.4221,-76.0936,-60.5609,-690.7527,-76.0936,-58.4594,-690.7527,-90.4281,-58.4594,-710.8375,-86.1608,-60.5609,-713.507 +,-86.1608,-58.4594,-713.507,-68.975,-58.4594,-697.4172,-71.8263,-60.5609,-693.4221,-71.8263,-58.4594,-693.4221,-93.2794,-58.4594,-706.8423,-90.4281,-60.5609,-710.8375,-90.4281,-58.4594,-710.8375,-67.9737,-58.4594,-702.1298,-68.975,-60.5609,-697.4172,-94.2807,-58.4594,-702.1298,-93.2794,-60.5609,-706.8423,-68.975,-58.4594,-706.8423,-67.9737,-60.5609,-702.1298,-93.2794,-58.4594,-697.4172,-94.2807,-60.5609,-702.1298,-71.8263,-58.4594,-710.8375,-68.975,-60.5609,-706.8423 +,-90.4281,-58.4594,-693.4221,-93.2794,-60.5609,-697.4172,-76.0936,-58.4594,-713.507,-71.8263,-60.5609,-710.8375,-71.8263,-58.4594,-710.8375,-90.4281,-60.5609,-693.4221,-90.4281,-58.4594,-693.4221,-76.0936,-60.5609,-713.507,-76.0936,-58.4594,-690.7527,-81.1272,-60.5609,-689.8153,-83.1425,-56.7015,-722.0399,-79.3932,-58.4594,-722.7382,-83.1425,-58.4594,-722.0399,-79.3932,-56.7015,-722.7382,-76.2147,-58.4594,-724.7265,-79.3932,-58.4594,-722.7382,-76.2147,-56.7015,-724.7265 +,-74.0909,-58.4594,-727.7023,-76.2147,-58.4594,-724.7265,-74.0909,-56.7015,-727.7023,-73.3451,-58.4594,-731.2125,-73.3451,-56.7015,-731.2125,-74.0909,-58.4594,-734.7227,-74.0909,-56.7015,-734.7227,-76.2147,-58.4594,-737.6984,-76.2147,-56.7015,-737.6984,-79.3932,-58.4594,-739.6868,-76.2147,-58.4594,-737.6984,-79.3932,-56.7015,-739.6868,-83.1425,-58.4594,-740.385,-83.1425,-56.7015,-740.385,-86.8918,-58.4594,-739.6868,-86.8918,-56.7015,-739.6868,-90.0703,-58.4594,-737.6984 +,-86.8918,-58.4594,-739.6868,-90.0703,-56.7015,-737.6984,-92.1941,-58.4594,-734.7227,-90.0703,-58.4594,-737.6984,-92.1941,-56.7015,-734.7227,-92.9399,-58.4594,-731.2125,-92.9399,-56.7015,-731.2125,-92.1941,-58.4594,-727.7023,-92.1941,-56.7015,-727.7023,-90.0703,-58.4594,-724.7265,-79.3932,-56.7015,-739.6868,-76.2147,-56.7015,-737.6984,-76.2147,-56.7015,-724.7265,-90.0703,-56.7015,-724.7265,-86.8918,-58.4594,-722.7382,-90.0703,-58.4594,-724.7265,-86.8918,-56.7015,-722.7382 +,-76.2147,-58.4594,-724.7265,-78.1089,-58.4594,-719.8353,-79.3932,-58.4594,-722.7382,-83.1425,-58.4594,-718.8979,-88.1761,-60.5609,-719.8353,-88.1761,-58.4594,-719.8353,-76.2147,-58.4594,-737.6984,-78.1089,-58.4594,-742.5896,-73.8416,-58.4594,-739.9201,-92.9399,-58.4594,-731.2125,-95.2947,-58.4594,-735.925,-92.1941,-58.4594,-734.7227,-73.3451,-58.4594,-731.2125,-70.9903,-58.4594,-735.925,-69.989,-58.4594,-731.2125,-90.0703,-58.4594,-737.6984,-88.1761,-58.4594,-742.5896 +,-86.8918,-58.4594,-739.6868,-90.0703,-58.4594,-724.7265,-88.1761,-58.4594,-719.8353,-92.4434,-58.4594,-722.5048,-74.0909,-58.4594,-727.7023,-73.8416,-58.4594,-722.5048,-79.3932,-58.4594,-739.6868,-83.1425,-58.4594,-743.527,-83.1425,-58.4594,-718.8979,-83.1425,-58.4594,-722.0399,-95.2947,-58.4594,-726.4999,-96.296,-58.4594,-731.2125,-74.0909,-58.4594,-734.7227,-92.4434,-58.4594,-739.9201,-86.8918,-58.4594,-722.7382,-70.9903,-58.4594,-726.4999,-83.1425,-58.4594,-740.385 +,-92.1941,-58.4594,-727.7023,-88.1761,-58.4594,-742.5896,-83.1425,-60.5609,-743.527,-83.1425,-58.4594,-743.527,-73.8416,-58.4594,-722.5048,-78.1089,-60.5609,-719.8353,-78.1089,-58.4594,-719.8353,-92.4434,-58.4594,-739.9201,-88.1761,-60.5609,-742.5896,-88.1761,-58.4594,-742.5896,-70.9903,-58.4594,-726.4999,-73.8416,-60.5609,-722.5048,-73.8416,-58.4594,-722.5048,-95.2947,-58.4594,-735.925,-92.4434,-60.5609,-739.9201,-92.4434,-58.4594,-739.9201,-69.989,-58.4594,-731.2125 +,-70.9903,-60.5609,-726.4999,-96.296,-58.4594,-731.2125,-95.2947,-60.5609,-735.925,-70.9903,-58.4594,-735.925,-69.989,-60.5609,-731.2125,-95.2947,-58.4594,-726.4999,-96.296,-60.5609,-731.2125,-73.8416,-58.4594,-739.9201,-70.9903,-60.5609,-735.925,-92.4434,-58.4594,-722.5048,-95.2947,-60.5609,-726.4999,-78.1089,-58.4594,-742.5896,-73.8416,-60.5609,-739.9201,-73.8416,-58.4594,-739.9201,-92.4434,-60.5609,-722.5048,-92.4434,-58.4594,-722.5048,-78.1089,-60.5609,-742.5896 +,-78.1089,-58.4594,-719.8353,-83.1425,-60.5609,-718.8979,30.5163,-61.3635,882.1948,33.8294,-64.1105,881.5251,30.5163,-64.1105,882.1948,33.8294,-61.3635,881.5251,36.6382,-64.1105,879.618,36.6382,-61.3635,879.618,38.5149,-64.1105,876.7639,36.6382,-64.1105,879.618,38.5149,-61.3635,876.7639,39.174,-64.1105,873.3974,39.174,-61.3635,873.3974,38.5149,-64.1105,870.0307,38.5149,-61.3635,870.0307,36.6382,-64.1105,867.1766,36.6382,-61.3635,867.1766 +,33.8294,-64.1105,865.2696,36.6382,-64.1105,867.1766,33.8294,-61.3635,865.2696,30.5163,-64.1105,864.5999,30.5163,-61.3635,864.5999,27.2032,-64.1105,865.2696,27.2032,-61.3635,865.2696,24.3944,-64.1105,867.1766,24.3944,-61.3635,867.1766,22.5177,-64.1105,870.0307,24.3944,-64.1105,867.1766,22.5177,-61.3635,870.0307,21.8587,-64.1105,873.3974,21.8587,-61.3635,873.3974,22.5177,-64.1105,876.7639,22.5177,-61.3635,876.7639,24.3944,-64.1105,879.618 +,38.5149,-61.3635,870.0307,39.174,-61.3635,873.3974,22.5177,-61.3635,870.0307,24.3944,-61.3635,879.618,27.2032,-64.1105,881.5251,24.3944,-64.1105,879.618,27.2032,-61.3635,881.5251,33.8294,-64.1105,881.5251,38.7352,-64.1105,881.7488,34.9643,-64.1105,884.3093,30.5163,-64.1105,885.2082,26.0683,-67.991,884.3093,26.0683,-64.1105,884.3093,33.8294,-64.1105,865.2696,38.7352,-64.1105,865.0456,36.6382,-64.1105,867.1766,22.5177,-64.1105,870.0307 +,18.893,-64.1105,873.3974,19.7778,-64.1105,868.8774,38.5149,-64.1105,870.0307,42.1396,-64.1105,873.3974,39.174,-64.1105,873.3974,27.2032,-64.1105,865.2696,22.2974,-64.1105,865.0456,26.0683,-64.1105,862.4854,27.2032,-64.1105,881.5251,22.2974,-64.1105,881.7488,24.3944,-64.1105,879.618,36.6382,-64.1105,879.618,41.2548,-64.1105,877.9171,30.5163,-64.1105,864.5999,34.9643,-64.1105,862.4854,30.5163,-64.1105,882.1948,30.5163,-64.1105,885.2082 +,22.5177,-64.1105,876.7639,21.8587,-64.1105,873.3974,41.2548,-64.1105,868.8774,24.3944,-64.1105,867.1766,26.0683,-64.1105,884.3093,38.5149,-64.1105,876.7639,30.5163,-64.1105,861.5862,19.7778,-64.1105,877.9171,26.0683,-64.1105,862.4854,30.5163,-67.991,861.5862,30.5163,-64.1105,861.5862,38.7352,-64.1105,881.7488,34.9643,-67.991,884.3093,34.9643,-64.1105,884.3093,22.2974,-64.1105,865.0456,26.0683,-67.991,862.4854,41.2548,-64.1105,877.9171 +,38.7352,-67.991,881.7488,38.7352,-64.1105,881.7488,19.7778,-64.1105,868.8774,22.2974,-67.991,865.0456,22.2974,-64.1105,865.0456,42.1396,-64.1105,873.3974,41.2548,-67.991,877.9171,18.893,-64.1105,873.3974,19.7778,-67.991,868.8774,41.2548,-64.1105,868.8774,42.1396,-67.991,873.3974,19.7778,-64.1105,877.9171,18.893,-67.991,873.3974,38.7352,-64.1105,865.0456,41.2548,-67.991,868.8774,22.2974,-64.1105,881.7488,19.7778,-67.991,877.9171 +,34.9643,-64.1105,862.4854,38.7352,-67.991,865.0456,38.7352,-64.1105,865.0456,22.2974,-67.991,881.7488,22.2974,-64.1105,881.7488,34.9643,-67.991,862.4854,30.5163,-67.991,885.2082,-1.9374,-61.3635,882.1948,1.3757,-64.1105,881.5251,-1.9374,-64.1105,882.1948,1.3757,-61.3635,881.5251,4.1845,-64.1105,879.618,4.1845,-61.3635,879.618,6.0612,-64.1105,876.7639,4.1845,-64.1105,879.618,6.0612,-61.3635,876.7639,6.7202,-64.1105,873.3974 +,6.7202,-61.3635,873.3974,6.0612,-64.1105,870.0307,6.0612,-61.3635,870.0307,4.1845,-64.1105,867.1766,4.1845,-61.3635,867.1766,1.3757,-64.1105,865.2696,4.1845,-64.1105,867.1766,1.3757,-61.3635,865.2696,-1.9374,-64.1105,864.5999,-1.9374,-61.3635,864.5999,-5.2505,-64.1105,865.2696,-5.2505,-61.3635,865.2696,-8.0593,-64.1105,867.1766,-8.0593,-61.3635,867.1766,-9.936,-64.1105,870.0307,-8.0593,-64.1105,867.1766,-9.936,-61.3635,870.0307 +,-10.595,-64.1105,873.3974,-10.595,-61.3635,873.3974,-9.936,-64.1105,876.7639,-9.936,-61.3635,876.7639,-8.0593,-64.1105,879.618,6.0612,-61.3635,870.0307,6.7202,-61.3635,873.3974,-9.936,-61.3635,870.0307,-8.0593,-61.3635,879.618,-5.2505,-64.1105,881.5251,-8.0593,-64.1105,879.618,-5.2505,-61.3635,881.5251,1.3757,-64.1105,881.5251,6.2815,-64.1105,881.7488,2.5106,-64.1105,884.3093,-1.9374,-64.1105,885.2082,-6.3854,-67.991,884.3093 +,-6.3854,-64.1105,884.3093,1.3757,-64.1105,865.2696,6.2815,-64.1105,865.0456,4.1845,-64.1105,867.1766,-9.936,-64.1105,870.0307,-13.5607,-64.1105,873.3974,-12.6759,-64.1105,868.8774,6.0612,-64.1105,870.0307,9.6859,-64.1105,873.3974,6.7202,-64.1105,873.3974,-5.2505,-64.1105,865.2696,-10.1563,-64.1105,865.0456,-6.3854,-64.1105,862.4854,-5.2505,-64.1105,881.5251,-10.1563,-64.1105,881.7488,-8.0593,-64.1105,879.618,4.1845,-64.1105,879.618 +,8.8011,-64.1105,877.9171,-1.9374,-64.1105,864.5999,2.5106,-64.1105,862.4854,-1.9374,-64.1105,882.1948,-1.9374,-64.1105,885.2082,-9.936,-64.1105,876.7639,-10.595,-64.1105,873.3974,8.8011,-64.1105,868.8774,-8.0593,-64.1105,867.1766,-6.3854,-64.1105,884.3093,6.0612,-64.1105,876.7639,-1.9374,-64.1105,861.5862,-12.6759,-64.1105,877.9171,-6.3854,-64.1105,862.4854,-1.9374,-67.991,861.5862,-1.9374,-64.1105,861.5862,6.2815,-64.1105,881.7488 +,2.5106,-67.991,884.3093,2.5106,-64.1105,884.3093,-10.1563,-64.1105,865.0456,-6.3854,-67.991,862.4854,8.8011,-64.1105,877.9171,6.2815,-67.991,881.7488,6.2815,-64.1105,881.7488,-12.6759,-64.1105,868.8774,-10.1563,-67.991,865.0456,-10.1563,-64.1105,865.0456,9.6859,-64.1105,873.3974,8.8011,-67.991,877.9171,-13.5607,-64.1105,873.3974,-12.6759,-67.991,868.8774,8.8011,-64.1105,868.8774,9.6859,-67.991,873.3974,-12.6759,-64.1105,877.9171 +,-13.5607,-67.991,873.3974,6.2815,-64.1105,865.0456,8.8011,-67.991,868.8774,-10.1563,-64.1105,881.7488,-12.6759,-67.991,877.9171,2.5106,-64.1105,862.4854,6.2815,-67.991,865.0456,6.2815,-64.1105,865.0456,-10.1563,-67.991,881.7488,-10.1563,-64.1105,881.7488,2.5106,-67.991,862.4854,-1.9374,-67.991,885.2082,30.5163,-61.3635,853.7642,33.8294,-64.1105,853.0945,30.5163,-64.1105,853.7642,33.8294,-61.3635,853.0945,36.6382,-64.1105,851.1876 +,36.6382,-61.3635,851.1876,38.5149,-64.1105,848.3334,36.6382,-64.1105,851.1876,38.5149,-61.3635,848.3334,39.174,-64.1105,844.9667,39.174,-61.3635,844.9667,38.5149,-64.1105,841.6003,38.5149,-61.3635,841.6003,36.6382,-64.1105,838.7462,36.6382,-61.3635,838.7462,33.8294,-64.1105,836.8391,36.6382,-64.1105,838.7462,33.8294,-61.3635,836.8391,30.5163,-64.1105,836.1694,30.5163,-61.3635,836.1694,27.2032,-64.1105,836.8391,27.2032,-61.3635,836.8391 +,24.3944,-64.1105,838.7462,24.3944,-61.3635,838.7462,22.5177,-64.1105,841.6003,24.3944,-64.1105,838.7462,22.5177,-61.3635,841.6003,21.8587,-64.1105,844.9667,21.8587,-61.3635,844.9667,22.5177,-64.1105,848.3334,22.5177,-61.3635,848.3334,24.3944,-64.1105,851.1876,38.5149,-61.3635,841.6003,39.174,-61.3635,844.9667,22.5177,-61.3635,841.6003,24.3944,-61.3635,851.1876,27.2032,-64.1105,853.0945,24.3944,-64.1105,851.1876,27.2032,-61.3635,853.0945 +,33.8294,-64.1105,853.0945,38.7352,-64.1105,853.3185,34.9643,-64.1105,855.8787,30.5163,-64.1105,856.7779,26.0683,-67.991,855.8787,26.0683,-64.1105,855.8787,33.8294,-64.1105,836.8391,38.7352,-64.1105,836.6152,36.6382,-64.1105,838.7462,22.5177,-64.1105,841.6003,18.893,-64.1105,844.9667,19.7778,-64.1105,840.4468,38.5149,-64.1105,841.6003,42.1396,-64.1105,844.9667,39.174,-64.1105,844.9667,27.2032,-64.1105,836.8391,22.2974,-64.1105,836.6152 +,26.0683,-64.1105,834.0549,27.2032,-64.1105,853.0945,22.2974,-64.1105,853.3185,24.3944,-64.1105,851.1876,36.6382,-64.1105,851.1876,41.2548,-64.1105,849.4866,30.5163,-64.1105,836.1694,34.9643,-64.1105,834.0549,30.5163,-64.1105,853.7642,30.5163,-64.1105,856.7779,22.5177,-64.1105,848.3334,21.8587,-64.1105,844.9667,41.2548,-64.1105,840.4468,24.3944,-64.1105,838.7462,26.0683,-64.1105,855.8787,38.5149,-64.1105,848.3334,30.5163,-64.1105,833.1559 +,19.7778,-64.1105,849.4866,26.0683,-64.1105,834.0549,30.5163,-67.991,833.1559,30.5163,-64.1105,833.1559,38.7352,-64.1105,853.3185,34.9643,-67.991,855.8787,34.9643,-64.1105,855.8787,22.2974,-64.1105,836.6152,26.0683,-67.991,834.0549,41.2548,-64.1105,849.4866,38.7352,-67.991,853.3185,38.7352,-64.1105,853.3185,19.7778,-64.1105,840.4468,22.2974,-67.991,836.6152,22.2974,-64.1105,836.6152,42.1396,-64.1105,844.9667,41.2548,-67.991,849.4866 +,18.893,-64.1105,844.9667,19.7778,-67.991,840.4468,41.2548,-64.1105,840.4468,42.1396,-67.991,844.9667,19.7778,-64.1105,849.4866,18.893,-67.991,844.9667,38.7352,-64.1105,836.6152,41.2548,-67.991,840.4468,22.2974,-64.1105,853.3185,19.7778,-67.991,849.4866,34.9643,-64.1105,834.0549,38.7352,-67.991,836.6152,38.7352,-64.1105,836.6152,22.2974,-67.991,853.3185,22.2974,-64.1105,853.3185,34.9643,-67.991,834.0549,30.5163,-67.991,856.7779 +,-1.9374,-61.3635,853.7642,1.3757,-64.1105,853.0945,-1.9374,-64.1105,853.7642,1.3757,-61.3635,853.0945,4.1845,-64.1105,851.1876,4.1845,-61.3635,851.1876,6.0612,-64.1105,848.3334,4.1845,-64.1105,851.1876,6.0612,-61.3635,848.3334,6.7202,-64.1105,844.9667,6.7202,-61.3635,844.9667,6.0612,-64.1105,841.6003,6.0612,-61.3635,841.6003,4.1845,-64.1105,838.7462,4.1845,-61.3635,838.7462,1.3757,-64.1105,836.8391,4.1845,-64.1105,838.7462 +,1.3757,-61.3635,836.8391,-1.9374,-64.1105,836.1694,-1.9374,-61.3635,836.1694,-5.2505,-64.1105,836.8391,-5.2505,-61.3635,836.8391,-8.0593,-64.1105,838.7462,-8.0593,-61.3635,838.7462,-9.936,-64.1105,841.6003,-8.0593,-64.1105,838.7462,-9.936,-61.3635,841.6003,-10.595,-64.1105,844.9667,-10.595,-61.3635,844.9667,-9.936,-64.1105,848.3334,-9.936,-61.3635,848.3334,-8.0593,-64.1105,851.1876,6.0612,-61.3635,841.6003,6.7202,-61.3635,844.9667 +,-9.936,-61.3635,841.6003,-8.0593,-61.3635,851.1876,-5.2505,-64.1105,853.0945,-8.0593,-64.1105,851.1876,-5.2505,-61.3635,853.0945,1.3757,-64.1105,853.0945,6.2815,-64.1105,853.3185,2.5106,-64.1105,855.8787,-1.9374,-64.1105,856.7779,-6.3854,-67.991,855.8787,-6.3854,-64.1105,855.8787,1.3757,-64.1105,836.8391,6.2815,-64.1105,836.6152,4.1845,-64.1105,838.7462,-9.936,-64.1105,841.6003,-13.5607,-64.1105,844.9667,-12.6759,-64.1105,840.4468 +,6.0612,-64.1105,841.6003,9.6859,-64.1105,844.9667,6.7202,-64.1105,844.9667,-5.2505,-64.1105,836.8391,-10.1563,-64.1105,836.6152,-6.3854,-64.1105,834.0549,-5.2505,-64.1105,853.0945,-10.1563,-64.1105,853.3185,-8.0593,-64.1105,851.1876,4.1845,-64.1105,851.1876,8.8011,-64.1105,849.4866,-1.9374,-64.1105,836.1694,2.5106,-64.1105,834.0549,-1.9374,-64.1105,853.7642,-1.9374,-64.1105,856.7779,-9.936,-64.1105,848.3334,-10.595,-64.1105,844.9667 +,8.8011,-64.1105,840.4468,-8.0593,-64.1105,838.7462,-6.3854,-64.1105,855.8787,6.0612,-64.1105,848.3334,-1.9374,-64.1105,833.1559,-12.6759,-64.1105,849.4866,-6.3854,-64.1105,834.0549,-1.9374,-67.991,833.1559,-1.9374,-64.1105,833.1559,6.2815,-64.1105,853.3185,2.5106,-67.991,855.8787,2.5106,-64.1105,855.8787,-10.1563,-64.1105,836.6152,-6.3854,-67.991,834.0549,8.8011,-64.1105,849.4866,6.2815,-67.991,853.3185,6.2815,-64.1105,853.3185 +,-12.6759,-64.1105,840.4468,-10.1563,-67.991,836.6152,-10.1563,-64.1105,836.6152,9.6859,-64.1105,844.9667,8.8011,-67.991,849.4866,-13.5607,-64.1105,844.9667,-12.6759,-67.991,840.4468,8.8011,-64.1105,840.4468,9.6859,-67.991,844.9667,-12.6759,-64.1105,849.4866,-13.5607,-67.991,844.9667,6.2815,-64.1105,836.6152,8.8011,-67.991,840.4468,-10.1563,-64.1105,853.3185,-12.6759,-67.991,849.4866,2.5106,-64.1105,834.0549,6.2815,-67.991,836.6152 +,6.2815,-64.1105,836.6152,-10.1563,-67.991,853.3185,-10.1563,-64.1105,853.3185,2.5106,-67.991,834.0549,-1.9374,-67.991,856.7779,-103.0976,-27.9178,-316.9706,-103.0976,-30.0906,-98.5834,-103.0976,-27.9178,-98.5834,-103.0976,-30.0906,-98.5834,-104.1832,-30.0906,-316.9706,-104.1832,-30.0906,-98.5834,-103.0976,-30.0906,-316.9706,-104.1832,-27.9178,-316.9706,-104.1832,-30.0906,-316.9706,-103.0976,-27.9178,-316.9706,-104.1832,-27.9178,-98.5834,-104.1832,-27.9178,-316.9706 +,-103.3961,-26.7518,-82.4868,-104.1832,-26.7518,-98.5834,-103.3961,-26.7518,-98.5834,-103.3961,-26.7518,-98.5834,-104.1832,-27.9178,-98.5834,-103.0976,-27.9178,-98.5834,-102.2538,-27.8929,-82.4868,-102.2538,-30.1155,-82.4868,-104.1832,-26.7518,-82.4868,-104.1832,-30.0906,-98.5834,-103.3961,-31.2566,-98.5834,-103.0976,-30.0906,-98.5834,-104.1832,-31.2566,-82.4868,-103.3961,-31.2566,-98.5834,-104.1832,-31.2566,-98.5834,-102.2538,-27.8929,-98.5834,-102.825,-26.9047,-98.5834 +,-102.4069,-27.3224,-98.5834,-102.2538,-30.1155,-98.5834,-102.4069,-30.6861,-98.5834,-102.825,-31.1037,-98.5834,-102.4069,-27.3224,-82.4868,-102.2538,-27.8929,-98.5834,-102.2538,-27.8929,-82.4868,-102.825,-26.9047,-82.4868,-102.4069,-27.3224,-98.5834,-102.4069,-27.3224,-82.4868,-102.825,-26.9047,-98.5834,-102.2538,-30.1155,-98.5834,-102.4069,-30.686,-82.4868,-102.2538,-30.1155,-82.4868,-102.4069,-30.6861,-98.5834,-102.825,-31.1037,-82.4868,-102.4069,-30.686,-82.4868 +,-102.825,-31.1037,-98.5834,-103.0976,-21.6562,-316.9706,-103.0976,-23.8291,-98.5834,-103.0976,-21.6562,-98.5834,-103.0976,-23.8291,-98.5834,-104.1832,-23.8291,-316.9706,-104.1832,-23.8291,-98.5834,-103.0976,-23.8291,-316.9706,-104.1832,-21.6562,-316.9706,-104.1832,-23.8291,-316.9706,-103.0976,-21.6562,-316.9706,-104.1832,-21.6562,-98.5834,-104.1832,-21.6562,-316.9706,-103.3961,-20.4903,-82.4868,-104.1832,-20.4903,-98.5834,-103.3961,-20.4903,-98.5834,-103.3961,-20.4903,-98.5834 +,-104.1832,-21.6562,-98.5834,-103.0976,-21.6562,-98.5834,-102.2538,-21.6313,-82.4868,-102.2538,-23.854,-82.4868,-104.1832,-20.4903,-82.4868,-104.1832,-23.8291,-98.5834,-103.3961,-24.995,-98.5834,-103.0976,-23.8291,-98.5834,-104.1832,-24.995,-82.4868,-103.3961,-24.995,-98.5834,-104.1832,-24.995,-98.5834,-102.2538,-23.854,-98.5834,-102.825,-20.6431,-98.5834,-102.4069,-21.0608,-98.5834,-102.2538,-21.6313,-98.5834,-102.4069,-24.4245,-98.5834,-102.825,-24.8421,-98.5834 +,-102.4069,-21.0608,-82.4868,-102.2538,-21.6313,-98.5834,-102.2538,-21.6313,-82.4868,-102.825,-20.6431,-82.4868,-102.4069,-21.0608,-98.5834,-102.4069,-21.0608,-82.4868,-102.825,-20.6431,-98.5834,-102.4069,-24.4245,-98.5834,-102.2538,-23.854,-82.4868,-102.2538,-23.854,-98.5834,-102.825,-24.8421,-98.5834,-102.4069,-24.4245,-82.4868,-102.4069,-24.4245,-98.5834,-102.825,-24.8421,-82.4868,-103.0976,-15.3947,-316.9706,-103.0976,-17.5675,-98.5834,-103.0976,-15.3947,-98.5834 +,-103.0976,-17.5675,-98.5834,-104.1832,-17.5675,-316.9706,-104.1832,-17.5675,-98.5834,-103.0976,-17.5675,-316.9706,-104.1832,-15.3947,-316.9706,-104.1832,-17.5675,-316.9706,-103.0976,-15.3947,-316.9706,-104.1832,-15.3947,-98.5834,-104.1832,-15.3947,-316.9706,-103.3961,-14.2287,-82.4868,-104.1832,-14.2287,-98.5834,-103.3961,-14.2287,-98.5834,-103.3961,-14.2287,-98.5834,-104.1832,-15.3947,-98.5834,-103.0976,-15.3947,-98.5834,-102.2538,-15.3697,-82.4868,-102.2538,-17.5924,-82.4868 +,-104.1832,-14.2287,-82.4868,-104.1832,-17.5675,-98.5834,-103.3961,-18.7334,-98.5834,-103.0976,-17.5675,-98.5834,-104.1832,-18.7334,-82.4868,-103.3961,-18.7334,-98.5834,-104.1832,-18.7334,-98.5834,-102.2538,-15.3697,-98.5834,-102.825,-14.3816,-98.5834,-102.4069,-14.7992,-98.5834,-102.2538,-17.5924,-98.5834,-102.4069,-18.1629,-98.5834,-102.825,-18.5805,-98.5834,-102.4069,-14.7992,-82.4868,-102.2538,-15.3697,-98.5834,-102.2538,-15.3697,-82.4868,-102.825,-14.3816,-82.4868 +,-102.4069,-14.7992,-98.5834,-102.4069,-14.7992,-82.4868,-102.825,-14.3816,-98.5834,-102.4069,-18.1629,-98.5834,-102.2538,-17.5924,-82.4868,-102.2538,-17.5924,-98.5834,-102.825,-18.5805,-98.5834,-102.4069,-18.1629,-82.4868,-102.4069,-18.1629,-98.5834,-102.825,-18.5806,-82.4868,-103.0976,-9.1331,-316.9706,-103.0976,-11.3059,-98.5834,-103.0976,-9.1331,-98.5834,-103.0976,-11.3059,-98.5834,-104.1832,-11.3059,-316.9706,-104.1832,-11.3059,-98.5834,-103.0976,-11.3059,-316.9706 +,-104.1832,-9.1331,-316.9706,-104.1832,-11.3059,-316.9706,-103.0976,-9.1331,-316.9706,-104.1832,-9.1331,-98.5834,-104.1832,-9.1331,-316.9706,-103.3961,-7.9671,-82.4868,-104.1832,-7.9671,-98.5834,-103.3961,-7.9671,-98.5834,-103.3961,-7.9671,-98.5834,-104.1832,-9.1331,-98.5834,-103.0976,-9.1331,-98.5834,-102.2538,-9.1081,-82.4868,-102.2538,-11.3308,-82.4868,-104.1832,-7.9671,-82.4868,-104.1832,-11.3059,-98.5834,-103.3961,-12.4718,-98.5834,-103.0976,-11.3059,-98.5834 +,-104.1832,-12.4718,-82.4868,-103.3961,-12.4718,-98.5834,-104.1832,-12.4718,-98.5834,-102.2538,-11.3308,-98.5834,-102.825,-8.12,-98.5834,-102.4069,-8.5376,-98.5834,-102.2538,-9.1081,-98.5834,-102.4069,-11.9013,-98.5834,-102.825,-12.319,-98.5834,-102.4069,-8.5376,-82.4868,-102.2538,-9.1081,-98.5834,-102.2538,-9.1081,-82.4868,-102.825,-8.12,-82.4868,-102.4069,-8.5376,-98.5834,-102.4069,-8.5376,-82.4868,-102.825,-8.12,-98.5834,-102.4069,-11.9013,-98.5834 +,-102.2538,-11.3308,-82.4868,-102.2538,-11.3308,-98.5834,-102.825,-12.319,-98.5834,-102.4069,-11.9013,-82.4868,-102.4069,-11.9013,-98.5834,-102.825,-12.319,-82.4868,55.0449,-61.3328,888.1176,104.0056,-67.991,888.1176,51.2449,-67.991,888.1176,-26.685,-62.4253,888.1176,-96.3124,-67.991,888.1176,-96.3124,-62.4253,888.1176,6.9559,-63.9265,71.8912,6.9559,-67.991,140.1047,6.9559,-67.991,71.8912,31.5826,-67.991,-667.2903,33.7635,-67.991,-778.7513 +,33.7635,-67.991,-664.7654,-1.6234,-67.991,-788.4139,-4.5192,-67.991,-758.2314,-4.5192,-67.991,-899.9999,92.7136,-67.991,-778.7515,33.7635,-67.991,-778.7513,104.0056,-67.991,-788.4141,-104.1832,-67.991,-758.2316,-12.1076,-67.991,-748.5688,-104.1832,-67.991,-748.5688,-4.5192,-67.991,-758.2314,-4.5192,-67.991,-748.5688,-4.5192,-67.991,-656.306,31.5826,-67.991,-667.2903,33.7635,-67.991,-664.7654,24.6143,-67.991,-483.2106,104.0056,-67.991,-468.0732 +,24.6143,-67.991,-468.0732,19.3303,-67.991,-435.0913,-71.5832,-67.991,-584.9952,24.6143,-67.991,-600.16,-31.7127,-67.991,-545.6588,-36.8287,-67.991,-435.0914,-31.7127,-67.991,-435.0914,1.329,-67.991,-423.1802,-104.1832,-67.991,-607.7705,-12.1076,-67.991,-607.7705,111.9593,-3.2072,-778.7515,111.9593,52.0576,-788.4141,111.9593,41.9563,-778.7515,111.9593,-67.991,-788.4141,111.9593,-58.2846,-788.4141,111.9593,-62.9193,-778.7515,111.9593,52.0576,-656.3058 +,111.9593,41.9563,-664.7655,111.9593,-3.2072,-778.7515,111.9593,-5.0422,-664.7655,111.9593,-5.0422,-778.7515,111.9593,2.6115,-656.306,111.9593,-3.2072,-664.7655,-98.284,-67.991,-466.8922,-84.3311,-67.991,-584.9952,-84.3311,-67.991,-435.0913,-104.1832,-67.991,-576.5476,-98.284,-67.991,-572.2172,-104.1832,-67.991,-462.5617,-104.1832,-67.991,-435.0913,-96.3124,-67.991,-423.1802,-104.1832,-67.991,-423.1802,-96.3124,-67.991,-330.9202,-104.1832,-67.991,-330.9202 +,-26.7093,-67.991,-319.925,2.6491,-67.991,-330.9202,27.6242,-67.991,-319.925,26.279,-67.991,-330.9202,27.6242,-67.991,-183.284,28.5458,-67.991,-319.925,28.5458,-67.991,-182.1907,55.7458,-67.991,-319.925,104.0056,-67.991,-330.9202,104.0056,-67.991,-319.9249,111.9593,-67.991,-423.1802,104.0056,-67.991,-423.1802,111.9593,-67.991,-330.9202,111.9593,-67.991,-319.9249,111.9593,-67.991,-182.1907,104.0056,-67.991,-182.1907,111.9593,-67.991,-156.3875 +,104.0056,-67.991,-156.3875,104.0056,-67.991,-146.7249,111.9593,-67.991,-146.7249,51.2449,-67.991,-146.7249,111.9593,-67.991,-81.0648,104.0056,-67.991,-81.0647,111.9593,-67.991,-5.9264,104.0056,-67.991,-5.9264,104.0056,-67.991,-5.9264,61.6545,-67.991,3.8901,55.0449,-67.991,-5.9264,111.9593,-67.991,3.8901,104.0056,-67.991,-5.9264,111.9593,-67.991,-5.9264,102.0779,-67.991,3.8901,111.9593,-67.991,140.1046,102.0779,-67.991,140.1046 +,104.0056,-67.991,153.9963,111.9593,-67.991,153.9963,47.0821,-67.991,-175.4672,-18.9161,-67.991,-175.4671,-23.4336,-67.991,-183.284,-23.4336,-67.991,-124.3475,-18.9161,-67.991,-87.6013,9.7224,-67.991,-81.142,-22.8782,-67.991,-81.142,-22.8782,-67.991,-116.0652,-96.3124,-67.991,-116.0652,-96.3124,-67.991,-124.3475,-96.3124,-67.991,-319.925,-104.1832,-67.991,-319.925,-104.1832,-67.991,-190.1445,-96.3124,-67.991,-190.1443,-104.1832,-67.991,-124.3475 +,-104.1832,-67.991,-116.0652,-96.3124,-67.991,-81.142,-104.1832,-67.991,-81.142,-96.3124,-67.991,-5.9264,-104.1832,-67.991,-5.9263,-104.1832,-67.991,-5.9263,-96.792,-67.991,0.925,-104.1832,-67.991,0.925,-26.685,-67.991,-5.9264,-96.3124,-67.991,-5.9264,-96.792,-67.991,107.3426,-104.1832,-67.991,107.3426,51.2449,-67.991,-81.0647,47.0821,-67.991,-87.6014,15.0065,-67.991,-81.0648,9.7224,-67.991,-5.9264,15.0065,-67.991,-5.9264 +,9.7224,-67.991,-5.9264,21.4861,-67.991,0.925,9.7224,-67.991,-5.9264,15.0065,-67.991,-5.9264,15.0065,-67.991,-5.9264,21.4861,-67.991,23.3717,57.6046,-67.991,40.5444,21.1403,-67.991,40.5443,61.6545,-67.991,140.1047,11.3216,-67.991,77.1818,23.3163,-67.991,49.126,53.2389,-67.991,49.126,6.9559,-67.991,71.8912,-14.6208,-67.991,107.3426,-4.5192,-67.991,120.3484,6.9559,-67.991,140.1047,-4.5192,-67.991,226.2709 +,2.0026,-67.991,153.9964,2.0026,-67.991,265.5823,57.6046,-67.991,140.1047,-96.3124,-67.991,120.3483,-104.1832,-67.991,120.3483,-96.3124,-67.991,226.2709,-104.1832,-67.991,226.2709,-83.2163,-67.991,244.2247,-37.2794,-67.991,244.2245,-32.7842,-67.991,244.2245,-3.1567,-67.991,244.2245,11.9584,-67.991,286.3535,4.3699,-67.991,286.3535,-3.1567,-67.991,360.9411,4.3699,-67.991,378.6164,-32.7842,-67.991,360.9411,-37.2794,-67.991,364.5499 +,-1.9302,-67.991,378.6164,-104.1832,-67.991,378.6164,-83.2163,-67.991,364.55,-104.1832,-67.991,244.2247,-104.1832,-67.991,364.55,4.3699,-67.991,427.1519,-1.9302,-67.991,447.9147,111.9593,-67.991,286.3533,104.0056,-67.991,265.5822,111.9593,-67.991,265.5822,104.0056,-67.991,286.3533,111.9593,-67.991,378.6163,104.0056,-67.991,378.6164,111.9593,-67.991,427.1517,104.0056,-67.991,427.1519,111.9593,-67.991,434.7623,24.6143,-67.991,434.7623 +,11.9584,-67.991,427.1519,18.8083,-67.991,468.9671,24.6143,-67.991,551.7117,-83.3966,-67.991,468.9671,-104.1832,-67.991,458.3748,-104.1832,-67.991,447.9147,-98.284,-67.991,458.3748,-98.284,-67.991,572.3605,18.8083,-67.991,561.0539,-104.1832,-67.991,572.3605,-83.3966,-67.991,598.0654,-96.3124,-67.991,611.7422,1.329,-67.991,611.7422,32.3532,-67.991,566.8492,-6.5472,-67.991,598.0654,-96.3124,-67.991,704.0021,-104.1832,-67.991,611.7422 +,104.0056,-67.991,566.8492,104.0056,-67.991,611.7422,111.9593,-67.991,704.0021,104.0056,-67.991,704.0021,111.9593,-67.991,611.7422,111.9593,-67.991,551.7117,111.9593,-67.991,566.8492,-104.1832,-67.991,704.0021,-96.3124,-67.991,714.9974,-104.1832,-67.991,714.9974,-96.3124,-67.991,795.1008,-26.7093,-67.991,714.9974,2.6491,-67.991,704.0021,28.085,-67.991,714.9974,104.0056,-67.991,714.9974,111.9593,-67.991,714.9974,111.9593,-67.991,796.1942 +,104.0056,-67.991,796.1942,-104.1832,-67.991,795.1008,-96.3124,-67.991,804.6938,-104.1832,-67.991,804.6939,-96.3124,-67.991,888.1176,-23.4336,-67.991,795.1008,104.0056,-67.991,804.6937,111.9593,-67.991,804.6937,111.9593,-67.991,888.1176,104.0056,-67.991,888.1176,51.2449,-67.991,804.6937,28.085,-67.991,795.6474,-22.8782,-67.991,804.6938,51.2449,-67.991,888.1176,111.9593,-60.9615,-600.16,111.9593,-67.991,-607.7705,111.9593,-60.5609,-607.7704 +,111.9593,-56.1568,-607.7704,111.9593,2.6115,-607.7704,111.9593,2.6115,-537.1594,111.9593,-57.5139,-527.3181,111.9593,41.9563,-527.3181,111.9593,52.0576,-537.1594,111.9593,52.0576,-413.3321,111.9593,41.9563,-413.3322,111.9593,-60.9615,-483.2107,111.9593,-57.5139,-413.3322,111.9593,-67.991,-423.1802,111.9593,-67.991,-483.2107,111.9593,-4.1038,-401.1639,111.9593,-6.7892,-292.6229,111.9593,-6.7892,-401.1639,111.9593,-41.645,-250.7017,111.9593,-41.645,-292.6229 +,111.9593,-41.645,-401.1639,111.9593,-67.991,-330.9202,111.9593,52.0576,-401.1638,111.9593,39.0483,-249.0907,111.9593,52.0576,-249.0907,111.9593,52.0576,-145.9298,111.9593,39.0483,-145.9298,111.9593,-2.4611,-132.8068,111.9593,-1.2983,-145.9298,111.9593,-67.991,-319.9249,111.9593,-67.991,-182.1907,111.9593,-41.645,-145.9298,111.9593,-67.991,-156.3875,111.9593,-67.991,-146.7249,111.9593,-41.645,-132.8068,111.9593,-67.991,-81.0648,111.9593,-2.4611,17.4589 +,111.9593,-57.5139,17.4589,111.9593,-67.991,-5.9264,111.9593,-67.991,3.8901,111.9593,-67.991,140.1046,111.9593,-57.5139,131.4448,111.9593,-58.2846,153.9963,111.9593,-67.991,153.9963,111.9593,4.6873,131.4448,111.9593,52.0576,153.9963,111.9593,41.9563,131.4448,111.9593,52.0576,131.4448,111.9593,52.0576,-132.8068,111.9593,52.0576,265.5822,111.9593,-3.2072,274.9472,111.9593,-58.2846,265.5822,111.9593,41.9563,370.1569,111.9593,52.0576,383.777 +,111.9593,2.6115,383.777,111.9593,-3.2072,370.1569,111.9593,-41.3755,383.777,111.9593,-67.991,378.6163,111.9593,-67.991,286.3533,111.9593,-67.991,265.5822,111.9593,-60.9615,434.7623,111.9593,-67.991,434.7623,111.9593,2.6115,439.0366,111.9593,2.6115,497.7629,111.9593,-41.3755,439.0366,111.9593,41.9563,507.6042,111.9593,52.0576,497.7629,111.9593,-57.5139,507.6042,111.9593,-60.9615,551.7117,111.9593,52.0576,621.59,111.9593,41.9563,621.5903 +,111.9593,52.0576,785.8316,111.9593,39.0483,888.1176,111.9593,39.0483,785.8317,111.9593,41.9563,621.5903,111.9593,52.0576,633.7582,111.9593,39.0483,633.7585,111.9593,-6.7892,742.2996,111.9593,-41.645,784.2208,111.9593,-41.645,742.2996,111.9593,-4.1038,633.7585,111.9593,-6.7892,633.7585,111.9593,41.9563,621.5903,111.9593,-57.5139,621.5903,111.9593,-67.991,566.8492,111.9593,-67.991,551.7117,111.9593,-67.991,611.7422,111.9593,-57.5139,621.5903 +,111.9593,-41.645,633.7585,111.9593,-67.991,704.0021,111.9593,-67.991,796.1942,111.9593,-67.991,714.9974,111.9593,-67.991,804.6937,111.9593,-41.645,888.1176,151.2628,52.0576,-788.4139,111.9593,52.0576,-656.3058,111.9593,52.0576,-788.4141,111.9593,52.0576,265.5822,151.2628,52.0576,383.777,111.9593,52.0576,383.777,111.9593,52.0576,633.7582,151.2628,52.0576,900.0001,111.9593,52.0576,785.8316,-104.1832,-57.069,-758.2316,-104.1832,4.1926,-838.4677 +,-104.1832,-57.069,-900,-104.1832,52.0576,-899.9998,-104.1832,39.0483,-838.4677,-104.1832,39.0483,-586.4658,-104.1832,52.0576,-838.4674,-104.1832,-67.991,-758.2316,-104.1832,-60.5609,-748.5688,-104.1832,4.1926,-586.4658,-104.1832,-60.5609,-656.306,-104.1832,-60.5609,-607.7705,-104.1832,-67.991,-607.7705,-104.1832,-67.991,-576.5476,-104.1832,41.9563,-576.5476,-104.1832,52.0576,-586.4657,-104.1832,52.0576,-576.5475,-104.1832,41.9563,-462.5617,-104.1832,52.0576,-462.5616 +,-104.1832,52.0576,-442.5061,-104.1832,-55.0577,-442.5062,-104.1832,-67.991,-462.5617,-104.1832,-67.991,-435.0913,-104.1832,-67.991,-423.1802,-104.1832,-55.0577,-330.9202,-104.1832,-1.4613,-319.925,-104.1832,52.0576,-330.9202,-104.1832,-55.0577,-330.9202,-104.1832,49.4658,-319.925,-104.1832,52.0576,-78.139,-104.1832,-55.0577,-330.9202,-104.1832,-1.4613,-78.139,-104.1832,-67.991,-330.9202,-104.1832,-67.991,-319.925,-104.1832,-55.0577,-330.9202,-104.1832,-67.991,-116.0652 +,-104.1832,-67.991,-81.142,-104.1832,-57.5139,-60.1182,-104.1832,-67.991,-5.9263,-104.1832,-67.991,0.925,-104.1832,-57.5139,53.8676,-104.1832,41.9563,-60.1182,-104.1832,41.9563,53.8676,-104.1832,52.0576,-60.1182,-104.1832,-67.991,107.3426,-104.1832,-30.9675,82.9042,-104.1832,19.9596,82.9042,-104.1832,39.0483,196.4547,-104.1832,52.0576,196.4547,-104.1832,52.0576,53.8676,-104.1832,4.1926,196.4547,-104.1832,19.9596,183.7652,-104.1832,-30.9675,183.7652 +,-104.1832,-67.991,120.3483,-104.1832,-30.9675,82.9042,-96.8078,-30.9675,183.7652,-96.8077,-30.9675,82.9042,-104.1832,-67.991,226.2709,-104.1832,-62.9193,244.2247,-104.1832,-67.991,244.2247,-104.1832,-5.0422,244.2247,-104.1832,52.0576,448.4566,-104.1832,39.0483,448.4567,-104.1832,41.9563,458.3748,-104.1832,41.9563,572.3605,-104.1832,4.1926,448.4567,-104.1832,-67.991,458.3748,-104.1832,-67.991,447.9147,-104.1832,-60.5609,447.9147,-104.1832,-56.1568,447.9147 +,-104.1832,-5.0422,364.55,-104.1832,-62.9193,364.55,-104.1832,-56.1568,378.6164,-104.1832,-67.991,378.6164,-104.1832,-67.991,364.55,-104.1832,52.0576,704.002,-151.7372,52.0576,899.9998,-151.7372,52.0576,704.002,-104.1832,52.0576,592.4161,-104.1832,-55.0577,592.4161,-104.1832,-67.991,572.3605,-104.1832,-67.991,611.7422,-104.1832,-55.0577,704.0021,-104.1832,-55.0577,592.4161,-95.7718,-55.0577,704.0021,-95.7718,-55.0577,592.4161,-104.1832,-55.0577,704.0021 +,-104.1832,-67.991,704.0021,-104.1832,-55.0577,714.9974,-104.1832,-67.991,714.9974,-104.1832,-3.98,714.9974,-104.1832,-55.0577,704.0021,-104.1832,-55.0577,704.0021,-104.1832,-1.4613,714.9974,-104.1832,52.0576,704.002,-104.1832,46.5578,714.9974,-104.1832,-1.4613,888.1176,-104.1832,-3.98,888.1176,-104.1832,46.5578,888.1176,-104.1832,-67.991,804.6939,-104.1832,-67.991,795.1008,-151.7372,52.0576,-442.5061,-151.7372,52.0576,-899.9998,-104.1832,52.0576,-586.4657 +,-104.1832,52.0576,899.9998,-104.1832,-55.0577,888.1176,-104.1832,-67.991,900.0001,51.2449,-67.991,900.0001,111.9593,-67.991,888.1176,111.9593,-67.991,900.0001,111.9593,-1.2983,888.1176,-22.8782,-67.991,888.1176,-96.3124,-67.991,900.0001,-104.1832,-67.991,888.1176,104.0056,-67.991,900.0001,111.9593,52.0576,900.0001,-104.1832,-67.991,900.0001,-104.1832,-67.991,888.1176,-22.8782,-67.991,900.0001,30.5163,-61.3635,826.7757,33.8294,-64.1105,826.1061 +,30.5163,-64.1105,826.7757,33.8294,-61.3635,826.1061,36.6382,-64.1105,824.1992,36.6382,-61.3635,824.1992,38.5149,-64.1105,821.3449,36.6382,-64.1105,824.1992,38.5149,-61.3635,821.3449,39.174,-64.1105,817.9785,39.174,-61.3635,817.9785,38.5149,-64.1105,814.6118,38.5149,-61.3635,814.6118,36.6382,-64.1105,811.7576,36.6382,-61.3635,811.7576,33.8294,-64.1105,809.8506,36.6382,-64.1105,811.7576,33.8294,-61.3635,809.8506,30.5163,-64.1105,809.181 +,30.5163,-61.3635,809.181,27.2032,-64.1105,809.8506,27.2032,-61.3635,809.8506,24.3944,-64.1105,811.7576,24.3944,-61.3635,811.7576,22.5177,-64.1105,814.6118,24.3944,-64.1105,811.7576,22.5177,-61.3635,814.6118,21.8587,-64.1105,817.9785,21.8587,-61.3635,817.9785,22.5177,-64.1105,821.3449,22.5177,-61.3635,821.3449,24.3944,-64.1105,824.1992,38.5149,-61.3635,814.6118,39.174,-61.3635,817.9785,22.5177,-61.3635,814.6118,24.3944,-61.3635,824.1992 +,27.2032,-64.1105,826.1061,24.3944,-64.1105,824.1992,27.2032,-61.3635,826.1061,33.8294,-64.1105,826.1061,38.7352,-64.1105,826.33,34.9643,-64.1105,828.8903,30.5163,-64.1105,829.7894,26.0683,-67.991,828.8903,26.0683,-64.1105,828.8903,33.8294,-64.1105,809.8506,38.7352,-64.1105,809.6268,36.6382,-64.1105,811.7576,22.5177,-64.1105,814.6118,18.893,-64.1105,817.9785,19.7778,-64.1105,813.4586,38.5149,-64.1105,814.6118,42.1396,-64.1105,817.9785 +,39.174,-64.1105,817.9785,27.2032,-64.1105,809.8506,22.2974,-64.1105,809.6268,26.0683,-64.1105,807.0665,27.2032,-64.1105,826.1061,22.2974,-64.1105,826.33,24.3944,-64.1105,824.1992,36.6382,-64.1105,824.1992,41.2548,-64.1105,822.4982,30.5163,-64.1105,809.181,34.9643,-64.1105,807.0665,30.5163,-64.1105,826.7757,30.5163,-64.1105,829.7894,22.5177,-64.1105,821.3449,21.8587,-64.1105,817.9785,41.2548,-64.1105,813.4586,24.3944,-64.1105,811.7576 +,26.0683,-64.1105,828.8903,38.5149,-64.1105,821.3449,30.5163,-64.1105,806.1674,19.7778,-64.1105,822.4982,26.0683,-64.1105,807.0665,30.5163,-67.991,806.1674,30.5163,-64.1105,806.1674,38.7352,-64.1105,826.33,34.9643,-67.991,828.8903,34.9643,-64.1105,828.8903,22.2974,-64.1105,809.6268,26.0683,-67.991,807.0665,41.2548,-64.1105,822.4982,38.7352,-67.991,826.33,38.7352,-64.1105,826.33,19.7778,-64.1105,813.4586,22.2974,-67.991,809.6268 +,22.2974,-64.1105,809.6268,42.1396,-64.1105,817.9785,41.2548,-67.991,822.4982,18.893,-64.1105,817.9785,19.7778,-67.991,813.4586,41.2548,-64.1105,813.4586,42.1396,-67.991,817.9785,19.7778,-64.1105,822.4982,18.893,-67.991,817.9785,38.7352,-64.1105,809.6268,41.2548,-67.991,813.4586,22.2974,-64.1105,826.33,19.7778,-67.991,822.4982,34.9643,-64.1105,807.0665,38.7352,-67.991,809.6268,38.7352,-64.1105,809.6268,22.2974,-67.991,826.33 +,22.2974,-64.1105,826.33,34.9643,-67.991,807.0665,30.5163,-67.991,829.7894,-1.9374,-61.3635,826.7757,1.3757,-64.1105,826.1061,-1.9374,-64.1105,826.7757,1.3757,-61.3635,826.1061,4.1845,-64.1105,824.1992,4.1845,-61.3635,824.1992,6.0612,-64.1105,821.3449,4.1845,-64.1105,824.1992,6.0612,-61.3635,821.3449,6.7202,-64.1105,817.9785,6.7202,-61.3635,817.9785,6.0612,-64.1105,814.6118,6.0612,-61.3635,814.6118,4.1845,-64.1105,811.7576 +,4.1845,-61.3635,811.7576,1.3757,-64.1105,809.8506,4.1845,-64.1105,811.7576,1.3757,-61.3635,809.8506,-1.9374,-64.1105,809.181,-1.9374,-61.3635,809.181,-5.2505,-64.1105,809.8506,-5.2505,-61.3635,809.8506,-8.0593,-64.1105,811.7576,-8.0593,-61.3635,811.7576,-9.936,-64.1105,814.6118,-8.0593,-64.1105,811.7576,-9.936,-61.3635,814.6118,-10.595,-64.1105,817.9785,-10.595,-61.3635,817.9785,-9.936,-64.1105,821.3449,-9.936,-61.3635,821.3449 +,-8.0593,-64.1105,824.1992,6.0612,-61.3635,814.6118,6.7202,-61.3635,817.9785,-9.936,-61.3635,814.6118,-8.0593,-61.3635,824.1992,-5.2505,-64.1105,826.1061,-8.0593,-64.1105,824.1992,-5.2505,-61.3635,826.1061,1.3757,-64.1105,826.1061,6.2815,-64.1105,826.33,2.5106,-64.1105,828.8903,-1.9374,-64.1105,829.7894,-6.3854,-67.991,828.8903,-6.3854,-64.1105,828.8903,1.3757,-64.1105,809.8506,6.2815,-64.1105,809.6268,4.1845,-64.1105,811.7576 +,-9.936,-64.1105,814.6118,-13.5607,-64.1105,817.9785,-12.6759,-64.1105,813.4586,6.0612,-64.1105,814.6118,9.6859,-64.1105,817.9785,6.7202,-64.1105,817.9785,-5.2505,-64.1105,809.8506,-10.1563,-64.1105,809.6268,-6.3854,-64.1105,807.0665,-5.2505,-64.1105,826.1061,-10.1563,-64.1105,826.33,-8.0593,-64.1105,824.1992,4.1845,-64.1105,824.1992,8.8011,-64.1105,822.4982,-1.9374,-64.1105,809.181,2.5106,-64.1105,807.0665,-1.9374,-64.1105,826.7757 +,-1.9374,-64.1105,829.7894,-9.936,-64.1105,821.3449,-10.595,-64.1105,817.9785,8.8011,-64.1105,813.4586,-8.0593,-64.1105,811.7576,-6.3854,-64.1105,828.8903,6.0612,-64.1105,821.3449,-1.9374,-64.1105,806.1674,-12.6759,-64.1105,822.4982,-6.3854,-64.1105,807.0665,-1.9374,-67.991,806.1674,-1.9374,-64.1105,806.1674,6.2815,-64.1105,826.33,2.5106,-67.991,828.8903,2.5106,-64.1105,828.8903,-10.1563,-64.1105,809.6268,-6.3854,-67.991,807.0665 +,8.8011,-64.1105,822.4982,6.2815,-67.991,826.33,6.2815,-64.1105,826.33,-12.6759,-64.1105,813.4586,-10.1563,-67.991,809.6268,-10.1563,-64.1105,809.6268,9.6859,-64.1105,817.9785,8.8011,-67.991,822.4982,-13.5607,-64.1105,817.9785,-12.6759,-67.991,813.4586,8.8011,-64.1105,813.4586,9.6859,-67.991,817.9785,-12.6759,-64.1105,822.4982,-13.5607,-67.991,817.9785,6.2815,-64.1105,809.6268,8.8011,-67.991,813.4586,-10.1563,-64.1105,826.33 +,-12.6759,-67.991,822.4982,2.5106,-64.1105,807.0665,6.2815,-67.991,809.6268,6.2815,-64.1105,809.6268,-10.1563,-67.991,826.33,-10.1563,-64.1105,826.33,2.5106,-67.991,807.0665,-1.9374,-67.991,829.7894,105.4565,-15.2119,-275.9178,108.4184,-12.8789,-276.3555,108.4184,-15.2119,-275.9178,105.4565,-12.8789,-276.3555,108.4184,-10.9011,-277.6018,105.4565,-10.9011,-277.6018,108.4184,-9.5796,-279.4673,108.4184,-10.9011,-277.6018,105.4565,-9.5796,-279.4673 +,108.4184,-9.1156,-281.6677,108.4184,-9.5796,-279.4673,105.4565,-9.1156,-281.6677,108.4184,-9.5796,-283.8681,105.4565,-9.5796,-283.8681,108.4184,-10.9011,-285.7335,108.4184,-9.5796,-283.8681,105.4565,-10.9011,-285.7335,108.4184,-12.8789,-286.9799,108.4184,-10.9011,-285.7335,105.4565,-12.8789,-286.9799,108.4184,-15.2119,-287.4175,105.4565,-15.2119,-287.4175,108.4184,-17.5448,-286.9799,105.4565,-17.5448,-286.9799,108.4184,-19.5226,-285.7335,105.4565,-19.5226,-285.7335 +,108.4184,-20.8441,-283.8681,108.4184,-19.5226,-285.7335,108.4184,-20.8441,-283.8681,105.4565,-21.3081,-281.6677,108.4184,-21.3081,-281.6677,108.4184,-20.8441,-279.4673,105.4565,-20.8441,-279.4673,108.4184,-19.5226,-277.6018,108.4184,-20.8441,-279.4673,105.4565,-12.8789,-286.9799,105.4565,-10.9011,-285.7335,105.4565,-12.8789,-276.3555,105.4565,-19.5226,-277.6018,108.4184,-17.5448,-276.3555,108.4184,-19.5226,-277.6018,105.4565,-17.5448,-276.3555,108.4184,-10.9011,-277.6018 +,108.4184,-12.0798,-274.536,108.4184,-12.8789,-276.3555,108.4184,-15.2119,-273.9484,111.9593,-18.3439,-274.536,108.4184,-18.3439,-274.536,108.4184,-10.9011,-285.7335,108.4184,-12.0798,-288.7995,108.4184,-9.4245,-287.1262,108.4184,-21.3081,-281.6677,108.4184,-22.7734,-284.6218,108.4184,-20.8441,-283.8681,108.4184,-9.1156,-281.6677,108.4184,-7.6503,-284.6218,108.4184,-7.0273,-281.6677,108.4184,-19.5226,-285.7335,108.4184,-18.3439,-288.7995,108.4184,-17.5448,-286.9799 +,108.4184,-19.5226,-277.6018,108.4184,-18.3439,-274.536,108.4184,-20.9992,-276.2092,108.4184,-9.5796,-279.4673,108.4184,-9.4245,-276.2092,108.4184,-12.8789,-286.9799,108.4184,-15.2119,-289.3871,108.4184,-15.2119,-273.9484,108.4184,-15.2119,-275.9178,108.4184,-22.7734,-278.7136,108.4184,-23.3964,-281.6677,108.4184,-9.5796,-283.8681,108.4184,-20.9992,-287.1262,108.4184,-17.5448,-276.3555,108.4184,-7.6503,-278.7136,108.4184,-15.2119,-287.4175,108.4184,-20.8441,-279.4673 +,108.4184,-18.3439,-288.7995,111.9593,-15.2119,-289.3871,108.4184,-15.2119,-289.3871,108.4184,-9.4245,-276.2092,111.9593,-12.0798,-274.536,108.4184,-12.0798,-274.536,108.4184,-20.9992,-287.1262,111.9593,-18.3439,-288.7995,108.4184,-7.6503,-278.7136,111.9593,-9.4245,-276.2092,108.4184,-9.4245,-276.2092,108.4184,-22.7734,-284.6218,111.9593,-20.9992,-287.1262,108.4184,-20.9992,-287.1262,108.4184,-7.0273,-281.6677,111.9593,-7.6503,-278.7136,108.4184,-7.6503,-278.7136 +,108.4184,-23.3964,-281.6677,111.9593,-22.7734,-284.6218,108.4184,-22.7734,-284.6218,108.4184,-7.6503,-284.6218,111.9593,-7.0273,-281.6677,108.4184,-22.7734,-278.7136,111.9593,-23.3964,-281.6677,108.4184,-9.4245,-287.1262,111.9593,-7.6503,-284.6218,108.4184,-7.6503,-284.6218,108.4184,-20.9992,-276.2092,111.9593,-22.7734,-278.7136,108.4184,-22.7734,-278.7136,108.4184,-12.0798,-288.7995,111.9593,-9.4245,-287.1262,108.4184,-9.4245,-287.1262,111.9593,-20.9992,-276.2092 +,108.4184,-20.9992,-276.2092,111.9593,-12.0798,-288.7995,111.9593,-15.2119,-273.9484,105.4565,-34.705,-275.9178,108.4184,-32.3721,-276.3555,108.4184,-34.705,-275.9178,105.4565,-32.3721,-276.3555,108.4184,-30.3943,-277.6018,105.4565,-30.3943,-277.6018,108.4184,-29.0728,-279.4673,108.4184,-30.3943,-277.6018,105.4565,-29.0728,-279.4673,108.4184,-28.6088,-281.6677,108.4184,-29.0728,-279.4673,105.4565,-28.6088,-281.6677,108.4184,-29.0728,-283.8681,105.4565,-29.0728,-283.8681 +,108.4184,-30.3943,-285.7335,108.4184,-29.0728,-283.8681,105.4565,-30.3943,-285.7335,108.4184,-32.3721,-286.9799,108.4184,-30.3943,-285.7335,105.4565,-32.3721,-286.9799,108.4184,-34.705,-287.4175,105.4565,-34.705,-287.4175,108.4184,-37.038,-286.9799,105.4565,-37.038,-286.9799,108.4184,-39.0158,-285.7335,105.4565,-39.0158,-285.7335,108.4184,-40.3373,-283.8681,108.4184,-39.0158,-285.7335,105.4565,-40.3373,-283.8681,108.4184,-40.8013,-281.6677,108.4184,-40.3373,-283.8681 +,105.4565,-40.8013,-281.6677,108.4184,-40.3373,-279.4673,105.4565,-40.3373,-279.4673,108.4184,-39.0158,-277.6018,108.4184,-40.3373,-279.4673,105.4565,-32.3721,-286.9799,105.4565,-30.3943,-285.7335,105.4565,-32.3721,-276.3555,105.4565,-39.0158,-277.6018,108.4184,-37.038,-276.3555,108.4184,-39.0158,-277.6018,105.4565,-37.038,-276.3555,108.4184,-30.3943,-277.6018,108.4184,-31.573,-274.536,108.4184,-32.3721,-276.3555,108.4184,-34.705,-273.9484,111.9593,-37.8371,-274.536 +,108.4184,-37.8371,-274.536,108.4184,-30.3943,-285.7335,108.4184,-31.573,-288.7995,108.4184,-28.9177,-287.1262,108.4184,-40.8013,-281.6677,108.4184,-42.2666,-284.6218,108.4184,-40.3373,-283.8681,108.4184,-28.6088,-281.6677,108.4184,-27.1435,-284.6218,108.4184,-26.5205,-281.6677,108.4184,-39.0158,-285.7335,108.4184,-37.8371,-288.7995,108.4184,-37.038,-286.9799,108.4184,-39.0158,-277.6018,108.4184,-37.8371,-274.536,108.4184,-40.4924,-276.2092,108.4184,-29.0728,-279.4673 +,108.4184,-28.9177,-276.2092,108.4184,-32.3721,-286.9799,108.4184,-34.705,-289.3871,108.4184,-34.705,-273.9484,108.4184,-34.705,-275.9178,108.4184,-42.2666,-278.7136,108.4184,-42.8896,-281.6677,108.4184,-29.0728,-283.8681,108.4184,-40.4924,-287.1262,108.4184,-37.038,-276.3555,108.4184,-27.1435,-278.7136,108.4184,-34.705,-287.4175,108.4184,-40.3373,-279.4673,108.4184,-37.8371,-288.7995,111.9593,-34.705,-289.3871,108.4184,-34.705,-289.3871,108.4184,-28.9177,-276.2092 +,111.9593,-31.573,-274.536,108.4184,-31.573,-274.536,108.4184,-40.4924,-287.1262,111.9593,-37.8371,-288.7995,108.4184,-27.1435,-278.7136,111.9593,-28.9177,-276.2092,108.4184,-28.9177,-276.2092,108.4184,-42.2666,-284.6218,111.9593,-40.4924,-287.1262,108.4184,-40.4924,-287.1262,108.4184,-26.5205,-281.6677,111.9593,-27.1435,-278.7136,108.4184,-27.1435,-278.7136,108.4184,-42.8896,-281.6677,111.9593,-42.2666,-284.6218,108.4184,-42.2666,-284.6218,108.4184,-27.1435,-284.6218 +,111.9593,-26.5205,-281.6677,108.4184,-42.2666,-278.7136,111.9593,-42.8896,-281.6677,108.4184,-28.9177,-287.1262,111.9593,-27.1435,-284.6218,108.4184,-27.1435,-284.6218,108.4184,-40.4924,-276.2092,111.9593,-42.2666,-278.7136,108.4184,-42.2666,-278.7136,108.4184,-31.573,-288.7995,111.9593,-28.9177,-287.1262,108.4184,-28.9177,-287.1262,111.9593,-40.4924,-276.2092,108.4184,-40.4924,-276.2092,111.9593,-31.573,-288.7995,111.9593,-34.705,-273.9484,16.8145,-64.199,675.923 +,83.0624,-60.6966,675.923,83.0624,-64.199,675.923,-104.1832,-55.0577,-442.5062,-95.7718,-55.0577,-330.9202,-95.7718,-55.0577,-442.5062,151.2628,52.0576,-537.1594,111.9593,52.0576,153.9962,111.9593,52.0576,-537.1594,-151.7372,52.0576,-78.139,-104.1832,52.0576,-330.9202,-104.1832,52.0576,-78.139,-151.7372,52.0576,592.416,-104.1832,52.0576,-78.139,-104.1832,52.0576,592.416,111.9593,-67.991,-656.306,-4.5192,-67.991,-656.306,-151.7372,52.0576,-330.9203 +,-151.7372,58.8036,-442.5062,-151.7372,58.8036,-330.9202,-151.7372,52.0576,704.002,-151.7372,58.8036,592.4161,-151.7372,58.8036,704.0021,151.2628,58.8235,153.9963,151.2628,52.0576,265.5822,151.2628,58.8235,265.5822,151.2628,58.9083,439.0366,151.2628,58.9083,383.777,151.2628,52.0576,383.777,151.2628,52.0576,497.7629,151.2628,58.9083,497.7629,151.2628,60.7835,-788.414,151.2628,52.0576,-899.9998,151.2628,52.0576,-788.4139,151.2628,58.9083,-607.7704 +,151.2628,58.9083,-656.3059,151.2628,52.0576,-656.3058,151.2628,52.0576,-537.1593,151.2628,58.9083,-537.1594,33.7635,-67.991,-664.7654,92.7136,-67.991,-664.7655,111.9593,-67.991,-656.306,-1.6234,-67.991,-899.9999,-4.5192,-67.991,-656.306,-4.5192,-67.991,-748.5688,-0.887,-67.991,-667.2903,-0.887,-67.991,-778.1465,-4.5192,-67.991,-748.5688,-4.5192,-67.991,-758.2314,-104.1832,-67.991,-124.3475,-104.1832,-55.0577,-330.9202,-104.1832,-55.0577,-330.9202 +,111.9593,-67.991,611.7422,111.9593,-57.5139,621.5903,104.0056,-60.178,-319.9249,-104.1832,-57.069,-900,-104.1832,-57.069,-900,-17.5769,-57.069,-899.9999,-104.1832,-57.069,-758.2316,7.0036,-58.2846,-788.4139,7.0036,-58.2846,-788.4139,111.9593,-58.2846,-788.4141,104.0056,-58.2846,-900.0001,37.0173,-62.9193,-664.7654,111.9593,-62.9193,-778.7515,33.7635,-67.991,-778.7513,33.7635,-67.991,-664.7654,-31.7127,-67.991,-545.6588,19.3303,-64.0231,-545.6588 +,19.3303,-64.0231,-435.0913,-31.7127,-64.0231,-435.0914,111.9593,-60.9615,-600.16,31.1477,-60.9615,-483.2106,111.9593,-60.9615,-483.2107,-104.1832,-60.5609,-748.5688,-104.1832,-60.5609,-607.7705,-0.1311,-56.1568,-656.306,-0.1311,-56.1568,-656.306,-36.8287,-64.0079,-435.0914,-84.3311,-64.0079,-435.0913,-36.8287,-64.0079,-545.8971,-96.3123,-61.236,-423.1802,104.0056,-64.199,-330.9202,26.279,-64.199,-423.1802,104.0056,-64.199,-468.0732,26.279,-64.199,-468.0732 +,32.9082,-60.178,-319.925,28.5458,-67.991,-182.1907,32.9082,-60.178,-319.925,104.0056,-60.178,-182.1907,55.7458,-60.178,-186.4224,-96.3124,-62.3494,-124.3475,-96.3124,-62.3494,-319.925,-96.3124,-62.3494,-124.3475,27.6242,-67.991,-319.925,-26.7093,-62.3494,-190.1443,27.6242,-67.991,-183.284,-23.4336,-67.991,-124.3475,18.0242,-61.3328,-75.1085,104.0056,-61.3328,-5.9264,15.0065,-67.991,-81.0648,55.0449,-61.3328,-75.1085,51.2449,-67.991,-146.7249 +,104.0056,-61.3328,-146.7249,15.0065,-67.991,-5.9264,-12.9981,-60.2452,-95.4802,-96.3124,-62.4253,-116.0652,-96.3124,-62.4253,-5.9264,-22.8782,-67.991,-116.0652,-96.3124,-62.4253,-116.0652,5.3549,-62.4253,-5.9264,-26.685,-62.4253,-74.7271,9.7224,-67.991,-81.142,104.0056,-60.178,-161.2635,104.0056,-60.178,-182.1907,55.7458,-60.178,-186.4224,104.0056,-60.178,-182.1907,-76.9584,-58.9017,-207.6649,-76.9584,-58.9017,-295.544,-37.6226,-58.9017,-207.6649 +,-37.6226,-58.9017,-295.544,26.279,-64.199,-468.0732,-73.8232,-62.2761,-212.9726,-73.8232,-62.2761,-212.9726,-73.8231,-62.2761,-290.2364,-40.7579,-62.2761,-212.9726,-40.7579,-62.2761,-290.2364,2.649,-64.199,-423.1802,26.279,-64.199,-423.1802,-96.3123,-61.236,-330.9202,-96.3123,-61.236,-330.9202,-3.5166,-61.236,-330.9202,103.6507,-56.1568,-607.7704,111.9593,-56.1568,-607.7704,-0.1311,-56.1568,-607.7704,-12.1076,-60.5609,-748.5688,-4.5192,-63.547,-656.306 +,-4.5192,-67.991,-748.5688,-7.7263,-60.5609,-656.306,-4.5192,-60.5609,-656.306,-0.887,-64.3233,-667.2903,-0.887,-64.3233,-778.1465,31.5826,-64.3233,-667.2903,31.5826,-64.3233,-778.1465,1.701,-65.339,-671.3309,1.701,-65.339,-671.3309,1.701,-65.339,-774.1059,28.9946,-65.339,-671.3309,28.9946,-65.339,-774.1059,-12.9981,-64.199,-95.4802,41.1641,-60.2452,-167.5883,-18.9161,-60.2452,-87.6013,47.0821,-60.2452,-175.4672,47.0821,-60.2452,-87.6014 +,-18.9161,-60.2452,-175.4671,-12.9981,-60.2452,-167.5883,41.1641,-60.2452,-95.4803,111.9593,-67.991,-900.0001,111.9593,-58.2846,-900.0001,104.0056,-58.2846,-788.4141,105.058,40.5138,-827.7573,105.058,31.8904,-827.7573,105.058,44.6766,-827.7573,105.058,36.2631,-827.7573,105.058,44.6766,-827.7573,105.058,40.5138,-827.7573,105.058,42.2317,-797.6898,105.058,38.0689,-797.6898,105.058,29.4456,-797.6898,105.058,33.8182,-827.7573,105.058,31.8904,-827.7573 +,105.058,36.2631,-797.6898,105.058,31.8904,-797.6898,105.058,36.2631,-827.7573,105.058,29.4456,-827.7573,105.058,42.2317,-827.7573,105.058,33.8182,-797.6898,105.058,38.0689,-827.7573,105.058,44.6766,-797.6898,105.058,40.5138,-797.6898,104.0056,-58.2846,-900.0001,104.0056,31.8904,-797.6898,104.0056,36.2631,-797.6898,104.0056,40.5138,-797.6898,104.6636,-8.2101,-778.7515,107.8353,-5.0422,-778.7515,104.825,35.9351,-768.496,111.9593,-3.2072,-778.7515 +,111.9593,-3.2072,-778.7515,111.9593,-3.2072,-664.7655,111.9593,41.9563,-664.7655,111.9593,2.6115,-607.7704,103.6508,56.3578,-656.306,111.9593,2.6115,-607.7704,103.6508,2.6115,-537.1594,111.9593,2.6115,-537.1594,103.6507,-56.1568,-607.7704,103.6507,-56.1568,-656.306,111.9593,-56.1568,-656.306,-71.5832,-64.0079,-584.9952,-71.5832,-64.0079,-584.9952,102.4008,26.5256,-830.8002,102.4008,47.787,-795.1241,102.4008,24.5697,-792.3127,102.4008,24.4739,-833.4255 +,102.4008,47.787,-795.1241,102.4008,49.7421,-833.6498,102.4008,49.7421,-792.3127,102.4008,26.5256,-795.1241,102.4008,47.787,-830.8002,108.7636,60.7835,-788.4141,106.9347,60.3527,-788.4141,151.2628,60.7835,-788.414,104.3491,57.5681,-900.0001,108.7636,60.7835,-900.0001,111.9593,60.7835,-900.0001,105.3188,59.1758,-900.0001,-20.6931,-60.6175,-510.6059,-20.6931,-60.6175,-532.0122,8.3107,-60.6175,-510.6059,-20.6931,-60.6175,-532.0122,8.3107,-60.6175,-532.0122 +,106.2042,58.9083,-656.306,107.8353,-5.0422,-778.7515,43.5741,-58.3309,-580.2135,43.5741,-58.3309,-503.1571,91.5792,-58.3309,-503.1572,43.5741,-58.3309,-503.1571,91.5792,-58.3309,-580.2135,-71.5153,-61.4873,-572.1019,-41.4639,-61.4873,-449.8812,-78.4882,-61.4873,-449.8812,-78.4882,-61.4873,-449.8812,-41.4639,-61.4873,-449.8812,-41.4639,-61.4873,-537.0491,-78.4882,-61.4873,-572.1019,104.4903,36.6433,-520.5009,111.9593,-57.5139,-527.3181,111.9593,-57.5139,-527.3181 +,111.9593,-57.5139,-413.3322,111.9593,41.9563,-413.3322,104.4586,36.2723,120.8527,111.9593,41.9563,131.4448,111.9593,-57.5139,131.4448,111.9593,-57.5139,17.4589,105.3385,34.0323,-389.6675,111.9593,-4.1038,-401.1639,111.9593,-4.1038,-401.1639,111.9593,39.0483,-145.9298,111.9593,39.0483,-145.9298,151.2628,58.9083,-537.1594,-95.7718,52.0576,-330.9202,-96.8242,40.5138,-370.2635,-96.8242,31.8904,-370.2635,-96.8242,44.6766,-370.2635,-96.8242,36.2631,-370.2635 +,-96.8242,44.6766,-370.2635,-96.8242,40.5138,-370.2635,-96.8242,42.2317,-340.1959,-96.8242,38.0689,-340.1959,-96.8242,29.4456,-340.1959,-96.8242,33.8182,-370.2635,-96.8242,31.8904,-370.2635,-96.8242,36.2631,-340.1959,-96.8242,31.8904,-340.1959,-96.8242,36.2631,-370.2635,-96.8242,29.4456,-370.2635,-96.8242,42.2317,-370.2635,-96.8242,33.8182,-340.1959,-96.8242,38.0689,-370.2635,-96.8242,44.6766,-340.1959,-96.8242,40.5138,-340.1959,-95.7718,49.7421,-334.8188 +,-95.7718,31.8904,-340.1959,-95.7718,36.2631,-340.1959,-95.7718,40.5138,-340.1959,-94.167,26.5256,-373.3063,-94.167,47.787,-337.6302,-94.167,24.5697,-334.8188,-94.167,24.4739,-375.9316,-94.167,24.5697,-334.8188,-94.167,49.7421,-376.1559,-94.167,49.7421,-334.8188,-94.167,26.5256,-337.6302,-94.167,47.787,-373.3063,-96.1153,55.5882,-330.9202,-97.085,57.1959,-330.9202,-151.7372,58.8036,-330.9202,-96.1153,55.5882,-442.5062,-100.5298,58.8036,-442.5062 +,-151.7372,58.8036,-442.5062,-151.7372,58.8036,-442.5062,-97.085,57.1959,-442.5062,-98.284,38.1967,-466.8922,-104.1832,41.9563,-462.5617,-104.1832,41.9563,-576.5476,-104.1832,41.9563,-462.5617,-96.8078,38.2236,-592.4279,-104.1832,39.0483,-586.4658,-104.1832,4.1926,-838.4677,-104.1832,4.1926,-838.4677,-104.1832,39.0483,-838.4677,-96.8078,19.9596,183.7652,-104.1832,19.9596,183.7652,-104.1832,-30.9675,82.9042,-104.1832,19.9596,82.9042,-98.284,37.7595,48.4826 +,-104.1832,41.9563,53.8676,-104.1832,-57.5139,53.8676,-104.1832,-57.5139,-60.1182,-104.1832,41.9563,-60.1182,-96.8078,43.8378,-78.139,-104.1832,49.4658,-78.139,-104.1832,-1.4613,-78.139,-104.1832,49.4658,-319.925,-104.1832,49.4658,-319.925,105.3385,-6.7892,-391.5098,111.9593,-41.645,-401.1639,111.9593,-41.645,-401.1639,111.9593,-41.645,-292.6229,111.9593,-6.7892,-401.1639,111.9593,-41.645,-250.7017,111.9593,-41.645,-145.9298,111.9593,-1.2983,-145.9298 +,111.9593,-41.645,-145.9298,111.9593,39.0483,-401.1639,104.0056,-60.178,714.9974,-96.3124,-57.069,120.3483,-96.3124,-57.069,226.2709,-96.3124,-57.069,120.3483,-17.5769,-57.069,120.3484,-96.3124,-57.069,226.2709,10.6297,-58.2846,265.5823,10.6297,-58.2846,265.5823,111.9593,-58.2846,265.5822,104.0056,-58.2846,153.9963,-40.5332,-62.9193,244.2245,-104.1832,-62.9193,364.55,-40.5332,-62.9193,364.5499,-37.2794,-67.991,244.2245,-32.7842,-64.0231,244.2245 +,-3.1567,-64.0231,244.2245,-3.1567,-64.0231,360.9411,-32.7842,-64.0231,360.9411,111.9593,-60.9615,434.7623,31.1477,-60.9615,551.7117,111.9593,-60.9615,551.7117,104.0056,-60.5609,286.3533,104.0056,-60.5609,427.1519,-104.1832,-56.1568,378.6164,-6.3183,-56.1568,378.6164,104.0056,-60.5609,286.3533,-96.792,-64.0079,107.3426,-96.792,-64.0079,0.925,-14.6208,-64.0079,107.3426,-96.3123,-61.236,611.7422,104.0056,-64.199,704.0021,104.0056,-64.199,566.8492 +,32.9082,-60.178,714.9974,28.085,-67.991,795.6474,28.085,-67.991,714.9974,104.0056,-60.178,796.1942,-96.3124,-62.3494,714.9974,-96.3124,-62.3494,795.1008,28.085,-67.991,714.9974,-23.4336,-67.991,795.1008,-26.7093,-62.3494,795.1008,28.085,-67.991,795.6474,55.0449,-61.3328,804.6937,104.0056,-61.3328,888.1176,55.0449,-61.3328,804.6937,104.0056,-61.3328,804.6937,-74.232,-60.2452,585.8642,-11.5797,-60.2452,585.8642,-83.3966,-60.2452,468.9671 +,18.8083,-60.2452,468.9671,-96.3124,-62.4253,804.6938,-22.8782,-67.991,804.6938,-96.3124,-62.4253,804.6938,-26.685,-62.4253,888.1176,-76.9584,-58.9017,770.7198,-76.9584,-58.9017,739.3785,-37.6226,-58.9017,770.7198,-37.6226,-58.9017,739.3785,-73.8232,-62.2761,765.412,-73.8232,-62.2761,765.412,-73.8231,-62.2761,744.686,-40.7579,-62.2761,765.412,-40.7579,-62.2761,744.686,104.0056,-64.199,566.8492,2.649,-64.199,611.7422,-96.3123,-61.236,704.0021 +,-96.3123,-61.236,704.0021,-3.5166,-61.236,704.0021,-104.1832,-56.1568,447.9147,-104.1832,-56.1568,447.9147,104.0056,-60.5609,286.3533,4.3699,-67.991,427.1519,4.3699,-63.547,427.1519,4.3699,-63.547,378.6164,4.3699,-67.991,286.3535,65.0486,-64.3233,134.5231,61.6545,-67.991,3.8901,98.0815,-64.3233,134.523,102.0779,-67.991,3.8901,65.0486,-64.3233,134.5231,9.6437,-60.2452,481.1682,-74.232,-60.2452,481.1682,9.6437,-64.199,481.1682 +,-11.5797,-64.199,585.8642,111.9593,-67.991,153.9963,111.9593,-58.2846,153.9963,104.0056,-58.2846,265.5822,105.058,36.0388,226.2391,105.058,27.4154,226.2391,105.058,40.2016,226.2391,105.058,31.7881,226.2391,105.058,40.2016,226.2391,105.058,36.0388,226.2391,105.058,37.7567,256.3066,105.058,33.5939,256.3066,105.058,24.9705,256.3066,105.058,29.3432,226.2391,105.058,27.4154,226.2391,105.058,31.7881,256.3066,105.058,27.4154,256.3066 +,105.058,31.7881,226.2391,105.058,24.9705,226.2391,105.058,37.7567,226.2391,105.058,29.3432,256.3066,105.058,33.5939,226.2391,105.058,40.2016,256.3066,105.058,36.0388,256.3066,104.0056,-58.2846,153.9963,104.0056,27.4154,256.3066,104.0056,31.7881,256.3066,104.0056,36.0388,256.3066,-96.7703,-8.2102,364.55,-99.942,-5.0422,364.55,104.825,39.4225,281.2092,111.9593,-3.2072,274.9472,111.9593,-3.2072,370.1569,111.9593,-3.2072,370.1569 +,111.9593,41.9563,370.1569,111.9593,2.6115,439.0366,103.6508,56.3578,383.777,111.9593,2.6115,439.0366,103.6508,2.6115,497.7629,111.9593,2.6115,497.7629,111.9593,-41.3755,383.777,103.6508,-52.0108,439.0366,103.6508,-52.0108,383.777,21.4861,-64.0079,0.925,102.4008,22.0506,223.1961,102.4008,43.312,258.8724,102.4008,20.0947,261.6837,102.4008,19.9989,220.5709,102.4008,43.312,258.8724,102.4008,45.2671,220.3466,102.4008,45.2671,261.6837 +,102.4008,22.0506,258.8724,102.4008,43.312,223.1961,108.7636,58.8235,265.5822,106.9347,58.3927,265.5822,151.2628,58.8235,265.5822,104.3491,55.6081,153.9963,108.7636,58.8235,153.9963,151.2628,58.8235,153.9963,105.3188,57.2158,153.9963,-26.388,-60.6175,281.227,-26.388,-60.6175,258.6301,-9.5529,-60.6175,281.227,-26.388,-60.6175,258.6301,-9.5529,-60.6175,258.6301,106.2042,58.9083,383.777,-99.942,-5.0422,364.55,43.5741,-58.3309,454.7089 +,43.5741,-58.3309,531.7653,91.5792,-58.3309,531.7652,43.5741,-58.3309,531.7653,91.5792,-58.3309,454.7089,-80.9007,-61.4873,95.2195,12.9068,-61.4873,10.2676,-80.9007,-61.4873,10.2676,-80.9007,-61.4873,95.2195,-17.1446,-61.4873,95.2195,12.9068,-61.4873,10.2676,104.4903,35.4263,515.9831,111.9593,41.9563,507.6042,111.9593,-57.5139,621.5903,111.9593,41.9563,621.5903,111.9593,41.9563,621.5903,105.3385,34.0323,645.2549,111.9593,-4.1038,633.7585 +,111.9593,-4.1038,633.7585,111.9593,39.0483,888.1176,111.9593,39.0483,888.1176,151.2628,58.9083,383.777,151.2628,58.9083,497.7629,-95.7718,52.0576,704.002,-96.8242,40.5138,603.9101,-96.8242,31.8904,603.9101,-96.8242,44.6766,603.9101,-96.8242,36.2631,603.9101,-96.8242,44.6766,603.9101,-96.8242,40.5138,603.9101,-96.8242,42.2317,633.9777,-96.8242,38.0689,633.9777,-96.8242,29.4456,633.9777,-96.8242,33.8182,603.9101,-96.8242,31.8904,603.9101 +,-96.8242,36.2631,633.9777,-96.8242,31.8904,633.9777,-96.8242,36.2631,603.9101,-96.8242,29.4456,603.9101,-96.8242,42.2317,603.9101,-96.8242,33.8182,633.9777,-96.8242,38.0689,603.9101,-96.8242,44.6766,633.9777,-96.8242,40.5138,633.9777,-95.7718,31.8904,633.9777,-95.7718,36.2631,633.9777,-95.7718,40.5138,633.9777,-94.167,26.5256,600.8674,-94.167,47.787,636.5433,-94.167,24.5697,639.3549,-94.167,24.4739,598.2421,-94.167,24.5697,639.3549 +,-94.167,49.7421,598.0178,-94.167,49.7421,639.3549,-94.167,26.5256,636.5433,-94.167,47.787,600.8674,-96.1153,55.5882,704.0021,-97.085,57.1959,704.0021,-151.7372,58.8036,704.0021,-96.1153,55.5882,592.4161,-100.5298,58.8036,592.4161,-151.7372,58.8036,592.4161,-151.7372,58.8036,592.4161,-97.085,57.1959,592.4161,-98.284,41.9563,572.3605,-104.1832,41.9563,572.3605,-104.1832,-67.991,572.3605,-104.1832,-67.991,458.3748,-104.1832,41.9563,458.3748 +,-96.8078,38.1418,441.9029,-104.1832,39.0483,448.4567,-104.1832,4.1926,448.4567,-104.1832,39.0483,196.4547,-104.1832,39.0483,448.4567,-96.8078,-8.0877,888.1176,-104.1832,-3.98,888.1176,-104.1832,-55.0577,888.1176,-104.1832,-3.98,714.9974,-104.1832,-3.98,714.9974,-96.8078,40.9297,888.1176,-104.1832,46.5578,888.1176,-104.1832,-1.4613,888.1176,-104.1832,-1.4613,714.9974,-104.1832,46.5578,714.9974,105.3385,-6.7892,643.4125,111.9593,-6.7892,633.7585 +,111.9593,-41.645,633.7585,111.9593,-41.645,742.2996,111.9593,-6.7892,742.2996,105.3385,1.4972,789.5849,111.9593,-41.645,784.2208,111.9593,-41.645,888.1176,111.9593,-1.2983,888.1176,111.9593,-41.645,888.1176,111.9593,39.0483,633.7585,53.2389,-67.991,49.126,57.6046,-63.9265,140.1047,21.1403,-63.9265,40.5443,10.4477,-63.9265,76.1227,6.9559,-67.991,71.8912,23.3163,-67.991,49.126,10.4477,-63.9265,133.241,53.2389,-67.991,131.5233 +,57.6046,-67.991,40.5444,-83.3966,-60.2452,598.0654,-6.5472,-67.991,598.0654,9.6437,-64.199,554.2645,-6.5472,-60.2452,598.0654,-1.9302,-67.991,447.9147,4.3699,-67.991,427.1519,4.3699,-67.991,378.6164,34.0179,-64.199,566.8492,22.5247,-62.5644,669.3622,83.0624,-60.6966,675.923,16.8145,-60.6966,618.8954,29.5167,-64.199,599.806,83.0624,-60.6966,599.806,22.5247,-62.5644,622.1656,33.0372,-62.5644,606.367,77.3522,-62.5644,669.3622 +,21.3817,-60.6966,621.511,32.3325,-60.6966,605.0536,-17.0514,-62.071,-521.5942,-17.0514,-62.071,-521.5942,-14.8761,-62.071,-521.5942,-14.8761,-62.071,-476.0645,-13.7087,-63.6416,-459.9679,-13.7087,-63.6416,-476.0645,-18.2188,-62.3692,-459.9679,-18.0657,-61.7987,-459.9679,-17.6476,-61.381,-459.9679,-14.8511,-61.2282,-459.9679,-14.2799,-61.381,-459.9679,-13.8618,-61.7987,-459.9679,-13.7087,-62.3692,-459.9679,-18.2188,-62.3692,-459.9679,-14.2799,-61.381,-476.0645 +,-13.8618,-61.7987,-476.0645,-17.6476,-61.381,-459.9679,-18.0657,-61.7987,-459.9679,-10.7825,-62.071,-521.5942,-10.7825,-62.071,-521.5942,-8.6071,-62.071,-521.5942,-8.6071,-62.071,-476.0645,-7.4398,-63.6416,-459.9679,-7.4398,-63.6416,-476.0645,-11.9498,-62.3692,-459.9679,-11.7968,-61.7987,-459.9679,-11.3786,-61.381,-459.9679,-8.5822,-61.2282,-459.9679,-8.011,-61.381,-459.9679,-7.5928,-61.7987,-459.9679,-7.4398,-62.3692,-459.9679,-11.9498,-62.3692,-459.9679 +,-8.011,-61.381,-476.0645,-7.5928,-61.7987,-476.0645,-11.3786,-61.381,-459.9679,-11.7968,-61.7987,-459.9679,-4.5136,-62.071,-521.5942,-4.5136,-62.071,-521.5942,-2.3382,-62.071,-521.5942,-2.3382,-62.071,-476.0645,-1.1709,-63.6416,-459.9679,-1.1709,-63.6416,-476.0645,-5.6809,-62.3692,-459.9679,-5.5278,-61.7987,-459.9679,-5.1097,-61.381,-459.9679,-2.3132,-61.2282,-459.9679,-1.742,-61.381,-459.9679,-1.3239,-61.7987,-459.9679,-1.1709,-62.3692,-459.9679 +,-5.6809,-62.3692,-459.9679,-1.742,-61.381,-476.0645,-1.3239,-61.7987,-476.0645,-5.1097,-61.381,-459.9679,-5.5278,-61.7987,-459.9679,1.7554,-62.071,-521.5942,1.7554,-62.071,-521.5942,3.9307,-62.071,-521.5942,3.9307,-62.071,-476.0645,5.0981,-63.6416,-459.9679,5.0981,-63.6416,-476.0645,0.5881,-62.3692,-459.9679,0.7411,-61.7987,-459.9679,1.1592,-61.381,-459.9679,3.9557,-61.2282,-459.9679,4.5269,-61.381,-459.9679,4.945,-61.7987,-459.9679 +,5.0981,-62.3692,-459.9679,0.5881,-62.3692,-459.9679,4.5269,-61.381,-476.0645,4.945,-61.7987,-476.0645,1.1592,-61.381,-459.9679,0.7411,-61.7987,-459.9679,64.8862,-55.2604,187.6226,64.8862,-55.2604,187.6226,64.8862,-55.2604,231.2108,79.1301,-55.2604,187.6226,79.1301,-55.2604,231.211,72.1979,-56.7139,193.0955,72.1979,-56.7139,193.0955,72.1979,-56.7139,196.3648,41.9023,-56.7139,196.3648,31.1915,-58.2846,198.1192,41.9023,-58.2846,198.1192 +,31.1915,-57.0121,191.3411,31.1915,-56.4416,191.5712,31.1915,-56.024,192.1998,31.1915,-55.8711,196.4022,31.1915,-56.024,197.2606,31.1915,-56.4416,197.8891,31.1915,-57.0121,198.1192,31.1915,-57.0121,191.3411,41.9023,-56.024,197.2606,31.1915,-56.024,197.2606,41.9023,-56.024,197.2606,41.9023,-56.024,192.1995,31.1915,-56.024,192.1998,72.1979,-56.7139,202.5168,72.1979,-56.7139,202.5168,72.1979,-56.7139,205.7861,41.9023,-56.7139,205.7861 +,31.1915,-58.2846,207.5402,41.9023,-58.2846,207.5402,31.1915,-57.0121,200.7624,31.1915,-56.4416,200.9925,31.1915,-56.024,201.6208,31.1915,-55.8711,205.8234,31.1915,-56.024,206.6819,31.1915,-56.4416,207.3104,31.1915,-57.0121,207.5402,31.1915,-57.0121,200.7624,41.9023,-56.024,206.6819,31.1915,-56.024,206.6819,41.9023,-56.024,206.6819,31.1915,-56.024,201.6208,41.9023,-56.024,201.6208,31.1915,-56.024,201.6208,72.1979,-56.7139,211.9379 +,72.1979,-56.7139,211.9379,72.1979,-56.7139,215.2073,41.9023,-56.7139,215.2073,31.1915,-58.2846,216.9616,41.9023,-58.2846,216.9616,31.1915,-57.0121,210.1837,31.1915,-56.4416,210.4136,31.1915,-56.024,211.0421,31.1915,-55.8711,215.2447,31.1915,-56.024,216.1031,31.1915,-56.4416,216.7315,31.1915,-57.0121,216.9616,31.1915,-57.0121,210.1837,41.9023,-56.024,216.1031,31.1915,-56.024,216.1031,41.9023,-56.024,216.1031,31.1915,-56.024,211.0421 +,41.9023,-56.024,211.0421,31.1915,-56.024,211.0421,72.1979,-56.7139,221.3593,72.1979,-56.7139,221.3593,72.1979,-56.7139,224.6286,41.9023,-56.7139,224.6286,31.1915,-58.2846,226.3828,41.9023,-58.2846,226.3828,31.1915,-57.0121,219.6049,31.1915,-56.4416,219.835,31.1915,-56.024,220.4633,31.1915,-55.8711,224.666,31.1915,-56.024,225.5245,31.1915,-56.4416,226.1526,31.1915,-57.0121,226.3828,31.1915,-57.0121,219.6049,41.9023,-55.8711,224.666 +,41.9023,-56.024,225.5245,41.9023,-56.4416,226.1526,41.9023,-56.024,220.4633,31.1915,-56.024,220.4633,111.9593,41.9563,-132.8068,111.9593,-2.4611,-132.8068,111.9593,-2.4611,-132.8068,104.4586,36.2723,-123.6241,-6.6929,-61.8636,-167.5883,-10.387,-63.7283,-167.5883,-7.0388,-61.2333,-95.4802,-6.6929,-61.8636,-95.4802,-6.6929,-61.8636,-95.4802,-1.665,-61.8636,-167.5883,-5.3591,-63.7283,-167.5883,-2.0109,-61.2333,-95.4802,-1.665,-61.8636,-95.4802 +,-1.665,-61.8636,-95.4802,3.3629,-61.8636,-167.5883,-0.3312,-63.7283,-167.5883,3.017,-61.2333,-95.4802,3.3629,-61.8636,-95.4802,3.3629,-61.8636,-95.4802,8.3908,-61.8636,-167.5883,4.6967,-63.7283,-167.5883,8.0449,-61.2333,-95.4802,8.3908,-61.8636,-95.4802,8.3908,-61.8636,-95.4802,13.4187,-61.8636,-167.5883,9.7246,-63.7283,-167.5883,13.0727,-61.2333,-167.5883,13.4187,-61.8636,-95.4802,13.4187,-61.8636,-95.4802,18.4466,-61.8636,-167.5883 +,14.7524,-63.7283,-167.5883,18.1007,-61.2333,-95.4802,18.4466,-61.8636,-95.4802,18.4466,-61.8636,-95.4802,23.4745,-61.8636,-167.5883,19.7803,-63.7283,-167.5883,23.1285,-61.2333,-95.4802,23.4745,-61.8636,-95.4802,23.4745,-61.8636,-95.4802,28.5024,-61.8636,-167.5883,24.8082,-63.7283,-167.5883,28.1565,-61.2333,-95.4802,28.5024,-61.8636,-95.4802,28.5024,-61.8636,-95.4802,33.5303,-61.8636,-167.5883,29.8361,-63.7283,-167.5883,33.1843,-61.2333,-95.4802 +,33.5303,-61.8636,-95.4802,33.5303,-61.8636,-95.4802,38.5582,-61.8636,-167.5883,34.864,-63.7283,-167.5883,38.2122,-61.2333,-95.4802,38.5582,-61.8636,-95.4802,38.5582,-61.8636,-95.4802,105.4565,-10.9011,-258.5727,105.4565,-9.5796,-260.4382,105.4565,-9.5796,-264.8389,105.4565,-10.9011,-266.7043,105.4565,-19.5226,-266.7043,105.4565,-20.8441,-264.8389,108.4184,-20.8441,-264.8389,105.4565,-20.8441,-264.8389,105.4565,-20.8441,-260.4382,105.4565,-19.5226,-258.5727 +,105.4565,-10.9011,-258.5727,105.4565,-15.2119,-256.8887,105.4565,-17.5448,-257.3264,105.4565,-17.5448,-267.9507,105.4565,-19.5226,-258.5727,105.4565,-20.8441,-260.4382,105.4565,-19.5226,-266.7043,105.4565,-21.3081,-262.6385,105.4565,-20.8441,-264.8389,105.4565,-15.2119,-268.3884,105.4565,-9.5796,-264.8389,105.4565,-9.5796,-260.4382,105.4565,-9.1156,-262.6385,111.9593,-9.4245,-257.1801,111.9593,-20.9992,-268.097,111.9593,-7.6503,-259.6844,111.9593,-22.7734,-265.5927 +,111.9593,-7.6503,-265.5927,111.9593,-22.7734,-259.6844,111.9593,-9.4245,-268.097,111.9593,-20.9992,-257.1801,105.4565,-30.3943,-258.5727,105.4565,-29.0728,-260.4382,105.4565,-29.0728,-264.8389,105.4565,-30.3943,-266.7043,105.4565,-39.0158,-266.7043,105.4565,-40.3373,-264.8389,105.4565,-40.3373,-260.4382,105.4565,-39.0158,-258.5727,105.4565,-30.3943,-258.5727,105.4565,-34.705,-256.8887,105.4565,-37.038,-257.3264,105.4565,-37.038,-267.9507,105.4565,-39.0158,-258.5727 +,105.4565,-40.3373,-260.4382,105.4565,-39.0158,-266.7043,105.4565,-40.8013,-262.6385,105.4565,-40.3373,-264.8389,105.4565,-34.705,-268.3884,105.4565,-29.0728,-264.8389,105.4565,-29.0728,-260.4382,105.4565,-28.6088,-262.6385,111.9593,-28.9177,-257.1801,111.9593,-40.4924,-268.097,111.9593,-27.1435,-259.6844,111.9593,-42.2666,-265.5927,111.9593,-27.1435,-265.5927,111.9593,-42.2666,-259.6844,111.9593,-28.9177,-268.097,111.9593,-40.4924,-257.1801,-51.1124,-56.7015,-711.0813 +,-47.9338,-56.7015,-713.0697,-47.9338,-56.7015,-726.0416,-58.611,-56.7015,-728.0299,-61.7895,-56.7015,-726.0416,-51.1124,-56.7015,-711.0813,-54.8617,-56.7015,-710.3831,-58.611,-56.7015,-711.0813,-58.611,-56.7015,-728.0299,-61.7895,-56.7015,-713.0697,-63.9133,-56.7015,-716.0454,-63.9133,-56.7015,-723.0658,-64.6591,-56.7015,-719.5556,-61.7895,-56.7015,-726.0416,-54.8617,-56.7015,-728.7281,-45.8101,-56.7015,-723.0658,-45.0643,-56.7015,-719.5556,-45.8101,-56.7015,-716.0454 +,-59.8953,-60.5609,-730.9327,-45.5608,-60.5609,-710.8479,-64.1626,-60.5609,-728.2633,-45.5608,-60.5609,-728.2633,-64.1626,-60.5609,-710.8479,-49.8281,-58.4594,-708.1785,-49.8281,-60.5609,-708.1785,-77.3779,-56.7015,-693.6555,-74.1994,-56.7015,-695.6439,-74.1994,-56.7015,-708.6157,-84.8765,-56.7015,-710.6041,-88.055,-56.7015,-708.6158,-88.055,-56.7015,-695.6438,-74.1994,-56.7015,-695.6439,-81.1272,-56.7015,-692.9573,-84.8765,-56.7015,-693.6555,-84.8765,-56.7015,-710.6041 +,-88.055,-56.7015,-695.6438,-90.1789,-56.7015,-698.6196,-88.055,-56.7015,-708.6158,-90.9246,-56.7015,-702.1298,-90.1789,-56.7015,-705.64,-81.1272,-56.7015,-711.3024,-72.0756,-56.7015,-705.64,-72.0756,-56.7015,-698.6196,-71.3298,-56.7015,-702.1298,-86.1608,-60.5609,-713.507,-71.8263,-60.5609,-693.4221,-90.4281,-60.5609,-710.8375,-71.8263,-60.5609,-710.8375,-90.4281,-60.5609,-693.4221,-76.0936,-58.4594,-690.7527,-76.0936,-60.5609,-690.7527,-79.3932,-56.7015,-722.7382 +,-76.2147,-56.7015,-724.7265,-76.2147,-56.7015,-737.6984,-86.8918,-56.7015,-739.6868,-90.0703,-56.7015,-737.6984,-90.0703,-56.7015,-724.7265,-79.3932,-56.7015,-722.7382,-83.1425,-56.7015,-722.0399,-86.8918,-56.7015,-722.7382,-86.8918,-56.7015,-739.6868,-90.0703,-56.7015,-724.7265,-92.1941,-56.7015,-727.7023,-92.1941,-56.7015,-734.7227,-92.9399,-56.7015,-731.2125,-90.0703,-56.7015,-737.6984,-83.1425,-56.7015,-740.385,-74.0909,-56.7015,-734.7227,-73.3451,-56.7015,-731.2125 +,-74.0909,-56.7015,-727.7023,-88.1761,-60.5609,-742.5896,-73.8416,-60.5609,-722.5048,-92.4434,-60.5609,-739.9201,-73.8416,-60.5609,-739.9201,-92.4434,-60.5609,-722.5048,-78.1089,-58.4594,-719.8353,-78.1089,-60.5609,-719.8353,36.6382,-61.3635,879.618,36.6382,-61.3635,867.1766,24.3944,-61.3635,867.1766,24.3944,-61.3635,879.618,36.6382,-61.3635,879.618,33.8294,-61.3635,881.5251,27.2032,-61.3635,881.5251,30.5163,-61.3635,882.1948,24.3944,-61.3635,879.618 +,22.5177,-61.3635,876.7639,21.8587,-61.3635,873.3974,24.3944,-61.3635,867.1766,27.2032,-61.3635,865.2696,36.6382,-61.3635,867.1766,30.5163,-61.3635,864.5999,33.8294,-61.3635,865.2696,38.5149,-61.3635,876.7639,38.7352,-67.991,881.7488,22.2974,-67.991,865.0456,38.7352,-67.991,865.0456,22.2974,-67.991,881.7488,4.1845,-61.3635,879.618,4.1845,-61.3635,867.1766,-8.0593,-61.3635,867.1766,-8.0593,-61.3635,879.618,4.1845,-61.3635,879.618 +,1.3757,-61.3635,881.5251,-5.2505,-61.3635,881.5251,-1.9374,-61.3635,882.1948,-8.0593,-61.3635,879.618,-9.936,-61.3635,876.7639,-10.595,-61.3635,873.3974,-8.0593,-61.3635,867.1766,-5.2505,-61.3635,865.2696,4.1845,-61.3635,867.1766,-1.9374,-61.3635,864.5999,1.3757,-61.3635,865.2696,6.0612,-61.3635,876.7639,6.2815,-67.991,881.7488,-10.1563,-67.991,865.0456,6.2815,-67.991,865.0456,-10.1563,-67.991,881.7488,36.6382,-61.3635,851.1876 +,36.6382,-61.3635,838.7462,24.3944,-61.3635,838.7462,24.3944,-61.3635,851.1876,36.6382,-61.3635,851.1876,33.8294,-61.3635,853.0945,27.2032,-61.3635,853.0945,30.5163,-61.3635,853.7642,24.3944,-61.3635,851.1876,22.5177,-61.3635,848.3334,21.8587,-61.3635,844.9667,24.3944,-61.3635,838.7462,27.2032,-61.3635,836.8391,33.8294,-61.3635,836.8391,30.5163,-61.3635,836.1694,36.6382,-61.3635,838.7462,38.5149,-61.3635,848.3334,38.7352,-67.991,853.3185 +,22.2974,-67.991,836.6152,38.7352,-67.991,836.6152,22.2974,-67.991,853.3185,4.1845,-61.3635,851.1876,4.1845,-61.3635,838.7462,-8.0593,-61.3635,838.7462,-8.0593,-61.3635,851.1876,4.1845,-61.3635,851.1876,1.3757,-61.3635,853.0945,-5.2505,-61.3635,853.0945,-1.9374,-61.3635,853.7642,-8.0593,-61.3635,851.1876,-9.936,-61.3635,848.3334,-10.595,-61.3635,844.9667,-8.0593,-61.3635,838.7462,-5.2505,-61.3635,836.8391,4.1845,-61.3635,838.7462 +,-1.9374,-61.3635,836.1694,1.3757,-61.3635,836.8391,6.0612,-61.3635,848.3334,6.2815,-67.991,853.3185,-10.1563,-67.991,836.6152,6.2815,-67.991,836.6152,-10.1563,-67.991,853.3185,-103.0976,-30.0906,-316.9706,-103.0976,-30.0906,-316.9706,-103.0976,-27.9178,-316.9706,-103.0976,-27.9178,-98.5834,-104.1832,-26.7518,-82.4868,-104.1832,-26.7518,-98.5834,-102.825,-31.1037,-82.4868,-103.3961,-31.2566,-82.4868,-104.1832,-31.2566,-82.4868,-103.3961,-26.7518,-82.4868 +,-102.825,-26.9047,-82.4868,-102.4069,-27.3224,-82.4868,-102.4069,-30.686,-82.4868,-104.1832,-31.2566,-98.5834,-103.3961,-31.2566,-82.4868,-102.4069,-27.3224,-98.5834,-102.4069,-30.6861,-98.5834,-103.0976,-23.8291,-316.9706,-103.0976,-23.8291,-316.9706,-103.0976,-21.6562,-316.9706,-103.0976,-21.6562,-98.5834,-104.1832,-20.4903,-82.4868,-104.1832,-20.4903,-98.5834,-102.825,-24.8421,-82.4868,-103.3961,-24.995,-82.4868,-104.1832,-24.995,-82.4868,-103.3961,-20.4903,-82.4868 +,-102.825,-20.6431,-82.4868,-102.4069,-21.0608,-82.4868,-102.4069,-24.4245,-82.4868,-104.1832,-24.995,-98.5834,-103.3961,-24.995,-82.4868,-102.4069,-21.0608,-98.5834,-102.4069,-24.4245,-82.4868,-103.0976,-17.5675,-316.9706,-103.0976,-17.5675,-316.9706,-103.0976,-15.3947,-316.9706,-103.0976,-15.3947,-98.5834,-104.1832,-14.2287,-82.4868,-104.1832,-14.2287,-98.5834,-102.825,-18.5806,-82.4868,-103.3961,-18.7334,-82.4868,-104.1832,-18.7334,-82.4868,-103.3961,-14.2287,-82.4868 +,-102.825,-14.3816,-82.4868,-102.4069,-14.7992,-82.4868,-102.4069,-18.1629,-82.4868,-104.1832,-18.7334,-98.5834,-103.3961,-18.7334,-82.4868,-102.4069,-14.7992,-98.5834,-102.4069,-18.1629,-82.4868,-103.0976,-11.3059,-316.9706,-103.0976,-11.3059,-316.9706,-103.0976,-9.1331,-316.9706,-103.0976,-9.1331,-98.5834,-104.1832,-7.9671,-82.4868,-104.1832,-7.9671,-98.5834,-102.825,-12.319,-82.4868,-103.3961,-12.4718,-82.4868,-104.1832,-12.4718,-82.4868,-103.3961,-7.9671,-82.4868 +,-102.825,-8.12,-82.4868,-102.4069,-8.5376,-82.4868,-102.4069,-11.9013,-82.4868,-104.1832,-12.4718,-98.5834,-103.3961,-12.4718,-82.4868,-102.4069,-8.5376,-98.5834,-102.4069,-11.9013,-82.4868,104.0056,-61.3328,888.1176,-22.8782,-67.991,888.1176,6.9559,-63.9265,71.8912,6.9559,-63.9265,140.1047,31.5826,-67.991,-778.1465,-0.887,-67.991,-778.1465,-1.6234,-67.991,-788.4139,33.7635,-67.991,-778.7513,111.9593,-67.991,-788.4141,111.9593,-67.991,-778.7515 +,33.7635,-67.991,-778.7513,31.5826,-67.991,-778.1465,-1.6234,-67.991,-788.4139,-0.887,-67.991,-778.1465,-1.6234,-67.991,-788.4139,31.5826,-67.991,-778.1465,-4.5192,-67.991,-758.2314,-0.887,-67.991,-667.2903,31.5826,-67.991,-667.2903,111.9593,-67.991,-483.2107,19.3303,-67.991,-545.6588,24.6143,-67.991,-423.1802,-36.8287,-67.991,-545.897,-4.5192,-67.991,-607.7705,111.9593,-67.991,-607.7705,111.9593,-67.991,-600.16,111.9593,-5.0422,-778.7515 +,111.9593,-5.0422,-778.7515,111.9593,-67.991,-778.7515,111.9593,-5.0422,-778.7515,111.9593,-3.2072,-778.7515,111.9593,-3.2072,-664.7655,111.9593,-56.1568,-656.306,111.9593,-5.0422,-664.7655,111.9593,-67.991,-656.306,111.9593,-67.991,-664.7655,111.9593,-62.9193,-664.7655,111.9593,-5.0422,-664.7655,111.9593,-5.0422,-664.7655,51.2449,-67.991,-156.3875,104.0056,-67.991,-5.9264,104.0056,-67.991,-5.9264,51.2449,-67.991,-182.1907,-104.1832,-67.991,-5.9263 +,-96.3124,-67.991,-5.9264,53.2389,-67.991,131.5233,11.3216,-67.991,131.5233,111.9593,-67.991,-600.16,111.9593,-4.1038,-250.7017,111.9593,39.0483,-401.1639,111.9593,41.9563,274.9472,111.9593,41.9563,621.5903,111.9593,52.0576,621.59,111.9593,-4.1038,784.2208,111.9593,-57.5139,621.5903,111.9593,41.9563,621.5903,111.9593,-57.5139,621.5903,111.9593,41.9563,621.5903,151.2628,52.0576,-656.3058,151.2628,52.0576,265.5822,111.9593,52.0576,621.59 +,151.2628,52.0576,497.7629,111.9593,52.0576,497.7629,111.9593,52.0576,900.0001,-104.1832,-67.991,-748.5688,-104.1832,-67.991,-330.9202,-104.1832,49.4658,-78.139,-104.1832,-55.0577,-330.9202,-104.1832,-30.9675,183.7652,-104.1832,-60.5609,378.6164,-104.1832,52.0576,899.9998,-104.1832,-67.991,704.0021,-104.1832,-55.0577,704.0021,-104.1832,-55.0577,704.0021,-104.1832,52.0576,-576.5475,-104.1832,52.0576,-462.5616,-104.1832,52.0576,-442.5061,-104.1832,52.0576,-899.9998 +,-104.1832,52.0576,-838.4674,111.9593,-67.991,900.0001,36.6382,-61.3635,824.1992,36.6382,-61.3635,811.7576,24.3944,-61.3635,811.7576,24.3944,-61.3635,824.1992,36.6382,-61.3635,824.1992,33.8294,-61.3635,826.1061,27.2032,-61.3635,826.1061,30.5163,-61.3635,826.7757,24.3944,-61.3635,824.1992,22.5177,-61.3635,821.3449,21.8587,-61.3635,817.9785,24.3944,-61.3635,811.7576,27.2032,-61.3635,809.8506,36.6382,-61.3635,811.7576,30.5163,-61.3635,809.181 +,33.8294,-61.3635,809.8506,38.5149,-61.3635,821.3449,38.7352,-67.991,826.33,22.2974,-67.991,809.6268,38.7352,-67.991,809.6268,22.2974,-67.991,826.33,4.1845,-61.3635,824.1992,4.1845,-61.3635,811.7576,-8.0593,-61.3635,811.7576,-8.0593,-61.3635,824.1992,4.1845,-61.3635,824.1992,1.3757,-61.3635,826.1061,-5.2505,-61.3635,826.1061,-1.9374,-61.3635,826.7757,-8.0593,-61.3635,824.1992,-9.936,-61.3635,821.3449,-10.595,-61.3635,817.9785 +,-8.0593,-61.3635,811.7576,-5.2505,-61.3635,809.8506,4.1845,-61.3635,811.7576,-1.9374,-61.3635,809.181,1.3757,-61.3635,809.8506,6.0612,-61.3635,821.3449,6.2815,-67.991,826.33,-10.1563,-67.991,809.6268,6.2815,-67.991,809.6268,-10.1563,-67.991,826.33,105.4565,-10.9011,-277.6018,105.4565,-9.5796,-279.4673,105.4565,-9.5796,-283.8681,105.4565,-10.9011,-285.7335,105.4565,-19.5226,-285.7335,105.4565,-20.8441,-283.8681,108.4184,-20.8441,-283.8681 +,105.4565,-20.8441,-283.8681,105.4565,-20.8441,-279.4673,105.4565,-19.5226,-277.6018,105.4565,-10.9011,-277.6018,105.4565,-15.2119,-275.9178,105.4565,-17.5448,-276.3555,105.4565,-17.5448,-286.9799,105.4565,-19.5226,-277.6018,105.4565,-20.8441,-279.4673,105.4565,-19.5226,-285.7335,105.4565,-21.3081,-281.6677,105.4565,-20.8441,-283.8681,105.4565,-15.2119,-287.4175,105.4565,-9.5796,-283.8681,105.4565,-9.5796,-279.4673,105.4565,-9.1156,-281.6677,111.9593,-9.4245,-276.2092 +,111.9593,-20.9992,-287.1262,111.9593,-7.6503,-278.7136,111.9593,-22.7734,-284.6218,111.9593,-7.6503,-284.6218,111.9593,-22.7734,-278.7136,111.9593,-9.4245,-287.1262,111.9593,-20.9992,-276.2092,105.4565,-30.3943,-277.6018,105.4565,-29.0728,-279.4673,105.4565,-29.0728,-283.8681,105.4565,-30.3943,-285.7335,105.4565,-39.0158,-285.7335,105.4565,-40.3373,-283.8681,105.4565,-40.3373,-279.4673,105.4565,-39.0158,-277.6018,105.4565,-30.3943,-277.6018,105.4565,-34.705,-275.9178 +,105.4565,-37.038,-276.3555,105.4565,-37.038,-286.9799,105.4565,-39.0158,-277.6018,105.4565,-40.3373,-279.4673,105.4565,-39.0158,-285.7335,105.4565,-40.8013,-281.6677,105.4565,-40.3373,-283.8681,105.4565,-34.705,-287.4175,105.4565,-29.0728,-283.8681,105.4565,-29.0728,-279.4673,105.4565,-28.6088,-281.6677,111.9593,-28.9177,-276.2092,111.9593,-40.4924,-287.1262,111.9593,-27.1435,-278.7136,111.9593,-42.2666,-284.6218,111.9593,-27.1435,-284.6218,111.9593,-42.2666,-278.7136 +,111.9593,-28.9177,-287.1262,111.9593,-40.4924,-276.2092,16.8145,-60.6966,675.923,-104.1832,-55.0577,-330.9202,151.2628,52.0576,153.9962,-151.7372,52.0576,-330.9203,-151.7372,52.0576,-78.139,-104.1832,52.0576,-78.139,-151.7372,52.0576,-442.5061,-151.7372,52.0576,592.416,151.2628,52.0576,153.9963,151.2628,60.7835,-899.9999,111.9593,-67.991,-664.7655,33.7635,-67.991,-664.7654,-4.5192,-67.991,-748.5688,1335.2673,52.0576,-899.9999,151.2628,52.0576,899.9999 +,151.2628,52.0576,-900.0001,1155.5425,56.256,256.1157,879.978,56.256,-80.5739,1155.5425,56.256,-80.5739,1155.5425,52.0576,256.1157,1155.5425,56.256,-80.5739,1155.5425,52.0576,-80.5739,879.978,52.0576,256.1157,1155.5425,56.256,256.1157,1155.5425,52.0576,256.1157,879.978,52.0576,-80.5739,879.978,56.256,256.1157,879.978,52.0576,256.1157,1155.5425,52.0576,-80.5739,879.978,56.256,-80.5739,879.978,52.0576,-80.5739,612.5922,58.9083,-418.2559 +,647.0041,58.9083,-537.1594,647.0041,58.9083,153.996,647.0041,58.9083,-656.3059,456.5334,52.0576,-656.3059,647.0041,52.0576,-656.3059,456.5334,58.9083,-537.1594,456.5334,52.0576,153.996,456.5334,52.0576,-537.1594,647.0041,58.9083,-537.1594,647.0041,52.0576,-656.3059,647.0041,52.0576,-537.1594,647.0041,58.9083,153.996,647.0041,52.0576,153.996,151.2628,58.9083,-537.1594,456.5334,58.9083,-656.3059,456.5334,58.9083,-537.1594,647.0041,58.9083,-537.1594 +,647.0041,58.9083,-656.3059,151.2628,58.9083,-656.3059,456.5334,58.9083,-656.3059,151.2628,52.0576,-537.1594,456.5334,58.9083,-537.1594,456.5334,52.0576,-537.1594,723.9959,58.8218,826.6961,151.2628,58.8218,686.8842,723.9959,58.8218,686.8842,723.9959,52.0576,826.6961,723.9959,58.8218,686.8842,723.9959,52.0576,686.8842,151.2628,52.0576,826.6961,723.9959,58.8218,826.6961,723.9959,52.0576,826.6961,151.2628,52.0576,686.8842,151.2628,58.8218,826.6961 +,151.2628,52.0576,826.6961,723.9959,52.0576,686.8842,151.2628,58.8218,686.8842,151.2628,52.0576,686.8842,812.9156,61.7575,265.5821,698.2614,61.7575,-155.8004,812.9156,61.7575,-155.8004,812.9156,52.0576,265.5821,812.9156,61.7575,-155.8004,812.9156,52.0576,-155.8004,698.2614,52.0576,265.5821,812.9156,61.7575,265.5821,812.9156,52.0576,265.5821,698.2614,52.0576,-155.8004,698.2614,61.7575,265.5821,698.2614,52.0576,265.5821,812.9156,52.0576,-155.8004 +,698.2614,61.7575,-155.8004,698.2614,52.0576,-155.8004,151.2627,52.0576,265.5821,456.5334,58.8235,265.5821,456.5334,52.0576,265.5821,456.5334,52.0576,153.996,151.2627,58.8235,153.996,151.2627,52.0576,153.996,391.6933,59.167,109.0168,265.9391,59.167,-483.371,391.6933,59.167,-483.371,391.6933,52.0576,109.0168,391.6933,59.167,-483.371,391.6933,52.0576,-483.371,265.9391,52.0576,109.0168,391.6933,59.167,109.0168,391.6933,52.0576,109.0168 +,265.9391,52.0576,-483.371,265.9391,59.167,109.0168,265.9391,52.0576,109.0168,391.6933,52.0576,-483.371,265.9391,59.167,-483.371,265.9391,52.0576,-483.371,1291.1716,57.4192,-361.2037,1090.1538,57.4192,-332.4086,698.2614,57.4192,-361.2037,698.2614,52.0576,-209.206,1291.1716,57.4192,-209.206,1291.1716,52.0576,-209.206,698.2614,52.0576,-361.2037,698.2614,57.4192,-209.206,698.2614,52.0576,-209.206,1291.1716,52.0576,-361.2037,698.2614,57.4192,-361.2037 +,698.2614,52.0576,-361.2037,1291.1716,52.0576,-209.206,1291.1716,57.4192,-361.2037,1291.1716,52.0576,-361.2037,1123.595,60.7835,-447.4891,1005.5643,60.7835,-788.414,1123.595,60.7835,-788.414,1123.595,52.0576,-447.4891,1123.595,60.7835,-788.414,1123.595,52.0576,-788.414,1005.5643,52.0576,-447.4891,1123.595,60.7835,-447.4891,1123.595,52.0576,-447.4891,1005.5643,60.7835,-899.9999,151.2628,52.0576,-899.9999,1005.5643,52.0576,-899.9999,1123.595,52.0576,-899.9999 +,791.8431,58.9083,497.7628,960.8324,58.9083,383.7769,960.8324,58.9083,497.7628,960.8324,58.9083,497.7628,960.8324,52.0576,383.7769,960.8324,52.0576,497.7628,960.8324,58.9083,383.7769,791.8431,52.0576,383.7769,960.8324,52.0576,383.7769,791.8431,58.9083,497.7628,791.8431,52.0576,826.6961,791.8431,52.0576,497.7628,791.8431,58.9083,826.6961,960.8324,52.0576,826.6961,791.8431,52.0576,826.6961,1187.1792,58.8218,826.6961,1023.9957,58.8218,686.8842 +,1187.1792,58.8218,686.8842,1187.1792,52.0576,826.6961,1187.1792,58.8218,686.8842,1187.1792,52.0576,686.8842,1023.9957,52.0576,826.6961,1187.1792,58.8218,826.6961,1187.1792,52.0576,826.6961,1023.9957,52.0576,686.8842,1023.9957,58.8218,826.6961,1023.9957,52.0576,826.6961,1187.1792,52.0576,686.8842,1023.9957,58.8218,686.8842,1023.9957,52.0576,686.8842,151.2628,58.9083,383.7769,791.8431,58.9083,383.7769,960.8324,58.9083,826.6961,960.8324,52.0576,826.6961 +,960.8324,58.9083,826.6961,926.2568,58.9083,705.0428,151.2628,58.9083,497.7628,791.8431,58.9083,383.7769,791.8431,58.9083,497.7628,151.2628,52.0576,497.7628,791.8431,58.9083,497.7628,791.8431,52.0576,497.7628,1005.5643,52.0576,-788.414,1005.5643,60.7835,-447.4891,1005.5643,52.0576,-447.4891,1123.595,60.7835,-899.9999,1123.595,52.0576,-899.9999,1005.5643,60.7835,-899.9999,1123.595,60.7835,-899.9999,1005.5643,52.0576,-788.414,151.2628,60.7835,-788.414 +,1005.5643,60.7835,-788.414,1005.5643,60.7835,-788.414,151.2628,60.7835,-899.9999,1005.5643,60.7835,-899.9999,-1335.2673,52.0576,-900.0001,-151.7372,52.0576,899.9999,-1335.2673,52.0576,899.9998,-194.1487,56.256,168.3447,-280.7137,56.256,-9.673,-194.1487,56.256,-274.5197,-487.7534,52.0576,-274.5197,-487.7534,56.256,168.3447,-487.7534,52.0576,168.3447,-194.1487,52.0576,-274.5197,-487.7534,56.256,-274.5197,-487.7534,52.0576,-274.5197,-194.1487,52.0576,168.3447 +,-194.1487,56.256,-274.5197,-194.1487,52.0576,-274.5197,-487.7534,52.0576,168.3447,-194.1487,56.256,168.3447,-194.1487,52.0576,168.3447,-731.6802,58.8036,-274.5197,-566.5615,58.8036,592.416,-731.6802,58.8036,592.416,-731.6802,58.8036,704.002,-566.5615,52.0576,704.002,-731.6802,52.0576,704.002,-566.5615,58.8036,592.416,-566.5615,52.0576,-274.5197,-566.5615,52.0576,592.416,-566.5615,58.8036,-274.5197,-731.6802,52.0576,-274.5197,-566.5615,52.0576,-274.5197 +,-731.6802,58.8036,592.416,-731.6802,52.0576,704.002,-731.6802,52.0576,592.416,-731.6802,58.8036,-274.5197,-731.6802,52.0576,-274.5197,-151.7372,58.8036,592.416,-566.5615,58.8036,704.002,-566.5615,58.8036,592.416,-731.6802,58.8036,704.002,-692.6198,58.8036,614.595,-692.6198,58.8036,682.8076,-151.7372,58.8036,704.002,-151.7372,52.0576,592.416,-151.7372,52.0576,704.002,-151.7372,58.8036,704.002,-566.5615,58.8036,704.002,-151.7372,52.0576,592.416 +,-566.5615,58.8036,592.416,-566.5615,52.0576,592.416,-765.3865,58.8218,-826.6964,-208.7817,58.8218,-686.8844,-765.3865,58.8218,-686.8844,-765.3865,52.0576,-826.6964,-765.3865,58.8218,-686.8844,-765.3865,52.0576,-686.8844,-208.7817,52.0576,-826.6964,-765.3865,58.8218,-826.6964,-765.3865,52.0576,-826.6964,-208.7817,52.0576,-686.8844,-208.7817,58.8218,-826.6964,-208.7817,52.0576,-826.6964,-765.3865,52.0576,-686.8844,-208.7817,58.8218,-686.8844,-208.7817,52.0576,-686.8844 +,-1005.8,61.7575,-826.6964,-803.1631,61.7575,-686.8844,-1005.8,61.7575,-686.8844,-1005.8,52.0576,-826.6964,-1005.8,61.7575,-686.8844,-1005.8,52.0576,-686.8844,-803.1631,52.0576,-826.6964,-1005.8,61.7575,-826.6964,-1005.8,52.0576,-826.6964,-803.1631,52.0576,-686.8844,-803.1631,61.7575,-826.6964,-803.1631,52.0576,-826.6964,-1005.8,52.0576,-686.8844,-803.1631,61.7575,-686.8844,-803.1631,52.0576,-686.8844,-208.7817,59.9116,-646.6379,-343.9947,59.9116,-545.691 +,-343.9947,59.9116,-619.7058,-613.5463,52.0576,-646.6379,-613.5463,59.9116,-512.2468,-613.5463,52.0576,-512.2468,-208.7817,52.0576,-646.6379,-613.5463,59.9116,-646.6379,-613.5463,52.0576,-646.6379,-208.7817,52.0576,-512.2468,-208.7817,59.9116,-646.6379,-208.7817,52.0576,-646.6379,-613.5463,52.0576,-512.2468,-208.7817,59.9116,-512.2468,-208.7817,52.0576,-512.2468,-487.0751,59.167,221.9455,-194.1487,59.167,521.2131,-487.0751,59.167,521.2131,-487.0751,52.0576,221.9455 +,-487.0751,59.167,521.2131,-487.0751,52.0576,521.2131,-194.1487,52.0576,221.9455,-487.0751,59.167,221.9455,-487.0751,52.0576,221.9455,-194.1487,52.0576,521.2131,-194.1487,59.167,221.9455,-194.1487,52.0576,221.9455,-487.0751,52.0576,521.2131,-194.1487,59.167,521.2131,-194.1487,52.0576,521.2131,-1145.2871,57.4192,-6.3333,-964.4416,57.4192,347.6563,-1145.2871,57.4192,347.6563,-1145.2871,52.0576,-6.3333,-1145.2871,57.4192,347.6563,-1145.2871,52.0576,347.6563 +,-964.4416,52.0576,-6.3333,-1145.2871,57.4192,-6.3333,-1145.2871,52.0576,-6.3333,-964.4416,52.0576,347.6563,-964.4416,57.4192,-6.3333,-964.4416,52.0576,-6.3333,-1145.2871,52.0576,347.6563,-964.4416,57.4192,347.6563,-964.4416,52.0576,347.6563,-1145.2871,57.4192,406.9783,-964.4416,57.4192,750.584,-1145.2871,57.4192,750.584,-1145.2871,52.0576,406.9783,-1145.2871,57.4192,750.584,-1145.2871,52.0576,750.584,-964.4416,52.0576,406.9783,-1145.2871,57.4192,406.9783 +,-1145.2871,52.0576,406.9783,-964.4416,57.4192,838.2206,-151.7372,52.0576,838.2206,-964.4416,52.0576,838.2206,-1145.2871,52.0576,838.2206,-1145.2871,58.8036,-442.5062,-1111.2314,58.8036,-359.7222,-1145.2871,58.8036,-330.9203,-1145.2871,52.0576,-442.5062,-1145.2871,58.8036,-330.9203,-1145.2871,52.0576,-330.9203,-964.4416,52.0576,-442.5062,-1145.2871,58.8036,-442.5062,-1145.2871,52.0576,-442.5062,-964.4416,52.0576,-55.6675,-964.4416,58.8036,-330.9203,-964.4416,52.0576,-330.9203 +,-1145.2871,52.0576,-55.6675,-964.4416,58.8036,-55.6675,-964.4416,52.0576,-55.6675,-1053.7258,58.8218,-826.6964,-1101.7793,58.8218,-715.4801,-1101.7793,58.8218,-798.1006,-1228.3584,52.0576,-826.6964,-1228.3584,58.8218,-491.5911,-1228.3584,52.0576,-491.5911,-1053.7258,52.0576,-826.6964,-1228.3584,58.8218,-826.6964,-1228.3584,52.0576,-826.6964,-1053.7258,52.0576,-491.5911,-1053.7258,58.8218,-826.6964,-1053.7258,52.0576,-826.6964,-1228.3584,52.0576,-491.5911,-1053.7258,58.8218,-491.5911 +,-1053.7258,52.0576,-491.5911,-151.7372,58.8036,-442.5062,-964.4416,58.8036,-442.5062,-1145.2871,58.8036,-55.6675,-1145.2871,52.0576,-55.6675,-1145.2871,58.8036,-330.9203,-964.4416,58.8036,-55.6675,-1145.2871,58.8036,-55.6675,-151.7372,52.0576,-330.9203,-151.7372,58.8036,-442.5062,-151.7372,52.0576,-442.5062,-964.4416,58.8036,-442.5062,-151.7372,58.8036,-330.9203,-964.4416,58.8036,-330.9203,-964.4416,58.8036,-330.9203,-151.7372,52.0576,-330.9203,-964.4416,52.0576,-330.9203 +,-964.4416,52.0576,750.584,-964.4416,57.4192,406.9783,-964.4416,52.0576,406.9783,-1145.2871,57.4192,838.2206,-1145.2871,52.0576,838.2206,-964.4416,57.4192,838.2206,-1145.2871,57.4192,838.2206,-151.7372,52.0576,838.2206,-151.7372,57.4192,750.584,-151.7372,52.0576,750.584,-964.4416,52.0576,750.584,-151.7372,57.4192,750.584,-964.4416,57.4192,750.584,-964.4416,57.4192,750.584,-151.7372,57.4192,838.2206,-964.4416,57.4192,838.2206,-399.895,56.256,-9.673 +,-399.895,63.0592,126.3981,-399.895,56.256,126.3981,-399.895,56.256,126.3981,-280.7137,56.256,126.3981,-487.7534,56.256,168.3447,-399.895,56.256,-9.673,-487.7534,56.256,-274.5197,-399.895,63.0592,-9.673,-280.7137,63.0592,126.3981,-399.895,63.0592,126.3981,-280.7137,56.256,-9.673,-399.895,63.0592,-9.673,-399.895,56.256,-9.673,-280.7137,56.256,126.3981,-280.7137,63.0592,-9.673,-280.7137,56.256,-9.673,-399.895,56.256,126.3981 +,-280.7137,63.0592,126.3981,-280.7137,56.256,126.3981,-1101.7793,58.8218,-798.1006,-1204.9768,64.0566,-798.1006,-1204.9768,58.8218,-798.1006,-1228.3584,58.8218,-491.5911,-1053.7258,58.8218,-491.5911,-1228.3584,58.8218,-826.6964,-1204.9768,58.8218,-715.4801,-1204.9768,58.8218,-798.1006,-1204.9768,64.0566,-798.1006,-1101.7793,64.0566,-715.4801,-1204.9768,64.0566,-715.4801,-1101.7793,58.8218,-715.4801,-1101.7793,64.0566,-798.1006,-1101.7793,58.8218,-798.1006,-1204.9768,58.8218,-715.4801 +,-1101.7793,64.0566,-715.4801,-1101.7793,58.8218,-715.4801,-1204.9768,58.8218,-798.1006,-1204.9768,64.0566,-715.4801,-1204.9768,58.8218,-715.4801,-605.6218,58.8036,614.595,-692.6198,67.991,614.595,-692.6198,58.8036,614.595,-566.5615,58.8036,704.002,-605.6218,58.8036,682.8076,-566.5615,58.8036,592.416,-731.6802,58.8036,592.416,-566.5615,58.8036,704.002,-605.6218,58.8036,614.595,-566.5615,58.8036,592.416,-692.6198,67.991,614.595,-605.6218,67.991,682.8076 +,-692.6198,67.991,682.8076,-692.6198,58.8036,682.8076,-605.6218,67.991,682.8076,-605.6218,58.8036,682.8076,-692.6198,58.8036,614.595,-692.6198,67.991,682.8076,-692.6198,58.8036,682.8076,-605.6218,58.8036,682.8076,-605.6218,67.991,614.595,-605.6218,58.8036,614.595,1244.9688,57.4192,-332.4086,1090.1538,63.1506,-332.4086,1090.1538,57.4192,-332.4086,1291.1716,57.4192,-209.206,1244.9688,57.4192,-332.4086,1090.1538,57.4192,-238.001,1244.9688,57.4192,-238.001 +,698.2614,57.4192,-209.206,1090.1538,63.1506,-238.001,1244.9688,63.1506,-332.4086,1244.9688,63.1506,-238.001,1244.9688,57.4192,-238.001,1244.9688,63.1506,-332.4086,1244.9688,57.4192,-332.4086,1090.1538,57.4192,-238.001,1244.9688,63.1506,-238.001,1244.9688,57.4192,-238.001,1090.1538,57.4192,-332.4086,1090.1538,63.1506,-238.001,1090.1538,57.4192,-238.001,926.2568,58.9083,795.4031,926.2568,67.0727,705.0428,926.2568,58.9083,705.0428,826.4185,58.9083,705.0428 +,791.8431,58.9083,826.6961,926.2568,58.9083,795.4031,826.4185,58.9083,795.4031,826.4185,67.0727,795.4031,926.2568,67.0727,705.0428,926.2568,67.0727,795.4031,826.4185,58.9083,795.4031,926.2568,67.0727,795.4031,926.2568,58.9083,795.4031,926.2568,58.9083,705.0428,826.4185,67.0727,705.0428,826.4185,58.9083,705.0428,826.4185,58.9083,705.0428,826.4185,67.0727,795.4031,826.4185,58.9083,795.4031,-1111.2314,58.8036,-359.7222,-998.4971,65.8114,-359.7222 +,-998.4971,58.8036,-359.7222,-964.4416,58.8036,-442.5062,-1111.2314,58.8036,-413.7044,-964.4416,58.8036,-330.9203,-998.4971,58.8036,-359.7222,-964.4416,58.8036,-442.5062,-998.4971,58.8036,-413.7044,-1111.2314,65.8114,-413.7044,-998.4971,65.8114,-359.7222,-1111.2314,65.8114,-359.7222,-998.4971,58.8036,-359.7222,-998.4971,65.8114,-413.7044,-998.4971,58.8036,-413.7044,-1111.2314,58.8036,-413.7044,-1111.2314,65.8114,-359.7222,-1111.2314,58.8036,-359.7222,-998.4971,58.8036,-413.7044 +,-1111.2314,65.8114,-413.7044,-1111.2314,58.8036,-413.7044,612.5922,67.5748,-510.9404,490.9453,58.9083,-510.9404,612.5922,58.9083,-510.9404,456.5334,58.9083,-537.1594,490.9453,58.9083,-418.2559,456.5334,58.9083,153.996,490.9453,58.9083,-510.9404,456.5334,58.9083,-537.1594,612.5922,67.5748,-418.2559,490.9453,67.5748,-510.9404,612.5922,67.5748,-510.9404,490.9453,67.5748,-418.2559,612.5922,58.9083,-418.2559,490.9453,58.9083,-418.2559,490.9453,67.5748,-510.9404 +,490.9453,58.9083,-418.2559,490.9453,58.9083,-510.9404,612.5922,67.5748,-418.2559,612.5922,58.9083,-510.9404,612.5922,58.9083,-418.2559,456.5334,58.8235,265.5821,151.2627,58.8235,153.996,456.5334,58.8235,153.996,-500.6219,59.9116,-619.7058,-500.6219,64.979,-545.691,-500.6219,59.9116,-545.691,-613.5463,59.9116,-512.2468,-208.7817,59.9116,-512.2468,-613.5463,59.9116,-646.6379,-500.6219,59.9116,-545.691,-500.6219,59.9116,-619.7058,-500.6219,64.979,-619.7058 +,-343.9947,64.979,-545.691,-500.6219,64.979,-545.691,-343.9947,59.9116,-619.7058,-500.6219,64.979,-619.7058,-500.6219,59.9116,-619.7058,-343.9947,59.9116,-545.691,-343.9947,64.979,-619.7058,-343.9947,59.9116,-619.7058,-500.6219,59.9116,-545.691,-343.9947,64.979,-545.691,-343.9947,59.9116,-545.691,647.0041,58.9083,153.996,456.5334,58.9083,265.5821,456.5334,58.9083,153.996,647.0041,58.9083,265.5821,647.0041,52.0576,265.5821,647.0041,58.9083,265.5821 +,456.5334,52.0576,265.5821,456.5334,58.9083,265.5821,1335.2673,52.0576,899.9999,879.978,56.256,256.1157,1155.5425,56.256,256.1157,879.978,56.256,256.1157,879.978,56.256,-80.5739,1155.5425,56.256,-80.5739,612.5922,58.9083,-510.9404,456.5334,58.9083,153.996,647.0041,58.9083,-656.3059,151.2628,58.9083,-656.3059,647.0041,58.9083,-537.1594,151.2628,52.0576,-656.3059,151.2628,58.9083,-537.1594,151.2628,58.8218,826.6961,723.9959,58.8218,826.6961 +,151.2628,58.8218,826.6961,151.2628,58.8218,686.8842,723.9959,58.8218,686.8842,698.2614,61.7575,265.5821,812.9156,61.7575,265.5821,698.2614,61.7575,265.5821,698.2614,61.7575,-155.8004,812.9156,61.7575,-155.8004,151.2627,58.8235,265.5821,456.5334,52.0576,153.996,456.5334,58.8235,153.996,265.9391,59.167,109.0168,391.6933,59.167,109.0168,265.9391,59.167,109.0168,265.9391,59.167,-483.371,391.6933,59.167,-483.371,698.2614,57.4192,-209.206 +,698.2614,57.4192,-361.2037,1291.1716,57.4192,-361.2037,1291.1716,57.4192,-209.206,1005.5643,60.7835,-447.4891,1123.595,60.7835,-447.4891,1005.5643,60.7835,-447.4891,151.2628,60.7835,-899.9999,1123.595,60.7835,-899.9999,791.8431,58.9083,383.7769,960.8324,58.9083,383.7769,791.8431,58.9083,826.6961,960.8324,58.9083,826.6961,1023.9957,58.8218,826.6961,1187.1792,58.8218,826.6961,1023.9957,58.8218,826.6961,1023.9957,58.8218,686.8842,1187.1792,58.8218,686.8842 +,151.2628,52.0576,383.7769,151.2628,58.9083,383.7769,151.2628,58.9083,497.7628,1005.5643,60.7835,-788.414,151.2628,52.0576,-788.414,1005.5643,60.7835,-788.414,151.2628,60.7835,-788.414,-151.7372,52.0576,-900.0001,-487.7534,56.256,-274.5197,-194.1487,56.256,-274.5197,-194.1487,56.256,168.3447,-487.7534,56.256,168.3447,-566.5615,58.8036,-274.5197,-566.5615,58.8036,-274.5197,-731.6802,58.8036,-274.5197,-731.6802,58.8036,704.002,-151.7372,58.8036,704.002 +,-731.6802,58.8036,592.416,-151.7372,58.8036,592.416,-151.7372,52.0576,704.002,-151.7372,58.8036,592.416,-208.7817,58.8218,-826.6964,-765.3865,58.8218,-826.6964,-208.7817,58.8218,-826.6964,-208.7817,58.8218,-686.8844,-765.3865,58.8218,-686.8844,-803.1631,61.7575,-826.6964,-1005.8,61.7575,-826.6964,-803.1631,61.7575,-826.6964,-803.1631,61.7575,-686.8844,-1005.8,61.7575,-686.8844,-613.5463,59.9116,-646.6379,-208.7817,59.9116,-646.6379,-208.7817,59.9116,-512.2468 +,-613.5463,59.9116,-512.2468,-194.1487,59.167,221.9455,-487.0751,59.167,221.9455,-194.1487,59.167,221.9455,-194.1487,59.167,521.2131,-487.0751,59.167,521.2131,-964.4416,57.4192,-6.3333,-1145.2871,57.4192,-6.3333,-964.4416,57.4192,-6.3333,-964.4416,57.4192,347.6563,-1145.2871,57.4192,347.6563,-964.4416,57.4192,406.9783,-1145.2871,57.4192,406.9783,-964.4416,57.4192,406.9783,-151.7372,57.4192,838.2206,-1145.2871,57.4192,838.2206,-1145.2871,58.8036,-442.5062 +,-964.4416,58.8036,-55.6675,-1145.2871,58.8036,-55.6675,-1228.3584,58.8218,-826.6964,-1053.7258,58.8218,-826.6964,-1053.7258,58.8218,-491.5911,-1228.3584,58.8218,-491.5911,-151.7372,52.0576,-442.5062,-1145.2871,58.8036,-330.9203,-964.4416,58.8036,-330.9203,-151.7372,58.8036,-330.9203,-151.7372,58.8036,-442.5062,-151.7372,58.8036,-330.9203,-964.4416,57.4192,750.584,-151.7372,57.4192,838.2206,-151.7372,52.0576,750.584,-964.4416,57.4192,750.584,-151.7372,57.4192,750.584 +,-399.895,63.0592,-9.673,-280.7137,63.0592,-9.673,-280.7137,63.0592,-9.673,-280.7137,63.0592,126.3981,-399.895,63.0592,126.3981,-1101.7793,64.0566,-798.1006,-1101.7793,64.0566,-798.1006,-1101.7793,64.0566,-715.4801,-1204.9768,64.0566,-715.4801,-1204.9768,64.0566,-798.1006,-605.6218,67.991,614.595,-566.5615,58.8036,704.002,-566.5615,58.8036,592.416,-566.5615,58.8036,704.002,-605.6218,67.991,614.595,-692.6198,67.991,682.8076,-692.6198,67.991,614.595 +,-605.6218,67.991,682.8076,1244.9688,63.1506,-332.4086,1090.1538,63.1506,-332.4086,1244.9688,63.1506,-238.001,1090.1538,63.1506,-238.001,1090.1538,63.1506,-332.4086,926.2568,67.0727,795.4031,826.4185,67.0727,705.0428,826.4185,67.0727,795.4031,926.2568,67.0727,705.0428,826.4185,67.0727,705.0428,-1111.2314,65.8114,-359.7222,-964.4416,58.8036,-442.5062,-964.4416,58.8036,-330.9203,-964.4416,58.8036,-442.5062,-964.4416,58.8036,-330.9203,-998.4971,65.8114,-413.7044 +,-998.4971,65.8114,-359.7222,-1111.2314,65.8114,-413.7044,-998.4971,65.8114,-413.7044,490.9453,67.5748,-510.9404,456.5334,58.9083,-537.1594,490.9453,67.5748,-418.2559,612.5922,67.5748,-418.2559,490.9453,67.5748,-418.2559,612.5922,67.5748,-510.9404,151.2627,58.8235,265.5821,-500.6219,64.979,-619.7058,-343.9947,64.979,-619.7058,-343.9947,64.979,-619.7058,-343.9947,64.979,-545.691,-500.6219,64.979,-545.691,647.0041,58.9083,153.996,647.0041,58.9083,265.5821 +,647.0041,52.0576,265.5821,456.5334,52.0576,265.5821] +,"normals":[0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0.642,0.767,0,0.642,0.767,0,0.642,0.767,0,0,0,1,0,0,1,0,0,1 +,0,1,0,0,1,0,0,1,0,-0.747,0.664,0,-0.747,0.664,0,-0.747,0.664,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0 +,0,0,-1,0,0,-1,0,0,-1,-0.842,0.54,0,-0.842,0.54,0,-0.842,0.54,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1 +,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,-0.732,0.681,0,-0.732,0.681,0,-0.732,0.681,0,0,0,1 +,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,-0.708,0.706,0,-0.708,0.706,0 +,-0.708,0.706,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0 +,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.916,0.402,0 +,-0.916,0.402,0,-0.916,0.402,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0.476,0.879,0,0.476,0.879,0,0.476,0.879,-0.873,0.488,0,-0.873,0.488,0 +,-0.873,0.488,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0.772,0.635,0,0.772,0.635,0,0.772,0.635,0.778,0.628,0,0.778,0.628,0,0.778,0.628,0,0,0,-1,0,0,-1 +,0.865,0.502,0,0.865,0.502,0,0.865,0.502,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1 +,0,0,1,-0.911,0.413,0,-0.911,0.413,0,-0.911,0.413,0,0,0.667,-0.745,0,0.667,-0.745,0,0.667,-0.745,-0.868,0.496,0,-0.868,0.496,0,-0.868,0.496,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,1,0,0,1,0,0 +,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,0.787,0.617,0 +,0.787,0.617,0,0.787,0.617,0,0.825,0.565,0,0.825,0.565,0,0.825,0.565,0,0,0.755,-0.655,0,0.755,-0.655,0,0.755,-0.655,0,0.529,0.848,0,0.529,0.848,0,0.529,0.848,1,0,0,1,0,0,1,0,0,-0.866,0.499,0,-0.866,0.499,0,-0.866,0.499,0 +,0.078,-0.055,-0.995,0.007,-0.443,-0.897,0,-0.476,-0.879,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0 +,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1 +,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,-1,0,0,-1,0.433,0.901,0,0.433,0.901,0,0.433,0.901,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0 +,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0.681,0.732,0,0.681,0.732,0,0.681,0.732,0,0,1,0,0,0,-1,0,0,1,0,0,1,0,0,1 +,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0 +,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0 +,1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0 +,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1 +,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.031,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,-1,0,0,-1 +,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-0.821,0,-0.571,-0.821,0,-0.571,-0.821,0,-0.571,-0.727,-0.687,0,-0.727,-0.687,0 +,-0.727,-0.687,0,-0.821,0,0.571,-0.821,0,0.571,-0.821,0,0.571,-0.645,0.764,0,-0.645,0.764,0,-0.645,0.764,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,1,0 +,0,1,0,0,1,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0.747,0,-0.664,0.747,0,-0.664,0.747,0,-0.664 +,0,0,-1,0,0,-1,0,0,-1,-1,0.031,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,-1,0.002,0,-1,0.002 +,0,-1,0.002,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-0.009,-1,0,-0.009,-1,0,-0.009,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.115,0.993,0,0,1,0,-0.115,0.993,0,0,0,-1,0,0,-1,0,0,-1 +,0,1,0,0,1,0,-0.955,0.298,0,-0.737,0.676,0,-0.955,0.298,0,-0.737,0.676,0,-0.417,0.909,0,-0.737,0.676,0,-0.417,0.909,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,-0.707,0.708,0,-0.707,0.708,0,-0.707,0.708,0,-0.707,0.708,0,-0.707,0.708,0 +,0,1,0,0,1,0,-0.707,0.708,0,-0.707,0.708,0,-0.707,0.708,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0.759,0,-0.651,0.759,0,-0.651,0.759,0,-0.651,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-0.674,0,-0.739,-0.674,0,-0.739,-0.674,0,-0.739,-0.58,-0.815,0,-0.58,-0.815,0,-0.58,-0.815,0,-0.674,0,0.739,-0.674,0,0.739,-0.674,0,0.739,-0.58,0.815,0,-0.58,0.815,0,-0.58,0.815,0 +,-1,0,0,-1,0,0,-1,0,0,-0.816,0,0.578,-0.816,0,0.578,-0.816,0,0.578,-0.763,-0.647,0,-0.763,-0.647,0,-0.763,-0.647,0,-0.685,0,-0.728,-0.685,0,-0.728,-0.685,0,-0.728,-0.604,0.797,0,-0.604,0.797,0,-0.604,0.797,0,-1,0,0,-1,0,0 +,-1,0,0,-0.867,0,-0.499,-0.867,0,-0.499,-0.867,0,-0.499,-0.646,-0.763,0,-0.646,-0.763,0,-0.646,-0.763,0,-0.826,0,0.564,-0.826,0,0.564,-0.826,0,0.564,-0.604,0.797,0,-0.604,0.797,0,-0.604,0.797,0,0,1,0,0,1,0,0,0,1,0,0,1 +,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1 +,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0 +,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0.999,0.048,0,0.999,0.048,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1 +,0,-1,0.002,0,-1,0.002,0,-1,0.002,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-0.009,-1,0,-0.009,-1,0,-0.009,-1,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0.115,0.993,0 +,0.115,0.993,0,0,0,-1,0,0,-1,0,1,0,0,1,0,0.737,0.676,0,0.949,0.314,0,0.949,0.314,0,0.417,0.909,0,0.737,0.676,0,0.737,0.676,0,0.417,0.909,0,1,0,0,1,0,0,1,0,0,0.592,0,0.806,0.592,0,0.806 +,0.592,0,0.806,0.592,0,-0.806,0.592,0,-0.806,0.592,0,-0.806,0.537,0.843,0,0.537,0.843,0,0.537,0.843,0,1,0,0,1,0,0,1,0,0,0.629,0,0.778,0.629,0,0.778,0.629,0,0.778,0.111,-0.994,0,0.111,-0.994,0,0.111,-0.994,0,0.629,0,-0.778 +,0.629,0,-0.778,0.629,0,-0.778,0.111,0.994,0,0.111,0.994,0,0.111,0.994,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0 +,1,0,0,1,0,0,1,0,0,0.674,0,0.739,0.674,0,0.739,0.674,0,0.739,0.58,-0.815,0,0.58,-0.815,0,0.58,-0.815,0,0.674,0,-0.739,0.674,0,-0.739,0.674,0,-0.739,0.58,0.815,0,0.58,0.815,0,0.58,0.815,0,1,0,0,1,0,0 +,1,0,0,0,0,1,0,0,1,0,0,1,0.607,-0.795,0,0.607,-0.795,0,0.607,-0.795,0,0,0,-1,0,0,-1,0,0,-1,0.607,0.795,0,0.607,0.795,0,0.607,0.795,0,-1,0,0,-1,0,0,-1,0,0,-0.825,0,-0.566 +,-0.825,0,-0.566,-0.825,0,-0.566,0,-1,0,0,-1,0,0,-1,0,-0.825,0,0.566,-0.825,0,0.566,-0.825,0,0.566,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-0.629,0,-0.777,-0.629,0,-0.777,-0.629,0,-0.777 +,-0.643,-0.766,0,-0.643,-0.766,0,-0.643,-0.766,0,-0.826,0,0.564,-0.826,0,0.564,-0.826,0,0.564,-0.604,0.797,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0 +,0,0,-1,0,0,-1,0,0,-1,0.642,0.767,0,0.642,0.767,0,0.642,0.767,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-0.747,0.664,0,-0.747,0.664,0,-0.747,0.664,0,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0.842,0.54,0,0.842,0.54,0,0.842,0.54,0,0,0,-1,0,0,-1 +,0,0,-1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0 +,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,-0.732,0.681,0,-0.732,0.681,0,-0.732,0.681,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1 +,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0.708,0.706,0,0.708,0.706,0,0.708,0.706,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1 +,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0 +,0,-0.005,1,-0.007,-0.062,0.998,0,0,1,-0.851,0.525,0,-0.851,0.525,0,-0.851,0.525,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0 +,0,0,1,0,0,1,0,0.003,1,0,0,-1,0,0,-1,0,0,-1,0,0.003,1,-0.01,0.083,0.997,-0.011,0.087,0.996,0.747,0.665,0,0.747,0.665,0,0.747,0.665,0,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0 +,1,0,0,1,0,0,1,0,0,-0.868,0.496,0,-0.868,0.496,0,-0.868,0.496,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0.825,0.565,0,0.825,0.565,0,0.825,0.565,0,0,0,1 +,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0,-1 +,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,1,0,0 +,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1 +,0,0,1,0,0,-1,0,0,-1,0.433,0.901,0,0.433,0.901,0,0.433,0.901,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1 +,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,-0.681,0.732,0,-0.681,0.732,0,-0.681,0.732,0,0,1,0,-0.622,0.783,0.007,-0.679,0.734,0,-0.618,0.786,0.007,0,0.836,0.549,0,0.836,0.549,0,0.836,0.549,-0.734,0.679,0,-0.734,0.679,0 +,-0.734,0.679,0,0.676,0.737,0,0.676,0.737,0,0.676,0.737,0,0,0.836,-0.549,0,0.836,-0.549,0,0.836,-0.549,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1 +,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1 +,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1 +,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0.031,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1 +,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-0.66,0,-0.752,-0.66,0,-0.752,-0.66,0,-0.752 +,-0.789,-0.614,0,-0.789,-0.614,0,-0.789,-0.614,0,-0.66,0,0.752,-0.66,0,0.752,-0.66,0,0.752,-0.335,0.942,0,-0.335,0.942,0,-0.335,0.942,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1 +,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0.788,-0.616,0,0.788,-0.616,0,0.788,-0.616,0,-1,0,0,0,0,-1 +,0,0,-1,0,0,-1,0.919,0,0.395,0.979,0,0.202,0.919,0,0.395,0.979,0,0.202,1,0,0,-1,0.031,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1 +,0,0,1,0,0,1,0,-1,0.002,0,-1,0.002,0,-1,0.002,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-0.009,-1,0,-0.009,-1,0,-0.009,-1,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.115,0.993,0,0,1,0 +,-0.115,0.993,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,-0.955,0.298,0,-0.737,0.676,0,-0.955,0.298,0,-0.737,0.676,0,-0.417,0.909,0,-0.737,0.676,0,-0.417,0.909,0,0,0,1,0,0,1,0,0,1,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,-0.707,0.708,0 +,-0.707,0.708,0,-0.707,0.708,0,-0.707,0.708,0,-0.707,0.708,0,0,1,0,0,1,0,0.707,0.708,0,0.707,0.708,0,0.707,0.708,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0.979,0,0.202,1,0,0 +,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1 +,0.918,0,0.396,0.979,0,0.202,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,-0.746,0,-0.665,-0.746,0,-0.665,-0.746,0,-0.665,-0.658,-0.753,0,-0.658,-0.753,0,-0.658,-0.753,0,-0.746,0,0.665,-0.746,0,0.665,-0.746,0,0.665 +,-0.658,0.753,0,-0.658,0.753,0,-0.658,0.753,0,-1,0,0,-1,0,0,-1,0,0,-0.867,0,-0.499,-0.867,0,-0.499,-0.867,0,-0.499,-0.646,-0.763,0,-0.646,-0.763,0,-0.646,-0.763,0,-0.826,0,0.564,-0.826,0,0.564,-0.826,0,0.564,-0.604,0.797,0,-0.604,0.797,0 +,-0.604,0.797,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0 +,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0 +,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0.999,0.048,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0.999,0.048,0,0,0,1,0,0,1,0,0,1,0,0,-1 +,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,-1,0.002,0,-1,0.002,0,-1,0.002,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,0,-0.009,-1,0,-0.009,-1,0,-0.009,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,-1,0,0,-1,0,0,-1,0,1,0,0.115,0.993,0,0.115,0.993,0,0,0,-1,0,0,-1,0,1,0,0,1,0,0.737,0.676,0,0.949,0.314,0,0.949,0.314,0,0.417,0.909,0,0.737,0.676,0,0.737,0.676,0,0.417,0.909,0 +,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +,1,0,0,0.664,0,0.747,0.664,0,0.747,0.664,0,0.747,0.122,-0.993,0,0.122,-0.993,0,0.122,-0.993,0,0.664,0,-0.748,0.664,0,-0.748,0.664,0,-0.748,0.122,0.993,0,0.122,0.993,0,0.122,0.993,0,1,0,0,1,0,0,1,0,0,0,0,1 +,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0.487,0.874,0,0.487,0.874,0,0.487,0.874,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1 +,0.607,-0.795,0,0.607,-0.795,0,0.607,-0.795,0,0,0,-1,0,0,-1,0,0,-1,0.607,0.795,0,0.607,0.795,0,0.607,0.795,0,-1,0,0,-1,0,0,-1,0,0,-0.825,0,-0.566,-0.825,0,-0.566,-0.825,0,-0.566,0,-1,0,0,-1,0 +,0,-1,0,-0.825,0,0.566,-0.825,0,0.566,-0.825,0,0.566,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-0.63,0,-0.777,-0.63,0,-0.777,-0.63,0,-0.777,-0.643,-0.766,0,-0.643,-0.766,0,-0.643,-0.766,0,-0.826,0,0.564 +,-0.826,0,0.564,-0.826,0,0.564,-0.604,0.797,0,-1,0,0,-1,0,0,-0.978,0.21,0,-0.978,0.21,0,-0.978,0.21,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.978,0,-0.211,-0.911,0,-0.412,-0.911,0,-0.412,0,0.389,0.921,0,0.389,0.921,0,0.389,0.921,0,1,0,0.978,0.21,0,0.941,0.257,0.217,0.954,0.249,0.168,0,0.389,-0.921,0,0.389,-0.921 +,0,0.389,-0.921,1,0,0,1,0,0,1,0,0,0.886,0.26,0.383,0.887,0.257,0.384,-1,0,0,-1,0,0,-1,0,0,0.825,0,0.565,0.825,0,0.565,0.825,0,0.565,0,1,0,-0.83,0,-0.558,-0.83,0,-0.558,-0.83,0,-0.558,0,0,1 +,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-0.772,0.336,-0.539,-0.79,0.278,-0.546,-0.791,0.275,-0.547,0,0.575,-0.818,0,0.575,-0.818,0,0.575,-0.818,1,0,0,1,0,0,1,0,0 +,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.833,0,-0.554,-0.833,0,-0.554,-0.833,0,-0.554,0,0,-1,0,0,-1,0,0,-1 +,0.783,0.568,0.254,0.853,0.522,0,0.853,0.522,0,0,1,0,0,1,0,0,0.575,0.818,0,0.575,0.818,0,0.575,0.818,-0.853,0.522,0,-0.853,0.522,0,-0.853,0.522,0,0.783,0.568,0.254,0.681,0.575,0.453,0.797,0.564,0.217,0,1,0,0,1,0,0,1,0 +,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,0.991,0.131,0,0.991,0.131,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1 +,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.991,0.131,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.13,0.991,0,0.5,0.866,0,0.13,0.991,0 +,0.5,0.866,0,0.707,0.708,0,0.5,0.866,0,0.966,0.259,0,0.966,0.259,0,-0.13,0.991,0,-0.5,0.866,0,-0.13,0.991,0,-0.5,0.866,0,-0.707,0.708,0,-0.5,0.866,0,-0.966,0.259,0,-0.966,0.259,0,0,1,0,0,1,0,0,1,0,-1,0,0 +,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,0.991,0.131,0,0.991,0.131,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1 +,0,0,-1,0,0,-1,0,0,-1,-0.991,0.131,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.13,0.991,0,0.5,0.866,0,0.13,0.991,0,0.5,0.866,0 +,0.707,0.708,0,0.5,0.866,0,0.966,0.259,0,0.966,0.259,0,-0.13,0.991,0,-0.5,0.866,0,-0.13,0.991,0,-0.5,0.866,0,-0.707,0.708,0,-0.5,0.866,0,-0.966,0.259,0,-0.966,0.259,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0 +,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,0.991,0.131,0,0.991,0.131,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1 +,0,0,-1,0,0,-1,-0.991,0.131,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.13,0.991,0,0.5,0.866,0,0.13,0.991,0,0.5,0.866,0,0.707,0.708,0 +,0.5,0.866,0,0.966,0.259,0,0.966,0.259,0,-0.13,0.991,0,-0.5,0.866,0,-0.13,0.991,0,-0.5,0.866,0,-0.707,0.708,0,-0.5,0.866,0,-0.966,0.259,0,-0.966,0.259,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0 +,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,0.991,0.131,0,0.991,0.131,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1 +,0,0,-1,-0.991,0.131,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.13,0.991,0,0.5,0.866,0,0.13,0.991,0,0.5,0.866,0,0.707,0.708,0,0.5,0.866,0 +,0.966,0.259,0,0.966,0.259,0,-0.13,0.991,0,-0.5,0.866,0,-0.13,0.991,0,-0.5,0.866,0,-0.707,0.708,0,-0.5,0.866,0,-0.966,0.259,0,-0.966,0.259,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,0,1 +,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0.19,0.982,0,0.19,0.982,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0.19,-0.982,0,0,-1 +,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0.996,0.088,0,0.928,0.372,0,0.996,0.088,0,0.928,0.372,0,0.833,0.553,0,0.833,0.553,0,0.374,0.927,0,0.374,0.927,0,0.996,-0.088 +,0,0.928,-0.372,0,0.928,-0.372,0,0.928,-0.372,0,0.833,-0.553,0,0.833,-0.554,0,0.374,-0.927,0,0.374,-0.927,0,0.996,-0.088,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0.19,0.982,0,0.19,0.982,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0.19,-0.982,0,0,-1 +,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0.996,0.088,0,0.928,0.372,0,0.996,0.088,0,0.928,0.372,0,0.833,0.553,0,0.833,0.553,0,0.374,0.928,0,0.374,0.928,0,0.996,-0.088 +,0,0.928,-0.372,0,0.996,-0.088,0,0.928,-0.372,0,0.833,-0.554,0,0.833,-0.554,0,0.374,-0.927,0,0.374,-0.927,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0.19,0.982,0,0.19,0.982,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0.19,-0.982,0,0,-1,0,0,-1 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0.996,0.088,0,0.928,0.372,0,0.996,0.088,0,0.928,0.372,0,0.833,0.553,0,0.833,0.553,0,0.374,0.927,0,0.374,0.927,0,0.996,-0.088,0,0.928,-0.372 +,0,0.996,-0.088,0,0.928,-0.372,0,0.833,-0.553,0,0.833,-0.553,0,0.374,-0.927,0,0.374,-0.927,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0.19,0.982,0,0.19,0.982,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0.19,-0.982,0,0,-1,0,0,-1,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0.996,0.088,0,0.928,0.372,0,0.928,0.372,0,0.928,0.372,0,0.833,0.554,0,0.928,0.372,0,0.374,0.927,0,0.374,0.927,0,0.996,-0.088,0,0.928,-0.372,0,0.928,-0.372 +,0,0.928,-0.372,0,0.833,-0.554,0,0.833,-0.554,0,0.374,-0.927,0,0.374,-0.927,0,0.996,-0.088,-0.604,0.797,0,-0.604,0.797,0,-0.816,0,0.578,-0.816,0,0.578,-1,0,0,-1,0,0,-0.774,0,-0.633,-0.774,0,-0.633,-0.774,0,-0.633,-0.69,-0.724,0,-0.69,-0.724,0 +,-0.69,-0.724,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0 +,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1 +,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1 +,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1 +,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0 +,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0 +,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0 +,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0 +,0.877,0.481,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-0.877,-0.481,0,-0.877,-0.481,0,-0.877,-0.481,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,0.877,0.481,0,0.877,0.481,0,0.877,0.481,0,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0.365,0.931,0,0,1,0,0.365,0.931,0,0.688,0.726,0,0.688,0.726,0,0.916,0.401,0,0.688,0.726,0,0.916,0.401,0,1,0,0,0.916,0.401,0,1,0,0,0.916,-0.401,0,0.916,-0.401,0,0.688,-0.726 +,0,0.916,-0.401,0,0.688,-0.726,0,0.365,-0.931,0,0.688,-0.726,0,0.365,-0.931,0,0,-1,0,0,-1,0,-0.365,-0.931,0,-0.365,-0.931,0,-0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.916,-0.401,0,-1,0,0,-1,0,0,-0.916,0.401 +,0,-0.916,0.401,0,-0.688,0.726,0,-0.916,0.401,-1,0,0,-1,0,0,-1,0,0,0,-0.688,0.726,0,-0.365,0.931,0,-0.688,0.726,0,-0.365,0.931,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,-0.365,0.931,0,-0.365,0.931,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-0.365,-0.931,0,0,-1,0,0,-1,0,0.688,0.726,0,0.365,0.931,0,0.365,0.931 +,0,-0.688,-0.726,0,-0.365,-0.931,0,0.916,0.401,0,0.688,0.726,0,0.688,0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.688,-0.726,0,1,0,0,0.916,0.401,0,0.916,0.401,0,-1,0,0,-0.916,-0.401,0,-0.916,-0.401,0,0.916,-0.401,0,1,0,0,-0.916,0.401 +,0,-1,0,0,0.688,-0.726,0,0.916,-0.401,0,0.916,-0.401,0,-0.688,0.726,0,-0.916,0.401,0,-0.916,0.401,0,0.365,-0.931,0,0.688,-0.726,0,0.688,-0.726,0,-0.688,0.726,0,-0.688,0.726,0,0.365,-0.931,0,0,1,0,0,1,0,0.365,0.931,0,0,1 +,0,0.365,0.931,0,0.688,0.726,0,0.688,0.726,0,0.916,0.401,0,0.688,0.726,0,0.916,0.401,0,1,0,0,0.916,0.401,0,1,0,0,0.916,-0.401,0,0.916,-0.401,0,0.688,-0.726,0,0.916,-0.401,0,0.688,-0.726,0,0.365,-0.931,0,0.688,-0.726,0,0.365,-0.931 +,0,0,-1,0,0,-1,0,-0.365,-0.931,0,-0.365,-0.931,0,-0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.916,-0.401,0,-1,0,0,-0.916,-0.401,0,-1,0,0,-0.916,0.401,0,-0.916,0.401,0,-0.688,0.726,0,-0.916,0.401,-1,0,0 +,-1,0,0,-1,0,0,0,-0.688,0.726,0,-0.365,0.931,0,-0.688,0.726,0,-0.365,0.931,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,-0.365,0.931,0,-0.365,0.931,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-0.365,-0.931,0,0,-1,0,0,-1,0,0.688,0.726,0,0.365,0.931,0,0.365,0.931,0,-0.688,-0.726,0,-0.365,-0.931,0,0.916,0.401,0,0.688,0.726 +,0,0.688,0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.688,-0.726,0,1,0,0,0.916,0.401,0,0.916,0.401,0,-1,0,0,-0.916,-0.401,0,-0.916,-0.401,0,0.916,-0.401,0,1,0,0,-0.916,0.401,0,-1,0,0,0.688,-0.726,0,0.916,-0.401,0,0.916,-0.401 +,0,-0.688,0.726,0,-0.916,0.401,0,-0.916,0.401,0,0.365,-0.931,0,0.688,-0.726,0,0.688,-0.726,0,-0.688,0.726,0,-0.688,0.726,0,0.365,-0.931,0,0,1,0,0,1,0.363,0,0.932,0,0,1,0.363,0,0.932,0.685,0,0.728,0.363,0,0.932,0.685,0,0.728 +,0.915,0,0.403,0.685,0,0.728,0.915,0,0.403,1,0,0,1,0,0,0.915,0,-0.403,0.915,0,-0.403,0.685,0,-0.728,0.685,0,-0.728,0.363,0,-0.932,0.685,0,-0.728,0.363,0,-0.932,0,0,-1,0,0,-1,-0.363,0,-0.932,-0.363,0,-0.932,-0.685,0,-0.728 +,-0.363,0,-0.932,-0.685,0,-0.728,-0.915,0,-0.403,-0.685,0,-0.728,-0.915,0,-0.403,-1,0,0,-1,0,0,-0.915,0,0.403,-0.915,0,0.403,-0.685,0,0.728,0,1,0,0,1,0,0,1,0,-0.685,0,0.728,-0.363,0,0.932,-0.363,0,0.932,0,1,0 +,0,1,0,0,1,0,0,0,1,-0.363,0,0.932,-0.363,0,0.932,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,-0.363,0,-0.932,0,0,-1,0,0,-1,0.685,0,0.728,0.363,0,0.932,0.363,0,0.932,-0.685,0,-0.728,-0.363,0,-0.932,-0.363,0,-0.932,0.915,0,0.403,0.685,0,0.728,0.685,0,0.728,-0.915,0,-0.403,-0.685,0,-0.728,-0.685,0,-0.728,1,0,0,0.915,0,0.403 +,-1,0,0,-0.915,0,-0.403,0.915,0,-0.403,1,0,0,-0.915,0,0.403,-1,0,0,0.685,0,-0.728,0.915,0,-0.403,-0.685,0,0.728,-0.915,0,0.403,0.363,0,-0.932,0.685,0,-0.728,0.685,0,-0.728,-0.685,0,0.728,-0.685,0,0.728,0.363,0,-0.932,0.363,0,0.932 +,0,0,1,0,0,1,0.363,0,0.932,0,0,1,0.363,0,0.932,0.685,0,0.728,0.363,0,0.932,0.685,0,0.728,0.915,0,0.403,0.685,0,0.728,0.915,0,0.403,1,0,0,1,0,0,0.915,0,-0.403,0.915,0,-0.403,0.685,0,-0.728,0.685,0,-0.728 +,0.363,0,-0.932,0.685,0,-0.728,0.363,0,-0.932,0,0,-1,0,0,-1,-0.363,0,-0.932,-0.363,0,-0.932,-0.685,0,-0.728,-0.363,0,-0.932,-0.685,0,-0.728,-0.915,0,-0.403,-0.685,0,-0.728,-0.915,0,-0.403,-1,0,0,-1,0,0,-0.915,0,0.403,-0.915,0,0.403 +,-0.685,0,0.728,0,1,0,0,1,0,0,1,0,-0.685,0,0.728,-0.363,0,0.932,-0.685,0,0.728,-0.363,0,0.932,0,1,0,0,1,0,0,1,0,0,0,1,-0.363,0,0.932,-0.363,0,0.932,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.363,0,-0.932,0,0,-1,0,0,-1,0.685,0,0.728,0.363,0,0.932,0.363,0,0.932,-0.685,0,-0.728,-0.363,0,-0.932 +,-0.363,0,-0.932,0.915,0,0.403,0.685,0,0.728,0.685,0,0.728,-0.915,0,-0.403,-0.685,0,-0.728,-0.685,0,-0.728,1,0,0,0.915,0,0.403,-1,0,0,-0.915,0,-0.403,0.915,0,-0.403,1,0,0,-0.915,0,0.403,-1,0,0,0.685,0,-0.728,0.915,0,-0.403 +,-0.685,0,0.728,-0.915,0,0.403,0.363,0,-0.932,0.685,0,-0.728,0.685,0,-0.728,-0.685,0,0.728,-0.685,0,0.728,0.363,0,-0.932,0.363,0,0.932,0,0,1,0,0,1,0.363,0,0.932,0,0,1,0.363,0,0.932,0.685,0,0.728,0.363,0,0.932,0.685,0,0.728 +,0.915,0,0.403,0.685,0,0.728,0.915,0,0.403,1,0,0,1,0,0,0.915,0,-0.403,0.915,0,-0.403,0.685,0,-0.728,0.685,0,-0.728,0.363,0,-0.932,0.685,0,-0.728,0.363,0,-0.932,0,0,-1,0,0,-1,-0.363,0,-0.932,-0.363,0,-0.932,-0.685,0,-0.728 +,-0.363,0,-0.932,-0.685,0,-0.728,-0.915,0,-0.403,-0.685,0,-0.728,-0.915,0,-0.403,-1,0,0,-1,0,0,-0.915,0,0.403,-0.915,0,0.403,-0.685,0,0.728,0,1,0,0,1,0,0,1,0,-0.685,0,0.728,-0.363,0,0.932,-0.685,0,0.728,-0.363,0,0.932 +,0,1,0,0,1,0,0,1,0,0,0,1,-0.363,0,0.932,-0.363,0,0.932,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,-0.363,0,-0.932,0,0,-1,0,0,-1,0.685,0,0.728,0.363,0,0.932,0.363,0,0.932,-0.685,0,-0.728,-0.363,0,-0.932,-0.363,0,-0.932,0.915,0,0.403,0.685,0,0.728,0.685,0,0.728,-0.915,0,-0.403,-0.685,0,-0.728,-0.685,0,-0.728,1,0,0 +,0.915,0,0.403,-1,0,0,-0.915,0,-0.403,0.915,0,-0.403,1,0,0,-0.915,0,0.403,-1,0,0,0.685,0,-0.728,0.915,0,-0.403,-0.685,0,0.728,-0.915,0,0.403,0.363,0,-0.932,0.685,0,-0.728,0.685,0,-0.728,-0.685,0,0.728,-0.685,0,0.728,0.363,0,-0.932 +,0.363,0,0.932,0,0,1,0,0,1,0.388,0,0.922,0,0,1,0.388,0,0.922,0.712,0,0.702,0.712,0,0.702,0.926,0,0.378,0.712,0,0.702,0.926,0,0.378,1,0,0,1,0,0,0.926,0,-0.378,0.926,0,-0.378,0.712,0,-0.702,0.712,0,-0.702 +,0.388,0,-0.922,0.712,0,-0.702,0.388,0,-0.922,0,0,-1,0,0,-1,-0.388,0,-0.922,-0.388,0,-0.922,-0.712,0,-0.702,-0.712,0,-0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.926,0,-0.378,-1,0,0,-1,0,0,-0.926,0,0.378,-0.926,0,0.378,-0.712,0,0.702 +,0,1,0,0,1,0,0,1,0,-0.712,0,0.702,-0.388,0,0.922,-0.712,0,0.702,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,0,1,-0.388,0,0.922,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.388,0,-0.922,0,0,-1,0,0,-1,0.712,0,0.702,0.388,0,0.922,0.388,0,0.922,-0.712,0,-0.702,-0.388,0,-0.922,0.926,0,0.378 +,0.712,0,0.702,0.712,0,0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.712,0,-0.702,1,0,0,0.926,0,0.378,-1,0,0,-0.926,0,-0.378,0.926,0,-0.378,1,0,0,-0.926,0,0.378,-1,0,0,0.712,0,-0.702,0.926,0,-0.378,-0.712,0,0.702,-0.926,0,0.378 +,0.388,0,-0.922,0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,-0.712,0,0.702,0.388,0,-0.922,0,0,1,0,0,1,0.388,0,0.922,0,0,1,0.388,0,0.922,0.712,0,0.702,0.712,0,0.702,0.926,0,0.378,0.712,0,0.702,0.926,0,0.378,1,0,0 +,1,0,0,0.926,0,-0.378,0.926,0,-0.378,0.712,0,-0.702,0.712,0,-0.702,0.388,0,-0.922,0.712,0,-0.702,0.388,0,-0.922,0,0,-1,0,0,-1,-0.388,0,-0.922,-0.388,0,-0.922,-0.712,0,-0.702,-0.712,0,-0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.926,0,-0.378 +,-1,0,0,-1,0,0,-0.926,0,0.378,-0.926,0,0.378,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,-0.712,0,0.702,-0.388,0,0.922,-0.712,0,0.702,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,0,1,-0.388,0,0.922 +,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.388,0,-0.922,0,0,-1,0,0,-1,0.712,0,0.702 +,0.388,0,0.922,0.388,0,0.922,-0.712,0,-0.702,-0.388,0,-0.922,0.926,0,0.378,0.712,0,0.702,0.712,0,0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.712,0,-0.702,1,0,0,0.926,0,0.378,-1,0,0,-0.926,0,-0.378,0.926,0,-0.378,1,0,0,-0.926,0,0.378 +,-1,0,0,0.712,0,-0.702,0.926,0,-0.378,-0.712,0,0.702,-0.926,0,0.378,0.388,0,-0.922,0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,-0.712,0,0.702,0.388,0,-0.922,0,0,1,0,0,1,0.388,0,0.922,0,0,1,0.388,0,0.922,0.712,0,0.702 +,0.712,0,0.702,0.926,0,0.378,0.712,0,0.702,0.926,0,0.378,1,0,0,1,0,0,0.926,0,-0.378,0.926,0,-0.378,0.712,0,-0.702,0.712,0,-0.702,0.388,0,-0.922,0.712,0,-0.702,0.388,0,-0.922,0,0,-1,0,0,-1,-0.388,0,-0.922,-0.388,0,-0.922 +,-0.712,0,-0.702,-0.712,0,-0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.926,0,-0.378,-1,0,0,-1,0,0,-0.926,0,0.378,-0.926,0,0.378,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,-0.712,0,0.702,-0.388,0,0.922,-0.712,0,0.702,-0.388,0,0.922 +,0,1,0,0,1,0,0,1,0,0,0,1,-0.388,0,0.922,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,-0.387,0,-0.922,0,0,-1,0,0,-1,0.712,0,0.702,0.388,0,0.922,0.388,0,0.922,-0.712,0,-0.702,-0.387,0,-0.922,0.926,0,0.378,0.712,0,0.702,0.712,0,0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.712,0,-0.702,1,0,0,0.926,0,0.378 +,-1,0,0,-0.926,0,-0.378,0.926,0,-0.378,1,0,0,-0.926,0,0.378,-1,0,0,0.712,0,-0.702,0.926,0,-0.378,-0.712,0,0.702,-0.926,0,0.378,0.387,0,-0.922,0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,-0.712,0,0.702,0.387,0,-0.922,0,0,1 +,0,0,1,0.388,0,0.922,0,0,1,0.388,0,0.922,0.712,0,0.702,0.712,0,0.702,0.926,0,0.378,0.712,0,0.702,0.926,0,0.378,1,0,0,1,0,0,0.926,0,-0.378,0.926,0,-0.378,0.712,0,-0.702,0.712,0,-0.702,0.388,0,-0.922,0.712,0,-0.702 +,0.388,0,-0.922,0,0,-1,0,0,-1,-0.388,0,-0.922,-0.388,0,-0.922,-0.712,0,-0.702,-0.712,0,-0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.926,0,-0.378,-1,0,0,-1,0,0,-0.926,0,0.378,-0.926,0,0.378,-0.712,0,0.702,0,1,0,0,1,0 +,0,1,0,-0.712,0,0.702,-0.388,0,0.922,-0.712,0,0.702,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,0,1,-0.388,0,0.922,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.387,0,-0.922,0,0,-1,0,0,-1,0.712,0,0.702,0.388,0,0.922,0.388,0,0.922,-0.712,0,-0.702,-0.387,0,-0.922,0.926,0,0.378,0.712,0,0.702,0.712,0,0.702 +,-0.926,0,-0.378,-0.712,0,-0.702,-0.712,0,-0.702,1,0,0,0.926,0,0.378,-1,0,0,-0.926,0,-0.378,0.926,0,-0.378,1,0,0,-0.926,0,0.378,-1,0,0,0.712,0,-0.702,0.926,0,-0.378,-0.712,0,0.702,-0.926,0,0.378,0.387,0,-0.922,0.712,0,-0.702 +,0.712,0,-0.702,-0.712,0,0.702,-0.712,0,0.702,0.387,0,-0.922,0,0,1,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0 +,0.13,0.991,0,0,1,0,0.13,0.991,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0.13,-0.991,0,0,-1,0,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.966,0.259,0,0.991,0.131,0,0.991,0.131,0,0.5,0.866,0,0.707,0.707,0,0.707,0.707,0,0.5,0.866,0,0.991,-0.131,0,0.966,-0.259,0,0.991,-0.131,0,0.707,-0.708,0,0.5,-0.866,0,0.707,-0.707,0 +,0.5,-0.866,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0.13,0.991,0,0,1,0,0.13,0.991,0,0,0,-1 +,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0.13,-0.991,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0.966,0.259,0,0.991,0.131,0,0.991,0.131,0,0.5,0.866,0,0.707,0.707,0,0.707,0.707,0,0.5,0.866,0,0.966,-0.259,0,0.991,-0.131,0,0.991,-0.131,0,0.5,-0.866,0,0.707,-0.708,0,0.707,-0.708,0,0.5,-0.866,0,1,0,0,1,0,0,1,0,0 +,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0.13,0.991,0,0,1,0,0.13,0.991,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1 +,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0.13,-0.991,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.966,0.259,0,0.991,0.131,0,0.991,0.131,0,0.5,0.866,0 +,0.707,0.708,0,0.707,0.708,0,0.5,0.866,0,0.966,-0.259,0,0.991,-0.131,0,0.991,-0.131,0,0.5,-0.866,0,0.707,-0.707,0,0.707,-0.708,0,0.5,-0.866,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1 +,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0.13,0.991,0,0,1,0,0.13,0.991,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1 +,0,-1,0,0.13,-0.991,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.966,0.259,0,0.991,0.131,0,0.991,0.131,0,0.5,0.866,0,0.707,0.708,0,0.707,0.708,0,0.5,0.866,0,0.966,-0.259,0 +,0.991,-0.131,0,0.991,-0.131,0,0.5,-0.866,0,0.707,-0.707,0,0.707,-0.707,0,0.5,-0.866,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.978,0,-0.211,-1,0,0,-0.978,0,-0.211,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0 +,1,0,0,1,0,0,1,0,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0.387,0,0.922 +,0,0,1,0.387,0,0.922,0.712,0,0.702,0.712,0,0.702,0.926,0,0.378,0.712,0,0.702,0.926,0,0.378,1,0,0,1,0,0,0.926,0,-0.378,0.926,0,-0.378,0.712,0,-0.702,0.712,0,-0.702,0.388,0,-0.922,0.712,0,-0.702,0.388,0,-0.922,0,0,-1 +,0,0,-1,-0.388,0,-0.922,-0.388,0,-0.922,-0.712,0,-0.702,-0.712,0,-0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.926,0,-0.378,-1,0,0,-1,0,0,-0.926,0,0.378,-0.926,0,0.378,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,-0.712,0,0.702 +,-0.387,0,0.922,-0.712,0,0.702,-0.387,0,0.922,0,1,0,0,1,0,0,1,0,0,0,1,-0.388,0,0.922,-0.388,0,0.922,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,-0.388,0,-0.922,0,0,-1,0,0,-1,0.712,0,0.702,0.388,0,0.922,0.388,0,0.922,-0.712,0,-0.702,-0.388,0,-0.922,0.926,0,0.378,0.712,0,0.702,0.712,0,0.702,-0.926,0,-0.378,-0.712,0,-0.702 +,-0.712,0,-0.702,1,0,0,0.926,0,0.378,-1,0,0,-0.926,0,-0.378,0.926,0,-0.378,1,0,0,-0.926,0,0.378,-1,0,0,0.712,0,-0.702,0.926,0,-0.378,-0.712,0,0.702,-0.926,0,0.378,0.388,0,-0.922,0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702 +,-0.712,0,0.702,0.388,0,-0.922,0,0,1,0,0,1,0.387,0,0.922,0,0,1,0.387,0,0.922,0.712,0,0.702,0.712,0,0.702,0.926,0,0.378,0.712,0,0.702,0.926,0,0.378,1,0,0,1,0,0,0.926,0,-0.378,0.926,0,-0.378,0.712,0,-0.702 +,0.712,0,-0.702,0.388,0,-0.922,0.712,0,-0.702,0.388,0,-0.922,0,0,-1,0,0,-1,-0.388,0,-0.922,-0.388,0,-0.922,-0.712,0,-0.702,-0.712,0,-0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.926,0,-0.378,-1,0,0,-1,0,0,-0.926,0,0.378,-0.926,0,0.378 +,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,-0.712,0,0.702,-0.387,0,0.922,-0.712,0,0.702,-0.387,0,0.922,0,1,0,0,1,0,0,1,0,0,0,1,-0.388,0,0.922,-0.388,0,0.922,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.388,0,-0.922,0,0,-1,0,0,-1,0.712,0,0.702,0.388,0,0.922,0.388,0,0.922,-0.712,0,-0.702,-0.388,0,-0.922 +,0.926,0,0.378,0.712,0,0.702,0.712,0,0.702,-0.926,0,-0.378,-0.712,0,-0.702,-0.712,0,-0.702,1,0,0,0.926,0,0.378,-1,0,0,-0.926,0,-0.378,0.926,0,-0.378,1,0,0,-0.926,0,0.378,-1,0,0,0.712,0,-0.702,0.926,0,-0.378,-0.712,0,0.702 +,-0.926,0,0.378,0.388,0,-0.922,0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,-0.712,0,0.702,0.388,0,-0.922,0,0,1,0,0,1,0,0.365,0.931,0,0,1,0,0.365,0.931,0,0.688,0.726,0,0.688,0.726,0,0.916,0.4,0,0.688,0.726,0,0.916,0.4 +,0,1,0,0,0.916,0.4,0,1,0,0,0.916,-0.401,0,0.916,-0.401,0,0.688,-0.726,0,0.916,-0.401,0,0.688,-0.726,0,0.365,-0.931,0,0.688,-0.726,0,0.365,-0.931,0,0,-1,0,0,-1,0,-0.365,-0.931,0,-0.365,-0.931,0,-0.688,-0.726,0,-0.688,-0.726 +,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.916,-0.401,0,-1,0,0,-1,0,0,-0.916,0.4,0,-0.916,0.4,0,-0.688,0.726,0,-0.916,0.4,-1,0,0,-1,0,0,-1,0,0,0,-0.688,0.726,0,-0.365,0.931,0,-0.688,0.726,0,-0.365,0.931,-1,0,0 +,-1,0,0,-1,0,0,0,0,1,0,-0.365,0.931,0,-0.365,0.931,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,0,-0.365,-0.931,0,0,-1,0,0,-1,0,0.688,0.726,0,0.365,0.931,0,0.365,0.931,0,-0.688,-0.726,0,-0.365,-0.931,0,0.916,0.401,0,0.688,0.726,0,0.688,0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.688,-0.726,0,1,0,0,0.916,0.401,0,0.916,0.401 +,0,-1,0,0,-0.916,-0.401,0,-0.916,-0.401,0,0.916,-0.401,0,1,0,0,-0.916,0.401,0,-1,0,0,0.688,-0.726,0,0.916,-0.401,0,0.916,-0.401,0,-0.688,0.726,0,-0.916,0.401,0,-0.916,0.401,0,0.365,-0.931,0,0.688,-0.726,0,0.688,-0.726,0,-0.688,0.726 +,0,-0.688,0.726,0,0.365,-0.931,0,0,1,0,0,1,0,0.365,0.931,0,0,1,0,0.365,0.931,0,0.688,0.726,0,0.688,0.726,0,0.916,0.4,0,0.688,0.726,0,0.916,0.4,0,1,0,0,0.916,0.4,0,1,0,0,0.916,-0.401,0,0.916,-0.401 +,0,0.688,-0.726,0,0.916,-0.401,0,0.688,-0.726,0,0.365,-0.931,0,0.688,-0.726,0,0.365,-0.931,0,0,-1,0,0,-1,0,-0.365,-0.931,0,-0.365,-0.931,0,-0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.916,-0.401,0,-1,0,0,-0.916,-0.401 +,0,-1,0,0,-0.916,0.4,0,-0.916,0.4,0,-0.688,0.726,0,-0.916,0.4,-1,0,0,-1,0,0,-1,0,0,0,-0.688,0.726,0,-0.365,0.931,0,-0.688,0.726,0,-0.365,0.931,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,-0.365,0.931 +,0,-0.365,0.931,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-0.365,-0.931,0,0,-1,0,0,-1,0,0.688,0.726 +,0,0.365,0.931,0,0.365,0.931,0,-0.688,-0.726,0,-0.365,-0.931,0,0.916,0.401,0,0.688,0.726,0,0.688,0.726,0,-0.916,-0.401,0,-0.688,-0.726,0,-0.688,-0.726,0,1,0,0,0.916,0.401,0,0.916,0.401,0,-1,0,0,-0.916,-0.401,0,-0.916,-0.401,0,0.916,-0.401 +,0,1,0,0,-0.916,0.401,0,-1,0,0,0.688,-0.726,0,0.916,-0.401,0,0.916,-0.401,0,-0.688,0.726,0,-0.916,0.401,0,-0.916,0.401,0,0.365,-0.931,0,0.688,-0.726,0,0.688,-0.726,0,-0.688,0.726,0,-0.688,0.726,0,0.365,-0.931,0,0,1,0,0,1 +,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 +,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0 +,-1,0,0,-1,0,0,0,0,-1,0,1,0,0,0,-1,0.642,0.767,0,0,0,1,0,1,0,-0.747,0.664,0,0,0,1,0,0,-1,0,1,0,0,0,-1,-0.842,0.54,0,0,0,1,-1,0,0,0,0,-1 +,1,0,0,0,0,1,0,0,-1,-0.732,0.681,0,0,0,1,0,1,0,0,0,1,0,0,-1,-0.708,0.706,0,0,0,1,-1,0,0,1,0,0,-1,0,0,1,0,0,0,0,-1,0,0,-1,-0.916,0.402,0 +,0,1,0,0,0.476,0.879,-0.873,0.488,0,1,0,0,0,1,0,0,1,0,-1,0,0,0,0,1,0,0,-1,0,0.772,0.635,0.778,0.628,0,0.865,0.502,0,0,1,0,1,0,0,-0.911,0.413,0,0,0.667,-0.745,-0.868,0.496,0 +,0,0,-1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,-1,-1,0,0,0.787,0.617,0,0.825,0.565,0,0,0.755,-0.655,0,0.529,0.848,1,0,0,-0.866,0.499,0,0.087,0,-0.996,0,0,1,-1,0,0,1,0,0 +,0,0,-1,0,1,0,0,0,-1,0,1,0,1,0,0,-1,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,1,0.433,0.901,0,0,1,0,0,0,1,0,0,1,0,0,-1,1,0,0 +,0,0,-1,0.681,0.732,0,0,1,0,0,0,1,-1,0,0,1,0,0,0,0,-1,0,0,-1,0,1,0,1,0,0,-1,0,0,0,0,1,0,1,0,-1,0,0,0,0,1,0,0,-1,1,0,0 +,-1,0,0,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,0,1 +,0,-1,0,0,-1,0,0,0,1,0,1,0,0,1,0,0,0,-1,0,1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,-1,0,0,-0.821,0,-0.571 +,-0.727,-0.687,0,-0.821,0,0.571,-0.645,0.764,0,0,0,1,-1,0,0,0,-1,0,0,0,1,0,0,1,-1,0,0,0,0,-1,0,0,-1,0.747,0,-0.664,0,0,-1,0,0,1,0,0,-1,0,0,1,0,-1,0.002 +,-1,0,0,0,-0.009,-1,0,1,0,0,1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,1,0,-0.737,0.676,0,0,0,1,0,1,0,1,0,0,-1,0,0,0,0,-1 +,-0.707,0.708,0,-0.707,0.708,0,-1,0,0,0,1,0,1,0,0,0,0,1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,0,1,1,0,0,0.759,0,-0.651,-1,0,0,-1,0,0,-0.674,0,-0.739,-0.58,-0.815,0 +,-0.674,0,0.739,-0.58,0.815,0,-1,0,0,-0.816,0,0.578,-0.763,-0.647,0,-0.685,0,-0.728,-1,0,0,-0.867,0,-0.499,-0.646,-0.763,0,-0.826,0,0.564,-0.604,0.797,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0 +,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,0,1,0,-1,0,0,-1,0,0,0,1,0,1,0,0,1,0,0,0,-1,0,1,0,0,-1,0,0,-1,0,1,0,0 +,1,0,0,1,0,0,1,0,0,0,0,1,0,0,-1,0,0,1,0,-1,0.002,1,0,0,0,-0.009,-1,0,1,0,0,1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1 +,0,0,-1,0,1,0,0.737,0.676,0,1,0,0,0.592,0,0.806,0.592,0,-0.806,0.537,0.843,0,1,0,0,0.629,0,0.778,0.111,-0.994,0,0.629,0,-0.778,0.111,0.994,0,1,0,0,0,0,1,0,0,-1,0,1,0,1,0,0 +,0.674,0,0.739,0.58,-0.815,0,0.674,0,-0.739,0.58,0.815,0,1,0,0,0,0,1,0.607,-0.795,0,0,0,-1,0.607,0.795,0,-1,0,0,-0.825,0,-0.566,0,-1,0,-0.825,0,0.566,0,1,0,-0.629,0,-0.777,-0.643,-0.766,0,-0.826,0,0.564 +,-0.826,0,0.564,-0.604,0.797,0,0,0,-1,0,1,0,-1,0,0,0,0,-1,0.642,0.767,0,0,0,1,0,1,0,-0.747,0.664,0,0,0,1,0,0,-1,0,1,0,0,0,1,0.842,0.54,0,0,0,-1,-1,0,0 +,0,0,-1,1,0,0,0,0,1,0,0,-1,-0.732,0.681,0,0,0,1,0,1,0,0,0,1,0,0,-1,0.708,0.706,0,1,0,0,-1,0,0,0,0,-1,0,0,1,-1,0,0,1,0,0,0,0,-1 +,0,1,0,-0.007,-0.065,0.998,-0.851,0.525,0,1,0,0,-1,0,0,0,0,1,0,0,-1,0,0.003,1,0,0,1,0.747,0.665,0,0,1,0,1,0,0,-0.868,0.496,0,0,0,-1,1,0,0,0,0,-1,0,0,-1 +,1,0,0,0,1,0,0,0,-1,-1,0,0,0.825,0.565,0,0,0,1,-1,0,0,1,0,0,0,0,-1,0,0,-1,0,1,0,1,0,0,-1,0,0,0,0,1,0,1,0,0,0,-1,0,1,0 +,0,0,1,0.433,0.901,0,0,1,0,0,0,1,0,0,-1,0,0,1,0,0,1,-1,0,0,0,0,-1,0,0.836,0.549,-0.734,0.679,0,0.676,0.737,0,0,0.836,-0.549,0,1,0,-1,0,0,0,0,1,0,1,0 +,0,1,0,0,0,-1,0,0,-1,0,0,1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,0,1,0,-1,0,0,-1,0 +,0,0,1,0,1,0,0,1,0,0,0,-1,0,1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,0,1,0,-1,0,0,-0.66,0,-0.752,-0.789,-0.614,0,-0.66,0,0.752 +,-0.335,0.942,0,0,0,1,-1,0,0,0,-1,0,0,0,1,0,0,1,0.788,-0.616,0,-1,0,0,0,0,-1,1,0,0,0,0,1,0,0,-1,0,0,1,0,-1,0.002,-1,0,0,0,-0.009,-1,0,1,0 +,0,1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,1,0,-0.737,0.676,0,0,0,1,0,1,0,1,0,0,-1,0,0,0,0,-1,-0.707,0.708,0,0.707,0.708,0,-1,0,0 +,0,1,0,1,0,0,0,0,1,0,0,-1,0,1,0,0,1,0,-1,0,0,0,0,1,0.918,0,0.396,0,0,-1,-1,0,0,-0.746,0,-0.665,-0.658,-0.753,0,-0.746,0,0.665,-0.658,0.753,0,-1,0,0,-0.867,0,-0.499 +,-0.646,-0.763,0,-0.826,0,0.564,-0.604,0.797,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,0,1 +,0,-1,0,0,-1,0,0,0,1,0,1,0,0,1,0,0,0,-1,0,1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,-1,0,0,1,0,-1,0.002,1,0,0 +,0,-0.009,-1,0,1,0,0,1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0.737,0.676,0,1,0,0,0,0,1,0,-1,0,0,0,-1,0,1,0 +,1,0,0,0.664,0,0.747,0.122,-0.993,0,0.664,0,-0.748,0.122,0.993,0,1,0,0,0,0,1,0,-1,0,0,0,-1,0.487,0.874,0,1,0,0,0,0,1,0.607,-0.795,0,0,0,-1,0.607,0.795,0,-1,0,0,-0.825,0,-0.566 +,0,-1,0,-0.825,0,0.566,0,1,0,-1,0,0,-0.63,0,-0.777,-0.643,-0.766,0,-0.826,0,0.564,-0.826,0,0.564,-0.604,0.797,0,-0.978,0.21,0,0,0,1,0,0,-1,0,1,0,-0.978,0,-0.211,0,0.389,0.921,0.978,0.21,0,0,0.389,-0.921 +,1,0,0,-1,0,0,0.825,0,0.565,-0.83,0,-0.558,0,0,1,1,0,0,-1,0,0,-1,0,0,-0.771,0.339,-0.539,0,0.575,-0.818,1,0,0,-1,0,0,-0.833,0,-0.554,0,0,-1,0.797,0.564,0.217,0,0.575,0.818,-0.853,0.522,0 +,0.783,0.568,0.254,0.681,0.575,0.453,0,1,0,-1,0,0,0,0,-1,1,0,0,1,0,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.991,0.131,0,0.5,0.866,0 +,0.707,0.708,0,-0.5,0.866,0,-0.707,0.708,0,0,1,0,-1,0,0,0,0,-1,1,0,0,1,0,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.991,0.131,0 +,0.5,0.866,0,0.707,0.708,0,-0.5,0.866,0,-0.707,0.708,0,0,1,0,-1,0,0,0,0,-1,1,0,0,1,0,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,-0.991,0.131,0,0.5,0.866,0,0.707,0.708,0,-0.5,0.866,0,-0.707,0.708,0,0,1,0,-1,0,0,0,0,-1,1,0,0,1,0,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,-0.991,0.131,0,0.5,0.866,0,0.707,0.708,0,-0.5,0.866,0,-0.707,0.708,0,-1,0,0,0,1,0,0,0,1,0,0,-1,1,0,0,0,1,0,0,0,-1,1,0,0,0,0,1,0,0,1,1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.19,-0.982,0,0.928,0.372,0,0.928,0.372,0,0.928,0.372,0,0.928,-0.372,0,0.928,-0.372,0,1,0,0,0,-1,1,0,0,0,0,1 +,0,0,1,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.19,-0.982,0,0.928,0.372,0,0.928,0.372,0,0.928,0.372,0,0.928,-0.372,0,0.928,-0.372,0,0.928,-0.372,0,1,0 +,0,0,-1,1,0,0,0,0,1,0,0,1,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.19,-0.982,0,0.928,0.372,0,0.928,0.372,0,0.928,0.372,0,0.928,-0.372 +,0,0.928,-0.372,0,0.928,-0.372,0,1,0,0,0,-1,1,0,0,0,0,1,0,0,1,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.19,-0.982,0,0.996,0.088 +,0,0.928,0.372,0,0.833,0.554,0,0.928,-0.372,0,0.928,-0.372,-0.604,0.797,0,-0.774,0,-0.633,-0.69,-0.724,0,-1,0,0,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0 +,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1 +,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0 +,0.877,0.481,0,0,0,1,0,0,-1,-0.877,-0.481,0,-0.451,0.893,0,0.877,0.481,0,0,0,1,0,0.688,0.726,0,0.916,0.401,0,0.916,-0.401,0,0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.916,-0.401,0,-0.916,-0.401,0,-0.916,0.401,0,-0.688,0.726 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.688,0.726,0,-0.688,-0.726,0,0.916,0.401,0,-0.916,-0.401 +,0,0.916,-0.401,0,-0.916,0.401,0,0.688,-0.726,0,-0.688,0.726,0,0.688,0.726,0,0.916,0.401,0,0.916,-0.401,0,0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.916,0.401,0,-0.688,0.726,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.688,0.726,0,-0.688,-0.726,0,0.916,0.401,0,-0.916,-0.401,0,0.916,-0.401,0,-0.916,0.401,0,0.688,-0.726,0,-0.688,0.726,0.363,0,0.932 +,0.685,0,0.728,0.685,0,-0.728,-0.363,0,-0.932,-0.685,0,-0.728,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,-0.363,0,-0.932,0.685,0,0.728,-0.685,0,-0.728,0.685,0,-0.728,-0.685,0,0.728,0.363,0,0.932,0.363,0,0.932,0.363,0,0.932,0.685,0,0.728,0.685,0,-0.728,-0.363,0,-0.932,-0.685,0,-0.728,-0.685,0,0.728,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.363,0,-0.932,0.685,0,0.728,-0.685,0,-0.728,0.685,0,-0.728,-0.685,0,0.728,0.363,0,0.932,0.363,0,0.932,0.363,0,0.932 +,0.685,0,0.728,0.685,0,-0.728,-0.363,0,-0.932,-0.685,0,-0.728,-0.685,0,0.728,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,-0.363,0,-0.932,0.685,0,0.728,-0.685,0,-0.728,0.685,0,-0.728,-0.685,0,0.728,0.363,0,0.932,0.363,0,0.932,0.712,0,0.702,0.712,0,-0.702,-0.712,0,-0.702,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.712,0,0.702,-0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,0.712,0,0.702,0.712,0,-0.702,-0.712,0,-0.702,-0.712,0,0.702,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.712,0,0.702,-0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,0.712,0,0.702 +,0.712,0,-0.702,-0.712,0,-0.702,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.712,0,0.702 +,-0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,0.712,0,0.702,0.712,0,-0.702,-0.712,0,-0.702,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0.712,0,0.702,-0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,1,0,0,0,-1,0,0,0,-1,0,1,0,0,1,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,-1,0.13,-0.991,0,0.966,0.259,0,0.966,-0.259,0,1,0,0,0,-1,0,0,0,-1,0,1,0,0,1,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,-1,0.13,-0.991,0,0.966,0.259,0,0.966,-0.259,0,1,0,0,0,-1,0,0,0,-1,0,1,0,0,1,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,-1,0.13,-0.991,0,0.966,0.259,0,0.966,-0.259,0,1,0,0,0,-1,0,0,0,-1,0,1,0,0,1,0,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,-1,0.13,-0.991,0,0.966,0.259,0,0.966,-0.259,0,0,0,1,0,0,1,-0.978,0,-0.211,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0.712,0,0.702,0.712,0,-0.702,-0.712,0,-0.702,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0.712,0,0.702,-0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,0.712,0,0.702,0.712,0,-0.702,-0.712,0,-0.702,-0.712,0,0.702,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.712,0,0.702,-0.712,0,-0.702,0.712,0,-0.702,-0.712,0,0.702,0,0.688,0.726,0,0.916,0.4,0,0.916,-0.401,0,0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.916,-0.401 +,0,-0.916,-0.401,0,-0.916,0.4,0,-0.688,0.726,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.688,0.726 +,0,-0.688,-0.726,0,0.916,0.401,0,-0.916,-0.401,0,0.916,-0.401,0,-0.916,0.401,0,0.688,-0.726,0,-0.688,0.726,0,0.688,0.726,0,0.916,0.4,0,0.916,-0.401,0,0.688,-0.726,0,-0.688,-0.726,0,-0.916,-0.401,0,-0.916,0.4,0,-0.688,0.726,-1,0,0,-1,0,0 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0.688,0.726,0,-0.688,-0.726,0,0.916,0.401,0,-0.916,-0.401,0,0.916,-0.401,0,-0.916,0.401 +,0,0.688,-0.726,0,-0.688,0.726,0,0,1,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0 +,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-0.707,0,-0.707,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0 +,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,0,-1 +,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,-0.707,0,-0.707,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1 +,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1 +,0,0,-1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0 +,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1 +,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0 +,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1 +,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,-1 +,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1 +,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0 +,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0 +,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0 +,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1 +,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0 +,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1 +,0,0,1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1 +,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,-1,0,0 +,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1 +,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1 +,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1 +,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,0 +,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1 +,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0,-1,0,0,1,0,0,0,1,0,0,1,0,0,0,-1,0,0,1,0,1,0,1,0,0 +,0,0,1,-1,0,0,0,0,-1,0,1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,0,1,-0.707,0,-0.707,0,0,-1,0,1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,0,1 +,-1,0,0,0,0,-1,1,0,0,0,1,0,1,0,0,0,0,1,0,0,-1,0,0,-1,0,1,0,1,0,0,-1,0,0,0,0,1,0,1,0,1,0,0,0,0,1,-1,0,0,0,0,-1 +,0,0,-1,0,1,0,0,0,1,-1,0,0,0,0,1,0,1,0,0,1,0,0,1,0,-1,0,0,0,0,-1,1,0,0,0,0,1,0,1,0,1,0,0,0,0,-1,-1,0,0,0,1,0 +,0,1,0,1,0,0,0,0,1,0,0,-1,0,1,0,-1,0,0,0,0,-1,1,0,0,0,0,1,0,1,0,-1,0,0,0,0,-1,1,0,0,0,0,1,-1,0,0,0,0,-1,1,0,0 +,0,0,1,0,1,0,-1,0,0,0,0,-1,1,0,0,0,0,1,0,1,0,-1,0,0,0,0,-1,1,0,0,0,0,1,0,1,0,-1,0,0,0,0,-1,0,0,1,0,0,1,-1,0,0 +,1,0,0,0,0,1,-1,0,0,0,0,-1,1,0,0,0,0,1,0,0,-1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,-1,0,1,0,0,1,0 +,-1,0,0,0,1,0,0,0,-1,1,0,0,0,0,1,0,0,-1,0,1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,-1,0,0 +,1,0,0,0,0,-1,0,1,0,1,0,0,0,0,1,-1,0,0,1,0,0,0,1,0,0,0,1,0,0,-1,-1,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,1,0,0,-1,0,0,0,0,-1,0,0,-1,0,1,0,0,1,0,0,0,1,-1,0,0,1,0,0,0,1,0,-1,0,0,0,1,0,0,0,-1,1,0,0,0,0,1,0,1,0,0,1,0 +,0,0,1,0,0,1] +,"uvs":[0.837,0.959,0.805,0.965,0.805,0.959,0.789,0.965,0.786,0.959,0.618,0.097,0.677,0.001,0.677,0.097,0.949,0.45,0.89,0.443,0.957,0.443,0.677,0.097,0.689,0.001,0.689,0.097,0.89,0.46,0.949,0.453,0.957,0.46,0.753,0.001,0.818,0.077,0.753,0.077,0.42,0.291,0.495,0.3,0.42,0.3,0.49,0.945,0.556,0.952 +,0.484,0.952,0.556,0.945,0.561,0.952,0.436,0.946,0.37,0.952,0.364,0.946,0.788,0.441,0.834,0.518,0.788,0.518,0.911,0.605,0.906,0.608,0.898,0.605,0.441,0.976,0.364,0.972,0.441,0.972,0.904,0.181,0.866,0.177,0.912,0.177,0.351,0.895,0.378,0.844,0.385,0.895,0.559,0.986,0.484,0.984,0.559,0.984,0.481,0.978 +,0.446,0.98,0.446,0.978,0.345,0.985,0.27,0.987,0.27,0.985,0.947,0.31,0.982,0.308,0.982,0.31,0.172,0.751,0.186,0.816,0.172,0.83,0.973,0.605,0.918,0.61,0.914,0.605,0.857,0.275,0.936,0.281,0.857,0.281,0.923,0.284,0.978,0.289,0.919,0.289,0.619,0.619,0.682,0.557,0.682,0.618,0.619,0.652,0.683,0.652 +,0.39,0.823,0.469,0.825,0.39,0.825,0.618,0.143,0.681,0.138,0.681,0.143,0.469,0.828,0.464,0.828,0.944,0.219,0.976,0.215,0.976,0.219,0.686,0.143,0.765,0.138,0.765,0.143,0.877,0.576,0.909,0.578,0.877,0.578,0.712,0.293,0.814,0.296,0.712,0.296,0.558,0.874,0.649,0.87,0.659,0.874,0.916,0.986,0.841,0.983 +,0.916,0.983,0.911,0.259,0.973,0.257,0.973,0.259,0.934,0.978,0.872,0.98,0.872,0.978,0.841,0.98,0.841,0.978,0.115,0.94,0.168,0.937,0.168,0.94,0.949,0.824,0.934,0.826,0.933,0.824,0.989,0.172,0.936,0.175,0.935,0.172,0.952,0.922,0.982,0.919,0.982,0.922,0.032,0.94,0.099,0.937,0.099,0.94,0.911,0.262 +,0.973,0.262,0.649,0.832,0.665,0.742,0.665,0.832,0.698,0.742,0.698,0.835,0.844,0.454,0.844,0.441,0.851,0.454,0.618,0.152,0.709,0.146,0.711,0.152,0.125,0.943,0.032,0.948,0.032,0.943,0.665,0.855,0.698,0.841,0.698,0.855,0.454,0.156,0.501,0.2,0.454,0.2,0.42,0.2,0.454,0.288,0.42,0.288,0.488,0.271 +,0.501,0.288,0.26,0.942,0.304,0.938,0.304,0.942,0.172,0.942,0.26,0.938,0.93,0.651,0.977,0.647,0.979,0.651,0.75,0.968,0.783,0.972,0.75,0.972,0.446,0.952,0.478,0.946,0.481,0.952,0.841,0.946,0.929,0.951,0.841,0.951,0.702,0.972,0.702,0.968,0.935,0.787,0.975,0.791,0.93,0.791,0.691,0.052,0.725,0.097 +,0.691,0.097,0.691,0.001,0.725,0.048,0.75,0.001,0.725,0.001,0.216,0.954,0.172,0.959,0.172,0.954,0.267,0.954,0.216,0.959,0.947,0.4,0.98,0.395,0.98,0.4,0.97,0.959,0.924,0.954,0.97,0.954,0.356,0.944,0.334,0.951,0.332,0.944,0.966,0.319,0.922,0.313,0.97,0.313,0.836,0.943,0.803,0.948,0.801,0.943 +,0.921,0.395,0.947,0.395,0.986,0.977,0.937,0.98,0.937,0.977,0.967,0.338,0.922,0.336,0.967,0.336,0.435,0.958,0.479,0.96,0.435,0.96,0.169,0.953,0.109,0.951,0.169,0.951,0.789,0.302,0.848,0.304,0.789,0.304,0.789,0.2,0.742,0.224,0.742,0.196,0.789,0.149,0.742,0.149,0.72,0.196,0.72,0.149,0.443,0.306 +,0.494,0.303,0.494,0.306,0.27,0.982,0.317,0.978,0.317,0.982,0.339,0.978,0.342,0.982,0.93,0.667,0.977,0.671,0.93,0.671,0.42,0.306,0.443,0.303,0.973,0.321,0.926,0.326,0.922,0.321,0.969,0.154,0.946,0.159,0.946,0.154,0.004,0.962,0.023,0.968,0.001,0.968,0.926,0.936,0.959,0.942,0.923,0.942,0.614,0.306 +,0.599,0.301,0.617,0.301,0.595,0.631,0.609,0.625,0.612,0.631,0.965,0.675,0.933,0.68,0.93,0.674,0.589,0.664,0.616,0.661,0.616,0.664,0.488,0.212,0.461,0.212,0.461,0.271,0.916,0.38,0.892,0.384,0.89,0.38,0.924,0.061,0.984,0.059,0.984,0.061,0.424,0.99,0.364,0.993,0.364,0.99,0.986,0.755,0.959,0.757 +,0.959,0.755,0.534,0.303,0.504,0.251,0.534,0.251,0.596,0.303,0.596,0.251,0.916,0.44,0.914,0.384,0.89,0.44,0.892,0.436,0.914,0.436,0.961,0.116,0.984,0.114,0.984,0.116,0.939,0.351,0.887,0.374,0.887,0.351,0.209,0.993,0.261,0.991,0.261,0.993,0.479,0.99,0.427,0.993,0.427,0.99,0.984,0.13,0.961,0.132 +,0.961,0.13,0.115,0.937,0.867,0.826,0.867,0.824,0.78,0.289,0.796,0.227,0.796,0.289,0.775,0.289,0.712,0.227,0.775,0.227,0.032,0.937,0.095,0.935,0.93,0.828,0.867,0.828,0.78,0.289,0.775,0.227,0.78,0.227,0.893,0.882,0.822,0.915,0.822,0.882,0.686,0.138,0.759,0.135,0.684,0.557,0.685,0.618,0.971,0.491 +,0.908,0.496,0.908,0.491,0.984,0.344,0.922,0.347,0.922,0.344,0.976,0.494,0.974,0.496,0.688,0.618,0.684,0.557,0.687,0.557,0.688,0.652,0.388,0.825,0.96,0.455,0.982,0.453,0.982,0.455,0.304,0.808,0.302,0.828,0.302,0.81,0.584,0.987,0.659,0.984,0.659,0.987,0.977,0.591,0.902,0.593,0.902,0.591,0.982,0.458 +,0.96,0.461,0.96,0.458,0.229,0.83,0.304,0.83,0.229,0.808,0.232,0.81,0.232,0.828,0.963,0.034,0.981,0.033,0.981,0.034,0.899,0.583,0.829,0.601,0.829,0.583,0.858,0.651,0.91,0.651,0.91,0.651,0.169,0.922,0.116,0.923,0.116,0.922,0.422,0.996,0.404,0.996,0.404,0.996,0.129,0.862,0.166,0.91,0.129,0.91 +,0.939,0.277,0.987,0.275,0.987,0.277,0.479,0.955,0.479,0.958,0.922,0.341,0.922,0.338,0.829,0.58,0.87,0.575,0.874,0.58,0.829,0.521,0.87,0.526,0.833,0.526,0.833,0.575,0.874,0.521,0.109,0.956,0.109,0.953,0.848,0.299,0.848,0.302,0.226,0.982,0.263,0.98,0.263,0.982,0.481,0.972,0.444,0.975,0.444,0.972 +,0.86,0.38,0.855,0.455,0.855,0.38,0.441,0.952,0.436,0.952,0.878,0.296,0.884,0.371,0.878,0.371,0.963,0.021,0.983,0.02,0.983,0.021,0.963,0.03,0.983,0.029,0.983,0.03,0.963,0.026,0.983,0.024,0.983,0.026,0.962,0.937,0.982,0.936,0.982,0.937,0.348,0.917,0.346,0.918,0.346,0.917,0.993,0.158,0.992,0.159 +,0.992,0.158,0.337,0.842,0.338,0.843,0.337,0.843,0.337,0.833,0.338,0.834,0.337,0.834,0.337,0.837,0.338,0.839,0.337,0.839,0.545,0.998,0.565,0.997,0.565,0.998,0.991,0.716,0.989,0.717,0.989,0.716,0.967,0.996,0.946,0.997,0.946,0.996,0.99,0.996,0.969,0.997,0.969,0.996,0.993,0.154,0.992,0.155,0.992,0.154 +,0.032,0.999,0.052,0.998,0.052,0.999,0.749,0.998,0.769,0.997,0.769,0.998,0.337,0.846,0.338,0.848,0.337,0.848,0.055,0.999,0.075,0.998,0.075,0.999,0.723,0.997,0.702,0.998,0.702,0.997,0.746,0.997,0.726,0.998,0.726,0.997,0.594,0.618,0.592,0.622,0.592,0.608,0.619,0.655,0.65,0.711,0.622,0.711,0.65,0.728 +,0.619,0.73,0.622,0.728,0.988,0.529,0.968,0.531,0.968,0.529,0.988,0.542,0.968,0.543,0.968,0.542,0.99,0.34,0.97,0.341,0.97,0.34,0.616,0.622,0.594,0.62,0.614,0.62,0.917,0.181,0.917,0.177,0.86,0.608,0.858,0.605,0.912,0.14,0.914,0.138,0.917,0.138,0.788,0.695,0.866,0.658,0.866,0.695,0.985,0.518 +,0.908,0.515,0.985,0.515,0.558,0.931,0.621,0.91,0.621,0.931,0.54,0.899,0.548,0.925,0.54,0.921,0.941,0.222,0.871,0.215,0.934,0.215,0.924,0.049,0.933,0.024,0.933,0.045,0.614,0.948,0.685,0.954,0.621,0.954,0.833,0.769,0.828,0.772,0.827,0.77,0.567,0.433,0.604,0.481,0.567,0.481,0.699,0.44,0.693,0.4 +,0.699,0.4,0.426,0.886,0.474,0.89,0.426,0.89,0.567,0.4,0.604,0.433,0.61,0.96,0.563,0.954,0.61,0.954,0.901,0.859,0.902,0.853,0.903,0.859,0.527,0.4,0.839,0.735,0.858,0.7,0.844,0.737,0.697,0.488,0.699,0.452,0.699,0.488,0.989,0.97,0.98,0.973,0.98,0.97,0.695,0.73,0.614,0.61,0.616,0.608 +,0.47,0.746,0.471,0.76,0.47,0.76,0.499,0.305,0.498,0.291,0.499,0.291,0.698,0.675,0.699,0.692,0.698,0.692,0.961,0.818,0.988,0.817,0.988,0.818,0.594,0.61,0.599,0.279,0.615,0.277,0.617,0.278,0.615,0.253,0.599,0.251,0.617,0.251,0.601,0.277,0.699,0.553,0.697,0.536,0.699,0.536,0.989,0.813,0.961,0.814 +,0.961,0.813,0.986,0.566,0.962,0.567,0.962,0.566,0.962,0.571,0.986,0.57,0.986,0.571,0.883,0.375,0.883,0.376,0.878,0.377,0.852,0.371,0.86,0.455,0.857,0.461,0.856,0.46,0.832,0.13,0.908,0.128,0.908,0.13,0.86,0.461,0.887,0.455,0.887,0.461,0.832,0.101,0.908,0.101,0.695,0.734,0.619,0.735,0.619,0.734 +,0.832,0.133,0.908,0.131,0.908,0.133,0.832,0.131,0.962,0.369,0.982,0.367,0.982,0.369,0.385,0.82,0.378,0.829,0.351,0.82,0.358,0.844,0.358,0.829,0.924,0.016,0.944,0.001,0.944,0.016,0.852,0.457,0.837,0.46,0.837,0.457,0.346,0.973,0.361,0.971,0.361,0.973,0.982,0.362,0.962,0.364,0.962,0.362,0.604,0.4 +,0.606,0.433,0.604,0.433,0.606,0.481,0.604,0.481,0.393,0.886,0.393,0.89,0.788,0.658,0.866,0.655,0.866,0.658,0.911,0.648,0.908,0.648,0.906,0.645,0.943,0.195,0.995,0.193,0.995,0.195,0.227,0.751,0.186,0.764,0.227,0.83,0.218,0.816,0.218,0.764,0.887,0.296,0.919,0.349,0.887,0.349,0.995,0.188,0.943,0.19 +,0.943,0.188,0.956,0.782,0.989,0.78,0.989,0.782,0.479,0.983,0.446,0.985,0.446,0.983,0.645,0.817,0.64,0.818,0.64,0.817,0.584,0.841,0.566,0.865,0.558,0.865,0.649,0.845,0.59,0.845,0.566,0.87,0.659,0.841,0.255,0.908,0.255,0.904,0.278,0.883,0.832,0.083,0.857,0.082,0.857,0.083,0.091,0.993,0.032,0.995 +,0.032,0.993,0.99,0.643,0.959,0.644,0.959,0.643,0.896,0.777,0.979,0.776,0.979,0.777,0.849,0.377,0.788,0.309,0.849,0.309,0.341,0.824,0.348,0.888,0.341,0.884,0.78,0.957,0.707,0.951,0.775,0.951,0.912,0.588,0.919,0.524,0.919,0.584,0.882,0.871,0.954,0.877,0.886,0.877,0.544,0.484,0.609,0.506,0.544,0.506 +,0.905,0.761,0.896,0.74,0.905,0.74,0.717,0.802,0.71,0.736,0.718,0.742,0.63,0.783,0.637,0.814,0.63,0.819,0.615,0.551,0.55,0.545,0.622,0.545,0.458,0.579,0.556,0.557,0.556,0.579,0.752,0.459,0.777,0.451,0.771,0.46,0.939,0.471,0.845,0.466,0.943,0.466,0.943,0.16,0.935,0.136,0.943,0.138,0.467,0.921 +,0.53,0.926,0.47,0.926,0.393,0.86,0.426,0.86,0.898,0.856,0.885,0.832,0.474,0.886,0.474,0.86,0.831,0.773,0.858,0.778,0.856,0.782,0.859,0.074,0.854,0.001,0.859,0.001,0.798,0.207,0.822,0.138,0.827,0.14,0.982,0.873,0.962,0.871,0.982,0.871,0.988,0.522,0.968,0.521,0.988,0.521,0.138,0.988,0.118,0.986 +,0.138,0.986,0.022,0.989,0.001,0.987,0.022,0.987,0.169,0.755,0.168,0.757,0.168,0.755,0.616,0.625,0.615,0.627,0.615,0.625,0.168,0.752,0.169,0.751,0.169,0.752,0.615,0.631,0.616,0.629,0.616,0.631,0.168,0.761,0.169,0.76,0.169,0.761,0.253,0.997,0.232,0.996,0.253,0.996,0.169,0.773,0.168,0.775,0.168,0.773 +,0.977,0.052,0.997,0.053,0.977,0.053,0.094,0.997,0.114,0.997,0.094,0.997,0.169,0.769,0.168,0.771,0.168,0.769,0.997,0.407,0.977,0.407,0.997,0.407,0.997,0.258,0.976,0.257,0.997,0.257,0.168,0.766,0.169,0.764,0.169,0.766,0.997,0.404,0.977,0.403,0.997,0.403,0.976,0.261,0.997,0.262,0.976,0.262,0.117,0.997 +,0.137,0.997,0.117,0.997,0.001,0.912,0.004,0.915,0.004,0.917,0.155,0.672,0.125,0.726,0.08,0.672,0.125,0.743,0.155,0.745,0.08,0.745,0.968,0.534,0.988,0.535,0.968,0.535,0.968,0.538,0.988,0.539,0.968,0.539,0.97,0.265,0.991,0.266,0.97,0.266,0.026,0.912,0.025,0.925,0.025,0.914,0.153,0.726,0.388,0.845 +,0.389,0.831,0.389,0.845,0.389,0.782,0.388,0.797,0.388,0.782,0.698,0.732,0.699,0.715,0.699,0.732,0.988,0.826,0.961,0.825,0.988,0.825,0.004,0.924,0.026,0.927,0.002,0.927,0.353,0.899,0.351,0.915,0.351,0.898,0.377,0.899,0.379,0.915,0.377,0.914,0.353,0.914,0.699,0.655,0.698,0.672,0.698,0.655,0.961,0.809 +,0.989,0.81,0.961,0.81,0.962,0.574,0.986,0.575,0.962,0.575,0.986,0.377,0.962,0.376,0.986,0.376,0.794,0.21,0.793,0.209,0.827,0.22,0.796,0.211,0.858,0.078,0.857,0.078,0.854,0.074,0.126,0.855,0.05,0.853,0.126,0.853,0.854,0.079,0.821,0.074,0.126,0.887,0.05,0.855,0.155,0.749,0.08,0.747,0.155,0.747 +,0.126,0.851,0.05,0.85,0.126,0.85,0.05,0.851,0.385,0.745,0.314,0.817,0.314,0.745,0.925,0.106,0.92,0.178,0.92,0.106,0.923,0.77,0.918,0.698,0.923,0.698,0.558,0.963,0.484,0.968,0.487,0.963,0.334,0.833,0.172,0.855,0.172,0.833,0.965,0.521,0.959,0.544,0.959,0.521,0.176,0.935,0.342,0.93,0.338,0.935 +,0.953,0.375,0.959,0.352,0.959,0.375,0.535,0.934,0.368,0.929,0.531,0.929,0.905,0.483,0.837,0.518,0.837,0.483,0.956,0.698,0.951,0.732,0.951,0.698,0.951,0.77,0.956,0.735,0.956,0.77,0.97,0.601,0.902,0.596,0.97,0.596,0.627,0.777,0.558,0.839,0.558,0.777,0.927,0.614,0.921,0.679,0.921,0.617,0.841,0.962 +,0.915,0.967,0.845,0.967,0.922,0.588,0.928,0.523,0.928,0.585,0.347,0.968,0.274,0.963,0.343,0.963,0.165,0.752,0.001,0.779,0.001,0.752,0.958,0.106,0.953,0.137,0.953,0.11,0.172,0.913,0.335,0.919,0.172,0.919,0.956,0.551,0.951,0.521,0.956,0.524,0.786,0.305,0.622,0.299,0.786,0.299,0.867,0.81,0.927,0.787 +,0.927,0.81,0.941,0.558,0.949,0.582,0.941,0.582,0.105,0.974,0.038,0.969,0.099,0.969,0.691,0.651,0.699,0.628,0.699,0.651,0.276,0.975,0.343,0.971,0.337,0.975,0.556,0.605,0.616,0.579,0.616,0.605,0.95,0.618,0.956,0.639,0.95,0.643,0.679,0.957,0.614,0.963,0.618,0.957,0.931,0.548,0.938,0.524,0.938,0.55 +,0.372,0.926,0.616,0.557,0.971,0.419,0.923,0.424,0.919,0.419,0.467,0.811,0.395,0.757,0.467,0.757,0.877,0.919,0.949,0.927,0.877,0.927,0.949,0.072,0.896,0.064,0.958,0.064,0.467,0.757,0.395,0.746,0.467,0.746,0.896,0.082,0.949,0.075,0.958,0.082,0.238,0.672,0.302,0.748,0.238,0.748,0.302,0.748,0.31,0.672 +,0.31,0.748,0.038,0.951,0.101,0.957,0.032,0.957,0.101,0.951,0.106,0.957,0.951,0.862,0.888,0.868,0.882,0.862,0.827,0.602,0.788,0.521,0.827,0.521,0.08,0.923,0.081,0.917,0.09,0.913,0.696,0.966,0.614,0.97,0.614,0.966,0.016,0.847,0.045,0.85,0.006,0.85,0.781,0.916,0.727,0.9,0.781,0.896,0.144,0.982 +,0.223,0.98,0.223,0.982,0.838,0.973,0.818,0.976,0.818,0.973,0.443,0.979,0.364,0.982,0.364,0.979,0.561,0.973,0.581,0.971,0.581,0.973,0.555,0.777,0.489,0.791,0.475,0.777,0.979,0.388,0.924,0.393,0.919,0.388,0.614,0.938,0.693,0.945,0.614,0.945,0.924,0.38,0.979,0.385,0.919,0.385,0.622,0.218,0.684,0.156 +,0.684,0.218,0.717,0.156,0.717,0.218,0.695,0.55,0.625,0.545,0.695,0.545,0.913,0.499,0.976,0.504,0.913,0.504,0.692,0.553,0.625,0.55,0.611,0.967,0.564,0.963,0.611,0.963,0.798,0.948,0.765,0.943,0.798,0.943,0.765,0.948,0.702,0.943,0.868,0.688,0.938,0.693,0.868,0.693,0.364,0.985,0.436,0.988,0.364,0.988 +,0.976,0.915,0.896,0.912,0.976,0.912,0.556,0.667,0.486,0.673,0.475,0.667,0.935,0.167,0.99,0.169,0.935,0.169,0.911,0.252,0.973,0.25,0.973,0.252,0.577,0.978,0.515,0.981,0.515,0.978,0.484,0.981,0.484,0.978,0.77,0.94,0.838,0.938,0.838,0.94,0.267,0.985,0.219,0.988,0.218,0.985,0.702,0.94,0.77,0.938 +,0.911,0.255,0.973,0.255,0.854,0.275,0.799,0.227,0.854,0.227,0.971,0.416,0.923,0.411,0.971,0.411,0.853,0.281,0.799,0.275,0.854,0.275,0.837,0.951,0.782,0.956,0.782,0.951,0.31,0.805,0.277,0.751,0.31,0.751,0.243,0.767,0.229,0.751,0.307,0.942,0.361,0.938,0.361,0.942,0.924,0.056,0.972,0.052,0.974,0.056 +,0.219,0.968,0.253,0.972,0.219,0.972,0.664,0.862,0.696,0.858,0.699,0.862,0.919,0.403,0.974,0.408,0.919,0.408,0.172,0.972,0.172,0.968,0.694,0.91,0.638,0.877,0.694,0.877,0.976,0.435,0.919,0.439,0.919,0.435,0.911,0.27,0.967,0.265,0.967,0.27,0.164,0.943,0.13,0.947,0.128,0.943,0.215,0.985,0.144,0.988 +,0.144,0.985,0.988,0.144,0.946,0.146,0.946,0.144,0.965,0.887,0.896,0.882,0.965,0.882,0.167,0.966,0.105,0.96,0.167,0.96,0.879,0.879,0.822,0.832,0.879,0.832,0.93,0.661,0.977,0.664,0.93,0.664,0.922,0.333,0.978,0.329,0.978,0.333,0.976,0.427,0.919,0.432,0.919,0.427,0.112,0.983,0.138,0.981,0.138,0.983 +,0.277,0.805,0.243,0.788,0.269,0.788,0.269,0.767,0.229,0.805,0.589,0.658,0.614,0.655,0.616,0.658,0.961,0.137,0.983,0.135,0.983,0.137,0.982,0.796,0.961,0.798,0.961,0.796,0.028,0.982,0.001,0.984,0.001,0.982,0.603,0.243,0.54,0.174,0.603,0.175,0.589,0.637,0.591,0.655,0.616,0.637,0.614,0.641,0.591,0.641 +,0.961,0.121,0.984,0.119,0.984,0.121,0.944,0.31,0.922,0.296,0.944,0.296,0.973,0.599,0.987,0.596,0.987,0.599,0.576,0.984,0.562,0.986,0.562,0.984,0.984,0.124,0.961,0.127,0.961,0.124,0.51,0.222,0.54,0.243,0.977,0.235,0.911,0.237,0.911,0.235,0.064,0.844,0.001,0.781,0.064,0.781,0.702,0.938,0.765,0.936 +,0.974,0.24,0.911,0.24,0.973,0.242,0.911,0.247,0.911,0.242,0.855,0.652,0.788,0.605,0.855,0.605,0.935,0.685,0.938,0.688,0.622,0.221,0.684,0.221,0.976,0.507,0.913,0.512,0.913,0.507,0.911,0.499,0.921,0.962,0.984,0.965,0.921,0.965,0.91,0.512,0.908,0.51,0.622,0.221,0.684,0.224,0.622,0.224,0.717,0.221 +,0.717,0.224,0.684,0.221,0.717,0.221,0.1,0.038,0.096,0.012,0.101,0.009,0.953,0.784,0.865,0.78,0.949,0.78,0.264,0.961,0.176,0.965,0.172,0.961,0.008,0.037,0.013,0.012,0.013,0.034,0.474,0.893,0.389,0.916,0.389,0.893,0.937,0.949,0.986,0.946,0.986,0.949,0.709,0.244,0.701,0.29,0.701,0.247,0.622,0.227 +,0.63,0.29,0.622,0.296,0.684,0.227,0.63,0.233,0.709,0.296,0.931,0.588,0.987,0.585,0.987,0.588,0.615,0.667,0.615,0.738,0.559,0.688,0.861,0.14,0.831,0.207,0.856,0.138,0.956,0.868,0.951,0.868,0.888,0.698,0.893,0.771,0.888,0.773,0.962,0.942,0.982,0.94,0.982,0.942,0.965,0.205,0.986,0.203,0.986,0.205 +,0.962,0.877,0.982,0.876,0.982,0.877,0.965,0.209,0.986,0.207,0.986,0.209,0.992,0.54,0.991,0.539,0.992,0.539,0.581,0.978,0.58,0.976,0.581,0.976,0.991,0.525,0.992,0.527,0.991,0.527,0.266,0.979,0.267,0.98,0.266,0.98,0.991,0.53,0.992,0.531,0.991,0.531,0.974,0.423,0.994,0.422,0.994,0.423,0.992,0.536 +,0.991,0.534,0.992,0.534,0.688,0.994,0.667,0.994,0.667,0.994,0.995,0.097,0.975,0.097,0.975,0.097,0.992,0.522,0.991,0.521,0.992,0.521,0.974,0.737,0.994,0.736,0.994,0.737,0.545,0.994,0.565,0.993,0.565,0.994,0.992,0.329,0.992,0.331,0.992,0.331,0.001,0.996,0.022,0.996,0.022,0.996,0.994,0.909,0.974,0.909 +,0.974,0.909,0.982,0.14,0.961,0.141,0.961,0.14,0.789,0.907,0.787,0.912,0.788,0.898,0.314,0.742,0.367,0.712,0.367,0.74,0.384,0.712,0.387,0.742,0.384,0.74,0.986,0.292,0.966,0.293,0.966,0.292,0.989,0.674,0.968,0.675,0.968,0.674,0.99,0.336,0.97,0.337,0.97,0.336,0.812,0.912,0.789,0.91,0.81,0.91 +,0.001,0.847,0.001,0.85,0.109,0.89,0.113,0.891,0.006,0.887,0.004,0.889,0.001,0.889,0.691,0.4,0.609,0.437,0.609,0.4,0.388,0.814,0.47,0.817,0.388,0.817,0.638,0.935,0.693,0.913,0.693,0.935,0.941,0.527,0.948,0.551,0.941,0.549,0.068,0.517,0.009,0.525,0.015,0.517,0.941,0.644,0.947,0.62,0.947,0.643 +,0.911,0.227,0.971,0.232,0.915,0.232,0.868,0.069,0.863,0.072,0.862,0.069,0.433,0.706,0.473,0.669,0.473,0.706,0.646,0.814,0.64,0.784,0.646,0.777,0.595,0.903,0.635,0.907,0.595,0.907,0.395,0.706,0.433,0.669,0.962,0.208,0.923,0.203,0.962,0.203,0.887,0.681,0.889,0.676,0.89,0.682,0.699,0.874,0.662,0.864 +,0.699,0.864,0.395,0.743,0.876,0.036,0.893,0.01,0.881,0.038,0.109,0.986,0.047,0.983,0.109,0.983,0.047,0.986,0.032,0.983,0.387,0.667,0.81,0.9,0.812,0.897,0.47,0.763,0.471,0.777,0.47,0.777,0.389,0.779,0.388,0.765,0.389,0.765,0.698,0.695,0.699,0.712,0.698,0.712,0.961,0.822,0.988,0.821,0.988,0.822 +,0.79,0.9,0.795,0.895,0.81,0.893,0.812,0.894,0.81,0.868,0.795,0.867,0.812,0.867,0.796,0.893,0.698,0.528,0.697,0.511,0.698,0.511,0.989,0.801,0.961,0.802,0.961,0.801,0.986,0.558,0.962,0.559,0.962,0.558,0.962,0.563,0.986,0.562,0.986,0.563,0.893,0.775,0.892,0.776,0.888,0.777,0.861,0.773,0.836,0.21 +,0.831,0.213,0.831,0.212,0.476,0.889,0.552,0.886,0.552,0.889,0.835,0.215,0.861,0.219,0.86,0.224,0.476,0.886,0.552,0.86,0.391,0.667,0.393,0.742,0.391,0.742,0.476,0.891,0.552,0.89,0.552,0.891,0.476,0.89,0.979,0.43,0.99,0.427,0.99,0.43,0.702,0.896,0.712,0.9,0.702,0.916,0.727,0.912,0.712,0.912 +,0.361,0.932,0.346,0.921,0.361,0.921,0.36,0.978,0.345,0.98,0.345,0.978,0.538,0.931,0.553,0.929,0.553,0.931,0.99,0.227,0.978,0.229,0.978,0.227,0.395,0.669,0.433,0.667,0.433,0.669,0.473,0.667,0.473,0.669,0.558,0.903,0.558,0.907,0.691,0.437,0.609,0.44,0.609,0.437,0.05,0.892,0.053,0.89,0.056,0.89 +,0.943,0.185,0.995,0.184,0.995,0.185,0.555,0.832,0.541,0.791,0.475,0.832,0.489,0.823,0.541,0.823,0.877,0.521,0.91,0.573,0.877,0.573,0.995,0.198,0.943,0.199,0.943,0.198,0.959,0.554,0.991,0.552,0.991,0.554,0.991,0.547,0.959,0.549,0.959,0.547,0.155,0.991,0.144,0.993,0.144,0.991,0.556,0.682,0.529,0.73 +,0.55,0.683,0.531,0.739,0.486,0.73,0.55,0.673,0.475,0.739,0.788,0.38,0.852,0.39,0.832,0.438,0.484,0.995,0.542,0.993,0.542,0.995,0.944,0.224,0.987,0.222,0.987,0.224,0.206,0.991,0.155,0.993,0.852,0.827,0.788,0.829,0.788,0.827,0.126,0.847,0.067,0.781,0.126,0.781,0.915,0.698,0.908,0.761,0.908,0.702 +,0.323,0.944,0.252,0.951,0.257,0.944,0.699,0.62,0.691,0.557,0.699,0.562,0.172,0.944,0.243,0.951,0.177,0.951,0.172,0.88,0.269,0.858,0.269,0.88,0.268,0.518,0.26,0.493,0.269,0.498,0.939,0.48,0.845,0.474,0.943,0.474,0.943,0.13,0.935,0.106,0.943,0.108,0.805,0.919,0.868,0.925,0.808,0.925,0.595,0.877 +,0.885,0.678,0.872,0.655,0.635,0.877,0.635,0.903,0.867,0.073,0.893,0.079,0.891,0.083,0.167,0.854,0.161,0.781,0.167,0.781,0.794,0.767,0.819,0.698,0.824,0.7,0.983,0.003,0.963,0.001,0.983,0.001,0.983,0.017,0.963,0.015,0.983,0.015,0.983,0.012,0.963,0.011,0.983,0.011,0.983,0.008,0.963,0.006,0.983,0.006 +,0.915,0.77,0.914,0.772,0.914,0.77,0.949,0.803,0.949,0.805,0.949,0.803,0.949,0.809,0.949,0.808,0.949,0.809,0.949,0.8,0.949,0.799,0.949,0.8,0.699,0.967,0.699,0.966,0.699,0.967,0.47,0.996,0.45,0.996,0.47,0.996,0.949,0.794,0.949,0.796,0.949,0.794,0.184,0.995,0.205,0.996,0.184,0.996,0.427,0.996 +,0.447,0.996,0.427,0.996,0.338,0.851,0.337,0.852,0.337,0.851,0.997,0.251,0.976,0.25,0.997,0.25,0.997,0.247,0.976,0.246,0.997,0.246,0.699,0.972,0.699,0.97,0.699,0.972,0.997,0.254,0.976,0.254,0.997,0.254,0.976,0.242,0.997,0.243,0.976,0.243,0.209,0.996,0.229,0.997,0.209,0.997,0.001,0.93,0.004,0.932 +,0.004,0.933,0.033,0.726,0.001,0.672,0.077,0.672,0.033,0.743,0.001,0.745,0.005,0.743,0.968,0.525,0.988,0.526,0.968,0.526,0.968,0.882,0.988,0.883,0.968,0.883,0.968,0.678,0.989,0.679,0.968,0.679,0.026,0.93,0.005,0.726,0.024,0.942,0.024,0.932,0.077,0.745,0.388,0.863,0.389,0.848,0.389,0.863,0.471,0.78 +,0.47,0.795,0.47,0.78,0.388,0.762,0.389,0.745,0.389,0.762,0.989,0.467,0.961,0.466,0.989,0.466,0.004,0.942,0.026,0.944,0.001,0.944,0.003,0.894,0.001,0.91,0.002,0.892,0.028,0.894,0.029,0.91,0.028,0.908,0.003,0.908,0.698,0.49,0.697,0.508,0.697,0.49,0.961,0.805,0.989,0.806,0.961,0.806,0.962,0.578 +,0.986,0.579,0.962,0.579,0.986,0.373,0.962,0.372,0.986,0.372,0.79,0.77,0.789,0.769,0.824,0.78,0.792,0.771,0.166,0.858,0.165,0.858,0.161,0.854,0.864,0.792,0.788,0.789,0.864,0.789,0.161,0.859,0.129,0.854,0.864,0.824,0.788,0.792,0.077,0.749,0.001,0.747,0.077,0.747,0.864,0.788,0.788,0.787,0.864,0.787 +,0.788,0.788,0.235,0.672,0.158,0.747,0.158,0.672,0.93,0.698,0.926,0.772,0.926,0.698,0.584,0.977,0.661,0.981,0.584,0.981,0.928,0.181,0.932,0.106,0.932,0.181,0.109,0.98,0.032,0.976,0.109,0.976,0.555,0.834,0.393,0.857,0.393,0.834,0.959,0.558,0.952,0.581,0.952,0.559,0.172,0.922,0.338,0.927,0.176,0.927 +,0.348,0.913,0.341,0.89,0.348,0.891,0.869,0.928,0.702,0.933,0.707,0.928,0.82,0.832,0.702,0.864,0.702,0.832,0.952,0.001,0.947,0.033,0.947,0.001,0.484,0.937,0.601,0.942,0.484,0.942,0.951,0.138,0.946,0.106,0.951,0.106,0.481,0.943,0.364,0.937,0.481,0.937,0.589,0.608,0.472,0.633,0.472,0.608,0.958,0.796 +,0.953,0.824,0.953,0.8,0.799,0.284,0.916,0.291,0.799,0.291,0.955,0.034,0.96,0.005,0.96,0.03,0.168,0.932,0.05,0.926,0.168,0.926,0.476,0.918,0.537,0.894,0.537,0.918,0.95,0.351,0.942,0.375,0.942,0.351,0.915,0.975,0.848,0.97,0.908,0.97,0.624,0.934,0.632,0.91,0.632,0.934,0.484,0.971,0.551,0.975 +,0.491,0.975,0.921,0.062,0.896,0.001,0.921,0.001,0.911,0.109,0.916,0.131,0.911,0.135,0.096,0.96,0.032,0.966,0.035,0.96,0.931,0.58,0.938,0.557,0.938,0.582,0.71,0.925,0.33,0.858,0.33,0.88,0.166,0.971,0.109,0.968,0.167,0.968,0.664,0.977,0.698,0.98,0.664,0.98,0.026,0.979,0.001,0.976,0.026,0.976 +,0.768,0.13,0.787,0.133,0.764,0.133,0.824,0.113,0.829,0.113,0.815,0.082,0.759,0.11,0.754,0.11,0.983,0.764,0.959,0.767,0.959,0.764,0.981,0.45,0.96,0.447,0.981,0.447,0.812,0.086,0.976,0.97,0.939,0.974,0.939,0.972,0.112,0.975,0.141,0.978,0.112,0.978,0.919,0.986,0.986,0.983,0.986,0.986,0.919,0.97 +,0.917,0.973,0.609,0.443,0.696,0.448,0.609,0.448,0.942,0.091,0.972,0.096,0.942,0.096,0.68,0.233,0.027,0.973,0.001,0.971,0.027,0.971,0.117,0.914,0.169,0.919,0.117,0.919,0.564,0.945,0.611,0.95,0.564,0.95,0.98,0.302,0.947,0.305,0.947,0.302,0.948,0.088,0.984,0.086,0.985,0.088,0.946,0.163,0.983,0.162 +,0.984,0.163,0.992,0.685,0.941,0.687,0.941,0.685,0.947,0.299,0.986,0.296,0.986,0.299,0.87,0.272,0.86,0.261,0.871,0.269,0.857,0.263,0.86,0.23,0.908,0.272,0.905,0.23,0.908,0.227,0.911,0.773,0.896,0.77,0.911,0.77,0.698,0.984,0.662,0.987,0.662,0.984,0.784,0.916,0.817,0.915,0.818,0.916,0.857,0.227 +,0.905,0.269,0.99,0.762,0.959,0.76,0.991,0.76,0.963,0.292,0.92,0.293,0.919,0.292,0.046,0.909,0.033,0.907,0.046,0.907,0.99,0.868,0.959,0.866,0.99,0.866,0.667,0.991,0.698,0.99,0.698,0.991,0.993,0.172,0.991,0.173,0.991,0.172,0.992,0.072,0.961,0.073,0.961,0.072,0.982,0.647,0.993,0.648,0.982,0.648 +,0.441,0.985,0.442,0.986,0.441,0.986,0.99,0.296,0.992,0.298,0.989,0.298,0.44,0.985,0.439,0.986,0.439,0.985,0.981,0.381,0.992,0.382,0.981,0.382,0.44,0.986,0.44,0.986,0.442,0.986,0.442,0.986,0.441,0.986,0.439,0.986,0.439,0.986,0.979,0.433,0.99,0.433,0.99,0.433,0.982,0.649,0.993,0.649,0.993,0.649 +,0.982,0.649,0.993,0.649,0.99,0.434,0.979,0.435,0.979,0.434,0.992,0.38,0.981,0.381,0.981,0.38,0.992,0.381,0.981,0.381,0.99,0.863,0.959,0.862,0.99,0.862,0.961,0.066,0.992,0.064,0.992,0.066,0.992,0.605,0.991,0.606,0.991,0.605,0.992,0.068,0.961,0.069,0.961,0.068,0.982,0.654,0.993,0.655,0.982,0.655 +,0.991,0.203,0.992,0.204,0.991,0.204,0.989,0.614,0.992,0.615,0.988,0.615,0.989,0.203,0.989,0.204,0.989,0.203,0.981,0.39,0.992,0.391,0.981,0.391,0.989,0.205,0.989,0.204,0.992,0.204,0.991,0.204,0.991,0.205,0.989,0.204,0.989,0.204,0.979,0.499,0.99,0.499,0.99,0.499,0.982,0.656,0.993,0.655,0.993,0.656 +,0.982,0.655,0.993,0.655,0.99,0.501,0.979,0.501,0.979,0.501,0.992,0.389,0.981,0.39,0.981,0.389,0.992,0.39,0.981,0.39,0.991,0.444,0.96,0.443,0.991,0.443,0.961,0.077,0.992,0.076,0.992,0.077,0.992,0.609,0.991,0.61,0.991,0.609,0.992,0.11,0.961,0.111,0.961,0.11,0.983,0.395,0.994,0.396,0.983,0.396 +,0.027,0.987,0.028,0.988,0.027,0.988,0.989,0.207,0.992,0.209,0.989,0.209,0.025,0.987,0.025,0.988,0.025,0.987,0.981,0.386,0.992,0.386,0.981,0.386,0.025,0.989,0.025,0.988,0.028,0.988,0.027,0.989,0.027,0.989,0.025,0.989,0.025,0.988,0.979,0.491,0.99,0.491,0.99,0.491,0.983,0.397,0.994,0.397,0.994,0.397 +,0.983,0.397,0.994,0.397,0.99,0.493,0.979,0.493,0.979,0.493,0.992,0.385,0.981,0.385,0.981,0.385,0.992,0.385,0.981,0.385,0.99,0.772,0.959,0.77,0.99,0.77,0.961,0.081,0.992,0.08,0.992,0.081,0.991,0.601,0.99,0.602,0.99,0.601,0.992,0.106,0.961,0.107,0.961,0.106,0.982,0.659,0.993,0.659,0.982,0.659 +,0.989,0.962,0.99,0.963,0.989,0.963,0.989,0.515,0.991,0.516,0.988,0.516,0.987,0.962,0.987,0.963,0.987,0.962,0.981,0.776,0.992,0.777,0.981,0.777,0.987,0.964,0.987,0.963,0.989,0.964,0.989,0.964,0.989,0.964,0.987,0.964,0.987,0.964,0.979,0.505,0.99,0.504,0.99,0.505,0.982,0.66,0.993,0.66,0.993,0.66 +,0.982,0.66,0.993,0.66,0.99,0.506,0.979,0.506,0.979,0.506,0.992,0.776,0.981,0.776,0.981,0.776,0.992,0.776,0.981,0.776,0.817,0.296,0.846,0.293,0.846,0.296,0.338,0.83,0.308,0.82,0.338,0.82,0.981,0.237,0.991,0.235,0.991,0.237,0.991,0.284,0.981,0.287,0.981,0.284,0.982,0.925,0.952,0.927,0.952,0.925 +,0.962,0.357,0.982,0.359,0.962,0.359,0.988,0.886,0.968,0.887,0.968,0.886,0.992,0.479,0.99,0.48,0.99,0.479,0.001,0.993,0.022,0.992,0.022,0.993,0.994,0.854,0.986,0.853,0.994,0.853,0.917,0.634,0.918,0.635,0.917,0.635,0.696,0.948,0.699,0.949,0.694,0.949,0.915,0.634,0.914,0.635,0.914,0.634,0.994,0.845 +,0.986,0.844,0.994,0.844,0.915,0.635,0.915,0.635,0.918,0.635,0.918,0.635,0.917,0.635,0.914,0.635,0.914,0.635,0.943,0.033,0.936,0.033,0.936,0.033,0.392,0.831,0.399,0.831,0.392,0.831,0.994,0.853,0.986,0.853,0.943,0.03,0.936,0.03,0.943,0.03,0.41,0.831,0.402,0.831,0.41,0.831,0.986,0.846,0.994,0.846 +,0.936,0.03,0.961,0.475,0.982,0.477,0.961,0.477,0.993,0.749,0.972,0.75,0.972,0.749,0.028,0.992,0.026,0.993,0.026,0.992,0.973,0.318,0.994,0.317,0.994,0.318,0.995,0.345,0.987,0.344,0.995,0.344,0.342,0.917,0.343,0.918,0.342,0.918,0.605,0.937,0.609,0.939,0.604,0.939,0.339,0.917,0.338,0.918,0.338,0.917 +,0.994,0.841,0.986,0.84,0.994,0.84,0.339,0.918,0.342,0.919,0.339,0.919,0.343,0.919,0.342,0.919,0.339,0.919,0.338,0.919,0.989,0.332,0.981,0.333,0.981,0.332,0.444,0.569,0.451,0.569,0.444,0.569,0.995,0.344,0.987,0.344,0.981,0.33,0.989,0.329,0.989,0.33,0.42,0.831,0.412,0.831,0.42,0.831,0.986,0.841 +,0.994,0.841,0.961,0.47,0.982,0.472,0.961,0.472,0.991,0.269,0.97,0.27,0.97,0.269,0.699,0.944,0.696,0.945,0.696,0.944,0.973,0.314,0.994,0.313,0.994,0.314,0.994,0.85,0.986,0.849,0.994,0.849,0.698,0.952,0.699,0.953,0.698,0.953,0.915,0.638,0.918,0.64,0.914,0.64,0.696,0.952,0.694,0.953,0.694,0.952 +,0.994,0.858,0.986,0.857,0.994,0.857,0.696,0.954,0.696,0.953,0.699,0.953,0.698,0.954,0.698,0.954,0.695,0.954,0.695,0.953,0.266,0.971,0.259,0.972,0.259,0.971,0.433,0.831,0.44,0.831,0.433,0.831,0.994,0.849,0.986,0.849,0.259,0.969,0.266,0.968,0.266,0.969,0.43,0.831,0.423,0.831,0.43,0.831,0.986,0.858 +,0.994,0.858,0.962,0.351,0.982,0.354,0.962,0.354,0.993,0.741,0.972,0.742,0.972,0.741,0.987,0.479,0.985,0.48,0.985,0.479,0.972,0.746,0.993,0.745,0.993,0.746,0.994,0.837,0.986,0.836,0.994,0.836,0.917,0.647,0.918,0.648,0.917,0.648,0.915,0.643,0.918,0.644,0.914,0.644,0.915,0.647,0.914,0.648,0.914,0.647 +,0.994,0.833,0.986,0.832,0.994,0.832,0.915,0.648,0.917,0.649,0.915,0.649,0.918,0.649,0.918,0.649,0.914,0.649,0.914,0.649,0.902,0.586,0.909,0.586,0.902,0.586,0.45,0.831,0.443,0.831,0.443,0.831,0.994,0.836,0.986,0.836,0.909,0.584,0.902,0.583,0.909,0.583,0.46,0.831,0.453,0.831,0.46,0.831,0.986,0.833 +,0.994,0.833,0.902,0.584,0.45,0.551,0.55,0.551,0.905,0.704,0.896,0.698,0.609,0.542,0.544,0.542,0.93,0.619,0.938,0.644,0.93,0.641,0.934,0.098,0.838,0.091,0.939,0.091,0.778,0.632,0.785,0.74,0.779,0.74,0.444,0.506,0.987,0.131,0.989,0.132,0.987,0.132,0.739,0.994,0.702,0.993,0.739,0.993,0.788,0.979 +,0.837,0.982,0.788,0.982,0.624,0.994,0.661,0.995,0.624,0.995,0.621,0.934,0.618,0.935,0.618,0.934,0.94,0.211,0.943,0.212,0.94,0.212,0.983,0.993,0.946,0.992,0.983,0.992,0.935,0.178,0.984,0.18,0.935,0.18,0.866,0.993,0.903,0.994,0.866,0.994,0.83,0.985,0.828,0.985,0.828,0.985,0.655,0.838,0.658,0.838 +,0.655,0.838,0.859,0.994,0.822,0.993,0.859,0.993,0.935,0.849,0.984,0.852,0.935,0.852,0.946,0.989,0.983,0.99,0.946,0.99,0.981,0.28,0.978,0.281,0.978,0.28,0.688,0.962,0.691,0.963,0.688,0.963,0.621,0.995,0.584,0.994,0.621,0.994,0.935,0.855,0.984,0.857,0.935,0.857,0.742,0.993,0.779,0.994,0.742,0.994 +,0.926,0.211,0.923,0.212,0.923,0.211,0.946,0.211,0.948,0.212,0.946,0.212,0.825,0.986,0.788,0.985,0.825,0.985,0.789,0.971,0.838,0.968,0.838,0.971,0.782,0.993,0.819,0.994,0.782,0.994,0.937,0.211,0.934,0.212,0.934,0.211,0.957,0.211,0.96,0.212,0.957,0.212,0.943,0.994,0.906,0.993,0.943,0.993,0.936,0.041 +,0.984,0.044,0.936,0.044,0.27,0.995,0.307,0.995,0.27,0.995,0.836,0.985,0.833,0.985,0.833,0.985,0.951,0.211,0.954,0.212,0.951,0.212,0.401,0.996,0.364,0.996,0.401,0.996,0.935,0.843,0.984,0.846,0.935,0.846,0.31,0.995,0.347,0.995,0.31,0.995,0.615,0.934,0.612,0.935,0.612,0.934,0.928,0.211,0.931,0.212 +,0.928,0.212,0.656,0.739,0.619,0.738,0.656,0.738,0.935,0.832,0.984,0.835,0.935,0.835,0.939,0.28,0.976,0.281,0.939,0.281,0.987,0.28,0.984,0.281,0.984,0.28,0.694,0.962,0.697,0.963,0.694,0.963,0.992,0.038,0.955,0.037,0.992,0.037,0.935,0.837,0.984,0.84,0.935,0.84,0.094,0.993,0.131,0.994,0.094,0.994 +,0.472,0.831,0.469,0.831,0.469,0.831,0.463,0.831,0.466,0.831,0.463,0.831,0.181,0.996,0.144,0.995,0.181,0.995,0.936,0.047,0.984,0.049,0.936,0.049,0.659,0.738,0.696,0.739,0.659,0.739,0.652,0.838,0.649,0.838,0.649,0.838,0.817,0.902,0.815,0.904,0.815,0.902,0.817,0.904,0.815,0.905,0.989,0.892,0.991,0.89 +,0.991,0.892,0.7,0.936,0.698,0.934,0.7,0.934,0.698,0.936,0.696,0.934,0.991,0.145,0.993,0.144,0.993,0.145,0.697,0.894,0.699,0.893,0.699,0.894,0.697,0.893,0.699,0.891,0.697,0.891,0.699,0.89,0.697,0.89,0.699,0.888,0.989,0.985,0.991,0.983,0.991,0.985,0.696,0.941,0.698,0.939,0.698,0.941,0.7,0.941 +,0.99,0.691,0.992,0.69,0.992,0.691,0.788,0.142,0.787,0.143,0.781,0.14,0.817,0.899,0.815,0.9,0.815,0.899,0.817,0.9,0.02,0.956,0.018,0.955,0.019,0.955,0.31,0.812,0.307,0.81,0.31,0.81,0.026,0.955,0.028,0.954,0.027,0.956,0.022,0.948,0.024,0.947,0.023,0.948,0.023,0.956,0.025,0.957,0.024,0.958 +,0.025,0.949,0.027,0.949,0.026,0.95,0.019,0.95,0.017,0.951,0.018,0.949,0.022,0.956,0.02,0.957,0.026,0.953,0.028,0.951,0.017,0.953,0.019,0.953,0.02,0.948,0.022,0.947,0.025,0.956,0.025,0.948,0.019,0.952,0.022,0.958,0.026,0.952,0.02,0.949,0.332,0.86,0.335,0.862,0.332,0.862,0.31,0.816,0.307,0.814 +,0.31,0.814,0.332,0.858,0.335,0.86,0.47,0.809,0.472,0.811,0.47,0.811,0.989,0.562,0.991,0.564,0.989,0.564,0.817,0.911,0.819,0.908,0.819,0.911,0.916,0.623,0.914,0.626,0.914,0.623,0.815,0.911,0.817,0.908,0.918,0.623,0.916,0.626,0.988,0.628,0.991,0.63,0.988,0.63,0.989,0.577,0.991,0.579,0.989,0.579 +,0.332,0.865,0.335,0.867,0.332,0.867,0.307,0.808,0.31,0.808,0.335,0.865,0.307,0.812,0.553,0.897,0.551,0.899,0.551,0.897,0.553,0.899,0.551,0.9,0.989,0.704,0.991,0.703,0.991,0.704,0.7,0.931,0.698,0.929,0.7,0.929,0.698,0.931,0.696,0.929,0.99,0.932,0.992,0.93,0.992,0.932,0.815,0.896,0.817,0.894 +,0.817,0.896,0.815,0.894,0.817,0.893,0.815,0.893,0.817,0.891,0.815,0.891,0.817,0.89,0.993,0.323,0.991,0.321,0.993,0.321,0.696,0.924,0.698,0.926,0.696,0.926,0.698,0.924,0.7,0.926,0.991,0.7,0.989,0.698,0.991,0.698,0.123,0.897,0.122,0.898,0.116,0.895,0.553,0.894,0.551,0.896,0.551,0.894,0.553,0.896 +,0.962,0.75,0.96,0.749,0.961,0.749,0.697,0.881,0.699,0.883,0.697,0.883,0.968,0.749,0.97,0.748,0.969,0.75,0.964,0.742,0.965,0.741,0.965,0.742,0.965,0.751,0.967,0.751,0.965,0.752,0.967,0.743,0.969,0.743,0.968,0.744,0.961,0.744,0.959,0.745,0.96,0.743,0.964,0.75,0.962,0.751,0.968,0.747,0.97,0.745 +,0.959,0.747,0.961,0.747,0.962,0.742,0.963,0.741,0.967,0.75,0.967,0.742,0.961,0.746,0.963,0.752,0.968,0.746,0.962,0.743,0.815,0.869,0.817,0.871,0.815,0.871,0.697,0.877,0.699,0.879,0.697,0.879,0.815,0.867,0.817,0.869,0.989,0.291,0.992,0.293,0.989,0.293,0.989,0.416,0.991,0.418,0.989,0.418,0.717,0.148 +,0.714,0.146,0.717,0.146,0.384,0.907,0.381,0.909,0.381,0.907,0.717,0.15,0.714,0.148,0.386,0.907,0.384,0.909,0.989,0.977,0.991,0.98,0.989,0.98,0.989,0.372,0.991,0.374,0.989,0.374,0.815,0.873,0.817,0.875,0.815,0.875,0.699,0.885,0.697,0.885,0.817,0.873,0.699,0.881,0.992,0.787,0.995,0.788,0.992,0.788 +,0.941,0.554,0.944,0.555,0.941,0.555,0.996,0.99,0.993,0.989,0.996,0.989,0.993,0.99,0.991,0.989,0.991,0.99,0.989,0.989,0.989,0.99,0.986,0.989,0.995,0.087,0.993,0.085,0.995,0.085,0.993,0.087,0.99,0.085,0.99,0.087,0.987,0.085,0.992,0.733,0.989,0.732,0.992,0.732,0.977,0.787,0.98,0.788,0.977,0.788 +,0.98,0.787,0.982,0.788,0.982,0.787,0.985,0.788,0.985,0.787,0.987,0.788,0.012,0.948,0.013,0.95,0.012,0.958,0.987,0.787,0.99,0.788,0.99,0.787,0.612,0.295,0.61,0.298,0.61,0.296,0.354,0.997,0.358,0.995,0.358,0.997,0.614,0.286,0.613,0.283,0.615,0.285,0.602,0.288,0.601,0.285,0.603,0.286,0.615,0.291 +,0.617,0.288,0.617,0.291,0.604,0.285,0.606,0.281,0.607,0.284,0.603,0.293,0.603,0.297,0.601,0.294,0.614,0.293,0.613,0.297,0.612,0.285,0.61,0.281,0.607,0.298,0.607,0.296,0.599,0.291,0.599,0.288,0.615,0.288,0.603,0.283,0.605,0.295,0.616,0.294,0.609,0.284,0.602,0.291,0.987,0.12,0.99,0.118,0.99,0.12 +,0.388,0.866,0.39,0.869,0.388,0.869,0.39,0.882,0.388,0.878,0.39,0.878,0.989,0.914,0.992,0.912,0.992,0.914,0.987,0.792,0.991,0.791,0.991,0.792,0.985,0.914,0.989,0.912,0.984,0.792,0.987,0.791,0.982,0.914,0.985,0.912,0.981,0.792,0.984,0.791,0.979,0.914,0.982,0.912,0.977,0.792,0.981,0.791,0.994,0.12 +,0.997,0.118,0.997,0.12,0.361,0.995,0.361,0.997,0.994,0.118,0.351,0.997,0.354,0.995,0.139,0.991,0.141,0.992,0.139,0.992,0.264,0.991,0.267,0.992,0.264,0.992,0.997,0.046,0.995,0.045,0.997,0.045,0.995,0.046,0.992,0.045,0.992,0.046,0.99,0.045,0.99,0.046,0.987,0.045,0.863,0.828,0.86,0.827,0.863,0.827 +,0.86,0.828,0.857,0.827,0.857,0.828,0.855,0.827,0.993,0.092,0.99,0.091,0.993,0.091,0.985,0.139,0.988,0.141,0.985,0.141,0.988,0.139,0.99,0.141,0.99,0.139,0.993,0.141,0.993,0.139,0.995,0.141,0.042,0.893,0.044,0.895,0.04,0.905,0.134,0.991,0.136,0.992,0.134,0.992,0.136,0.991,0.042,0.926,0.04,0.929 +,0.04,0.927,0.99,0.128,0.994,0.127,0.994,0.128,0.044,0.917,0.043,0.914,0.045,0.916,0.032,0.919,0.031,0.916,0.032,0.917,0.045,0.922,0.047,0.919,0.047,0.922,0.034,0.915,0.036,0.912,0.037,0.914,0.033,0.924,0.033,0.928,0.031,0.925,0.044,0.924,0.043,0.928,0.042,0.915,0.04,0.912,0.037,0.929,0.037,0.927 +,0.029,0.922,0.029,0.919,0.045,0.919,0.033,0.914,0.035,0.926,0.046,0.925,0.039,0.914,0.032,0.922,0.987,0.061,0.99,0.059,0.99,0.061,0.388,0.885,0.39,0.888,0.388,0.888,0.948,0.817,0.946,0.813,0.948,0.813,0.99,0.592,0.993,0.591,0.993,0.592,0.943,0.773,0.946,0.771,0.946,0.773,0.986,0.592,0.99,0.591 +,0.939,0.773,0.943,0.771,0.983,0.592,0.986,0.591,0.936,0.773,0.939,0.771,0.98,0.592,0.983,0.591,0.933,0.773,0.936,0.771,0.994,0.061,0.997,0.059,0.997,0.061,0.997,0.127,0.997,0.128,0.994,0.059,0.987,0.128,0.99,0.127,0.264,0.974,0.267,0.976,0.264,0.976,0.946,0.82,0.949,0.821,0.946,0.821,0.997,0.042 +,0.995,0.041,0.997,0.041,0.995,0.042,0.992,0.041,0.992,0.042,0.99,0.041,0.99,0.042,0.987,0.041,0.943,0.037,0.941,0.036,0.943,0.036,0.941,0.037,0.938,0.036,0.938,0.037,0.936,0.036,0.991,0.639,0.988,0.638,0.991,0.638,0.987,0.162,0.99,0.163,0.987,0.163,0.99,0.162,0.992,0.163,0.992,0.162,0.995,0.163 +,0.995,0.162,0.997,0.163,0.953,0.466,0.956,0.466,0.957,0.475,0.259,0.974,0.262,0.976,0.259,0.976,0.262,0.974,0.935,0.197,0.933,0.2,0.933,0.198,0.99,0.124,0.994,0.123,0.994,0.124,0.937,0.188,0.936,0.185,0.939,0.187,0.925,0.191,0.924,0.187,0.926,0.188,0.938,0.193,0.94,0.19,0.94,0.193,0.928,0.187 +,0.93,0.184,0.93,0.186,0.926,0.195,0.927,0.199,0.924,0.196,0.937,0.195,0.937,0.199,0.935,0.187,0.933,0.184,0.93,0.2,0.93,0.198,0.923,0.193,0.923,0.19,0.938,0.191,0.926,0.185,0.928,0.197,0.939,0.196,0.933,0.186,0.925,0.193,0.987,0.115,0.99,0.114,0.99,0.115,0.167,0.943,0.168,0.946,0.167,0.946 +,0.39,0.875,0.388,0.872,0.39,0.872,0.578,0.991,0.581,0.99,0.581,0.991,0.989,0.439,0.992,0.438,0.992,0.439,0.575,0.991,0.578,0.99,0.985,0.439,0.989,0.438,0.571,0.991,0.575,0.99,0.982,0.439,0.985,0.438,0.568,0.991,0.571,0.99,0.979,0.439,0.982,0.438,0.994,0.115,0.997,0.114,0.997,0.115,0.997,0.123 +,0.997,0.124,0.994,0.114,0.987,0.124,0.99,0.123,0.991,0.011,0.993,0.013,0.991,0.013,0.993,0.011,0.995,0.013,0.995,0.358,0.992,0.357,0.995,0.357,0.992,0.358,0.99,0.357,0.99,0.358,0.988,0.357,0.988,0.358,0.985,0.357,0.994,0.878,0.992,0.876,0.994,0.876,0.992,0.878,0.99,0.876,0.99,0.878,0.987,0.876 +,0.987,0.878,0.985,0.876,0.985,0.453,0.988,0.455,0.985,0.455,0.988,0.453,0.99,0.455,0.99,0.453,0.992,0.455,0.992,0.453,0.994,0.455,0.448,0.554,0.45,0.554,0.446,0.565,0.986,0.011,0.988,0.013,0.986,0.013,0.988,0.011,0.943,0.798,0.942,0.795,0.945,0.797,0.98,0.723,0.983,0.72,0.983,0.723,0.932,0.801 +,0.931,0.797,0.933,0.798,0.937,0.807,0.939,0.809,0.936,0.809,0.935,0.797,0.936,0.794,0.937,0.796,0.933,0.805,0.933,0.808,0.931,0.806,0.944,0.803,0.944,0.806,0.943,0.805,0.941,0.797,0.939,0.794,0.932,0.803,0.93,0.8,0.944,0.801,0.946,0.8,0.941,0.807,0.939,0.807,0.933,0.795,0.935,0.807,0.946,0.803 +,0.939,0.796,0.93,0.803,0.942,0.808,0.978,0.094,0.981,0.091,0.981,0.094,0.974,0.723,0.977,0.72,0.977,0.723,0.975,0.094,0.978,0.091,0.983,0.7,0.986,0.698,0.986,0.7,0.983,0.706,0.986,0.703,0.986,0.706,0.98,0.7,0.983,0.698,0.98,0.706,0.983,0.703,0.977,0.7,0.98,0.698,0.977,0.706,0.98,0.703 +,0.974,0.7,0.977,0.698,0.974,0.706,0.977,0.703,0.984,0.094,0.987,0.091,0.987,0.094,0.986,0.72,0.986,0.723,0.984,0.091,0.98,0.72,0.99,0.936,0.992,0.937,0.99,0.937,0.992,0.936,0.994,0.937,0.994,0.927,0.991,0.925,0.994,0.925,0.991,0.927,0.989,0.925,0.989,0.927,0.987,0.925,0.987,0.927,0.984,0.925 +,0.994,0.942,0.992,0.94,0.994,0.94,0.992,0.942,0.99,0.94,0.99,0.942,0.987,0.94,0.987,0.942,0.985,0.94,0.352,0.99,0.354,0.992,0.352,0.992,0.354,0.99,0.356,0.992,0.356,0.99,0.359,0.992,0.359,0.99,0.361,0.992,0.964,0.727,0.966,0.727,0.962,0.737,0.985,0.936,0.987,0.937,0.985,0.937,0.987,0.936 +,0.644,0.828,0.645,0.825,0.646,0.828,0.98,0.906,0.983,0.903,0.983,0.906,0.633,0.826,0.634,0.823,0.635,0.825,0.635,0.834,0.637,0.837,0.634,0.836,0.637,0.824,0.64,0.822,0.639,0.824,0.632,0.831,0.631,0.834,0.63,0.831,0.643,0.833,0.643,0.836,0.641,0.834,0.643,0.826,0.642,0.823,0.632,0.828,0.631,0.825 +,0.644,0.831,0.646,0.831,0.639,0.835,0.637,0.835,0.636,0.822,0.633,0.833,0.645,0.834,0.641,0.825,0.63,0.828,0.64,0.837,0.351,0.986,0.354,0.983,0.354,0.986,0.974,0.906,0.977,0.903,0.977,0.906,0.348,0.986,0.351,0.983,0.983,0.956,0.986,0.954,0.986,0.956,0.983,0.414,0.986,0.411,0.986,0.414,0.98,0.956 +,0.983,0.954,0.98,0.414,0.983,0.411,0.976,0.956,0.98,0.954,0.977,0.414,0.98,0.411,0.973,0.956,0.976,0.954,0.974,0.414,0.977,0.411,0.357,0.986,0.36,0.983,0.36,0.986,0.986,0.903,0.986,0.906,0.357,0.983,0.98,0.903,0.99,0.764,0.992,0.766,0.99,0.766,0.992,0.764,0.995,0.766,0.994,0.471,0.992,0.47 +,0.994,0.47,0.992,0.471,0.99,0.47,0.99,0.471,0.987,0.47,0.987,0.471,0.985,0.47,0.995,0.018,0.993,0.016,0.995,0.016,0.993,0.018,0.991,0.016,0.991,0.018,0.988,0.016,0.988,0.018,0.986,0.016,0.986,0.001,0.988,0.003,0.986,0.003,0.988,0.001,0.991,0.003,0.991,0.001,0.993,0.003,0.993,0.001,0.995,0.003 +,0.964,0.698,0.966,0.698,0.962,0.708,0.986,0.764,0.988,0.766,0.986,0.766,0.988,0.764,0.947,0.704,0.947,0.701,0.949,0.704,0.98,0.9,0.983,0.898,0.983,0.9,0.936,0.702,0.936,0.699,0.937,0.701,0.937,0.71,0.939,0.713,0.936,0.712,0.939,0.7,0.942,0.698,0.942,0.7,0.935,0.707,0.934,0.71,0.933,0.707 +,0.946,0.709,0.945,0.712,0.944,0.71,0.946,0.702,0.945,0.699,0.935,0.704,0.934,0.701,0.947,0.707,0.949,0.707,0.942,0.711,0.94,0.711,0.939,0.698,0.936,0.709,0.947,0.71,0.944,0.701,0.933,0.704,0.942,0.713,0.977,0.734,0.98,0.731,0.98,0.734,0.974,0.9,0.977,0.898,0.977,0.9,0.974,0.734,0.977,0.731 +,0.982,0.633,0.986,0.63,0.986,0.633,0.982,0.622,0.986,0.619,0.986,0.622,0.979,0.633,0.982,0.63,0.979,0.622,0.982,0.619,0.976,0.633,0.979,0.63,0.976,0.622,0.979,0.619,0.973,0.633,0.976,0.63,0.973,0.622,0.976,0.619,0.983,0.734,0.986,0.731,0.986,0.734,0.986,0.898,0.986,0.9,0.983,0.731,0.98,0.898 +,0.991,0.178,0.993,0.18,0.991,0.18,0.993,0.178,0.996,0.18,0.995,0.353,0.992,0.351,0.995,0.351,0.992,0.353,0.99,0.351,0.99,0.353,0.988,0.351,0.988,0.353,0.985,0.351,0.995,0.032,0.993,0.03,0.995,0.03,0.993,0.032,0.991,0.03,0.991,0.032,0.988,0.03,0.988,0.032,0.986,0.03,0.985,0.474,0.987,0.476 +,0.985,0.476,0.987,0.474,0.99,0.476,0.99,0.474,0.992,0.476,0.992,0.474,0.994,0.476,0.961,0.629,0.963,0.628,0.963,0.64,0.986,0.178,0.989,0.18,0.986,0.18,0.989,0.178,0.947,0.723,0.947,0.719,0.949,0.722,0.983,0.157,0.986,0.154,0.986,0.157,0.936,0.721,0.936,0.717,0.937,0.719,0.937,0.729,0.939,0.732 +,0.936,0.73,0.939,0.718,0.942,0.716,0.942,0.718,0.935,0.725,0.934,0.728,0.933,0.725,0.946,0.727,0.945,0.73,0.944,0.729,0.946,0.721,0.945,0.717,0.935,0.723,0.934,0.719,0.947,0.725,0.949,0.725,0.942,0.73,0.94,0.73,0.939,0.716,0.936,0.727,0.947,0.728,0.944,0.719,0.933,0.722,0.942,0.732,0.977,0.728 +,0.98,0.725,0.98,0.728,0.976,0.157,0.98,0.154,0.98,0.157,0.974,0.728,0.977,0.725,0.982,0.639,0.986,0.636,0.986,0.639,0.982,0.627,0.986,0.625,0.986,0.627,0.979,0.639,0.982,0.636,0.979,0.627,0.982,0.625,0.976,0.639,0.979,0.636,0.976,0.627,0.979,0.625,0.973,0.639,0.976,0.636,0.973,0.627,0.976,0.625 +,0.983,0.728,0.986,0.725,0.986,0.728,0.989,0.154,0.989,0.157,0.983,0.725,0.983,0.154,0.144,0.977,0.256,0.975,0.256,0.977,0.781,0.99,0.702,0.989,0.781,0.989,0.992,0.817,0.991,0.818,0.991,0.817,0.784,0.989,0.863,0.99,0.784,0.99,0.993,0.668,0.982,0.669,0.982,0.668,0.114,0.989,0.114,0.988,0.115,0.988 +,0.989,0.948,0.989,0.947,0.99,0.949,0.114,0.987,0.114,0.986,0.115,0.987,0.993,0.663,0.982,0.664,0.982,0.663,0.115,0.988,0.115,0.989,0.115,0.989,0.115,0.987,0.115,0.986,0.115,0.986,0.99,0.485,0.979,0.485,0.99,0.485,0.993,0.668,0.982,0.667,0.993,0.667,0.982,0.668,0.979,0.483,0.99,0.483,0.99,0.483 +,0.982,0.664,0.993,0.664,0.993,0.664,0.982,0.664,0.584,0.975,0.696,0.973,0.696,0.975,0.111,0.99,0.032,0.989,0.111,0.989,0.992,0.674,0.992,0.675,0.992,0.674,0.702,0.985,0.781,0.986,0.702,0.986,0.995,0.362,0.984,0.363,0.984,0.362,0.99,0.723,0.989,0.722,0.99,0.722,0.99,0.223,0.99,0.221,0.991,0.224 +,0.989,0.721,0.99,0.72,0.99,0.721,0.995,0.366,0.984,0.366,0.984,0.366,0.99,0.721,0.99,0.723,0.99,0.723,0.99,0.722,0.99,0.72,0.99,0.72,0.699,0.959,0.688,0.959,0.699,0.959,0.995,0.362,0.984,0.362,0.995,0.362,0.984,0.362,0.688,0.957,0.699,0.957,0.688,0.957,0.984,0.367,0.995,0.367,0.984,0.367 +,0.995,0.367,0.832,0.088,0.944,0.086,0.944,0.088,0.99,0.102,0.911,0.101,0.99,0.101,0.992,0.678,0.992,0.68,0.992,0.678,0.484,0.989,0.563,0.991,0.484,0.991,0.996,0.308,0.985,0.309,0.985,0.308,0.989,0.757,0.989,0.756,0.99,0.756,0.989,0.728,0.989,0.727,0.99,0.729,0.989,0.755,0.989,0.754,0.99,0.755 +,0.995,0.447,0.984,0.447,0.984,0.447,0.99,0.756,0.99,0.757,0.99,0.757,0.99,0.755,0.99,0.754,0.99,0.754,0.99,0.512,0.979,0.511,0.99,0.511,0.996,0.308,0.985,0.308,0.996,0.308,0.985,0.308,0.979,0.509,0.99,0.51,0.979,0.51,0.984,0.448,0.995,0.448,0.984,0.448,0.995,0.448,0.702,0.976,0.814,0.974 +,0.814,0.976,0.663,0.991,0.584,0.99,0.663,0.99,0.992,0.882,0.991,0.883,0.991,0.882,0.27,0.99,0.349,0.992,0.27,0.992,0.579,0.995,0.568,0.995,0.568,0.995,0.579,0.987,0.579,0.986,0.58,0.986,0.989,0.956,0.989,0.955,0.99,0.957,0.579,0.984,0.579,0.984,0.58,0.984,0.994,0.302,0.983,0.302,0.983,0.302 +,0.58,0.984,0.58,0.987,0.58,0.986,0.58,0.986,0.58,0.984,0.58,0.984,0.99,0.217,0.979,0.217,0.99,0.217,0.579,0.994,0.568,0.994,0.579,0.994,0.568,0.994,0.979,0.215,0.99,0.215,0.979,0.215,0.983,0.303,0.994,0.303,0.983,0.303,0.994,0.303,0.447,0.965,0.48,0.969,0.444,0.969,0.977,0.654,0.93,0.658 +,0.93,0.654,0.941,0.69,0.987,0.693,0.941,0.693,0.942,0.99,0.866,0.989,0.943,0.989,0.951,0.931,0.972,0.933,0.876,0.933,0.93,0.82,0.892,0.821,0.938,0.813,0.364,0.955,0.427,0.962,0.364,0.962,0.432,0.955,0.432,0.962,0.841,0.943,0.866,0.936,0.867,0.937,0.086,0.217,0.097,0.161,0.097,0.217,0.12,0.22 +,0.017,0.279,0.007,0.218,0.043,0.251,0.12,0.258,0.12,0.254,0.128,0.232,0.001,0.301,0.002,0.241,0.671,0.459,0.694,0.452,0.687,0.459,0.612,0.452,0.618,0.452,0.615,0.459,0.694,0.542,0.687,0.536,0.864,0.222,0.941,0.223,0.864,0.223,0.66,0.542,0.656,0.536,0.098,0.299,0.017,0.288,0.119,0.29,0.022,0.301 +,0.025,0.298,0.1,0.303,0.119,0.304,0.127,0.298,0.127,0.304,0.19,0.299,0.19,0.304,0.199,0.252,0.192,0.232,0.2,0.214,0.191,0.216,0.288,0.215,0.2,0.213,0.289,0.214,0.199,0.194,0.192,0.161,0.199,0.161,0.128,0.156,0.128,0.161,0.192,0.156,0.199,0.156,0.291,0.156,0.291,0.162,0.309,0.156,0.309,0.162 +,0.316,0.162,0.316,0.156,0.315,0.2,0.363,0.156,0.363,0.162,0.417,0.156,0.417,0.161,0.001,0.007,0.008,0.037,0.002,0.042,0.008,0.001,0.001,0.007,0.001,0.001,0.008,0.008,0.101,0.002,0.101,0.009,0.11,0.007,0.11,0.002,0.294,0.202,0.293,0.249,0.288,0.252,0.327,0.252,0.351,0.249,0.355,0.23,0.355,0.251 +,0.332,0.251,0.332,0.301,0.327,0.301,0.197,0.299,0.197,0.304,0.283,0.305,0.283,0.3,0.327,0.306,0.332,0.306,0.356,0.301,0.356,0.306,0.406,0.301,0.406,0.306,0.001,0.15,0.006,0.145,0.006,0.15,0.002,0.097,0.001,0.144,0.078,0.145,0.078,0.15,0.355,0.202,0.351,0.205,0.355,0.226,0.405,0.23,0.405,0.227 +,0.002,0.073,0.006,0.065,0.002,0.073,0.002,0.069,0.002,0.069,0.021,0.065,0.033,0.04,0.033,0.065,0.1,0.038,0.883,0.212,0.864,0.204,0.864,0.184,0.054,0.075,0.078,0.089,0.087,0.083,0.1,0.075,0.159,0.083,0.11,0.078,0.186,0.079,0.1,0.04,0.087,0.145,0.087,0.15,0.159,0.145,0.159,0.151,0.171,0.136 +,0.171,0.105,0.171,0.102,0.171,0.082,0.2,0.072,0.2,0.077,0.25,0.082,0.262,0.077,0.25,0.103,0.253,0.106,0.262,0.082,0.262,0.151,0.252,0.137,0.171,0.151,0.252,0.151,0.295,0.078,0.309,0.082,0.2,0.005,0.186,0.01,0.186,0.005,0.2,0.01,0.262,0.005,0.262,0.01,0.295,0.005,0.295,0.01,0.3,0.005 +,0.3,0.064,0.295,0.072,0.323,0.068,0.379,0.064,0.323,0.137,0.316,0.151,0.309,0.151,0.316,0.147,0.393,0.148,0.386,0.068,0.393,0.152,0.41,0.138,0.42,0.146,0.42,0.08,0.39,0.059,0.411,0.086,0.482,0.147,0.42,0.152,0.39,0.011,0.42,0.011,0.483,0.006,0.483,0.011,0.42,0.005,0.38,0.005,0.39,0.005 +,0.482,0.152,0.49,0.147,0.489,0.152,0.544,0.147,0.49,0.1,0.482,0.08,0.49,0.062,0.49,0.011,0.49,0.006,0.545,0.006,0.545,0.011,0.544,0.152,0.55,0.147,0.55,0.152,0.607,0.147,0.544,0.098,0.551,0.011,0.551,0.006,0.607,0.006,0.607,0.012,0.551,0.047,0.545,0.063,0.55,0.097,0.607,0.047,0.708,0.315 +,0.703,0.309,0.708,0.309,0.711,0.309,0.752,0.309,0.752,0.358,0.71,0.364,0.779,0.365,0.785,0.358,0.785,0.443,0.778,0.443,0.708,0.395,0.71,0.442,0.703,0.435,0.703,0.394,0.746,0.451,0.744,0.524,0.744,0.451,0.721,0.552,0.721,0.524,0.721,0.451,0.703,0.498,0.785,0.451,0.777,0.553,0.785,0.553,0.785,0.623 +,0.776,0.623,0.748,0.632,0.749,0.623,0.703,0.506,0.703,0.599,0.721,0.623,0.703,0.616,0.703,0.623,0.721,0.632,0.703,0.667,0.748,0.735,0.71,0.736,0.703,0.719,0.703,0.726,0.703,0.816,0.709,0.81,0.709,0.825,0.702,0.825,0.751,0.812,0.783,0.829,0.776,0.813,0.783,0.814,0.785,0.632,0.001,0.484,0.009,0.525 +,0.003,0.563,0.075,0.493,0.085,0.486,0.083,0.52,0.074,0.524,0.083,0.551,0.079,0.569,0.017,0.569,0.003,0.57,0.117,0.564,0.117,0.569,0.12,0.522,0.159,0.522,0.12,0.551,0.166,0.496,0.159,0.489,0.165,0.562,0.195,0.565,0.242,0.489,0.242,0.496,0.362,0.484,0.432,0.494,0.362,0.493,0.252,0.491,0.26,0.484 +,0.26,0.493,0.334,0.526,0.362,0.549,0.334,0.549,0.26,0.523,0.26,0.525,0.252,0.491,0.241,0.563,0.205,0.569,0.195,0.569,0.235,0.57,0.251,0.56,0.26,0.549,0.308,0.567,0.37,0.567,0.315,0.567,0.376,0.567,0.432,0.549,0.702,0.867,0.792,0.893,0.702,0.893,0.172,0.91,0.252,0.883,0.252,0.91,0.406,0.664 +,0.586,0.637,0.509,0.664,0.097,0.407,0.043,0.449,0.001,0.407,0.001,0.481,0.043,0.473,0.214,0.473,0.043,0.481,0.097,0.4,0.104,0.405,0.214,0.449,0.166,0.405,0.199,0.405,0.199,0.4,0.22,0.4,0.22,0.475,0.214,0.481,0.22,0.481,0.297,0.475,0.297,0.481,0.311,0.481,0.311,0.409,0.297,0.4,0.316,0.4 +,0.324,0.4,0.387,0.409,0.009,0.359,0.001,0.397,0.001,0.324,0.01,0.395,0.162,0.397,0.001,0.324,0.164,0.359,0.001,0.315,0.009,0.315,0.001,0.324,0.14,0.315,0.162,0.315,0.176,0.322,0.213,0.315,0.218,0.315,0.254,0.321,0.176,0.39,0.255,0.39,0.176,0.397,0.291,0.314,0.274,0.339,0.274,0.374,0.352,0.387 +,0.353,0.396,0.255,0.397,0.352,0.363,0.344,0.374,0.343,0.339,0.299,0.314,0.908,0.483,0.977,0.488,0.908,0.488,0.372,0.313,0.384,0.316,0.384,0.313,0.385,0.356,0.525,0.394,0.525,0.385,0.532,0.387,0.61,0.386,0.525,0.361,0.531,0.311,0.524,0.311,0.524,0.316,0.524,0.319,0.467,0.355,0.467,0.315,0.477,0.32 +,0.476,0.312,0.467,0.312,0.618,0.1,0.751,0.132,0.618,0.133,0.624,0.393,0.623,0.319,0.609,0.31,0.636,0.31,0.7,0.318,0.841,0.954,0.917,0.959,0.841,0.959,0.39,0.41,0.389,0.401,0.397,0.41,0.397,0.401,0.397,0.442,0.39,0.41,0.39,0.41,0.397,0.445,0.389,0.481,0.397,0.477,0.516,0.446,0.516,0.444 +,0.516,0.477,0.459,0.4,0.452,0.4,0.311,0.669,0.001,0.669,0.214,0.637,0.524,0.48,0.516,0.409,0.524,0.4,0.615,0.047,0.433,0.567,0.441,0.567,0.432,0.521,0.607,0.098,0.615,0.147,0.516,0.4,0.615,0.012,0.44,0.485,0.615,0.153,0.607,0.153,0.615,0.098,0.99,0.871,0.992,0.873,0.99,0.873,0.992,0.871 +,0.994,0.873,0.994,0.798,0.992,0.796,0.994,0.796,0.992,0.798,0.989,0.796,0.989,0.798,0.987,0.796,0.987,0.798,0.985,0.796,0.995,0.022,0.993,0.02,0.995,0.02,0.993,0.022,0.991,0.02,0.991,0.022,0.988,0.02,0.988,0.022,0.986,0.02,0.986,0.006,0.988,0.008,0.986,0.008,0.988,0.006,0.991,0.008,0.991,0.006 +,0.993,0.008,0.993,0.006,0.995,0.008,0.964,0.712,0.966,0.712,0.962,0.723,0.985,0.871,0.987,0.873,0.985,0.873,0.987,0.871,0.946,0.739,0.945,0.736,0.947,0.738,0.98,0.893,0.983,0.89,0.983,0.893,0.935,0.741,0.934,0.738,0.936,0.739,0.939,0.748,0.942,0.75,0.939,0.75,0.937,0.737,0.939,0.734,0.94,0.736 +,0.936,0.745,0.936,0.749,0.934,0.747,0.947,0.743,0.947,0.747,0.946,0.745,0.944,0.737,0.942,0.734,0.935,0.743,0.933,0.741,0.947,0.741,0.949,0.741,0.944,0.747,0.942,0.748,0.936,0.736,0.937,0.747,0.949,0.744,0.942,0.736,0.933,0.744,0.945,0.749,0.979,0.324,0.982,0.321,0.982,0.324,0.974,0.893,0.977,0.89 +,0.977,0.893,0.976,0.324,0.979,0.321,0.982,0.616,0.986,0.614,0.986,0.616,0.983,0.717,0.986,0.714,0.986,0.717,0.979,0.616,0.982,0.614,0.98,0.717,0.983,0.714,0.976,0.616,0.979,0.614,0.977,0.717,0.98,0.714,0.973,0.616,0.976,0.614,0.974,0.717,0.977,0.714,0.985,0.324,0.988,0.321,0.988,0.324,0.986,0.89 +,0.986,0.893,0.985,0.321,0.98,0.89,0.99,0.919,0.992,0.921,0.99,0.921,0.992,0.919,0.994,0.921,0.995,0.137,0.992,0.135,0.995,0.135,0.992,0.137,0.99,0.135,0.99,0.137,0.988,0.135,0.988,0.137,0.985,0.135,0.995,0.027,0.993,0.025,0.995,0.025,0.993,0.027,0.991,0.025,0.991,0.027,0.988,0.025,0.988,0.027 +,0.986,0.025,0.985,0.458,0.988,0.459,0.985,0.459,0.988,0.458,0.99,0.459,0.99,0.458,0.992,0.459,0.992,0.458,0.994,0.459,0.963,0.614,0.966,0.614,0.961,0.624,0.985,0.919,0.988,0.921,0.985,0.921,0.988,0.919,0.947,0.759,0.947,0.756,0.949,0.759,0.982,0.608,0.985,0.605,0.985,0.608,0.936,0.757,0.936,0.754 +,0.937,0.756,0.937,0.765,0.939,0.768,0.936,0.767,0.939,0.755,0.942,0.753,0.942,0.755,0.935,0.762,0.934,0.765,0.933,0.762,0.946,0.764,0.945,0.767,0.944,0.765,0.946,0.757,0.945,0.754,0.935,0.759,0.934,0.756,0.947,0.762,0.949,0.762,0.942,0.766,0.94,0.766,0.939,0.753,0.936,0.764,0.947,0.765,0.944,0.756 +,0.933,0.759,0.942,0.768,0.978,0.933,0.981,0.93,0.981,0.933,0.976,0.608,0.979,0.605,0.979,0.608,0.975,0.933,0.978,0.93,0.983,0.711,0.986,0.709,0.986,0.711,0.983,0.419,0.986,0.416,0.986,0.419,0.98,0.711,0.983,0.709,0.98,0.419,0.983,0.416,0.977,0.711,0.98,0.709,0.977,0.419,0.98,0.416,0.974,0.711 +,0.977,0.709,0.974,0.419,0.977,0.416,0.984,0.933,0.987,0.93,0.987,0.933,0.988,0.605,0.988,0.608,0.984,0.93,0.982,0.605,0.553,0.907,0.551,0.908,0.551,0.907,0.553,0.908,0.551,0.91,0.989,0.899,0.991,0.898,0.991,0.899,0.554,0.92,0.553,0.918,0.554,0.918,0.553,0.92,0.551,0.918,0.99,0.598,0.992,0.596 +,0.992,0.598,0.381,0.904,0.383,0.903,0.383,0.904,0.381,0.903,0.383,0.901,0.381,0.901,0.383,0.899,0.381,0.899,0.383,0.898,0.99,0.276,0.992,0.275,0.992,0.276,0.551,0.915,0.553,0.913,0.553,0.915,0.554,0.915,0.989,0.904,0.991,0.902,0.991,0.904,0.123,0.908,0.122,0.909,0.116,0.906,0.553,0.903,0.551,0.905 +,0.551,0.903,0.553,0.905,0.354,0.964,0.352,0.964,0.353,0.963,0.332,0.874,0.335,0.876,0.332,0.876,0.359,0.963,0.361,0.962,0.36,0.964,0.355,0.957,0.357,0.955,0.357,0.957,0.357,0.965,0.359,0.965,0.357,0.966,0.358,0.957,0.36,0.958,0.359,0.958,0.353,0.958,0.351,0.959,0.352,0.958,0.355,0.965,0.353,0.965 +,0.36,0.962,0.361,0.96,0.351,0.962,0.352,0.961,0.353,0.956,0.355,0.955,0.358,0.964,0.359,0.956,0.352,0.96,0.355,0.966,0.36,0.96,0.354,0.957,0.47,0.8,0.472,0.802,0.47,0.802,0.332,0.87,0.335,0.872,0.332,0.872,0.47,0.798,0.472,0.8,0.988,0.618,0.991,0.62,0.988,0.62,0.989,0.572,0.991,0.574 +,0.989,0.574,0.384,0.915,0.386,0.912,0.386,0.915,0.916,0.618,0.914,0.62,0.914,0.618,0.381,0.915,0.384,0.912,0.918,0.618,0.916,0.62,0.988,0.633,0.991,0.635,0.988,0.635,0.989,0.557,0.991,0.559,0.989,0.559,0.47,0.804,0.472,0.806,0.47,0.806,0.335,0.878,0.332,0.878,0.472,0.804,0.335,0.874,0.699,0.91 +,0.697,0.911,0.697,0.91,0.699,0.911,0.697,0.913,0.989,0.713,0.991,0.712,0.991,0.713,0.554,0.924,0.553,0.922,0.554,0.922,0.553,0.924,0.551,0.922,0.99,0.586,0.992,0.585,0.992,0.586,0.697,0.904,0.699,0.902,0.699,0.904,0.697,0.902,0.699,0.901,0.697,0.901,0.699,0.899,0.697,0.899,0.699,0.897,0.99,0.281 +,0.992,0.279,0.992,0.281,0.696,0.919,0.698,0.921,0.696,0.921,0.698,0.919,0.7,0.921,0.989,0.709,0.991,0.707,0.991,0.709,0.943,0.025,0.942,0.026,0.936,0.024,0.699,0.907,0.697,0.908,0.697,0.907,0.699,0.908,0.77,0.143,0.768,0.142,0.769,0.142,0.815,0.882,0.817,0.885,0.815,0.885,0.775,0.144,0.777,0.144 +,0.776,0.145,0.774,0.137,0.776,0.136,0.775,0.137,0.772,0.145,0.774,0.146,0.772,0.146,0.776,0.139,0.778,0.14,0.777,0.14,0.771,0.137,0.769,0.138,0.77,0.136,0.771,0.144,0.769,0.144,0.776,0.143,0.778,0.142,0.768,0.14,0.769,0.14,0.772,0.135,0.774,0.135,0.774,0.145,0.777,0.138,0.77,0.139,0.77,0.146 +,0.777,0.142,0.772,0.137,0.388,0.802,0.39,0.804,0.388,0.804,0.815,0.878,0.817,0.88,0.815,0.88,0.388,0.8,0.39,0.802,0.697,0.531,0.699,0.533,0.697,0.533,0.989,0.567,0.991,0.569,0.989,0.569,0.916,0.615,0.918,0.613,0.918,0.615,0.916,0.628,0.914,0.631,0.914,0.628,0.914,0.615,0.916,0.613,0.918,0.628 +,0.916,0.631,0.988,0.623,0.991,0.625,0.988,0.625,0.989,0.411,0.991,0.413,0.989,0.413,0.388,0.806,0.39,0.808,0.388,0.808,0.817,0.887,0.815,0.887,0.39,0.806,0.817,0.882,0.946,0.152,0.99,0.149,0.99,0.152,0.484,0.954,0.56,0.96,0.484,0.96,0.001,0.608,0.469,0.634,0.001,0.634,0.647,0.774,0.475,0.742 +,0.647,0.742,0.455,0.605,0.001,0.572,0.455,0.572,0.469,0.82,0.39,0.82,0.971,0.91,0.896,0.905,0.971,0.905,0.971,0.902,0.896,0.898,0.971,0.898,0.896,0.895,0.971,0.89,0.971,0.895,0.402,0.969,0.364,0.969,0.364,0.965,0.441,0.965,0.441,0.969,0.345,0.96,0.27,0.954,0.345,0.954,0.735,0.965,0.702,0.965 +,0.702,0.96,0.783,0.96,0.783,0.965,0.867,0.937,0.907,0.937,0.92,0.943,0.876,0.931,0.785,0.982,0.722,0.982,0.777,0.979,0.702,0.979,0.722,0.982,0.716,0.982,0.134,0.315,0.001,0.324,0.001,0.324,0.244,0.567,0.251,0.56,0.837,0.965,0.618,0.001,0.89,0.45,0.677,0.001,0.89,0.453,0.818,0.001,0.495,0.291 +,0.561,0.945,0.436,0.952,0.834,0.441,0.911,0.608,0.364,0.976,0.864,0.181,0.484,0.986,0.481,0.98,0.345,0.987,0.947,0.308,0.973,0.61,0.936,0.275,0.978,0.284,0.62,0.557,0.618,0.138,0.393,0.828,0.944,0.215,0.909,0.576,0.814,0.293,0.841,0.986,0.911,0.257,0.934,0.98,0.95,0.826,0.989,0.175,0.952,0.919 +,0.649,0.742,0.837,0.441,0.618,0.146,0.125,0.948,0.665,0.838,0.501,0.156,0.172,0.938,0.93,0.647,0.786,0.968,0.444,0.946,0.934,0.946,0.975,0.787,0.75,0.048,0.267,0.959,0.92,0.959,0.359,0.951,0.922,0.319,0.836,0.948,0.919,0.4,0.986,0.98,0.789,0.224,0.27,0.978,0.979,0.667,0.42,0.303,0.973,0.326 +,0.974,0.159,0.026,0.962,0.959,0.936,0.599,0.306,0.592,0.625,0.965,0.68,0.589,0.661,0.924,0.059,0.424,0.993,0.986,0.757,0.504,0.303,0.961,0.114,0.939,0.374,0.209,0.991,0.479,0.993,0.984,0.132,0.78,0.227,0.796,0.227,0.712,0.289,0.032,0.935,0.775,0.289,0.893,0.915,0.765,0.135,0.689,0.135,0.971,0.496 +,0.984,0.347,0.976,0.491,0.685,0.618,0.688,0.618,0.96,0.453,0.584,0.984,0.977,0.593,0.982,0.461,0.963,0.033,0.899,0.601,0.858,0.651,0.169,0.923,0.422,0.996,0.166,0.862,0.939,0.275,0.435,0.955,0.967,0.341,0.169,0.956,0.789,0.299,0.226,0.98,0.481,0.975,0.441,0.946,0.441,0.952,0.884,0.296,0.963,0.02 +,0.963,0.029,0.963,0.024,0.962,0.936,0.348,0.918,0.993,0.159,0.338,0.842,0.338,0.833,0.338,0.837,0.545,0.997,0.991,0.717,0.967,0.997,0.99,0.997,0.993,0.155,0.032,0.998,0.749,0.997,0.338,0.846,0.055,0.998,0.723,0.998,0.746,0.998,0.695,0.655,0.988,0.531,0.988,0.543,0.99,0.341,0.788,0.658,0.908,0.518 +,0.558,0.91,0.548,0.894,0.864,0.222,0.924,0.019,0.691,0.948,0.693,0.44,0.604,0.4,0.563,0.96,0.932,0.836,0.928,0.832,0.527,0.433,0.853,0.698,0.858,0.7,0.697,0.452,0.989,0.973,0.471,0.746,0.498,0.305,0.699,0.675,0.961,0.817,0.601,0.253,0.697,0.553,0.989,0.814,0.986,0.567,0.962,0.57,0.88,0.377 +,0.882,0.377,0.852,0.377,0.855,0.459,0.858,0.461,0.832,0.128,0.695,0.735,0.962,0.367,0.924,0.001,0.852,0.46,0.346,0.971,0.982,0.364,0.606,0.4,0.788,0.655,0.943,0.193,0.919,0.296,0.995,0.19,0.956,0.78,0.479,0.985,0.645,0.818,0.337,0.883,0.337,0.908,0.832,0.082,0.091,0.995,0.99,0.644,0.896,0.776 +,0.788,0.377,0.348,0.82,0.702,0.957,0.912,0.521,0.959,0.871,0.609,0.484,0.896,0.765,0.709,0.81,0.637,0.777,0.458,0.557,0.746,0.451,0.837,0.471,0.935,0.164,0.537,0.921,0.882,0.835,0.793,0.204,0.962,0.873,0.968,0.522,0.118,0.988,0.001,0.989,0.169,0.757,0.616,0.627,0.168,0.751,0.615,0.629,0.168,0.76 +,0.232,0.997,0.169,0.775,0.997,0.052,0.114,0.997,0.169,0.771,0.977,0.407,0.976,0.258,0.168,0.764,0.977,0.404,0.997,0.261,0.137,0.997,0.153,0.743,0.988,0.534,0.988,0.538,0.991,0.265,0.388,0.831,0.389,0.797,0.698,0.715,0.961,0.826,0.379,0.898,0.699,0.672,0.989,0.809,0.986,0.574,0.962,0.377,0.792,0.207 +,0.792,0.208,0.826,0.224,0.859,0.077,0.856,0.079,0.821,0.079,0.05,0.887,0.08,0.749,0.385,0.817,0.925,0.181,0.918,0.772,0.561,0.968,0.334,0.855,0.965,0.544,0.172,0.93,0.953,0.351,0.364,0.934,0.905,0.518,0.956,0.732,0.951,0.735,0.902,0.601,0.627,0.839,0.927,0.682,0.918,0.962,0.922,0.521,0.27,0.968 +,0.165,0.779,0.958,0.141,0.335,0.913,0.951,0.555,0.622,0.305,0.867,0.787,0.949,0.558,0.032,0.974,0.691,0.628,0.27,0.971,0.956,0.614,0.685,0.963,0.931,0.548,0.931,0.521,0.364,0.921,0.971,0.424,0.395,0.811,0.949,0.919,0.896,0.072,0.395,0.757,0.896,0.075,0.302,0.672,0.302,0.672,0.106,0.951,0.951,0.868 +,0.788,0.602,0.078,0.92,0.696,0.97,0.047,0.847,0.144,0.98,0.838,0.976,0.443,0.982,0.561,0.971,0.979,0.393,0.693,0.938,0.979,0.38,0.622,0.156,0.976,0.499,0.625,0.553,0.564,0.967,0.702,0.948,0.436,0.985,0.896,0.915,0.99,0.167,0.911,0.25,0.577,0.981,0.267,0.988,0.799,0.275,0.919,0.416,0.799,0.281 +,0.837,0.956,0.307,0.938,0.924,0.052,0.256,0.968,0.664,0.862,0.662,0.858,0.974,0.403,0.638,0.91,0.976,0.439,0.911,0.265,0.164,0.947,0.215,0.988,0.988,0.146,0.896,0.887,0.105,0.966,0.822,0.879,0.979,0.661,0.922,0.329,0.976,0.432,0.112,0.981,0.961,0.135,0.982,0.798,0.028,0.984,0.961,0.119,0.922,0.31 +,0.973,0.596,0.576,0.986,0.984,0.127,0.51,0.174,0.978,0.237,0.001,0.844,0.702,0.936,0.973,0.247,0.788,0.652,0.868,0.685,0.976,0.512,0.908,0.504,0.908,0.501,0.984,0.962,0.908,0.507,0.096,0.034,0.861,0.784,0.26,0.965,0.008,0.008,0.474,0.916,0.937,0.946,0.931,0.585,0.559,0.738,0.573,0.667,0.956,0.862 +,0.956,0.868,0.893,0.698,0.962,0.94,0.965,0.203,0.962,0.876,0.965,0.207,0.991,0.54,0.58,0.978,0.992,0.525,0.267,0.979,0.992,0.53,0.974,0.422,0.991,0.536,0.688,0.994,0.995,0.097,0.991,0.522,0.974,0.736,0.545,0.993,0.992,0.329,0.001,0.996,0.994,0.909,0.982,0.141,0.314,0.667,0.986,0.293,0.989,0.675 +,0.99,0.337,0.691,0.437,0.47,0.814,0.638,0.913,0.948,0.521,0.074,0.524,0.941,0.614,0.975,0.227,0.64,0.814,0.395,0.669,0.923,0.208,0.918,0.659,0.915,0.655,0.662,0.874,0.433,0.743,0.891,0.001,0.032,0.986,0.471,0.763,0.388,0.779,0.699,0.695,0.961,0.821,0.796,0.868,0.697,0.528,0.989,0.802,0.986,0.559 +,0.962,0.562,0.89,0.777,0.891,0.777,0.861,0.777,0.83,0.211,0.832,0.214,0.476,0.86,0.393,0.667,0.979,0.427,0.346,0.932,0.36,0.98,0.538,0.929,0.99,0.229,0.395,0.667,0.691,0.44,0.943,0.184,0.91,0.521,0.995,0.199,0.959,0.552,0.991,0.549,0.788,0.438,0.852,0.38,0.484,0.993,0.944,0.222,0.206,0.993 +,0.852,0.829,0.067,0.847,0.915,0.765,0.329,0.951,0.691,0.625,0.249,0.944,0.172,0.858,0.26,0.523,0.837,0.48,0.935,0.133,0.875,0.919,0.558,0.877,0.868,0.658,0.789,0.764,0.963,0.003,0.963,0.017,0.963,0.012,0.963,0.008,0.915,0.772,0.949,0.805,0.949,0.808,0.949,0.799,0.699,0.966,0.45,0.996,0.949,0.796 +,0.205,0.995,0.447,0.996,0.338,0.852,0.976,0.251,0.976,0.247,0.699,0.97,0.976,0.254,0.997,0.242,0.229,0.996,0.988,0.525,0.988,0.882,0.989,0.678,0.388,0.848,0.471,0.795,0.388,0.745,0.961,0.467,0.029,0.892,0.698,0.508,0.989,0.805,0.986,0.578,0.962,0.373,0.788,0.766,0.789,0.768,0.822,0.784,0.167,0.857 +,0.164,0.859,0.129,0.859,0.788,0.824,0.001,0.749,0.235,0.747,0.93,0.772,0.661,0.977,0.928,0.106,0.032,0.98,0.555,0.857,0.959,0.582,0.342,0.922,0.341,0.914,0.873,0.933,0.82,0.864,0.952,0.036,0.601,0.937,0.946,0.141,0.364,0.943,0.589,0.633,0.958,0.828,0.916,0.284,0.955,0.001,0.05,0.932,0.476,0.894 +,0.95,0.375,0.841,0.975,0.624,0.91,0.558,0.971,0.896,0.062,0.916,0.105,0.102,0.966,0.931,0.58,0.931,0.553,0.702,0.919,0.11,0.971,0.698,0.977,0.001,0.979,0.789,0.129,0.983,0.767,0.961,0.45,0.977,0.973,0.141,0.975,0.919,0.983,0.696,0.443,0.972,0.091,0.001,0.973,0.169,0.914,0.611,0.945,0.98,0.305 +,0.947,0.305,0.947,0.085,0.946,0.162,0.992,0.687,0.947,0.296,0.896,0.773,0.698,0.987,0.785,0.915,0.96,0.762,0.962,0.293,0.046,0.909,0.032,0.909,0.959,0.868,0.667,0.99,0.993,0.173,0.992,0.073,0.993,0.647,0.442,0.985,0.989,0.297,0.989,0.297,0.989,0.297,0.991,0.296,0.991,0.297,0.992,0.297,0.992,0.297 +,0.992,0.381,0.979,0.433,0.982,0.649,0.99,0.435,0.992,0.381,0.959,0.863,0.961,0.064,0.992,0.606,0.992,0.069,0.993,0.654,0.992,0.203,0.988,0.615,0.989,0.614,0.989,0.614,0.991,0.614,0.991,0.614,0.991,0.614,0.992,0.615,0.992,0.39,0.979,0.499,0.982,0.655,0.99,0.501,0.992,0.39,0.96,0.444,0.961,0.076 +,0.992,0.61,0.992,0.111,0.994,0.395,0.028,0.987,0.989,0.208,0.989,0.208,0.989,0.208,0.991,0.207,0.991,0.208,0.992,0.208,0.992,0.208,0.992,0.386,0.979,0.491,0.983,0.397,0.99,0.493,0.992,0.385,0.959,0.772,0.961,0.08,0.991,0.602,0.992,0.107,0.993,0.659,0.99,0.962,0.988,0.516,0.988,0.515,0.989,0.515 +,0.991,0.515,0.991,0.515,0.991,0.515,0.991,0.516,0.992,0.776,0.979,0.504,0.982,0.66,0.99,0.506,0.992,0.776,0.817,0.293,0.308,0.83,0.981,0.235,0.991,0.287,0.982,0.927,0.982,0.357,0.988,0.887,0.992,0.48,0.001,0.992,0.986,0.854,0.918,0.634,0.694,0.948,0.695,0.948,0.695,0.948,0.698,0.948,0.698,0.948 +,0.699,0.948,0.699,0.948,0.986,0.845,0.943,0.033,0.392,0.831,0.399,0.831,0.41,0.831,0.402,0.831,0.982,0.475,0.993,0.75,0.028,0.993,0.973,0.317,0.987,0.345,0.343,0.917,0.604,0.938,0.604,0.938,0.605,0.937,0.608,0.937,0.608,0.937,0.609,0.938,0.609,0.938,0.986,0.841,0.989,0.333,0.444,0.569,0.451,0.569 +,0.981,0.329,0.42,0.831,0.412,0.831,0.982,0.47,0.991,0.27,0.699,0.945,0.973,0.313,0.986,0.85,0.699,0.952,0.914,0.639,0.914,0.639,0.914,0.638,0.917,0.638,0.918,0.638,0.918,0.639,0.918,0.639,0.986,0.858,0.266,0.972,0.433,0.831,0.44,0.831,0.259,0.968,0.43,0.831,0.423,0.831,0.982,0.351,0.993,0.742 +,0.987,0.48,0.972,0.745,0.986,0.837,0.918,0.647,0.914,0.644,0.914,0.643,0.914,0.643,0.917,0.643,0.918,0.643,0.918,0.643,0.918,0.644,0.986,0.833,0.909,0.586,0.45,0.831,0.45,0.831,0.46,0.831,0.453,0.831,0.444,0.545,0.938,0.614,0.832,0.098,0.444,0.484,0.989,0.131,0.702,0.994,0.837,0.979,0.661,0.994 +,0.621,0.935,0.943,0.211,0.946,0.993,0.984,0.178,0.903,0.993,0.83,0.985,0.658,0.838,0.822,0.994,0.984,0.849,0.983,0.989,0.981,0.281,0.691,0.962,0.584,0.995,0.984,0.855,0.779,0.993,0.926,0.212,0.948,0.211,0.788,0.986,0.789,0.968,0.819,0.993,0.937,0.212,0.96,0.211,0.906,0.994,0.984,0.041,0.307,0.995 +,0.836,0.985,0.954,0.211,0.364,0.996,0.984,0.843,0.347,0.995,0.615,0.935,0.931,0.211,0.619,0.739,0.984,0.832,0.976,0.28,0.987,0.281,0.697,0.962,0.955,0.038,0.984,0.837,0.131,0.993,0.472,0.831,0.466,0.831,0.144,0.996,0.984,0.047,0.696,0.738,0.652,0.838,0.817,0.905,0.989,0.89,0.696,0.936,0.991,0.144 +,0.697,0.888,0.989,0.983,0.696,0.941,0.696,0.939,0.7,0.939,0.99,0.69,0.781,0.142,0.781,0.139,0.781,0.137,0.789,0.139,0.783,0.136,0.784,0.135,0.788,0.137,0.785,0.135,0.787,0.136,0.789,0.14,0.785,0.144,0.783,0.143,0.784,0.144,0.307,0.816,0.335,0.858,0.472,0.809,0.991,0.562,0.815,0.908,0.918,0.626 +,0.991,0.628,0.991,0.577,0.553,0.9,0.989,0.703,0.696,0.931,0.99,0.93,0.815,0.89,0.991,0.323,0.7,0.924,0.989,0.7,0.116,0.897,0.116,0.894,0.116,0.892,0.123,0.894,0.117,0.891,0.119,0.89,0.123,0.892,0.12,0.89,0.122,0.891,0.123,0.895,0.12,0.898,0.117,0.898,0.119,0.898,0.699,0.877,0.817,0.867 +,0.992,0.291,0.991,0.416,0.714,0.15,0.386,0.909,0.991,0.977,0.991,0.372,0.995,0.787,0.944,0.554,0.986,0.99,0.987,0.087,0.989,0.733,0.009,0.959,0.007,0.959,0.004,0.958,0.007,0.947,0.003,0.957,0.002,0.954,0.002,0.95,0.001,0.952,0.004,0.948,0.009,0.947,0.014,0.952,0.015,0.954,0.014,0.957,0.987,0.118 +,0.39,0.866,0.388,0.882,0.979,0.912,0.977,0.791,0.351,0.997,0.351,0.995,0.141,0.991,0.267,0.991,0.987,0.046,0.855,0.828,0.99,0.092,0.995,0.139,0.043,0.904,0.038,0.905,0.035,0.904,0.037,0.892,0.033,0.902,0.032,0.9,0.035,0.893,0.032,0.897,0.033,0.895,0.04,0.892,0.045,0.897,0.044,0.902,0.045,0.9 +,0.987,0.059,0.39,0.885,0.946,0.817,0.98,0.591,0.933,0.771,0.987,0.128,0.987,0.127,0.267,0.974,0.949,0.82,0.987,0.042,0.936,0.037,0.988,0.639,0.997,0.162,0.956,0.477,0.953,0.478,0.951,0.478,0.948,0.466,0.948,0.477,0.946,0.475,0.946,0.47,0.945,0.473,0.947,0.468,0.951,0.466,0.958,0.468,0.959,0.47 +,0.958,0.473,0.987,0.114,0.168,0.943,0.388,0.875,0.568,0.99,0.979,0.438,0.987,0.124,0.987,0.123,0.995,0.011,0.985,0.358,0.985,0.878,0.994,0.453,0.454,0.557,0.455,0.559,0.454,0.563,0.455,0.561,0.453,0.565,0.451,0.566,0.448,0.566,0.444,0.563,0.444,0.561,0.446,0.555,0.444,0.559,0.444,0.557,0.453,0.555 +,0.974,0.72,0.975,0.091,0.974,0.698,0.974,0.703,0.994,0.936,0.984,0.927,0.985,0.942,0.361,0.99,0.97,0.729,0.971,0.731,0.97,0.736,0.971,0.733,0.968,0.737,0.966,0.738,0.964,0.738,0.96,0.736,0.959,0.733,0.962,0.727,0.959,0.731,0.96,0.729,0.968,0.727,0.974,0.903,0.348,0.983,0.973,0.954,0.974,0.411 +,0.995,0.764,0.985,0.471,0.986,0.018,0.995,0.001,0.97,0.7,0.971,0.702,0.97,0.707,0.971,0.705,0.968,0.708,0.966,0.709,0.964,0.709,0.96,0.707,0.959,0.705,0.96,0.7,0.959,0.702,0.962,0.699,0.968,0.699,0.974,0.898,0.974,0.731,0.973,0.63,0.973,0.619,0.996,0.178,0.985,0.353,0.986,0.032,0.994,0.474 +,0.968,0.629,0.969,0.631,0.97,0.635,0.97,0.633,0.969,0.637,0.968,0.639,0.966,0.64,0.961,0.639,0.959,0.637,0.959,0.631,0.959,0.635,0.959,0.633,0.966,0.628,0.976,0.154,0.974,0.725,0.973,0.636,0.973,0.625,0.144,0.975,0.702,0.99,0.992,0.818,0.863,0.989,0.993,0.669,0.114,0.989,0.989,0.946,0.99,0.946 +,0.99,0.946,0.99,0.949,0.989,0.949,0.989,0.949,0.989,0.946,0.114,0.986,0.993,0.664,0.979,0.485,0.979,0.483,0.584,0.973,0.032,0.99,0.992,0.675,0.781,0.985,0.995,0.363,0.989,0.723,0.99,0.221,0.99,0.221,0.991,0.221,0.99,0.224,0.99,0.224,0.99,0.223,0.99,0.221,0.989,0.72,0.995,0.366,0.688,0.959 +,0.699,0.957,0.832,0.086,0.911,0.102,0.992,0.68,0.563,0.989,0.996,0.309,0.989,0.757,0.99,0.726,0.99,0.726,0.99,0.726,0.99,0.729,0.99,0.729,0.989,0.728,0.989,0.726,0.989,0.754,0.995,0.447,0.979,0.512,0.99,0.509,0.702,0.974,0.584,0.991,0.992,0.883,0.349,0.99,0.579,0.995,0.579,0.987,0.989,0.954 +,0.989,0.954,0.99,0.954,0.989,0.957,0.989,0.957,0.989,0.956,0.989,0.954,0.579,0.984,0.994,0.302,0.979,0.217,0.99,0.215,0.48,0.965,0.979,0.658,0.941,0.69,0.987,0.69,0.867,0.99,0.958,0.93,0.867,0.813,0.892,0.821,0.943,0.813,0.943,0.82,0.892,0.821,0.889,0.82,0.867,0.813,0.867,0.82,0.867,0.813 +,0.889,0.82,0.432,0.955,0.844,0.936,0.866,0.936,0.086,0.156,0.043,0.221,0.128,0.216,0.042,0.256,0.002,0.236,0.003,0.162,0.008,0.162,0.655,0.459,0.655,0.459,0.612,0.459,0.655,0.459,0.864,0.222,0.941,0.222,0.62,0.542,0.652,0.536,0.612,0.542,0.612,0.537,0.615,0.537,0.652,0.536,0.652,0.536,0.308,0.2 +,0.001,0.007,0.001,0.007,0.29,0.199,0.001,0.15,0.001,0.144,0.92,0.184,0.92,0.212,0.703,0.315,0.746,0.552,0.777,0.451,0.008,0.491,0.252,0.491,0.252,0.484,0.361,0.524,0.251,0.56,0.252,0.491,0.251,0.56,0.252,0.491,0.792,0.867,0.172,0.883,0.398,0.664,0.314,0.637,0.314,0.664,0.586,0.664,0.104,0.4 +,0.387,0.4,0.162,0.395,0.001,0.324,0.977,0.483,0.477,0.317,0.751,0.1,0.699,0.309,0.917,0.954,0.39,0.41,0.22,0.637,0.297,0.637,0.311,0.637,0.001,0.637,0.043,0.637,0.615,0.006,0.994,0.871,0.985,0.798,0.986,0.022,0.995,0.006,0.97,0.715,0.971,0.717,0.97,0.721,0.971,0.719,0.968,0.723,0.966,0.724 +,0.964,0.724,0.96,0.721,0.959,0.719,0.962,0.713,0.959,0.717,0.96,0.715,0.968,0.713,0.974,0.89,0.976,0.321,0.973,0.614,0.974,0.714,0.994,0.919,0.985,0.137,0.986,0.027,0.994,0.458,0.969,0.616,0.97,0.618,0.969,0.623,0.97,0.621,0.968,0.624,0.966,0.625,0.963,0.625,0.959,0.623,0.959,0.621,0.961,0.615 +,0.959,0.618,0.959,0.616,0.968,0.615,0.976,0.605,0.975,0.93,0.974,0.709,0.974,0.416,0.553,0.91,0.989,0.898,0.551,0.92,0.99,0.596,0.381,0.898,0.99,0.275,0.551,0.915,0.551,0.913,0.554,0.913,0.989,0.902,0.116,0.908,0.116,0.905,0.116,0.903,0.123,0.905,0.117,0.902,0.119,0.901,0.123,0.903,0.12,0.901 +,0.122,0.902,0.123,0.906,0.12,0.909,0.117,0.909,0.119,0.91,0.335,0.87,0.472,0.798,0.991,0.618,0.991,0.572,0.381,0.912,0.918,0.62,0.991,0.633,0.991,0.557,0.699,0.913,0.989,0.712,0.551,0.924,0.99,0.585,0.697,0.897,0.99,0.279,0.7,0.919,0.989,0.707,0.936,0.025,0.936,0.022,0.936,0.021,0.943,0.022 +,0.937,0.02,0.939,0.019,0.943,0.021,0.94,0.019,0.942,0.019,0.943,0.024,0.94,0.027,0.937,0.026,0.939,0.027,0.817,0.878,0.39,0.8,0.699,0.531,0.991,0.567,0.914,0.613,0.918,0.631,0.991,0.623,0.991,0.411,0.946,0.149,0.56,0.954,0.469,0.608,0.475,0.774,0.001,0.605,0.001,0.572,0.896,0.91,0.896,0.902 +,0.896,0.89,0.27,0.96,0.92,0.937,0.867,0.937,0.722,0.982,0.001,0.001,0.673,0.444,0.001,0.444,0.674,0.184,0.777,0.31,0.674,0.31,0.996,0.525,0.89,0.527,0.89,0.525,0.897,0.356,0.994,0.354,0.994,0.356,0.884,0.72,0.991,0.718,0.991,0.72,0.986,0.531,0.89,0.533,0.89,0.531,0.718,0.013,0.674,0.001 +,0.932,0.001,0.511,0.988,0.44,0.986,0.511,0.986,0.734,0.875,0.929,0.878,0.734,0.878,0.055,0.978,0.001,0.975,0.055,0.975,0.233,0.978,0.233,0.975,0.674,0.859,0.788,0.815,0.788,0.859,0.86,0.859,0.86,0.815,0.326,0.988,0.44,0.988,0.326,0.996,0.44,0.993,0.44,0.996,0.889,0.534,0.674,0.482,0.889,0.482 +,0.962,0.177,0.91,0.179,0.91,0.177,0.326,0.985,0.502,0.982,0.502,0.985,0.91,0.16,0.962,0.158,0.962,0.16,0.177,0.979,0.001,0.982,0.001,0.979,0.789,0.933,0.631,0.976,0.631,0.933,0.947,0.976,0.79,0.98,0.79,0.976,0.91,0.135,0.953,0.131,0.953,0.135,0.631,0.981,0.789,0.977,0.789,0.981,0.953,0.127 +,0.91,0.13,0.91,0.127,0.492,0.996,0.607,0.994,0.607,0.996,0.904,0.993,0.79,0.996,0.79,0.993,0.895,0.723,0.674,0.77,0.674,0.723,0.969,0.475,0.785,0.478,0.785,0.475,0.91,0.194,0.957,0.191,0.957,0.194,0.785,0.474,0.969,0.471,0.969,0.474,0.957,0.195,0.91,0.198,0.91,0.195,0.896,0.311,0.821,0.322 +,0.674,0.311,0.615,0.989,0.775,0.986,0.775,0.989,0.91,0.204,0.966,0.202,0.966,0.204,0.95,0.985,0.79,0.988,0.79,0.985,0.966,0.199,0.91,0.201,0.91,0.199,0.954,0.421,0.827,0.465,0.827,0.421,0.959,0.981,0.832,0.984,0.832,0.981,0.91,0.157,0.954,0.153,0.954,0.157,0.236,0.957,0.001,0.953,0.236,0.953 +,0.291,0.954,0.717,0.721,0.674,0.658,0.717,0.658,0.368,0.992,0.326,0.99,0.368,0.99,0.578,0.976,0.502,0.973,0.578,0.973,0.001,0.992,0.123,0.995,0.001,0.995,0.91,0.109,0.973,0.112,0.91,0.112,0.945,0.588,0.884,0.536,0.945,0.536,0.962,0.173,0.91,0.175,0.91,0.173,0.263,0.967,0.324,0.964,0.324,0.967 +,0.91,0.164,0.962,0.162,0.962,0.164,0.971,0.116,0.91,0.119,0.91,0.116,0.326,0.975,0.502,0.976,0.491,0.992,0.491,0.99,0.839,0.658,0.794,0.671,0.674,0.813,0.914,0.771,0.914,0.813,0.734,0.873,0.922,0.87,0.922,0.873,0.178,0.983,0.306,0.979,0.306,0.983,0.79,0.984,0.79,0.981,0.785,0.465,0.785,0.421 +,0.57,0.971,0.326,0.967,0.57,0.967,0.646,0.932,0.326,0.89,0.646,0.89,0.001,0.889,0.673,0.445,0.673,0.889,0.839,0.073,0.773,0.106,0.674,0.073,0.001,0.998,0.123,0.996,0.123,0.998,0.989,0.528,0.89,0.53,0.89,0.528,0.448,0.997,0.326,0.999,0.326,0.997,0.513,0.987,0.613,0.985,0.613,0.987,0.001,0.952 +,0.324,0.89,0.324,0.952,0.326,0.978,0.389,0.98,0.326,0.98,0.95,0.888,0.734,0.884,0.951,0.884,0.971,0.115,0.91,0.113,0.971,0.113,0.203,0.964,0.262,0.968,0.203,0.968,0.001,0.964,0.001,0.968,0.945,0.933,0.79,0.975,0.79,0.933,0.897,0.764,0.911,0.731,0.911,0.756,0.957,0.797,0.915,0.795,0.957,0.795 +,0.538,0.978,0.389,0.978,0.94,0.989,0.79,0.992,0.79,0.989,0.674,0.536,0.883,0.588,0.674,0.588,0.91,0.168,0.962,0.165,0.962,0.168,0.175,0.984,0.001,0.987,0.001,0.984,0.962,0.169,0.91,0.172,0.91,0.169,0.615,0.985,0.789,0.982,0.789,0.985,0.861,0.815,0.937,0.867,0.861,0.867,0.779,0.24,0.831,0.236 +,0.831,0.24,0.96,0.713,0.884,0.717,0.884,0.713,0.95,0.361,0.897,0.364,0.897,0.361,0.884,0.712,0.96,0.708,0.96,0.712,0.937,0.369,0.886,0.407,0.886,0.379,0.91,0.139,0.96,0.136,0.96,0.139,0.305,0.988,0.153,0.991,0.153,0.988,0.96,0.14,0.91,0.143,0.91,0.14,0.001,0.991,0.152,0.988,0.152,0.991 +,0.784,0.481,0.674,0.369,0.784,0.369,0.492,0.992,0.604,0.99,0.604,0.992,0.994,0.701,0.884,0.704,0.884,0.701,0.236,0.992,0.125,0.995,0.125,0.992,0.503,0.984,0.613,0.982,0.613,0.984,0.908,0.205,0.841,0.073,0.908,0.073,0.125,0.998,0.248,0.996,0.248,0.998,0.977,0.123,0.91,0.125,0.91,0.123,0.738,0.994 +,0.615,0.996,0.615,0.994,0.91,0.122,0.977,0.12,0.977,0.122,0.674,0.657,0.802,0.589,0.802,0.657,0.615,0.992,0.735,0.99,0.735,0.993,0.965,0.366,0.897,0.368,0.897,0.366,0.097,0.971,0.262,0.974,0.097,0.974,0.001,0.973,0.897,0.311,0.91,0.342,0.897,0.353,0.178,0.986,0.22,0.984,0.22,0.986,0.09,0.96 +,0.001,0.962,0.001,0.959,0.987,0.705,0.884,0.707,0.884,0.705,0.897,0.768,0.964,0.765,0.964,0.768,0.779,0.245,0.82,0.263,0.789,0.263,0.734,0.867,0.859,0.864,0.859,0.867,0.975,0.105,0.91,0.108,0.91,0.105,0.859,0.86,0.734,0.863,0.734,0.86,0.905,0.309,0.97,0.306,0.97,0.309,0.282,0.963,0.09,0.963 +,0.323,0.984,0.323,0.986,0.836,0.657,0.939,0.589,0.939,0.657,0.957,0.798,0.915,0.801,0.915,0.798,0.647,0.89,0.951,0.932,0.647,0.932,0.734,0.879,0.944,0.883,0.734,0.883,0.614,0.997,0.492,0.999,0.492,0.997,0.769,0.99,0.769,0.993,0.835,0.589,0.835,0.657,0.966,0.016,0.933,0.018,0.933,0.016,0.785,0.466 +,0.972,0.469,0.785,0.469,0.326,0.933,0.63,0.966,0.326,0.966,0.91,0.186,0.96,0.184,0.96,0.186,0.824,0.15,0.824,0.106,0.839,0.183,0.773,0.15,0.674,0.183,0.823,0.235,0.779,0.184,0.823,0.184,0.96,0.775,0.915,0.777,0.915,0.775,0.96,0.187,0.91,0.19,0.91,0.187,0.915,0.773,0.96,0.771,0.96,0.773 +,0.61,0.967,0.572,0.969,0.572,0.967,0.904,0.31,0.904,0.245,0.779,0.31,0.82,0.301,0.789,0.301,0.91,0.073,0.948,0.104,0.91,0.104,0.964,0.023,0.933,0.025,0.933,0.023,0.915,0.813,0.954,0.811,0.954,0.813,0.933,0.021,0.964,0.019,0.964,0.021,0.316,0.959,0.283,0.962,0.283,0.959,0.958,0.764,0.944,0.756 +,0.958,0.723,0.897,0.723,0.958,0.764,0.944,0.731,0.958,0.723,0.905,0.28,0.937,0.305,0.905,0.305,0.923,0.873,0.956,0.87,0.956,0.873,0.292,0.957,0.318,0.953,0.318,0.957,0.959,0.005,0.933,0.008,0.933,0.005,0.968,0.18,0.91,0.182,0.91,0.18,0.896,0.368,0.879,0.322,0.821,0.357,0.879,0.357,0.674,0.368 +,0.841,0.242,0.899,0.207,0.899,0.242,0.969,0.013,0.933,0.015,0.933,0.013,0.779,0.243,0.837,0.241,0.837,0.243,0.933,0.012,0.969,0.01,0.969,0.012,0.967,0.001,0.933,0.004,0.933,0.001,0.794,0.708,0.839,0.721,0.828,0.671,0.828,0.708,0.905,0.278,0.942,0.245,0.942,0.278,0.915,0.793,0.953,0.79,0.953,0.793 +,0.953,0.786,0.915,0.789,0.915,0.786,0.93,0.878,0.964,0.875,0.964,0.878,0.915,0.781,0.957,0.778,0.957,0.781,0.965,0.311,0.91,0.322,0.965,0.353,0.952,0.342,0.965,0.311,0.952,0.322,0.841,0.701,0.883,0.721,0.841,0.721,0.954,0.036,0.933,0.038,0.933,0.036,0.933,0.035,0.954,0.032,0.954,0.035,0.957,0.782 +,0.915,0.785,0.915,0.782,0.955,0.148,0.91,0.145,0.955,0.145,0.674,0.072,0.718,0.059,0.932,0.072,0.684,0.059,0.674,0.072,0.945,0.241,0.9,0.207,0.945,0.207,0.91,0.149,0.955,0.152,0.91,0.152,0.915,0.806,0.95,0.81,0.915,0.81,0.95,0.805,0.915,0.802,0.95,0.802,0.955,0.7,0.841,0.658,0.955,0.658 +,0.933,0.031,0.961,0.029,0.961,0.031,0.785,0.419,0.937,0.419,0.785,0.369,0.827,0.407,0.827,0.379,0.674,0.86,0.733,0.888,0.674,0.888,0.322,0.971,0.263,0.973,0.263,0.971,0.961,0.026,0.933,0.028,0.933,0.026,0.263,0.97,0.322,0.968,0.322,0.97,0.961,0.482,0.89,0.524,0.89,0.482,0.284,0.978,0.284,0.975 +,0.969,0.357,0.897,0.36,0.897,0.357,0.673,0.001,0.777,0.184,0.996,0.527,0.897,0.354,0.884,0.718,0.986,0.533,0.684,0.013,0.929,0.875,0.001,0.978,0.674,0.815,0.86,0.859,0.326,0.986,0.326,0.993,0.674,0.534,0.962,0.179,0.326,0.982,0.91,0.158,0.177,0.983,0.789,0.976,0.947,0.98,0.91,0.131,0.631,0.977 +,0.953,0.13,0.492,0.994,0.904,0.993,0.904,0.996,0.895,0.77,0.969,0.478,0.91,0.191,0.785,0.471,0.957,0.198,0.615,0.986,0.91,0.202,0.95,0.988,0.966,0.201,0.954,0.465,0.959,0.984,0.91,0.153,0.001,0.957,0.291,0.958,0.674,0.721,0.326,0.992,0.123,0.992,0.973,0.109,0.884,0.588,0.962,0.175,0.263,0.964 +,0.91,0.162,0.971,0.119,0.326,0.972,0.674,0.771,0.734,0.87,0.178,0.979,0.326,0.971,0.646,0.932,0.326,0.932,0.001,0.445,0.001,0.996,0.989,0.53,0.448,0.999,0.513,0.985,0.001,0.89,0.734,0.888,0.91,0.115,0.262,0.965,0.945,0.975,0.897,0.723,0.915,0.797,0.538,0.98,0.94,0.992,0.883,0.536,0.91,0.165 +,0.175,0.987,0.962,0.172,0.615,0.982,0.937,0.815,0.779,0.236,0.96,0.717,0.95,0.364,0.884,0.708,0.91,0.136,0.305,0.991,0.96,0.143,0.001,0.988,0.674,0.481,0.492,0.99,0.994,0.704,0.236,0.995,0.503,0.982,0.841,0.205,0.125,0.996,0.977,0.125,0.738,0.996,0.91,0.12,0.674,0.589,0.615,0.99,0.965,0.368 +,0.262,0.971,0.001,0.97,0.178,0.984,0.987,0.707,0.897,0.765,0.734,0.864,0.975,0.108,0.859,0.863,0.905,0.306,0.282,0.96,0.836,0.657,0.836,0.589,0.957,0.801,0.951,0.89,0.944,0.879,0.614,0.999,0.966,0.018,0.972,0.466,0.326,0.933,0.63,0.933,0.91,0.184,0.779,0.235,0.96,0.777,0.96,0.19,0.915,0.771 +,0.61,0.969,0.948,0.073,0.964,0.025,0.915,0.811,0.933,0.019,0.316,0.962,0.958,0.764,0.958,0.723,0.958,0.764,0.937,0.28,0.923,0.87,0.292,0.953,0.959,0.008,0.968,0.182,0.841,0.207,0.969,0.015,0.779,0.241,0.933,0.01,0.967,0.004,0.905,0.245,0.915,0.79,0.953,0.789,0.93,0.875,0.915,0.778,0.965,0.311 +,0.965,0.353,0.965,0.311,0.965,0.353,0.883,0.701,0.954,0.038,0.933,0.032,0.957,0.785,0.91,0.148,0.674,0.072,0.9,0.241,0.955,0.149,0.95,0.806,0.915,0.805,0.841,0.7,0.933,0.029,0.733,0.86,0.322,0.973,0.961,0.028,0.263,0.968,0.961,0.482,0.961,0.524,0.969,0.36,0.897,0.36] +,"indices":[0,1,2,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,24,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 +,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,72,74,75,76,77,78,79,80,76,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95 +,96,97,98,99,100,101,102,103,104,105,106,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,103,125,126,127,128,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142 +,143,144,145,146,147,148,147,149,150,151,152,153,154,155,151,156,157,158,159,160,161,162,163,164,165,166,167,159,168,169,170,171,172,173,174,175,176,177,173,178,177,179,180,181,182,183,184,180,185,186 +,187,188,189,190,191,192,193,194,195,196,197,198,199,185,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,219,221,221,222,223,224,225,226,227,228,229,229,230,231,232 +,233,234,235,236,224,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,145,261,262,145,263,147,144,149,261,264,265,266,267,268,269,270,271,272,273,274,275 +,276,277,278,279,278,280,281,282,264,283,265,284,281,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,123,301,109,114,302,303,304,305,306,307,308,309,310,311,122,302,312,313,314,315 +,316,317,318,319,320,321,87,72,322,323,324,325,326,80,320,86,327,328,329,330,331,324,332,333,334,74,323,335,77,336,75,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,341,353,354 +,342,355,354,356,352,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,208,378,379,205,380,381,382,383,384,385,386,387,385,388,382,384,386,389,211,390,391,214,392,393 +,394,395,396,397,398,399,400,401,402,28,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442 +,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,42,490,36 +,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,520,531,532,533,534,535,536,520,537,529 +,538,539,540,541,542,543,544,545,546,472,547,474,486,548,549,473,475,471,550,551,552,553,554,555,556,557,558,559,560,561,562,549,548,563,564,565,566,567,568,566,565,564,567,569,563,570,571,572,573,574 +,575,576,577,578,579,580,581,582,583,407,584,585,407,586,587,588,589,590,591,592,593,594,590,595,596,597,598,599,600,601,602,603,591,601,547,599,475,604,605,606,607,44,608,609,610,43,607,611,609,612 +,613,614,615,616,617,618,619,620,621,622,623,624,625,626,626,627,628,629,528,630,631,632,633,634,635,636,637,638,639,640,641,58,642,59,643,642,644,640,645,646,647,648,649,650,651,652,653,654,655,656 +,657,658,659,660,661,662,660,663,664,662,665,95,666,96,663,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701 +,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,526,727,728,729,730,535,731,728,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748 +,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798 +,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,803,802,810,806,808,820,821,822,809,823,805,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840 +,841,842,843,844,841,842,839,845,843,840,846,847,848,849,850,851,852,853,854,855,856,857,858,859,739,860,861,739,862,863,864,865,866,867,868,869,864,870,871,865,872,873,874,875,876,877,867,878,875,874 +,810,809,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926 +,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,724 +,726,714,976,964,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1002,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021 +,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1053,1061,1062,1063,1064,1065,1066,1067,1068,1065 +,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1092,1100,1086,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115 +,1116,1115,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1125,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163 +,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1175,1178,1115,1179,1117,1176,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1180,1197,1181,1198,1195,1198,1199,1200,1201,1202,1203,1204,1205 +,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1193,1216,1217,1218,1219,1220,1221,1222,1223,1224,1099,1218,1225,1226,1227,1228,1229,1230,1231,1232,1069,1233,1234,1235,1050,1236,1237,1238,1239,1240,1056,1058,1241,1242,1243,1244,1245,1239,1246,1247 +,1248,1249,1050,1052,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1274,1276,1272,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1006,1289,1290,1291 +,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341 +,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1020,1376,1014,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389 +,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1406,1417,1418,1419,1420,1421,1422,1423,1424,1425,1406,1426,1415,1427,1428,1429,1430,1431,1432,1433,1434,1431,1358 +,1435,1360,1372,1436,1437,1359,1361,1357,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1437,1436,1451,1452,1453,1454,1455,1456,1454,1453,1452,1455,1457,1451,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1293 +,1472,1473,1293,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1478,1485,1486,1487,1488,1489,1490,1491,1479,1489,1435,1487,1361,1492,1493,1494,1495,1022,1496,1497,1498,1021,1497,1496,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510 +,1511,1512,1513,1514,1514,1515,1516,1517,1414,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1036,1530,1037,1531,1528,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1549,1548 +,1553,1078,1080,1552,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1545,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598 +,1517,1599,1412,1600,1601,1421,1412,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644 +,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1674,1673,1680 +,1692,1681,1691,1693,1694,1695,1676,1678,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1713,1714,1711,1717,1715,1712,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1610 +,1732,1733,1610,1734,1735,1736,1737,1738,1739,1740,1741,1736,1742,1743,1737,1744,1745,1746,1747,1748,1749,1739,1750,1747,1695,1745,1680,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773 +,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823 +,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1596,1598,1586,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1851,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1854,1864,1855,1856,1852,1857 +,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1866,1875,1876,1877,1878,1879,1880,1881,1277,1273,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911 +,1908,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1914,1911,1924,1907,1925,1912,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956 +,1957,1958,1959,1960,1961,1952,1962,1963,1951,1964,1952,1964,1965,1952,1965,1966,1952,1962,1967,1963,1967,1968,1963,1968,1957,1963,1969,1970,1971,1972,1973,1974,1975,1948,1976,1977,1978,1979,1980,1981,1982,1983,1959,1984,1969,1977,1979,1985,1986,1987 +,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2002,2012,2013,2001,2014,2002,2014,2015,2002,2015,2016,2002,2012,2017,2013,2017,2018,2013,2018,2007,2013,2019,2020,2021,2022,2023 +,2024,2025,1998,2026,2027,2028,2029,2030,2031,2032,2033,2009,2034,2019,2027,2029,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2052,2062,2063,2051,2064,2052,2064 +,2065,2052,2065,2066,2052,2062,2067,2063,2067,2068,2063,2068,2057,2063,2069,2070,2071,2072,2073,2074,2075,2048,2076,2077,2078,2079,2080,2081,2082,2083,2059,2084,2069,2077,2079,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099 +,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2102,2112,2113,2101,2114,2102,2114,2115,2102,2115,2116,2102,2112,2117,2113,2117,2118,2113,2118,2107,2113,2119,2120,2121,2122,2123,2124,2125,2098,2126,2127,2128,2129,2130,2131,2132,2133,2109 +,2134,2119,2127,2129,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2167,2177,2178,2166 +,2179,2167,2179,2180,2167,2180,2181,2167,2177,2182,2178,2182,2183,2178,2183,2172,2178,2184,2185,2186,2187,2188,2189,2190,2163,2191,2192,2193,2194,2195,2196,2197,2198,2174,2199,2184,2200,2192,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212 +,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2217,2231,2218,2231,2232,2218,2232,2229,2218,2230,2233,2228,2233,2234,2228,2234,2223,2228,2235,2236,2237,2238,2239,2240,2241,2214,2242,2243,2244,2245,2246,2247 +,2248,2249,2225,2250,2235,2243,2245,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2268,2278,2279,2267,2280,2268,2280,2281,2268,2281,2282,2268,2278,2283,2279,2283 +,2284,2279,2284,2273,2279,2285,2286,2287,2288,2289,2290,2291,2264,2292,2293,2294,2295,2296,2297,2298,2299,2275,2300,2285,2293,2295,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324 +,2325,2326,2327,2328,2329,2330,2317,2331,2318,2331,2332,2318,2332,2329,2318,2330,2333,2328,2333,2334,2328,2334,2323,2328,2335,2336,2337,2338,2339,2340,2341,2314,2342,2343,2344,2345,2346,2347,2348,2349,2325,2350,2343,2335,2351,2352,710,2353,2354,701 +,2355,699,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,697,699,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401 +,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451 +,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501 +,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2519,2523,2524,2525,2526,2527,2528,2529,2530,2527,2531,2532,2533,2534,2535,2536,2537,2538,2535,2539,2540,2538,2541,2542,2540,2543,2544,2545,2546 +,2547,2548,2547,2549,2548,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2520,2557,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2560,2583,2584,2567,2562,2585,2586,2569,2587,2588 +,2589,2568,2573,2571,2590,2575,2591,2585,2579,2572,2592,2581,2577,2584,2593,2594,2580,2587,2595,2596,2597,2598,2599,2600,2601,2602,2595,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2609,2617,2618,2612,2619,2620,2621,2622,2623 +,2624,2625,2626,2627,2565,2628,2629,2597,2630,2625,2600,2631,2563,2632,2633,2634,2635,2636,2633,2637,2638,2639,2640,2641,2642,2643,2644,2641,2645,2646,2647,2648,2649,2650,2651,2652,2649,2653,2654,2652,2655,2656,2654,2657,2658,2659,2660,2661,2662,2663 +,2664,2661,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2634,2672,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2675,2698,2699,2682,2677,2700,2701,2684,2702,2703,2704,2683,2688 +,2686,2705,2690,2706,2700,2694,2687,2707,2696,2692,2699,2708,2709,2695,2702,2710,2711,2712,2713,2714,2715,2716,2717,2710,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2724,2732,2733,2727,2734,2735,2736,2737,2738,2739,2740,2741 +,2742,2680,2743,2744,2712,2745,2740,2715,2746,2678,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2754,2758,2759,2757,2760,2761,2759,2762,2763,2764,2765,2766,2763,2767,2768,2766,2769,2770,2771,2772,2773,2774,2775,2776,2773,2777,2778,2776,2779 +,2780,2778,2781,2782,2783,2784,2785,2780,2786,2749,2785,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2787,2810,2811,2794,2789,2812,2813,2796,2814,2815,2816,2795,2800,2798,2817,2802 +,2818,2812,2806,2799,2819,2808,2804,2811,2820,2821,2807,2814,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2831,2839,2840,2834,2841,2842,2837,2843,2844,2839,2845,2846,2841,2847,2848,2843,2849,2850,2851,2792,2852 +,2853,2824,2854,2849,2855,2856,2790,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2864,2868,2869,2867,2870,2871,2869,2872,2873,2874,2875,2876,2873,2877,2878,2876,2879,2880,2881,2882,2883,2884,2885,2886,2883,2887,2888,2886,2889,2890,2888,2891 +,2892,2893,2894,2895,2896,2897,2859,2895,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2898,2921,2922,2905,2900,2923,2924,2907,2925,2926,2927,2906,2911,2909,2928,2913,2929,2923,2917 +,2910,2930,2919,2915,2922,2931,2932,2918,2925,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,2942,2950,2951,2945,2952,2953,2948,2954,2955,2950,2956,2957,2952,2958,2959,2954,2960,2961,2962,2903,2963,2964,2935,2965 +,2960,2966,2967,2901,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2975,2979,2980,2978,2981,2982,2980,2983,2984,2985,2986,2987,2984,2988,2989,2987,2990,2991,2992,2993,2994,2995,2996,2997,2994,2998,2999,2997,3000,3001,2999,3002,3003,3004,3005 +,3006,3007,3008,2970,3006,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3009,3032,3033,3016,3011,3034,3035,3018,3036,3037,3038,3017,3022,3020,3039,3024,3040,3034,3028,3021,3041,3030 +,3026,3033,3042,3043,3029,3036,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3053,3061,3062,3056,3063,3064,3059,3065,3066,3061,3067,3068,3063,3069,3070,3065,3071,3072,3073,3014,3074,3075,3046,3076,3071,3077,3078 +,3012,3079,3080,3081,3082,3083,3080,3084,3085,3086,3087,3088,3085,3089,3090,3088,3091,3092,3090,3093,3094,3095,3096,3097,3094,3098,3099,3097,3100,3101,3099,3102,3103,3104,3105,3106,3103,3107,3108,3106,3109,3110,3108,3111,3112,3113,3114,3115,3116,3117 +,3081,3115,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3119,3141,3142,3124,3143,3120,3144,3145,3128,3146,3126,3147,3130,3148,3129,3134,3143,3149,3136,3150,3131,3140,3141,3135,3151 +,3138,3152,3145,3153,3154,3155,3156,3157,3158,3159,3160,3153,3161,3162,3163,3164,3165,3166,3167,3168,3161,3169,3170,3164,3171,3172,3167,3173,3174,3169,3175,3176,3171,3177,3178,3173,3179,3180,3181,3123,3182,3183,3155,3184,3179,3158,3185,3121,3186,3187 +,3188,3189,3190,3187,3191,3192,3193,3194,3195,3192,3196,3197,3195,3198,3199,3197,3200,3201,3202,3203,3204,3201,3205,3206,3204,3207,3208,3206,3209,3210,3211,3212,3213,3210,3214,3215,3213,3216,3217,3215,3218,3219,3220,3221,3222,3223,3224,3188,3222,3225 +,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3226,3248,3249,3231,3250,3227,3251,3252,3235,3253,3233,3254,3237,3255,3236,3241,3250,3256,3243,3257,3238,3247,3248,3242,3258,3245,3259,3252 +,3260,3261,3262,3263,3264,3265,3266,3267,3260,3268,3269,3270,3271,3272,3273,3274,3275,3268,3276,3277,3271,3278,3279,3274,3280,3281,3276,3282,3283,3278,3284,3285,3280,3286,3287,3288,3230,3289,3290,3262,3291,3286,3265,3292,3228,3293,3294,3295,3296,3297 +,3294,3298,3299,3300,3301,3302,3299,3303,3304,3302,3305,3306,3304,3307,3308,3309,3310,3311,3308,3312,3313,3311,3314,3315,3313,3316,3317,3318,3319,3320,3317,3321,3322,3320,3323,3324,3322,3325,3326,3327,3328,3329,3330,3331,3295,3329,3332,3333,3334,3335 +,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3333,3355,3356,3338,3357,3334,3358,3359,3342,3360,3340,3361,3344,3362,3343,3348,3357,3363,3350,3364,3345,3354,3355,3349,3365,3352,3366,3359,3367,3368,3369 +,3370,3371,3372,3373,3374,3367,3375,3376,3377,3378,3379,3380,3381,3382,3375,3383,3384,3378,3385,3386,3381,3387,3388,3383,3389,3390,3385,3391,3392,3387,3393,3394,3395,3337,3396,3397,3369,3398,3393,3372,3399,3335,3400,3401,3402,3403,3404,3401,3405,3406 +,3407,3408,3409,3406,3410,3411,3409,3412,3413,3411,3414,3415,3416,3417,3418,3415,3419,3420,3418,3421,3422,3420,3423,3424,3425,3426,3427,3424,3428,3429,3427,3430,3431,3429,3432,3433,3434,3435,3436,3437,3438,3402,3436,3439,3440,3441,3442,3443,3444,3445 +,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3440,3462,3463,3445,3464,3441,3465,3466,3449,3467,3447,3468,3451,3469,3450,3455,3464,3470,3457,3471,3452,3461,3462,3456,3472,3459,3473,3466,3474,3475,3476,3477,3478,3479 +,3480,3481,3474,3482,3483,3484,3485,3486,3487,3488,3489,3482,3490,3491,3485,3492,3493,3488,3494,3495,3490,3496,3497,3492,3498,3499,3494,3500,3501,3502,3444,3503,3504,3476,3505,3500,3479,3506,3442,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517 +,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3530,3534,3524,3522,3524,3535,3535,3524,3536,3536,3524,3534,3537,3530,3538,3538,3530,3539,3539,3530,3529,3540,3541,3542,3543,3544,3545,3519,3546,3543,3547,3548,3549,3550 +,3551,3552,3532,3551,3553,3549,3541,3547,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3571,3577,3569,3571,3582,3582,3571,3583,3583,3571,3584,3581,3577,3585 +,3585,3577,3586,3586,3577,3576,3587,3588,3589,3590,3591,3592,3566,3593,3590,3594,3595,3596,3597,3598,3599,3579,3600,3597,3595,3588,3596,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623 +,3624,3625,3626,3627,3624,3628,3618,3616,3618,3629,3629,3618,3630,3630,3618,3628,3631,3624,3632,3632,3624,3633,3633,3624,3623,3634,3635,3636,3637,3638,3639,3613,3640,3637,3641,3642,3643,3644,3645,3646,3626,3647,3644,3642,3635,3643,3648,3649,3650,3651 +,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3665,3671,3663,3665,3676,3676,3665,3677,3677,3665,3678,3675,3671,3679,3679,3671,3680,3680,3671,3670,3681,3682,3683,3684,3685,3686 +,3660,3687,3684,3688,3689,3690,3691,3692,3693,3673,3694,3691,3689,3682,3690,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3714,3716,3717,3718,3719,3720,3721,3722,3723,3723,3724,3721,3725,3726 +,3727,3728,3727,3729,3729,3724,3730,3725,3731,3732,3733,3734,3735,3736,3737,3738,3735,3739,3740,3741,3742,3743,3744,3745,3740,3746,3747,3748,3749,3747,3750,3751,3748,3752,3752,3753,3754,3754,3755,3756,3757,3755,3758,3757,3758,3759,3758,3760,3759,3761 +,3762,3763,3759,3760,3762,3760,3764,3762,3764,3765,3766,3722,3767,3768,3768,3769,3765,3765,3770,3766,3766,3771,3772,3772,3773,3774,3775,3773,3776,3777,3774,3775,3775,3778,3779,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3789,3792 +,3763,3793,3794,3763,3794,3761,3761,3794,3795,3796,3794,3797,3797,3798,3799,3799,3800,3797,3797,3800,3796,3796,3801,3802,3756,3803,3804,3805,3803,3806,3807,3806,3802,3807,3801,3808,3808,3809,3810,3810,3811,3812,3813,3814,3815,3816,3814,3817,3815,3818 +,3819,3777,3820,3821,3820,3822,3821,3821,3822,3798,3823,3822,3824,3816,3825,3826,3827,3828,3826,3784,3826,3829,3830,3783,3831,3832,3830,3831,3833,3831,3783,3834,3835,3836,3830,3837,3838,3838,3837,3839,3837,3840,3839,3841,3842,3843,3839,3840,3842,3844 +,3791,3842,3845,3838,3839,3818,3846,3819,3846,3847,3848,3849,3847,3850,3847,3841,3850,3841,3851,3850,3851,3841,3852,3841,3843,3852,3853,3854,3843,3852,3843,3854,3855,3852,3854,3854,3856,3855,3850,3857,3858,3859,3855,3856,3855,3859,3857,3857,3859,3858 +,3858,3860,3861,3849,3862,3848,3861,3860,3863,3859,3864,3865,3866,3867,3868,3869,3870,3871,3871,3872,3873,3873,3874,3875,3876,3865,3864,3877,3865,3875,3878,3877,3875,3879,3865,3877,3880,3881,3882,3881,3865,3882,3865,3879,3882,3879,3883,3882,3877,3878 +,3884,3885,3886,3887,3886,3888,3887,3889,3890,3884,3878,3889,3884,3891,3892,3887,3887,3892,3885,3878,3893,3889,3894,3895,3896,3893,3897,3894,3893,3898,3899,3900,3901,3902,3903,3902,3901,3904,3891,3905,3904,3905,3906,3905,3896,3906,3906,3896,3907,3907 +,3895,3908,3907,3909,3910,3911,3912,3913,3914,3913,3912,3915,3912,3903,3916,3909,3917,3916,3918,3919,3920,3910,3916,3921,3922,3915,3923,3922,3920,3924,3925,3926,3924,3926,3927,3924,3928,3929,3929,3930,3924,3931,3930,3929,3931,3929,3932,3931,3933,3934 +,3924,3930,3935,3930,3936,3935,3935,3937,3938,3939,3940,3941,3940,3942,3943,3941,3944,3936,3943,3945,3944,3944,3945,3936,3945,3937,3936,3946,3934,3933,3947,3946,3948,3947,3949,3950,3950,3949,2364,3950,3951,3952,3953,3942,3954,3955,3954,3942,3956,3955 +,3957,3955,3951,3958,3957,3958,3959,3960,3958,3951,3959,3961,3962,3963,3962,3961,3964,3961,3965,3964,3966,3967,3965,3968,3966,3966,3968,3969,3968,3970,3969,2366,3971,3970,2364,3949,3972,3970,3971,3969,3973,3974,3975,3976,3973,3977,3976,3978,3979,3979 +,3980,3981,3979,3975,3974,3975,3982,3983,3980,3984,3981,3985,3981,3984,3986,3987,3988,3989,3987,3990,3988,3987,3991,3988,3991,3984,3984,3991,3992,3989,3993,3994,3995,3996,3997,3998,3999,4000,4000,3995,3997,4001,4002,4003,4004,4001,4005,4006,4004,4005 +,3991,4007,3992,3992,4008,4009,4008,4007,4010,4011,4012,4013,4012,4003,4013,4003,4014,4015,4016,4014,4002,4017,4016,4002,4013,4003,4015,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4028,4031,4032,4033,4031,4031,4033,4030,4034,4035 +,4027,4036,4027,4035,4035,4037,4036,4038,4036,4037,4039,4040,4038,4036,4038,4040,4040,4041,4036,4036,4041,4032,4042,4041,4043,4043,4044,4045,4046,4045,4044,4044,4047,4046,4048,4049,4047,4049,4050,4047,4050,4051,4047,4052,4053,4054,4055,4056,4053,4057 +,4058,4052,4059,4060,4061,4062,4063,4064,4065,4066,4067,4064,4065,4067,4058,4064,4068,4069,4070,4068,4071,4067,4066,4069,4072,4073,4073,4074,4069,4069,4075,4076,4077,4078,4079,4067,4071,4072,4071,4080,4072,4081,4082,4083,4080,4079,4072,4079,4084,4077 +,4085,4084,4086,4087,4077,4085,4088,4074,4089,4090,4088,4089,4091,4088,4090,4090,4092,4093,4094,4093,4095,4096,4095,4093,4093,4092,4096,4097,4077,4087,4098,4099,4097,4100,4098,4101,4092,4099,4096,4102,4103,4104,4105,4091,4106,4091,4107,4106,4108,4106 +,4107,4108,4109,4106,4110,4111,4112,4113,4114,4115,4114,4116,4115,4115,4117,4118,4119,4120,4121,4120,4122,4121,4123,4117,4124,4125,4121,4122,4126,4115,4127,4128,4129,4130,4125,4123,4131,4124,4132,4133,4124,4131,4123,3919,4134,3923,4135,4017,4136,4017 +,4137,4136,4138,4139,3914,4132,4140,4133,3918,4141,3919,4137,4142,4136,3914,4143,4144,3923,4145,4138,4146,4147,4148,4149,4150,4147,4151,4152,4153,4154,4155,4152,4156,4157,4155,4158,4159,4157,4160,4161,4162,4163,4164,4161,4165,4166,4164,4167,4168,4166 +,4169,4170,4171,4172,4173,4170,4174,4175,4173,4176,4177,4175,4178,4179,4180,4181,4182,4183,4184,4148,4182,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4186,4208,4209,4191,4210,4187 +,4211,4212,4195,4213,4193,4214,4197,4215,4196,4201,4210,4216,4203,4217,4198,4207,4208,4202,4218,4205,4219,4212,4220,4221,4222,4223,4224,4225,4226,4227,4220,4228,4229,4230,4231,4232,4233,4234,4235,4228,4236,4237,4231,4238,4239,4234,4240,4241,4236,4242 +,4243,4238,4244,4245,4240,4246,4247,4248,4190,4249,4250,4222,4251,4246,4225,4252,4188,4253,4254,4255,4256,4257,4254,4258,4259,4260,4261,4262,4259,4263,4264,4262,4265,4266,4264,4267,4268,4269,4270,4271,4268,4272,4273,4271,4274,4275,4273,4276,4277,4278 +,4279,4280,4277,4281,4282,4280,4283,4284,4282,4285,4286,4287,4288,4289,4290,4291,4255,4289,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4293,4315,4316,4298,4317,4294,4318,4319,4302 +,4320,4300,4321,4304,4322,4303,4308,4317,4323,4310,4324,4305,4314,4315,4309,4325,4312,4326,4319,4327,4328,4329,4330,4331,4332,4333,4334,4327,4335,4336,4337,4338,4339,4340,4341,4342,4335,4343,4344,4338,4345,4346,4341,4347,4348,4343,4349,4350,4345,4351 +,4352,4347,4353,4354,4355,4297,4356,4357,4329,4358,4353,4332,4359,4295,4360,4361,4362,4363,4364,4361,4365,4366,4367,4368,4369,4370,4371,4372,4369,4373,4374,4375,4376,4377,4378,4379,4380,4377,4381,4382,4380,4383,4384,4382,4385,4386,4387,4388,4389,4390 +,4389,4391,4390,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4362,4399,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4402,4425,4426,4409,4404,4427,4428,4411,4429,4430,4431,4410 +,4415,4413,4432,4417,4433,4427,4421,4414,4434,4423,4419,4426,4435,4436,4422,4429,4437,4438,4439,4440,4441,4442,4443,4444,4437,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4451,4459,4460,4454,4461,4462,4463,4464,4465,4466,4467 +,4468,4469,4407,4470,4471,4439,4472,4467,4442,4473,4405,4474,4475,4476,4477,4478,4475,4479,4480,4481,4482,4483,4484,4485,4486,4483,4487,4488,4489,4490,4491,4492,4493,4494,4491,4495,4496,4494,4497,4498,4496,4499,4500,4501,4502,4503,4504,4505,4506,4503 +,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4476,4514,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4517,4540,4541,4524,4519,4542,4543,4526,4544,4545,4546,4525,4530,4528,4547 +,4532,4548,4542,4536,4529,4549,4538,4534,4541,4550,4551,4537,4544,4552,4553,4554,4555,4556,4557,4558,4559,4552,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4566,4574,4575,4569,4576,4577,4578,4579,4580,4581,4582,4583,4584,4522 +,4585,4586,4554,4587,4582,4557,4588,4520,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,75,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4615,4617,4618,4619,4615,4618,4620,4621,4622,4623,4624,4625 +,4623,4625,4626,4627,4623,4626,4628,4629,4630,4631,3707,3709,4632,4633,4634,4635,4636,4637,4638,4064,4639,4060,4638,4640,4641,4642,4013,0,4643,1,2,1,3,5,4644,6,8,4645,9,11,4646,12,14,4647,15,17,4648,18,20,4649 +,21,23,26,24,26,4650,27,28,4651,29,31,4652,32,34,4653,35,37,4654,38,40,4655,41,43,610,44,46,4656,47,49,4657,50,52,4658,53,55,4659,56,58,641,59,61,4660,62,64,4661,65,67,4662,68,70 +,4663,71,73,70,72,78,4664,79,82,4665,77,77,76,82,83,4666,84,86,320,87,89,4667,90,92,4668,93,95,665,96,98,4669,99,101,4670,102,104,4671,105,106,105,107,109,301,110,112,4672,113,115,4673,116 +,118,4674,119,121,310,122,124,101,103,126,4675,127,128,127,129,131,4676,132,134,4677,135,137,4678,138,140,4679,141,143,4680,144,146,145,147,147,263,149,151,155,152,154,4681,155,156,4682,157,159,4683,160,162,4684 +,163,165,4685,166,159,161,168,170,4686,171,173,177,174,176,179,177,178,4687,177,180,184,181,183,4688,184,185,201,186,188,4689,189,191,4690,192,194,4691,195,197,4692,198,185,4693,200,202,4694,203,205,381,206,208 +,379,209,211,391,212,214,393,215,217,4695,218,220,217,219,221,219,222,224,236,225,227,4696,228,229,228,230,232,4697,233,235,4698,236,237,4699,238,240,4700,241,243,4701,244,246,4702,247,249,4703,250,252,4704,253 +,255,4705,256,258,4706,259,145,144,261,145,262,263,144,150,149,264,282,265,267,4707,268,270,4708,271,273,4709,274,276,4710,277,279,276,278,281,285,282,283,266,265,281,283,284,286,4711,287,289,4712,290,292,4713 +,293,295,4714,296,298,4715,299,123,122,301,114,113,302,304,4716,4717,307,4718,308,310,4719,311,302,113,312,314,4720,315,317,4721,318,4722,87,321,320,4723,321,72,71,322,324,4724,325,80,79,320,327,4725,328,4724 +,324,331,4726,330,324,332,4727,333,4728,335,323,74,72,323,337,4729,338,340,353,341,343,4730,344,346,4731,347,349,4732,350,352,356,341,354,340,342,354,355,356,357,4733,358,360,4734,361,363,4735,364,366,4736,367 +,369,4737,370,372,4738,373,375,4739,376,208,4740,378,205,4741,380,382,388,383,385,389,386,385,387,388,384,383,386,211,4742,390,214,4743,392,394,4744,395,397,4745,398,400,586,401,28,4746,4747,405,4748,406,408,4749 +,409,411,4750,412,414,4751,415,417,4752,418,420,4753,421,423,4754,424,426,4755,427,429,4756,430,432,4757,433,435,4758,436,438,4759,439,441,4760,442,444,4761,445,447,4762,448,450,4763,451,453,4764,454,456,4765,457,459 +,4766,460,462,4767,463,465,4768,466,470,562,468,468,487,469,471,4769,472,474,547,475,477,4770,478,480,4771,481,483,4772,484,486,469,487,489,40,42,36,35,491,495,490,493,42,493,490,496,4773,497,499,4774,500 +,502,4775,503,505,4776,506,508,4777,509,511,4778,512,514,4779,515,519,538,517,517,733,518,538,540,517,520,530,521,523,4780,524,526,731,527,529,4781,530,531,4782,532,4783,536,535,534,729,535,535,4784,4783,520,4785 +,537,538,4786,4787,541,4788,542,544,4789,545,472,4769,547,486,488,548,473,476,475,550,4790,551,553,4791,554,556,4792,557,559,4793,560,562,470,549,563,569,564,566,4794,567,566,568,565,567,4794,569,570,4795,571,573 +,4796,574,576,4797,577,579,4798,580,584,407,4799,406,582,407,583,4800,407,4799,407,4800,584,4801,585,4802,401,586,586,592,4803,4803,587,586,588,4802,586,589,4804,590,592,586,593,590,4804,595,597,4805,598,600,603,601 +,603,589,591,547,597,599,604,4806,605,607,45,44,609,611,610,607,608,611,612,4807,613,615,4808,616,618,4809,619,621,4810,622,624,4811,625,626,625,627,629,526,528,631,4812,632,636,35,4653,4653,634,636,637,4813 +,638,640,644,641,642,60,59,642,643,644,645,4814,646,648,4815,649,651,4816,652,654,4817,655,657,4818,658,660,664,661,660,666,663,662,661,665,666,97,96,669,4819,4820,4820,667,669,670,4821,671,673,4822,674,676 +,4823,677,679,4824,680,682,4825,683,685,4826,686,688,4827,689,691,4828,692,694,4829,695,697,4830,698,700,4831,701,703,4832,704,706,4833,707,709,2353,710,712,4834,713,715,4835,716,718,4836,719,721,4837,722,724,4838,725 +,526,629,727,729,4839,730,731,526,728,733,517,734,736,864,737,739,4840,740,742,4841,743,745,4842,746,748,4843,749,751,4844,752,754,4845,755,757,4846,758,760,4847,761,763,4848,764,766,4849,767,769,4850,770,772,4851 +,773,775,4852,776,778,4853,779,781,4854,782,784,4855,785,787,4856,788,790,4857,791,793,4858,794,796,4859,797,799,4860,800,804,836,838,838,802,804,805,823,806,808,4861,809,811,4862,812,814,4863,815,817,4864,818,820 +,822,803,810,807,806,820,837,821,809,4861,823,824,4865,825,827,4866,828,830,4867,831,833,4868,834,836,821,837,839,845,840,842,4869,843,841,4869,842,845,844,843,846,4870,847,849,4871,850,852,4872,853,855,4873,856 +,4840,739,4874,861,858,739,859,4875,739,4874,739,4875,860,4876,861,864,736,4877,4877,862,864,863,4878,864,868,864,4878,865,871,866,868,4879,869,870,4880,871,872,4881,873,875,878,876,867,866,878,874,873,810,879,4882 +,880,882,4883,883,885,4884,886,888,4885,889,891,4886,892,894,4887,895,897,4888,898,900,4889,901,903,4890,904,906,4891,907,909,4892,910,912,4893,913,915,4894,916,918,4895,919,921,4896,922,924,4897,925,927,4898,928,930 +,4899,931,933,4900,934,936,4901,937,939,4902,940,942,4903,943,945,4904,946,948,4905,949,951,4906,952,954,4907,955,957,4908,958,960,4909,961,963,714,964,966,4910,967,969,4911,970,4912,4913,973,975,4914,724,714,713,976 +,977,4915,978,980,4916,981,983,4917,984,986,4918,987,989,4919,990,992,4920,993,995,4921,996,998,4922,999,1001,1004,1002,1004,4923,1005,1006,4924,1007,1009,4925,1010,1012,4926,1013,1015,4927,1016,1018,4928,1019,1021,1498,1022,1024,4929 +,1025,1027,4930,1028,1030,4931,1031,1033,4932,1034,1036,1529,1037,1039,4933,1040,1042,4934,1043,1045,4935,1046,1048,4936,1049,1050,1049,1051,1053,1060,1054,1056,4937,1057,1059,4938,1060,1061,4939,1062,1064,1067,1065,1067,4940,1068,1069,1234,1070,1072 +,4941,1073,1075,4942,1076,1078,1553,1079,1081,4943,1082,1084,4944,1085,1087,4945,1088,1089,1088,1090,1092,1099,1093,1095,4946,1096,1098,1223,1099,1100,1084,1086,1102,4947,1103,1105,4948,1106,1108,4949,1109,1111,4950,1112,1114,1175,1115,1115,1178,1117 +,1119,4951,1120,1122,4952,1123,1125,4953,1126,4954,4955,1129,1131,4956,1132,1125,1127,1134,1136,4957,1137,1139,4958,1140,1142,4959,1143,1145,4960,1146,1148,4961,1149,1151,4962,1152,1154,4963,1155,1157,4964,1158,1160,4965,1161,1163,4966,1164,1166,4967 +,1167,1169,4968,1170,1172,4969,1173,1175,1179,1176,1175,1177,1178,1179,1118,1117,1180,1196,1181,1183,4970,1184,1186,4971,1187,1189,4972,1190,1192,1216,1193,1195,1199,1196,1197,1182,1181,1195,1197,1198,1200,4973,1201,1203,4974,1204,1206,4975,1207,1209 +,4976,1210,1212,4977,1213,1215,4978,1193,1217,4979,1218,1220,4980,1221,1223,4981,1224,1218,4979,1225,1227,4982,1228,1230,4983,1231,1069,4984,1233,1235,1048,1050,1237,4985,1238,1058,4986,4987,4987,1240,1058,1241,4988,1242,4989,1239,1245,1238,1244,1239 +,1246,1251,1247,1249,1236,1050,1250,1247,1251,1253,4990,1254,1256,4991,1257,1259,4992,1260,1262,4993,1263,1265,4994,1266,1268,4995,1269,1271,1279,1272,1274,1278,1275,1277,1882,1278,1276,1275,1272,1280,4996,1281,4997,1285,1284,4998,1283,1285,1286,1474 +,1287,1006,4999,5000,1291,5001,1292,1294,5002,1295,1297,5003,1298,1300,5004,1301,1303,5005,1304,1306,5006,1307,1309,5007,1310,1312,5008,1313,1315,5009,1316,1318,5010,1319,1321,5011,1322,1324,5012,1325,1327,5013,1328,1330,5014,1331,1333,5015,1334,1336 +,5016,1337,1339,5017,1340,1342,5018,1343,1345,5019,1346,1348,5020,1349,1351,5021,1352,1356,1450,1354,1354,1373,1355,1357,5022,1358,1360,1435,1361,1363,5023,1364,1366,5024,1367,1369,5025,1370,1372,1355,1373,1375,1018,1020,1014,1013,1377,1381,1376,1379 +,1020,1379,1376,1382,5026,1383,1385,5027,1386,1388,5028,1389,1391,5029,1392,1394,5030,1395,1397,5031,1398,1400,5032,1401,1405,1427,1403,1403,1604,1404,1427,1429,1403,1406,1416,1407,1409,5033,1410,1412,1603,1413,1415,5034,1416,1417,5035,1418,5036,1422 +,1421,1420,1600,1421,1421,5037,5036,1423,5038,1424,1406,5039,1426,1427,5040,1428,1430,1433,1431,1433,5041,1434,1358,5022,1435,1372,1374,1436,1359,1362,1361,1438,5042,1439,1441,5043,1442,1444,5044,1445,1447,5045,1448,1450,1356,1437,1451,1457,1452,1454 +,5046,1455,1454,1456,1453,1455,5046,1457,1458,5047,1459,1461,5048,1462,1464,5049,1465,1467,5050,1468,1472,1293,5051,1292,1470,1293,1471,5052,1293,5051,1293,5052,1472,5053,1473,5054,1287,1474,1474,1480,5055,5055,1475,1474,1476,5054,1474,1477,1483,1478 +,1480,1474,1481,1483,5056,1484,1485,5057,1486,1488,1491,1489,1491,1477,1479,1435,1485,1487,1492,5058,1493,1495,1023,1022,1497,1499,1498,1497,1495,1496,1500,5059,1501,1503,5060,1504,1506,5061,1507,1509,5062,1510,1512,5063,1513,1514,1513,1515,1517,1412 +,1414,1519,5064,1520,1524,1013,4926,4926,1522,1524,1525,5065,1526,1528,1532,1529,1530,1038,1037,1528,1530,1531,1533,5066,1534,1536,5067,1537,1539,5068,1540,1542,5069,1543,1545,1565,1546,1548,1551,1549,1551,1554,1552,1548,1550,1553,1080,1079,1552,1557 +,5070,1555,1555,5071,1556,1558,5072,1559,1561,5073,1562,1564,5074,1565,1566,5075,1567,1569,5076,1570,1572,5077,1573,1575,5078,1576,1578,5079,1579,1581,5080,1582,1584,5081,1585,1587,5082,1588,1590,5083,1591,1593,5084,1594,1596,5085,1597,1517,5086,1599 +,1600,5087,1601,1412,1599,1602,1604,1403,1605,1607,1736,1608,1610,5088,1611,1613,5089,1614,1616,5090,1617,1619,5091,1620,1622,5092,1623,1625,5093,1626,1628,5094,1629,1631,5095,1632,1634,5096,1635,1637,5097,1638,1640,5098,1641,1643,5099,1644,1646,5100 +,1647,1649,5101,1650,1652,5102,1653,1655,5103,1656,1658,5104,1659,1661,5105,1662,1664,5106,1665,1667,5107,1668,1670,5108,1671,1675,1708,1710,1710,1673,1675,1676,1692,1677,1679,1695,1680,1682,5109,1683,1685,5110,1686,1688,5111,1689,1691,1694,1674,1680 +,1677,1692,1691,1709,1693,1695,1679,1676,1696,5112,1697,1699,5113,1700,1702,5114,1703,1705,5115,1706,1708,1693,1709,1711,1717,1712,1714,5116,1715,1713,5116,1714,1717,1716,1715,1718,5117,1719,1721,5118,1722,1724,5119,1725,1727,5120,1728,5088,1610,5121 +,1733,1730,1610,1731,5122,1610,5121,1610,5122,1732,5123,1733,1736,1607,5124,5124,1734,1736,1735,5125,1736,1740,1736,5125,1737,1743,1738,1740,5126,1741,1742,5127,1743,1744,5128,1745,1747,1750,1748,1739,1738,1750,1695,1746,1745,1751,5129,1752,1754,5130 +,1755,1757,5131,1758,1760,5132,1761,1763,5133,1764,1766,5134,1767,1769,5135,1770,1772,5136,1773,1775,5137,1776,1778,5138,1779,1781,5139,1782,1784,5140,1785,1787,5141,1788,1790,5142,1791,1793,5143,1794,1796,5144,1797,1799,5145,1800,1802,5146,1803,1805 +,5147,1806,1808,5148,1809,1811,5149,1812,1814,5150,1815,1817,5151,1818,1820,5152,1821,1823,5153,1824,1826,5154,1827,1829,5155,1830,1832,5156,1833,5157,5158,1836,1838,5159,1596,1586,1585,1839,1841,5160,1842,1844,5161,1845,1847,5162,1848,1850,5163,1851 +,1851,5163,1853,1855,1864,1856,1858,5164,1859,1861,5165,1862,1854,1853,1864,1856,1850,1852,1865,5166,1866,1868,5167,1869,1871,5168,1872,1874,1867,1866,1876,5169,1877,1879,5170,1880,1277,1271,1273,1883,5171,1884,1886,5172,1887,1889,5173,1890,1892,5174 +,5175,1895,5176,1896,1898,5177,1899,1901,5178,1902,1904,5179,1905,1907,1910,1908,1910,1924,1911,1912,1925,1913,1915,5180,1916,1918,5181,1919,1921,5182,1922,1914,1913,1911,1907,1909,1925,1926,5183,1927,1929,5184,1930,5185,5186,1933,1935,5187,1936,1938 +,5188,1939,1941,5189,1942,1944,5190,1945,1947,5191,1948,1950,5192,1951,1955,5193,1953,5194,5195,5193,1953,5196,1954,5197,5198,5199,5199,1954,5196,5193,5195,1953,5196,5197,5199,1956,1963,1957,1959,5200,1960,1952,1966,1962,1969,5201,1970,1972,5202,1973 +,1975,1949,1948,1977,5203,1978,1980,5204,1981,1983,5200,1959,1969,1971,1977,1985,5205,1986,1988,5206,1989,1991,5207,1992,1994,5208,1995,1997,5209,1998,2000,5210,2001,2005,5211,2003,5212,5213,5211,2003,5214,2004,5215,5216,5217,5217,2004,5214,5211,5213 +,2003,5214,5215,5217,2006,2013,2007,2009,5218,2010,2002,2016,2012,2019,5219,2020,2022,5220,2023,2025,1999,1998,2027,5221,2028,2030,5222,2031,2033,5218,2009,2019,2021,2027,2035,5223,2036,2038,5224,2039,2041,5225,2042,2044,5226,2045,2047,5227,2048,2050 +,5228,2051,2055,5229,2053,5230,5231,5229,2053,5232,2054,5233,5234,5235,5235,2054,5232,5229,5231,2053,5232,5233,5235,2056,2063,2057,2059,5236,2060,2052,2066,2062,2069,5237,2070,2072,5238,2073,2075,2049,2048,2077,5239,2078,2080,5240,2081,2083,5236,2059 +,2069,2071,2077,2085,5241,2086,2088,5242,2089,2091,5243,2092,2094,5244,2095,2097,5245,2098,2100,5246,2101,2105,5247,2103,5248,5249,5247,2103,5250,2104,5251,5252,5253,5253,2104,5250,5247,5249,2103,5250,5251,5253,2106,2113,2107,2109,5254,2110,2102,2116 +,2112,2119,5255,2120,2122,5256,2123,2125,2099,2098,2127,5257,2128,2130,5258,2131,2133,5254,2109,2119,2121,2127,2135,5259,2136,2138,5260,2139,2141,5261,2142,2144,5262,2145,2147,5263,2148,2150,5264,2151,2153,5265,2154,2156,5266,2157,2159,5267,2160,2162 +,5268,2163,2165,5269,2166,2170,5270,2168,5271,5272,5270,2168,5273,2169,5274,5275,5276,5276,2169,5273,5270,5272,2168,5273,5274,5276,2171,2178,2172,2174,5277,2175,2167,2181,2177,2184,5278,2185,5279,5280,2188,2190,2164,2163,2192,2200,2193,5281,5282,2196 +,2198,5277,2174,2184,2186,2200,2201,5283,2202,2204,5284,2205,2207,5285,2208,2210,5286,2211,2213,5287,2214,2216,5288,2217,2221,5289,2219,5290,5291,5289,2219,5292,2220,5293,5294,5295,5295,2220,5292,5289,5291,2219,5292,5293,5295,2222,2228,2223,2225,5296 +,2226,2228,2218,2229,2235,5297,2236,5298,5299,2239,2241,2215,2214,2243,5300,2244,5301,5302,2247,2249,5296,2225,2235,2237,2243,2251,5303,2252,2254,5304,2255,2257,5305,2258,2260,5306,2261,2263,5307,2264,2266,5308,2267,2271,5309,2269,5310,5311,5309,2269 +,5312,2270,5313,5314,5315,5315,2270,5312,5309,5311,2269,5312,5313,5315,2272,2279,2273,2275,5316,2276,2268,2282,2278,2285,5317,2286,5318,5319,2289,2291,2265,2264,2293,5320,2294,5321,5322,2297,2299,5316,2275,2285,2287,2293,2301,5323,2302,2304,5324,2305 +,2307,5325,2308,2310,5326,2311,2313,5327,2314,2316,5328,2317,2321,5329,2319,5330,5331,5329,2319,5332,2320,5333,5334,5335,5335,2320,5332,5329,5331,2319,5332,5333,5335,2322,2328,2323,2325,5336,2326,2328,2318,2329,2335,5337,2336,5338,5339,2339,2341,2315 +,2314,2343,2351,2344,5340,5341,2347,2349,5336,2325,2343,5337,2335,2352,5342,710,2354,702,701,699,698,2356,2358,5343,2359,2361,5344,2362,2364,3972,2365,2367,5345,697,2368,5346,2369,2371,5347,2372,2374,5348,2375,2377,5349,2378,2380,5350,2381,2383 +,5351,2384,2386,5352,2387,2389,5353,2390,2392,5354,2393,2395,5355,2396,2398,5356,2399,2401,5357,2402,2404,5358,2405,2407,5359,2408,2410,5360,2411,2413,5361,2414,2416,5362,2417,2419,5363,2420,2422,5364,2423,2425,5365,2426,2428,5366,2429,2431,5367,2432 +,2434,5368,2435,2437,5369,2438,2440,5370,2441,2443,5371,2444,2446,5372,2447,2449,5373,2450,2452,5374,2453,2455,5375,2456,2458,5376,2459,2461,5377,2462,2464,5378,2465,2467,5379,2468,2470,5380,2471,2473,5381,2474,2476,5382,2477,2479,5383,2480,2482,5384 +,2483,2485,5385,2486,2488,5386,2489,2491,5387,2492,2494,5388,2495,2497,5389,2498,2500,5390,2501,2503,5391,2504,2506,5392,2507,2509,5393,2510,2512,5394,2513,2515,5395,2516,2518,2521,2519,2521,5396,2522,2523,5397,2524,2526,2529,2527,2529,5398,2530,2531 +,5399,2532,2534,2537,2535,2537,2539,2538,2539,2541,2540,2541,5400,2542,2543,5401,2544,5402,5403,2547,2547,5404,2549,2550,5405,2551,5406,2555,2554,5407,5408,5409,5410,5411,5412,5413,5414,5411,5412,5409,5408,5415,2553,2555,2554,5416,5417,5418,5417,5416 +,2555,5407,5415,5411,5414,5412,5409,5415,5407,2554,5417,5406,5408,5410,5412,2556,2559,2557,2559,2518,2520,2560,2582,2561,2563,2631,2564,2566,2583,2567,2569,2588,2570,2572,2589,2573,2575,2590,2576,2578,2591,2579,2581,2592,2582,2583,2593,2584,2562,2561 +,2585,2569,2594,2587,2589,2566,2568,2571,2570,2590,2591,2586,2585,2572,2574,2592,2577,2576,2584,2594,2578,2580,2595,2602,2596,2598,5419,2599,2601,5420,2602,2603,5421,2604,2606,5422,2607,2609,2616,2610,2612,2618,2613,2615,5423,2616,2617,5424,2618,2619 +,5425,2620,2622,5426,2623,2625,2630,2626,2565,2564,2628,2597,2596,2630,2600,2599,2631,2632,2635,2633,2635,5427,2636,2637,5428,2638,2640,2643,2641,2643,5429,2644,2645,5430,2646,2648,2651,2649,2651,2653,2652,2653,2655,2654,2655,5431,2656,2657,5432,2658 +,2660,2663,2661,2663,5433,2664,2665,5434,2666,5435,2670,2669,5436,5437,5438,5439,5440,5441,5442,5443,5440,5441,5438,5437,5444,2668,2670,2669,5445,5446,5447,5446,5445,2670,5436,5444,5440,5443,5441,5438,5444,5436,2669,5446,5435,5437,5439,5441,2671,2674 +,2672,2674,2632,2634,2675,2697,2676,2678,2746,2679,2681,2698,2682,2684,2703,2685,2687,2704,2688,2690,2705,2691,2693,2706,2694,2696,2707,2697,2698,2708,2699,2677,2676,2700,2684,2709,2702,2704,2681,2683,2686,2685,2705,2706,2701,2700,2687,2689,2707,2692 +,2691,2699,2709,2693,2695,2710,2717,2711,2713,5448,2714,2716,5449,2717,2718,5450,2719,2721,5451,2722,2724,2731,2725,2727,2733,2728,2730,5452,2731,2732,5453,2733,2734,5454,2735,2737,5455,2738,2740,2745,2741,2680,2679,2743,2712,2711,2745,2715,2714,2746 +,2747,5456,2748,2750,5457,2751,2753,2756,2754,2756,2758,2757,2758,2760,2759,2760,5458,2761,2762,2765,2763,2765,2767,2766,2767,5459,2768,2769,5460,2770,2772,2775,2773,2775,2777,2776,2777,2779,2778,2779,2784,2780,2783,5461,2781,5462,5463,5464,5465,5466 +,5467,5468,5467,5466,5469,5464,5465,5470,2781,5461,2782,5471,2783,5472,5473,5471,5461,5462,5470,5465,5467,5469,5464,5470,5462,5471,5473,2783,5463,5465,5464,2784,2786,2785,2786,2747,2749,2787,2809,2788,2790,2856,2791,2793,2810,2794,2796,2815,2797,2799 +,2816,2800,2802,2817,2803,2805,2818,2806,2808,2819,2809,2810,2820,2811,2789,2788,2812,2796,2821,2814,2816,2793,2795,2798,2797,2817,2818,2813,2812,2799,2801,2819,2804,2803,2811,2821,2805,2807,2822,5474,2823,2825,5475,2826,2828,5476,2829,2831,2838,2832 +,2834,2840,2835,2837,2842,2838,2839,2844,2840,2841,2846,2842,2843,2848,2844,2845,5477,2846,2847,5478,2848,2849,2854,2850,2792,2791,2852,2824,2823,2854,5479,5480,2856,2857,5481,2858,2860,5482,2861,2863,2866,2864,2866,2868,2867,2868,2870,2869,2870,5483 +,2871,2872,2875,2873,2875,2877,2876,2877,5484,2878,2879,5485,2880,2882,2885,2883,2885,2887,2886,2887,2889,2888,2889,5486,2890,5487,2893,2892,5488,5489,5490,5491,5492,5493,5494,5495,5492,5493,5490,5489,5496,2891,2893,2892,5497,5498,5499,5498,5497,2893 +,5488,5496,5492,5495,5493,5490,5496,5488,2892,5498,5487,5489,5491,5493,2894,2897,2895,2897,2857,2859,2898,2920,2899,2901,2967,2902,2904,2921,2905,2907,2926,2908,2910,2927,2911,2913,2928,2914,2916,2929,2917,2919,2930,2920,2921,2931,2922,2900,2899,2923 +,2907,2932,2925,2927,2904,2906,2909,2908,2928,2929,2924,2923,2910,2912,2930,2915,2914,2922,2932,2916,2918,2933,5500,2934,2936,5501,2937,2939,5502,2940,2942,2949,2943,2945,2951,2946,2948,2953,2949,2950,2955,2951,2952,2957,2953,2954,2959,2955,2956,5503 +,2957,2958,5504,2959,2960,2965,2961,2903,2902,2963,2935,2934,2965,5505,5506,2967,2968,5507,2969,2971,5508,2972,2974,2977,2975,2977,2979,2978,2979,2981,2980,2981,5509,2982,2983,2986,2984,2986,2988,2987,2988,5510,2989,2990,5511,2991,2993,2996,2994,2996 +,2998,2997,2998,3000,2999,3000,5512,3001,3004,5513,3002,5514,5515,5516,5517,5518,5519,5520,5519,5518,5521,5516,5517,5522,3002,5513,3003,5523,3004,5524,5525,5523,5513,5514,5522,5517,5519,5521,5516,5522,5514,5523,5525,3004,5515,5517,5516,3005,3008,3006 +,3008,2968,2970,3009,3031,3010,3012,3078,3013,3015,3032,3016,3018,3037,3019,3021,3038,3022,3024,3039,3025,3027,3040,3028,3030,3041,3031,3032,3042,3033,3011,3010,3034,3018,3043,3036,3038,3015,3017,3020,3019,3039,3040,3035,3034,3021,3023,3041,3026,3025 +,3033,3043,3027,3029,3044,5526,3045,3047,5527,3048,3050,5528,3051,3053,3060,3054,3056,3062,3057,3059,3064,3060,3061,3066,3062,3063,3068,3064,3065,3070,3066,3067,5529,3068,3069,5530,3070,3071,3076,3072,3014,3013,3074,3046,3045,3076,5531,5532,3078,3079 +,3082,3080,3082,5533,3083,3084,3087,3085,3087,3089,3088,3089,3091,3090,3091,5534,3092,3093,3096,3094,3096,3098,3097,3098,3100,3099,3100,5535,3101,3102,3105,3103,3105,3107,3106,3107,3109,3108,3109,5536,3110,5537,5538,5539,5540,5539,5538,5541,5542,5537 +,5543,3113,3112,5544,5545,5546,5547,5548,5545,5546,3111,5544,3112,5549,5543,5537,5539,5541,5542,5549,5537,5545,5548,5546,3111,3113,5544,5542,5543,5549,3114,3117,3115,3117,3079,3081,3118,3139,3119,3121,3185,3122,3124,3142,3125,3127,3146,3128,3130,3147 +,3131,3133,3148,3134,3136,3149,3137,3139,3150,3140,3141,3151,3142,3143,3118,3120,3145,3152,3128,3126,3125,3147,3148,3127,3129,3143,3144,3149,3150,3132,3131,3141,3133,3135,3138,3137,3152,3153,3160,3154,3156,5550,3157,3159,5551,3160,3161,3168,3162,3164 +,3170,3165,3167,3172,3168,3169,3174,3170,3171,3176,3172,3173,3178,3174,3175,5552,3176,3177,5553,3178,3179,3184,3180,3123,3122,3182,3155,3154,3184,3158,3157,3185,3186,3189,3187,3189,5554,3190,3191,3194,3192,3194,3196,3195,3196,3198,3197,3198,5555,3199 +,3200,3203,3201,3203,3205,3204,3205,3207,3206,3207,5556,3208,3209,3212,3210,3212,3214,3213,3214,3216,3215,3216,5557,3217,5558,5559,5560,5561,5560,5559,5562,5563,5558,5564,3220,3219,5565,5566,5567,5568,5569,5566,5567,3218,5565,3219,5570,5564,5558,5560 +,5562,5563,5570,5558,5566,5569,5567,3218,3220,5565,5563,5564,5570,3221,3224,3222,3224,3186,3188,3225,3246,3226,3228,3292,3229,3231,3249,3232,3234,3253,3235,3237,3254,3238,3240,3255,3241,3243,3256,3244,3246,3257,3247,3248,3258,3249,3250,3225,3227,3252 +,3259,3235,3233,3232,3254,3255,3234,3236,3250,3251,3256,3257,3239,3238,3248,3240,3242,3245,3244,3259,3260,3267,3261,3263,5571,3264,3266,5572,3267,3268,3275,3269,3271,3277,3272,3274,3279,3275,3276,3281,3277,3278,3283,3279,3280,3285,3281,3282,5573,3283 +,3284,5574,3285,3286,3291,3287,3230,3229,3289,3262,3261,3291,3265,3264,3292,3293,3296,3294,3296,5575,3297,3298,3301,3299,3301,3303,3302,3303,3305,3304,3305,5576,3306,3307,3310,3308,3310,3312,3311,3312,3314,3313,3314,5577,3315,3316,3319,3317,3319,3321 +,3320,3321,3323,3322,3323,5578,3324,5579,5580,5581,5582,5581,5580,5583,5584,5579,5585,3327,3326,5586,5587,5588,5589,5588,5587,5590,3325,5586,3326,5591,5585,5579,5581,5583,5584,5591,5579,5586,5588,5590,3325,3327,5586,5584,5585,5591,3328,3331,3329,3331 +,3293,3295,3332,3353,3333,3335,3399,3336,3338,3356,3339,3341,3360,3342,3344,3361,3345,3347,3362,3348,3350,3363,3351,3353,3364,3354,3355,3365,3356,3357,3332,3334,3359,3366,3342,3340,3339,3361,3362,3341,3343,3357,3358,3363,3364,3346,3345,3355,3347,3349 +,3352,3351,3366,3367,3374,3368,3370,5592,3371,3373,5593,3374,3375,3382,3376,3378,3384,3379,3381,3386,3382,3383,3388,3384,3385,3390,3386,3387,3392,3388,3389,5594,3390,3391,5595,3392,3393,3398,3394,3337,3336,3396,3369,3368,3398,3372,3371,3399,3400,3403 +,3401,3403,5596,3404,3405,3408,3406,3408,3410,3409,3410,3412,3411,3412,5597,3413,3414,3417,3415,3417,3419,3418,3419,3421,3420,3421,5598,3422,3423,3426,3424,3426,3428,3427,3428,3430,3429,3430,5599,3431,5600,5601,5602,5603,5602,5601,5604,5605,5600,5606 +,3434,3433,5607,5608,5609,5610,5611,5608,5609,3432,5607,3433,5612,5606,5600,5602,5604,5605,5612,5600,5608,5611,5609,3432,3434,5607,5605,5606,5612,3435,3438,3436,3438,3400,3402,3439,3460,3440,3442,3506,3443,3445,3463,3446,3448,3467,3449,3451,3468,3452 +,3454,3469,3455,3457,3470,3458,3460,3471,3461,3462,3472,3463,3464,3439,3441,3466,3473,3449,3447,3446,3468,3469,3448,3450,3464,3465,3470,3471,3453,3452,3462,3454,3456,3459,3458,3473,3474,3481,3475,3477,5613,3478,3480,5614,3481,3482,3489,3483,3485,3491 +,3486,3488,3493,3489,3490,3495,3491,3492,3497,3493,3494,3499,3495,3496,5615,3497,3498,5616,3499,3500,3505,3501,3444,3443,3503,3476,3475,3505,3479,3478,3506,3507,5617,3508,3510,5618,3511,3513,5619,3514,3516,5620,3517,3519,5621,3520,3522,5622,3523,5623 +,5624,3526,5625,3527,3526,5626,5627,3525,5628,3525,5627,3526,5629,5623,5624,5625,3526,5626,3525,3527,3528,5630,3529,3531,5631,3532,3530,3537,3534,3540,5632,3541,3543,3546,3544,3519,3521,3546,3547,5633,3548,3550,3553,3551,3532,5631,3551,3549,3542,3541 +,3554,5634,3555,3557,5635,3558,3560,5636,3561,3563,5637,3564,3566,5638,3567,3569,5639,3570,5640,5641,3573,5642,3574,3573,5643,5644,3572,5645,3572,5644,3573,5646,5640,5641,5642,3573,5643,3572,3574,3575,5647,3576,3578,5648,3579,3581,3584,3571,3587,5649 +,3588,3590,3593,3591,3566,3568,3593,3594,5650,3595,3597,3600,3598,3579,5648,3600,3595,3589,3588,3601,5651,3602,3604,5652,3605,3607,5653,3608,3610,5654,3611,3613,5655,3614,3616,5656,3617,5657,5658,3620,5659,3621,3620,5660,5661,3619,5662,3619,5661,3620 +,5663,5657,5658,5659,3620,5660,3619,3621,3622,5664,3623,3625,5665,3626,3624,3631,3628,3634,5666,3635,3637,3640,3638,3613,3615,3640,3641,5667,3642,3644,3647,3645,3626,5665,3647,3642,3636,3635,3648,5668,3649,3651,5669,3652,3654,5670,3655,3657,5671,3658 +,3660,5672,3661,3663,5673,3664,5674,5675,3667,5676,3668,3667,5677,5678,3666,5679,3666,5678,3667,5680,5674,5675,5676,3667,5677,3666,3668,3669,5681,3670,3672,5682,3673,3675,3678,3665,3681,5683,3682,3684,3687,3685,3660,3662,3687,3688,5684,3689,3691,3694 +,3692,3673,5682,3694,3689,3683,3682,3695,5685,3696,3698,5686,3699,5687,5688,3702,3704,5689,3705,3707,5690,3708,5691,3712,5692,5693,5694,3712,5695,5696,5697,5694,3710,3712,5698,5699,5700,3713,5701,3714,3718,5702,5703,3721,5704,3722,5705,3726,3721,3723 +,5706,3724,5705,3721,3724,5705,3727,3726,5707,3725,3727,3728,5707,3727,3753,3748,3728,3728,3729,3730,3724,5706,3730,3730,3753,3728,5708,5709,3726,3726,3725,3732,5709,5710,3726,3747,3731,3725,3732,5708,3726,3733,5711,3734,5712,3738,3737,5713,3736,3738 +,3737,3734,5714,3735,3734,3739,5715,5716,3742,3744,5717,5718,5719,5720,5721,5722,3745,3744,5719,5721,5717,3740,3739,3744,5717,5721,5723,3746,3750,3747,3749,3731,3747,3751,3746,3748,3752,3748,3753,3754,3753,3755,3757,3803,3755,3761,3759,3762,3760,3765 +,3764,3722,5704,3767,3768,3767,3769,3765,3769,3770,3766,3770,3771,3772,3771,3773,3775,3774,3773,3777,5724,3774,3775,3776,3778,3779,3778,3780,5725,3788,3783,3785,3788,5726,3788,3785,3789,3791,3790,3789,3763,5727,3793,3796,3795,3794,3797,3821,3798,3796 +,3800,3801,3756,3755,3803,3805,3804,3803,3807,3805,3806,3807,3802,3801,3808,3801,3809,3810,3809,3811,5728,5729,3814,3816,3826,3814,3815,3814,3818,3821,3793,3777,5724,3777,3793,3793,5727,5724,3823,3798,3822,3784,3783,3826,3830,3826,3783,3833,3844,3831 +,3836,5730,3834,5731,3834,5730,3830,3832,3837,3841,3839,3842,3791,3844,3833,3840,3844,3842,3833,3790,3791,3845,3818,3838,3818,3845,3846,3846,3845,3847,3849,3848,3847,3843,3867,3853,3869,3853,3867,3850,3851,3857,3858,3859,3860,3859,3856,3864,3866,3869 +,3867,3869,3866,3870,3871,3870,3872,3875,3876,3873,3873,3872,3874,3876,3875,3865,3879,3886,3883,3885,3883,3886,3886,3890,3888,3889,3888,3890,3891,3900,3892,3878,3898,3893,3894,3897,3895,3893,3899,3897,3900,3891,3901,3903,3911,3902,3904,3901,3891,3907 +,3896,3895,3907,3908,3909,3911,3903,3912,3914,4144,3913,3915,3922,3912,3916,3910,3909,3916,3917,3918,3920,3921,3910,3921,3920,3922,3923,4138,3922,3924,5732,3925,3924,3927,3928,3931,3932,3933,3935,3936,3937,3939,5733,3940,3940,5733,3942,3936,3934,3941 +,3939,3941,3934,3934,5734,3939,3943,3953,3945,3946,5734,3934,3947,5734,3946,3947,3948,3949,3950,2364,3951,3953,3943,3942,3955,3956,3954,3955,3952,3951,3957,3955,3958,3960,3961,3958,3959,3958,3961,3964,3963,3961,3964,3965,3966,2366,2365,3971,3973,5735 +,3974,3976,5735,3973,3976,3977,3978,3979,3978,3980,3979,3981,3975,3975,3981,3982,3980,3988,3984,3989,3991,3987,3989,3990,3993,3995,4142,3996,5736,5737,3999,4000,3999,3995,4001,5738,4002,4004,5738,4001,4012,5739,4005,5740,4000,4004,4005,5741,5742,3992 +,4007,4008,4003,4002,4014,4017,4135,4016,4018,5743,4019,4021,5744,4022,4024,5745,5746,5747,5746,5745,4025,5748,4026,4024,5746,4025,4030,4029,4028,4032,4042,4033,4034,5749,4035,4036,4028,4027,4042,4032,4041,4043,4041,4044,4044,4048,4047,4050,5750,4051 +,4052,4055,4053,4055,5751,4056,5752,4064,4058,4064,4063,4065,4070,4056,5751,5751,4058,4068,4068,4070,5751,4069,4076,4070,4069,4067,4072,4073,4078,4074,4069,4074,4075,4077,4074,4078,4081,5753,4082,4080,4084,4079,4085,4077,4084,4088,4075,4074,4091,4105 +,4088,4090,4089,4092,4097,4092,4077,4098,5754,4099,4100,5754,4098,4092,4097,4099,4102,5755,4103,4108,5756,4109,4110,5757,4111,5758,4117,4120,4123,4120,4117,4125,4131,4121,4116,4127,4115,4126,4140,4132,4132,4115,4126,5759,5760,4128,5761,4128,5760,4129 +,5762,5763,4130,5759,4128,4129,5763,4130,4124,4133,4131,3919,4141,4134,4138,4145,4139,3918,5764,4141,4137,3996,4142,3914,4139,4143,3923,4134,4145,4146,4149,4147,4149,5765,4150,4151,4154,4152,4154,4156,4155,4156,4158,4157,4158,5766,4159,4160,4163,4161 +,4163,4165,4164,4165,4167,4166,4167,5767,4168,4169,4172,4170,4172,4174,4173,4174,4176,4175,4176,5768,4177,5769,5770,5771,5772,5771,5770,5773,5774,5769,5775,4180,4179,5776,5777,5778,5779,5780,5777,5778,4178,5776,4179,5781,5775,5769,5771,5773,5774,5781 +,5769,5777,5780,5778,4178,4180,5776,5774,5775,5781,4181,4184,4182,4184,4146,4148,4185,4206,4186,4188,4252,4189,4191,4209,4192,4194,4213,4195,4197,4214,4198,4200,4215,4201,4203,4216,4204,4206,4217,4207,4208,4218,4209,4210,4185,4187,4212,4219,4195,4193 +,4192,4214,4215,4194,4196,4210,4211,4216,4217,4199,4198,4208,4200,4202,4205,4204,4219,4220,4227,4221,4223,5782,4224,4226,5783,4227,4228,4235,4229,4231,4237,4232,4234,4239,4235,4236,4241,4237,4238,4243,4239,4240,4245,4241,4242,5784,4243,4244,5785,4245 +,4246,4251,4247,4190,4189,4249,4222,4221,4251,4225,4224,4252,4253,4256,4254,4256,5786,4257,4258,4261,4259,4261,4263,4262,4263,4265,4264,4265,5787,4266,4267,4270,4268,4270,4272,4271,4272,4274,4273,4274,5788,4275,4276,4279,4277,4279,4281,4280,4281,4283 +,4282,4283,5789,4284,5790,5791,5792,5793,5792,5791,5794,5795,5790,5796,4287,4286,5797,5798,5799,5800,5801,5798,5799,4285,5797,4286,5802,5796,5790,5792,5794,5795,5802,5790,5798,5801,5799,4285,4287,5797,5795,5796,5802,4288,4291,4289,4291,4253,4255,4292 +,4313,4293,4295,4359,4296,4298,4316,4299,4301,4320,4302,4304,4321,4305,4307,4322,4308,4310,4323,4311,4313,4324,4314,4315,4325,4316,4317,4292,4294,4319,4326,4302,4300,4299,4321,4322,4301,4303,4317,4318,4323,4324,4306,4305,4315,4307,4309,4312,4311,4326 +,4327,4334,4328,4330,5803,4331,4333,5804,4334,4335,4342,4336,4338,4344,4339,4341,4346,4342,4343,4348,4344,4345,4350,4346,4347,4352,4348,4349,5805,4350,4351,5806,4352,4353,4358,4354,4297,4296,4356,4329,4328,4358,4332,4331,4359,4360,4363,4361,4363,5807 +,4364,4365,5808,4366,4368,4371,4369,4371,5809,4372,4373,5810,4374,4376,4379,4377,4379,4381,4380,4381,4383,4382,4383,5811,4384,4385,5812,4386,5813,5814,4389,4389,5815,4391,4392,5816,4393,5817,4397,4396,5818,5819,5820,5821,5822,5823,5824,5825,5822,5823 +,5820,5819,5826,4395,4397,4396,5827,5828,5829,5828,5827,4397,5818,5826,5822,5825,5823,5820,5826,5818,4396,5828,5817,5819,5821,5823,4398,4401,4399,4401,4360,4362,4402,4424,4403,4405,4473,4406,4408,4425,4409,4411,4430,4412,4414,4431,4415,4417,4432,4418 +,4420,4433,4421,4423,4434,4424,4425,4435,4426,4404,4403,4427,4411,4436,4429,4431,4408,4410,4413,4412,4432,4433,4428,4427,4414,4416,4434,4419,4418,4426,4436,4420,4422,4437,4444,4438,4440,5830,4441,4443,5831,4444,4445,5832,4446,4448,5833,4449,4451,4458 +,4452,4454,4460,4455,4457,5834,4458,4459,5835,4460,4461,5836,4462,4464,5837,4465,4467,4472,4468,4407,4406,4470,4439,4438,4472,4442,4441,4473,4474,4477,4475,4477,5838,4478,4479,5839,4480,4482,4485,4483,4485,5840,4486,4487,5841,4488,4490,4493,4491,4493 +,4495,4494,4495,4497,4496,4497,5842,4498,4499,5843,4500,4502,4505,4503,4505,5844,4506,4507,5845,4508,5846,4512,4511,5847,5848,5849,5850,5851,5852,5853,5854,5851,5852,5849,5848,5855,4510,4512,4511,5856,5857,5858,5857,5856,4512,5847,5855,5851,5854,5852 +,5849,5855,5847,4511,5857,5846,5848,5850,5852,4513,4516,4514,4516,4474,4476,4517,4539,4518,4520,4588,4521,4523,4540,4524,4526,4545,4527,4529,4546,4530,4532,4547,4533,4535,4548,4536,4538,4549,4539,4540,4550,4541,4519,4518,4542,4526,4551,4544,4546,4523 +,4525,4528,4527,4547,4548,4543,4542,4529,4531,4549,4534,4533,4541,4551,4535,4537,4552,4559,4553,4555,5859,4556,4558,5860,4559,4560,5861,4561,4563,5862,4564,4566,4573,4567,4569,4575,4570,4572,5863,4573,4574,5864,4575,4576,5865,4577,4579,5866,4580,4582 +,4587,4583,4522,4521,4585,4554,4553,4587,4557,4556,4588,4589,5867,4590,4592,5868,4593,4595,5869,4596,4598,5870,4599,4601,5871,5872,4604,76,75,4606,5873,4607,4609,5874,4610,4612,5875,4613,4620,5876,4621,5877,4630,4629,3718,5878,4630,4635,4634,5879 +,4638,4062,4064,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5910,5909,5911,5912,5913,5914,5915,5913,5916,5917,5902,5918,5919,5920,5921,5922,5923 +,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972,5973 +,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000,5997,5999,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021 +,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6008,6032,6033,6006,6034,6035,6036,6003,6037,6038,6039,6040,6041,6042,6043,6044,6045,5993,6046,6047,5990,6048,6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066 +,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6088,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6100,6078,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114 +,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164 +,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6189,6191,6193,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212 +,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6199,6223,6224,6198,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6185,6242,6243,6182,6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6257,6059 +,6258,6259,6260,6261,6258,6061,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6209,6279,6280,6281,6278,6280,6210,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6096,6299 +,6300,6095,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,5973,6320,6322,6323,6324,5974,6322,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6001,6036,6340,6341,6342 +,6035,6341,6340,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6193,6361,6194,6362,6363,6362,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,5899,6383,6384,6381 +,5900,6382,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,6400,6401,6402,6403,6136,6404,6405,6406,6403,6405,6137,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,5911,6424,6425,6426,6427 +,5880,6428,5881,5883,6429,5884,5886,6430,5887,5889,6431,5890,5892,6432,5893,5895,6433,5896,5898,6434,5899,5901,5918,5902,5904,6435,5905,5907,6436,5908,5910,5907,5909,5912,6437,5913,6438,5914,5913,5917,6439,5902,5919,6440,5920,5922,6441,5923,5925,6442 +,5926,5928,6443,5929,5931,6444,5932,5934,6445,5935,5937,6446,5938,5940,6447,5941,5943,6448,5944,5946,6449,5947,5949,6450,5950,5952,6451,5953,6452,6453,5956,5958,6454,5959,5961,6455,5962,5964,6456,5965,5967,6457,5968,5970,6458,5971,5973,6321,5974,5976 +,6459,5977,5979,6460,5980,5982,6461,5983,5985,6462,5986,5988,6463,5989,5991,6464,5992,5994,6465,5995,5997,6466,5998,6000,6467,5997,6001,6468,6002,6004,6469,6005,6007,6032,6008,6010,6470,6011,6013,6471,6014,6016,6472,6017,6019,6473,6020,6022,6474,6023 +,6025,6475,6026,6028,6476,6029,6031,6477,6008,6033,6004,6006,6035,6342,6036,6037,6478,6038,6040,6479,6041,6043,6480,6044,5993,5992,6046,5990,5989,6048,6050,6481,6051,6482,6483,6054,6056,6484,6057,6059,6259,6060,6062,6485,6063,6065,6486,6066,6068,6487 +,6069,6071,6488,6072,6074,6489,6075,6077,6101,6078,6080,6490,6081,6083,6491,6084,6086,6492,6087,6089,6086,6088,6091,6493,6092,6094,6494,6095,6097,6495,6098,6100,6496,6078,6102,6497,6103,6105,6498,6106,6108,6499,6109,6111,6500,6112,6114,6501,6115,6117 +,6502,6118,6120,6503,6121,6123,6504,6124,6126,6505,6127,6129,6506,6130,6132,6507,6133,6135,6404,6136,6138,6508,6139,6141,6509,6142,6144,6510,6145,6147,6511,6148,6150,6512,6151,6153,6513,6154,6156,6514,6157,6159,6515,6160,6162,6516,6163,6165,6517,6166 +,6168,6518,6169,6171,6519,6172,6174,6520,6175,6177,6521,6178,6180,6522,6181,6183,6523,6184,6186,6524,6187,6189,6525,6190,6192,6526,6189,6193,6360,6194,6196,6527,6197,6199,6224,6200,6202,6528,6203,6205,6529,6206,6208,6279,6209,6211,6530,6212,6214,6531 +,6215,6217,6532,6218,6220,6533,6221,6199,6534,6223,6198,6197,6225,6535,6536,6228,6230,6537,6231,6233,6538,6234,6236,6539,6237,6239,6540,6240,6185,6184,6242,6182,6181,6244,6246,6541,6247,6249,6542,6250,6543,6544,6253,6255,6545,6256,6059,6260,6258,6260 +,6262,6261,6061,6060,6261,6263,6546,6264,6266,6547,6267,6269,6548,6270,6272,6549,6273,6275,6550,6276,6278,6281,6209,6280,6282,6281,6280,6208,6210,6283,6551,6284,6286,6552,6287,6289,6553,6290,6292,6554,6293,6295,6555,6296,6556,6094,6096,6557,6303,6095 +,6558,6299,6303,6305,6559,6306,6308,6560,6309,6311,6561,6312,6314,6562,6315,6317,6563,6318,6320,6323,6321,6320,6324,6322,6324,5975,5974,6325,6564,6326,6328,6565,6329,6331,6566,6332,6334,6567,6335,6337,6568,6338,6001,6003,6036,6341,6343,6342,6341,6001 +,6340,6344,6569,6345,6347,6570,6348,6350,6571,6351,6353,6572,6354,6356,6573,6357,6574,6364,6360,6575,6195,6194,6576,6577,6362,6365,6578,6366,6368,6579,6369,6371,6580,6372,6374,6581,6375,6377,6582,6378,6583,6383,6381,5899,6434,6383,6381,5898,5900,6385 +,6584,6386,6388,6585,6389,6391,6586,6392,6394,6587,6395,6397,6588,6398,6400,6589,6401,6403,6406,6136,6405,6407,6406,6405,6135,6137,6408,6590,6409,6411,6591,6412,6414,6592,6415,6417,6593,6418,6594,6595,6421,6423,5910,5911,6425,6596,6597] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":5880,"indexStart":0,"indexCount":12453},{"materialIndex":1,"verticesStart":5880,"verticesCount":718,"indexStart":12453,"indexCount":1194}] +,"instances":[]} +,{"name":"Spacecraft","id":"Spacecraft","materialId":"game_scene.SpacecraftMaterial","billboardMode":0,"position":[0,-4904.5591,-225.1258],"rotation":[0,0,0],"scaling":[11.985,11.985,11.985],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-0.7811,0.5021,-1,-0.7238,0.6073,-0.9195,-0.7468,0.565,-0.9195,-0.3929,-0.1679,-1,-0.7366,-0.0736,-1.3047,-0.6996,-0.1679,-1,-0.7811,0.5021,0.5998,-0.7811,0.0534,0.1888,-0.7811,0.5021,0.1624,-0.3254,-0.0434,0.1612,0,0.0021,1,0,-0.0434,0.1612,-0.2123,0.8955,1.1171,0,0.8481,1.4226,-0.2201,0.8481,1.4226,-0.1461,0.7303,0.3163,0,0.9021,0.9775 +,-0.2081,0.9021,0.9775,-0.7811,0.0141,-0.8388,-0.7811,0.5021,-1,-0.3114,-0.0521,0,0,0.0021,-1,-0.3114,0.0021,-1,-0.3114,0.5021,-1,-0.403,0.6703,0.0281,-0.403,0.6703,-1,-0.3114,0.5021,-1,0,0.0021,-1,0,0.5021,-1,-0.7811,0.0021,0.5998,-0.7811,-0.0434,0.0967,-0.3983,0.0021,1,-0.4574,0.4135,0.9291,-0.4079,0.5021,1 +,-0.7811,0.5021,0.1624,-0.4044,0.5021,0.5782,-0.7811,0.5021,0.5998,-0.3114,0.0021,-1,-0.3929,-0.1679,-0.1343,-0.3114,-0.0521,0,-0.3556,0.5184,1.2621,-0.2201,0.8481,1.4226,-0.3085,0.4742,1.5568,-0.2081,0.9021,0.9775,-0.3147,0.5809,0.601,-0.1461,0.7303,0.3163,-0.3983,0.0021,1,-0.4018,0.4436,1.2298,-0.3799,-0.0081,1.1916,-0.3799,-0.0081,1.1916,0,-0.0099,1.1874 +,0,-0.041,1.798,-0.2038,-0.0526,2.1048,0,-0.0526,2.1048,-0.2846,0.263,1.9938,-0.2038,-0.0526,2.1048,-0.2576,-0.041,1.798,0,0.5021,-1,-0.14,0.698,0.1878,-0.3114,0.5021,-1,-0.3114,0.5021,0.1624,-0.3114,0.5021,-1,-0.14,0.698,0.1878,-0.7811,0.5021,0.1624,-0.403,0.6703,0.0281,-0.3114,0.5021,0.1624,-0.6895,0.6703,-1,-0.403,0.6703,0.0281 +,-0.6895,0.6703,0.0281,-0.3114,0.0021,-1,-0.3559,-0.0736,-1.3047,-0.3929,-0.1679,-1,-0.6996,-0.1679,-0.1343,-0.3929,-0.1679,-1,-0.6996,-0.1679,-1,-0.3114,-0.0521,0,-0.6996,-0.1679,-0.1343,-0.7811,-0.0521,0,-0.7811,0.0021,-1,-0.7366,-0.0736,-1.3047,-0.836,0.0582,-1.3047,-0.7811,0.0021,-1,-0.6996,-0.1679,-0.1343,-0.6996,-0.1679,-1,-0.2038,0.3889,2.0284 +,-0.2038,0.1925,2.247,-0.2846,0.263,1.9938,-0.2038,0.3889,2.0284,0,0.1925,2.247,-0.2038,-0.0526,2.1048,-0.2038,0.1925,2.247,-0.7811,0.5021,-1,-0.7243,0.5761,-1.3047,-0.6895,0.6703,-1,-0.3682,0.5761,-1.3047,-0.403,0.6703,-1,-0.3114,0.5021,-1,-0.3682,0.5761,-1.3047,-0.2565,0.4457,-1.3047,-0.2565,0.0582,-1.3047,-0.836,0.4457,-1.3047,-0.836,0.0582,-1.3047 +,-0.655,0.0556,-0.9238,-0.7149,0.135,-0.9238,-0.2565,0.0582,-1.3047,-0.4375,0.0556,-0.9238,-0.3559,-0.0736,-1.3047,-0.7366,-0.0736,-1.3047,-0.836,0.4457,-1.3047,-0.6475,0.4472,-0.9238,-0.7243,0.5761,-1.3047,-0.4449,0.4472,-0.9238,-0.3682,0.5761,-1.3047,-0.2565,0.4457,-1.3047,-0.4449,0.4472,-0.9238,-0.3776,0.3686,-0.9238,-0.7149,0.3686,-0.9238,-0.3776,0.135,-0.9238,-0.7149,0.135,-0.9238 +,-0.655,0.0556,-0.9238,-0.3776,0.135,-0.9238,-1.5925,-0.5479,-0.5525,-1.6673,-0.5869,-0.5451,-1.5949,-0.5448,-0.4968,-1.6128,-0.5318,-1.1473,-1.6665,-0.5902,-0.5975,-1.6081,-0.4939,-0.5525,-1.6718,-0.5698,-0.2728,-1.6792,-0.5415,-0.5975,-1.6117,-0.523,-1.01,-1.6738,-0.5623,-0.9951,-1.6673,-0.5869,-0.5451,-1.6792,-0.5415,-0.5975,-1.6718,-0.5698,-0.2728,-0.7353,0.5714,0.0234,-0.7811,0.5021,0.1624 +,-1.5273,1.1822,-1.4131,-1.6709,1.2539,-1.4938,-1.5409,1.1571,-1.4131,-1.5409,1.1571,-1.4131,-1.6709,1.2539,-0.8273,-1.5436,1.161,-0.7115,-0.6895,0.6703,0.0281,-0.6895,0.6703,-1,-0.8364,-0.0882,-0.0419,-1.1862,-0.307,-0.2294,-0.8379,-0.0804,0.0509,-0.8963,-0.0715,-1.0591,-1.1752,-0.3093,-0.2987,-0.8463,0.0087,0.137,-1.2437,-0.295,0.1313,-1.2461,-0.2604,-0.2294,-0.8882,-0.055,-0.8957 +,-1.197,-0.2565,-1.0658,-0.4574,0.0906,0.9291,-0.4574,0.4135,0.7397,-0.4574,0.4135,0.9291,-0.7028,0.0906,0.6706,-0.4574,0.0906,0.9291,-0.7811,0.5021,0.5998,-0.7811,0.0021,0.5998,-0.7028,0.4135,0.6706,-0.7028,0.0906,0.6706,-0.4574,0.0906,0.7397,-0.4574,0.0906,0.9291,-0.7028,0.4135,0.6706,-0.7028,0.0906,0.4812,-0.7028,0.0906,0.6706,-0.7028,0.4135,0.6706,-0.4574,0.4135,0.7397 +,-0.7028,0.4135,0.4812,-0.4574,0.4135,0.7397,-0.7028,0.0906,0.4812,-0.7028,0.4135,0.4812,-0.7238,0.6073,-0.9195,-1.5436,1.161,-0.7115,-1.5273,1.1822,-1.4131,-1.6709,1.2539,-1.4938,-1.6587,1.2763,-1.4938,-1.6709,1.2539,-0.8273,-1.0072,-0.213,-0.7704,-0.9034,-0.212,-1.0265,-0.9088,-0.2206,-0.7704,-0.9034,-0.212,-1.0265,-0.8867,-0.3064,-1.0787,-0.8426,-0.2949,-1.0265,-1.1012,-0.362,-0.7704 +,-1.0575,-0.4497,-1.0265,-1.1183,-0.3667,-1.0265,-0.8426,-0.2949,-1.0265,-0.8643,-0.3915,-0.7704,-0.8526,-0.2971,-0.7704,-1.045,-0.3463,1.2734,-0.9906,-0.365,1.2734,-1.0097,-0.3987,1.2734,-0.9071,-0.3708,1.2734,-0.9577,-0.3677,1.2734,-0.9356,-0.35,1.2734,-0.9466,-0.446,-0.7704,-0.8552,-0.397,-1.0265,-0.9476,-0.4569,-1.0265,-1.0741,-0.3552,-1.0787,-1.1057,-0.2647,-1.0265,-1.1183,-0.3667,-1.0265 +,-1.0575,-0.4497,-1.0265,-0.9886,-0.248,1.2734,-1.0064,-0.3033,1.2734,-1.0392,-0.2838,1.2734,-0.8986,-0.3073,1.2734,-0.931,-0.3159,1.2734,-1.1057,-0.2647,-1.0265,-1.0913,-0.2682,-0.7704,-1.0655,-0.2859,-1.0787,-1.0133,-0.2047,-1.0265,-1.0468,-0.4392,-0.7704,-0.9476,-0.4569,-1.0265,-0.9041,-0.3675,0.0857,-0.9448,-0.4271,0.0268,-0.9508,-0.4007,0.0857,-1.0119,-0.3962,0.0857,-0.9448,-0.4271,0.0268 +,-1.0283,-0.4211,0.0268,-1.04,-0.2878,0.0857,-1.0715,-0.3538,0.0268,-1.0663,-0.2743,0.0268,-0.8699,-0.3008,0.0268,-0.8964,-0.3077,0.0857,-0.9966,-0.2275,0.0268,-0.9322,-0.2597,0.0857,-0.989,-0.2534,0.0857,-1.0433,-0.3463,0.0857,-0.8986,-0.3073,1.2734,-0.9322,-0.2597,0.0857,-0.8964,-0.3077,0.0857,-0.9508,-0.4007,0.0857,-0.9071,-0.3708,1.2734,-0.9041,-0.3675,0.0857,-1.0097,-0.3987,1.2734 +,-0.9508,-0.4007,0.0857,-1.0119,-0.3962,0.0857,-1.04,-0.2878,0.0857,-1.045,-0.3463,1.2734,-1.0433,-0.3463,0.0857,-0.9368,-0.2571,1.2734,-0.989,-0.2534,0.0857,-1.0133,-0.2047,-1.0265,-0.9515,-0.289,1.2734,-0.9368,-0.2571,1.2734,-0.9793,-0.2841,1.2734,-0.9484,-0.4038,1.2734,-1.0126,-0.3376,1.2734,-0.9356,-0.35,1.2734,-0.931,-0.3159,1.129,-0.931,-0.3159,1.2734,-0.9515,-0.289,1.2734 +,-0.9793,-0.2841,1.129,-0.9793,-0.2841,1.2734,-0.9515,-0.289,1.129,-1.0064,-0.3033,1.129,-1.0064,-0.3033,1.2734,-1.0126,-0.3376,1.129,-1.0126,-0.3376,1.2734,-0.9577,-0.3677,1.2734,-0.9356,-0.35,1.129,-0.9906,-0.365,1.129,-0.9906,-0.365,1.2734,-0.9577,-0.3677,1.2734,-0.9577,-0.3677,1.129,-1.0064,-0.3033,1.129,-0.9515,-0.289,1.129,-0.931,-0.3159,1.129,-0.9281,-0.25,-1.0787 +,-0.8552,-0.397,-1.0265,-0.9476,-0.4569,-1.0265,-1.0328,-0.4116,-1.0787,-1.0741,-0.3552,-1.0787,-0.9581,-0.4165,-1.0787,-1.0027,-0.2451,-1.0787,-1.0663,-0.2743,0.0268,-0.9966,-0.2275,0.0268,-1.0283,-0.4211,0.0268,-0.9466,-0.446,-0.7704,-1.0715,-0.3538,0.0268,-0.8699,-0.3008,0.0268,-0.9184,-0.2357,0.0268,-0.9448,-0.4271,0.0268,-0.8803,-0.3819,0.0268,-0.8953,-0.3758,-1.0787,-0.9476,-0.4569,-1.0265 +,-1.0392,-0.2838,1.2734,-0.3617,0.3639,1.5881,-0.3114,-0.0195,1.4911,0,-0.0293,1.4911,-0.2576,-0.041,1.798,0,0.3849,2.0329,-0.2038,0.3889,2.0284,-0.4018,0.4436,1.2298,-0.3085,0.4742,1.5568,-0.3617,0.3639,1.5881,-0.2081,0.9021,0.9775,0,0.8955,1.1171,-0.2123,0.8955,1.1171,-0.3114,-0.0195,1.4911,-0.3147,0.5809,0.601,-0.4079,0.5021,1,-0.4044,0.5021,0.5782 +,-0.3486,0.548,1.0995,-0.2123,0.8955,1.1171,-0.3556,0.5184,1.2621,0,0.7301,0.3156,-0.14,0.698,0.1878,0,0.6979,0.1876,-0.4079,0.5021,1,-0.1461,0.7303,0.3163,-1.1338,0.7934,-0.9632,-1.03,0.7945,-1.2193,-1.0354,0.7858,-0.9632,-1.03,0.7945,-1.2193,-1.0133,0.7,-1.2715,-0.9692,0.7115,-1.2193,-1.2278,0.6444,-0.9632,-1.184,0.5568,-1.2193,-1.2448,0.6397,-1.2193 +,-0.9692,0.7115,-1.2193,-0.9909,0.615,-0.9632,-0.9791,0.7094,-0.9632,-1.1716,0.6602,0.7924,-1.1172,0.6415,0.7924,-1.1363,0.6077,0.7924,-1.0337,0.6357,0.7924,-1.0843,0.6388,0.7924,-1.0622,0.6565,0.7924,-1.0731,0.5604,-0.9632,-0.9818,0.6095,-1.2193,-1.0742,0.5495,-1.2193,-1.2007,0.6512,-1.2715,-1.2322,0.7418,-1.2193,-1.2448,0.6397,-1.2193,-1.184,0.5568,-1.2193,-1.1152,0.7584,0.7924 +,-1.133,0.7031,0.7924,-1.1658,0.7226,0.7924,-1.0252,0.6992,0.7924,-1.0576,0.6905,0.7924,-1.2322,0.7418,-1.2193,-1.2179,0.7383,-0.9632,-1.1921,0.7206,-1.2715,-1.1398,0.8017,-1.2193,-1.1734,0.5672,-0.9632,-1.0742,0.5495,-1.2193,-1.0307,0.6389,-0.1072,-1.0714,0.5793,-0.166,-1.0773,0.6058,-0.1072,-1.1385,0.6103,-0.1072,-1.0714,0.5793,-0.166,-1.1549,0.5853,-0.166,-1.1665,0.7187,-0.1072 +,-1.1981,0.6526,-0.166,-1.1929,0.7322,-0.166,-0.9965,0.7056,-0.166,-1.023,0.6988,-0.1072,-1.1232,0.779,-0.166,-1.0588,0.7467,-0.1072,-1.1156,0.7531,-0.1072,-1.1699,0.6601,-0.1072,-1.0252,0.6992,0.7924,-1.0588,0.7467,-0.1072,-1.023,0.6988,-0.1072,-1.0773,0.6058,-0.1072,-1.0337,0.6357,0.7924,-1.0307,0.6389,-0.1072,-1.1363,0.6077,0.7924,-1.0773,0.6058,-0.1072,-1.1385,0.6103,-0.1072 +,-1.1665,0.7187,-0.1072,-1.1716,0.6602,0.7924,-1.1699,0.6601,-0.1072,-1.0633,0.7493,0.7924,-1.1156,0.7531,-0.1072,-1.1398,0.8017,-1.2193,-1.078,0.7174,0.7924,-1.0633,0.7493,0.7924,-1.1059,0.7223,0.7924,-1.0749,0.6027,0.7924,-1.1392,0.6688,0.7924,-1.0622,0.6565,0.7924,-1.0576,0.6905,0.648,-1.0576,0.6905,0.7924,-1.078,0.7174,0.7924,-1.1059,0.7223,0.648,-1.1059,0.7223,0.7924 +,-1.078,0.7174,0.648,-1.133,0.7031,0.648,-1.133,0.7031,0.7924,-1.1392,0.6688,0.648,-1.1392,0.6688,0.7924,-1.0843,0.6388,0.7924,-1.0622,0.6565,0.648,-1.1172,0.6415,0.7924,-1.1172,0.6415,0.648,-1.0843,0.6388,0.7924,-1.0843,0.6388,0.648,-1.133,0.7031,0.648,-1.078,0.7174,0.648,-1.0576,0.6905,0.648,-1.0546,0.7564,-1.2715,-0.9818,0.6095,-1.2193,-1.0742,0.5495,-1.2193 +,-1.1594,0.5949,-1.2715,-1.2007,0.6512,-1.2715,-1.0847,0.5899,-1.2715,-1.1293,0.7613,-1.2715,-1.1929,0.7322,-0.166,-1.1232,0.779,-0.166,-1.1549,0.5853,-0.166,-1.0731,0.5604,-0.9632,-1.1981,0.6526,-0.166,-0.9965,0.7056,-0.166,-1.045,0.7707,-0.166,-1.0714,0.5793,-0.166,-1.0069,0.6246,-0.166,-1.0219,0.6307,-1.2715,-1.0742,0.5495,-1.2193,-1.1658,0.7226,0.7924,-0.7468,0.565,-0.9195 +,-0.7353,0.5714,0.0234,-1.6709,1.2539,-0.8273,-1.6587,1.2763,-1.4938,-0.7238,0.6073,-0.9195,-0.7468,0.565,-0.9195,-1.6073,-0.5284,-0.2071,-1.1874,-0.2575,-1.2084,-0.7811,0.0141,-0.8388,-0.7811,0.0534,0.1888,-0.846,-0.0396,0.534,-0.7811,0.0021,-1,-0.7811,-0.0521,0,-0.7811,-0.0434,0.0967,-0.846,-0.0396,0.534,-0.7811,0.0021,0.5998,-0.7811,0.0021,-1,-0.8963,-0.0715,-1.0591 +,-1.6073,-0.5284,-0.2071,-1.2437,-0.295,0.1313,-1.6128,-0.5318,-1.1473,-1.1874,-0.2575,-1.2084,-1.6665,-0.5902,-0.5975,-1.6738,-0.5623,-0.9951,-1.6718,-0.5698,-1.1388,-1.6718,-0.5698,-0.2728,-0.7811,-0.0521,0,0,-0.0521,0,-0.7811,0.0021,-1,0.7468,0.565,-0.9195,0.6895,0.6703,-1,0.7811,0.5021,-1,0.7366,-0.0736,-1.3047,0.3929,-0.1679,-1,0.6996,-0.1679,-1 +,0.7811,0.0534,0.1888,0.7811,0.5021,0.5998,0.7811,0.5021,0.1624,0.3254,-0.0434,0.1612,0.3983,0.0021,1,0.2123,0.8955,1.1171,0,0.8955,1.1171,0.1461,0.7303,0.3163,0.2081,0.9021,0.9775,0.7811,0.0141,-0.8388,0.7811,0.5021,-1,0.3114,-0.0521,0,0.3114,0.0021,-1,0.3114,0.5021,-1,0.403,0.6703,0.0281,0.3114,0.5021,0.1624,0.3114,0.5021,-1 +,0.7811,0.0021,0.5998,0.7811,-0.0434,0.0967,0.4574,0.4135,0.9291,0.3983,0.0021,1,0.4079,0.5021,1,0.4044,0.5021,0.5782,0.7811,0.5021,0.1624,0.7811,0.5021,0.5998,0.3929,-0.1679,-0.1343,0.3114,0.0021,-1,0.3114,-0.0521,0,0.3556,0.5184,1.2621,0.2201,0.8481,1.4226,0.2123,0.8955,1.1171,0.2081,0.9021,0.9775,0.3147,0.5809,0.601,0.3486,0.548,1.0995 +,0.3983,0.0021,1,0.4018,0.4436,1.2298,0.4079,0.5021,1,0.3799,-0.0081,1.1916,0.2038,-0.0526,2.1048,0.2576,-0.041,1.798,0.2038,-0.0526,2.1048,0.2846,0.263,1.9938,0.2576,-0.041,1.798,0.14,0.698,0.1878,0.3114,0.5021,-1,0.3114,0.5021,0.1624,0.14,0.698,0.1878,0.3114,0.5021,-1,0.403,0.6703,0.0281,0.7811,0.5021,0.1624,0.3114,0.5021,0.1624 +,0.403,0.6703,0.0281,0.6895,0.6703,-1,0.6895,0.6703,0.0281,0.3559,-0.0736,-1.3047,0.3114,0.0021,-1,0.3929,-0.1679,-1,0.3929,-0.1679,-1,0.6996,-0.1679,-0.1343,0.6996,-0.1679,-1,0.6996,-0.1679,-0.1343,0.3114,-0.0521,0,0.7811,-0.0521,0,0.7811,0.0021,-1,0.7366,-0.0736,-1.3047,0.6996,-0.1679,-1,0.7811,0.0021,-1,0.6996,-0.1679,-0.1343 +,0.7811,-0.0521,0,0.2038,0.3889,2.0284,0.2846,0.263,1.9938,0.2038,0.1925,2.247,0.2038,0.3889,2.0284,0.2201,0.8481,1.4226,0.2038,-0.0526,2.1048,0,-0.0526,2.1048,0.7243,0.5761,-1.3047,0.7811,0.5021,-1,0.6895,0.6703,-1,0.403,0.6703,-1,0.3114,0.5021,-1,0.3682,0.5761,-1.3047,0.403,0.6703,-1,0.2565,0.4457,-1.3047,0.836,0.4457,-1.3047 +,0.836,0.0582,-1.3047,0.655,0.0556,-0.9238,0.7366,-0.0736,-1.3047,0.4375,0.0556,-0.9238,0.2565,0.0582,-1.3047,0.3559,-0.0736,-1.3047,0.6475,0.4472,-0.9238,0.836,0.4457,-1.3047,0.7243,0.5761,-1.3047,0.4449,0.4472,-0.9238,0.3682,0.5761,-1.3047,0.2565,0.4457,-1.3047,0.4449,0.4472,-0.9238,0.3682,0.5761,-1.3047,0.7149,0.3686,-0.9238,0.3776,0.3686,-0.9238,0.7149,0.135,-0.9238 +,0.7149,0.3686,-0.9238,0.3776,0.135,-0.9238,1.6673,-0.5869,-0.5451,1.5925,-0.5479,-0.5525,1.5949,-0.5448,-0.4968,1.6665,-0.5902,-0.5975,1.6128,-0.5318,-1.1473,1.6081,-0.4939,-0.5525,1.6718,-0.5698,-0.2728,1.6073,-0.5284,-0.2071,1.6117,-0.523,-1.01,1.6792,-0.5415,-0.5975,1.6673,-0.5869,-0.5451,1.6792,-0.5415,-0.5975,1.6738,-0.5623,-0.9951,0.7353,0.5714,0.0234,0.7811,0.5021,0.1624 +,1.6709,1.2539,-1.4938,1.5273,1.1822,-1.4131,1.5409,1.1571,-1.4131,1.6709,1.2539,-0.8273,1.5409,1.1571,-1.4131,1.5436,1.161,-0.7115,0.6895,0.6703,0.0281,0.7238,0.6073,-0.9195,1.1862,-0.307,-0.2294,0.8364,-0.0882,-0.0419,0.8379,-0.0804,0.0509,1.1752,-0.3093,-0.2987,0.8963,-0.0715,-1.0591,0.8463,0.0087,0.137,1.2437,-0.295,0.1313,0.846,-0.0396,0.534,0.8882,-0.055,-0.8957 +,1.2461,-0.2604,-0.2294,0.4574,0.4135,0.7397,0.4574,0.0906,0.9291,0.4574,0.4135,0.9291,0.7028,0.0906,0.6706,0.7811,0.0021,0.5998,0.7811,0.5021,0.5998,0.7028,0.4135,0.6706,0.4574,0.0906,0.7397,0.7028,0.0906,0.6706,0.4574,0.0906,0.9291,0.7028,0.0906,0.4812,0.7028,0.4135,0.6706,0.7028,0.0906,0.6706,0.7028,0.4135,0.6706,0.4574,0.4135,0.7397,0.4574,0.4135,0.9291 +,0.7028,0.0906,0.4812,0.4574,0.4135,0.7397,0.7028,0.4135,0.4812,0.7238,0.6073,-0.9195,1.5436,1.161,-0.7115,0.7353,0.5714,0.0234,1.6709,1.2539,-1.4938,1.6709,1.2539,-0.8273,1.6587,1.2763,-1.4938,1.0072,-0.213,-0.7704,0.9034,-0.212,-1.0265,1.0133,-0.2047,-1.0265,0.8867,-0.3064,-1.0787,0.9034,-0.212,-1.0265,0.8426,-0.2949,-1.0265,1.1012,-0.362,-0.7704,1.0575,-0.4497,-1.0265 +,1.0468,-0.4392,-0.7704,0.8643,-0.3915,-0.7704,0.8426,-0.2949,-1.0265,0.8526,-0.2971,-0.7704,0.9906,-0.365,1.2734,1.045,-0.3463,1.2734,1.0097,-0.3987,1.2734,0.9071,-0.3708,1.2734,0.9577,-0.3677,1.2734,0.9484,-0.4038,1.2734,0.9466,-0.446,-0.7704,0.8552,-0.397,-1.0265,1.1057,-0.2647,-1.0265,1.0741,-0.3552,-1.0787,1.1183,-0.3667,-1.0265,0.9088,-0.2206,-0.7704,1.0575,-0.4497,-1.0265 +,1.0328,-0.4116,-1.0787,1.0064,-0.3033,1.2734,0.9886,-0.248,1.2734,1.0392,-0.2838,1.2734,0.8986,-0.3073,1.2734,0.9356,-0.35,1.2734,1.1057,-0.2647,-1.0265,1.0913,-0.2682,-0.7704,1.0133,-0.2047,-1.0265,1.0655,-0.2859,-1.0787,0.9476,-0.4569,-1.0265,0.9466,-0.446,-0.7704,0.9448,-0.4271,0.0268,0.9041,-0.3675,0.0857,0.9508,-0.4007,0.0857,1.0119,-0.3962,0.0857,0.9448,-0.4271,0.0268 +,0.9508,-0.4007,0.0857,1.04,-0.2878,0.0857,1.0715,-0.3538,0.0268,1.0433,-0.3463,0.0857,0.8699,-0.3008,0.0268,0.8964,-0.3077,0.0857,0.9322,-0.2597,0.0857,0.9966,-0.2275,0.0268,0.989,-0.2534,0.0857,1.0663,-0.2743,0.0268,0.9184,-0.2357,0.0268,0.9322,-0.2597,0.0857,0.8986,-0.3073,1.2734,0.8964,-0.3077,0.0857,0.9508,-0.4007,0.0857,0.9071,-0.3708,1.2734,0.9484,-0.4038,1.2734 +,0.9508,-0.4007,0.0857,1.0097,-0.3987,1.2734,1.0119,-0.3962,0.0857,1.04,-0.2878,0.0857,1.045,-0.3463,1.2734,1.0392,-0.2838,1.2734,0.9041,-0.3675,0.0857,0.989,-0.2534,0.0857,0.9368,-0.2571,1.2734,1.0433,-0.3463,0.0857,0.9515,-0.289,1.2734,0.9368,-0.2571,1.2734,0.9793,-0.2841,1.2734,0.931,-0.3159,1.129,0.9356,-0.35,1.2734,0.931,-0.3159,1.2734,0.9793,-0.2841,1.129 +,0.9515,-0.289,1.2734,0.9793,-0.2841,1.2734,0.9515,-0.289,1.129,1.0064,-0.3033,1.129,1.0064,-0.3033,1.2734,1.0126,-0.3376,1.129,1.0126,-0.3376,1.2734,0.9356,-0.35,1.129,0.9577,-0.3677,1.2734,0.9906,-0.365,1.129,0.9906,-0.365,1.2734,0.9577,-0.3677,1.2734,1.0064,-0.3033,1.129,0.9906,-0.365,1.129,0.931,-0.3159,1.129,0.9281,-0.25,-1.0787,1.0027,-0.2451,-1.0787 +,0.8552,-0.397,-1.0265,0.9476,-0.4569,-1.0265,0.9581,-0.4165,-1.0787,0.9581,-0.4165,-1.0787,1.0741,-0.3552,-1.0787,1.0027,-0.2451,-1.0787,1.0663,-0.2743,0.0268,1.0283,-0.4211,0.0268,0.9466,-0.446,-0.7704,0.9448,-0.4271,0.0268,1.0715,-0.3538,0.0268,0.8699,-0.3008,0.0268,0.9184,-0.2357,0.0268,0.9448,-0.4271,0.0268,0.8803,-0.3819,0.0268,0.9966,-0.2275,0.0268,0.9476,-0.4569,-1.0265 +,0.8953,-0.3758,-1.0787,0.9886,-0.248,1.2734,0.3617,0.3639,1.5881,0.3114,-0.0195,1.4911,0.3114,-0.0195,1.4911,0.2038,0.3889,2.0284,0.3085,0.4742,1.5568,0.3085,0.4742,1.5568,0.4018,0.4436,1.2298,0.3617,0.3639,1.5881,0.2081,0.9021,0.9775,0,0.9021,0.9775,0.3799,-0.0081,1.1916,0.3147,0.5809,0.601,0.4079,0.5021,1,0.3486,0.548,1.0995,0.2123,0.8955,1.1171 +,0.3556,0.5184,1.2621,0.4044,0.5021,0.5782,0.14,0.698,0.1878,0.1461,0.7303,0.3163,0.4079,0.5021,1,0.1461,0.7303,0.3163,1.1338,0.7934,-0.9632,1.03,0.7945,-1.2193,1.1398,0.8017,-1.2193,1.0133,0.7,-1.2715,1.03,0.7945,-1.2193,0.9692,0.7115,-1.2193,1.2278,0.6444,-0.9632,1.184,0.5568,-1.2193,1.1734,0.5672,-0.9632,0.9909,0.615,-0.9632,0.9692,0.7115,-1.2193 +,0.9791,0.7094,-0.9632,1.1172,0.6415,0.7924,1.1716,0.6602,0.7924,1.1363,0.6077,0.7924,1.0337,0.6357,0.7924,1.0843,0.6388,0.7924,1.0749,0.6027,0.7924,1.0731,0.5604,-0.9632,0.9818,0.6095,-1.2193,1.2322,0.7418,-1.2193,1.2007,0.6512,-1.2715,1.2448,0.6397,-1.2193,1.0354,0.7858,-0.9632,1.184,0.5568,-1.2193,1.1594,0.5949,-1.2715,1.133,0.7031,0.7924,1.1152,0.7584,0.7924 +,1.1658,0.7226,0.7924,1.0252,0.6992,0.7924,1.0622,0.6565,0.7924,1.2322,0.7418,-1.2193,1.2179,0.7383,-0.9632,1.1398,0.8017,-1.2193,1.1921,0.7206,-1.2715,1.0742,0.5495,-1.2193,1.0731,0.5604,-0.9632,1.0714,0.5793,-0.166,1.0307,0.6389,-0.1072,1.0773,0.6058,-0.1072,1.1385,0.6103,-0.1072,1.0714,0.5793,-0.166,1.0773,0.6058,-0.1072,1.1665,0.7187,-0.1072,1.1981,0.6526,-0.166 +,1.1699,0.6601,-0.1072,0.9965,0.7056,-0.166,1.023,0.6988,-0.1072,1.0588,0.7467,-0.1072,1.1232,0.779,-0.166,1.1156,0.7531,-0.1072,1.1929,0.7322,-0.166,1.045,0.7707,-0.166,1.0588,0.7467,-0.1072,1.0252,0.6992,0.7924,1.023,0.6988,-0.1072,1.0773,0.6058,-0.1072,1.0337,0.6357,0.7924,1.0749,0.6027,0.7924,1.0773,0.6058,-0.1072,1.1363,0.6077,0.7924,1.1385,0.6103,-0.1072 +,1.1665,0.7187,-0.1072,1.1716,0.6602,0.7924,1.1658,0.7226,0.7924,1.0307,0.6389,-0.1072,1.1156,0.7531,-0.1072,1.0633,0.7493,0.7924,1.1699,0.6601,-0.1072,1.078,0.7174,0.7924,1.0633,0.7493,0.7924,1.1059,0.7223,0.7924,1.0576,0.6905,0.648,1.0622,0.6565,0.7924,1.0576,0.6905,0.7924,1.1059,0.7223,0.648,1.078,0.7174,0.7924,1.1059,0.7223,0.7924,1.078,0.7174,0.648 +,1.133,0.7031,0.648,1.133,0.7031,0.7924,1.1392,0.6688,0.648,1.1392,0.6688,0.7924,1.0622,0.6565,0.648,1.0843,0.6388,0.7924,1.1172,0.6415,0.7924,1.0843,0.6388,0.648,1.0843,0.6388,0.7924,1.133,0.7031,0.648,1.1172,0.6415,0.648,1.0576,0.6905,0.648,1.0546,0.7564,-1.2715,1.1293,0.7613,-1.2715,0.9818,0.6095,-1.2193,1.0742,0.5495,-1.2193,1.0847,0.5899,-1.2715 +,1.0847,0.5899,-1.2715,1.2007,0.6512,-1.2715,1.1293,0.7613,-1.2715,1.1929,0.7322,-0.166,1.1549,0.5853,-0.166,1.0731,0.5604,-0.9632,1.0714,0.5793,-0.166,1.1981,0.6526,-0.166,0.9965,0.7056,-0.166,1.045,0.7707,-0.166,1.0714,0.5793,-0.166,1.0069,0.6246,-0.166,1.1232,0.779,-0.166,1.0742,0.5495,-1.2193,1.0219,0.6307,-1.2715,1.1152,0.7584,0.7924,0.7468,0.565,-0.9195 +,0.7353,0.5714,0.0234,1.5273,1.1822,-1.4131,1.6709,1.2539,-0.8273,0.7238,0.6073,-0.9195,0.7468,0.565,-0.9195,1.197,-0.2565,-1.0658,1.1874,-0.2575,-1.2084,0.7811,0.0141,-0.8388,0.7811,0.0534,0.1888,0.7811,0.0021,0.5998,0.7811,0.0021,-1,0.7811,-0.0521,0,0.7811,-0.0434,0.0967,0.846,-0.0396,0.534,0.7811,0.0021,0.5998,0.7811,0.0021,-1,1.6073,-0.5284,-0.2071 +,1.2437,-0.295,0.1313,1.6128,-0.5318,-1.1473,1.1874,-0.2575,-1.2084,0.8963,-0.0715,-1.0591,1.6665,-0.5902,-0.5975,1.6718,-0.5698,-1.1388,1.6718,-0.5698,-1.1388,1.6718,-0.5698,-0.2728,0.7811,-0.0521,0,0.7811,0.0021,-1,-0.3559,-0.0736,-1.3047,-0.7811,0.0021,0.5998,-0.3983,0.0021,1,0,0.7301,0.3156,-0.3114,0.5021,0.1624,-0.3114,0.0021,-1,-0.3114,0.5021,0.1624 +,-0.3929,-0.1679,-1,-0.2123,0.8955,1.1171,-0.3486,0.548,1.0995,-0.4079,0.5021,1,-0.2038,0.1925,2.247,0,0.6979,0.1876,-0.6895,0.6703,0.0281,-0.403,0.6703,-1,-0.3929,-0.1679,-0.1343,-0.3929,-0.1679,-0.1343,-0.6996,-0.1679,-1,-0.7811,-0.0521,0,0,0.3849,2.0329,-0.403,0.6703,-1,-0.3682,0.5761,-1.3047,-0.3682,0.5761,-1.3047,-0.4449,0.4472,-0.9238 +,-0.3776,0.3686,-0.9238,-0.7149,0.3686,-0.9238,-0.4449,0.4472,-0.9238,-0.6475,0.4472,-0.9238,-0.4375,0.0556,-0.9238,-1.6718,-0.5698,-1.1388,-1.6587,1.2763,-1.4938,-1.6709,1.2539,-1.4938,-0.4574,0.0906,0.7397,-0.7028,0.0906,0.4812,-0.7028,0.4135,0.4812,-0.4574,0.4135,0.9291,-0.4574,0.0906,0.7397,-0.7353,0.5714,0.0234,-1.0027,-0.2451,-1.0787,-0.9466,-0.446,-0.7704,-0.9476,-0.4569,-1.0265 +,-0.8803,-0.3819,0.0268,-0.9508,-0.4007,0.0857,-0.9448,-0.4271,0.0268,-0.9184,-0.2357,0.0268,-0.9484,-0.4038,1.2734,-0.9484,-0.4038,1.2734,-0.9508,-0.4007,0.0857,-0.9886,-0.248,1.2734,-0.9577,-0.3677,1.129,-0.9577,-0.3677,1.2734,-0.9356,-0.35,1.129,-0.9906,-0.365,1.129,-0.9577,-0.3677,1.129,-1.0126,-0.3376,1.129,-0.9793,-0.2841,1.129,-1.0027,-0.2451,-1.0787,-0.9581,-0.4165,-1.0787 +,-0.8867,-0.3064,-1.0787,-0.9281,-0.25,-1.0787,-1.0655,-0.2859,-1.0787,-1.0741,-0.3552,-1.0787,-1.0741,-0.3552,-1.0787,-1.0328,-0.4116,-1.0787,-0.8953,-0.3758,-1.0787,-0.8867,-0.3064,-1.0787,-0.8867,-0.3064,-1.0787,-0.9448,-0.4271,0.0268,-0.9466,-0.446,-0.7704,-0.9581,-0.4165,-1.0787,-0.9476,-0.4569,-1.0265,0,0.1925,2.247,-0.2081,0.9021,0.9775,-0.1461,0.7303,0.3163,-1.1293,0.7613,-1.2715 +,-1.0731,0.5604,-0.9632,-1.0742,0.5495,-1.2193,-1.0069,0.6246,-0.166,-1.0773,0.6058,-0.1072,-1.0714,0.5793,-0.166,-1.045,0.7707,-0.166,-1.0749,0.6027,0.7924,-1.0749,0.6027,0.7924,-1.0773,0.6058,-0.1072,-1.1152,0.7584,0.7924,-1.0843,0.6388,0.648,-1.0843,0.6388,0.7924,-1.0622,0.6565,0.648,-1.1172,0.6415,0.648,-1.0843,0.6388,0.648,-1.1392,0.6688,0.648,-1.1059,0.7223,0.648 +,-1.1293,0.7613,-1.2715,-1.0847,0.5899,-1.2715,-1.0133,0.7,-1.2715,-1.0546,0.7564,-1.2715,-1.1921,0.7206,-1.2715,-1.2007,0.6512,-1.2715,-1.2007,0.6512,-1.2715,-1.1594,0.5949,-1.2715,-1.0219,0.6307,-1.2715,-1.0133,0.7,-1.2715,-1.0133,0.7,-1.2715,-1.0714,0.5793,-0.166,-1.0731,0.5604,-0.9632,-1.0847,0.5899,-1.2715,-1.0742,0.5495,-1.2193,-0.7811,0.0021,0.5998,-1.6718,-0.5698,-1.1388 +,0.3559,-0.0736,-1.3047,0.7811,0.0021,0.5998,0.403,0.6703,-1,0.3114,0.0021,-1,0.4574,0.0906,0.9291,0.3114,0.5021,0.1624,0.3929,-0.1679,-1,0.1461,0.7303,0.3163,0.2038,0.1925,2.247,0.6895,0.6703,0.0281,0.403,0.6703,-1,0.2565,0.0582,-1.3047,0.3929,-0.1679,-0.1343,0.3929,-0.1679,-0.1343,0.836,0.0582,-1.3047,0.6996,-0.1679,-1,0.2038,0.1925,2.247 +,0.3682,0.5761,-1.3047,0.7149,0.135,-0.9238,0.3776,0.135,-0.9238,0.4449,0.4472,-0.9238,0.4449,0.4472,-0.9238,0.3776,0.3686,-0.9238,0.4375,0.0556,-0.9238,0.655,0.0556,-0.9238,0.6475,0.4472,-0.9238,1.6718,-0.5698,-1.1388,1.6738,-0.5623,-0.9951,1.6718,-0.5698,-0.2728,1.6587,1.2763,-1.4938,1.6709,1.2539,-1.4938,0.4574,0.0906,0.7397,0.7028,0.0906,0.4812,0.7028,0.4135,0.4812 +,0.7028,0.4135,0.4812,0.4574,0.0906,0.7397,1.1183,-0.3667,-1.0265,1.0126,-0.3376,1.2734,0.9476,-0.4569,-1.0265,0.931,-0.3159,1.2734,0.8803,-0.3819,0.0268,1.0283,-0.4211,0.0268,0.9448,-0.4271,0.0268,0.9508,-0.4007,0.0857,0.9484,-0.4038,1.2734,0.9577,-0.3677,1.129,0.9577,-0.3677,1.2734,0.9577,-0.3677,1.129,0.9577,-0.3677,1.129,0.9356,-0.35,1.129,0.9515,-0.289,1.129 +,0.9793,-0.2841,1.129,1.0126,-0.3376,1.129,1.0027,-0.2451,-1.0787,0.9281,-0.25,-1.0787,0.8867,-0.3064,-1.0787,0.8867,-0.3064,-1.0787,0.8953,-0.3758,-1.0787,0.9581,-0.4165,-1.0787,0.9581,-0.4165,-1.0787,1.0328,-0.4116,-1.0787,1.0741,-0.3552,-1.0787,1.0741,-0.3552,-1.0787,1.0655,-0.2859,-1.0787,1.0027,-0.2451,-1.0787,1.0027,-0.2451,-1.0787,0.8867,-0.3064,-1.0787,0.9581,-0.4165,-1.0787 +,0.9466,-0.446,-0.7704,0.9448,-0.4271,0.0268,0.9476,-0.4569,-1.0265,0.9581,-0.4165,-1.0787,0.2123,0.8955,1.1171,0.2081,0.9021,0.9775,1.2448,0.6397,-1.2193,1.1392,0.6688,0.7924,1.0742,0.5495,-1.2193,1.0576,0.6905,0.7924,1.0069,0.6246,-0.166,1.1549,0.5853,-0.166,1.0714,0.5793,-0.166,1.0773,0.6058,-0.1072,1.0749,0.6027,0.7924,1.0843,0.6388,0.648,1.1172,0.6415,0.648 +,1.0843,0.6388,0.648,1.0622,0.6565,0.648,1.078,0.7174,0.648,1.1059,0.7223,0.648,1.1392,0.6688,0.648,1.1293,0.7613,-1.2715,1.0546,0.7564,-1.2715,1.0133,0.7,-1.2715,1.0133,0.7,-1.2715,1.0219,0.6307,-1.2715,1.0847,0.5899,-1.2715,1.0847,0.5899,-1.2715,1.1594,0.5949,-1.2715,1.2007,0.6512,-1.2715,1.2007,0.6512,-1.2715,1.1921,0.7206,-1.2715,1.1293,0.7613,-1.2715 +,1.1293,0.7613,-1.2715,1.0133,0.7,-1.2715,1.0847,0.5899,-1.2715,1.0731,0.5604,-0.9632,1.0714,0.5793,-0.166,1.0742,0.5495,-1.2193,1.0847,0.5899,-1.2715,1.6587,1.2763,-1.4938] +,"normals":[-0.878,0.479,0.003,-0.879,0.477,0,-0.88,0.474,0.004,0,-0.955,-0.296,0,-0.955,-0.296,0,-0.955,-0.296,-1,0,0,-1,0,0,-1,0,0,-0.01,-0.998,0.059,0,-1,-0.003,0,-0.999,0.054,0,0.988,0.153,0,0.92,0.391,0,0.92,0.391,0,0.968,-0.251,0,0.968,-0.251 +,0,0.968,-0.251,-1,0,0,-1,0,0,-0.002,-1,0.019,0,-0.999,-0.054,0,-0.999,-0.054,0.878,0.478,0,0.878,0.478,0,0.878,0.478,0,0,0,-1,0,0,-1,0,0,-1,-0.039,-0.997,0.063,-0.007,-0.996,0.086,-0.753,0.033,0.657,-0.766,-0.079,0.638,-0.768,-0.076,0.636 +,0,1,0,0,1,0,0,1,0,0.895,-0.446,-0.003,0.84,-0.541,-0.027,0.833,-0.552,-0.03,-0.938,0.321,0.132,-0.934,0.333,0.132,-0.923,0.303,0.236,-0.905,0.413,-0.096,-0.865,0.475,-0.16,-0.825,0.524,-0.213,-0.996,-0.045,0.072,-0.994,-0.067,0.083,-0.986,-0.061,0.155,-0.003,-0.999,-0.047,0,-0.998,-0.057 +,0,-0.999,-0.038,0,-0.999,-0.038,0,-0.999,-0.038,-0.967,-0.174,0.184,-0.963,-0.174,0.206,-0.972,-0.179,0.154,0,0.987,-0.163,0,0.987,-0.163,0,0.987,-0.163,-0.745,0.662,-0.081,-0.753,0.658,0,-0.749,0.654,-0.105,0,0.624,0.781,0,0.624,0.781,0,0.624,0.781,0,1,0,0,1,0 +,0,1,0,0.956,-0.284,0.075,0.834,-0.551,0.015,0.901,-0.432,-0.024,0,-1,0,0,-1,0,0,-1,0,0,-0.757,0.653,0,-0.757,0.653,0,-0.757,0.653,-0.956,-0.284,0.075,-0.834,-0.551,0.015,-0.954,-0.273,0.122,-0.895,-0.446,-0.003,-0.84,-0.541,-0.027,-0.902,-0.432,0,-0.586,0.63,0.51 +,-0.231,0.724,0.65,-0.834,0.446,0.324,0.002,0.797,0.605,0,-0.502,0.865,0,-0.502,0.865,0,-0.502,0.865,-0.947,0.315,0.064,-0.507,0.849,-0.148,-0.436,0.873,-0.22,0.507,0.849,-0.148,0.436,0.873,-0.22,0.947,0.315,0.064,0.507,0.849,-0.148,0.947,0.298,0.116,0.954,-0.273,0.122,-0.947,0.298,0.116,0.885,0.312,-0.344 +,0.404,0.837,-0.37,0.897,0.281,-0.342,-0.885,0.312,-0.344,-0.404,0.837,-0.37,-0.422,0.827,-0.371,0.422,0.827,-0.371,0.875,-0.338,-0.347,0.379,-0.851,-0.364,0.397,-0.842,-0.365,-0.379,-0.851,-0.364,-0.397,-0.842,-0.365,-0.875,-0.338,-0.347,-0.379,-0.851,-0.364,-0.886,-0.309,-0.344,0.886,-0.309,-0.344,-0.897,0.281,-0.342,0,0,-1 +,0,0,-1,0,0,-1,0.495,-0.869,0.011,0.467,-0.882,0.064,0.467,-0.881,0.069,0.536,-0.843,-0.039,0.5,-0.866,-0.005,-0.562,0.827,0.019,-0.595,0.8,0.081,-0.556,0.831,-0.003,-0.544,0.838,-0.05,-0.543,0.838,-0.051,-0.968,-0.252,0,-0.968,-0.252,0,-0.968,-0.252,0,-0.879,0.476,-0.027,-0.867,0.496,-0.038 +,0.395,-0.215,-0.893,0.395,-0.215,-0.893,0.395,-0.215,-0.893,-0.597,-0.802,0.001,-0.592,-0.806,0.002,-0.596,-0.803,0.005,-0.906,0.423,-0.023,-0.878,0.478,0,0.535,-0.845,0.018,0.473,-0.875,0.101,0.492,-0.867,0.084,0.558,-0.828,-0.05,0.511,-0.859,0.024,-0.579,0.815,0.032,-0.601,0.795,0.084,-0.566,0.824,0.026,-0.526,0.849,-0.045 +,-0.534,0.844,-0.04,-1,0,0,-1,0,0,-1,0,0,-0.698,0.044,0.715,-0.746,0.033,0.665,-0.698,-0.045,0.715,-0.694,0.038,0.719,-0.702,-0.054,0.711,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0 +,0,-1,0,-0.725,0,0.688,-0.725,0,0.688,-0.725,0,0.688,0.566,0.824,0.038,0.566,0.824,0.038,0.566,0.824,0.038,-0.878,0.478,0,-0.878,0.478,0,-0.878,0.478,0,-0.249,0.968,0.03,0.482,0.875,0.038,0.485,0.874,0.03,0.37,0.658,-0.655,0.473,0.123,-0.872,0.729,0.19,-0.658,-0.967,-0.251,0.051 +,-0.486,-0.872,0.059,-0.965,-0.252,0.069,0.967,0.251,0.04,0.85,-0.526,0.032,0.967,0.252,0.031,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0.256,-0.966,0.032,0.848,-0.529,0.04,0.249,-0.968,0.04,-0.473,-0.123,-0.872,-0.644,0.394,-0.655,-0.729,-0.19,-0.658 +,-0.37,-0.658,-0.655,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.85,0.524,0.058,-0.852,0.521,0.044,-0.42,0.273,-0.865,-0.197,0.756,-0.624,-0.489,-0.871,0.045,0.249,-0.968,0.04,0.775,-0.467,0.426,0.239,-0.875,0.42,0.249,-0.874,0.418,-0.452,-0.769,0.453,0.239,-0.875,0.42 +,-0.459,-0.765,0.451,-0.772,0.45,0.45,-0.869,-0.225,0.441,-0.777,0.442,0.449,0.877,0.23,0.422,0.877,0.23,0.422,-0.221,0.881,0.418,0.449,0.787,0.424,-0.213,0.884,0.416,-0.868,-0.223,0.444,0.967,0.256,0.002,0.498,0.867,0,0.967,0.254,0.002,0.269,-0.963,-0.002,0.87,-0.494,-0.001,0.858,-0.514,0.001,-0.505,-0.863,-0.001 +,0.269,-0.963,-0.002,-0.515,-0.857,-0.002,-0.869,0.494,-0.002,-0.969,-0.247,0,-0.968,-0.25,-0.001,0.519,0.855,-0.001,-0.239,0.971,-0.002,-0.255,0.966,0.038,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.871,0.492,0,-0.967,-0.255,0,-0.967,-0.255,0,-0.52,-0.854,0 +,0.219,-0.976,0,0.219,-0.976,0,-0.52,-0.854,0,0.843,-0.537,0,0.843,-0.537,0,0.969,0.247,0,0.969,0.247,0,-0.292,0.956,0,-0.871,0.492,0,0.468,0.884,0,0.468,0.884,0,-0.292,0.956,0,-0.292,0.956,0,0,0,1,0,0,1,0,0,1,0.234,0.444,-0.865 +,0.644,-0.394,-0.655,0.197,-0.756,-0.624,-0.234,-0.444,-0.865,-0.473,-0.123,-0.872,0.126,-0.483,-0.866,-0.126,0.483,-0.866,-0.865,0.502,0.03,-0.24,0.97,0.022,-0.508,-0.861,0.031,0.256,-0.966,0.032,-0.968,-0.25,0.034,0.967,0.253,0.023,0.495,0.869,0.022,0.267,-0.963,0.024,0.856,-0.517,0.023,0.42,-0.273,-0.865,0.197,-0.756,-0.624 +,-0.865,0.502,-0.002,-0.98,-0.161,0.113,-0.978,-0.131,0.159,0,-0.998,-0.058,-0.009,-0.999,-0.045,0,0.744,0.668,-0.915,0.309,0.259,-0.852,0.504,0.143,-0.851,0.473,0.23,-0.845,0.475,0.246,0,0.999,0.047,0,0.999,0.047,0,0.999,0.047,-0.023,-0.998,-0.055,-0.658,0.753,0,-0.667,0.744,0.049,-0.683,0.729,-0.046 +,-0.84,0.537,0.078,-0.931,0.365,-0.003,-0.886,0.449,0.114,0,0.97,-0.244,0,0.97,-0.244,0,0.97,-0.244,0,1,0,-0.745,0.644,-0.173,-0.249,0.968,0.03,0.482,0.875,0.038,0.485,0.874,0.03,0.37,0.658,-0.655,0.473,0.123,-0.872,0.729,0.19,-0.658,-0.967,-0.251,0.051,-0.486,-0.872,0.059,-0.965,-0.252,0.069 +,0.967,0.251,0.04,0.85,-0.526,0.032,0.967,0.252,0.031,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0.256,-0.966,0.032,0.848,-0.529,0.04,0.249,-0.968,0.04,-0.473,-0.123,-0.872,-0.644,0.394,-0.655,-0.729,-0.19,-0.658,-0.37,-0.658,-0.655,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,-0.85,0.524,0.058,-0.852,0.521,0.044,-0.42,0.273,-0.865,-0.197,0.756,-0.624,-0.489,-0.871,0.045,0.249,-0.968,0.04,0.775,-0.467,0.426,0.239,-0.875,0.42,0.249,-0.874,0.418,-0.452,-0.769,0.453,0.239,-0.875,0.42,-0.459,-0.765,0.451,-0.772,0.45,0.45 +,-0.869,-0.225,0.441,-0.777,0.442,0.449,0.877,0.23,0.422,0.877,0.23,0.422,-0.221,0.881,0.418,0.449,0.787,0.424,-0.213,0.884,0.416,-0.868,-0.223,0.444,0.967,0.256,0.003,0.499,0.867,0,0.967,0.253,0.002,0.27,-0.963,-0.002,0.869,-0.494,-0.001,0.858,-0.514,0.001,-0.505,-0.863,-0.002,0.27,-0.963,-0.002,-0.515,-0.857,-0.002 +,-0.87,0.494,-0.003,-0.969,-0.247,0,-0.968,-0.25,-0.002,0.518,0.855,-0.002,-0.239,0.971,-0.003,-0.255,0.966,0.038,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.871,0.492,0,-0.967,-0.255,0,-0.967,-0.255,0,-0.52,-0.854,0,0.219,-0.976,0,0.219,-0.976,0 +,-0.52,-0.854,0,0.843,-0.537,0,0.843,-0.537,0,0.969,0.247,0,0.969,0.247,0,-0.292,0.956,0,-0.871,0.492,0,0.468,0.884,0,0.468,0.884,0,-0.292,0.956,0,-0.292,0.956,0,0,0,1,0,0,1,0,0,1,0.234,0.444,-0.865,0.644,-0.394,-0.655,0.197,-0.756,-0.624 +,-0.234,-0.444,-0.865,-0.473,-0.123,-0.872,0.126,-0.483,-0.866,-0.126,0.483,-0.866,-0.865,0.502,0.03,-0.24,0.97,0.022,-0.508,-0.861,0.031,0.256,-0.966,0.032,-0.968,-0.25,0.034,0.967,0.253,0.023,0.495,0.869,0.022,0.267,-0.963,0.024,0.856,-0.517,0.023,0.42,-0.273,-0.865,0.197,-0.756,-0.624,-0.865,0.502,-0.002,-0.597,-0.802,0.009 +,-0.597,-0.802,0.013,0.566,0.823,0.038,0.566,0.824,0.038,0.395,-0.215,-0.893,0.395,-0.215,-0.893,-0.592,0.802,0.081,0.542,-0.839,-0.051,-0.526,0.849,-0.043,-0.593,0.803,0.056,-0.607,0.789,0.098,0.555,-0.831,-0.046,0.524,-0.851,0.04,0.497,-0.864,0.08,0.481,-0.873,0.08,0.481,-0.873,0.079,-0.516,0.854,-0.062,-0.52,0.852,-0.058 +,0.473,-0.878,0.078,0.476,-0.874,0.098,-0.545,0.837,-0.048,-0.535,0.844,-0.042,-0.968,-0.252,0,-0.968,-0.252,0,-0.545,0.837,-0.05,0.485,-0.872,0.069,0,-0.996,0.09,0,-1,0,-1,0,0,0.88,0.474,0.004,0.878,0.478,0,0.878,0.479,0.003,0,-0.955,-0.296,0,-0.955,-0.296,0,-0.955,-0.296 +,1,0,0,1,0,0,1,0,0,0.01,-0.998,0.059,0.012,-1,0.012,0,0.988,0.153,0,0.988,0.153,0,0.968,-0.251,0,0.968,-0.251,1,0,0,1,0,0,0.002,-1,0.019,0,-0.999,-0.054,-0.878,0.478,0,-0.878,0.478,0,-0.878,0.478,0,0,0,-1 +,0.039,-0.997,0.063,0.007,-0.996,0.086,0.766,-0.079,0.638,0.753,0.033,0.657,0.768,-0.076,0.636,0,1,0,0,1,0,0,1,0,-0.84,-0.541,-0.027,-0.895,-0.446,-0.003,-0.833,-0.552,-0.03,0.938,0.321,0.132,0.934,0.333,0.132,0.93,0.366,0.033,0.905,0.413,-0.096,0.865,0.475,-0.16,0.933,0.357,-0.04 +,0.996,-0.045,0.072,0.994,-0.067,0.083,1,-0.019,0.022,0.003,-0.999,-0.047,0,-0.999,-0.038,0.009,-0.999,-0.045,0.963,-0.174,0.206,0.967,-0.174,0.184,0.972,-0.179,0.154,0,0.987,-0.163,0,0.987,-0.163,0.745,0.662,-0.081,0.749,0.654,-0.105,0.753,0.658,0,0,0.624,0.781,0,0.624,0.781,0,0.624,0.781 +,0,1,0,0,1,0,0,1,0,-0.834,-0.551,0.015,-0.956,-0.284,0.075,-0.901,-0.432,-0.024,0,-1,0,0,-1,0,0,-1,0,0,-0.757,0.653,0,-0.757,0.653,0,-0.757,0.653,0.956,-0.284,0.075,0.834,-0.551,0.015,0.901,-0.432,-0.024,0.895,-0.446,-0.003,0.84,-0.541,-0.027 +,0.833,-0.552,-0.03,0.586,0.63,0.51,0.834,0.446,0.324,0.231,0.724,0.65,-0.002,0.797,0.605,0,0.92,0.391,0,-0.502,0.865,0,-0.502,0.865,0.507,0.849,-0.148,0.947,0.315,0.064,0.436,0.873,-0.22,-0.436,0.873,-0.22,-0.947,0.315,0.064,-0.507,0.849,-0.148,-0.436,0.873,-0.22,-0.947,0.298,0.116,0.947,0.298,0.116 +,-0.885,0.312,-0.344,-0.404,0.837,-0.37,-0.422,0.827,-0.371,0.404,0.837,-0.37,0.885,0.312,-0.344,0.422,0.827,-0.371,-0.379,-0.851,-0.364,-0.875,-0.338,-0.347,-0.397,-0.842,-0.365,0.379,-0.851,-0.364,0.397,-0.842,-0.365,0.875,-0.338,-0.347,0.379,-0.851,-0.364,0.397,-0.842,-0.365,-0.886,-0.309,-0.344,0.886,-0.309,-0.344,0,0,-1 +,0,0,-1,0,0,-1,-0.467,-0.882,0.064,-0.495,-0.869,0.011,-0.467,-0.881,0.069,-0.5,-0.866,-0.005,-0.536,-0.843,-0.039,0.562,0.827,0.019,0.595,0.8,0.081,0.592,0.802,0.081,0.544,0.838,-0.05,0.556,0.831,-0.003,0.968,-0.252,0,0.968,-0.252,0,0.968,-0.252,0,0.879,0.476,-0.027,0.867,0.496,-0.038 +,-0.395,-0.215,-0.893,-0.395,-0.215,-0.893,-0.395,-0.215,-0.893,0.592,-0.806,0.002,0.597,-0.802,0.001,0.596,-0.803,0.005,0.906,0.423,-0.023,0.879,0.477,0,-0.473,-0.875,0.101,-0.535,-0.845,0.018,-0.492,-0.867,0.084,-0.511,-0.859,0.024,-0.558,-0.828,-0.05,0.579,0.815,0.032,0.601,0.795,0.084,0.607,0.789,0.098,0.526,0.849,-0.045 +,0.566,0.824,0.026,1,0,0,1,0,0,1,0,0,0.698,0.044,0.715,0.694,0.038,0.719,0.698,-0.045,0.715,0.702,-0.054,0.711,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0 +,0.725,0,0.688,0.725,0,0.688,0.725,0,0.688,-0.566,0.824,0.038,-0.566,0.824,0.038,-0.566,0.824,0.038,0.878,0.478,0,0.878,0.478,0,0.878,0.478,0,0.249,0.968,0.03,-0.482,0.875,0.038,0.255,0.966,0.038,-0.473,0.123,-0.872,-0.37,0.658,-0.655,-0.729,0.19,-0.658,0.967,-0.251,0.051,0.486,-0.872,0.059 +,0.489,-0.871,0.045,-0.85,-0.526,0.032,-0.967,0.251,0.04,-0.967,0.252,0.031,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.256,-0.966,0.032,-0.848,-0.529,0.04,0.644,0.394,-0.655,0.473,-0.123,-0.872,0.729,-0.19,-0.658,-0.485,0.874,0.03,0.37,-0.658,-0.655 +,0.234,-0.444,-0.865,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0.85,0.524,0.058,0.852,0.521,0.044,0.197,0.756,-0.624,0.42,0.273,-0.865,-0.249,-0.968,0.04,-0.256,-0.966,0.032,-0.239,-0.875,0.42,-0.775,-0.467,0.426,-0.249,-0.874,0.418,0.452,-0.769,0.453,-0.239,-0.875,0.42 +,-0.249,-0.874,0.418,0.772,0.45,0.45,0.869,-0.225,0.441,0.868,-0.223,0.444,-0.877,0.23,0.422,-0.877,0.23,0.422,-0.449,0.787,0.424,0.221,0.881,0.418,0.213,0.884,0.416,0.777,0.442,0.449,-0.448,0.786,0.425,-0.498,0.867,0,-0.967,0.256,0.002,-0.967,0.254,0.002,-0.269,-0.963,-0.002,-0.87,-0.494,-0.001,-0.293,-0.956,-0.003 +,-0.269,-0.963,-0.002,0.505,-0.863,-0.001,0.515,-0.857,-0.002,0.869,0.494,-0.002,0.969,-0.247,0,0.865,0.502,-0.002,-0.858,-0.514,0.001,0.239,0.971,-0.002,-0.519,0.855,-0.001,0.968,-0.25,-0.001,0,0,1,0,0,1,0,0,1,0.967,-0.255,0,0.871,0.492,0,0.967,-0.255,0,-0.219,-0.976,0 +,0.52,-0.854,0,-0.219,-0.976,0,0.52,-0.854,0,-0.843,-0.537,0,-0.843,-0.537,0,-0.969,0.247,0,-0.969,0.247,0,0.871,0.492,0,0.292,0.956,0,-0.468,0.884,0,-0.468,0.884,0,0.292,0.956,0,0,0,1,0,0,1,0,0,1,-0.234,0.444,-0.865,0.126,0.483,-0.866 +,-0.644,-0.394,-0.655,-0.197,-0.756,-0.624,-0.126,-0.483,-0.866,-0.126,-0.483,-0.866,0.473,-0.123,-0.872,0.126,0.483,-0.866,0.865,0.502,0.03,0.508,-0.861,0.031,-0.256,-0.966,0.032,-0.267,-0.963,0.024,0.968,-0.25,0.034,-0.967,0.253,0.023,-0.495,0.869,0.022,-0.267,-0.963,0.024,-0.856,-0.517,0.023,0.24,0.97,0.022,-0.197,-0.756,-0.624 +,-0.42,-0.273,-0.865,0.219,0.976,-0.004,0.98,-0.161,0.113,0.978,-0.131,0.159,0.023,-0.998,-0.055,0.915,0.309,0.259,0.923,0.303,0.236,0.851,0.473,0.23,0.852,0.504,0.143,0.845,0.475,0.246,0,0.999,0.047,0,0.999,0.047,0.986,-0.061,0.155,0.658,0.753,0,0.667,0.744,0.049,0.84,0.537,0.078,0.931,0.365,-0.003 +,0.886,0.449,0.114,0.683,0.729,-0.046,0,0.97,-0.244,0,0.97,-0.244,0,1,0,0.745,0.644,-0.173,0.249,0.968,0.03,-0.482,0.875,0.038,0.255,0.966,0.038,-0.473,0.123,-0.872,-0.37,0.658,-0.655,-0.729,0.19,-0.658,0.967,-0.251,0.051,0.486,-0.872,0.059,0.489,-0.871,0.045,-0.85,-0.526,0.032,-0.967,0.251,0.04 +,-0.967,0.252,0.031,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.256,-0.966,0.032,-0.848,-0.529,0.04,0.644,0.394,-0.655,0.473,-0.123,-0.872,0.729,-0.19,-0.658,-0.485,0.874,0.03,0.37,-0.658,-0.655,0.234,-0.444,-0.865,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0.85,0.524,0.058,0.852,0.521,0.044,0.197,0.756,-0.624,0.42,0.273,-0.865,-0.249,-0.968,0.04,-0.256,-0.966,0.032,-0.239,-0.875,0.42,-0.775,-0.467,0.426,-0.249,-0.874,0.418,0.452,-0.769,0.453,-0.239,-0.875,0.42,-0.249,-0.874,0.418,0.772,0.45,0.45,0.869,-0.225,0.441 +,0.868,-0.223,0.444,-0.877,0.23,0.422,-0.877,0.23,0.422,-0.449,0.787,0.424,0.221,0.881,0.418,0.213,0.884,0.416,0.777,0.442,0.449,-0.448,0.786,0.425,-0.499,0.867,0,-0.967,0.256,0.003,-0.967,0.253,0.002,-0.27,-0.963,-0.002,-0.869,-0.494,-0.001,-0.293,-0.956,-0.004,-0.27,-0.963,-0.002,0.505,-0.863,-0.002,0.515,-0.857,-0.002 +,0.87,0.494,-0.003,0.969,-0.247,0,0.865,0.502,-0.002,-0.858,-0.514,0.001,0.239,0.971,-0.003,-0.518,0.855,-0.002,0.968,-0.25,-0.002,0,0,1,0,0,1,0,0,1,0.967,-0.255,0,0.871,0.492,0,0.967,-0.255,0,-0.219,-0.976,0,0.52,-0.854,0,-0.219,-0.976,0,0.52,-0.854,0 +,-0.843,-0.537,0,-0.843,-0.537,0,-0.969,0.247,0,-0.969,0.247,0,0.871,0.492,0,0.292,0.956,0,-0.468,0.884,0,0.292,0.956,0,0.292,0.956,0,0,0,1,0,0,1,0,0,1,-0.234,0.444,-0.865,0.126,0.483,-0.866,-0.644,-0.394,-0.655,-0.197,-0.756,-0.624,-0.126,-0.483,-0.866 +,-0.126,-0.483,-0.866,0.473,-0.123,-0.872,0.126,0.483,-0.866,0.865,0.502,0.03,0.508,-0.861,0.031,-0.256,-0.966,0.032,-0.267,-0.963,0.024,0.968,-0.25,0.034,-0.967,0.253,0.023,-0.495,0.869,0.022,-0.267,-0.963,0.024,-0.856,-0.517,0.023,0.24,0.97,0.022,-0.197,-0.756,-0.624,-0.42,-0.273,-0.865,0.219,0.976,-0.006,0.597,-0.802,0.009 +,0.597,-0.802,0.013,-0.566,0.824,0.038,-0.566,0.823,0.038,-0.395,-0.215,-0.893,-0.395,-0.215,-0.893,0.534,0.844,-0.04,-0.542,-0.839,-0.051,0.526,0.849,-0.043,0.593,0.803,0.056,0.606,0.789,0.099,-0.555,-0.831,-0.046,-0.524,-0.851,0.04,-0.497,-0.864,0.08,-0.481,-0.873,0.08,-0.481,-0.873,0.079,0.516,0.854,-0.062,-0.473,-0.878,0.078 +,-0.476,-0.874,0.098,0.545,0.837,-0.048,0.535,0.844,-0.042,0.52,0.852,-0.058,0.968,-0.252,0,0.968,-0.252,0,0.545,0.837,-0.05,-0.485,-0.872,0.069,0,-0.996,0.09,1,0,0,0,-0.955,-0.296,-1,0,0,-0.012,-1,0.012,0,0.968,-0.251,0.878,0.478,0,0,0,-1,0,1,0 +,0.902,-0.432,0,-0.93,0.366,0.033,-0.933,0.357,-0.04,-1,-0.019,0.022,-0.953,-0.152,0.262,0,0.987,-0.163,0,0.624,0.781,0,1,0,0,-1,0,0,-0.757,0.653,-0.901,-0.432,-0.024,-0.833,-0.552,-0.03,0,0.797,0.605,0.436,0.873,-0.22,0.507,0.849,-0.148,-0.397,-0.842,-0.365,-0.379,-0.851,-0.364 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.538,-0.842,-0.037,0.395,-0.215,-0.893,-0.598,-0.802,0,-1,0,0,0,1,0,1,0,0,0,-1,0,-0.725,0,0.688,0.566,0.824,0.038,-0.126,0.483,-0.866,0.256,-0.966,0.032,0.249,-0.968,0.04 +,0.774,-0.467,0.427,0.249,-0.874,0.418,0.239,-0.875,0.42,0.448,0.786,0.425,0.293,-0.956,-0.003,0.293,-0.956,-0.003,0.269,-0.963,-0.002,-0.219,0.976,-0.004,-0.292,0.956,0,-0.292,0.956,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.126,0.483,-0.866,0.126,-0.483,-0.866 +,0.473,0.123,-0.872,0.234,0.444,-0.865,-0.42,0.273,-0.865,-0.473,-0.123,-0.872,-0.473,-0.123,-0.872,-0.234,-0.444,-0.865,0.42,-0.273,-0.865,0.473,0.123,-0.872,0.473,0.123,-0.872,0.267,-0.963,0.024,0.256,-0.966,0.032,0.126,-0.483,-0.866,0.197,-0.756,-0.624,0,0.744,0.668,-0.931,0.366,-0.011,0,0.97,-0.244,-0.126,0.483,-0.866 +,0.256,-0.966,0.032,0.249,-0.968,0.04,0.774,-0.467,0.427,0.249,-0.874,0.418,0.239,-0.875,0.42,0.448,0.786,0.425,0.293,-0.956,-0.004,0.293,-0.956,-0.004,0.27,-0.963,-0.002,-0.219,0.976,-0.006,-0.292,0.956,0,-0.292,0.956,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,-0.126,0.483,-0.866,0.126,-0.483,-0.866,0.473,0.123,-0.872,0.234,0.444,-0.865,-0.42,0.273,-0.865,-0.473,-0.123,-0.872,-0.473,-0.123,-0.872,-0.234,-0.444,-0.865,0.42,-0.273,-0.865,0.473,0.123,-0.872,0.473,0.123,-0.872,0.267,-0.963,0.024,0.256,-0.966,0.032,0.126,-0.483,-0.866,0.197,-0.756,-0.624,-0.606,0.789,0.099,-0.968,-0.252,0 +,0,-0.955,-0.296,1,0,0,-0.878,0.478,0,0,0,-1,0.746,0.033,0.665,0,1,0,-0.902,-0.432,0,0.825,0.524,-0.213,0.953,-0.152,0.262,0,0.624,0.781,0,1,0,-0.954,-0.273,0.122,0,-1,0,0,-0.757,0.653,0.954,-0.273,0.122,0.902,-0.432,0,0,-0.502,0.865 +,-0.507,0.849,-0.148,-0.897,0.281,-0.342,0.897,0.281,-0.342,0.379,-0.851,-0.364,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.538,-0.842,-0.037,0.543,0.838,-0.051,0.968,-0.252,0,-0.395,-0.215,-0.893,0.598,-0.802,0,1,0,0,0,1,0,-1,0,0 +,0,-1,0,0.725,0,0.688,0.965,-0.252,0.069,0,0,1,-0.249,-0.968,0.04,0,0,1,-0.774,-0.467,0.427,0.459,-0.765,0.451,-0.239,-0.875,0.42,-0.269,-0.963,-0.002,-0.293,-0.956,-0.003,0.292,0.956,0,0.292,0.956,0,0.292,0.956,0,0,0,1,0,0,1,0,0,1 +,0,0,1,0,0,1,0.126,0.483,-0.866,-0.234,0.444,-0.865,-0.473,0.123,-0.872,-0.473,0.123,-0.872,-0.42,-0.273,-0.865,-0.126,-0.483,-0.866,-0.126,-0.483,-0.866,0.234,-0.444,-0.865,0.473,-0.123,-0.872,0.473,-0.123,-0.872,0.42,0.273,-0.865,0.126,0.483,-0.866,0.126,0.483,-0.866,-0.473,0.123,-0.872,-0.126,-0.483,-0.866 +,-0.256,-0.966,0.032,-0.267,-0.963,0.024,-0.197,-0.756,-0.624,-0.126,-0.483,-0.866,0,0.999,0.047,0.931,0.366,-0.011,0.965,-0.252,0.069,0,0,1,-0.249,-0.968,0.04,0,0,1,-0.774,-0.467,0.427,0.459,-0.765,0.451,-0.239,-0.875,0.42,-0.27,-0.963,-0.002,-0.293,-0.956,-0.004,0.292,0.956,0,-0.468,0.884,0 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0.126,0.483,-0.866,-0.234,0.444,-0.865,-0.473,0.123,-0.872,-0.473,0.123,-0.872,-0.42,-0.273,-0.865,-0.126,-0.483,-0.866,-0.126,-0.483,-0.866,0.234,-0.444,-0.865,0.473,-0.123,-0.872,0.473,-0.123,-0.872,0.42,0.273,-0.865,0.126,0.483,-0.866 +,0.126,0.483,-0.866,-0.473,0.123,-0.872,-0.126,-0.483,-0.866,-0.256,-0.966,0.032,-0.267,-0.963,0.024,-0.197,-0.756,-0.624,-0.126,-0.483,-0.866,-0.566,0.824,0.038] +,"uvs":[0.705,0.727,0.691,0.748,0.691,0.74,0.768,0.221,0.815,0.283,0.765,0.286,0.41,0.733,0.524,0.655,0.525,0.734,0.433,0.48,0.276,0.427,0.433,0.428,0.208,0.918,0.132,0.925,0.141,0.898,0.274,0.936,0.19,0.942,0.202,0.916,0.674,0.64,0.705,0.727,0.464,0.48,0.644,0.426,0.645,0.475,0.696,0.86,0.557,0.809 +,0.701,0.823,0.601,0.915,0.778,0.958,0.604,0.967,0.347,0.572,0.441,0.575,0.291,0.637,0.311,0.715,0.289,0.731,0.525,0.734,0.427,0.83,0.41,0.733,0.645,0.475,0.495,0.504,0.464,0.48,0.21,0.862,0.141,0.898,0.15,0.863,0.202,0.916,0.273,0.888,0.274,0.936,0.292,0.778,0.27,0.856,0.251,0.783,0.234,0.48 +,0.231,0.427,0.102,0.426,0.044,0.459,0.044,0.426,0.114,0.844,0.095,0.808,0.122,0.801,0.604,0.967,0.476,0.929,0.601,0.915,0.472,0.907,0.601,0.915,0.476,0.929,0.525,0.734,0.557,0.809,0.523,0.833,0.705,0.761,0.557,0.809,0.561,0.763,0.776,0.183,0.822,0.234,0.768,0.221,0.49,0.557,0.644,0.511,0.637,0.575 +,0.464,0.48,0.49,0.557,0.459,0.576,0.764,0.323,0.815,0.283,0.817,0.316,0.632,0.611,0.49,0.557,0.637,0.575,0.114,0.853,0.107,0.847,0.114,0.844,0.082,0.875,0.064,0.837,0.095,0.808,0.079,0.844,0.772,0.42,0.84,0.452,0.781,0.46,0.859,0.52,0.793,0.525,0.804,0.088,0.884,0.059,0.865,0.102,0.829,0.201 +,0.831,0.414,0.817,0.316,0.889,0.29,0.892,0.317,0.829,0.201,0.891,0.241,0.822,0.234,0.815,0.283,0.831,0.414,0.912,0.419,0.84,0.452,0.938,0.463,0.859,0.52,0.865,0.102,0.946,0.124,0.932,0.15,0.907,0.39,0.9,0.216,0.047,0.554,0.058,0.532,0.114,0.554,0.59,0.306,0.589,0.328,0.58,0.306,0.7,0.302 +,0.599,0.328,0.241,0.051,0.19,0.027,0.249,0.028,0.326,0.053,0.321,0.027,0.589,0.328,0.599,0.337,0.54,0.33,0.57,0.746,0.525,0.734,0.792,0.824,0.792,0.855,0.785,0.827,0.944,0.843,0.877,0.829,0.878,0.797,0.561,0.763,0.705,0.761,0.496,0.05,0.53,0.179,0.479,0.05,0.686,0.051,0.544,0.179,0.116,0.308 +,0.111,0.178,0.181,0.169,0.309,0.305,0.35,0.231,0.693,0.381,0.727,0.44,0.693,0.44,0.389,0.655,0.312,0.654,0.41,0.733,0.411,0.639,0.389,0.716,0.692,0.547,0.728,0.598,0.693,0.598,0.692,0.488,0.727,0.547,0.692,0.547,0.692,0.488,0.727,0.44,0.727,0.488,0.049,0.757,0.124,0.698,0.124,0.757,0.758,0.685 +,0.863,0.805,0.792,0.824,0.796,0.854,0.795,0.848,0.863,0.839,0.172,0.621,0.177,0.608,0.178,0.621,0.177,0.608,0.182,0.603,0.182,0.607,0.162,0.62,0.158,0.606,0.163,0.607,0.182,0.607,0.188,0.62,0.183,0.621,0.177,0.538,0.176,0.536,0.177,0.535,0.173,0.533,0.174,0.535,0.173,0.535,0.194,0.62,0.187,0.606 +,0.192,0.604,0.162,0.602,0.167,0.607,0.163,0.607,0.158,0.606,0.172,0.54,0.174,0.538,0.175,0.54,0.17,0.535,0.172,0.536,0.167,0.607,0.167,0.621,0.167,0.603,0.172,0.607,0.156,0.62,0.152,0.604,0.184,0.67,0.187,0.668,0.187,0.67,0.161,0.67,0.157,0.668,0.161,0.667,0.168,0.67,0.165,0.667,0.169,0.667 +,0.18,0.667,0.18,0.67,0.172,0.667,0.176,0.67,0.172,0.67,0.165,0.67,0.183,0.757,0.178,0.67,0.184,0.67,0.194,0.671,0.188,0.757,0.189,0.671,0.156,0.757,0.15,0.671,0.156,0.671,0.167,0.67,0.162,0.757,0.161,0.67,0.177,0.757,0.173,0.67,0.172,0.607,0.172,0.537,0.17,0.538,0.173,0.538,0.175,0.533 +,0.176,0.537,0.825,0.348,0.9,0.351,0.828,0.366,0.832,0.382,0.906,0.382,0.834,0.396,0.904,0.368,0.91,0.399,0.838,0.413,0.913,0.416,0.841,0.43,0.822,0.334,0.897,0.334,0.916,0.434,0.845,0.448,0.848,0.464,0.92,0.45,0.923,0.164,0.917,0.161,0.917,0.156,0.178,0.604,0.187,0.606,0.152,0.604,0.157,0.602 +,0.165,0.642,0.169,0.648,0.16,0.647,0.167,0.666,0.172,0.666,0.156,0.666,0.15,0.62,0.162,0.666,0.183,0.666,0.178,0.666,0.194,0.667,0.189,0.666,0.187,0.602,0.192,0.604,0.167,0.757,0.155,0.84,0.178,0.791,0.159,0.427,0.101,0.469,0.101,0.854,0.082,0.875,0.27,0.856,0.156,0.847,0.155,0.84,0.306,0.941 +,0.277,0.969,0.281,0.937,0.159,0.479,0.402,0.884,0.306,0.861,0.416,0.877,0.3,0.873,0.281,0.937,0.279,0.864,0.455,0.973,0.476,0.929,0.478,0.973,0.329,0.827,0.455,0.931,0.172,0.621,0.177,0.608,0.178,0.621,0.177,0.608,0.182,0.603,0.182,0.607,0.162,0.62,0.158,0.606,0.163,0.607,0.182,0.607,0.188,0.62 +,0.183,0.621,0.177,0.538,0.176,0.536,0.177,0.535,0.173,0.533,0.174,0.535,0.173,0.535,0.194,0.62,0.187,0.606,0.192,0.604,0.162,0.602,0.167,0.607,0.163,0.607,0.158,0.606,0.172,0.54,0.174,0.538,0.175,0.54,0.17,0.535,0.172,0.536,0.167,0.607,0.167,0.621,0.167,0.603,0.172,0.607,0.156,0.62,0.152,0.604 +,0.184,0.67,0.187,0.668,0.187,0.67,0.161,0.67,0.157,0.668,0.161,0.667,0.168,0.67,0.165,0.667,0.169,0.667,0.18,0.667,0.18,0.67,0.172,0.667,0.176,0.67,0.172,0.67,0.165,0.67,0.183,0.757,0.178,0.67,0.184,0.67,0.194,0.671,0.188,0.757,0.189,0.671,0.156,0.757,0.15,0.671,0.156,0.671,0.167,0.67 +,0.162,0.757,0.161,0.67,0.177,0.757,0.173,0.67,0.172,0.607,0.172,0.537,0.17,0.538,0.173,0.538,0.175,0.533,0.176,0.537,0.825,0.348,0.9,0.351,0.828,0.366,0.832,0.382,0.906,0.382,0.834,0.396,0.904,0.368,0.91,0.399,0.838,0.413,0.913,0.416,0.841,0.43,0.822,0.334,0.897,0.334,0.845,0.448,0.916,0.434 +,0.848,0.464,0.92,0.45,0.923,0.164,0.917,0.161,0.917,0.156,0.178,0.604,0.187,0.606,0.152,0.604,0.157,0.602,0.165,0.642,0.169,0.648,0.16,0.647,0.167,0.666,0.172,0.666,0.156,0.666,0.15,0.62,0.162,0.666,0.183,0.666,0.178,0.666,0.194,0.667,0.189,0.666,0.187,0.602,0.192,0.604,0.167,0.757,0.975,0.683 +,0.879,0.595,0.863,0.839,0.798,0.853,0.758,0.685,0.751,0.69,0.178,0.05,0.726,0.111,0.295,0.329,0.107,0.331,0.043,0.308,0.671,0.027,0.488,0.029,0.47,0.029,0.39,0.05,0.378,0.029,0.324,0.328,0.34,0.304,0.528,0.307,0.459,0.179,0.351,0.053,0.379,0.244,0.599,0.328,0.671,0.331,0.348,0.027,0.54,0.33 +,0.459,0.576,0.463,0.428,0.702,0.637,0.691,0.74,0.705,0.761,0.705,0.727,0.815,0.283,0.768,0.221,0.765,0.286,0.524,0.655,0.41,0.733,0.525,0.734,0.433,0.48,0.276,0.48,0.208,0.918,0.204,0.946,0.274,0.936,0.202,0.916,0.674,0.64,0.705,0.727,0.464,0.48,0.645,0.475,0.696,0.86,0.557,0.809,0.523,0.833 +,0.601,0.915,0.347,0.572,0.441,0.575,0.311,0.715,0.291,0.637,0.289,0.731,0.427,0.83,0.525,0.734,0.41,0.733,0.495,0.504,0.645,0.475,0.464,0.48,0.21,0.862,0.141,0.898,0.208,0.918,0.202,0.916,0.273,0.888,0.208,0.861,0.292,0.778,0.27,0.856,0.306,0.861,0.234,0.48,0.044,0.459,0.101,0.469,0.095,0.808 +,0.114,0.844,0.122,0.801,0.476,0.929,0.601,0.915,0.472,0.907,0.476,0.929,0.601,0.915,0.557,0.809,0.525,0.734,0.523,0.833,0.557,0.809,0.705,0.761,0.561,0.763,0.822,0.234,0.776,0.183,0.768,0.221,0.644,0.511,0.49,0.557,0.637,0.575,0.49,0.557,0.464,0.48,0.459,0.576,0.764,0.323,0.815,0.283,0.765,0.286 +,0.632,0.611,0.49,0.557,0.459,0.576,0.114,0.853,0.114,0.844,0.107,0.847,0.082,0.875,0.141,0.898,0.095,0.808,0.076,0.812,0.84,0.452,0.772,0.42,0.781,0.46,0.793,0.525,0.804,0.088,0.884,0.059,0.817,0.049,0.865,0.102,0.831,0.414,0.817,0.316,0.889,0.29,0.815,0.283,0.891,0.241,0.829,0.201,0.822,0.234 +,0.912,0.419,0.831,0.414,0.84,0.452,0.938,0.463,0.859,0.52,0.865,0.102,0.946,0.124,0.884,0.059,0.907,0.39,0.932,0.15,0.047,0.554,0.047,0.621,0.114,0.554,0.589,0.328,0.59,0.306,0.58,0.306,0.599,0.328,0.7,0.302,0.241,0.051,0.19,0.027,0.178,0.05,0.326,0.053,0.249,0.028,0.589,0.328,0.599,0.337 +,0.671,0.331,0.57,0.746,0.525,0.734,0.792,0.855,0.792,0.824,0.785,0.827,0.877,0.829,0.944,0.843,0.878,0.797,0.561,0.763,0.691,0.748,0.53,0.179,0.496,0.05,0.479,0.05,0.544,0.179,0.686,0.051,0.116,0.308,0.111,0.178,0.043,0.308,0.309,0.305,0.181,0.169,0.727,0.44,0.693,0.381,0.693,0.44,0.389,0.655 +,0.411,0.639,0.41,0.733,0.389,0.716,0.728,0.598,0.692,0.547,0.693,0.598,0.727,0.547,0.692,0.488,0.692,0.547,0.692,0.488,0.727,0.44,0.693,0.44,0.124,0.698,0.049,0.757,0.124,0.757,0.758,0.685,0.863,0.805,0.86,0.59,0.796,0.854,0.863,0.839,0.795,0.848,0.172,0.621,0.177,0.608,0.172,0.607,0.182,0.603 +,0.177,0.608,0.182,0.607,0.162,0.62,0.158,0.606,0.156,0.62,0.188,0.62,0.182,0.607,0.183,0.621,0.176,0.536,0.177,0.538,0.177,0.535,0.173,0.533,0.174,0.535,0.175,0.533,0.194,0.62,0.187,0.606,0.167,0.607,0.162,0.602,0.163,0.607,0.178,0.621,0.158,0.606,0.157,0.602,0.174,0.538,0.172,0.54,0.175,0.54 +,0.17,0.535,0.173,0.535,0.167,0.607,0.167,0.621,0.172,0.607,0.167,0.603,0.152,0.604,0.15,0.62,0.187,0.668,0.184,0.67,0.187,0.67,0.161,0.67,0.157,0.668,0.157,0.67,0.168,0.67,0.165,0.667,0.165,0.67,0.18,0.667,0.18,0.67,0.176,0.67,0.172,0.667,0.172,0.67,0.169,0.667,0.176,0.667,0.178,0.67 +,0.183,0.757,0.184,0.67,0.194,0.671,0.188,0.757,0.193,0.757,0.15,0.671,0.156,0.757,0.156,0.671,0.167,0.67,0.162,0.757,0.167,0.757,0.189,0.671,0.173,0.67,0.177,0.757,0.161,0.67,0.172,0.537,0.17,0.538,0.173,0.538,0.9,0.351,0.825,0.348,0.828,0.366,0.906,0.382,0.832,0.382,0.834,0.396,0.904,0.368 +,0.91,0.399,0.838,0.413,0.913,0.416,0.841,0.43,0.897,0.334,0.822,0.334,0.916,0.434,0.845,0.448,0.848,0.464,0.923,0.164,0.926,0.156,0.917,0.156,0.178,0.604,0.172,0.604,0.187,0.606,0.152,0.604,0.152,0.6,0.169,0.648,0.165,0.642,0.16,0.647,0.167,0.666,0.156,0.666,0.15,0.62,0.15,0.667,0.162,0.666 +,0.183,0.666,0.178,0.666,0.194,0.667,0.189,0.666,0.172,0.666,0.192,0.604,0.187,0.602,0.173,0.757,0.155,0.84,0.178,0.791,0.159,0.479,0.082,0.875,0.15,0.863,0.156,0.847,0.27,0.856,0.155,0.84,0.306,0.941,0.3,0.975,0.251,0.783,0.402,0.884,0.306,0.861,0.3,0.873,0.281,0.937,0.279,0.864,0.416,0.877 +,0.476,0.929,0.455,0.931,0.329,0.827,0.455,0.931,0.172,0.621,0.177,0.608,0.172,0.607,0.182,0.603,0.177,0.608,0.182,0.607,0.162,0.62,0.158,0.606,0.156,0.62,0.188,0.62,0.182,0.607,0.183,0.621,0.176,0.536,0.177,0.538,0.177,0.535,0.173,0.533,0.174,0.535,0.175,0.533,0.194,0.62,0.187,0.606,0.167,0.607 +,0.162,0.602,0.163,0.607,0.178,0.621,0.158,0.606,0.157,0.602,0.174,0.538,0.172,0.54,0.175,0.54,0.17,0.535,0.173,0.535,0.167,0.607,0.167,0.621,0.172,0.607,0.167,0.603,0.152,0.604,0.15,0.62,0.187,0.668,0.184,0.67,0.187,0.67,0.161,0.67,0.157,0.668,0.157,0.67,0.168,0.67,0.165,0.667,0.165,0.67 +,0.18,0.667,0.18,0.67,0.176,0.67,0.172,0.667,0.172,0.67,0.169,0.667,0.176,0.667,0.178,0.67,0.183,0.757,0.184,0.67,0.194,0.671,0.188,0.757,0.193,0.757,0.15,0.671,0.156,0.757,0.156,0.671,0.167,0.67,0.162,0.757,0.167,0.757,0.189,0.671,0.173,0.67,0.177,0.757,0.161,0.67,0.172,0.537,0.17,0.538 +,0.173,0.538,0.9,0.351,0.825,0.348,0.828,0.366,0.906,0.382,0.832,0.382,0.834,0.396,0.904,0.368,0.91,0.399,0.838,0.413,0.913,0.416,0.841,0.43,0.897,0.334,0.822,0.334,0.845,0.448,0.92,0.45,0.848,0.464,0.923,0.164,0.926,0.156,0.917,0.156,0.178,0.604,0.172,0.604,0.187,0.606,0.152,0.604,0.152,0.6 +,0.169,0.648,0.165,0.642,0.16,0.647,0.167,0.666,0.156,0.666,0.15,0.62,0.15,0.667,0.162,0.666,0.183,0.666,0.178,0.666,0.194,0.667,0.189,0.666,0.172,0.666,0.192,0.604,0.187,0.602,0.173,0.757,0.975,0.683,0.879,0.595,0.792,0.824,0.863,0.839,0.758,0.685,0.751,0.69,0.35,0.231,0.726,0.111,0.295,0.329 +,0.107,0.331,0.031,0.329,0.671,0.027,0.488,0.029,0.47,0.029,0.39,0.05,0.378,0.029,0.324,0.328,0.528,0.307,0.459,0.179,0.351,0.053,0.379,0.244,0.34,0.304,0.599,0.328,0.697,0.329,0.348,0.027,0.54,0.33,0.459,0.576,0.702,0.637,0.822,0.234,0.411,0.639,0.276,0.48,0.272,0.966,0.523,0.833,0.775,0.905 +,0.523,0.833,0.644,0.511,0.208,0.918,0.208,0.861,0.306,0.861,0.079,0.844,0.478,0.973,0.561,0.763,0.701,0.823,0.495,0.504,0.495,0.504,0.765,0.286,0.459,0.576,0.072,0.902,0.817,0.049,0.884,0.059,0.884,0.059,0.946,0.124,0.114,0.621,0.047,0.621,0.102,0.644,0.059,0.644,0.103,0.532,0.697,0.329,0.798,0.853 +,0.937,0.882,0.727,0.381,0.727,0.547,0.727,0.488,0.693,0.44,0.049,0.698,0.86,0.59,0.172,0.604,0.15,0.62,0.152,0.604,0.183,0.667,0.157,0.67,0.157,0.668,0.176,0.667,0.193,0.757,0.151,0.757,0.15,0.671,0.173,0.757,0.894,0.32,0.848,0.464,0.92,0.153,0.926,0.156,0.923,0.153,0.926,0.161,0.919,0.163 +,0.172,0.604,0.152,0.6,0.164,0.653,0.161,0.651,0.161,0.644,0.165,0.642,0.165,0.642,0.168,0.644,0.167,0.652,0.164,0.653,0.164,0.653,0.15,0.667,0.15,0.62,0.192,0.601,0.192,0.604,0.097,0.849,0.306,0.941,0.455,0.931,0.172,0.604,0.15,0.62,0.152,0.604,0.183,0.667,0.157,0.67,0.157,0.668,0.176,0.667 +,0.193,0.757,0.151,0.757,0.15,0.671,0.173,0.757,0.894,0.32,0.848,0.464,0.92,0.153,0.926,0.156,0.923,0.153,0.926,0.161,0.919,0.163,0.172,0.604,0.152,0.6,0.164,0.653,0.161,0.651,0.161,0.644,0.165,0.642,0.165,0.642,0.168,0.644,0.167,0.652,0.164,0.653,0.164,0.653,0.15,0.667,0.15,0.62,0.192,0.601 +,0.192,0.604,0.031,0.329,0.697,0.329,0.822,0.234,0.411,0.639,0.701,0.823,0.775,0.905,0.312,0.654,0.523,0.833,0.644,0.511,0.274,0.936,0.079,0.844,0.561,0.763,0.701,0.823,0.829,0.201,0.495,0.504,0.495,0.504,0.817,0.316,0.637,0.575,0.079,0.844,0.859,0.52,0.892,0.317,0.9,0.216,0.946,0.124,0.102,0.644 +,0.114,0.621,0.103,0.532,0.058,0.532,0.059,0.644,0.697,0.329,0.321,0.027,0.54,0.33,0.798,0.853,0.937,0.882,0.727,0.381,0.727,0.547,0.727,0.488,0.727,0.488,0.049,0.698,0.163,0.607,0.176,0.537,0.192,0.604,0.172,0.536,0.183,0.667,0.161,0.667,0.157,0.668,0.15,0.671,0.151,0.757,0.894,0.32,0.848,0.464 +,0.92,0.45,0.923,0.153,0.92,0.153,0.917,0.161,0.919,0.163,0.926,0.161,0.16,0.647,0.161,0.651,0.164,0.653,0.164,0.653,0.167,0.652,0.169,0.648,0.169,0.648,0.168,0.644,0.165,0.642,0.165,0.642,0.161,0.644,0.16,0.647,0.16,0.647,0.164,0.653,0.169,0.648,0.15,0.62,0.194,0.667,0.192,0.604,0.192,0.601 +,0.281,0.937,0.306,0.941,0.163,0.607,0.176,0.537,0.192,0.604,0.172,0.536,0.183,0.667,0.161,0.667,0.157,0.668,0.15,0.671,0.151,0.757,0.894,0.32,0.916,0.434,0.923,0.153,0.92,0.153,0.917,0.161,0.919,0.163,0.926,0.161,0.16,0.647,0.161,0.651,0.164,0.653,0.164,0.653,0.167,0.652,0.169,0.648,0.169,0.648 +,0.168,0.644,0.165,0.642,0.165,0.642,0.161,0.644,0.16,0.647,0.16,0.647,0.164,0.653,0.169,0.648,0.15,0.62,0.194,0.667,0.192,0.604,0.192,0.601,0.798,0.853] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,8,18,19,20,21,22,23,24,25,26,27,28,29,9,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 +,48,10,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,13,87,14,88,89,90,91,92,93,93 +,94,95,96,97,98,69,98,99,78,100,91,101,102,103,104,105,106,107,105,102,108,109,110,110,111,112,113,114,115,101,116,108,104,115,117,118,119,120,121,122,123,124,125,121,126,127,128,129,128,130 +,131,132,133,0,134,135,136,137,138,139,140,141,142,135,134,142,1,143,144,145,146,147,148,144,149,150,151,152,151,153,154,155,156,31,157,158,159,157,160,33,161,159,162,163,164,165,166,167,168,169 +,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,181,191,182,204,201,203,205,206,207,208,197,209,186,210,211,212 +,213,202,214,215,187,216,217,218,219,220,221,222,223,224,225,216,226,227,228,229,219,223,230,222,227,229,228,225,226,231,232,233,234,235,236,237,238,239,240,241,242,236,231,233,243,244,232,241,239,242 +,211,245,180,208,246,247,247,248,205,249,193,196,192,206,250,251,252,253,254,255,256,253,257,254,256,258,259,259,260,261,262,263,251,261,264,265,266,264,267,268,269,270,213,271,183,184,272,185,273,274 +,204,275,276,277,278,180,279,280,281,214,282,211,278,182,283,284,285,190,198,191,286,283,282,214,186,279,182,284,287,288,272,244,289,240,290,56,291,292,293,51,294,85,84,295,42,41,296,297,298,299 +,300,301,47,291,48,50,302,292,298,84,86,303,304,305,306,307,308,62,305,60,309,310,311,312,36,35,313,305,62,306,296,304,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331 +,332,333,334,335,336,337,315,325,316,338,335,337,339,340,341,342,331,343,320,344,345,346,347,336,348,349,321,350,351,352,353,354,355,356,357,358,359,350,360,361,362,363,353,357,364,356,361,363,362,359 +,360,365,366,367,368,369,370,371,372,373,374,375,376,370,365,367,377,378,366,375,373,376,345,379,314,342,380,381,381,382,339,383,327,330,326,340,384,385,386,387,388,389,390,387,391,388,390,392,393,393 +,394,395,396,397,385,398,394,399,400,399,401,402,403,404,347,405,317,318,406,319,407,408,338,409,410,411,412,314,413,414,415,348,416,345,412,316,417,418,419,324,332,325,420,417,416,348,320,413,316,418 +,421,422,406,378,423,374,424,141,425,176,426,427,428,138,429,153,126,129,151,430,126,431,121,148,148,123,145,432,149,152,433,434,149,435,144,436,436,146,437,437,438,439,440,152,441,145,442,443,153,444 +,445,441,153,445,146,443,438,446,447,131,129,448,444,123,449,442,30,20,450,20,11,451,452,19,18,453,454,455,456,457,458,459,460,461,462,10,463,464,13,465,16,466,467,468,461,469,21,470,471,472 +,473,474,27,475,28,462,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,10,496,463,51,497,498,499,500,501,502,57,503,504,505,506,507,508,509,510,511,512,513,514,515 +,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,13,532,88,533,534,535,536,537,538,535,537,539,540,541,514,542,539,543,522,536,544,545,546,547,548,549,545,549,546,550,551,552,553,552 +,554,555,556,557,558,544,551,548,559,555,560,561,562,563,564,565,566,567,564,568,569,570,571,572,568,573,574,575,576,455,577,578,579,580,581,582,583,584,576,577,585,584,454,586,587,588,589,590,587,591 +,592,593,594,595,591,596,597,598,479,599,600,599,601,600,602,480,601,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635 +,636,637,638,639,640,630,641,642,643,632,622,644,645,642,646,647,648,649,650,651,636,652,627,653,654,655,641,629,656,657,658,659,660,661,662,663,664,665,666,659,667,668,669,670,671,665,661,666,664,670 +,672,669,667,673,674,675,676,677,678,679,680,681,682,683,684,685,686,675,678,687,688,674,682,684,689,653,623,652,690,650,691,692,691,648,638,633,635,634,647,649,693,694,695,696,697,698,699,695,697,700 +,698,701,702,701,703,704,705,694,706,703,707,708,706,707,709,710,711,654,712,713,714,624,626,715,646,716,717,718,719,720,621,653,721,722,723,653,724,720,725,644,726,727,630,728,728,632,725,724,629,721 +,729,644,621,730,731,714,687,685,732,501,733,734,292,498,735,530,294,528,736,488,737,738,739,740,741,300,742,734,494,743,50,735,496,528,740,529,744,745,746,747,746,748,505,504,749,309,750,751,752,481 +,483,753,749,744,746,739,748,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,763,774,775,776,765,755,777,778,775,779,780,781,782,783,784,769,785,760,786,787,788,774,762 +,789,790,791,792,793,794,795,796,797,798,799,792,800,801,802,803,804,798,794,799,797,803,805,802,800,806,807,808,809,810,811,812,813,814,815,816,817,818,819,808,811,820,821,807,815,817,822,786,756,785 +,823,783,824,825,824,781,771,766,768,767,780,782,826,827,828,829,830,831,832,828,830,833,831,834,835,834,836,837,838,827,839,835,836,840,839,841,842,843,844,787,845,846,847,757,759,848,779,849,850,851 +,852,853,754,786,854,855,856,786,857,853,858,777,859,860,763,861,861,765,858,857,762,854,862,777,754,863,864,847,820,818,865,583,866,867,868,869,616,580,870,871,872,568,595,595,570,592,564,873,589,565 +,589,586,874,591,875,875,593,876,587,877,878,588,878,879,880,879,881,882,594,874,883,586,884,885,872,886,887,872,594,884,588,880,888,575,889,890,571,885,891,565,883,470,477,892,470,11,462,893,468,469 +,0,143,1,3,894,4,6,895,7,9,896,10,12,465,13,15,897,16,8,7,18,20,451,21,23,898,24,26,899,27,29,896,9,31,158,32,34,900,35,37,901,38,40,902,41,43,903,44,46,904 +,47,10,896,49,51,293,52,54,905,55,57,906,58,63,907,64,66,908,67,69,99,70,72,909,73,75,910,76,78,911,79,81,912,82,13,913,87,88,534,89,91,100,92,93,92,94,96,914,915,69 +,96,98,78,80,100,101,107,102,104,117,105,107,106,105,108,116,109,110,109,111,113,916,917,101,103,116,104,113,115,120,918,919,920,921,919,919,118,120,119,922,120,918,920,919,121,125,122,124,923,125 +,126,430,127,129,126,128,131,447,132,0,2,134,136,924,137,139,925,140,142,134,1,144,148,145,147,431,148,149,434,150,152,149,151,154,926,155,31,160,157,159,161,157,33,32,161,162,927,163,165,928 +,166,168,929,169,171,930,172,174,931,175,180,245,181,183,271,184,186,214,187,189,199,190,192,250,193,195,249,196,198,190,199,201,212,202,181,189,191,204,274,201,205,248,206,208,195,197,186,188,210,212 +,932,213,214,933,934,216,935,217,219,936,937,222,230,223,225,935,216,227,938,228,219,221,223,222,224,227,228,938,225,231,243,232,234,939,235,237,940,941,240,289,241,236,235,231,243,942,244,241,237,239 +,211,210,245,208,209,246,247,246,248,249,194,193,192,207,206,251,263,252,254,257,255,253,252,257,256,255,258,259,258,260,262,943,263,261,260,264,944,265,264,270,945,946,947,946,945,948,268,946,949,269 +,268,270,946,268,213,950,271,184,287,272,273,951,274,952,953,277,277,954,955,956,957,276,276,958,959,960,277,276,278,211,180,280,961,962,282,186,211,182,191,283,285,286,190,191,190,286,282,280,214,279 +,180,182,287,963,964,244,942,289,290,54,56,292,302,293,294,965,85,296,308,297,299,742,300,47,290,291,50,49,302,298,297,84,303,306,304,306,966,307,309,967,310,313,303,305,306,308,296,314,379,315 +,317,405,318,320,348,321,323,333,324,326,384,327,329,383,330,332,324,333,335,346,336,315,323,325,338,408,335,339,382,340,342,329,331,320,322,344,346,968,347,348,969,970,350,971,351,353,972,973,356,364 +,357,359,971,350,361,974,362,353,355,357,356,358,361,362,974,359,365,377,366,368,975,369,371,976,977,374,423,375,370,369,365,377,978,378,375,371,373,345,344,379,342,343,380,381,380,382,383,328,327,326 +,341,340,385,397,386,388,391,389,387,386,391,390,389,392,393,392,394,396,979,397,398,395,394,980,398,399,404,981,982,983,982,981,984,402,982,985,403,402,404,982,402,347,986,405,318,421,406,407,987,408 +,988,989,411,411,990,991,992,993,410,410,994,995,996,411,410,412,345,314,414,997,998,416,320,345,316,325,417,419,420,324,325,324,420,416,414,348,413,314,316,421,999,1000,378,978,423,424,139,141,176,175 +,426,428,136,138,153,151,126,151,150,430,431,124,121,148,121,123,432,433,149,433,1001,434,435,147,144,436,144,146,437,146,438,440,432,152,145,123,442,153,129,444,441,152,153,146,145,443,446,1002,447,129 +,130,448,123,122,449,30,9,20,20,9,11,453,585,454,456,1003,457,459,1004,460,462,11,10,464,532,13,16,897,466,468,459,461,21,451,470,472,1005,473,27,1006,475,462,463,476,478,1007,479,481,1008,482 +,484,1009,485,487,737,488,490,1010,491,493,743,494,10,50,496,51,53,497,499,1011,500,502,906,57,507,1012,508,510,1013,511,513,1014,514,516,1015,517,519,1016,520,522,1017,523,525,1018,526,531,913,13,88,1019 +,533,535,543,536,538,1020,535,539,542,540,514,1014,542,543,1017,522,544,1021,545,547,1022,548,545,547,549,550,558,551,553,550,552,555,559,1023,558,1021,544,548,1022,559,1024,1025,561,562,1026,1027,1027,560,562,561 +,1028,1024,1025,562,561,563,566,564,566,1029,567,568,572,569,571,1030,572,573,1031,574,576,453,455,578,1032,579,581,1033,582,585,576,584,586,589,587,589,873,590,591,595,592,594,872,595,596,1034,597,479,1007,599 +,599,602,601,602,478,480,603,1035,604,606,1036,607,609,1037,610,612,1038,613,615,868,616,621,644,622,624,712,625,627,1039,628,630,640,631,633,1040,634,636,651,637,639,1041,640,641,655,642,632,631,622,645,643 +,642,647,692,648,650,1042,651,652,1039,627,654,713,655,629,628,656,658,1043,659,661,1044,1045,664,672,665,659,1043,667,669,673,670,665,1044,661,664,671,670,669,668,667,674,688,675,677,686,678,1046,1047,681,683 +,689,684,686,676,675,687,732,688,682,681,684,653,621,623,690,1042,650,692,690,691,638,637,633,634,1040,647,693,704,694,696,699,697,699,693,695,700,696,698,702,700,701,704,1048,705,706,702,703,1049,1050,706 +,1051,1052,710,711,1053,709,1054,709,1053,1055,710,709,1052,711,710,654,625,712,714,731,624,715,645,646,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,720,729,621,721,629,1071,653,627,724,725,632 +,644,1072,639,630,728,630,632,724,627,629,729,726,644,1073,1074,731,687,683,685,501,500,733,292,51,498,530,965,294,738,748,739,741,1075,300,734,733,494,50,292,735,528,738,740,744,749,745,747,1076,746,309 +,311,750,753,505,749,746,745,739,754,777,755,757,845,758,760,1077,761,763,773,764,766,1078,767,769,784,770,772,1079,773,774,788,775,765,764,755,778,776,775,780,825,781,783,1080,784,785,1077,760,787,846,788 +,762,761,789,791,1081,792,794,1082,1083,797,805,798,792,1081,800,802,806,803,798,1082,794,797,804,803,802,801,800,807,821,808,810,819,811,1084,1085,814,816,822,817,819,809,808,820,865,821,815,814,817,786,754 +,756,823,1080,783,825,823,824,771,770,766,767,1078,780,826,837,827,829,832,830,832,826,828,833,829,831,835,833,834,837,1086,838,839,1087,835,840,1087,839,1088,1089,843,844,1090,842,1091,842,1090,1092,843,842,1089 +,844,843,787,758,845,847,864,757,848,778,779,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,853,862,754,854,762,1108,786,760,857,858,765,777,1109,772,763,861,763,765,857,760,762,862,859,777 +,1110,1111,864,820,816,818,583,582,866,868,1112,869,580,579,870,872,571,568,595,568,570,564,567,873,565,564,589,874,594,591,875,591,593,587,590,877,588,587,878,880,588,879,882,887,594,883,565,586,885,571 +,872,887,886,872,884,586,588,888,573,575,890,1030,571,891,563,565,470,462,477,470,451,11] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":1113,"indexStart":0,"indexCount":2772}] +,"instances":[]} +,{"name":"StarSkybox","id":"StarSkybox","materialId":"game_scene.StarsSkyboxMaterial","billboardMode":0,"position":[0,0,0],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0.0402,3550.1365,-0.0188,-438.9993,3522.145,-77.4348,-445.7719,3522.145,-0.0205,-884.5539,3438.6089,-0.0203,-1309.3853,3300.8433,-0.0201,-871.1157,3438.6089,-153.6285,-1289.4934,3300.8433,-227.3997,-1713.5662,3111.0278,-0.02,-1687.5352,3111.0278,-297.5851,-2090.7239,2872.1489,-0.0198,-2058.9617,2872.1489,-363.0779,-2434.9087,2587.9771,-0.0198,-2397.9175,2587.9771,-422.8447,-2740.6904,2262.9927,-0.0194,-2699.0549,2262.9927,-475.9435,-3003.2515,1902.3237,-0.0196,-2957.6262,1902.3237,-521.5365 +,-3218.4485,1511.6549,-0.02,-3169.553,1511.6549,-558.9051,-3382.8862,1097.1486,-0.0194,-3331.4951,1097.1486,-587.4601,-3493.9734,665.3422,-0.0196,-3440.895,665.3422,-606.7501,-3496.0305,223.0448,-616.4721,-3549.9609,223.0448,-0.0192,-3496.0305,-222.7682,-616.4721,-3549.9609,-222.7682,-0.0192,-3440.897,-665.066,-606.7501,-3493.9773,-665.066,-0.0193,-3331.4966,-1096.8721,-587.4601,-3382.8877,-1096.8721,-0.0194,-3169.5564,-1511.3788,-558.9051,-3218.4485,-1511.3788,-0.0194,-2957.6279,-1902.0468,-521.5369 +,-3003.2515,-1902.0468,-0.0196,-2699.0569,-2262.7166,-475.9438,-2740.6924,-2262.7166,-0.02,-2397.9175,-2587.7,-422.8449,-2434.9087,-2587.7,-0.0198,-2058.9644,-2871.8735,-363.0781,-2090.7239,-2871.8735,-0.02,-1687.5367,-3110.7505,-297.5856,-1713.5687,-3110.7505,-0.0201,-1289.4956,-3300.5696,-227.4002,-1309.3873,-3300.5696,-0.0201,-871.1187,-3438.3323,-153.6291,-884.5565,-3438.3323,-0.0204,-439.0022,-3521.8701,-77.4352,-445.7748,-3521.8701,-0.0205,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207 +,-439.0022,-3521.8701,-77.4352,-418.8893,-3521.8701,-152.4977,-439.0022,-3521.8701,-77.4352,-831.2098,-3438.3323,-302.57,-1289.4956,-3300.5696,-227.4002,-871.1187,-3438.3323,-153.6291,-1289.4956,-3300.5696,-227.4002,-1610.2268,-3110.7505,-586.109,-1230.4208,-3300.5696,-447.8709,-1687.5367,-3110.7505,-297.5856,-1964.6382,-2871.8735,-715.1042,-2058.9644,-2871.8735,-363.0781,-2288.0645,-2587.7,-832.8219,-2397.9175,-2587.7,-422.8449,-2575.4067,-2262.7166,-937.4061,-2699.0569,-2262.7166,-475.9438,-2822.1348,-1902.0468,-1027.2074 +,-2957.6279,-1902.0468,-521.5369,-3024.3525,-1511.3788,-1100.8082,-3331.4966,-1096.8721,-587.4601,-3169.5564,-1511.3788,-558.9051,-3331.4966,-1096.8721,-587.4601,-3283.2639,-665.066,-1195.0444,-3178.874,-1096.8721,-1157.0502,-3440.897,-665.066,-606.7501,-3335.8733,-222.7682,-1214.1931,-3283.2639,665.3422,-1195.0444,-3335.8733,223.0448,-1214.1931,-3331.4951,1097.1486,-587.4601,-3440.895,665.3422,-606.7501,-3331.4951,1097.1486,-587.4601,-3024.3525,1511.6549,-1100.8082,-3178.874,1097.1486,-1157.0502,-3169.553,1511.6549,-558.9051 +,-2822.1328,1902.3237,-1027.2062,-2699.0549,2262.9927,-475.9435,-2957.6262,1902.3237,-521.5365,-2397.9175,2587.9771,-422.8447,-2575.4067,2262.9927,-937.4055,-2699.0549,2262.9927,-475.9435,-2058.9617,2872.1489,-363.0779,-2288.0645,2587.9771,-832.8215,-2397.9175,2587.9771,-422.8447,-2058.9617,2872.1489,-363.0779,-1610.2253,3111.0278,-586.1086,-1964.6365,2872.1489,-715.1038,-1289.4934,3300.8433,-227.3997,-1687.5352,3111.0278,-297.5851,-1289.4934,3300.8433,-227.3997,-831.2074,3438.6089,-302.5692,-1230.4187,3300.8433,-447.8701 +,-871.1157,3438.6089,-153.6285,-418.8867,3522.145,-152.4968,-438.9993,3522.145,-77.4348,0.0402,3550.1365,-0.0188,0.0402,3550.1365,-0.0188,-386.0452,3522.145,-222.9259,-766.0418,3438.6089,-442.3168,-1133.9574,3300.8433,-654.7329,-1483.9889,3111.0278,-856.8232,-1810.6157,2872.1489,-1045.402,-2108.6865,2587.9771,-1217.4944,-2373.5046,2262.9927,-1370.3857,-2600.8884,1902.3237,-1501.6655,-2787.2532,1511.6549,-1609.2645,-2929.6631,1097.1486,-1691.4844,-3025.8691,665.3422,-1747.0282,-3074.3545,223.0448,-1775.0211 +,-3074.3545,-222.7682,-1775.0211,-3025.8691,-665.066,-1747.0282,-2929.6631,-1096.8721,-1691.4844,-2787.2551,-1511.3788,-1609.2645,-2600.8884,-1902.0468,-1501.6664,-2373.5046,-2262.7166,-1370.3857,-2108.689,-2587.7,-1217.4944,-1810.6166,-2871.8735,-1045.402,-1483.9897,-3110.7505,-856.8242,-1133.9583,-3300.5696,-654.7339,-766.0439,-3438.3323,-442.3183,-386.0474,-3521.8701,-222.9272,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,-341.4745,-3521.8701,-286.5837,-677.6016,-3438.3323,-568.6274,-1003.0416,-3300.5696,-841.7039 +,-1312.662,-3110.7505,-1101.5057,-1601.58,-2871.8735,-1343.9373,-1865.241,-2587.7,-1565.175,-2300.6177,-1902.0468,-1930.4989,-2099.4832,-2262.7166,-1761.7289,-2591.4355,-1096.8721,-2174.5237,-2465.467,-1511.3788,-2068.825,-2676.5352,-665.066,-2245.9307,-2719.4221,-222.7682,-2281.9163,-2719.4221,223.0448,-2281.9163,-2676.5352,665.3422,-2245.9307,-2591.4355,1097.1486,-2174.5237,-2300.6177,1902.3237,-1930.4989,-2465.467,1511.6549,-2068.825,-2099.4832,2262.9927,-1761.7271,-1601.579,2872.1489,-1343.9373,-1865.24,2587.9771,-1565.175 +,-1312.66,3111.0278,-1101.505,-1003.0399,3300.8433,-841.7026,-677.5993,3438.6089,-568.6259,0.0402,3550.1365,-0.0188,-341.4723,3522.145,-286.5818,-341.4723,3522.145,-286.5818,0.0402,3550.1365,-0.0188,-286.5234,3522.145,-341.5312,-677.5993,3438.6089,-568.6259,-568.5675,3438.6089,-677.6577,-677.5993,3438.6089,-568.6259,-841.6442,3300.8433,-1003.0977,-1003.0399,3300.8433,-841.7026,-1003.0399,3300.8433,-841.7026,-1101.4465,3111.0278,-1312.7186,-1312.66,3111.0278,-1101.505,-1312.66,3111.0278,-1101.505 +,-1343.879,2872.1489,-1601.6371,-1601.579,2872.1489,-1343.9373,-1601.579,2872.1489,-1343.9373,-1565.116,2587.9771,-1865.2977,-1865.24,2587.9771,-1565.175,-1865.24,2587.9771,-1565.175,-1761.67,2262.9927,-2099.541,-2099.4832,2262.9927,-1761.7271,-2099.4832,2262.9927,-1761.7271,-1930.4401,1902.3237,-2300.6731,-2300.6177,1902.3237,-1930.4989,-2465.467,1511.6549,-2068.825,-2068.7668,1511.6549,-2465.5247,-2591.4355,1097.1486,-2174.5237,-2174.4658,1097.1486,-2591.4937,-2676.5352,665.3422,-2245.9307,-2245.8721,665.3422,-2676.5928 +,-2676.5352,665.3422,-2245.9307,-2281.8584,223.0448,-2719.478,-2281.8584,-222.7682,-2719.478,-2676.5352,-665.066,-2245.9307,-2245.8721,-665.066,-2676.5928,-2676.5352,-665.066,-2245.9307,-2174.4658,-1096.8721,-2591.4937,-2591.4355,-1096.8721,-2174.5237,-2591.4355,-1096.8721,-2174.5237,-2068.7668,-1511.3788,-2465.5247,-2465.467,-1511.3788,-2068.825,-2300.6177,-1902.0468,-1930.4989,-1930.441,-1902.0468,-2300.6758,-2099.4832,-2262.7166,-1761.7289,-1761.67,-2262.7166,-2099.541,-1865.241,-2587.7,-1565.175,-1565.116,-2587.7,-1865.2988 +,-1601.58,-2871.8735,-1343.9373,-1343.879,-2871.8735,-1601.639,-1601.58,-2871.8735,-1343.9373,-1101.4475,-3110.7505,-1312.7206,-1312.662,-3110.7505,-1101.5057,-1312.662,-3110.7505,-1101.5057,-841.6454,-3300.5696,-1003.0999,-1003.0416,-3300.5696,-841.7039,-677.6016,-3438.3323,-568.6274,-568.569,-3438.3323,-677.6599,-341.4745,-3521.8701,-286.5837,-286.525,-3521.8701,-341.533,0.038,-3549.8635,-0.0207,-341.4745,-3521.8701,-286.5837,0.038,-3549.8635,-0.0207,-222.8685,-3521.8701,-386.106,-654.6757,-3300.5696,-1134.0171 +,-442.2597,-3438.3323,-766.1023,-856.7662,-3110.7505,-1484.048,-1045.3446,-2871.8735,-1810.6748,-1217.4362,-2587.7,-2108.748,-1501.6082,-1902.0468,-2600.946,-1370.3276,-2262.7166,-2373.5632,-1609.2065,-1511.3788,-2787.313,-1746.9702,-665.066,-3025.9263,-1691.4264,-1096.8721,-2929.7227,-1774.9629,-222.7682,-3074.4102,-1774.9629,223.0448,-3074.4102,-1691.4264,1097.1486,-2929.719,-1746.9702,665.3422,-3025.9263,-1609.2065,1511.6549,-2787.3113,-1370.3276,2262.9927,-2373.5632,-1501.6072,1902.3237,-2600.946,-1217.4362,2587.9771,-2108.7454 +,-1045.3439,2872.1489,-1810.6736,-654.6746,3300.8433,-1134.0148,-856.7649,3111.0278,-1484.047,-442.2586,3438.6089,-766.1002,0.0402,3550.1365,-0.0188,-222.8672,3522.145,-386.1036,0.0402,3550.1365,-0.0188,-152.4381,3522.145,-418.9452,-302.5105,3438.6089,-831.2659,-447.8115,3300.8433,-1230.4774,-586.0502,3111.0278,-1610.2832,-715.0455,2872.1489,-1964.6954,-832.7632,2587.9771,-2288.1206,-937.3477,2262.9927,-2575.4629,-1027.1479,1902.3237,-2822.1904,-1100.7499,1511.6549,-3024.4084,-1156.9917,1097.1486,-3178.9321 +,-1194.9852,665.3422,-3283.3218,-1214.1344,223.0448,-3335.9309,-1214.1344,-222.7682,-3335.9309,-1194.9861,-665.066,-3283.3218,-1156.9917,-1096.8721,-3178.9321,-1100.7499,-1511.3788,-3024.4099,-1027.1493,-1902.0468,-2822.1904,-937.3477,-2262.7166,-2575.4648,-832.7637,-2587.7,-2288.123,-715.0459,-2871.8735,-1964.6963,-586.0506,-3110.7505,-1610.285,-447.8125,-3300.5696,-1230.4791,-302.5116,-3438.3323,-831.268,-152.4391,-3521.8701,-418.9477,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,-152.4391,-3521.8701,-418.9477 +,-77.3767,-3521.8701,-439.0606,-302.5116,-3438.3323,-831.268,-152.4391,-3521.8701,-418.9477,-447.8125,-3300.5696,-1230.4791,-153.5704,-3438.3323,-871.177,-302.5116,-3438.3323,-831.268,-447.8125,-3300.5696,-1230.4791,-297.5269,-3110.7505,-1687.5942,-227.3417,-3300.5696,-1289.5543,-586.0506,-3110.7505,-1610.285,-363.0195,-2871.8735,-2059.0193,-715.0459,-2871.8735,-1964.6963,-422.7864,-2587.7,-2397.9751,-832.7637,-2587.7,-2288.123,-475.8851,-2262.7166,-2699.1125,-937.3477,-2262.7166,-2575.4648,-521.4781,-1902.0468,-2957.6841 +,-1100.7499,-1511.3788,-3024.4099,-1027.1493,-1902.0468,-2822.1904,-1100.7499,-1511.3788,-3024.4099,-587.4017,-1096.8721,-3331.5522,-558.8467,-1511.3788,-3169.6111,-1194.9861,-665.066,-3283.3218,-1156.9917,-1096.8721,-3178.9321,-1194.9861,-665.066,-3283.3218,-616.4138,-222.7682,-3496.0881,-606.6917,-665.066,-3440.9531,-1194.9852,665.3422,-3283.3218,-616.4138,223.0448,-3496.0881,-1156.9917,1097.1486,-3178.9321,-606.6917,665.3422,-3440.9531,-1194.9852,665.3422,-3283.3218,-1100.7499,1511.6549,-3024.4084,-587.401,1097.1486,-3331.5522 +,-1156.9917,1097.1486,-3178.9321,-1027.1479,1902.3237,-2822.1904,-558.8467,1511.6549,-3169.6111,-1100.7499,1511.6549,-3024.4084,-1027.1479,1902.3237,-2822.1904,-475.8853,2262.9927,-2699.1125,-521.4781,1902.3237,-2957.6841,-937.3477,2262.9927,-2575.4629,-422.7863,2587.9771,-2397.9751,-715.0455,2872.1489,-1964.6954,-832.7632,2587.9771,-2288.1206,-586.0502,3111.0278,-1610.2832,-363.0195,2872.1489,-2059.0193,-715.0455,2872.1489,-1964.6954,-447.8115,3300.8433,-1230.4774,-297.5267,3111.0278,-1687.5931,-586.0502,3111.0278,-1610.2832 +,-302.5105,3438.6089,-831.2659,-227.3413,3300.8433,-1289.5516,-447.8115,3300.8433,-1230.4774,-152.4381,3522.145,-418.9452,-153.57,3438.6089,-871.1739,-302.5105,3438.6089,-831.2659,-152.4381,3522.145,-418.9452,0.0402,3550.1365,-0.0188,-77.3762,3522.145,-439.0578,0.0402,3550.1365,-0.0188,0.0379,3522.145,-445.8309,0.0379,3438.6089,-884.613,0.0378,3300.8433,-1309.4446,0.0378,3111.0278,-1713.6259,0.0377,2872.1489,-2090.7844,0.0378,2587.9771,-2434.9661,0.0375,2262.9927,-2740.7498 +,0.0378,1902.3237,-3003.311,0.0377,1511.6549,-3218.5095,0.0378,1097.1486,-3382.9453,0.0378,665.3422,-3494.0366,0.0376,223.0448,-3550.0208,0.0376,-222.7682,-3550.0208,0.0377,-665.066,-3494.0366,0.0377,-1096.8721,-3382.949,0.0377,-1511.3788,-3218.5095,0.0378,-1902.0468,-3003.311,0.0378,-2262.7166,-2740.7515,0.0377,-2587.7,-2434.9688,0.0378,-2871.8735,-2090.7844,0.0378,-3110.7505,-1713.6277,0.0379,-3300.5696,-1309.4469,0.0379,-3438.3323,-884.6157,0.0379,-3521.8701,-445.8336 +,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,77.4525,-3521.8701,-439.0606,153.6462,-3438.3323,-871.177,227.4174,-3300.5696,-1289.5543,363.0954,-2871.8735,-2059.0193,297.6025,-3110.7505,-1687.5942,422.8622,-2587.7,-2397.9751,475.9605,-2262.7166,-2699.1125,521.5538,-1902.0468,-2957.6841,558.9222,-1511.3788,-3169.6111,587.477,-1096.8721,-3331.5522,606.7672,-665.066,-3440.9531,616.4886,-222.7682,-3496.0881,616.4886,223.0448,-3496.0881,606.7672,665.3422,-3440.9531,587.4766,1097.1486,-3331.5522 +,558.9222,1511.6549,-3169.6111,475.9604,2262.9927,-2699.1125,521.5538,1902.3237,-2957.6841,422.8617,2587.9771,-2397.9751,363.0948,2872.1489,-2059.0193,227.4169,3300.8433,-1289.5516,297.6023,3111.0278,-1687.5931,153.6458,3438.6089,-871.1739,0.0402,3550.1365,-0.0188,77.452,3522.145,-439.0578,77.452,3522.145,-439.0578,0.0402,3550.1365,-0.0188,152.514,3522.145,-418.9453,153.6458,3438.6089,-871.1739,302.5865,3438.6089,-831.2659,227.4169,3300.8433,-1289.5516,447.8873,3300.8433,-1230.4774 +,297.6023,3111.0278,-1687.5931,586.1257,3111.0278,-1610.2832,363.0948,2872.1489,-2059.0193,715.1208,2872.1489,-1964.6954,422.8617,2587.9771,-2397.9751,832.8381,2587.9771,-2288.1206,422.8617,2587.9771,-2397.9751,937.4222,2262.9927,-2575.4629,475.9604,2262.9927,-2699.1125,521.5538,1902.3237,-2957.6841,1027.2241,1902.3237,-2822.1904,521.5538,1902.3237,-2957.6841,1100.825,1511.6549,-3024.4084,558.9222,1511.6549,-3169.6111,558.9222,1511.6549,-3169.6111,1157.0668,1097.1486,-3178.9321,587.4766,1097.1486,-3331.5522 +,606.7672,665.3422,-3440.9531,1195.0615,665.3422,-3283.3218,606.7672,665.3422,-3440.9531,1214.2098,223.0448,-3335.9309,1214.2098,-222.7682,-3335.9309,1195.0615,-665.066,-3283.3218,606.7672,-665.066,-3440.9531,606.7672,-665.066,-3440.9531,1157.0668,-1096.8721,-3178.9321,587.477,-1096.8721,-3331.5522,587.477,-1096.8721,-3331.5522,1100.825,-1511.3788,-3024.4099,558.9222,-1511.3788,-3169.6111,521.5538,-1902.0468,-2957.6841,1027.2241,-1902.0468,-2822.1904,521.5538,-1902.0468,-2957.6841,937.4231,-2262.7166,-2575.4648 +,475.9605,-2262.7166,-2699.1125,475.9605,-2262.7166,-2699.1125,832.839,-2587.7,-2288.123,422.8622,-2587.7,-2397.9751,422.8622,-2587.7,-2397.9751,715.1212,-2871.8735,-1964.6963,363.0954,-2871.8735,-2059.0193,363.0954,-2871.8735,-2059.0193,586.1262,-3110.7505,-1610.285,297.6025,-3110.7505,-1687.5942,297.6025,-3110.7505,-1687.5942,447.8882,-3300.5696,-1230.4791,227.4174,-3300.5696,-1289.5543,153.6462,-3438.3323,-871.177,302.5872,-3438.3323,-831.268,77.4525,-3521.8701,-439.0606,152.515,-3521.8701,-418.9477 +,0.038,-3549.8635,-0.0207,77.4525,-3521.8701,-439.0606,0.038,-3549.8635,-0.0207,222.9445,-3521.8701,-386.106,654.7509,-3300.5696,-1134.0171,442.3354,-3438.3323,-766.1023,856.8417,-3110.7505,-1484.048,1045.4196,-2871.8735,-1810.6748,1217.5121,-2587.7,-2108.748,1370.4026,-2262.7166,-2373.5632,1609.282,-1511.3788,-2787.313,1501.6831,-1902.0468,-2600.946,1691.501,-1096.8721,-2929.7227,1747.045,-665.066,-3025.9263,1775.0388,-222.7682,-3074.4102,1747.045,665.3422,-3025.925,1775.0388,223.0448,-3074.4102 +,1691.501,1097.1486,-2929.719,1609.2812,1511.6549,-2787.3113,1370.4026,2262.9927,-2373.5632,1501.6831,1902.3237,-2600.946,1217.5111,2587.9771,-2108.7454,1045.4186,2872.1489,-1810.6736,856.8408,3111.0278,-1484.047,654.7501,3300.8433,-1134.0148,442.3341,3438.6089,-766.1002,0.0402,3550.1365,-0.0188,222.943,3522.145,-386.1036,0.0402,3550.1365,-0.0188,286.5993,3522.145,-341.5312,568.643,3438.6089,-677.6577,841.7197,3300.8433,-1003.0977,1101.5215,3111.0278,-1312.7186,1343.9541,2872.1489,-1601.6371 +,1565.1915,2587.9771,-1865.2972,1761.7438,2262.9927,-2099.541,1930.5157,1902.3237,-2300.6731,2068.8416,1511.6549,-2465.5247,2174.5408,1097.1486,-2591.4907,2245.9482,665.3422,-2676.5911,2281.9343,223.0448,-2719.478,2281.9343,-222.7682,-2719.478,2245.9482,-665.066,-2676.5928,2174.5408,-1096.8721,-2591.4937,2068.8416,-1511.3788,-2465.5247,1930.5157,-1902.0468,-2300.6758,1761.7462,-2262.7166,-2099.541,1565.1925,-2587.7,-1865.2988,1343.9558,-2871.8735,-1601.639,1101.5238,-3110.7505,-1312.7206,841.721,-3300.5696,-1003.0991 +,568.6446,-3438.3323,-677.6599,286.6009,-3521.8701,-341.533,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,286.6009,-3521.8701,-341.533,341.5504,-3521.8701,-286.5837,286.6009,-3521.8701,-341.533,677.6769,-3438.3323,-568.6274,568.6446,-3438.3323,-677.6599,1003.1163,-3300.5696,-841.7035,841.721,-3300.5696,-1003.0991,1312.7374,-3110.7505,-1101.5057,1101.5238,-3110.7505,-1312.7206,1601.6556,-2871.8735,-1343.9373,1343.9558,-2871.8735,-1601.639,1865.3165,-2587.7,-1565.175,1761.7462,-2262.7166,-2099.541 +,1565.1925,-2587.7,-1865.2988,1761.7462,-2262.7166,-2099.541,2300.6926,-1902.0468,-1930.4989,2099.5605,-2262.7166,-1761.7289,2068.8416,-1511.3788,-2465.5247,1930.5157,-1902.0468,-2300.6758,2174.5408,-1096.8721,-2591.4937,2465.5422,-1511.3788,-2068.825,2068.8416,-1511.3788,-2465.5247,2245.9482,-665.066,-2676.5928,2591.5107,-1096.8721,-2174.5237,2174.5408,-1096.8721,-2591.4937,2676.6094,-665.066,-2245.9307,2245.9482,-665.066,-2676.5928,2719.4946,-222.7682,-2281.9163,2245.9482,665.3422,-2676.5911,2719.4946,223.0448,-2281.9163 +,2174.5408,1097.1486,-2591.4907,2676.6077,665.3422,-2245.9307,2245.9482,665.3422,-2676.5911,2174.5408,1097.1486,-2591.4907,2465.5422,1511.6549,-2068.825,2591.5081,1097.1486,-2174.5237,1930.5157,1902.3237,-2300.6731,2068.8416,1511.6549,-2465.5247,1930.5157,1902.3237,-2300.6731,2099.5591,2262.9927,-1761.7289,2300.6926,1902.3237,-1930.4989,1565.1915,2587.9771,-1865.2972,1761.7438,2262.9927,-2099.541,1565.1915,2587.9771,-1865.2972,1601.6556,2872.1489,-1343.9373,1865.3149,2587.9771,-1565.1732,1343.9541,2872.1489,-1601.6371 +,1312.7362,3111.0278,-1101.505,1101.5215,3111.0278,-1312.7186,1003.1147,3300.8433,-841.7026,841.7197,3300.8433,-1003.0977,677.675,3438.6089,-568.6259,286.5993,3522.145,-341.5312,568.643,3438.6089,-677.6577,286.5993,3522.145,-341.5312,0.0402,3550.1365,-0.0188,341.5482,3522.145,-286.5818,0.0402,3550.1365,-0.0188,386.1209,3522.145,-222.9259,766.1176,3438.6089,-442.3168,1134.0323,3300.8433,-654.7329,1484.0637,3111.0278,-856.8232,1810.6921,2872.1489,-1045.402,2108.7637,2587.9771,-1217.4944 +,2373.5779,2262.9927,-1370.3857,2600.9641,1902.3237,-1501.6655,2787.3293,1511.6549,-1609.2645,2929.7371,1097.1486,-1691.4836,3025.9446,665.3422,-1747.0282,3074.4285,223.0448,-1775.0211,3074.4285,-222.7682,-1775.0211,3025.9446,-665.066,-1747.0282,2929.739,-1096.8721,-1691.4844,2787.3293,-1511.3788,-1609.2645,2600.9641,-1902.0468,-1501.6664,2373.5806,-2262.7166,-1370.3857,2108.7637,-2587.7,-1217.4944,1810.6929,-2871.8735,-1045.403,1484.0656,-3110.7505,-856.8242,1134.0345,-3300.5696,-654.7339,766.1193,-3438.3323,-442.3183 +,386.1233,-3521.8701,-222.9272,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,418.965,-3521.8701,-152.4977,831.2851,-3438.3323,-302.57,1610.3019,-3110.7505,-586.109,1230.4962,-3300.5696,-447.8709,1964.713,-2871.8735,-715.1042,2288.1394,-2587.7,-832.8219,2822.2073,-1902.0468,-1027.2074,2575.4829,-2262.7166,-937.4061,3178.949,-1096.8721,-1157.0502,3024.4268,-1511.3788,-1100.8082,3335.9458,-222.7682,-1214.1931,3283.3379,-665.066,-1195.0444,3335.9458,223.0448,-1214.1931,3178.949,1097.1486,-1157.0502 +,3283.3379,665.3422,-1195.0444,3024.4248,1511.6549,-1100.8082,2575.4805,2262.9927,-937.4061,2822.2073,1902.3237,-1027.2062,2288.1394,2587.9771,-832.8215,1964.7122,2872.1489,-715.1038,1610.2999,3111.0278,-586.1086,1230.494,3300.8433,-447.8701,831.2829,3438.6089,-302.5692,0.0402,3550.1365,-0.0188,418.9626,3522.145,-152.4968,418.9626,3522.145,-152.4968,0.0402,3550.1365,-0.0188,439.0752,3522.145,-77.4349,418.9626,3522.145,-152.4968,871.1913,3438.6089,-153.6286,831.2829,3438.6089,-302.5692 +,831.2829,3438.6089,-302.5692,1289.5688,3300.8433,-227.4,1230.494,3300.8433,-447.8701,1230.494,3300.8433,-447.8701,1687.6097,3111.0278,-297.5854,1610.2999,3111.0278,-586.1086,1964.7122,2872.1489,-715.1038,2059.0374,2872.1489,-363.0781,1964.7122,2872.1489,-715.1038,2397.9905,2587.9771,-422.8449,2288.1394,2587.9771,-832.8215,2288.1394,2587.9771,-832.8215,2699.1294,2262.9927,-475.944,2575.4805,2262.9927,-937.4061,2822.2073,1902.3237,-1027.2062,2957.7004,1902.3237,-521.5369,3024.4248,1511.6549,-1100.8082 +,3169.6289,1511.6549,-558.9051,3024.4248,1511.6549,-1100.8082,3331.5706,1097.1486,-587.4601,3178.949,1097.1486,-1157.0502,3178.949,1097.1486,-1157.0502,3440.9709,665.3422,-606.7507,3283.3379,665.3422,-1195.0444,3283.3379,665.3422,-1195.0444,3496.1062,223.0448,-616.4726,3496.1062,-222.7682,-616.4726,3283.3379,-665.066,-1195.0444,3440.9709,-665.066,-606.7507,3283.3379,-665.066,-1195.0444,3331.5706,-1096.8721,-587.4601,3178.949,-1096.8721,-1157.0502,3178.949,-1096.8721,-1157.0502,3169.6289,-1511.3788,-558.9055 +,3024.4268,-1511.3788,-1100.8082,3024.4268,-1511.3788,-1100.8082,2957.7004,-1902.0468,-521.5369,2822.2073,-1902.0468,-1027.2074,2575.4829,-2262.7166,-937.4061,2699.1326,-2262.7166,-475.9438,2575.4829,-2262.7166,-937.4061,2397.9932,-2587.7,-422.8453,2288.1394,-2587.7,-832.8219,2288.1394,-2587.7,-832.8219,2059.0391,-2871.8735,-363.0784,1964.713,-2871.8735,-715.1042,1964.713,-2871.8735,-715.1042,1687.6116,-3110.7505,-297.5856,1610.3019,-3110.7505,-586.109,1610.3019,-3110.7505,-586.109,1289.5709,-3300.5696,-227.4003 +,1230.4962,-3300.5696,-447.8709,1230.4962,-3300.5696,-447.8709,871.194,-3438.3323,-153.6291,831.2851,-3438.3323,-302.57,831.2851,-3438.3323,-302.57,439.0779,-3521.8701,-77.4353,418.965,-3521.8701,-152.4977,0.038,-3549.8635,-0.0207,418.965,-3521.8701,-152.4977,0.038,-3549.8635,-0.0207,445.8508,-3521.8701,-0.0207,884.6326,-3438.3323,-0.0209,1309.465,-3300.5696,-0.0209,2090.801,-2871.8735,-0.0211,1713.646,-3110.7505,-0.0209,2434.9851,-2587.7,-0.0213,2740.7698,-2262.7166,-0.021 +,3003.3291,-1902.0468,-0.0211,3218.5254,-1511.3788,-0.0212,3494.0532,-665.066,-0.0212,3382.9651,-1096.8721,-0.0212,3550.0391,-222.7682,-0.0215,3550.0391,223.0448,-0.0215,3494.0518,665.3422,-0.0213,3382.9634,1097.1486,-0.0212,3003.3291,1902.3237,-0.0211,3218.5239,1511.6549,-0.0209,2740.7681,2262.9927,-0.0214,2434.9836,2587.9771,-0.021,2090.801,2872.1489,-0.0211,1713.6433,3111.0278,-0.0211,1309.4614,3300.8433,-0.021,884.6301,3438.6089,-0.0209,0.0402,3550.1365,-0.0188 +,445.8481,3522.145,-0.0208,0.0402,3550.1365,-0.0188,439.0752,3522.145,77.3934,871.1913,3438.6089,153.5869,1289.5688,3300.8433,227.358,1687.6097,3111.0278,297.5432,2059.0374,2872.1489,363.0359,2397.9905,2587.9771,422.8027,2699.1294,2262.9927,475.9012,2957.7004,1902.3237,521.4944,3169.6289,1511.6549,558.863,3331.5706,1097.1486,587.4175,3440.9709,665.3422,606.7075,3496.1062,223.0448,616.4296,3496.1062,-222.7682,616.4296,3440.9709,-665.066,606.7082,3331.5706,-1096.8721,587.4175 +,3169.6289,-1511.3788,558.863,2957.7004,-1902.0468,521.4944,2699.1326,-2262.7166,475.9018,2397.9932,-2587.7,422.8027,2059.0391,-2871.8735,363.0362,1687.6116,-3110.7505,297.5437,1289.5709,-3300.5696,227.3585,871.194,-3438.3323,153.5874,439.0779,-3521.8701,77.3938,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,439.0779,-3521.8701,77.3938,418.965,-3521.8701,152.4561,439.0779,-3521.8701,77.3938,831.2851,-3438.3323,302.5284,871.194,-3438.3323,153.5874,1230.4962,-3300.5696,447.8289 +,1687.6116,-3110.7505,297.5437,1289.5709,-3300.5696,227.3585,1687.6116,-3110.7505,297.5437,1964.713,-2871.8735,715.0621,1610.3019,-3110.7505,586.0671,2059.0391,-2871.8735,363.0362,2288.1394,-2587.7,832.7795,2397.9932,-2587.7,422.8027,2575.4829,-2262.7166,937.3638,2957.7004,-1902.0468,521.4944,2699.1326,-2262.7166,475.9018,3169.6289,-1511.3788,558.863,2822.2073,-1902.0468,1027.1642,2957.7004,-1902.0468,521.4944,3331.5706,-1096.8721,587.4175,3024.4268,-1511.3788,1100.766,3169.6289,-1511.3788,558.863 +,3331.5706,-1096.8721,587.4175,3283.3379,-665.066,1195.0015,3178.949,-1096.8721,1157.0082,3440.9709,-665.066,606.7082,3335.9478,-222.7682,1214.1498,3283.3379,665.3422,1195.0015,3335.9478,223.0448,1214.1498,3331.5706,1097.1486,587.4175,3440.9709,665.3422,606.7075,3169.6289,1511.6549,558.863,3178.949,1097.1486,1157.0068,3331.5706,1097.1486,587.4175,2957.7004,1902.3237,521.4944,3024.4248,1511.6549,1100.766,3169.6289,1511.6549,558.863,2957.7004,1902.3237,521.4944,2575.4829,2262.9927,937.3625 +,2822.2073,1902.3237,1027.1642,2699.1294,2262.9927,475.9012,2288.1394,2587.9771,832.7795,2397.9905,2587.9771,422.8027,1964.7122,2872.1489,715.0618,1687.6097,3111.0278,297.5432,2059.0374,2872.1489,363.0359,1289.5688,3300.8433,227.358,1610.2999,3111.0278,586.0665,1687.6097,3111.0278,297.5432,871.1913,3438.6089,153.5869,1230.494,3300.8433,447.8282,1289.5688,3300.8433,227.358,871.1913,3438.6089,153.5869,418.9626,3522.145,152.4552,831.2829,3438.6089,302.5273,439.0752,3522.145,77.3934 +,0.0402,3550.1365,-0.0188,0.0402,3550.1365,-0.0188,386.1209,3522.145,222.8843,766.1176,3438.6089,442.2752,1134.0323,3300.8433,654.6908,1484.0637,3111.0278,856.7812,1810.6921,2872.1489,1045.3601,2108.7637,2587.9771,1217.4512,2373.5806,2262.9927,1370.3429,2600.9641,1902.3237,1501.6235,2787.3293,1511.6549,1609.2224,2929.739,1097.1486,1691.4414,3025.9446,665.3422,1746.9852,3074.4285,223.0448,1774.9783,3074.4285,-222.7682,1774.9783,3025.9446,-665.066,1746.986,2929.739,-1096.8721,1691.4424 +,2787.3313,-1511.3788,1609.2224,2600.9641,-1902.0468,1501.6235,2373.5806,-2262.7166,1370.3438,2108.7637,-2587.7,1217.4524,1810.6929,-2871.8735,1045.3601,1484.0656,-3110.7505,856.7826,1134.0345,-3300.5696,654.6919,766.1193,-3438.3323,442.2764,386.1233,-3521.8701,222.8856,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,341.5504,-3521.8701,286.5421,677.6769,-3438.3323,568.5856,1312.7374,-3110.7505,1101.4642,1003.1163,-3300.5696,841.6619,1601.6566,-2871.8735,1343.8951,2099.5605,-2262.7166,1761.6858 +,1865.3165,-2587.7,1565.1329,2300.6926,-1902.0468,1930.4553,2591.5107,-1096.8721,2174.4822,2465.5422,-1511.3788,2068.783,2719.498,-222.7682,2281.8757,2676.6094,-665.066,2245.8894,2676.6077,665.3422,2245.887,2719.498,223.0448,2281.8757,2465.5422,1511.6549,2068.7815,2591.5081,1097.1486,2174.4822,2300.6926,1902.3237,1930.4553,2099.5591,2262.9927,1761.6851,1865.3149,2587.9771,1565.1312,1601.6556,2872.1489,1343.8943,1312.7362,3111.0278,1101.4629,1003.1147,3300.8433,841.6606,677.675,3438.6089,568.5839 +,0.0402,3550.1365,-0.0188,341.5482,3522.145,286.5405,341.5482,3522.145,286.5405,0.0402,3550.1365,-0.0188,286.5993,3522.145,341.4894,341.5482,3522.145,286.5405,568.643,3438.6089,677.6157,677.675,3438.6089,568.5839,1003.1147,3300.8433,841.6606,841.7197,3300.8433,1003.0562,1003.1147,3300.8433,841.6606,1101.5229,3111.0278,1312.676,1312.7362,3111.0278,1101.4629,1312.7362,3111.0278,1101.4629,1343.9541,2872.1489,1601.5951,1601.6556,2872.1489,1343.8943,1601.6556,2872.1489,1343.8943 +,1565.1915,2587.9771,1865.2552,1865.3149,2587.9771,1565.1312,1865.3149,2587.9771,1565.1312,1761.7448,2262.9927,2099.4973,2099.5591,2262.9927,1761.6851,2099.5591,2262.9927,1761.6851,1930.5157,1902.3237,2300.6323,2300.6926,1902.3237,1930.4553,2300.6926,1902.3237,1930.4553,2068.8416,1511.6549,2465.4819,2465.5422,1511.6549,2068.7815,2591.5081,1097.1486,2174.4822,2174.5408,1097.1486,2591.4495,2591.5081,1097.1486,2174.4822,2245.9482,665.3422,2676.5486,2676.6077,665.3422,2245.887,2676.6077,665.3422,2245.887 +,2281.9343,223.0448,2719.436,2281.9343,-222.7682,2719.436,2676.6094,-665.066,2245.8894,2245.9482,-665.066,2676.5486,2591.5107,-1096.8721,2174.4822,2174.5408,-1096.8721,2591.4495,2465.5422,-1511.3788,2068.783,2068.8416,-1511.3788,2465.4834,2465.5422,-1511.3788,2068.783,1930.5166,-1902.0468,2300.6323,2300.6926,-1902.0468,1930.4553,2300.6926,-1902.0468,1930.4553,1761.7462,-2262.7166,2099.4993,2099.5605,-2262.7166,1761.6858,1865.3165,-2587.7,1565.1329,1565.1925,-2587.7,1865.256,1865.3165,-2587.7,1565.1329 +,1343.9558,-2871.8735,1601.5964,1601.6566,-2871.8735,1343.8951,1312.7374,-3110.7505,1101.4642,1101.5238,-3110.7505,1312.6786,1312.7374,-3110.7505,1101.4642,841.721,-3300.5696,1003.0569,1003.1163,-3300.5696,841.6619,677.6769,-3438.3323,568.5856,568.6446,-3438.3323,677.6179,341.5504,-3521.8701,286.5421,286.6009,-3521.8701,341.4916,0.038,-3549.8635,-0.0207,341.5504,-3521.8701,286.5421,0.038,-3549.8635,-0.0207,222.9445,-3521.8701,386.0642,442.3354,-3438.3323,766.0602,654.7509,-3300.5696,1133.975 +,856.8417,-3110.7505,1484.0059,1045.4196,-2871.8735,1810.6324,1217.5121,-2587.7,2108.7051,1370.4043,-2262.7166,2373.5217,1501.6831,-1902.0468,2600.9055,1691.5018,-1096.8721,2929.6787,1609.282,-1511.3788,2787.2705,1747.0459,-665.066,3025.8843,1775.0388,-222.7682,3074.3701,1747.0459,665.3422,3025.8843,1775.0388,223.0448,3074.3701,1609.2812,1511.6549,2787.2705,1691.501,1097.1486,2929.6787,1370.4026,2262.9927,2373.5195,1501.6831,1902.3237,2600.9055,1045.4196,2872.1489,1810.6317,1217.5111,2587.9771,2108.7036 +,856.8412,3111.0278,1484.0042,654.7501,3300.8433,1133.9724,442.3343,3438.6089,766.058,0.0402,3550.1365,-0.0188,222.943,3522.145,386.0621,0.0402,3550.1365,-0.0188,152.5141,3522.145,418.9036,302.5865,3438.6089,831.2238,447.8875,3300.8433,1230.4353,586.1262,3111.0278,1610.2413,715.1212,2872.1489,1964.6517,832.839,2587.9771,2288.0791,937.4231,2262.9927,2575.4216,1027.2241,1902.3237,2822.1482,1100.825,1511.6549,3024.3662,1157.0676,1097.1486,3178.8877,1195.0615,665.3422,3283.2769 +,1214.2108,223.0448,3335.8865,1214.2108,-222.7682,3335.8865,1195.0624,-665.066,3283.2769,1157.0676,-1096.8721,3178.8899,1100.8262,-1511.3788,3024.3662,1027.2241,-1902.0468,2822.1482,937.4231,-2262.7166,2575.4241,832.8394,-2587.7,2288.0811,715.1216,-2871.8735,1964.6544,586.1266,-3110.7505,1610.2429,447.8884,-3300.5696,1230.437,302.5874,-3438.3323,831.2264,152.515,-3521.8701,418.9062,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,152.515,-3521.8701,418.9062,77.4526,-3521.8701,439.0188 +,152.515,-3521.8701,418.9062,153.6465,-3438.3323,871.1351,302.5874,-3438.3323,831.2264,227.4178,-3300.5696,1289.5117,586.1266,-3110.7505,1610.2429,447.8884,-3300.5696,1230.437,586.1266,-3110.7505,1610.2429,363.0958,-2871.8735,2058.9775,297.6031,-3110.7505,1687.5529,715.1216,-2871.8735,1964.6544,422.8628,-2587.7,2397.9336,832.8394,-2587.7,2288.0811,475.9612,-2262.7166,2699.0703,937.4231,-2262.7166,2575.4241,521.5549,-1902.0468,2957.6418,1100.8262,-1511.3788,3024.3662,1027.2241,-1902.0468,2822.1482 +,1157.0676,-1096.8721,3178.8899,558.9233,-1511.3788,3169.5696,1100.8262,-1511.3788,3024.3662,1157.0676,-1096.8721,3178.8899,606.7682,-665.066,3440.9121,587.4777,-1096.8721,3331.5115,1195.0624,-665.066,3283.2769,616.4902,-222.7682,3496.0457,1195.0615,665.3422,3283.2769,616.4902,223.0448,3496.0457,1195.0615,665.3422,3283.2769,587.4777,1097.1486,3331.5078,606.7678,665.3422,3440.9121,1100.825,1511.6549,3024.3662,1157.0676,1097.1486,3178.8877,1100.825,1511.6549,3024.3662,521.5549,1902.3237,2957.6418 +,558.9227,1511.6549,3169.5696,937.4231,2262.9927,2575.4216,1027.2241,1902.3237,2822.1482,937.4231,2262.9927,2575.4216,422.8624,2587.9771,2397.9319,475.9614,2262.9927,2699.0703,832.839,2587.9771,2288.0791,363.0956,2872.1489,2058.9775,586.1262,3111.0278,1610.2413,715.1212,2872.1489,1964.6517,447.8875,3300.8433,1230.4353,297.6031,3111.0278,1687.55,586.1262,3111.0278,1610.2413,302.5865,3438.6089,831.2238,227.4175,3300.8433,1289.5095,447.8875,3300.8433,1230.4353,152.5141,3522.145,418.9036 +,153.6461,3438.6089,871.1324,302.5865,3438.6089,831.2238,152.5141,3522.145,418.9036,0.0402,3550.1365,-0.0188,77.4522,3522.145,439.0162,0.0402,3550.1365,-0.0188,0.0381,3522.145,445.7892,0.0382,3438.6089,884.5712,0.0384,3300.8433,1309.4026,0.0387,3111.0278,1713.5837,0.0387,2872.1489,2090.74,0.0385,2587.9771,2434.9248,0.039,2262.9927,2740.7095,0.0388,1902.3237,3003.2671,0.0385,1511.6549,3218.4648,0.0389,1097.1486,3382.905,0.0388,665.3422,3493.9922 +,0.0391,223.0448,3549.9792,0.0391,-222.7682,3549.9792,0.0389,-665.066,3493.9922,0.0387,-1096.8721,3382.905,0.0389,-1511.3788,3218.467,0.0388,-1902.0468,3003.2705,0.0385,-2262.7166,2740.7095,0.0387,-2587.7,2434.9265,0.0386,-2871.8735,2090.7415,0.0384,-3110.7505,1713.5856,0.0384,-3300.5696,1309.4048,0.0382,-3438.3323,884.5741,0.0381,-3521.8701,445.792,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,-77.3764,-3521.8701,439.0188,-153.57,-3438.3323,871.1351 +,-227.3411,-3300.5696,1289.5117,-297.5264,-3110.7505,1687.5529,-422.7854,-2587.7,2397.9336,-363.0186,-2871.8735,2058.9775,-475.8843,-2262.7166,2699.0703,-521.477,-1902.0468,2957.6418,-558.8456,-1511.3788,3169.5696,-587.3999,-1096.8721,3331.5115,-616.4116,-222.7682,3496.0474,-606.6901,-665.066,3440.9121,-616.4116,223.0448,3496.0474,-606.6901,665.3422,3440.9121,-587.3999,1097.1486,3331.5078,-521.477,1902.3237,2957.6418,-558.8456,1511.6549,3169.5696,-475.8834,2262.9927,2699.0703,-363.0184,2872.1489,2058.9775 +,-422.7854,2587.9771,2397.9336,-297.5258,3111.0278,1687.5513,-227.3406,3300.8433,1289.5095,-153.5695,3438.6089,871.1324,-77.376,3522.145,439.0162,0.0402,3550.1365,-0.0188,-77.376,3522.145,439.0162,0.0402,3550.1365,-0.0188,-152.4379,3522.145,418.9036,-77.376,3522.145,439.0162,-302.51,3438.6089,831.2238,-153.5695,3438.6089,871.1324,-227.3406,3300.8433,1289.5095,-447.811,3300.8433,1230.4353,-297.5258,3111.0278,1687.5513,-586.0491,3111.0278,1610.2413,-297.5258,3111.0278,1687.5513 +,-715.0442,2872.1489,1964.6517,-363.0184,2872.1489,2058.9775,-363.0184,2872.1489,2058.9775,-832.7623,2587.9771,2288.0791,-422.7854,2587.9771,2397.9336,-422.7854,2587.9771,2397.9336,-937.3456,2262.9927,2575.4216,-475.8834,2262.9927,2699.0703,-521.477,1902.3237,2957.6418,-1027.1471,1902.3237,2822.1482,-558.8456,1511.6549,3169.5696,-1100.749,1511.6549,3024.3662,-558.8456,1511.6549,3169.5696,-1156.9891,1097.1486,3178.8877,-587.3999,1097.1486,3331.5078,-587.3999,1097.1486,3331.5078,-1194.9844,665.3422,3283.2769 +,-606.6901,665.3422,3440.9121,-606.6901,665.3422,3440.9121,-1214.1322,223.0448,3335.8865,-1214.1322,-222.7682,3335.8865,-606.6901,-665.066,3440.9121,-1194.9844,-665.066,3283.2788,-587.3999,-1096.8721,3331.5115,-1156.9905,-1096.8721,3178.8899,-558.8456,-1511.3788,3169.5696,-1100.749,-1511.3788,3024.3679,-558.8456,-1511.3788,3169.5696,-1027.1471,-1902.0468,2822.1482,-521.477,-1902.0468,2957.6418,-521.477,-1902.0468,2957.6418,-937.3464,-2262.7166,2575.4241,-475.8843,-2262.7166,2699.0703,-475.8843,-2262.7166,2699.0703 +,-832.7623,-2587.7,2288.0811,-422.7854,-2587.7,2397.9336,-422.7854,-2587.7,2397.9336,-715.0446,-2871.8735,1964.6544,-363.0186,-2871.8735,2058.9775,-363.0186,-2871.8735,2058.9775,-586.0495,-3110.7505,1610.2429,-297.5264,-3110.7505,1687.5529,-227.3411,-3300.5696,1289.5117,-447.8116,-3300.5696,1230.437,-227.3411,-3300.5696,1289.5117,-302.511,-3438.3323,831.2264,-153.57,-3438.3323,871.1351,-153.57,-3438.3323,871.1351,-152.4388,-3521.8701,418.9062,-77.3764,-3521.8701,439.0188,0.038,-3549.8635,-0.0207 +,-77.3764,-3521.8701,439.0188,0.038,-3549.8635,-0.0207,-222.8683,-3521.8701,386.0642,-442.2591,-3438.3323,766.0611,-654.6746,-3300.5696,1133.9758,-1045.3429,-2871.8735,1810.6332,-856.7649,-3110.7505,1484.0059,-1217.4348,-2587.7,2108.7051,-1370.3267,-2262.7166,2373.5217,-1501.6064,-1902.0468,2600.9055,-1609.2048,-1511.3788,2787.2722,-1746.9675,-665.066,3025.8862,-1691.4238,-1096.8721,2929.6802,-1774.9603,-222.7682,3074.3701,-1774.9603,223.0448,3074.3701,-1691.4238,1097.1486,2929.6787,-1746.9675,665.3422,3025.8843 +,-1609.204,1511.6549,2787.2705,-1501.6064,1902.3237,2600.9055,-1370.3258,2262.9927,2373.5195,-1217.434,2587.9771,2108.7036,-856.764,3111.0278,1484.005,-1045.3429,2872.1489,1810.6317,-654.6735,3300.8433,1133.9736,-442.2577,3438.6089,766.058,0.0402,3550.1365,-0.0188,-222.867,3522.145,386.0621,0.0402,3550.1365,-0.0188,-286.5232,3522.145,341.4894,-568.5664,3438.6089,677.6165,-841.6429,3300.8433,1003.0562,-1101.4453,3111.0278,1312.6774,-1343.8772,2872.1489,1601.5951,-1565.1143,2587.9771,1865.256 +,-1761.6681,2262.9927,2099.4993,-1930.4385,1902.3237,2300.6323,-2068.7644,1511.6549,2465.4834,-2174.4631,1097.1486,2591.4495,-2245.8706,665.3422,2676.5486,-2281.8567,223.0448,2719.436,-2281.8567,-222.7682,2719.436,-2245.8706,-665.066,2676.5486,-2174.4631,-1096.8721,2591.4521,-2068.7644,-1511.3788,2465.4834,-1930.4385,-1902.0468,2300.6343,-1761.6681,-2262.7166,2099.4993,-1565.115,-2587.7,1865.257,-1343.8782,-2871.8735,1601.5964,-1101.4465,-3110.7505,1312.6786,-841.6447,-3300.5696,1003.0578,-568.5686,-3438.3323,677.6182 +,-286.5248,-3521.8701,341.4916,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,-286.5248,-3521.8701,341.4916,-341.4743,-3521.8701,286.5421,-286.5248,-3521.8701,341.4916,-677.6007,-3438.3323,568.586,-568.5686,-3438.3323,677.6182,-1003.0399,-3300.5696,841.6619,-841.6447,-3300.5696,1003.0578,-1312.66,-3110.7505,1101.4651,-1343.8782,-2871.8735,1601.5964,-1101.4465,-3110.7505,1312.6786,-1565.115,-2587.7,1865.257,-1601.579,-2871.8735,1343.8961,-1343.8782,-2871.8735,1601.5964,-1761.6681,-2262.7166,2099.4993 +,-1865.2391,-2587.7,1565.1338,-1565.115,-2587.7,1865.257,-1761.6681,-2262.7166,2099.4993,-2300.6152,-1902.0468,1930.457,-2099.4814,-2262.7166,1761.6858,-2068.7644,-1511.3788,2465.4834,-1930.4385,-1902.0468,2300.6343,-2068.7644,-1511.3788,2465.4834,-2591.4331,-1096.8721,2174.4822,-2465.4653,-1511.3788,2068.783,-2245.8706,-665.066,2676.5486,-2174.4631,-1096.8721,2591.4521,-2676.5298,-665.066,2245.8894,-2245.8706,-665.066,2676.5486,-2719.4189,-222.7682,2281.8757,-2676.5298,665.3422,2245.8894,-2719.4189,223.0448,2281.8757 +,-2174.4631,1097.1486,2591.4495,-2245.8706,665.3422,2676.5486,-2068.7644,1511.6549,2465.4834,-2591.4314,1097.1486,2174.4822,-2174.4631,1097.1486,2591.4495,-2068.7644,1511.6549,2465.4834,-2300.6133,1902.3237,1930.457,-2465.4653,1511.6549,2068.783,-1761.6681,2262.9927,2099.4993,-1930.4385,1902.3237,2300.6323,-1761.6681,2262.9927,2099.4993,-1865.2372,2587.9771,1565.1329,-2099.4814,2262.9927,1761.6858,-1343.8772,2872.1489,1601.5951,-1565.1143,2587.9771,1865.256,-1343.8772,2872.1489,1601.5951,-1312.6591,3111.0278,1101.4642 +,-1601.5781,2872.1489,1343.8951,-841.6429,3300.8433,1003.0562,-1101.4453,3111.0278,1312.6774,-841.6429,3300.8433,1003.0562,-677.5985,3438.6089,568.5845,-1003.0386,3300.8433,841.6609,-286.5232,3522.145,341.4894,-568.5664,3438.6089,677.6165,-286.5232,3522.145,341.4894,0.0402,3550.1365,-0.0188,-341.4721,3522.145,286.5405,0.0402,3550.1365,-0.0188,-386.0447,3522.145,222.8844,-766.041,3438.6089,442.2755,-1133.9561,3300.8433,654.6914,-1483.9862,3111.0278,856.782,-1810.6147,2872.1489,1045.3601 +,-2108.6865,2587.9771,1217.4524,-2373.5027,2262.9927,1370.3438,-2600.8865,1902.3237,1501.6244,-2787.2517,1511.6549,1609.2224,-2929.6599,1097.1486,1691.4424,-3025.8655,665.3422,1746.986,-3074.3508,223.0448,1774.9797,-3074.3508,-222.7682,1774.9797,-3025.8672,-665.066,1746.9871,-2929.6614,-1096.8721,1691.4432,-2787.2532,-1511.3788,1609.2234,-2600.8865,-1902.0468,1501.6244,-2373.5027,-2262.7166,1370.3438,-2108.6865,-2587.7,1217.4532,-1810.6157,-2871.8735,1045.3608,-1483.9889,-3110.7505,856.7831,-1133.9574,-3300.5696,654.6923 +,-766.0435,-3438.3323,442.277,-386.0469,-3521.8701,222.8857,0.038,-3549.8635,-0.0207,0.038,-3549.8635,-0.0207,-418.8889,-3521.8701,152.4563,-831.2092,-3438.3323,302.5286,-1230.4199,-3300.5696,447.8296,-1964.6356,-2871.8735,715.0626,-1610.2262,-3110.7505,586.0676,-2288.063,-2587.7,832.7809,-2822.1292,-1902.0468,1027.1655,-2575.4053,-2262.7166,937.3644,-3178.873,-1096.8721,1157.0089,-3024.3511,-1511.3788,1100.7673,-3283.2603,-665.066,1195.0037,-3335.8677,-222.7682,1214.1521,-3335.8677,223.0448,1214.1521 +,-3178.873,1097.1486,1157.0089,-3283.2603,665.3422,1195.0024,-2822.1292,1902.3237,1027.1655,-3024.3491,1511.6549,1100.766,-2575.4036,2262.9927,937.3644,-1964.6348,2872.1489,715.0626,-2288.063,2587.9771,832.7803,-1610.2234,3111.0278,586.0671,-1230.4177,3300.8433,447.8289,-831.2061,3438.6089,302.5279,0.0402,3550.1365,-0.0188,-418.8864,3522.145,152.4555,-418.8864,3522.145,152.4555,-438.9991,3522.145,77.3935,-831.2061,3438.6089,302.5279,-871.1148,3438.6089,153.5874,-1230.4177,3300.8433,447.8289 +,-1289.4924,3300.8433,227.3588,-1230.4177,3300.8433,447.8289,-1687.5325,3111.0278,297.5443,-1610.2234,3111.0278,586.0671,-1610.2234,3111.0278,586.0671,-2058.9597,2872.1489,363.037,-1964.6348,2872.1489,715.0626,-2288.063,2587.9771,832.7803,-2397.9155,2587.9771,422.8037,-2288.063,2587.9771,832.7803,-2699.053,2262.9927,475.9028,-2575.4036,2262.9927,937.3644,-2822.1292,1902.3237,1027.1655,-2957.6248,1902.3237,521.4963,-3024.3491,1511.6549,1100.766,-3169.5513,1511.6549,558.8641,-3024.3491,1511.6549,1100.766 +,-3331.4929,1097.1486,587.4191,-3178.873,1097.1486,1157.0089,-3283.2603,665.3422,1195.0024,-3440.8933,665.3422,606.7092,-3283.2603,665.3422,1195.0024,-3496.0291,223.0448,616.4316,-3335.8677,223.0448,1214.1521,-3335.8677,223.0448,1214.1521,-3496.0291,-222.7682,616.4316,-3335.8677,-222.7682,1214.1521,-3283.2603,-665.066,1195.0037,-3440.8933,-665.066,606.7097,-3178.873,-1096.8721,1157.0089,-3331.4929,-1096.8721,587.4191,-3024.3511,-1511.3788,1100.7673,-3169.5513,-1511.3788,558.8647,-3024.3511,-1511.3788,1100.7673 +,-2957.6248,-1902.0468,521.4963,-2822.1292,-1902.0468,1027.1655,-2575.4053,-2262.7166,937.3644,-2699.053,-2262.7166,475.9026,-2575.4053,-2262.7166,937.3644,-2397.9155,-2587.7,422.804,-2288.063,-2587.7,832.7809,-2288.063,-2587.7,832.7809,-2058.9617,-2871.8735,363.037,-1964.6356,-2871.8735,715.0626,-1964.6356,-2871.8735,715.0626,-1687.5352,-3110.7505,297.5445,-1610.2262,-3110.7505,586.0676,-1230.4199,-3300.5696,447.8296,-1289.4948,-3300.5696,227.3591,-831.2092,-3438.3323,302.5286,-871.1173,-3438.3323,153.5879 +,-418.8889,-3521.8701,152.4563,-439.0016,-3521.8701,77.394,-418.8889,-3521.8701,152.4563,-439.0022,-3521.8701,-77.4352,-871.1187,-3438.3323,-153.6291,-1289.4956,-3300.5696,-227.4002,-1289.4956,-3300.5696,-227.4002,-1687.5367,-3110.7505,-297.5856,-1687.5367,-3110.7505,-297.5856,-2058.9644,-2871.8735,-363.0781,-2058.9644,-2871.8735,-363.0781,-2397.9175,-2587.7,-422.8449,-2397.9175,-2587.7,-422.8449,-2699.0569,-2262.7166,-475.9438,-2699.0569,-2262.7166,-475.9438,-2957.6279,-1902.0468,-521.5369,-2957.6279,-1902.0468,-521.5369 +,-3169.5564,-1511.3788,-558.9051,-3331.4966,-1096.8721,-587.4601,-3331.4966,-1096.8721,-587.4601,-3440.897,-665.066,-606.7501,-3440.895,665.3422,-606.7501,-3331.4951,1097.1486,-587.4601,-3331.4951,1097.1486,-587.4601,-3169.553,1511.6549,-558.9051,-3169.553,1511.6549,-558.9051,-2957.6262,1902.3237,-521.5365,-2699.0549,2262.9927,-475.9435,-2397.9175,2587.9771,-422.8447,-2058.9617,2872.1489,-363.0779,-2058.9617,2872.1489,-363.0779,-1687.5352,3111.0278,-297.5851,-1289.4934,3300.8433,-227.3997,-1289.4934,3300.8433,-227.3997 +,-871.1157,3438.6089,-153.6285,-871.1157,3438.6089,-153.6285,-438.9993,3522.145,-77.4348,-677.5993,3438.6089,-568.6259,-341.4723,3522.145,-286.5818,-677.5993,3438.6089,-568.6259,-1003.0399,3300.8433,-841.7026,-1312.66,3111.0278,-1101.505,-1601.579,2872.1489,-1343.9373,-1865.24,2587.9771,-1565.175,-2099.4832,2262.9927,-1761.7271,-2465.467,1511.6549,-2068.825,-2300.6177,1902.3237,-1930.4989,-2591.4355,1097.1486,-2174.5237,-2465.467,1511.6549,-2068.825,-2676.5352,665.3422,-2245.9307,-2591.4355,1097.1486,-2174.5237 +,-2676.5352,665.3422,-2245.9307,-2676.5352,-665.066,-2245.9307,-2676.5352,-665.066,-2245.9307,-2591.4355,-1096.8721,-2174.5237,-2300.6177,-1902.0468,-1930.4989,-2465.467,-1511.3788,-2068.825,-2099.4832,-2262.7166,-1761.7289,-2300.6177,-1902.0468,-1930.4989,-1865.241,-2587.7,-1565.175,-2099.4832,-2262.7166,-1761.7289,-1601.58,-2871.8735,-1343.9373,-1865.241,-2587.7,-1565.175,-1601.58,-2871.8735,-1343.9373,-1312.662,-3110.7505,-1101.5057,-677.6016,-3438.3323,-568.6274,-1003.0416,-3300.5696,-841.7039,-341.4745,-3521.8701,-286.5837 +,-677.6016,-3438.3323,-568.6274,-302.5116,-3438.3323,-831.268,-447.8125,-3300.5696,-1230.4791,-447.8125,-3300.5696,-1230.4791,-586.0506,-3110.7505,-1610.285,-586.0506,-3110.7505,-1610.285,-715.0459,-2871.8735,-1964.6963,-715.0459,-2871.8735,-1964.6963,-832.7637,-2587.7,-2288.123,-832.7637,-2587.7,-2288.123,-937.3477,-2262.7166,-2575.4648,-937.3477,-2262.7166,-2575.4648,-1027.1493,-1902.0468,-2822.1904,-1100.7499,-1511.3788,-3024.4099,-1100.7499,-1511.3788,-3024.4099,-1156.9917,-1096.8721,-3178.9321,-1194.9861,-665.066,-3283.3218 +,-1194.9861,-665.066,-3283.3218,-1194.9852,665.3422,-3283.3218,-1156.9917,1097.1486,-3178.9321,-1100.7499,1511.6549,-3024.4084,-1027.1479,1902.3237,-2822.1904,-1027.1479,1902.3237,-2822.1904,-937.3477,2262.9927,-2575.4629,-937.3477,2262.9927,-2575.4629,-832.7632,2587.9771,-2288.1206,-715.0455,2872.1489,-1964.6954,-586.0502,3111.0278,-1610.2832,-447.8115,3300.8433,-1230.4774,-302.5105,3438.6089,-831.2659,-152.4381,3522.145,-418.9452,153.6458,3438.6089,-871.1739,77.452,3522.145,-439.0578,227.4169,3300.8433,-1289.5516 +,153.6458,3438.6089,-871.1739,297.6023,3111.0278,-1687.5931,227.4169,3300.8433,-1289.5516,363.0948,2872.1489,-2059.0193,297.6023,3111.0278,-1687.5931,422.8617,2587.9771,-2397.9751,363.0948,2872.1489,-2059.0193,422.8617,2587.9771,-2397.9751,521.5538,1902.3237,-2957.6841,475.9604,2262.9927,-2699.1125,521.5538,1902.3237,-2957.6841,558.9222,1511.6549,-3169.6111,606.7672,665.3422,-3440.9531,587.4766,1097.1486,-3331.5522,606.7672,665.3422,-3440.9531,606.7672,-665.066,-3440.9531,587.477,-1096.8721,-3331.5522 +,521.5538,-1902.0468,-2957.6841,558.9222,-1511.3788,-3169.6111,521.5538,-1902.0468,-2957.6841,475.9605,-2262.7166,-2699.1125,422.8622,-2587.7,-2397.9751,363.0954,-2871.8735,-2059.0193,297.6025,-3110.7505,-1687.5942,153.6462,-3438.3323,-871.177,227.4174,-3300.5696,-1289.5543,77.4525,-3521.8701,-439.0606,153.6462,-3438.3323,-871.177,286.6009,-3521.8701,-341.533,568.6446,-3438.3323,-677.6599,568.6446,-3438.3323,-677.6599,841.721,-3300.5696,-1003.0991,841.721,-3300.5696,-1003.0991,1101.5238,-3110.7505,-1312.7206 +,1101.5238,-3110.7505,-1312.7206,1343.9558,-2871.8735,-1601.639,1343.9558,-2871.8735,-1601.639,1565.1925,-2587.7,-1865.2988,1761.7462,-2262.7166,-2099.541,1761.7462,-2262.7166,-2099.541,1930.5157,-1902.0468,-2300.6758,2068.8416,-1511.3788,-2465.5247,2174.5408,-1096.8721,-2591.4937,2245.9482,-665.066,-2676.5928,2245.9482,665.3422,-2676.5911,2174.5408,1097.1486,-2591.4907,2174.5408,1097.1486,-2591.4907,2068.8416,1511.6549,-2465.5247,1930.5157,1902.3237,-2300.6731,1930.5157,1902.3237,-2300.6731,1761.7438,2262.9927,-2099.541 +,1565.1915,2587.9771,-1865.2972,1565.1915,2587.9771,-1865.2972,1343.9541,2872.1489,-1601.6371,1343.9541,2872.1489,-1601.6371,1101.5215,3111.0278,-1312.7186,1101.5215,3111.0278,-1312.7186,841.7197,3300.8433,-1003.0977,841.7197,3300.8433,-1003.0977,568.643,3438.6089,-677.6577,286.5993,3522.145,-341.5312,418.9626,3522.145,-152.4968,831.2829,3438.6089,-302.5692,1230.494,3300.8433,-447.8701,1964.7122,2872.1489,-715.1038,1610.2999,3111.0278,-586.1086,1964.7122,2872.1489,-715.1038,2288.1394,2587.9771,-832.8215 +,2822.2073,1902.3237,-1027.2062,2575.4805,2262.9927,-937.4061,3024.4248,1511.6549,-1100.8082,2822.2073,1902.3237,-1027.2062,3024.4248,1511.6549,-1100.8082,3178.949,1097.1486,-1157.0502,3283.3379,665.3422,-1195.0444,3283.3379,-665.066,-1195.0444,3283.3379,-665.066,-1195.0444,3178.949,-1096.8721,-1157.0502,3024.4268,-1511.3788,-1100.8082,2575.4829,-2262.7166,-937.4061,2822.2073,-1902.0468,-1027.2074,2575.4829,-2262.7166,-937.4061,2288.1394,-2587.7,-832.8219,1964.713,-2871.8735,-715.1042,1610.3019,-3110.7505,-586.109 +,1230.4962,-3300.5696,-447.8709,831.2851,-3438.3323,-302.57,439.0779,-3521.8701,77.3938,871.194,-3438.3323,153.5874,871.194,-3438.3323,153.5874,1289.5709,-3300.5696,227.3585,1687.6116,-3110.7505,297.5437,1687.6116,-3110.7505,297.5437,2059.0391,-2871.8735,363.0362,2059.0391,-2871.8735,363.0362,2397.9932,-2587.7,422.8027,2397.9932,-2587.7,422.8027,2699.1326,-2262.7166,475.9018,2957.7004,-1902.0468,521.4944,3169.6289,-1511.3788,558.863,3331.5706,-1096.8721,587.4175,3331.5706,-1096.8721,587.4175 +,3440.9709,-665.066,606.7082,3440.9709,-665.066,606.7082,3440.9709,665.3422,606.7075,3331.5706,1097.1486,587.4175,3169.6289,1511.6549,558.863,2957.7004,1902.3237,521.4944,2957.7004,1902.3237,521.4944,2699.1294,2262.9927,475.9012,2699.1294,2262.9927,475.9012,2397.9905,2587.9771,422.8027,2397.9905,2587.9771,422.8027,2059.0374,2872.1489,363.0359,1687.6097,3111.0278,297.5432,1289.5688,3300.8433,227.358,871.1913,3438.6089,153.5869,871.1913,3438.6089,153.5869,439.0752,3522.145,77.3934 +,341.5482,3522.145,286.5405,1003.1147,3300.8433,841.6606,677.675,3438.6089,568.5839,1003.1147,3300.8433,841.6606,1312.7362,3111.0278,1101.4629,1601.6556,2872.1489,1343.8943,1865.3149,2587.9771,1565.1312,2099.5591,2262.9927,1761.6851,2300.6926,1902.3237,1930.4553,2591.5081,1097.1486,2174.4822,2465.5422,1511.6549,2068.7815,2591.5081,1097.1486,2174.4822,2676.6077,665.3422,2245.887,2676.6094,-665.066,2245.8894,2591.5107,-1096.8721,2174.4822,2676.6094,-665.066,2245.8894,2465.5422,-1511.3788,2068.783 +,2591.5107,-1096.8721,2174.4822,2465.5422,-1511.3788,2068.783,2300.6926,-1902.0468,1930.4553,1865.3165,-2587.7,1565.1329,2099.5605,-2262.7166,1761.6858,1865.3165,-2587.7,1565.1329,1312.7374,-3110.7505,1101.4642,1601.6566,-2871.8735,1343.8951,1312.7374,-3110.7505,1101.4642,677.6769,-3438.3323,568.5856,1003.1163,-3300.5696,841.6619,341.5504,-3521.8701,286.5421,677.6769,-3438.3323,568.5856,152.515,-3521.8701,418.9062,302.5874,-3438.3323,831.2264,302.5874,-3438.3323,831.2264,447.8884,-3300.5696,1230.437 +,586.1266,-3110.7505,1610.2429,586.1266,-3110.7505,1610.2429,715.1216,-2871.8735,1964.6544,715.1216,-2871.8735,1964.6544,832.8394,-2587.7,2288.0811,832.8394,-2587.7,2288.0811,937.4231,-2262.7166,2575.4241,937.4231,-2262.7166,2575.4241,1027.2241,-1902.0468,2822.1482,1100.8262,-1511.3788,3024.3662,1157.0676,-1096.8721,3178.8899,1157.0676,-1096.8721,3178.8899,1195.0624,-665.066,3283.2769,1195.0624,-665.066,3283.2769,1195.0615,665.3422,3283.2769,1195.0615,665.3422,3283.2769,1157.0676,1097.1486,3178.8877 +,1100.825,1511.6549,3024.3662,1100.825,1511.6549,3024.3662,1027.2241,1902.3237,2822.1482,937.4231,2262.9927,2575.4216,937.4231,2262.9927,2575.4216,832.839,2587.9771,2288.0791,832.839,2587.9771,2288.0791,715.1212,2872.1489,1964.6517,586.1262,3111.0278,1610.2413,447.8875,3300.8433,1230.4353,302.5865,3438.6089,831.2238,152.5141,3522.145,418.9036,-77.376,3522.145,439.0162,-227.3406,3300.8433,1289.5095,-153.5695,3438.6089,871.1324,-297.5258,3111.0278,1687.5513,-227.3406,3300.8433,1289.5095 +,-297.5258,3111.0278,1687.5513,-363.0184,2872.1489,2058.9775,-422.7854,2587.9771,2397.9336,-521.477,1902.3237,2957.6418,-475.8834,2262.9927,2699.0703,-558.8456,1511.6549,3169.5696,-521.477,1902.3237,2957.6418,-558.8456,1511.6549,3169.5696,-587.3999,1097.1486,3331.5078,-606.6901,665.3422,3440.9121,-606.6901,-665.066,3440.9121,-587.3999,-1096.8721,3331.5115,-606.6901,-665.066,3440.9121,-558.8456,-1511.3788,3169.5696,-587.3999,-1096.8721,3331.5115,-558.8456,-1511.3788,3169.5696,-521.477,-1902.0468,2957.6418 +,-475.8843,-2262.7166,2699.0703,-422.7854,-2587.7,2397.9336,-363.0186,-2871.8735,2058.9775,-227.3411,-3300.5696,1289.5117,-297.5264,-3110.7505,1687.5529,-227.3411,-3300.5696,1289.5117,-153.57,-3438.3323,871.1351,-286.5248,-3521.8701,341.4916,-568.5686,-3438.3323,677.6182,-568.5686,-3438.3323,677.6182,-841.6447,-3300.5696,1003.0578,-841.6447,-3300.5696,1003.0578,-1101.4465,-3110.7505,1312.6786,-1343.8782,-2871.8735,1601.5964,-1565.115,-2587.7,1865.257,-1761.6681,-2262.7166,2099.4993,-1761.6681,-2262.7166,2099.4993 +,-1930.4385,-1902.0468,2300.6343,-2068.7644,-1511.3788,2465.4834,-2068.7644,-1511.3788,2465.4834,-2174.4631,-1096.8721,2591.4521,-2245.8706,-665.066,2676.5486,-2245.8706,665.3422,2676.5486,-2174.4631,1097.1486,2591.4495,-2068.7644,1511.6549,2465.4834,-2068.7644,1511.6549,2465.4834,-1930.4385,1902.3237,2300.6323,-1761.6681,2262.9927,2099.4993,-1761.6681,2262.9927,2099.4993,-1565.1143,2587.9771,1865.256,-1343.8772,2872.1489,1601.5951,-1343.8772,2872.1489,1601.5951,-1101.4453,3111.0278,1312.6774,-841.6429,3300.8433,1003.0562 +,-841.6429,3300.8433,1003.0562,-568.5664,3438.6089,677.6165,-286.5232,3522.145,341.4894,-831.2061,3438.6089,302.5279,-418.8864,3522.145,152.4555,-1230.4177,3300.8433,447.8289,-831.2061,3438.6089,302.5279,-1230.4177,3300.8433,447.8289,-1610.2234,3111.0278,586.0671,-2288.063,2587.9771,832.7803,-1964.6348,2872.1489,715.0626,-2288.063,2587.9771,832.7803,-2822.1292,1902.3237,1027.1655,-2575.4036,2262.9927,937.3644,-3024.3491,1511.6549,1100.766,-2822.1292,1902.3237,1027.1655,-3024.3491,1511.6549,1100.766 +,-3283.2603,665.3422,1195.0024,-3178.873,1097.1486,1157.0089,-3283.2603,665.3422,1195.0024,-3335.8677,223.0448,1214.1521,-3283.2603,-665.066,1195.0037,-3335.8677,-222.7682,1214.1521,-3178.873,-1096.8721,1157.0089,-3283.2603,-665.066,1195.0037,-3024.3511,-1511.3788,1100.7673,-3178.873,-1096.8721,1157.0089,-3024.3511,-1511.3788,1100.7673,-2575.4053,-2262.7166,937.3644,-2822.1292,-1902.0468,1027.1655,-2575.4053,-2262.7166,937.3644,-2288.063,-2587.7,832.7809,-1964.6356,-2871.8735,715.0626,-1230.4199,-3300.5696,447.8296 +,-1610.2262,-3110.7505,586.0676,-831.2092,-3438.3323,302.5286,-1230.4199,-3300.5696,447.8296,-418.8889,-3521.8701,152.4563,-831.2092,-3438.3323,302.5286] +,"normals":[0,-1,0,0.127,-0.992,0.022,0.129,-0.992,0,0.251,-0.968,0,0.37,-0.929,0,0.248,-0.968,0.044,0.365,-0.929,0.064,0.484,-0.875,0,0.476,-0.875,0.084,0.589,-0.808,0,0.58,-0.808,0.102,0.686,-0.728,0,0.675,-0.728,0.119,0.771,-0.636,0,0.76,-0.636,0.134,0.845,-0.535,0,0.832,-0.535,0.147 +,0.905,-0.425,0,0.891,-0.425,0.157,0.951,-0.309,0,0.937,-0.309,0.165,0.982,-0.187,0,0.967,-0.187,0.171,0.983,-0.063,0.173,0.998,-0.063,0,0.983,0.063,0.173,0.998,0.063,0,0.967,0.187,0.171,0.982,0.187,0,0.937,0.309,0.165,0.951,0.309,0,0.891,0.425,0.157,0.905,0.425,0,0.832,0.535,0.147 +,0.845,0.535,0,0.76,0.636,0.134,0.771,0.636,0,0.675,0.728,0.119,0.686,0.728,0,0.58,0.808,0.102,0.589,0.808,0,0.476,0.875,0.084,0.484,0.875,0,0.365,0.929,0.064,0.37,0.929,0,0.248,0.968,0.044,0.251,0.968,0,0.127,0.992,0.022,0.129,0.992,0,0,1,0,0,1,0 +,0.127,0.992,0.022,0.121,0.992,0.044,0.127,0.992,0.022,0.236,0.968,0.086,0.365,0.929,0.064,0.248,0.968,0.044,0.365,0.929,0.064,0.455,0.875,0.165,0.348,0.929,0.127,0.476,0.875,0.084,0.554,0.808,0.202,0.58,0.808,0.102,0.644,0.728,0.235,0.675,0.728,0.119,0.725,0.636,0.264,0.76,0.636,0.134,0.794,0.535,0.289 +,0.832,0.535,0.147,0.851,0.425,0.31,0.937,0.309,0.165,0.891,0.425,0.157,0.937,0.309,0.165,0.923,0.187,0.336,0.894,0.309,0.325,0.967,0.187,0.171,0.938,0.063,0.341,0.923,-0.187,0.336,0.938,-0.063,0.341,0.937,-0.309,0.165,0.967,-0.187,0.171,0.937,-0.309,0.165,0.851,-0.425,0.31,0.894,-0.309,0.325,0.891,-0.425,0.157 +,0.794,-0.535,0.289,0.76,-0.636,0.134,0.832,-0.535,0.147,0.675,-0.728,0.119,0.725,-0.636,0.264,0.76,-0.636,0.134,0.58,-0.808,0.102,0.644,-0.728,0.235,0.675,-0.728,0.119,0.58,-0.808,0.102,0.455,-0.875,0.165,0.554,-0.808,0.202,0.365,-0.929,0.064,0.476,-0.875,0.084,0.365,-0.929,0.064,0.236,-0.968,0.086,0.348,-0.929,0.127 +,0.248,-0.968,0.044,0.121,-0.992,0.044,0.127,-0.992,0.022,0,-1,0,0,-1,0,0.111,-0.992,0.064,0.218,-0.968,0.126,0.321,-0.929,0.185,0.419,-0.875,0.242,0.51,-0.808,0.295,0.594,-0.728,0.343,0.668,-0.636,0.386,0.732,-0.535,0.422,0.784,-0.425,0.453,0.824,-0.309,0.476,0.851,-0.187,0.491,0.864,-0.063,0.499 +,0.864,0.063,0.499,0.851,0.187,0.491,0.824,0.309,0.476,0.784,0.425,0.453,0.732,0.535,0.422,0.668,0.636,0.386,0.594,0.728,0.343,0.51,0.808,0.295,0.419,0.875,0.242,0.321,0.929,0.185,0.218,0.968,0.126,0.111,0.992,0.064,0,1,0,0,1,0,0.098,0.992,0.083,0.193,0.968,0.162,0.284,0.929,0.238 +,0.371,0.875,0.311,0.451,0.808,0.379,0.525,0.728,0.441,0.647,0.535,0.543,0.591,0.636,0.496,0.729,0.309,0.611,0.693,0.425,0.582,0.752,0.187,0.631,0.765,0.063,0.641,0.765,-0.063,0.641,0.752,-0.187,0.631,0.729,-0.309,0.611,0.647,-0.535,0.543,0.693,-0.425,0.582,0.591,-0.636,0.496,0.451,-0.808,0.379,0.525,-0.728,0.441 +,0.371,-0.875,0.311,0.284,-0.929,0.238,0.193,-0.968,0.162,0,-1,0,0.098,-0.992,0.083,0.098,-0.992,0.083,0,-1,0,0.083,-0.992,0.098,0.193,-0.968,0.162,0.162,-0.968,0.193,0.193,-0.968,0.162,0.238,-0.929,0.284,0.284,-0.929,0.238,0.284,-0.929,0.238,0.311,-0.875,0.371,0.371,-0.875,0.311,0.371,-0.875,0.311 +,0.379,-0.808,0.451,0.451,-0.808,0.379,0.451,-0.808,0.379,0.441,-0.728,0.525,0.525,-0.728,0.441,0.525,-0.728,0.441,0.496,-0.636,0.591,0.591,-0.636,0.496,0.591,-0.636,0.496,0.543,-0.535,0.647,0.647,-0.535,0.543,0.693,-0.425,0.582,0.582,-0.425,0.693,0.729,-0.309,0.611,0.611,-0.309,0.729,0.752,-0.187,0.631,0.631,-0.187,0.752 +,0.752,-0.187,0.631,0.641,-0.063,0.765,0.641,0.063,0.765,0.752,0.187,0.631,0.631,0.187,0.752,0.752,0.187,0.631,0.611,0.309,0.729,0.729,0.309,0.611,0.729,0.309,0.611,0.582,0.425,0.693,0.693,0.425,0.582,0.647,0.535,0.543,0.543,0.535,0.647,0.591,0.636,0.496,0.496,0.636,0.591,0.525,0.728,0.441,0.441,0.728,0.525 +,0.451,0.808,0.379,0.379,0.808,0.451,0.451,0.808,0.379,0.311,0.875,0.371,0.371,0.875,0.311,0.371,0.875,0.311,0.238,0.929,0.284,0.284,0.929,0.238,0.193,0.968,0.162,0.162,0.968,0.193,0.098,0.992,0.083,0.083,0.992,0.098,0,1,0,0.098,0.992,0.083,0,1,0,0.064,0.992,0.111,0.185,0.929,0.321 +,0.126,0.968,0.218,0.242,0.875,0.419,0.295,0.808,0.51,0.343,0.728,0.594,0.422,0.535,0.732,0.386,0.636,0.668,0.453,0.425,0.784,0.491,0.187,0.851,0.476,0.309,0.824,0.499,0.063,0.864,0.499,-0.063,0.864,0.476,-0.309,0.824,0.491,-0.187,0.851,0.453,-0.425,0.784,0.386,-0.636,0.668,0.422,-0.535,0.732,0.343,-0.728,0.594 +,0.295,-0.808,0.51,0.185,-0.929,0.321,0.242,-0.875,0.419,0.126,-0.968,0.218,0,-1,0,0.064,-0.992,0.111,0,-1,0,0.044,-0.992,0.121,0.086,-0.968,0.236,0.127,-0.929,0.348,0.165,-0.875,0.455,0.202,-0.808,0.554,0.235,-0.728,0.644,0.264,-0.636,0.725,0.289,-0.535,0.794,0.31,-0.425,0.851,0.325,-0.309,0.894 +,0.336,-0.187,0.923,0.341,-0.063,0.938,0.341,0.063,0.938,0.336,0.187,0.923,0.325,0.309,0.894,0.31,0.425,0.851,0.289,0.535,0.794,0.264,0.636,0.725,0.235,0.728,0.644,0.202,0.808,0.554,0.165,0.875,0.455,0.127,0.929,0.348,0.086,0.968,0.236,0.044,0.992,0.121,0,1,0,0,1,0,0.044,0.992,0.121 +,0.022,0.992,0.127,0.086,0.968,0.236,0.044,0.992,0.121,0.127,0.929,0.348,0.044,0.968,0.248,0.086,0.968,0.236,0.127,0.929,0.348,0.084,0.875,0.476,0.064,0.929,0.365,0.165,0.875,0.455,0.102,0.808,0.58,0.202,0.808,0.554,0.119,0.728,0.675,0.235,0.728,0.644,0.134,0.636,0.76,0.264,0.636,0.725,0.147,0.535,0.832 +,0.31,0.425,0.851,0.289,0.535,0.794,0.31,0.425,0.851,0.165,0.309,0.937,0.157,0.425,0.891,0.336,0.187,0.923,0.325,0.309,0.894,0.336,0.187,0.923,0.173,0.063,0.983,0.171,0.187,0.967,0.336,-0.187,0.923,0.173,-0.063,0.983,0.325,-0.309,0.894,0.171,-0.187,0.967,0.336,-0.187,0.923,0.31,-0.425,0.851,0.165,-0.309,0.937 +,0.325,-0.309,0.894,0.289,-0.535,0.794,0.157,-0.425,0.891,0.31,-0.425,0.851,0.289,-0.535,0.794,0.134,-0.636,0.76,0.147,-0.535,0.832,0.264,-0.636,0.725,0.119,-0.728,0.675,0.202,-0.808,0.554,0.235,-0.728,0.644,0.165,-0.875,0.455,0.102,-0.808,0.58,0.202,-0.808,0.554,0.127,-0.929,0.348,0.084,-0.875,0.476,0.165,-0.875,0.455 +,0.086,-0.968,0.236,0.064,-0.929,0.365,0.127,-0.929,0.348,0.044,-0.992,0.121,0.044,-0.968,0.248,0.086,-0.968,0.236,0.044,-0.992,0.121,0,-1,0,0.022,-0.992,0.127,0,-1,0,0,-0.992,0.129,0,-0.968,0.251,0,-0.929,0.37,0,-0.875,0.484,0,-0.808,0.589,0,-0.728,0.686,0,-0.636,0.771 +,0,-0.535,0.845,0,-0.425,0.905,0,-0.309,0.951,0,-0.187,0.982,0,-0.063,0.998,0,0.063,0.998,0,0.187,0.982,0,0.309,0.951,0,0.425,0.905,0,0.535,0.845,0,0.636,0.771,0,0.728,0.686,0,0.808,0.589,0,0.875,0.484,0,0.929,0.37,0,0.968,0.251,0,0.992,0.129 +,0,1,0,0,1,0,-0.022,0.992,0.127,-0.044,0.968,0.248,-0.064,0.929,0.365,-0.102,0.808,0.58,-0.084,0.875,0.476,-0.119,0.728,0.675,-0.134,0.636,0.76,-0.147,0.535,0.832,-0.157,0.425,0.891,-0.165,0.309,0.937,-0.171,0.187,0.967,-0.173,0.063,0.983,-0.173,-0.063,0.983,-0.171,-0.187,0.967,-0.165,-0.309,0.937 +,-0.157,-0.425,0.891,-0.134,-0.636,0.76,-0.147,-0.535,0.832,-0.119,-0.728,0.675,-0.102,-0.808,0.58,-0.064,-0.929,0.365,-0.084,-0.875,0.476,-0.044,-0.968,0.248,0,-1,0,-0.022,-0.992,0.127,-0.022,-0.992,0.127,0,-1,0,-0.044,-0.992,0.121,-0.044,-0.968,0.248,-0.086,-0.968,0.236,-0.064,-0.929,0.365,-0.127,-0.929,0.348 +,-0.084,-0.875,0.476,-0.165,-0.875,0.455,-0.102,-0.808,0.58,-0.202,-0.808,0.554,-0.119,-0.728,0.675,-0.235,-0.728,0.644,-0.119,-0.728,0.675,-0.264,-0.636,0.725,-0.134,-0.636,0.76,-0.147,-0.535,0.832,-0.289,-0.535,0.794,-0.147,-0.535,0.832,-0.31,-0.425,0.851,-0.157,-0.425,0.891,-0.157,-0.425,0.891,-0.325,-0.309,0.894,-0.165,-0.309,0.937 +,-0.171,-0.187,0.967,-0.336,-0.187,0.923,-0.171,-0.187,0.967,-0.341,-0.063,0.938,-0.341,0.063,0.938,-0.336,0.187,0.923,-0.171,0.187,0.967,-0.171,0.187,0.967,-0.325,0.309,0.894,-0.165,0.309,0.937,-0.165,0.309,0.937,-0.31,0.425,0.851,-0.157,0.425,0.891,-0.147,0.535,0.832,-0.289,0.535,0.794,-0.147,0.535,0.832,-0.264,0.636,0.725 +,-0.134,0.636,0.76,-0.134,0.636,0.76,-0.235,0.728,0.644,-0.119,0.728,0.675,-0.119,0.728,0.675,-0.202,0.808,0.554,-0.102,0.808,0.58,-0.102,0.808,0.58,-0.165,0.875,0.455,-0.084,0.875,0.476,-0.084,0.875,0.476,-0.127,0.929,0.348,-0.064,0.929,0.365,-0.044,0.968,0.248,-0.086,0.968,0.236,-0.022,0.992,0.127,-0.044,0.992,0.121 +,0,1,0,-0.022,0.992,0.127,0,1,0,-0.064,0.992,0.111,-0.185,0.929,0.321,-0.126,0.968,0.218,-0.242,0.875,0.419,-0.295,0.808,0.51,-0.343,0.728,0.594,-0.386,0.636,0.668,-0.453,0.425,0.784,-0.422,0.535,0.732,-0.476,0.309,0.824,-0.491,0.187,0.851,-0.499,0.063,0.864,-0.491,-0.187,0.851,-0.499,-0.063,0.864 +,-0.476,-0.309,0.824,-0.453,-0.425,0.784,-0.386,-0.636,0.668,-0.422,-0.535,0.732,-0.343,-0.728,0.594,-0.295,-0.808,0.51,-0.242,-0.875,0.419,-0.185,-0.929,0.321,-0.126,-0.968,0.218,0,-1,0,-0.064,-0.992,0.111,0,-1,0,-0.083,-0.992,0.098,-0.162,-0.968,0.193,-0.238,-0.929,0.284,-0.311,-0.875,0.371,-0.379,-0.808,0.451 +,-0.441,-0.728,0.525,-0.496,-0.636,0.591,-0.543,-0.535,0.647,-0.582,-0.425,0.693,-0.611,-0.309,0.729,-0.631,-0.187,0.752,-0.641,-0.063,0.765,-0.641,0.063,0.765,-0.631,0.187,0.752,-0.611,0.309,0.729,-0.582,0.425,0.693,-0.543,0.535,0.647,-0.496,0.636,0.591,-0.441,0.728,0.525,-0.379,0.808,0.451,-0.311,0.875,0.371,-0.238,0.929,0.284 +,-0.162,0.968,0.193,-0.083,0.992,0.098,0,1,0,0,1,0,-0.083,0.992,0.098,-0.098,0.992,0.083,-0.083,0.992,0.098,-0.193,0.968,0.162,-0.162,0.968,0.193,-0.284,0.929,0.238,-0.238,0.929,0.284,-0.371,0.875,0.311,-0.311,0.875,0.371,-0.451,0.808,0.379,-0.379,0.808,0.451,-0.525,0.728,0.441,-0.496,0.636,0.591 +,-0.441,0.728,0.525,-0.496,0.636,0.591,-0.647,0.535,0.543,-0.591,0.636,0.496,-0.582,0.425,0.693,-0.543,0.535,0.647,-0.611,0.309,0.729,-0.693,0.425,0.582,-0.582,0.425,0.693,-0.631,0.187,0.752,-0.729,0.309,0.611,-0.611,0.309,0.729,-0.752,0.187,0.631,-0.631,0.187,0.752,-0.765,0.063,0.641,-0.631,-0.187,0.752,-0.765,-0.063,0.641 +,-0.611,-0.309,0.729,-0.752,-0.187,0.631,-0.631,-0.187,0.752,-0.611,-0.309,0.729,-0.693,-0.425,0.582,-0.729,-0.309,0.611,-0.543,-0.535,0.647,-0.582,-0.425,0.693,-0.543,-0.535,0.647,-0.591,-0.636,0.496,-0.647,-0.535,0.543,-0.441,-0.728,0.525,-0.496,-0.636,0.591,-0.441,-0.728,0.525,-0.451,-0.808,0.379,-0.525,-0.728,0.441,-0.379,-0.808,0.451 +,-0.371,-0.875,0.311,-0.311,-0.875,0.371,-0.284,-0.929,0.238,-0.238,-0.929,0.284,-0.193,-0.968,0.162,-0.083,-0.992,0.098,-0.162,-0.968,0.193,-0.083,-0.992,0.098,0,-1,0,-0.098,-0.992,0.083,0,-1,0,-0.111,-0.992,0.064,-0.218,-0.968,0.126,-0.321,-0.929,0.185,-0.419,-0.875,0.242,-0.51,-0.808,0.295,-0.594,-0.728,0.343 +,-0.668,-0.636,0.386,-0.732,-0.535,0.422,-0.784,-0.425,0.453,-0.824,-0.309,0.476,-0.851,-0.187,0.491,-0.864,-0.063,0.499,-0.864,0.063,0.499,-0.851,0.187,0.491,-0.824,0.309,0.476,-0.784,0.425,0.453,-0.732,0.535,0.422,-0.668,0.636,0.386,-0.594,0.728,0.343,-0.51,0.808,0.295,-0.419,0.875,0.242,-0.321,0.929,0.185,-0.218,0.968,0.126 +,-0.111,0.992,0.064,0,1,0,0,1,0,-0.121,0.992,0.044,-0.236,0.968,0.086,-0.455,0.875,0.165,-0.348,0.929,0.127,-0.554,0.808,0.202,-0.644,0.728,0.235,-0.794,0.535,0.289,-0.725,0.636,0.264,-0.894,0.309,0.325,-0.851,0.425,0.31,-0.938,0.063,0.341,-0.923,0.187,0.336,-0.938,-0.063,0.341,-0.894,-0.309,0.325 +,-0.923,-0.187,0.336,-0.851,-0.425,0.31,-0.725,-0.636,0.264,-0.794,-0.535,0.289,-0.644,-0.728,0.235,-0.554,-0.808,0.202,-0.455,-0.875,0.165,-0.348,-0.929,0.127,-0.236,-0.968,0.086,0,-1,0,-0.121,-0.992,0.044,-0.121,-0.992,0.044,0,-1,0,-0.127,-0.992,0.022,-0.121,-0.992,0.044,-0.248,-0.968,0.044,-0.236,-0.968,0.086 +,-0.236,-0.968,0.086,-0.365,-0.929,0.064,-0.348,-0.929,0.127,-0.348,-0.929,0.127,-0.476,-0.875,0.084,-0.455,-0.875,0.165,-0.554,-0.808,0.202,-0.58,-0.808,0.102,-0.554,-0.808,0.202,-0.675,-0.728,0.119,-0.644,-0.728,0.235,-0.644,-0.728,0.235,-0.76,-0.636,0.134,-0.725,-0.636,0.264,-0.794,-0.535,0.289,-0.832,-0.535,0.147,-0.851,-0.425,0.31 +,-0.891,-0.425,0.157,-0.851,-0.425,0.31,-0.937,-0.309,0.165,-0.894,-0.309,0.325,-0.894,-0.309,0.325,-0.967,-0.187,0.171,-0.923,-0.187,0.336,-0.923,-0.187,0.336,-0.983,-0.063,0.173,-0.983,0.063,0.173,-0.923,0.187,0.336,-0.967,0.187,0.171,-0.923,0.187,0.336,-0.937,0.309,0.165,-0.894,0.309,0.325,-0.894,0.309,0.325,-0.891,0.425,0.157 +,-0.851,0.425,0.31,-0.851,0.425,0.31,-0.832,0.535,0.147,-0.794,0.535,0.289,-0.725,0.636,0.264,-0.76,0.636,0.134,-0.725,0.636,0.264,-0.675,0.728,0.119,-0.644,0.728,0.235,-0.644,0.728,0.235,-0.58,0.808,0.102,-0.554,0.808,0.202,-0.554,0.808,0.202,-0.476,0.875,0.084,-0.455,0.875,0.165,-0.455,0.875,0.165,-0.365,0.929,0.064 +,-0.348,0.929,0.127,-0.348,0.929,0.127,-0.248,0.968,0.044,-0.236,0.968,0.086,-0.236,0.968,0.086,-0.127,0.992,0.022,-0.121,0.992,0.044,0,1,0,-0.121,0.992,0.044,0,1,0,-0.129,0.992,0,-0.251,0.968,0,-0.37,0.929,0,-0.589,0.808,0,-0.484,0.875,0,-0.686,0.728,0,-0.771,0.636,0 +,-0.845,0.535,0,-0.905,0.425,0,-0.982,0.187,0,-0.951,0.309,0,-0.998,0.063,0,-0.998,-0.063,0,-0.982,-0.187,0,-0.951,-0.309,0,-0.845,-0.535,0,-0.905,-0.425,0,-0.771,-0.636,0,-0.686,-0.728,0,-0.589,-0.808,0,-0.484,-0.875,0,-0.37,-0.929,0,-0.251,-0.968,0,0,-1,0 +,-0.129,-0.992,0,0,-1,0,-0.127,-0.992,-0.022,-0.248,-0.968,-0.044,-0.365,-0.929,-0.064,-0.476,-0.875,-0.084,-0.58,-0.808,-0.102,-0.675,-0.728,-0.119,-0.76,-0.636,-0.134,-0.832,-0.535,-0.147,-0.891,-0.425,-0.157,-0.937,-0.309,-0.165,-0.967,-0.187,-0.171,-0.983,-0.063,-0.173,-0.983,0.063,-0.173,-0.967,0.187,-0.171,-0.937,0.309,-0.165 +,-0.891,0.425,-0.157,-0.832,0.535,-0.147,-0.76,0.636,-0.134,-0.675,0.728,-0.119,-0.58,0.808,-0.102,-0.476,0.875,-0.084,-0.365,0.929,-0.064,-0.248,0.968,-0.044,-0.127,0.992,-0.022,0,1,0,0,1,0,-0.127,0.992,-0.022,-0.121,0.992,-0.044,-0.127,0.992,-0.022,-0.236,0.968,-0.086,-0.248,0.968,-0.044,-0.348,0.929,-0.127 +,-0.476,0.875,-0.084,-0.365,0.929,-0.064,-0.476,0.875,-0.084,-0.554,0.808,-0.202,-0.455,0.875,-0.165,-0.58,0.808,-0.102,-0.644,0.728,-0.235,-0.675,0.728,-0.119,-0.725,0.636,-0.264,-0.832,0.535,-0.147,-0.76,0.636,-0.134,-0.891,0.425,-0.157,-0.794,0.535,-0.289,-0.832,0.535,-0.147,-0.937,0.309,-0.165,-0.851,0.425,-0.31,-0.891,0.425,-0.157 +,-0.937,0.309,-0.165,-0.923,0.187,-0.336,-0.894,0.309,-0.325,-0.967,0.187,-0.171,-0.938,0.063,-0.341,-0.923,-0.187,-0.336,-0.938,-0.063,-0.341,-0.937,-0.309,-0.165,-0.967,-0.187,-0.171,-0.891,-0.425,-0.157,-0.894,-0.309,-0.325,-0.937,-0.309,-0.165,-0.832,-0.535,-0.147,-0.851,-0.425,-0.31,-0.891,-0.425,-0.157,-0.832,-0.535,-0.147,-0.725,-0.636,-0.264 +,-0.794,-0.535,-0.289,-0.76,-0.636,-0.134,-0.644,-0.728,-0.235,-0.675,-0.728,-0.119,-0.554,-0.808,-0.202,-0.476,-0.875,-0.084,-0.58,-0.808,-0.102,-0.365,-0.929,-0.064,-0.455,-0.875,-0.165,-0.476,-0.875,-0.084,-0.248,-0.968,-0.044,-0.348,-0.929,-0.127,-0.365,-0.929,-0.064,-0.248,-0.968,-0.044,-0.121,-0.992,-0.044,-0.236,-0.968,-0.086,-0.127,-0.992,-0.022 +,0,-1,0,0,-1,0,-0.111,-0.992,-0.064,-0.218,-0.968,-0.126,-0.321,-0.929,-0.185,-0.419,-0.875,-0.242,-0.51,-0.808,-0.295,-0.594,-0.728,-0.343,-0.668,-0.636,-0.386,-0.732,-0.535,-0.422,-0.784,-0.425,-0.453,-0.824,-0.309,-0.476,-0.851,-0.187,-0.491,-0.864,-0.063,-0.499,-0.864,0.063,-0.499,-0.851,0.187,-0.491,-0.824,0.309,-0.476 +,-0.784,0.425,-0.453,-0.732,0.535,-0.422,-0.668,0.636,-0.386,-0.594,0.728,-0.343,-0.51,0.808,-0.295,-0.419,0.875,-0.242,-0.321,0.929,-0.185,-0.218,0.968,-0.126,-0.111,0.992,-0.064,0,1,0,0,1,0,-0.098,0.992,-0.083,-0.193,0.968,-0.162,-0.371,0.875,-0.311,-0.284,0.929,-0.238,-0.451,0.808,-0.379,-0.591,0.636,-0.496 +,-0.525,0.728,-0.441,-0.647,0.535,-0.543,-0.729,0.309,-0.611,-0.693,0.425,-0.582,-0.765,0.063,-0.641,-0.752,0.187,-0.631,-0.752,-0.187,-0.631,-0.765,-0.063,-0.641,-0.693,-0.425,-0.582,-0.729,-0.309,-0.611,-0.647,-0.535,-0.543,-0.591,-0.636,-0.496,-0.525,-0.728,-0.441,-0.451,-0.808,-0.379,-0.371,-0.875,-0.311,-0.284,-0.929,-0.238,-0.193,-0.968,-0.162 +,0,-1,0,-0.098,-0.992,-0.083,-0.098,-0.992,-0.083,0,-1,0,-0.083,-0.992,-0.098,-0.098,-0.992,-0.083,-0.162,-0.968,-0.193,-0.193,-0.968,-0.162,-0.284,-0.929,-0.238,-0.238,-0.929,-0.284,-0.284,-0.929,-0.238,-0.311,-0.875,-0.371,-0.371,-0.875,-0.311,-0.371,-0.875,-0.311,-0.379,-0.808,-0.451,-0.451,-0.808,-0.379,-0.451,-0.808,-0.379 +,-0.441,-0.728,-0.525,-0.525,-0.728,-0.441,-0.525,-0.728,-0.441,-0.496,-0.636,-0.591,-0.591,-0.636,-0.496,-0.591,-0.636,-0.496,-0.543,-0.535,-0.647,-0.647,-0.535,-0.543,-0.647,-0.535,-0.543,-0.582,-0.425,-0.693,-0.693,-0.425,-0.582,-0.729,-0.309,-0.611,-0.611,-0.309,-0.729,-0.729,-0.309,-0.611,-0.631,-0.187,-0.752,-0.752,-0.187,-0.631,-0.752,-0.187,-0.631 +,-0.641,-0.063,-0.765,-0.641,0.063,-0.765,-0.752,0.187,-0.631,-0.631,0.187,-0.752,-0.729,0.309,-0.611,-0.611,0.309,-0.729,-0.693,0.425,-0.582,-0.582,0.425,-0.693,-0.693,0.425,-0.582,-0.543,0.535,-0.647,-0.647,0.535,-0.543,-0.647,0.535,-0.543,-0.496,0.636,-0.591,-0.591,0.636,-0.496,-0.525,0.728,-0.441,-0.441,0.728,-0.525,-0.525,0.728,-0.441 +,-0.379,0.808,-0.451,-0.451,0.808,-0.379,-0.371,0.875,-0.311,-0.311,0.875,-0.371,-0.371,0.875,-0.311,-0.238,0.929,-0.284,-0.284,0.929,-0.238,-0.193,0.968,-0.162,-0.162,0.968,-0.193,-0.098,0.992,-0.083,-0.083,0.992,-0.098,0,1,0,-0.098,0.992,-0.083,0,1,0,-0.064,0.992,-0.111,-0.126,0.968,-0.218,-0.185,0.929,-0.321 +,-0.242,0.875,-0.419,-0.295,0.808,-0.51,-0.343,0.728,-0.594,-0.386,0.636,-0.668,-0.422,0.535,-0.732,-0.476,0.309,-0.824,-0.453,0.425,-0.784,-0.491,0.187,-0.851,-0.499,0.063,-0.864,-0.491,-0.187,-0.851,-0.499,-0.063,-0.864,-0.453,-0.425,-0.784,-0.476,-0.309,-0.824,-0.386,-0.636,-0.668,-0.422,-0.535,-0.732,-0.295,-0.808,-0.51,-0.343,-0.728,-0.594 +,-0.242,-0.875,-0.419,-0.185,-0.929,-0.321,-0.126,-0.968,-0.218,0,-1,0,-0.064,-0.992,-0.111,0,-1,0,-0.044,-0.992,-0.121,-0.086,-0.968,-0.236,-0.127,-0.929,-0.348,-0.165,-0.875,-0.455,-0.202,-0.808,-0.554,-0.235,-0.728,-0.644,-0.264,-0.636,-0.725,-0.289,-0.535,-0.794,-0.31,-0.425,-0.851,-0.325,-0.309,-0.894,-0.336,-0.187,-0.923 +,-0.341,-0.063,-0.938,-0.341,0.063,-0.938,-0.336,0.187,-0.923,-0.325,0.309,-0.894,-0.31,0.425,-0.851,-0.289,0.535,-0.794,-0.264,0.636,-0.725,-0.235,0.728,-0.644,-0.202,0.808,-0.554,-0.165,0.875,-0.455,-0.127,0.929,-0.348,-0.086,0.968,-0.236,-0.044,0.992,-0.121,0,1,0,0,1,0,-0.044,0.992,-0.121,-0.022,0.992,-0.127 +,-0.044,0.992,-0.121,-0.044,0.968,-0.248,-0.086,0.968,-0.236,-0.064,0.929,-0.365,-0.165,0.875,-0.455,-0.127,0.929,-0.348,-0.165,0.875,-0.455,-0.102,0.808,-0.58,-0.084,0.875,-0.476,-0.202,0.808,-0.554,-0.119,0.728,-0.675,-0.235,0.728,-0.644,-0.134,0.636,-0.76,-0.264,0.636,-0.725,-0.147,0.535,-0.832,-0.31,0.425,-0.851,-0.289,0.535,-0.794 +,-0.325,0.309,-0.894,-0.157,0.425,-0.891,-0.31,0.425,-0.851,-0.325,0.309,-0.894,-0.171,0.187,-0.967,-0.165,0.309,-0.937,-0.336,0.187,-0.923,-0.173,0.063,-0.983,-0.336,-0.187,-0.923,-0.173,-0.063,-0.983,-0.336,-0.187,-0.923,-0.165,-0.309,-0.937,-0.171,-0.187,-0.967,-0.31,-0.425,-0.851,-0.325,-0.309,-0.894,-0.31,-0.425,-0.851,-0.147,-0.535,-0.832 +,-0.157,-0.425,-0.891,-0.264,-0.636,-0.725,-0.289,-0.535,-0.794,-0.264,-0.636,-0.725,-0.119,-0.728,-0.675,-0.134,-0.636,-0.76,-0.235,-0.728,-0.644,-0.102,-0.808,-0.58,-0.165,-0.875,-0.455,-0.202,-0.808,-0.554,-0.127,-0.929,-0.348,-0.084,-0.875,-0.476,-0.165,-0.875,-0.455,-0.086,-0.968,-0.236,-0.064,-0.929,-0.365,-0.127,-0.929,-0.348,-0.044,-0.992,-0.121 +,-0.044,-0.968,-0.248,-0.086,-0.968,-0.236,-0.044,-0.992,-0.121,0,-1,0,-0.022,-0.992,-0.127,0,-1,0,0,-0.992,-0.129,0,-0.968,-0.251,0,-0.929,-0.37,0,-0.875,-0.484,0,-0.808,-0.589,0,-0.728,-0.686,0,-0.636,-0.771,0,-0.535,-0.845,0,-0.425,-0.905,0,-0.309,-0.951,0,-0.187,-0.982 +,0,-0.063,-0.998,0,0.063,-0.998,0,0.187,-0.982,0,0.309,-0.951,0,0.425,-0.905,0,0.535,-0.845,0,0.636,-0.771,0,0.728,-0.686,0,0.808,-0.589,0,0.875,-0.484,0,0.929,-0.37,0,0.968,-0.251,0,0.992,-0.129,0,1,0,0,1,0,0.022,0.992,-0.127,0.044,0.968,-0.248 +,0.064,0.929,-0.365,0.084,0.875,-0.476,0.119,0.728,-0.675,0.102,0.808,-0.58,0.134,0.636,-0.76,0.147,0.535,-0.832,0.157,0.425,-0.891,0.165,0.309,-0.937,0.173,0.063,-0.983,0.171,0.187,-0.967,0.173,-0.063,-0.983,0.171,-0.187,-0.967,0.165,-0.309,-0.937,0.147,-0.535,-0.832,0.157,-0.425,-0.891,0.134,-0.636,-0.76,0.102,-0.808,-0.58 +,0.119,-0.728,-0.675,0.084,-0.875,-0.476,0.064,-0.929,-0.365,0.044,-0.968,-0.248,0.022,-0.992,-0.127,0,-1,0,0.022,-0.992,-0.127,0,-1,0,0.044,-0.992,-0.121,0.022,-0.992,-0.127,0.086,-0.968,-0.236,0.044,-0.968,-0.248,0.064,-0.929,-0.365,0.127,-0.929,-0.348,0.084,-0.875,-0.476,0.165,-0.875,-0.455,0.084,-0.875,-0.476 +,0.202,-0.808,-0.554,0.102,-0.808,-0.58,0.102,-0.808,-0.58,0.235,-0.728,-0.644,0.119,-0.728,-0.675,0.119,-0.728,-0.675,0.264,-0.636,-0.725,0.134,-0.636,-0.76,0.147,-0.535,-0.832,0.289,-0.535,-0.794,0.157,-0.425,-0.891,0.31,-0.425,-0.851,0.157,-0.425,-0.891,0.325,-0.309,-0.894,0.165,-0.309,-0.937,0.165,-0.309,-0.937,0.336,-0.187,-0.923 +,0.171,-0.187,-0.967,0.171,-0.187,-0.967,0.341,-0.063,-0.938,0.341,0.063,-0.938,0.171,0.187,-0.967,0.336,0.187,-0.923,0.165,0.309,-0.937,0.325,0.309,-0.894,0.157,0.425,-0.891,0.31,0.425,-0.851,0.157,0.425,-0.891,0.289,0.535,-0.794,0.147,0.535,-0.832,0.147,0.535,-0.832,0.264,0.636,-0.725,0.134,0.636,-0.76,0.134,0.636,-0.76 +,0.235,0.728,-0.644,0.119,0.728,-0.675,0.119,0.728,-0.675,0.202,0.808,-0.554,0.102,0.808,-0.58,0.102,0.808,-0.58,0.165,0.875,-0.455,0.084,0.875,-0.476,0.064,0.929,-0.365,0.127,0.929,-0.348,0.064,0.929,-0.365,0.086,0.968,-0.236,0.044,0.968,-0.248,0.044,0.968,-0.248,0.044,0.992,-0.121,0.022,0.992,-0.127,0,1,0 +,0.022,0.992,-0.127,0,1,0,0.064,0.992,-0.111,0.126,0.968,-0.218,0.185,0.929,-0.321,0.295,0.808,-0.51,0.242,0.875,-0.419,0.343,0.728,-0.594,0.386,0.636,-0.668,0.422,0.535,-0.732,0.453,0.425,-0.784,0.491,0.187,-0.851,0.476,0.309,-0.824,0.499,0.063,-0.864,0.499,-0.063,-0.864,0.476,-0.309,-0.824,0.491,-0.187,-0.851 +,0.453,-0.425,-0.784,0.422,-0.535,-0.732,0.386,-0.636,-0.668,0.343,-0.728,-0.594,0.242,-0.875,-0.419,0.295,-0.808,-0.51,0.185,-0.929,-0.321,0.126,-0.968,-0.218,0,-1,0,0.064,-0.992,-0.111,0,-1,0,0.083,-0.992,-0.098,0.162,-0.968,-0.193,0.238,-0.929,-0.284,0.311,-0.875,-0.371,0.379,-0.808,-0.451,0.441,-0.728,-0.525 +,0.496,-0.636,-0.591,0.543,-0.535,-0.647,0.582,-0.425,-0.693,0.611,-0.309,-0.729,0.631,-0.187,-0.752,0.641,-0.063,-0.765,0.641,0.063,-0.765,0.631,0.187,-0.752,0.611,0.309,-0.729,0.582,0.425,-0.693,0.543,0.535,-0.647,0.496,0.636,-0.591,0.441,0.728,-0.525,0.379,0.808,-0.451,0.311,0.875,-0.371,0.238,0.929,-0.284,0.162,0.968,-0.193 +,0.083,0.992,-0.098,0,1,0,0,1,0,0.083,0.992,-0.098,0.098,0.992,-0.083,0.083,0.992,-0.098,0.193,0.968,-0.162,0.162,0.968,-0.193,0.284,0.929,-0.238,0.238,0.929,-0.284,0.371,0.875,-0.311,0.379,0.808,-0.451,0.311,0.875,-0.371,0.441,0.728,-0.525,0.451,0.808,-0.379,0.379,0.808,-0.451,0.496,0.636,-0.591 +,0.525,0.728,-0.441,0.441,0.728,-0.525,0.496,0.636,-0.591,0.647,0.535,-0.543,0.591,0.636,-0.496,0.582,0.425,-0.693,0.543,0.535,-0.647,0.582,0.425,-0.693,0.729,0.309,-0.611,0.693,0.425,-0.582,0.631,0.187,-0.752,0.611,0.309,-0.729,0.752,0.187,-0.631,0.631,0.187,-0.752,0.765,0.063,-0.641,0.752,-0.187,-0.631,0.765,-0.063,-0.641 +,0.611,-0.309,-0.729,0.631,-0.187,-0.752,0.582,-0.425,-0.693,0.729,-0.309,-0.611,0.611,-0.309,-0.729,0.582,-0.425,-0.693,0.647,-0.535,-0.543,0.693,-0.425,-0.582,0.496,-0.636,-0.591,0.543,-0.535,-0.647,0.496,-0.636,-0.591,0.525,-0.728,-0.441,0.591,-0.636,-0.496,0.379,-0.808,-0.451,0.441,-0.728,-0.525,0.379,-0.808,-0.451,0.371,-0.875,-0.311 +,0.451,-0.808,-0.379,0.238,-0.929,-0.284,0.311,-0.875,-0.371,0.238,-0.929,-0.284,0.193,-0.968,-0.162,0.284,-0.929,-0.238,0.083,-0.992,-0.098,0.162,-0.968,-0.193,0.083,-0.992,-0.098,0,-1,0,0.098,-0.992,-0.083,0,-1,0,0.111,-0.992,-0.064,0.218,-0.968,-0.126,0.321,-0.929,-0.185,0.419,-0.875,-0.242,0.51,-0.808,-0.295 +,0.594,-0.728,-0.343,0.668,-0.636,-0.386,0.732,-0.535,-0.422,0.784,-0.425,-0.453,0.824,-0.309,-0.476,0.851,-0.187,-0.491,0.864,-0.063,-0.499,0.864,0.063,-0.499,0.851,0.187,-0.491,0.824,0.309,-0.476,0.784,0.425,-0.453,0.732,0.535,-0.422,0.668,0.636,-0.386,0.594,0.728,-0.343,0.51,0.808,-0.295,0.419,0.875,-0.242,0.321,0.929,-0.185 +,0.218,0.968,-0.126,0.111,0.992,-0.064,0,1,0,0,1,0,0.121,0.992,-0.044,0.236,0.968,-0.086,0.348,0.929,-0.127,0.554,0.808,-0.202,0.455,0.875,-0.165,0.644,0.728,-0.235,0.794,0.535,-0.289,0.725,0.636,-0.264,0.894,0.309,-0.325,0.851,0.425,-0.31,0.923,0.187,-0.336,0.938,0.063,-0.341,0.938,-0.063,-0.341 +,0.894,-0.309,-0.325,0.923,-0.187,-0.336,0.794,-0.535,-0.289,0.851,-0.425,-0.31,0.725,-0.636,-0.264,0.554,-0.808,-0.202,0.644,-0.728,-0.235,0.455,-0.875,-0.165,0.348,-0.929,-0.127,0.236,-0.968,-0.086,0,-1,0,0.121,-0.992,-0.044,0.121,-0.992,-0.044,0.127,-0.992,-0.022,0.236,-0.968,-0.086,0.248,-0.968,-0.044,0.348,-0.929,-0.127 +,0.365,-0.929,-0.064,0.348,-0.929,-0.127,0.476,-0.875,-0.084,0.455,-0.875,-0.165,0.455,-0.875,-0.165,0.58,-0.808,-0.102,0.554,-0.808,-0.202,0.644,-0.728,-0.235,0.675,-0.728,-0.119,0.644,-0.728,-0.235,0.76,-0.636,-0.134,0.725,-0.636,-0.264,0.794,-0.535,-0.289,0.832,-0.535,-0.147,0.851,-0.425,-0.31,0.891,-0.425,-0.157,0.851,-0.425,-0.31 +,0.937,-0.309,-0.165,0.894,-0.309,-0.325,0.923,-0.187,-0.336,0.967,-0.187,-0.171,0.923,-0.187,-0.336,0.983,-0.063,-0.173,0.938,-0.063,-0.341,0.938,-0.063,-0.341,0.983,0.063,-0.173,0.938,0.063,-0.341,0.923,0.187,-0.336,0.967,0.187,-0.171,0.894,0.309,-0.325,0.937,0.309,-0.165,0.851,0.425,-0.31,0.891,0.425,-0.157,0.851,0.425,-0.31 +,0.832,0.535,-0.147,0.794,0.535,-0.289,0.725,0.636,-0.264,0.76,0.636,-0.134,0.725,0.636,-0.264,0.675,0.728,-0.119,0.644,0.728,-0.235,0.644,0.728,-0.235,0.58,0.808,-0.102,0.554,0.808,-0.202,0.554,0.808,-0.202,0.476,0.875,-0.084,0.455,0.875,-0.165,0.348,0.929,-0.127,0.365,0.929,-0.064,0.236,0.968,-0.086,0.248,0.968,-0.044 +,0.121,0.992,-0.044,0.127,0.992,-0.022,0.121,0.992,-0.044,0.127,0.992,0.022,0.248,0.968,0.044,0.365,0.929,0.064,0.365,0.929,0.064,0.476,0.875,0.084,0.476,0.875,0.084,0.58,0.808,0.102,0.58,0.808,0.102,0.675,0.728,0.119,0.675,0.728,0.119,0.76,0.636,0.134,0.76,0.636,0.134,0.832,0.535,0.147,0.832,0.535,0.147 +,0.891,0.425,0.157,0.937,0.309,0.165,0.937,0.309,0.165,0.967,0.187,0.171,0.967,-0.187,0.171,0.937,-0.309,0.165,0.937,-0.309,0.165,0.891,-0.425,0.157,0.891,-0.425,0.157,0.832,-0.535,0.147,0.76,-0.636,0.134,0.675,-0.728,0.119,0.58,-0.808,0.102,0.58,-0.808,0.102,0.476,-0.875,0.084,0.365,-0.929,0.064,0.365,-0.929,0.064 +,0.248,-0.968,0.044,0.248,-0.968,0.044,0.127,-0.992,0.022,0.193,-0.968,0.162,0.098,-0.992,0.083,0.193,-0.968,0.162,0.284,-0.929,0.238,0.371,-0.875,0.311,0.451,-0.808,0.379,0.525,-0.728,0.441,0.591,-0.636,0.496,0.693,-0.425,0.582,0.647,-0.535,0.543,0.729,-0.309,0.611,0.693,-0.425,0.582,0.752,-0.187,0.631,0.729,-0.309,0.611 +,0.752,-0.187,0.631,0.752,0.187,0.631,0.752,0.187,0.631,0.729,0.309,0.611,0.647,0.535,0.543,0.693,0.425,0.582,0.591,0.636,0.496,0.647,0.535,0.543,0.525,0.728,0.441,0.591,0.636,0.496,0.451,0.808,0.379,0.525,0.728,0.441,0.451,0.808,0.379,0.371,0.875,0.311,0.193,0.968,0.162,0.284,0.929,0.238,0.098,0.992,0.083 +,0.193,0.968,0.162,0.086,0.968,0.236,0.127,0.929,0.348,0.127,0.929,0.348,0.165,0.875,0.455,0.165,0.875,0.455,0.202,0.808,0.554,0.202,0.808,0.554,0.235,0.728,0.644,0.235,0.728,0.644,0.264,0.636,0.725,0.264,0.636,0.725,0.289,0.535,0.794,0.31,0.425,0.851,0.31,0.425,0.851,0.325,0.309,0.894,0.336,0.187,0.923 +,0.336,0.187,0.923,0.336,-0.187,0.923,0.325,-0.309,0.894,0.31,-0.425,0.851,0.289,-0.535,0.794,0.289,-0.535,0.794,0.264,-0.636,0.725,0.264,-0.636,0.725,0.235,-0.728,0.644,0.202,-0.808,0.554,0.165,-0.875,0.455,0.127,-0.929,0.348,0.086,-0.968,0.236,0.044,-0.992,0.121,-0.044,-0.968,0.248,-0.022,-0.992,0.127,-0.064,-0.929,0.365 +,-0.044,-0.968,0.248,-0.084,-0.875,0.476,-0.064,-0.929,0.365,-0.102,-0.808,0.58,-0.084,-0.875,0.476,-0.119,-0.728,0.675,-0.102,-0.808,0.58,-0.119,-0.728,0.675,-0.147,-0.535,0.832,-0.134,-0.636,0.76,-0.147,-0.535,0.832,-0.157,-0.425,0.891,-0.171,-0.187,0.967,-0.165,-0.309,0.937,-0.171,-0.187,0.967,-0.171,0.187,0.967,-0.165,0.309,0.937 +,-0.147,0.535,0.832,-0.157,0.425,0.891,-0.147,0.535,0.832,-0.134,0.636,0.76,-0.119,0.728,0.675,-0.102,0.808,0.58,-0.084,0.875,0.476,-0.044,0.968,0.248,-0.064,0.929,0.365,-0.022,0.992,0.127,-0.044,0.968,0.248,-0.083,0.992,0.098,-0.162,0.968,0.193,-0.162,0.968,0.193,-0.238,0.929,0.284,-0.238,0.929,0.284,-0.311,0.875,0.371 +,-0.311,0.875,0.371,-0.379,0.808,0.451,-0.379,0.808,0.451,-0.441,0.728,0.525,-0.496,0.636,0.591,-0.496,0.636,0.591,-0.543,0.535,0.647,-0.582,0.425,0.693,-0.611,0.309,0.729,-0.631,0.187,0.752,-0.631,-0.187,0.752,-0.611,-0.309,0.729,-0.611,-0.309,0.729,-0.582,-0.425,0.693,-0.543,-0.535,0.647,-0.543,-0.535,0.647,-0.496,-0.636,0.591 +,-0.441,-0.728,0.525,-0.441,-0.728,0.525,-0.379,-0.808,0.451,-0.379,-0.808,0.451,-0.311,-0.875,0.371,-0.311,-0.875,0.371,-0.238,-0.929,0.284,-0.238,-0.929,0.284,-0.162,-0.968,0.193,-0.083,-0.992,0.098,-0.121,-0.992,0.044,-0.236,-0.968,0.086,-0.348,-0.929,0.127,-0.554,-0.808,0.202,-0.455,-0.875,0.165,-0.554,-0.808,0.202,-0.644,-0.728,0.235 +,-0.794,-0.535,0.289,-0.725,-0.636,0.264,-0.851,-0.425,0.31,-0.794,-0.535,0.289,-0.851,-0.425,0.31,-0.894,-0.309,0.325,-0.923,-0.187,0.336,-0.923,0.187,0.336,-0.923,0.187,0.336,-0.894,0.309,0.325,-0.851,0.425,0.31,-0.725,0.636,0.264,-0.794,0.535,0.289,-0.725,0.636,0.264,-0.644,0.728,0.235,-0.554,0.808,0.202,-0.455,0.875,0.165 +,-0.348,0.929,0.127,-0.236,0.968,0.086,-0.127,0.992,-0.022,-0.248,0.968,-0.044,-0.248,0.968,-0.044,-0.365,0.929,-0.064,-0.476,0.875,-0.084,-0.476,0.875,-0.084,-0.58,0.808,-0.102,-0.58,0.808,-0.102,-0.675,0.728,-0.119,-0.675,0.728,-0.119,-0.76,0.636,-0.134,-0.832,0.535,-0.147,-0.891,0.425,-0.157,-0.937,0.309,-0.165,-0.937,0.309,-0.165 +,-0.967,0.187,-0.171,-0.967,0.187,-0.171,-0.967,-0.187,-0.171,-0.937,-0.309,-0.165,-0.891,-0.425,-0.157,-0.832,-0.535,-0.147,-0.832,-0.535,-0.147,-0.76,-0.636,-0.134,-0.76,-0.636,-0.134,-0.675,-0.728,-0.119,-0.675,-0.728,-0.119,-0.58,-0.808,-0.102,-0.476,-0.875,-0.084,-0.365,-0.929,-0.064,-0.248,-0.968,-0.044,-0.248,-0.968,-0.044,-0.127,-0.992,-0.022 +,-0.098,-0.992,-0.083,-0.284,-0.929,-0.238,-0.193,-0.968,-0.162,-0.284,-0.929,-0.238,-0.371,-0.875,-0.311,-0.451,-0.808,-0.379,-0.525,-0.728,-0.441,-0.591,-0.636,-0.496,-0.647,-0.535,-0.543,-0.729,-0.309,-0.611,-0.693,-0.425,-0.582,-0.729,-0.309,-0.611,-0.752,-0.187,-0.631,-0.752,0.187,-0.631,-0.729,0.309,-0.611,-0.752,0.187,-0.631,-0.693,0.425,-0.582 +,-0.729,0.309,-0.611,-0.693,0.425,-0.582,-0.647,0.535,-0.543,-0.525,0.728,-0.441,-0.591,0.636,-0.496,-0.525,0.728,-0.441,-0.371,0.875,-0.311,-0.451,0.808,-0.379,-0.371,0.875,-0.311,-0.193,0.968,-0.162,-0.284,0.929,-0.238,-0.098,0.992,-0.083,-0.193,0.968,-0.162,-0.044,0.992,-0.121,-0.086,0.968,-0.236,-0.086,0.968,-0.236,-0.127,0.929,-0.348 +,-0.165,0.875,-0.455,-0.165,0.875,-0.455,-0.202,0.808,-0.554,-0.202,0.808,-0.554,-0.235,0.728,-0.644,-0.235,0.728,-0.644,-0.264,0.636,-0.725,-0.264,0.636,-0.725,-0.289,0.535,-0.794,-0.31,0.425,-0.851,-0.325,0.309,-0.894,-0.325,0.309,-0.894,-0.336,0.187,-0.923,-0.336,0.187,-0.923,-0.336,-0.187,-0.923,-0.336,-0.187,-0.923,-0.325,-0.309,-0.894 +,-0.31,-0.425,-0.851,-0.31,-0.425,-0.851,-0.289,-0.535,-0.794,-0.264,-0.636,-0.725,-0.264,-0.636,-0.725,-0.235,-0.728,-0.644,-0.235,-0.728,-0.644,-0.202,-0.808,-0.554,-0.165,-0.875,-0.455,-0.127,-0.929,-0.348,-0.086,-0.968,-0.236,-0.044,-0.992,-0.121,0.022,-0.992,-0.127,0.064,-0.929,-0.365,0.044,-0.968,-0.248,0.084,-0.875,-0.476,0.064,-0.929,-0.365 +,0.084,-0.875,-0.476,0.102,-0.808,-0.58,0.119,-0.728,-0.675,0.147,-0.535,-0.832,0.134,-0.636,-0.76,0.157,-0.425,-0.891,0.147,-0.535,-0.832,0.157,-0.425,-0.891,0.165,-0.309,-0.937,0.171,-0.187,-0.967,0.171,0.187,-0.967,0.165,0.309,-0.937,0.171,0.187,-0.967,0.157,0.425,-0.891,0.165,0.309,-0.937,0.157,0.425,-0.891,0.147,0.535,-0.832 +,0.134,0.636,-0.76,0.119,0.728,-0.675,0.102,0.808,-0.58,0.064,0.929,-0.365,0.084,0.875,-0.476,0.064,0.929,-0.365,0.044,0.968,-0.248,0.083,0.992,-0.098,0.162,0.968,-0.193,0.162,0.968,-0.193,0.238,0.929,-0.284,0.238,0.929,-0.284,0.311,0.875,-0.371,0.379,0.808,-0.451,0.441,0.728,-0.525,0.496,0.636,-0.591,0.496,0.636,-0.591 +,0.543,0.535,-0.647,0.582,0.425,-0.693,0.582,0.425,-0.693,0.611,0.309,-0.729,0.631,0.187,-0.752,0.631,-0.187,-0.752,0.611,-0.309,-0.729,0.582,-0.425,-0.693,0.582,-0.425,-0.693,0.543,-0.535,-0.647,0.496,-0.636,-0.591,0.496,-0.636,-0.591,0.441,-0.728,-0.525,0.379,-0.808,-0.451,0.379,-0.808,-0.451,0.311,-0.875,-0.371,0.238,-0.929,-0.284 +,0.238,-0.929,-0.284,0.162,-0.968,-0.193,0.083,-0.992,-0.098,0.236,-0.968,-0.086,0.121,-0.992,-0.044,0.348,-0.929,-0.127,0.236,-0.968,-0.086,0.348,-0.929,-0.127,0.455,-0.875,-0.165,0.644,-0.728,-0.235,0.554,-0.808,-0.202,0.644,-0.728,-0.235,0.794,-0.535,-0.289,0.725,-0.636,-0.264,0.851,-0.425,-0.31,0.794,-0.535,-0.289,0.851,-0.425,-0.31 +,0.923,-0.187,-0.336,0.894,-0.309,-0.325,0.923,-0.187,-0.336,0.938,-0.063,-0.341,0.923,0.187,-0.336,0.938,0.063,-0.341,0.894,0.309,-0.325,0.923,0.187,-0.336,0.851,0.425,-0.31,0.894,0.309,-0.325,0.851,0.425,-0.31,0.725,0.636,-0.264,0.794,0.535,-0.289,0.725,0.636,-0.264,0.644,0.728,-0.235,0.554,0.808,-0.202,0.348,0.929,-0.127 +,0.455,0.875,-0.165,0.236,0.968,-0.086,0.348,0.929,-0.127,0.121,0.992,-0.044,0.236,0.968,-0.086] +,"uvs":[-3.167,-1.494,-3.126,-1.341,-3.155,-1.336,-3.141,-1.172,-3.127,-1.009,-3.085,-1.184,-3.047,-1.027,-3.115,-0.846,-3.01,-0.867,-3.103,-0.684,-2.975,-0.707,-3.093,-0.523,-2.94,-0.546,-3.084,-0.362,-2.912,-0.386,-3.076,-0.202,-2.889,-0.226,-3.07,-0.043,-2.867,-0.064,-3.065,0.115,-2.851,0.096,-3.062,0.272,-2.84,0.259,-2.834,0.421,-3.06,0.43 +,-2.834,0.583,-3.06,0.587,-2.84,0.745,-3.061,0.744,-2.854,0.907,-3.064,0.901,-2.869,1.069,-3.068,1.059,-2.889,1.228,-3.074,1.217,-2.914,1.389,-3.081,1.376,-2.941,1.548,-3.09,1.535,-2.974,1.707,-3.101,1.694,-3.008,1.866,-3.112,1.854,-3.046,2.023,-3.125,2.014,-3.085,2.18,-3.138,2.175,-3.126,2.337,-3.152,2.336,-3.166,2.498 +,-2.5,2.498,-2.539,2.337,-2.511,2.329,-2.539,2.337,-2.525,2.168,-2.619,2.024,-2.58,2.18,-2.619,2.024,-2.55,1.845,-2.537,2.006,-2.657,1.866,-2.561,1.685,-2.692,1.708,-2.571,1.525,-2.724,1.549,-2.58,1.366,-2.752,1.389,-2.588,1.207,-2.777,1.229,-2.595,1.048,-2.815,0.907,-2.801,1.067,-2.815,0.907,-2.603,0.732,-2.6,0.89 +,-2.827,0.745,-2.605,0.574,-2.605,0.259,-2.606,0.417,-2.816,0.097,-2.827,0.26,-2.816,0.097,-2.597,-0.057,-2.602,0.101,-2.801,-0.064,-2.591,-0.216,-2.754,-0.387,-2.779,-0.225,-2.726,-0.549,-2.583,-0.375,-2.754,-0.387,-2.693,-0.707,-2.574,-0.535,-2.726,-0.549,-2.693,-0.707,-2.551,-0.855,-2.563,-0.695,-2.62,-1.025,-2.657,-0.867,-2.62,-1.025 +,-2.524,-1.177,-2.538,-1.016,-2.58,-1.185,-2.51,-1.339,-2.538,-1.344,-2.5,-1.497,-2.5,-1.497,-2.482,-1.339,-2.468,-1.177,-2.456,-1.016,-2.443,-0.855,-2.432,-0.695,-2.422,-0.535,-2.413,-0.375,-2.405,-0.216,-2.398,-0.058,-2.393,0.1,-2.39,0.258,-2.388,0.416,-2.387,0.573,-2.388,0.731,-2.391,0.889,-2.396,1.048,-2.402,1.206,-2.41,1.365 +,-2.419,1.525,-2.43,1.685,-2.442,1.846,-2.455,2.006,-2.469,2.168,-2.483,2.329,-2.5,2.498,-2.5,2.498,-2.459,2.334,-2.418,2.176,-2.379,2.02,-2.342,1.862,-2.307,1.703,-2.273,1.543,-2.221,1.223,-2.246,1.385,-2.184,0.901,-2.201,1.063,-2.174,0.739,-2.163,0.576,-2.163,0.414,-2.174,0.252,-2.186,0.09,-2.221,-0.232,-2.201,-0.07 +,-2.246,-0.392,-2.309,-0.713,-2.275,-0.552,-2.344,-0.871,-2.381,-1.029,-2.42,-1.187,-2.5,-1.497,-2.461,-1.343,-1.871,-1.343,-1.833,-1.496,-1.845,-1.339,-1.912,-1.187,-1.86,-1.177,-1.912,-1.187,-1.873,-1.016,-1.951,-1.029,-1.951,-1.029,-1.886,-0.855,-1.988,-0.871,-1.988,-0.871,-1.898,-0.695,-2.023,-0.713,-2.023,-0.713,-1.908,-0.535,-2.057,-0.552 +,-2.057,-0.552,-1.917,-0.375,-2.086,-0.392,-2.086,-0.392,-1.925,-0.216,-2.107,-0.232,-2.131,-0.07,-1.931,-0.057,-2.146,0.09,-1.935,0.101,-2.156,0.252,-1.938,0.259,-2.156,0.252,-1.939,0.417,-1.938,0.575,-2.158,0.739,-1.936,0.732,-2.158,0.739,-1.933,0.89,-2.146,0.901,-2.146,0.901,-1.927,1.048,-2.131,1.061,-2.109,1.225,-1.92,1.207 +,-2.086,1.383,-1.912,1.366,-2.057,1.543,-1.903,1.525,-2.023,1.703,-1.892,1.685,-2.023,1.703,-1.881,1.845,-1.99,1.862,-1.99,1.862,-1.869,2.006,-1.953,2.02,-1.914,2.178,-1.856,2.168,-1.873,2.334,-1.842,2.329,-1.834,2.498,-1.873,2.334,-1.834,2.498,-1.814,2.329,-1.786,2.006,-1.8,2.168,-1.773,1.846,-1.761,1.685,-1.751,1.525 +,-1.734,1.206,-1.742,1.365,-1.728,1.048,-1.721,0.731,-1.724,0.889,-1.72,0.573,-1.721,0.416,-1.727,0.1,-1.723,0.258,-1.732,-0.058,-1.747,-0.375,-1.739,-0.216,-1.756,-0.535,-1.767,-0.695,-1.791,-1.016,-1.778,-0.855,-1.804,-1.177,-1.833,-1.496,-1.817,-1.339,-1.833,-1.496,-1.795,-1.343,-1.754,-1.187,-1.713,-1.029,-1.676,-0.871,-1.643,-0.713 +,-1.609,-0.554,-1.58,-0.394,-1.555,-0.234,-1.535,-0.072,-1.52,0.09,-1.508,0.252,-1.5,0.414,-1.498,0.576,-1.508,0.739,-1.518,0.901,-1.533,1.063,-1.555,1.225,-1.58,1.385,-1.607,1.543,-1.641,1.703,-1.676,1.862,-1.713,2.02,-1.752,2.178,-1.793,2.334,-1.834,2.498,-1.166,2.498,-1.205,2.334,-1.181,2.329,-1.246,2.176,-1.205,2.334 +,-1.285,2.02,-1.194,2.168,-1.246,2.176,-1.285,2.02,-1.219,1.846,-1.207,2.007,-1.324,1.862,-1.231,1.685,-1.359,1.703,-1.241,1.526,-1.391,1.545,-1.25,1.366,-1.42,1.385,-1.258,1.207,-1.467,1.063,-1.445,1.225,-1.467,1.063,-1.27,0.891,-1.265,1.049,-1.49,0.739,-1.482,0.901,-1.49,0.739,-1.275,0.575,-1.273,0.733,-1.49,0.252 +,-1.276,0.417,-1.48,0.09,-1.274,0.26,-1.49,0.252,-1.465,-0.07,-1.272,0.102,-1.48,0.09,-1.443,-0.234,-1.267,-0.057,-1.465,-0.07,-1.443,-0.234,-1.253,-0.375,-1.261,-0.215,-1.418,-0.394,-1.244,-0.534,-1.355,-0.715,-1.391,-0.554,-1.324,-0.871,-1.233,-0.694,-1.355,-0.715,-1.285,-1.029,-1.221,-0.855,-1.324,-0.871,-1.244,-1.187,-1.208,-1.016 +,-1.285,-1.029,-1.205,-1.343,-1.195,-1.177,-1.244,-1.187,-1.205,-1.343,-1.167,-1.496,-1.18,-1.339,-1.167,-1.496,-1.152,-1.338,-1.139,-1.177,-1.126,-1.016,-1.114,-0.855,-1.102,-0.694,-1.092,-0.534,-1.083,-0.375,-1.075,-0.216,-1.068,-0.057,-1.063,0.101,-1.059,0.259,-1.057,0.416,-1.057,0.574,-1.058,0.732,-1.061,0.89,-1.066,1.048,-1.072,1.207 +,-1.08,1.366,-1.089,1.525,-1.1,1.685,-1.111,1.846,-1.124,2.007,-1.138,2.168,-1.153,2.329,-1.166,2.498,-1.166,2.498,-1.125,2.334,-1.086,2.178,-1.047,2.02,-0.975,1.703,-1.01,1.862,-0.941,1.545,-0.914,1.385,-0.889,1.225,-0.869,1.063,-0.854,0.903,-0.842,0.741,-0.833,0.578,-0.833,0.412,-0.842,0.252,-0.854,0.09,-0.869,-0.072 +,-0.914,-0.394,-0.889,-0.232,-0.943,-0.552,-0.977,-0.713,-1.049,-1.029,-1.012,-0.871,-1.088,-1.185,-1.167,-1.496,-1.129,-1.343,-0.537,-1.343,-0.5,-1.497,-0.514,-1.339,-0.578,-1.187,-0.528,-1.177,-0.617,-1.029,-0.542,-1.016,-0.654,-0.871,-0.554,-0.855,-0.689,-0.713,-0.566,-0.695,-0.723,-0.552,-0.577,-0.534,-0.723,-0.552,-0.586,-0.375,-0.75,-0.394 +,-0.777,-0.232,-0.593,-0.216,-0.777,-0.232,-0.599,-0.057,-0.799,-0.072,-0.799,-0.072,-0.604,0.101,-0.812,0.09,-0.824,0.252,-0.606,0.259,-0.824,0.252,-0.607,0.417,-0.607,0.575,-0.605,0.732,-0.824,0.741,-0.824,0.741,-0.601,0.89,-0.812,0.903,-0.812,0.903,-0.596,1.048,-0.796,1.063,-0.775,1.225,-0.589,1.207,-0.775,1.225,-0.581,1.366 +,-0.752,1.384,-0.752,1.384,-0.571,1.525,-0.723,1.545,-0.723,1.545,-0.561,1.685,-0.691,1.703,-0.691,1.703,-0.549,1.845,-0.656,1.862,-0.656,1.862,-0.537,2.006,-0.619,2.019,-0.578,2.18,-0.524,2.168,-0.539,2.334,-0.51,2.329,-0.5,2.498,-0.539,2.334,-0.5,2.498,-0.482,2.329,-0.454,2.006,-0.468,2.168,-0.442,1.846,-0.43,1.685 +,-0.419,1.525,-0.41,1.365,-0.397,1.048,-0.403,1.206,-0.392,0.889,-0.39,0.731,-0.389,0.573,-0.391,0.258,-0.389,0.416,-0.395,0.1,-0.4,-0.058,-0.415,-0.375,-0.407,-0.216,-0.425,-0.535,-0.435,-0.695,-0.447,-0.855,-0.459,-1.016,-0.472,-1.177,-0.5,-1.497,-0.486,-1.339,-0.5,-1.497,-0.461,-1.343,-0.42,-1.187,-0.381,-1.029,-0.344,-0.871 +,-0.309,-0.713,-0.277,-0.554,-0.248,-0.394,-0.223,-0.234,-0.201,-0.072,-0.186,0.09,-0.174,0.252,-0.166,0.414,-0.166,0.576,-0.174,0.739,-0.186,0.901,-0.201,1.063,-0.221,1.225,-0.246,1.385,-0.275,1.545,-0.307,1.703,-0.342,1.862,-0.379,2.02,-0.418,2.178,-0.459,2.334,-0.5,2.498,0.166,2.498,0.127,2.334,0.159,2.329,0.127,2.334 +,0.146,2.168,0.088,2.178,0.133,2.006,0.049,2.02,0.121,1.846,0.012,1.862,0.109,1.685,-0.023,1.703,0.099,1.525,-0.084,1.385,-0.055,1.545,-0.084,1.385,0.081,1.207,0.089,1.366,-0.131,1.063,-0.109,1.225,-0.146,0.901,0.074,1.049,-0.131,1.063,-0.156,0.739,0.069,0.89,-0.146,0.901,0.065,0.733,-0.156,0.739,0.063,0.575 +,-0.156,0.252,0.063,0.417,-0.146,0.09,0.064,0.259,-0.156,0.252,-0.146,0.09,0.071,-0.057,0.067,0.101,-0.109,-0.234,-0.131,-0.072,-0.109,-0.234,0.084,-0.375,0.077,-0.216,-0.055,-0.554,-0.084,-0.392,-0.055,-0.554,0.104,-0.694,0.093,-0.534,-0.023,-0.713,0.115,-0.855,0.012,-0.871,0.128,-1.016,0.049,-1.029,0.142,-1.177,0.129,-1.343 +,0.088,-1.187,0.129,-1.343,0.167,-1.496,0.156,-1.339,0.167,-1.496,0.184,-1.339,0.198,-1.177,0.211,-1.016,0.223,-0.855,0.235,-0.695,0.245,-0.535,0.255,-0.375,0.263,-0.216,0.27,-0.058,0.275,0.1,0.279,0.258,0.281,0.416,0.282,0.574,0.28,0.731,0.278,0.889,0.273,1.048,0.267,1.206,0.26,1.365,0.251,1.525,0.24,1.685 +,0.228,1.846,0.216,2.007,0.202,2.168,0.188,2.329,0.166,2.498,0.166,2.498,0.207,2.334,0.248,2.178,0.324,1.862,0.287,2.02,0.359,1.703,0.393,1.543,0.445,1.225,0.42,1.385,0.48,0.901,0.465,1.063,0.5,0.576,0.492,0.739,0.5,0.414,0.48,0.09,0.492,0.252,0.465,-0.072,0.418,-0.394,0.443,-0.234,0.389,-0.554 +,0.357,-0.713,0.322,-0.871,0.285,-1.029,0.244,-1.187,0.167,-1.496,0.205,-1.343,0.793,-1.343,0.833,-1.496,0.819,-1.339,0.793,-1.343,0.805,-1.177,0.756,-1.187,0.756,-1.187,0.791,-1.016,0.717,-1.029,0.717,-1.029,0.778,-0.855,0.68,-0.871,0.645,-0.713,0.767,-0.694,0.645,-0.713,0.756,-0.534,0.611,-0.554,0.611,-0.554,0.747,-0.375 +,0.582,-0.394,0.559,-0.234,0.739,-0.216,0.537,-0.072,0.733,-0.057,0.537,-0.072,0.729,0.101,0.52,0.09,0.52,0.09,0.726,0.259,0.51,0.252,0.51,0.252,0.725,0.417,0.725,0.575,0.51,0.739,0.728,0.733,0.51,0.739,0.731,0.89,0.52,0.901,0.52,0.901,0.736,1.049,0.535,1.063,0.535,1.063,0.743,1.207,0.555,1.225 +,0.58,1.385,0.751,1.366,0.58,1.385,0.76,1.525,0.609,1.544,0.609,1.544,0.771,1.685,0.641,1.703,0.641,1.703,0.782,1.846,0.676,1.862,0.676,1.862,0.795,2.007,0.713,2.02,0.713,2.02,0.808,2.168,0.752,2.178,0.752,2.178,0.821,2.329,0.792,2.334,0.833,2.498,0.792,2.334,0.833,2.498,0.849,2.329,0.864,2.168 +,0.877,2.007,0.902,1.685,0.89,1.846,0.913,1.525,0.922,1.366,0.929,1.206,0.935,1.048,0.943,0.732,0.94,0.889,0.944,0.574,0.943,0.416,0.941,0.258,0.937,0.1,0.925,-0.216,0.932,-0.058,0.917,-0.375,0.908,-0.534,0.898,-0.694,0.886,-0.855,0.874,-1.016,0.861,-1.177,0.833,-1.496,0.847,-1.339,0.833,-1.496,0.873,-1.343 +,0.913,-1.186,0.952,-1.029,0.991,-0.871,1.025,-0.713,1.059,-0.553,1.088,-0.393,1.112,-0.232,1.133,-0.073,1.148,0.09,1.159,0.252,1.167,0.415,1.168,0.576,1.159,0.739,1.149,0.901,1.133,1.063,1.112,1.225,1.088,1.384,1.06,1.544,1.027,1.703,0.992,1.862,0.954,2.02,0.915,2.177,0.875,2.334,0.833,2.498,1.5,2.498 +,1.459,2.334,1.488,2.329,1.459,2.334,1.474,2.168,1.419,2.177,1.461,2.007,1.342,1.862,1.379,2.02,1.342,1.862,1.437,1.686,1.449,1.846,1.307,1.704,1.427,1.526,1.274,1.544,1.418,1.366,1.222,1.225,1.246,1.385,1.202,1.064,1.41,1.207,1.222,1.225,1.187,0.901,1.403,1.049,1.202,1.064,1.187,0.901,1.394,0.733 +,1.398,0.891,1.177,0.739,1.392,0.575,1.393,0.26,1.392,0.417,1.186,0.09,1.175,0.252,1.202,-0.07,1.396,0.102,1.186,0.09,1.222,-0.232,1.4,-0.057,1.202,-0.07,1.222,-0.232,1.414,-0.374,1.406,-0.215,1.247,-0.393,1.423,-0.534,1.276,-0.553,1.433,-0.694,1.344,-0.871,1.309,-0.713,1.382,-1.029,1.445,-0.855,1.344,-0.871 +,1.421,-1.186,1.458,-1.016,1.382,-1.029,1.421,-1.186,1.486,-1.338,1.472,-1.177,1.46,-1.343,1.5,-1.496,1.5,-1.496,1.515,-1.338,1.528,-1.177,1.541,-1.015,1.553,-0.855,1.565,-0.694,1.575,-0.534,1.584,-0.375,1.592,-0.216,1.599,-0.057,1.604,0.101,1.608,0.259,1.61,0.416,1.61,0.574,1.609,0.732,1.606,0.89,1.602,1.048 +,1.596,1.207,1.588,1.366,1.579,1.525,1.568,1.686,1.557,1.846,1.544,2.007,1.53,2.168,1.516,2.33,1.5,2.498,1.5,2.498,1.542,2.334,1.582,2.178,1.658,1.863,1.621,2.021,1.693,1.703,1.755,1.384,1.726,1.544,1.779,1.224,1.815,0.901,1.8,1.063,1.833,0.576,1.826,0.739,1.825,0.251,1.833,0.413,1.799,-0.072 +,1.814,0.089,1.778,-0.233,1.754,-0.393,1.725,-0.553,1.692,-0.712,1.657,-0.871,1.62,-1.028,1.58,-1.186,1.5,-1.496,1.54,-1.343,2.129,-1.344,2.167,-1.496,2.156,-1.339,2.129,-1.344,2.142,-1.177,2.088,-1.186,2.048,-1.029,2.128,-1.016,2.048,-1.029,2.115,-0.855,2.011,-0.872,2.011,-0.872,2.103,-0.695,1.975,-0.713,1.975,-0.713 +,2.092,-0.534,1.942,-0.553,1.942,-0.553,2.083,-0.375,1.913,-0.393,1.913,-0.393,2.075,-0.216,1.889,-0.233,1.889,-0.233,2.069,-0.057,1.867,-0.072,1.852,0.089,2.064,0.101,1.852,0.089,2.061,0.259,1.841,0.252,1.841,0.252,2.06,0.417,2.061,0.575,1.841,0.739,2.062,0.732,1.851,0.901,2.066,0.89,1.867,1.063,2.071,1.048 +,1.867,1.063,2.078,1.207,1.888,1.224,1.888,1.224,2.085,1.366,1.913,1.384,1.941,1.544,2.095,1.525,1.941,1.544,2.105,1.685,1.974,1.703,2.009,1.862,2.116,1.846,2.009,1.862,2.128,2.006,2.046,2.02,2.086,2.177,2.141,2.168,2.125,2.334,2.154,2.329,2.166,2.498,2.125,2.334,2.166,2.498,2.183,2.329,2.197,2.168 +,2.211,2.007,2.224,1.846,2.236,1.685,2.247,1.525,2.256,1.366,2.264,1.206,2.275,0.89,2.27,1.048,2.278,0.732,2.279,0.574,2.276,0.258,2.278,0.416,2.268,-0.058,2.273,0.1,2.254,-0.375,2.261,-0.216,2.234,-0.694,2.244,-0.534,2.223,-0.855,2.211,-1.016,2.198,-1.177,2.167,-1.496,2.185,-1.339,2.167,-1.496,2.207,-1.343 +,2.247,-1.186,2.286,-1.029,2.325,-0.872,2.359,-0.713,2.392,-0.553,2.421,-0.393,2.445,-0.233,2.466,-0.072,2.481,0.089,2.493,0.252,2.5,0.414,2.5,0.576,2.493,0.739,2.482,0.901,2.467,1.062,2.446,1.223,2.422,1.384,2.393,1.544,2.36,1.703,2.325,1.863,2.288,2.02,2.249,2.177,2.209,2.334,2.166,2.498,2.833,2.498 +,2.792,2.334,2.819,2.329,2.792,2.334,2.806,2.168,2.751,2.177,2.793,2.006,2.676,1.863,2.711,2.02,2.676,1.863,2.769,1.685,2.781,1.846,2.641,1.703,2.759,1.525,2.608,1.544,2.75,1.366,2.579,1.384,2.742,1.207,2.534,1.063,2.554,1.224,2.519,0.902,2.735,1.048,2.534,1.063,2.519,0.902,2.726,0.732,2.73,0.89 +,2.508,0.739,2.724,0.575,2.508,0.252,2.723,0.417,2.508,0.252,2.727,0.101,2.725,0.259,2.534,-0.072,2.519,0.09,2.534,-0.072,2.738,-0.216,2.732,-0.057,2.58,-0.393,2.555,-0.232,2.58,-0.393,2.755,-0.534,2.746,-0.375,2.609,-0.553,2.765,-0.694,2.677,-0.872,2.642,-0.713,2.714,-1.029,2.777,-0.855,2.677,-0.872,2.753,-1.186 +,2.79,-1.016,2.714,-1.029,2.793,-1.343,2.804,-1.177,2.753,-1.186,2.793,-1.343,2.833,-1.494,2.818,-1.339,2.833,-1.494,2.846,-1.339,2.86,-1.177,2.873,-1.016,2.885,-0.855,2.896,-0.694,2.907,-0.535,2.916,-0.375,2.924,-0.216,2.931,-0.058,2.936,0.1,2.94,0.258,2.942,0.416,2.942,0.574,2.941,0.731,2.938,0.889,2.934,1.048 +,2.928,1.206,2.92,1.366,2.911,1.525,2.9,1.685,2.889,1.846,2.876,2.007,2.862,2.168,2.848,2.329,2.833,2.498,2.833,2.498,2.875,2.334,2.915,2.177,2.953,2.021,2.99,1.863,3.059,1.546,3.026,1.704,3.087,1.386,3.112,1.224,3.133,1.064,3.149,0.901,3.167,0.578,3.159,0.74,3.167,0.418,3.159,0.251,3.147,0.091 +,3.112,-0.232,3.133,-0.071,3.087,-0.392,3.024,-0.712,3.057,-0.552,2.99,-0.871,2.952,-1.029,2.913,-1.186,2.873,-1.343,2.833,-1.494,3.463,-1.345,3.5,-1.496,3.487,-1.338,3.463,-1.345,3.472,-1.176,3.423,-1.189,3.383,-1.031,3.459,-1.015,3.344,-0.871,3.446,-0.854,3.344,-0.871,3.434,-0.693,3.31,-0.714,3.31,-0.714,3.424,-0.532 +,3.276,-0.552,3.276,-0.552,3.414,-0.372,3.247,-0.392,3.223,-0.232,3.407,-0.213,3.202,-0.069,3.401,-0.054,3.202,-0.069,3.396,0.104,3.186,0.092,3.186,0.092,3.393,0.262,3.176,0.251,3.176,0.251,3.392,0.42,3.393,0.577,3.176,0.74,3.395,0.735,3.186,0.901,3.398,0.893,3.201,1.064,3.404,1.051,3.201,1.064,3.41,1.209 +,3.221,1.224,3.221,1.224,3.418,1.368,3.248,1.386,3.248,1.386,3.427,1.527,3.276,1.546,3.276,1.546,3.438,1.687,3.309,1.706,3.309,1.706,3.449,1.847,3.344,1.863,3.381,2.021,3.461,2.008,3.381,2.021,3.474,2.169,3.419,2.178,3.419,2.178,3.487,2.33,3.46,2.335,3.5,2.498,3.46,2.335,3.5,2.498,3.516,2.33 +,3.53,2.169,3.544,2.008,3.569,1.687,3.557,1.847,3.579,1.527,3.588,1.367,3.596,1.209,3.602,1.05,3.61,0.734,3.607,0.892,3.611,0.576,3.61,0.419,3.605,0.103,3.608,0.261,3.6,-0.055,3.593,-0.213,3.585,-0.373,3.576,-0.532,3.554,-0.853,3.565,-0.693,3.542,-1.015,3.529,-1.176,3.5,-1.496,3.515,-1.338,3.5,-1.496 +,3.539,-1.346,3.58,-1.188,3.619,-1.029,3.656,-0.871,3.691,-0.714,3.724,-0.552,3.753,-0.392,3.779,-0.232,3.799,-0.069,3.816,0.092,3.826,0.254,3.835,0.416,3.833,0.578,3.826,0.74,3.816,0.901,3.799,1.064,3.779,1.224,3.755,1.386,3.725,1.546,3.693,1.704,3.659,1.863,3.621,2.021,3.581,2.178,3.541,2.335,3.5,2.498 +,4.166,2.498,4.128,2.335,4.156,2.33,4.128,2.335,4.143,2.168,4.088,2.178,4.129,2.006,4.048,2.021,4.117,1.846,3.976,1.704,4.011,1.863,3.943,1.545,4.105,1.686,3.976,1.704,3.916,1.385,4.096,1.526,3.943,1.545,3.916,1.385,4.078,1.207,4.086,1.366,3.869,1.064,3.89,1.224,3.869,1.064,4.066,0.891,4.072,1.049 +,3.844,0.741,3.854,0.903,4.062,0.733,3.844,0.741,4.061,0.575,4.061,0.26,4.061,0.418,3.854,0.092,3.844,0.254,3.87,-0.071,4.064,0.102,3.854,0.092,3.87,-0.071,4.074,-0.215,4.068,-0.056,3.916,-0.392,3.891,-0.232,3.916,-0.392,4.092,-0.535,4.082,-0.375,3.977,-0.712,3.944,-0.552,3.977,-0.712,4.113,-0.855,4.102,-0.693 +,4.048,-1.029,4.013,-0.871,4.048,-1.029,4.139,-1.177,4.127,-1.015,4.128,-1.343,4.088,-1.188,4.128,-1.343,4.167,-1.497,4.152,-1.338,4.167,-1.497,4.182,-1.338,4.195,-1.177,4.209,-1.015,4.223,-0.855,4.232,-0.693,4.244,-0.535,4.254,-0.375,4.262,-0.217,4.268,-0.056,4.273,0.102,4.275,0.258,4.279,0.416,4.279,0.575,4.277,0.733 +,4.275,0.891,4.27,1.049,4.264,1.207,4.256,1.366,4.248,1.526,4.236,1.686,4.225,1.846,4.211,2.006,4.197,2.168,4.184,2.33,4.166,2.498,4.166,2.498,4.207,2.336,4.246,2.18,4.285,2.024,4.357,1.707,4.322,1.866,4.391,1.549,4.443,1.229,4.42,1.389,4.479,0.907,4.465,1.069,4.492,0.746,4.496,0.584,4.498,0.422 +,4.482,0.098,4.492,0.26,4.445,-0.226,4.467,-0.064,4.422,-0.386,4.359,-0.709,4.391,-0.547,4.324,-0.867,4.285,-1.027,4.248,-1.183,4.167,-1.497,4.207,-1.343,-3.206,-1.341,-3.183,-1.336,-3.244,-1.183,-3.197,-1.172,-3.285,-1.025,-3.211,-1.009,-3.285,-1.025,-3.224,-0.846,-3.324,-0.867,-3.324,-0.867,-3.236,-0.684,-3.359,-0.707,-3.391,-0.547 +,-3.246,-0.522,-3.391,-0.547,-3.256,-0.362,-3.422,-0.386,-3.445,-0.224,-3.263,-0.202,-3.465,-0.064,-3.269,-0.043,-3.465,-0.064,-3.274,0.115,-3.482,0.096,-3.492,0.258,-3.277,0.273,-3.492,0.258,-3.278,0.431,-3.496,0.422,-3.496,0.422,-3.277,0.588,-3.498,0.584,-3.49,0.746,-3.275,0.745,-3.479,0.908,-3.271,0.903,-3.469,1.069,-3.266,1.06 +,-3.469,1.069,-3.259,1.218,-3.445,1.229,-3.418,1.391,-3.251,1.376,-3.418,1.391,-3.242,1.535,-3.389,1.549,-3.389,1.549,-3.231,1.694,-3.357,1.709,-3.357,1.709,-3.22,1.854,-3.322,1.866,-3.285,2.024,-3.207,2.014,-3.246,2.182,-3.194,2.175,-3.205,2.338,-3.181,2.336,-3.205,2.338,-2.539,2.337,-2.58,2.18,-2.619,2.024,-2.619,2.024 +,-2.657,1.866,-2.657,1.866,-2.692,1.708,-2.692,1.708,-2.724,1.549,-2.724,1.549,-2.752,1.389,-2.752,1.389,-2.777,1.229,-2.777,1.229,-2.801,1.067,-2.815,0.907,-2.815,0.907,-2.827,0.745,-2.827,0.26,-2.816,0.097,-2.816,0.097,-2.801,-0.064,-2.801,-0.064,-2.779,-0.225,-2.754,-0.387,-2.726,-0.549,-2.693,-0.707,-2.693,-0.707,-2.657,-0.867 +,-2.62,-1.025,-2.62,-1.025,-2.58,-1.185,-2.58,-1.185,-2.538,-1.344,-1.912,-1.187,-1.871,-1.343,-1.912,-1.187,-1.951,-1.029,-1.988,-0.871,-2.023,-0.713,-2.057,-0.552,-2.086,-0.392,-2.131,-0.07,-2.107,-0.232,-2.146,0.09,-2.131,-0.07,-2.156,0.252,-2.146,0.09,-2.156,0.252,-2.158,0.739,-2.158,0.739,-2.146,0.901,-2.109,1.225,-2.131,1.061 +,-2.086,1.383,-2.109,1.225,-2.057,1.543,-2.086,1.383,-2.023,1.703,-2.057,1.543,-2.023,1.703,-1.99,1.862,-1.914,2.178,-1.953,2.02,-1.873,2.334,-1.914,2.178,-1.246,2.176,-1.285,2.02,-1.285,2.02,-1.324,1.862,-1.324,1.862,-1.359,1.703,-1.359,1.703,-1.391,1.545,-1.391,1.545,-1.42,1.385,-1.42,1.385,-1.445,1.225,-1.467,1.063 +,-1.467,1.063,-1.482,0.901,-1.49,0.739,-1.49,0.739,-1.49,0.252,-1.48,0.09,-1.465,-0.07,-1.443,-0.234,-1.443,-0.234,-1.418,-0.394,-1.418,-0.394,-1.391,-0.554,-1.355,-0.715,-1.324,-0.871,-1.285,-1.029,-1.244,-1.187,-1.205,-1.343,-0.578,-1.187,-0.537,-1.343,-0.617,-1.029,-0.578,-1.187,-0.654,-0.871,-0.617,-1.029,-0.689,-0.713,-0.654,-0.871 +,-0.723,-0.552,-0.689,-0.713,-0.723,-0.552,-0.777,-0.232,-0.75,-0.394,-0.777,-0.232,-0.799,-0.072,-0.824,0.252,-0.812,0.09,-0.824,0.252,-0.824,0.741,-0.812,0.903,-0.775,1.225,-0.796,1.063,-0.775,1.225,-0.752,1.384,-0.723,1.545,-0.691,1.703,-0.656,1.862,-0.578,2.18,-0.619,2.019,-0.539,2.334,-0.578,2.18,0.127,2.334,0.088,2.178 +,0.088,2.178,0.049,2.02,0.049,2.02,0.012,1.862,0.012,1.862,-0.023,1.703,-0.023,1.703,-0.055,1.545,-0.084,1.385,-0.084,1.385,-0.109,1.225,-0.131,1.063,-0.146,0.901,-0.156,0.739,-0.156,0.252,-0.146,0.09,-0.146,0.09,-0.131,-0.072,-0.109,-0.234,-0.109,-0.234,-0.084,-0.392,-0.055,-0.554,-0.055,-0.554,-0.023,-0.713,-0.023,-0.713 +,0.012,-0.871,0.012,-0.871,0.049,-1.029,0.049,-1.029,0.088,-1.187,0.129,-1.343,0.793,-1.343,0.756,-1.187,0.717,-1.029,0.645,-0.713,0.68,-0.871,0.645,-0.713,0.611,-0.554,0.559,-0.234,0.582,-0.394,0.537,-0.072,0.559,-0.234,0.537,-0.072,0.52,0.09,0.51,0.252,0.51,0.739,0.51,0.739,0.52,0.901,0.535,1.063,0.58,1.385 +,0.555,1.225,0.58,1.385,0.609,1.544,0.641,1.703,0.676,1.862,0.713,2.02,0.752,2.178,1.459,2.334,1.419,2.177,1.419,2.177,1.379,2.02,1.342,1.862,1.342,1.862,1.307,1.704,1.307,1.704,1.274,1.544,1.274,1.544,1.246,1.385,1.222,1.225,1.202,1.064,1.187,0.901,1.187,0.901,1.177,0.739,1.177,0.739,1.175,0.252 +,1.186,0.09,1.202,-0.07,1.222,-0.232,1.222,-0.232,1.247,-0.393,1.247,-0.393,1.276,-0.553,1.276,-0.553,1.309,-0.713,1.344,-0.871,1.382,-1.029,1.421,-1.186,1.421,-1.186,1.46,-1.343,2.129,-1.344,2.048,-1.029,2.088,-1.186,2.048,-1.029,2.011,-0.872,1.975,-0.713,1.942,-0.553,1.913,-0.393,1.889,-0.233,1.852,0.089,1.867,-0.072 +,1.852,0.089,1.841,0.252,1.841,0.739,1.851,0.901,1.841,0.739,1.867,1.063,1.851,0.901,1.867,1.063,1.888,1.224,1.941,1.544,1.913,1.384,1.941,1.544,2.009,1.862,1.974,1.703,2.009,1.862,2.086,2.177,2.046,2.02,2.125,2.334,2.086,2.177,2.792,2.334,2.751,2.177,2.751,2.177,2.711,2.02,2.676,1.863,2.676,1.863 +,2.641,1.703,2.641,1.703,2.608,1.544,2.608,1.544,2.579,1.384,2.579,1.384,2.554,1.224,2.534,1.063,2.519,0.902,2.519,0.902,2.508,0.739,2.508,0.739,2.508,0.252,2.508,0.252,2.519,0.09,2.534,-0.072,2.534,-0.072,2.555,-0.232,2.58,-0.393,2.58,-0.393,2.609,-0.553,2.609,-0.553,2.642,-0.713,2.677,-0.872,2.714,-1.029 +,2.753,-1.186,2.793,-1.343,3.463,-1.345,3.383,-1.031,3.423,-1.189,3.344,-0.871,3.383,-1.031,3.344,-0.871,3.31,-0.714,3.276,-0.552,3.223,-0.232,3.247,-0.392,3.202,-0.069,3.223,-0.232,3.202,-0.069,3.186,0.092,3.176,0.251,3.176,0.74,3.186,0.901,3.176,0.74,3.201,1.064,3.186,0.901,3.201,1.064,3.221,1.224,3.248,1.386 +,3.276,1.546,3.309,1.706,3.381,2.021,3.344,1.863,3.381,2.021,3.419,2.178,4.128,2.335,4.088,2.178,4.088,2.178,4.048,2.021,4.048,2.021,4.011,1.863,3.976,1.704,3.943,1.545,3.916,1.385,3.916,1.385,3.89,1.224,3.869,1.064,3.869,1.064,3.854,0.903,3.844,0.741,3.844,0.254,3.854,0.092,3.87,-0.071,3.87,-0.071 +,3.891,-0.232,3.916,-0.392,3.916,-0.392,3.944,-0.552,3.977,-0.712,3.977,-0.712,4.013,-0.871,4.048,-1.029,4.048,-1.029,4.088,-1.188,4.128,-1.343,-3.244,-1.183,-3.206,-1.341,-3.285,-1.025,-3.244,-1.183,-3.285,-1.025,-3.324,-0.867,-3.391,-0.547,-3.359,-0.707,-3.391,-0.547,-3.445,-0.224,-3.422,-0.386,-3.465,-0.064,-3.445,-0.224,-3.465,-0.064 +,-3.492,0.258,-3.482,0.096,-3.492,0.258,-3.496,0.422,-3.49,0.746,-3.498,0.584,-3.479,0.908,-3.49,0.746,-3.469,1.069,-3.479,0.908,-3.469,1.069,-3.418,1.391,-3.445,1.229,-3.418,1.391,-3.389,1.549,-3.357,1.709,-3.285,2.024,-3.322,1.866,-3.246,2.182,-3.285,2.024,-3.205,2.338,-3.246,2.182] +,"indices":[0,1,2,1,3,2,4,5,6,7,6,8,9,8,10,11,10,12,13,12,14,15,14,16,17,16,18,19,18,20,21,20,22,21,23,24,24,25,26,26,27,28,28,29,30,30,31,32,32,33 +,34,34,35,36,36,37,38,38,39,40,40,41,42,42,43,44,44,45,46,46,47,48,49,48,47,50,51,52,53,54,52,55,54,56,57,58,59,60,61,58,62,63,61,64,65,63,66,67,65,68 +,69,67,70,69,71,72,73,74,25,73,75,23,76,25,23,77,78,79,77,80,81,82,83,84,85,82,86,85,87,88,89,90,91,92,93,94,95,96,97,95,98,99,100,101,102,103,100,104,105,103 +,103,106,107,103,108,100,100,109,101,95,109,110,96,110,111,96,112,92,92,113,89,89,114,85,85,115,82,82,116,83,83,117,77,77,118,78,78,119,76,76,120,73,74,120,121,74,122,69,67,122 +,123,65,123,124,65,125,63,61,125,126,58,126,127,59,127,128,54,128,129,52,129,130,131,52,130,132,130,133,130,134,133,128,134,129,127,135,128,126,136,127,125,137,126,124,138,125,124,139,140,122 +,139,123,122,141,142,121,143,141,120,144,143,118,144,119,117,145,118,116,146,117,115,147,116,115,148,149,114,150,148,112,150,113,112,151,152,110,151,111,109,153,110,108,154,109,107,155,108,107,156,157 +,158,159,160,161,160,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,179,182,183,182,184,185,184,186,187,188,145,145,189,144,190,189,191,192,193,194,195,196,197,198,196 +,199,200,199,201,202,201,203,204,203,205,206,207,208,209,210,211,212,210,213,214,213,215,216,217,215,218,215,219,213,219,215,213,220,221,210,222,220,207,223,222,203,223,205,201,224,203,201,225,226,199 +,227,225,193,227,196,193,228,229,191,230,228,188,230,189,186,231,188,186,232,233,182,232,184,179,234,182,179,235,236,176,237,235,170,237,173,167,238,170,167,239,240,162,239,164,160,241,162,160,242,243 +,243,244,245,243,246,241,239,246,247,240,247,248,238,248,249,238,250,237,237,251,235,236,251,252,236,253,234,232,253,254,233,254,255,233,256,231,231,257,230,228,257,258,229,258,259,227,259,260,227,261 +,225,226,261,262,224,262,263,224,264,223,223,265,222,222,266,220,220,267,221,219,267,268,269,219,268,270,271,272,273,272,274,275,276,277,278,279,280,281,282,279,283,284,282,285,286,284,287,288,286,289 +,288,290,291,292,293,294,292,295,296,297,298,256,297,257,299,300,256,301,302,303,304,305,306,307,308,309,310,311,312,313,314,311,315,314,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331 +,331,332,333,327,333,334,324,334,335,324,336,321,318,336,337,314,337,338,314,339,311,312,339,340,308,340,341,305,341,342,305,343,302,302,344,300,300,345,297,298,345,346,298,347,292,292,348,293,293,349 +,288,288,350,286,286,351,284,284,352,282,282,353,279,280,353,354,276,354,355,272,355,356,357,272,356,358,356,359,355,359,356,354,360,355,353,361,354,353,362,363,352,364,362,351,365,364,350,366,365,349 +,367,366,348,368,367,347,369,368,346,370,369,344,370,345,343,371,344,342,372,343,341,373,342,340,374,341,340,375,376,339,377,375,337,377,338,336,378,337,336,379,380,334,379,335,333,381,334,333,382,383 +,384,385,386,387,386,388,389,388,390,391,390,392,393,392,394,395,394,396,397,398,399,400,398,401,402,403,404,405,406,407,408,406,409,410,411,371,371,412,370,370,413,414,415,416,417,418,419,420,421,419 +,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,436,439,440,439,441,442,443,441,444,441,445,439,445,441,439,446,447,436,448,446,433,449,448,427,449,430,424,450,427,422,451,424,422 +,452,453,416,452,419,413,454,416,412,455,413,411,456,412,411,457,458,406,457,409,403,459,406,401,460,403,401,461,462,398,463,461,394,463,396,392,464,394,390,465,392,388,466,390,386,467,388,386,468,469 +,469,470,471,469,472,467,466,472,473,466,474,465,465,475,464,463,475,476,463,477,461,462,477,478,462,479,460,459,479,480,459,481,457,458,481,482,458,483,456,456,484,455,455,485,454,452,485,486,452,487 +,453,451,487,488,450,488,489,450,490,449,449,491,448,448,492,446,446,493,447,445,493,494,495,445,494,496,497,498,499,500,498,501,502,500,503,504,502,505,506,504,507,508,506,509,508,510,511,512,513,514 +,512,515,516,517,518,519,520,521,483,522,523,482,524,483,525,526,482,527,528,529,530,531,532,533,531,534,535,536,537,538,536,539,540,541,542,543,544,541,545,546,544,547,548,546,549,548,550,551,552,553 +,553,554,555,548,555,556,548,557,546,544,557,558,544,559,541,542,559,560,542,561,536,537,561,562,537,563,531,531,564,532,528,564,565,526,565,566,526,567,524,522,567,568,520,568,569,520,570,517,512,570 +,571,513,571,572,508,572,573,506,573,574,506,575,504,504,576,502,502,577,500,500,578,498,579,498,578,580,578,581,578,582,581,576,582,577,576,583,584,575,585,583,574,586,585,572,586,573,572,587,588,570 +,587,571,570,589,590,568,589,569,568,591,592,566,591,567,565,593,566,565,594,595,564,596,594,562,596,563,562,597,598,560,597,561,559,599,560,558,600,559,557,601,558,556,602,557,555,603,556,555,604,605 +,606,607,608,609,610,611,612,613,614,615,616,617,618,616,619,620,621,622,623,624,625,626,624,627,628,627,629,630,631,632,633,634,635,636,637,593,593,638,591,639,638,640,641,642,643,644,645,646,647,648 +,649,650,648,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,668,672,668,673,668,674,673,662,674,665,659,675,662,659,676,677,656,678,676,651,678,653,648,679,651,645 +,680,648,642,681,645,642,682,683,640,684,682,637,684,638,634,685,637,631,686,634,629,687,631,629,688,689,627,690,688,624,691,690,621,692,691,619,693,692,613,693,616,610,694,613,608,695,610,608,696,697 +,697,698,699,697,700,695,694,700,701,693,701,702,693,703,692,692,704,691,691,705,690,690,706,688,688,707,689,687,707,708,687,709,686,686,710,685,685,711,684,682,711,712,682,713,683,683,714,681,680,714 +,715,679,715,716,679,717,678,678,718,676,676,719,677,675,719,720,674,720,721,674,722,673,723,673,722,724,725,726,727,728,726,729,730,728,731,730,732,733,734,735,736,737,734,738,739,737,740,739,741,742 +,743,744,745,746,747,748,749,750,751,752,749,710,752,711,710,753,754,755,753,756,757,758,759,760,761,762,763,764,765,766,767,764,768,769,767,770,769,771,772,773,774,775,776,777,778,779,780,781,782,779 +,779,783,784,779,785,780,780,786,776,773,786,787,769,787,788,769,789,767,767,790,764,765,790,791,761,791,792,761,793,758,758,794,753,754,794,795,754,796,752,749,796,797,750,797,798,750,799,746,746,800 +,743,743,801,739,737,801,802,737,803,734,735,803,804,735,805,730,728,805,806,726,806,807,808,726,807,809,807,810,806,810,807,805,811,806,805,812,813,804,814,812,802,814,803,802,815,816,801,817,815,799 +,817,800,799,818,819,797,818,798,797,820,821,795,820,796,795,822,823,793,822,794,793,824,825,792,826,824,790,826,791,789,827,790,788,828,789,787,829,788,786,830,787,785,831,786,784,832,785,784,833,834 +,835,836,837,838,839,840,841,839,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,859,862,863,864,865,866,867,823,823,868,820,869,868,870,871,870,872,873,872,874,875,876 +,877,878,879,880,881,879,882,883,884,885,886,884,887,888,889,890,891,889,892,893,892,894,895,896,894,897,894,898,894,899,898,892,900,899,889,901,900,887,902,901,884,903,902,879,903,882,876,904,879,874 +,905,876,874,906,907,872,908,906,868,908,870,867,909,868,867,910,911,862,910,864,862,912,913,856,912,859,856,914,915,850,914,853,850,916,917,847,918,916,842,918,844,839,919,842,837,920,839,837,921,922 +,922,923,924,922,925,920,919,925,926,918,926,927,918,928,916,916,929,917,914,929,930,915,930,931,915,932,912,912,933,913,913,934,910,910,935,911,911,936,909,909,937,908,906,937,938,906,939,907,905,939 +,940,904,940,941,904,942,903,903,943,902,902,944,901,901,945,900,900,946,899,899,947,898,948,898,947,949,950,951,952,953,951,954,955,953,956,955,957,958,959,960,961,962,959,963,964,962,965,966,964,967 +,966,968,969,970,971,972,973,974,975,976,973,935,976,936,977,978,935,979,980,981,982,980,983,984,985,986,987,985,988,989,990,991,992,993,990,994,993,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007 +,1007,1008,1009,1007,1010,1003,1003,1011,1000,1000,1012,997,997,1013,993,993,1014,990,991,1014,1015,991,1016,985,986,1016,1017,986,1018,980,981,1018,1019,981,1020,978,978,1021,976,973,1021,1022,974,1022,1023,974,1024,970,970,1025 +,966,966,1026,964,964,1027,962,962,1028,959,960,1028,1029,955,1029,1030,953,1030,1031,953,1032,951,1033,951,1032,1034,1032,1035,1032,1036,1035,1031,1037,1036,1029,1037,1030,1028,1038,1029,1028,1039,1040,1027,1041,1039,1026,1042,1041,1025 +,1043,1042,1024,1044,1043,1022,1044,1023,1022,1045,1046,1020,1045,1021,1019,1047,1020,1018,1048,1019,1017,1049,1018,1017,1050,1051,1016,1052,1050,1014,1052,1015,1014,1053,1054,1013,1055,1053,1012,1056,1055,1011,1057,1056,1010,1058,1057,1009,1059,1058 +,1060,1061,1062,1063,1064,1065,1066,1064,1067,1068,1067,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1077,1080,1081,1080,1082,1083,1084,1085,1086,1087,1088,1089,1090,1047,1047,1091,1045,1092,1091,1093,1094,1093,1095,1096,1095,1097,1098,1099 +,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1111,1114,1115,1116,1117,1118,1119,1120,1121,1122,1119,1123,1119,1124,1119,1125,1124,1114,1125,1116,1111,1126,1114,1111,1127,1128,1108,1129,1127,1105,1130,1129,1099,1130,1102,1097 +,1131,1099,1095,1132,1097,1095,1133,1134,1091,1133,1093,1090,1135,1091,1087,1136,1090,1087,1137,1138,1084,1139,1137,1082,1140,1139,1077,1140,1080,1074,1141,1077,1071,1142,1074,1071,1143,1144,1067,1143,1069,1064,1145,1067,1062,1146,1064,1062,1147,1148 +,1148,1149,1150,1146,1150,1151,1145,1151,1152,1145,1153,1143,1144,1153,1154,1144,1155,1142,1141,1155,1156,1141,1157,1140,1140,1158,1139,1137,1158,1159,1137,1160,1138,1138,1161,1136,1136,1162,1135,1133,1162,1163,1133,1164,1134,1132,1164,1165,1131,1165 +,1166,1130,1166,1167,1129,1167,1168,1127,1168,1169,1127,1170,1128,1128,1171,1126,1125,1171,1172,1125,1173,1124,1174,1124,1173,1175,1176,1177,1178,1179,1177,1180,1181,1179,1182,1183,1181,1184,1183,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195 +,1193,1196,1197,1198,1199,1200,1198,1201,1162,1202,1203,1161,1204,1162,1161,1205,1206,1207,1205,1208,1209,1210,1211,1212,1213,1214,1215,1213,1216,1217,1218,1219,1220,1218,1221,1222,1223,1224,1225,1223,1226,1227,1228,1229,1230,1228,1231,1232,1233,1234 +,1234,1235,1236,1234,1237,1228,1228,1238,1229,1229,1239,1223,1224,1239,1240,1224,1241,1218,1219,1241,1242,1219,1243,1213,1214,1243,1244,1214,1245,1210,1210,1246,1205,1206,1246,1247,1206,1248,1204,1204,1249,1202,1198,1249,1250,1198,1251,1199,1199,1252 +,1193,1194,1252,1253,1194,1254,1190,1187,1254,1255,1187,1256,1183,1181,1256,1257,1181,1258,1179,1177,1258,1259,1260,1177,1259,1261,1259,1262,1258,1262,1259,1257,1263,1258,1256,1264,1257,1256,1265,1266,1255,1267,1265,1253,1267,1254,1253,1268,1269,1251 +,1268,1252,1251,1270,1271,1250,1272,1270,1249,1273,1272,1247,1273,1248,1246,1274,1247,1246,1275,1276,1244,1275,1245,1244,1277,1278,1242,1277,1243,1241,1279,1242,1241,1280,1281,1240,1282,1280,1239,1283,1282,1237,1283,1238,1236,1284,1237,1236,1285,1286 +,1287,0,1288,1289,1288,1290,1291,1290,1292,1293,1294,1295,1296,1297,1298,1299,1297,1300,1301,1302,1303,1304,1302,1305,1306,1305,1307,1308,1309,1310,1311,1309,1312,1313,1314,1315,1316,1317,1318,1319,1317,1320,1321,1320,1322,1323,1322,1324,1325,1326 +,1327,1328,1326,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1337,1340,1341,1340,1342,1343,1342,1344,49,1345,1344,49,1344,48,1342,48,1344,1342,44,46,1340,42,44,1337,40,42,1334,38,40,1329,38,1331,1326,36,1329,1324 +,34,1326,1322,32,1324,1320,30,1322,1317,28,1320,1314,26,1317,1312,24,1314,1309,21,1312,1307,19,1309,1307,15,17,1302,15,1305,1300,13,1302,1300,9,11,1297,7,9,1292,7,1294,1290,4,1292,1288,3,1290,1288,0,2 +,1,5,3,4,3,5,7,4,6,9,7,8,11,9,10,13,11,12,15,13,14,17,15,16,19,17,18,21,19,20,21,22,23,24,23,25,26,25,27,28,27,29,30,29,31,32,31,33,34,33 +,35,36,35,37,38,37,39,40,39,41,42,41,43,44,43,45,46,45,47,1346,1347,54,1348,59,54,1349,1350,58,1351,1352,61,1353,1354,63,1355,1356,65,1357,1358,67,1359,1360,69,1361,74,69,1362,1363,73,25 +,76,73,23,78,76,23,1364,77,1365,83,77,1366,1367,82,1368,1369,85,1370,89,85,1371,92,89,1372,96,92,1373,1374,95,1375,101,95,1376,1377,100,1378,1379,103,103,107,108,100,108,109,95,101,109,96,95,110 +,96,111,112,92,112,113,89,113,114,85,114,115,82,115,116,83,116,117,77,117,118,78,118,119,76,119,120,74,73,120,74,121,122,67,69,122,65,67,123,65,124,125,61,63,125,58,61,126,59,58 +,127,54,59,128,52,54,129,130,129,134,128,135,134,127,136,135,126,137,136,125,138,137,124,140,138,124,123,139,122,142,139,122,121,141,121,120,143,120,119,144,118,145,144,117,146,145,116,147,146,115 +,149,147,115,114,148,114,113,150,112,152,150,112,111,151,110,153,151,109,154,153,108,155,154,107,157,155,1380,1381,160,1382,162,164,1383,164,167,1384,167,170,1385,170,173,1386,173,176,1387,176,179,1388,1389,179 +,1390,1391,182,1392,1393,184,1394,186,188,145,188,189,1395,144,189,1396,191,193,1397,193,196,1398,1399,196,1400,1401,199,1402,1403,201,1404,1405,203,1406,205,207,1407,207,210,1408,1409,210,1410,1411,213,213,221,219,213,210 +,220,210,207,222,207,205,223,203,224,223,201,226,224,201,199,225,199,196,227,193,229,227,193,191,228,191,189,230,188,231,230,186,233,231,186,184,232,182,234,232,179,236,234,179,176,235,176,173,237,170 +,238,237,167,240,238,167,164,239,162,241,239,160,243,241,243,245,246,239,241,246,240,239,247,238,240,248,238,249,250,237,250,251,236,235,251,236,252,253,232,234,253,233,232,254,233,255,256,231,256,257 +,228,230,257,229,228,258,227,229,259,227,260,261,226,225,261,224,226,262,224,263,264,223,264,265,222,265,266,220,266,267,219,221,267,1412,276,272,1413,280,276,1414,1415,279,1416,1417,282,1418,1419,284,1420,1421 +,286,1422,1423,288,1424,293,288,1425,1426,292,1427,298,292,1428,257,297,256,300,297,1429,302,300,1430,305,302,1431,308,305,1432,312,308,1433,1434,311,1435,1436,314,1437,318,314,1438,321,318,1439,324,321,1440,327,324,1441 +,331,327,327,331,333,324,327,334,324,335,336,318,321,336,314,318,337,314,338,339,312,311,339,308,312,340,305,308,341,305,342,343,302,343,344,300,344,345,298,297,345,298,346,347,292,347,348,293,348,349 +,288,349,350,286,350,351,284,351,352,282,352,353,280,279,353,276,280,354,272,276,355,355,360,359,354,361,360,353,363,361,353,352,362,352,351,364,351,350,365,350,349,366,349,348,367,348,347,368,347,346 +,369,346,345,370,344,371,370,343,372,371,342,373,372,341,374,373,340,376,374,340,339,375,339,338,377,337,378,377,336,380,378,336,335,379,334,381,379,333,383,381,1442,1443,386,1444,1445,388,1446,1447,390,1448 +,1449,392,1450,1451,394,1452,396,398,1453,1454,398,1455,401,403,1456,403,406,1457,1458,406,1459,409,411,371,411,412,370,412,413,1460,413,416,1461,416,419,1462,1463,419,1464,422,424,1465,424,427,1466,427,430,1467,430,433 +,1468,433,436,1469,1470,436,1471,1472,439,439,447,445,439,436,446,436,433,448,433,430,449,427,450,449,424,451,450,422,453,451,422,419,452,416,454,452,413,455,454,412,456,455,411,458,456,411,409,457,406,459 +,457,403,460,459,401,462,460,401,398,461,398,396,463,394,464,463,392,465,464,390,466,465,388,467,466,386,469,467,469,471,472,466,467,472,466,473,474,465,474,475,463,464,475,463,476,477,462,461,477,462 +,478,479,459,460,479,459,480,481,458,457,481,458,482,483,456,483,484,455,484,485,452,454,485,452,486,487,451,453,487,450,451,488,450,489,490,449,490,491,448,491,492,446,492,493,445,447,493,1473,1474,500 +,1475,1476,502,1477,1478,504,1479,1480,506,1481,1482,508,1483,513,508,1484,1485,512,1486,517,512,1487,520,517,1488,522,520,483,524,522,482,526,524,1489,528,526,1490,532,528,1491,1492,531,1493,537,531,1494,1495,536,1496,542 +,536,1497,1498,541,1499,1500,544,1501,1502,546,1503,1504,548,1505,553,548,548,553,555,548,556,557,544,546,557,544,558,559,542,541,559,542,560,561,537,536,561,537,562,563,531,563,564,528,532,564,526,528,565,526 +,566,567,522,524,567,520,522,568,520,569,570,512,517,570,513,512,571,508,513,572,506,508,573,506,574,575,504,575,576,502,576,577,500,577,578,578,577,582,576,584,582,576,575,583,575,574,585,574,573,586 +,572,588,586,572,571,587,570,590,587,570,569,589,568,592,589,568,567,591,566,593,591,565,595,593,565,564,594,564,563,596,562,598,596,562,561,597,560,599,597,559,600,599,558,601,600,557,602,601,556,603 +,602,555,605,603,1506,608,610,1507,610,613,1508,613,616,1509,1510,616,1511,619,621,1512,621,624,1513,1514,624,1515,1516,627,1517,629,631,1518,631,634,1519,634,637,593,637,638,1520,591,638,1521,640,642,1522,642,645,1523 +,645,648,1524,1525,648,1526,651,653,1527,653,656,1528,656,659,1529,659,662,1530,662,665,1531,665,668,668,665,674,662,675,674,659,677,675,659,656,676,656,653,678,651,679,678,648,680,679,645,681,680,642,683,681 +,642,640,682,640,638,684,637,685,684,634,686,685,631,687,686,629,689,687,629,627,688,627,624,690,624,621,691,621,619,692,619,616,693,613,694,693,610,695,694,608,697,695,697,699,700,694,695,700,693,694 +,701,693,702,703,692,703,704,691,704,705,690,705,706,688,706,707,687,689,707,687,708,709,686,709,710,685,710,711,682,684,711,682,712,713,683,713,714,680,681,714,679,680,715,679,716,717,678,717,718,676 +,718,719,675,677,719,674,675,720,674,721,722,1532,1533,728,1534,1535,730,1536,735,730,1537,1538,734,1539,1540,737,1541,1542,739,1543,743,739,1544,746,743,1545,750,746,1546,1547,749,1548,711,752,710,754,752,710,1549,753 +,1550,758,753,1551,761,758,1552,765,761,1553,1554,764,1555,1556,767,1557,1558,769,1559,773,769,1560,776,773,1561,780,776,1562,1563,779,779,784,785,780,785,786,773,776,786,769,773,787,769,788,789,767,789,790,765,764 +,790,761,765,791,761,792,793,758,793,794,754,753,794,754,795,796,749,752,796,750,749,797,750,798,799,746,799,800,743,800,801,737,739,801,737,802,803,735,734,803,735,804,805,728,730,805,726,728,806,806 +,811,810,805,813,811,805,804,812,804,803,814,802,816,814,802,801,815,801,800,817,799,819,817,799,798,818,797,821,818,797,796,820,795,823,820,795,794,822,793,825,822,793,792,824,792,791,826,790,827,826 +,789,828,827,788,829,828,787,830,829,786,831,830,785,832,831,784,834,832,1564,837,839,1565,1566,839,1567,842,844,1568,844,847,1569,847,850,1570,850,853,1571,853,856,1572,856,859,1573,1574,859,1575,862,864,1576,864 +,867,823,867,868,1577,820,868,1578,1579,870,1580,1581,872,1582,874,876,1583,876,879,1584,1585,879,1586,882,884,1587,1588,884,1589,887,889,1590,1591,889,1592,1593,892,894,892,899,892,889,900,889,887,901,887,884,902,884 +,882,903,879,904,903,876,905,904,874,907,905,874,872,906,872,870,908,868,909,908,867,911,909,867,864,910,862,913,910,862,859,912,856,915,912,856,853,914,850,917,914,850,847,916,847,844,918,842,919,918 +,839,920,919,837,922,920,922,924,925,919,920,925,918,919,926,918,927,928,916,928,929,914,917,929,915,914,930,915,931,932,912,932,933,913,933,934,910,934,935,911,935,936,909,936,937,906,908,937,906,938 +,939,905,907,939,904,905,940,904,941,942,903,942,943,902,943,944,901,944,945,900,945,946,899,946,947,1594,1595,953,1596,1597,955,1598,960,955,1599,1600,959,1601,1602,962,1603,1604,964,1605,1606,966,1607,970,966,1608 +,974,970,1609,1610,973,1611,936,976,935,978,976,1612,981,978,1613,1614,980,1615,986,980,1616,1617,985,1618,991,985,1619,1620,990,1621,1622,993,1623,997,993,1624,1000,997,1625,1003,1000,1626,1007,1003,1007,1009,1010,1003,1010,1011 +,1000,1011,1012,997,1012,1013,993,1013,1014,991,990,1014,991,1015,1016,986,985,1016,986,1017,1018,981,980,1018,981,1019,1020,978,1020,1021,973,976,1021,974,973,1022,974,1023,1024,970,1024,1025,966,1025,1026,964,1026,1027,962,1027 +,1028,960,959,1028,955,960,1029,953,955,1030,953,1031,1032,1032,1031,1036,1031,1030,1037,1029,1038,1037,1028,1040,1038,1028,1027,1039,1027,1026,1041,1026,1025,1042,1025,1024,1043,1024,1023,1044,1022,1046,1044,1022,1021,1045,1020,1047,1045,1019 +,1048,1047,1018,1049,1048,1017,1051,1049,1017,1016,1050,1016,1015,1052,1014,1054,1052,1014,1013,1053,1013,1012,1055,1012,1011,1056,1011,1010,1057,1010,1009,1058,1627,1062,1064,1628,1629,1064,1630,1631,1067,1632,1069,1071,1633,1071,1074,1634,1074,1077 +,1635,1636,1077,1637,1638,1080,1639,1082,1084,1640,1084,1087,1641,1087,1090,1047,1090,1091,1642,1045,1091,1643,1644,1093,1645,1646,1095,1647,1097,1099,1648,1099,1102,1649,1102,1105,1650,1105,1108,1651,1108,1111,1652,1653,1111,1654,1114,1116,1655,1116 +,1119,1119,1116,1125,1114,1126,1125,1111,1128,1126,1111,1108,1127,1108,1105,1129,1105,1102,1130,1099,1131,1130,1097,1132,1131,1095,1134,1132,1095,1093,1133,1091,1135,1133,1090,1136,1135,1087,1138,1136,1087,1084,1137,1084,1082,1139,1082,1080,1140,1077 +,1141,1140,1074,1142,1141,1071,1144,1142,1071,1069,1143,1067,1145,1143,1064,1146,1145,1062,1148,1146,1146,1148,1150,1145,1146,1151,1145,1152,1153,1144,1143,1153,1144,1154,1155,1141,1142,1155,1141,1156,1157,1140,1157,1158,1137,1139,1158,1137,1159,1160 +,1138,1160,1161,1136,1161,1162,1133,1135,1162,1133,1163,1164,1132,1134,1164,1131,1132,1165,1130,1131,1166,1129,1130,1167,1127,1129,1168,1127,1169,1170,1128,1170,1171,1125,1126,1171,1125,1172,1173,1656,1657,1179,1658,1659,1181,1660,1661,1183,1662,1187 +,1183,1663,1190,1187,1664,1194,1190,1665,1666,1193,1667,1199,1193,1668,1669,1198,1670,1202,1198,1162,1204,1202,1161,1206,1204,1161,1671,1205,1672,1210,1205,1673,1214,1210,1674,1675,1213,1676,1219,1213,1677,1678,1218,1679,1224,1218,1680,1681,1223,1682 +,1229,1223,1683,1684,1228,1685,1234,1228,1234,1236,1237,1228,1237,1238,1229,1238,1239,1224,1223,1239,1224,1240,1241,1219,1218,1241,1219,1242,1243,1214,1213,1243,1214,1244,1245,1210,1245,1246,1206,1205,1246,1206,1247,1248,1204,1248,1249,1198,1202,1249 +,1198,1250,1251,1199,1251,1252,1194,1193,1252,1194,1253,1254,1187,1190,1254,1187,1255,1256,1181,1183,1256,1181,1257,1258,1177,1179,1258,1258,1263,1262,1257,1264,1263,1256,1266,1264,1256,1255,1265,1255,1254,1267,1253,1269,1267,1253,1252,1268,1251,1271 +,1268,1251,1250,1270,1250,1249,1272,1249,1248,1273,1247,1274,1273,1246,1276,1274,1246,1245,1275,1244,1278,1275,1244,1243,1277,1242,1279,1277,1241,1281,1279,1241,1240,1280,1240,1239,1282,1239,1238,1283,1237,1284,1283,1236,1286,1284,1686,1687,1288,1688 +,1689,1290,1690,1292,1294,1691,1294,1297,1692,1693,1297,1694,1300,1302,1695,1696,1302,1697,1698,1305,1699,1307,1309,1700,1701,1309,1702,1312,1314,1703,1314,1317,1704,1705,1317,1706,1707,1320,1708,1709,1322,1710,1324,1326,1711,1712,1326,1713,1329,1331 +,1714,1331,1334,1715,1334,1337,1716,1717,1337,1718,1719,1340,1720,1721,1342,1342,46,48,1342,1340,44,1340,1337,42,1337,1334,40,1334,1331,38,1329,36,38,1326,34,36,1324,32,34,1322,30,32,1320,28,30,1317,26,28,1314,24 +,26,1312,21,24,1309,19,21,1307,17,19,1307,1305,15,1302,13,15,1300,11,13,1300,1297,9,1297,1294,7,1292,4,7,1290,3,4,1288,2,3] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":1722,"indexStart":0,"indexCount":5184}] +,"instances":[]} +,{"name":"Target","id":"Target","materialId":"game_scene.TargetMaterial","billboardMode":0,"position":[-50.6226,-4848.5542,-231.5064],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[42.7283,-42.7283,0,-42.7283,42.7283,0,-42.7283,-42.7283,0,42.7283,42.7283,0] +,"normals":[0,0,-1,0,0,-1,0,0,-1,0,0,-1] +,"uvs":[0.5,0,0,0.5,0,0,0.5,0.5] +,"indices":[0,1,2,0,3,1] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":4,"indexStart":0,"indexCount":6}] +,"instances":[]} +,{"name":"ObstacleBarBottom","id":"ObstacleBarBottom","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4883.6016,2542.9968],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[107.9444,35.0243,-10,-107.9444,-35.0243,-10,107.9444,-35.0243,-10,-107.9444,35.0243,10,107.9444,35.0243,-10,107.9444,35.0243,10,-107.9444,24.4837,-9.9999,107.9444,24.4837,-11.9028,-107.9444,24.4837,-11.9028,-107.9444,35.0243,-12.5673,107.9444,32.9246,-14.5502,107.9444,35.0243,-12.5673,-107.9444,32.9246,-14.5502,107.9444,26.7421,-14.5502,107.9444,32.9246,-14.5502,107.9444,35.0243,-9.9999,-107.9444,35.0243,-12.5673 +,107.9444,35.0243,-12.5673,107.9444,26.7421,-14.5502,-107.9444,26.7421,-14.5502,1.5065,12.3483,-14.5502,-0.5284,3.0274,-12.9352,0.9659,1.8193,-14.5502,-107.9444,-10.6847,-10.0001,-2.389,-9.8082,-12.9488,-107.9444,-9.9535,-12.9488,7.8289,-1.8635,-12.9488,8.6917,8.0277,-10.0001,7.8289,8.5465,-12.9488,6.5489,9.3162,-14.5502,0.9659,1.8193,-14.5502,6.3583,-1.1247,-14.5502,3.8758,-7.2729,-12.9488,6.3583,-1.1247,-14.5502 +,2.8589,-6.42,-14.5502,-0.8145,-1.6044,-14.5502,-2.9478,-8.6131,-14.5502,2.8589,-6.42,-14.5502,-5.3724,-0.6155,-12.9352,-107.9444,-2.9437,-14.5502,-4.6521,-2.9917,-14.5502,-2.398,-0.196,-12.9352,-4.6521,-2.9917,-14.5502,-0.8145,-1.6044,-14.5502,-4.6521,-2.9917,-14.5502,-107.9444,-8.7423,-14.5502,-0.5284,13.5719,-12.9352,-1.1384,3.3665,-10.0001,-0.5284,3.0274,-12.9352,-5.5747,0.0516,-10.0001,-107.9444,-0.4925,-12.9352 +,-5.3724,-0.6155,-12.9352,-2.8425,0.1994,-10.0001,-5.3724,-0.6155,-12.9352,-2.398,-0.196,-12.9352,7.6173,11.9885,-14.5502,8.4758,18.9594,-14.5502,3.9375,16.3356,-14.5502,4.5887,-7.7272,-10.0001,3.8758,-7.2729,-12.9488,7.8289,8.5465,-12.9488,6.5489,9.3162,-14.5502,-2.9478,-8.6131,-14.5502,-107.9444,-8.7423,-14.5502,8.5336,10.9286,-13.2811,7.8289,8.5465,-12.9488,9.1576,10.1985,-10.0001,11.3456,11.9472,-13.6133 +,8.5336,10.9286,-13.2811,2.4837,18.0136,-12.9352,7.3581,21.6903,-10.0001,2.0755,18.4846,-10.0001,3.9375,16.3356,-14.5502,7.6031,21.0917,-12.9352,2.4837,18.0136,-12.9352,11.7309,11.0057,-10.0001,107.9444,11.0183,-13.6133,11.3456,11.9472,-13.6133,107.9444,12.3248,-14.5502,10.7931,13.2973,-14.5502,8.4758,18.9594,-14.5502,107.9444,20.9234,-12.9352,7.6031,21.0917,-12.9352,10.7931,13.2973,-14.5502,107.9444,19.1243,-14.5502 +,7.6031,21.0917,-12.9352,107.9444,21.4285,-10.0001,-1.9712,-10.5381,-10.0001,3.8758,-7.2729,-12.9488,-0.5284,3.0274,-12.9352,-2.8425,0.1994,-10.0001,-2.398,-0.196,-12.9352,-2.398,-0.196,-12.9352,2.8589,-6.42,-14.5502,-0.5284,13.5719,-12.9352,2.4837,18.0136,-12.9352,-1.0997,13.9154,-10.0001,2.4837,18.0136,-12.9352,2.0755,18.4846,-10.0001,9.1576,10.1985,-10.0001,10.7931,13.2973,-14.5502,8.5336,10.9286,-13.2811 +,11.3456,11.9472,-13.6133,1.5065,12.3483,-14.5502,-85.4727,6.5534,-10,-15.1683,8.0708,-11.9028,-84.1008,8.0708,-11.9028,-89.9244,13.9757,-11.9028,-91.2963,24.4837,-10,-91.2963,12.4584,-10,-9.3447,13.9757,-11.9028,-7.9728,24.4837,-10,-9.3447,24.4837,-11.9028,-91.2963,12.4584,-10,-84.1008,8.0708,-11.9028,-89.9244,13.9757,-11.9028,-15.1683,8.0708,-11.9028,-7.9728,12.4584,-10,-9.3447,13.9757,-11.9028 +,-84.1008,8.0708,-11.9028,-15.1683,8.0708,-11.9028,-89.9244,24.4837,-11.9028,91.0542,2.9546,-10,20.7497,1.4373,-11.9028,89.6823,1.4373,-11.9028,95.5059,-4.4677,-11.9028,96.8778,-35.0243,-10,96.8778,-2.9503,-10,14.9261,-4.4677,-11.9028,13.5543,-35.0243,-10,14.9261,-35.0243,-11.9028,76.3001,-7.5754,-13.8064,29.5431,-6.058,-11.9029,30.915,-7.5754,-13.8064,80.057,-11.4731,-13.8064,81.4289,-35.0243,-11.9029 +,81.4289,-9.9558,-11.9029,27.1581,-11.4731,-13.8064,25.7862,-35.0243,-11.9029,27.1581,-35.0243,-13.8064,96.8778,-2.9503,-10,89.6823,1.4373,-11.9028,95.5059,-4.4677,-11.9028,20.7497,1.4373,-11.9028,13.5543,-2.9503,-10,14.9261,-4.4677,-11.9028,89.6823,1.4373,-11.9028,20.7497,1.4373,-11.9028,14.9261,-35.0243,-11.9028,81.4289,-9.9558,-11.9029,76.3001,-7.5754,-13.8064,80.057,-11.4731,-13.8064,30.915,-7.5754,-13.8064 +,25.7862,-9.9558,-11.9029,27.1581,-11.4731,-13.8064,76.3001,-7.5754,-13.8064,30.915,-7.5754,-13.8064,27.1581,-35.0243,-13.8064,-70.2511,22.7469,-11.9028,-68.692,21.1347,-14.5502,-68.1938,22.3376,-11.9028,-67.3703,20.2515,-14.5502,-66.4496,21.1722,-11.9028,-66.4496,21.1722,-11.9028,-66.4872,18.9298,-14.5502,-65.2842,19.4281,-11.9028,-66.4872,18.9298,-14.5502,-64.875,17.3707,-11.9028,-65.2842,19.4281,-11.9028,-66.4872,15.8116,-14.5502 +,-65.2842,15.3134,-11.9028,-66.4872,15.8116,-14.5502,-66.4496,13.5692,-11.9028,-65.2842,15.3134,-11.9028,-67.3703,14.4899,-14.5502,-68.1938,12.4038,-11.9028,-66.4496,13.5692,-11.9028,-68.692,13.6068,-14.5502,-70.2511,11.9946,-11.9028,-70.2511,13.2966,-14.5502,-72.3085,12.4038,-11.9028,-73.1319,14.4899,-14.5502,-74.0526,13.5692,-11.9028,-74.0526,13.5692,-11.9028,-74.0151,15.8116,-14.5502,-75.218,15.3134,-11.9028,-75.6273,17.3707,-11.9028 +,-74.0151,18.9298,-14.5502,-75.218,19.4281,-11.9028,-74.0526,21.1722,-11.9028,-71.8102,13.6068,-14.5502,-67.3703,14.4899,-14.5502,-74.3252,17.3707,-14.5502,-74.0526,21.1722,-11.9028,-71.8102,21.1347,-14.5502,-72.3085,22.3376,-11.9028,-70.2511,21.4448,-14.5502,-56.157,22.7469,-11.9028,-54.5979,21.1347,-14.5502,-54.0996,22.3376,-11.9028,-53.2762,20.2515,-14.5502,-52.3555,21.1722,-11.9028,-52.3555,21.1722,-11.9028,-52.393,18.9298,-14.5502 +,-51.1901,19.4281,-11.9028,-52.393,18.9298,-14.5502,-50.7808,17.3707,-11.9028,-51.1901,19.4281,-11.9028,-52.393,15.8116,-14.5502,-51.1901,15.3134,-11.9028,-52.393,15.8116,-14.5502,-52.3555,13.5692,-11.9028,-51.1901,15.3134,-11.9028,-53.2762,14.4899,-14.5502,-54.0996,12.4038,-11.9028,-52.3555,13.5692,-11.9028,-54.5979,13.6068,-14.5502,-56.157,11.9946,-11.9028,-56.157,13.2966,-14.5502,-58.2143,12.4038,-11.9028,-59.0378,14.4899,-14.5502 +,-59.9585,13.5692,-11.9028,-59.9585,13.5692,-11.9028,-59.9209,15.8116,-14.5502,-61.1239,15.3134,-11.9028,-61.5331,17.3707,-11.9028,-59.9209,18.9298,-14.5502,-61.1239,19.4281,-11.9028,-59.9585,21.1722,-11.9028,-57.7161,13.6068,-14.5502,-53.2762,14.4899,-14.5502,-60.231,17.3707,-14.5502,-59.9585,21.1722,-11.9028,-57.7161,21.1347,-14.5502,-58.2143,22.3376,-11.9028,-41.3207,22.7469,-11.9028,-39.7616,21.1347,-14.5502,-39.2633,22.3376,-11.9028 +,-38.4399,20.2515,-14.5502,-37.5192,21.1722,-11.9028,-37.5192,21.1722,-11.9028,-37.5567,18.9298,-14.5502,-36.3538,19.4281,-11.9028,-37.5567,18.9298,-14.5502,-35.9446,17.3707,-11.9028,-36.3538,19.4281,-11.9028,-37.5567,15.8116,-14.5502,-36.3538,15.3134,-11.9028,-37.5567,15.8116,-14.5502,-37.5192,13.5692,-11.9028,-36.3538,15.3134,-11.9028,-38.4399,14.4899,-14.5502,-39.2633,12.4038,-11.9028,-37.5192,13.5692,-11.9028,-39.7616,13.6068,-14.5502 +,-41.3207,11.9946,-11.9028,-41.3207,13.2966,-14.5502,-43.3781,12.4038,-11.9028,-44.2015,14.4899,-14.5502,-45.1222,13.5692,-11.9028,-45.1222,13.5692,-11.9028,-45.0847,15.8116,-14.5502,-46.2876,15.3134,-11.9028,-46.6968,17.3707,-11.9028,-45.0847,18.9298,-14.5502,-46.2876,19.4281,-11.9028,-45.1222,21.1722,-11.9028,-42.8798,13.6068,-14.5502,-38.4399,14.4899,-14.5502,-38.4399,20.2515,-14.5502,-44.2015,20.2515,-14.5502,-43.3781,22.3376,-11.9028 +,-45.1222,21.1722,-11.9028,-42.8798,21.1347,-14.5502,-25.8762,22.7469,-11.9028,-24.3171,21.1347,-14.5502,-23.8188,22.3376,-11.9028,-22.9954,20.2515,-14.5502,-22.0747,21.1722,-11.9028,-22.0747,21.1722,-11.9028,-22.1122,18.9298,-14.5502,-20.9093,19.4281,-11.9028,-22.1122,18.9298,-14.5502,-20.5,17.3707,-11.9028,-20.9093,19.4281,-11.9028,-22.1122,15.8116,-14.5502,-20.9093,15.3134,-11.9028,-22.1122,15.8116,-14.5502,-22.0747,13.5692,-11.9028 +,-20.9093,15.3134,-11.9028,-22.9954,14.4899,-14.5502,-23.8188,12.4038,-11.9028,-22.0747,13.5692,-11.9028,-24.3171,13.6068,-14.5502,-25.8762,11.9946,-11.9028,-25.8762,13.2966,-14.5502,-27.9335,12.4038,-11.9028,-28.757,14.4899,-14.5502,-29.6777,13.5692,-11.9028,-29.6777,13.5692,-11.9028,-29.6401,15.8116,-14.5502,-30.8431,15.3134,-11.9028,-31.2523,17.3707,-11.9028,-29.6401,18.9298,-14.5502,-30.8431,19.4281,-11.9028,-29.6777,21.1722,-11.9028 +,-27.4352,13.6068,-14.5502,-22.9954,14.4899,-14.5502,-29.9502,17.3707,-14.5502,-28.757,20.2515,-14.5502,-27.9335,22.3376,-11.9028,-29.6777,21.1722,-11.9028,-27.4352,21.1347,-14.5502,107.9444,35.0243,10,-107.9444,-35.0243,10,-107.9444,35.0243,10,-0.5284,3.0274,12.9352,1.5065,12.3483,14.5502,0.9659,1.8193,14.5502,-2.389,-9.8082,12.9488,-107.9444,-10.6847,10.0001,-107.9444,-9.9535,12.9488,7.8289,-1.8635,12.9488 +,8.6917,8.0277,10.0001,8.7251,-2.3586,10.0001,0.9659,1.8193,14.5502,6.5489,9.3162,14.5502,6.3583,-1.1247,14.5502,3.8758,-7.2729,12.9488,6.3583,-1.1247,14.5502,-0.8145,-1.6044,14.5502,-2.9478,-8.6131,14.5502,-4.6521,-2.9917,14.5502,-5.3724,-0.6155,12.9352,-107.9444,-2.9437,14.5502,-107.9444,-0.4925,12.9352,-2.398,-0.196,12.9352,-4.6521,-2.9917,14.5502,-5.3724,-0.6155,12.9352,-107.9444,-8.7423,14.5502 +,-107.9444,-2.9437,14.5502,-0.5284,13.5719,12.9352,-1.1384,3.3665,10.0001,-1.0997,13.9154,10.0001,-107.9444,-0.4925,12.9352,-5.5747,0.0516,10.0001,-5.3724,-0.6155,12.9352,-5.3724,-0.6155,12.9352,-2.8425,0.1994,10.0001,-2.398,-0.196,12.9352,8.4758,18.9594,14.5502,7.6173,11.9885,14.5502,3.9375,16.3356,14.5502,4.5887,-7.7272,10.0001,7.8289,8.5465,12.9488,-2.9478,-8.6131,14.5502,-107.9444,-8.7423,14.5502 +,8.5336,10.9286,13.2811,6.5489,9.3162,14.5502,7.6173,11.9885,14.5502,9.1576,10.1985,10.0001,11.3456,11.9472,13.6133,11.7309,11.0057,10.0001,7.3581,21.6903,10.0001,2.4837,18.0136,12.9352,2.0755,18.4846,10.0001,7.6031,21.0917,12.9352,3.9375,16.3356,14.5502,2.4837,18.0136,12.9352,107.9444,11.0183,13.6133,107.9444,12.3248,14.5502,11.3456,11.9472,13.6133,10.7931,13.2973,14.5502,107.9444,20.9234,12.9352 +,8.4758,18.9594,14.5502,7.6031,21.0917,12.9352,107.9444,19.1243,14.5502,10.7931,13.2973,14.5502,107.9444,21.4285,10.0001,7.6031,21.0917,12.9352,-1.9712,-10.5381,10.0001,3.8758,-7.2729,12.9488,4.5887,-7.7272,10.0001,-0.5284,3.0274,12.9352,-2.8425,0.1994,10.0001,-2.398,-0.196,12.9352,-2.389,-9.8082,12.9488,2.8589,-6.42,14.5502,3.8758,-7.2729,12.9488,-0.5284,13.5719,12.9352,1.5065,12.3483,14.5502 +,2.4837,18.0136,12.9352,9.1576,10.1985,10.0001,8.5336,10.9286,13.2811,10.7931,13.2973,14.5502,11.3456,11.9472,13.6133,1.5065,12.3483,14.5502,-107.9444,35.0243,-10,-107.9444,35.0243,-10,107.9444,24.4837,-9.9999,-107.9444,32.9246,-14.5502,-107.9444,26.7421,-14.5502,-107.9444,35.0243,-9.9999,-0.5284,13.5719,-12.9352,8.7251,-2.3586,-10.0001,7.8289,-1.8635,-12.9488,-107.9444,-0.4925,-12.9352,-5.3724,-0.6155,-12.9352 +,-4.6521,-2.9917,-14.5502,-107.9444,-2.9437,-14.5502,-107.9444,0.1956,-10.0001,-5.3724,-0.6155,-12.9352,7.8289,-1.8635,-12.9488,7.8289,8.5465,-12.9488,7.6173,11.9885,-14.5502,7.6031,21.0917,-12.9352,8.4758,18.9594,-14.5502,107.9444,10.2239,-10.0001,11.3456,11.9472,-13.6133,107.9444,11.0183,-13.6133,107.9444,19.1243,-14.5502,107.9444,12.3248,-14.5502,7.6031,21.0917,-12.9352,4.5887,-7.7272,-10.0001,3.8758,-7.2729,-12.9488 +,-0.5284,3.0274,-12.9352,-2.398,-0.196,-12.9352,-0.8145,-1.6044,-14.5502,3.8758,-7.2729,-12.9488,2.8589,-6.42,-14.5502,-0.5284,13.5719,-12.9352,1.5065,12.3483,-14.5502,2.4837,18.0136,-12.9352,8.5336,10.9286,-13.2811,10.7931,13.2973,-14.5502,7.6173,11.9885,-14.5502,8.5336,10.9286,-13.2811,-13.7964,6.5534,-10,-89.9244,24.4837,-11.9028,-7.9728,12.4584,-10,-85.4727,6.5534,-10,-13.7964,6.5534,-10 +,-9.3447,24.4837,-11.9028,-89.9244,13.9757,-11.9028,-9.3447,13.9757,-11.9028,19.3778,2.9546,-10,95.5059,-35.0243,-11.9028,13.5543,-2.9503,-10,77.672,-6.0581,-11.9029,80.057,-35.0243,-13.8064,25.7862,-9.9558,-11.9029,91.0542,2.9546,-10,19.3778,2.9546,-10,95.5059,-35.0243,-11.9028,95.5059,-4.4677,-11.9028,14.9261,-4.4677,-11.9028,77.672,-6.0581,-11.9029,29.5431,-6.058,-11.9029,80.057,-35.0243,-13.8064 +,80.057,-11.4731,-13.8064,27.1581,-11.4731,-13.8064,-66.4496,21.1722,-11.9028,-67.3703,20.2515,-14.5502,-66.4872,18.9298,-14.5502,-66.177,17.3707,-14.5502,-66.4872,15.8116,-14.5502,-67.3703,14.4899,-14.5502,-71.8102,13.6068,-14.5502,-74.0526,13.5692,-11.9028,-73.1319,14.4899,-14.5502,-74.3252,17.3707,-14.5502,-73.1319,20.2515,-14.5502,-67.3703,20.2515,-14.5502,-68.692,21.1347,-14.5502,-70.2511,21.4448,-14.5502,-71.8102,21.1347,-14.5502 +,-73.1319,20.2515,-14.5502,-74.0151,18.9298,-14.5502,-74.0151,15.8116,-14.5502,-73.1319,14.4899,-14.5502,-70.2511,13.2966,-14.5502,-68.692,13.6068,-14.5502,-66.4872,15.8116,-14.5502,-66.177,17.3707,-14.5502,-66.4872,18.9298,-14.5502,-74.0526,21.1722,-11.9028,-73.1319,20.2515,-14.5502,-56.157,21.4448,-14.5502,-52.3555,21.1722,-11.9028,-53.2762,20.2515,-14.5502,-52.393,18.9298,-14.5502,-52.0829,17.3707,-14.5502,-52.393,15.8116,-14.5502 +,-53.2762,14.4899,-14.5502,-57.7161,13.6068,-14.5502,-59.9585,13.5692,-11.9028,-59.0378,14.4899,-14.5502,-60.231,17.3707,-14.5502,-59.0378,20.2515,-14.5502,-53.2762,20.2515,-14.5502,-54.5979,21.1347,-14.5502,-56.157,21.4448,-14.5502,-57.7161,21.1347,-14.5502,-59.0378,20.2515,-14.5502,-59.9209,18.9298,-14.5502,-59.9209,15.8116,-14.5502,-59.0378,14.4899,-14.5502,-56.157,13.2966,-14.5502,-54.5979,13.6068,-14.5502,-52.393,15.8116,-14.5502 +,-52.0829,17.3707,-14.5502,-52.393,18.9298,-14.5502,-59.9585,21.1722,-11.9028,-59.0378,20.2515,-14.5502,-41.3207,21.4448,-14.5502,-37.5192,21.1722,-11.9028,-38.4399,20.2515,-14.5502,-37.5567,18.9298,-14.5502,-37.2466,17.3707,-14.5502,-37.5567,15.8116,-14.5502,-38.4399,14.4899,-14.5502,-42.8798,13.6068,-14.5502,-45.1222,13.5692,-11.9028,-44.2015,14.4899,-14.5502,-45.3948,17.3707,-14.5502,-44.2015,20.2515,-14.5502,-39.7616,21.1347,-14.5502 +,-41.3207,21.4448,-14.5502,-42.8798,21.1347,-14.5502,-44.2015,20.2515,-14.5502,-45.0847,18.9298,-14.5502,-45.3948,17.3707,-14.5502,-45.0847,15.8116,-14.5502,-44.2015,14.4899,-14.5502,-41.3207,13.2966,-14.5502,-39.7616,13.6068,-14.5502,-37.5567,15.8116,-14.5502,-37.2466,17.3707,-14.5502,-37.5567,18.9298,-14.5502,-25.8762,21.4448,-14.5502,-22.0747,21.1722,-11.9028,-22.9954,20.2515,-14.5502,-22.1122,18.9298,-14.5502,-21.8021,17.3707,-14.5502 +,-22.1122,15.8116,-14.5502,-22.9954,14.4899,-14.5502,-27.4352,13.6068,-14.5502,-29.6777,13.5692,-11.9028,-28.757,14.4899,-14.5502,-29.9502,17.3707,-14.5502,-28.757,20.2515,-14.5502,-22.9954,20.2515,-14.5502,-24.3171,21.1347,-14.5502,-25.8762,21.4448,-14.5502,-27.4352,21.1347,-14.5502,-28.757,20.2515,-14.5502,-29.6401,18.9298,-14.5502,-29.6401,15.8116,-14.5502,-28.757,14.4899,-14.5502,-25.8762,13.2966,-14.5502,-24.3171,13.6068,-14.5502 +,-22.1122,15.8116,-14.5502,-21.8021,17.3707,-14.5502,-22.1122,18.9298,-14.5502,107.9444,-35.0243,10,-0.5284,13.5719,12.9352,2.8589,-6.42,14.5502,2.8589,-6.42,14.5502,-4.6521,-2.9917,14.5502,-0.8145,-1.6044,14.5502,-0.5284,3.0274,12.9352,-107.9444,-0.4925,12.9352,-107.9444,0.1956,10.0001,-5.3724,-0.6155,12.9352,8.5336,10.9286,13.2811,7.6031,21.0917,12.9352,8.4758,18.9594,14.5502,107.9444,10.2239,10.0001 +,107.9444,11.0183,13.6133,11.3456,11.9472,13.6133,107.9444,19.1243,14.5502,107.9444,12.3248,14.5502,107.9444,20.9234,12.9352,7.6031,21.0917,12.9352,3.8758,-7.2729,12.9488,-0.5284,3.0274,12.9352,-2.398,-0.196,12.9352,-0.8145,-1.6044,14.5502,-2.398,-0.196,12.9352,-2.389,-9.8082,12.9488,-2.9478,-8.6131,14.5502,-0.5284,13.5719,12.9352,2.4837,18.0136,12.9352,2.0755,18.4846,10.0001,2.4837,18.0136,12.9352 +,8.5336,10.9286,13.2811,7.6173,11.9885,14.5502,10.7931,13.2973,14.5502] +,"normals":[0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-0.938,-0.346,0,-0.938,-0.346,0,0.687,-0.727,0,0.687,-0.727,0,0.687,-0.727,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0 +,0,1,0,0,-0.761,-0.649,0,-0.761,-0.649,-0.573,0.134,-0.808,-0.825,0.21,-0.524,-0.628,0.206,-0.751,0.001,-0.971,-0.241,0.169,-0.882,-0.44,0.001,-0.903,-0.431,0.817,-0.27,-0.509,0.951,-0.091,-0.295,0.865,-0.142,-0.48,0,0,-1,0,0,-1,0,0,-1,0.556,-0.699,-0.45,0.684,-0.201,-0.701 +,0.472,-0.613,-0.634,0,0,-1,0,0,-1,0,0,-1,-0.045,0.822,-0.567,0.001,0.55,-0.835,-0.076,0.572,-0.816,-0.469,0.657,-0.591,-0.076,0.572,-0.816,-0.409,0.45,-0.794,0,0,-1,0,0,-1,-0.815,0.25,-0.523,-0.948,0.229,-0.222,-0.825,0.21,-0.524,-0.025,0.974,-0.223,0.001,0.82,-0.572 +,-0.045,0.822,-0.567,-0.095,0.977,-0.189,-0.045,0.822,-0.567,-0.469,0.657,-0.591,0,0,-1,0,0,-1,0,0,-1,0.608,-0.747,-0.27,0.556,-0.699,-0.45,0.865,-0.142,-0.48,0.723,-0.171,-0.67,0.125,-0.774,-0.621,0.001,-0.798,-0.603,0.569,-0.581,-0.582,0.865,-0.142,-0.48,0.294,-0.918,-0.266,0.094,-0.787,-0.609 +,0.569,-0.581,-0.582,-0.584,0.619,-0.525,-0.265,0.941,-0.213,-0.669,0.713,-0.208,-0.403,0.417,-0.815,-0.226,0.82,-0.525,-0.584,0.619,-0.525,0.135,-0.955,-0.263,-0.007,-0.835,-0.55,0.094,-0.787,-0.609,-0.006,-0.583,-0.813,0.085,-0.577,-0.812,-0.137,0.562,-0.816,0,0.875,-0.484,-0.226,0.82,-0.525,0,0,-1,0,0,-1 +,-0.226,0.82,-0.525,0.002,0.985,-0.17,0.198,-0.946,-0.256,0.556,-0.699,-0.45,-0.825,0.21,-0.524,-0.852,0.479,-0.211,-0.469,0.657,-0.591,-0.469,0.657,-0.591,0.472,-0.613,-0.634,-0.815,0.25,-0.523,-0.584,0.619,-0.525,-0.93,0.299,-0.212,-0.584,0.619,-0.525,-0.669,0.713,-0.208,0.928,-0.244,-0.281,0.085,-0.577,-0.812,0.569,-0.581,-0.582 +,0.094,-0.787,-0.609,0,0,-1,0,-0.782,-0.623,0,-0.782,-0.623,0,-0.782,-0.623,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,-0.485,-0.479,-0.732,-0.485,-0.479,-0.732,-0.485,-0.479,-0.732,0.485,-0.479,-0.732,0.485,-0.479,-0.732,0.485,-0.479,-0.732 +,0,0,-1,0,0,-1,0,0,-1,0,0.782,-0.623,0,0.782,-0.623,0,0.782,-0.623,0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,0,0.782,-0.623,0,0.782,-0.623,0,0.782,-0.623,0.811,0,-0.585,0.811,0,-0.585 +,0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,0.485,0.479,-0.732,0.485,0.479,-0.732,0.485,0.479,-0.732,-0.485,0.479,-0.732,-0.485,0.479,-0.732,-0.485,0.479,-0.732,0,0,-1,0,0,-1,0,0,-1,0.491,0.473,-0.731,0.491,0.473,-0.731,0.491,0.473,-0.731,-0.491,0.473,-0.731 +,-0.491,0.473,-0.731,-0.491,0.473,-0.731,0,0,-1,0,0,-1,0,0,-1,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441 +,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441 +,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.343,0.829,-0.441,0,0.897,-0.441,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441 +,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441 +,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.343,0.829,-0.441,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441 +,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441 +,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441 +,-0.635,0.635,-0.441,-0.343,0.829,-0.441,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441 +,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441 +,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.635,0.635,-0.441,-0.343,0.829,-0.441,0,0,1,0,0,1,0,0,1,-0.825,0.21,0.524,-0.573,0.134,0.808,-0.628,0.206,0.751,0.169,-0.882,0.44,0.001,-0.971,0.241,0.001,-0.903,0.431,0.817,-0.27,0.509 +,0.951,-0.091,0.295,0.893,-0.313,0.324,0,0,1,0,0,1,0,0,1,0.556,-0.699,0.45,0.684,-0.201,0.701,0,0,1,0,0,1,0,0,1,-0.045,0.822,0.567,0.001,0.55,0.835,0.001,0.82,0.572,-0.469,0.657,0.591,-0.076,0.572,0.816,-0.045,0.822,0.567,0,0,1 +,0,0,1,-0.815,0.25,0.523,-0.948,0.229,0.222,-0.93,0.299,0.212,0.001,0.82,0.572,-0.025,0.974,0.223,-0.045,0.822,0.567,-0.045,0.822,0.567,-0.095,0.977,0.189,-0.469,0.657,0.591,0,0,1,0,0,1,0,0,1,0.608,-0.747,0.27,0.865,-0.142,0.48,0.125,-0.774,0.621,0.001,-0.798,0.603 +,0.569,-0.581,0.582,0.723,-0.171,0.67,0.472,-0.478,0.74,0.294,-0.918,0.266,0.094,-0.787,0.609,0.135,-0.955,0.263,-0.265,0.941,0.213,-0.584,0.619,0.525,-0.669,0.713,0.208,-0.226,0.82,0.525,-0.403,0.417,0.815,-0.584,0.619,0.525,-0.007,-0.835,0.55,-0.006,-0.583,0.813,0.094,-0.787,0.609,0.085,-0.577,0.812,0,0.875,0.484 +,-0.137,0.562,0.816,-0.226,0.82,0.525,0,0,1,0,0,1,0.002,0.985,0.17,-0.226,0.82,0.525,0.198,-0.946,0.256,0.556,-0.699,0.45,0.608,-0.747,0.27,-0.825,0.21,0.524,-0.852,0.479,0.211,-0.469,0.657,0.591,0.169,-0.882,0.44,0.472,-0.613,0.634,0.556,-0.699,0.45,-0.815,0.25,0.523,-0.573,0.134,0.808 +,-0.584,0.619,0.525,0.928,-0.244,0.281,0.569,-0.581,0.582,0.085,-0.577,0.812,0.094,-0.787,0.609,0,0,1,0,0,-1,0,1,0,0,-1,0,0,0.687,-0.727,0,0,-1,0,1,0,-0.815,0.25,-0.523,0.893,-0.313,-0.324,0.817,-0.27,-0.509,0.001,0.82,-0.572,-0.045,0.822,-0.567 +,-0.076,0.572,-0.816,0,0,-1,0.001,0.974,-0.228,-0.045,0.822,-0.567,0.817,-0.27,-0.509,0.865,-0.142,-0.48,0.472,-0.478,-0.74,-0.226,0.82,-0.525,-0.137,0.562,-0.816,-0.008,-0.977,-0.215,0.094,-0.787,-0.609,-0.007,-0.835,-0.55,-0.001,0.668,-0.744,0,0,-1,-0.226,0.82,-0.525,0.608,-0.747,-0.27,0.556,-0.699,-0.45 +,-0.825,0.21,-0.524,-0.469,0.657,-0.591,-0.409,0.45,-0.794,0.556,-0.699,-0.45,0.472,-0.613,-0.634,-0.815,0.25,-0.523,-0.573,0.134,-0.808,-0.584,0.619,-0.525,0.569,-0.581,-0.582,0.085,-0.577,-0.812,0.472,-0.478,-0.74,0.569,-0.581,-0.582,0,-0.782,-0.623,-0.811,0,-0.585,0.811,0,-0.585,-0.485,-0.479,-0.732,0.485,-0.479,-0.732 +,0,0,-1,0,0,-1,0,0,-1,0,0.782,-0.623,0.811,0,-0.585,-0.811,0,-0.585,0,0.782,-0.623,0.811,0,-0.585,-0.811,0,-0.585,0.485,0.479,-0.732,-0.485,0.479,-0.732,0,0,-1,0,0,-1,0,0,-1,0.491,0.473,-0.731,-0.491,0.473,-0.731,0,0,-1 +,0,0,-1,0,0,-1,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.635,0.635,-0.441,0,0.897,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441 +,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.635,0.635,-0.441,0,0.897,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0.897,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441 +,0.829,-0.343,-0.441,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,1,-0.815,0.25,0.523,0.472,-0.613,0.634,0,0,1,-0.076,0.572,0.816,-0.409,0.45,0.794,-0.825,0.21,0.524,0.001,0.82,0.572,0.001,0.974,0.228,-0.045,0.822,0.567,0.569,-0.581,0.582,-0.226,0.82,0.525,-0.137,0.562,0.816,-0.008,-0.977,0.215 +,-0.007,-0.835,0.55,0.094,-0.787,0.609,-0.001,0.668,0.744,0,0,1,0,0.875,0.484,-0.226,0.82,0.525,0.556,-0.699,0.45,-0.825,0.21,0.524,-0.469,0.657,0.591,-0.409,0.45,0.794,-0.469,0.657,0.591,0.169,-0.882,0.44,0.125,-0.774,0.621,-0.815,0.25,0.523,-0.584,0.619,0.525,-0.669,0.713,0.208,-0.584,0.619,0.525 +,0.569,-0.581,0.582,0.472,-0.478,0.74,0.085,-0.577,0.812] +,"uvs":[0.557,0.188,0.34,0.118,0.557,0.118,0.547,0.817,0.763,0.796,0.763,0.817,0.136,0.899,0.318,0.903,0.136,0.903,0.136,0.893,0.32,0.89,0.32,0.893,0.136,0.886,0.352,0.88,0.352,0.886,0.32,0.896,0.136,0.893,0.32,0.893,0.318,0.906,0.136,0.906,0.987,0.425,0.985,0.415,0.987,0.414,0.542,0.876,0.648,0.879 +,0.542,0.879,0.977,0.511,0.979,0.521,0.976,0.521,0.252,0.699,0.246,0.691,0.252,0.688,0.13,0.943,0.13,0.95,0.128,0.944,0.244,0.688,0.242,0.681,0.248,0.683,0.24,0.689,0.137,0.688,0.24,0.686,0.994,0.583,0.991,0.581,0.995,0.581,0.24,0.686,0.137,0.682,0.979,0.115,0.977,0.104,0.98,0.104,0.122,0.958 +,0.019,0.955,0.122,0.955,0.125,0.958,0.122,0.955,0.125,0.955,0.253,0.701,0.254,0.708,0.249,0.706,0.979,0.504,0.976,0.504,0.131,0.96,0.128,0.96,0.647,0.881,0.542,0.881,0.13,0.962,0.131,0.96,0.136,0.95,0.139,0.954,0.136,0.953,0.248,0.936,0.254,0.939,0.247,0.939,0.249,0.706,0.253,0.711,0.248,0.708 +,0.139,0.95,0.235,0.954,0.257,0.701,0.353,0.702,0.256,0.703,0.255,0.934,0.354,0.936,0.254,0.936,0.256,0.703,0.353,0.709,0.254,0.936,0.354,0.939,0.648,0.876,0.654,0.88,0.98,0.104,0.977,0.101,0.98,0.101,0.984,0.412,0.653,0.882,0.244,0.703,0.248,0.708,0.976,0.115,0.98,0.12,0.977,0.121,0.979,0.523 +,0.988,0.27,0.985,0.269,0.988,0.269,0.247,0.702,0.308,0.966,0.378,0.969,0.309,0.969,0.993,0.535,0.991,0.546,0.991,0.534,0.975,0.672,0.975,0.683,0.973,0.682,0.184,0.991,0.192,0.994,0.184,0.994,0.973,0.664,0.978,0.671,0.975,0.672,0.664,0.698,0.733,0.698,0.658,0.714,0.805,0.966,0.734,0.963,0.803,0.963 +,0.757,0.886,0.756,0.855,0.76,0.887,0.972,0.791,0.97,0.76,0.972,0.76,0.78,0.977,0.733,0.979,0.734,0.977,0.81,0.957,0.81,0.933,0.813,0.958,0.091,0.914,0.089,0.891,0.091,0.891,0.76,0.887,0.754,0.893,0.757,0.886,0.204,0.991,0.196,0.994,0.196,0.991,0.725,0.406,0.656,0.406,0.651,0.369,0.813,0.958 +,0.808,0.962,0.81,0.957,0.986,0.657,0.981,0.66,0.981,0.657,0.879,0.162,0.834,0.162,0.83,0.135,0.995,0.213,0.992,0.212,0.995,0.211,0.992,0.21,0.994,0.209,0.348,0.997,0.349,0.994,0.35,0.997,0.424,0.996,0.427,0.994,0.427,0.996,0.424,0.993,0.427,0.992,0.33,0.996,0.333,0.994,0.333,0.996,0.992,0.349 +,0.995,0.348,0.995,0.35,0.992,0.348,0.995,0.346,0.992,0.346,0.995,0.344,0.992,0.343,0.995,0.342,0.995,0.983,0.993,0.981,0.995,0.981,0.996,0.979,0.993,0.978,0.995,0.977,0.995,0.975,0.988,0.83,0.991,0.833,0.983,0.832,0.994,0.217,0.992,0.215,0.995,0.215,0.992,0.213,0.995,0.087,0.992,0.086,0.995,0.085 +,0.992,0.084,0.995,0.083,0.957,0.996,0.958,0.993,0.959,0.996,0.993,0.168,0.996,0.167,0.996,0.169,0.993,0.165,0.996,0.164,0.353,0.996,0.356,0.994,0.356,0.996,0.992,0.361,0.995,0.36,0.995,0.362,0.992,0.359,0.995,0.358,0.992,0.358,0.995,0.355,0.992,0.354,0.995,0.353,0.994,0.714,0.992,0.711,0.995,0.712 +,0.995,0.71,0.992,0.708,0.995,0.708,0.994,0.706,0.988,0.139,0.991,0.142,0.984,0.141,0.995,0.091,0.992,0.089,0.995,0.089,0.995,0.439,0.992,0.438,0.995,0.437,0.991,0.436,0.994,0.435,0.342,0.997,0.344,0.994,0.344,0.997,0.537,0.991,0.54,0.99,0.54,0.992,0.537,0.988,0.54,0.988,0.992,0.948,0.995,0.946 +,0.995,0.948,0.992,0.594,0.995,0.593,0.995,0.595,0.993,0.593,0.996,0.591,0.993,0.591,0.995,0.589,0.992,0.588,0.995,0.587,0.995,0.282,0.992,0.28,0.995,0.28,0.995,0.278,0.992,0.277,0.995,0.276,0.995,0.274,0.24,0.98,0.244,0.984,0.24,0.988,0.991,0.442,0.995,0.441,0.994,0.443,0.992,0.441,0.995,0.698 +,0.992,0.697,0.995,0.696,0.991,0.695,0.994,0.694,0.951,0.996,0.953,0.993,0.953,0.996,0.915,0.995,0.919,0.994,0.918,0.996,0.915,0.992,0.918,0.992,0.984,0.431,0.987,0.429,0.987,0.431,0.991,0.867,0.995,0.866,0.994,0.868,0.992,0.866,0.995,0.864,0.992,0.864,0.995,0.862,0.991,0.861,0.994,0.86,0.996,0.027 +,0.994,0.025,0.997,0.025,0.997,0.023,0.994,0.022,0.997,0.021,0.996,0.019,0.988,0.819,0.991,0.822,0.983,0.82,0.991,0.701,0.995,0.7,0.994,0.702,0.992,0.7,0.218,0.475,0.002,0.545,0.002,0.475,0.796,0.906,0.793,0.915,0.793,0.905,0.648,0.887,0.542,0.89,0.542,0.887,0.747,0.303,0.748,0.313,0.744,0.303 +,0.246,0.732,0.251,0.725,0.251,0.735,0.747,0.296,0.75,0.302,0.244,0.736,0.241,0.743,0.24,0.737,0.239,0.734,0.136,0.736,0.136,0.733,0.994,0.447,0.991,0.449,0.991,0.447,0.136,0.742,0.136,0.736,0.969,0.607,0.967,0.617,0.966,0.607,0.565,0.955,0.668,0.952,0.668,0.956,0.668,0.956,0.671,0.952,0.671,0.955 +,0.253,0.715,0.252,0.722,0.249,0.718,0.744,0.296,0.751,0.312,0.647,0.885,0.542,0.885,0.752,0.315,0.754,0.312,0.754,0.315,0.308,0.954,0.311,0.95,0.311,0.954,0.142,0.943,0.136,0.947,0.136,0.944,0.252,0.713,0.249,0.718,0.247,0.716,0.408,0.95,0.353,0.722,0.256,0.723,0.255,0.721,0.893,0.921,0.794,0.923 +,0.793,0.921,0.353,0.715,0.255,0.721,0.243,0.944,0.142,0.946,0.648,0.89,0.654,0.887,0.655,0.89,0.97,0.617,0.968,0.621,0.797,0.902,0.961,0.945,0.967,0.943,0.968,0.945,0.244,0.72,0.246,0.722,0.968,0.601,0.749,0.315,0.99,0.744,0.993,0.742,0.993,0.744,0.246,0.722,0.34,0.188,0.547,0.796,0.319,0.899 +,0.136,0.89,0.136,0.88,0.136,0.896,0.984,0.426,0.98,0.51,0.132,0.949,0.137,0.691,0.991,0.584,0.991,0.581,0.137,0.688,0.019,0.958,0.122,0.955,0.132,0.949,0.131,0.96,0.129,0.963,0.254,0.936,0.254,0.708,0.235,0.95,0.257,0.701,0.353,0.7,0.354,0.934,0.353,0.702,0.254,0.936,0.655,0.877,0.654,0.88 +,0.98,0.104,0.984,0.412,0.986,0.41,0.654,0.88,0.653,0.882,0.244,0.703,0.247,0.702,0.98,0.12,0.976,0.524,0.988,0.27,0.984,0.27,0.985,0.269,0.38,0.966,0.993,0.546,0.978,0.671,0.192,0.991,0.975,0.663,0.739,0.714,0.658,0.704,0.739,0.704,0.733,0.966,0.754,0.855,0.97,0.793,0.781,0.979,0.808,0.934 +,0.089,0.916,0.756,0.894,0.204,0.994,0.731,0.369,0.731,0.4,0.651,0.4,0.811,0.963,0.987,0.66,0.883,0.135,0.883,0.158,0.83,0.158,0.348,0.997,0.348,0.994,0.424,0.996,0.424,0.994,0.33,0.996,0.33,0.994,0.992,0.344,0.995,0.983,0.992,0.982,0.993,0.979,0.992,0.976,0.988,0.838,0.986,0.838,0.985,0.837 +,0.983,0.836,0.983,0.835,0.983,0.833,0.985,0.83,0.986,0.83,0.989,0.83,0.99,0.832,0.991,0.835,0.99,0.836,0.989,0.837,0.994,0.217,0.992,0.216,0.992,0.087,0.957,0.996,0.957,0.993,0.993,0.168,0.994,0.167,0.353,0.996,0.353,0.994,0.992,0.356,0.994,0.714,0.991,0.713,0.992,0.71,0.991,0.707,0.988,0.147 +,0.987,0.147,0.985,0.146,0.984,0.145,0.983,0.144,0.983,0.142,0.985,0.14,0.987,0.139,0.99,0.14,0.991,0.141,0.991,0.144,0.991,0.145,0.99,0.146,0.995,0.091,0.992,0.09,0.992,0.439,0.342,0.997,0.342,0.994,0.537,0.991,0.537,0.99,0.992,0.948,0.992,0.946,0.993,0.59,0.995,0.282,0.992,0.281,0.992,0.278 +,0.992,0.275,0.239,0.988,0.237,0.988,0.236,0.987,0.236,0.985,0.236,0.984,0.236,0.982,0.237,0.981,0.239,0.98,0.242,0.981,0.243,0.982,0.244,0.985,0.243,0.987,0.242,0.988,0.992,0.698,0.951,0.996,0.951,0.993,0.915,0.995,0.916,0.994,0.984,0.431,0.984,0.429,0.992,0.863,0.996,0.027,0.993,0.026,0.994,0.023 +,0.993,0.02,0.988,0.827,0.986,0.827,0.985,0.826,0.983,0.825,0.983,0.823,0.983,0.822,0.985,0.819,0.986,0.819,0.989,0.819,0.99,0.82,0.991,0.823,0.99,0.825,0.989,0.826,0.218,0.545,0.796,0.916,0.749,0.296,0.247,0.741,0.24,0.737,0.996,0.449,0.97,0.617,0.565,0.955,0.565,0.952,0.668,0.956,0.308,0.951 +,0.142,0.946,0.253,0.715,0.408,0.954,0.353,0.723,0.256,0.723,0.893,0.923,0.353,0.722,0.243,0.947,0.142,0.946,0.654,0.887,0.97,0.617,0.971,0.621,0.795,0.901,0.797,0.902,0.961,0.945,0.961,0.943,0.244,0.72,0.247,0.716,0.965,0.601,0.968,0.601,0.99,0.744,0.989,0.742,0.993,0.742] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,8,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,36,46,47 +,48,49,50,51,52,53,54,55,56,57,58,26,59,33,60,61,25,62,63,64,61,65,66,67,68,69,70,71,72,73,74,75,76,67,77,78,79,80,81,82,83,84,56,85,86,70,87,88,24,89 +,90,91,92,22,21,35,31,30,24,93,62,94,72,95,96,97,98,99,28,27,100,101,102,103,55,57,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127 +,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,160,161,162,163,164,165,166,167,168,167,169,170,171,172,173,174,175 +,176,177,178,175,179,180,178,180,181,182,183,184,185,184,186,185,186,187,188,187,189,188,190,191,192,193,194,195,195,196,158,197,198,199,199,200,201,202,203,204,205,206,207,206,208,209,210,211,212,213 +,214,215,216,217,214,218,219,217,219,220,221,222,223,224,223,225,224,225,226,227,226,228,227,229,230,231,232,233,234,233,197,234,235,236,237,237,238,239,240,241,242,243,244,245,244,246,247,248,249,250 +,251,252,253,254,255,252,256,257,255,257,258,259,260,261,262,261,263,262,263,264,265,264,266,265,267,268,269,270,271,272,273,235,271,274,275,276,276,277,278,279,280,281,282,283,284,283,285,286,287,288 +,289,290,291,292,293,294,291,295,296,294,296,297,298,299,300,301,300,302,301,302,303,304,303,305,304,306,307,308,309,310,311,312,274,310,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328 +,329,322,330,331,332,333,334,335,336,337,338,332,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,322,324,329,354,322,355,321,356,357,358,359,360,361,362,363,364,365,366,367,368,369,362,361 +,370,371,372,373,374,375,376,377,350,378,379,363,380,381,382,383,384,342,318,385,316,327,330,325,386,387,388,389,367,390,343,391,341,354,392,323,393,394,395,396,351,326,0,397,1,3,398,4,6,399 +,7,9,400,10,12,401,13,15,402,16,8,7,18,20,403,21,23,87,24,26,404,27,29,103,30,32,405,33,35,44,36,38,406,39,41,407,408,44,409,45,46,96,47,49,410,50,52,49,411,55 +,83,56,58,404,26,33,412,413,25,24,62,64,414,61,66,75,67,69,415,70,72,416,73,75,417,76,418,419,78,80,420,81,83,421,84,422,81,86,87,423,424,425,47,90,426,427,22,35,37,31 +,24,428,429,430,431,72,96,46,432,99,433,28,434,435,436,103,29,55,104,437,105,107,438,108,110,439,111,113,440,114,116,441,117,442,121,120,443,119,121,120,444,442,122,445,123,125,446,126,128,447 +,129,131,448,132,134,449,135,137,450,138,140,451,141,143,452,144,148,453,146,454,146,453,147,455,148,149,456,150,152,457,153,157,458,155,459,155,458,156,460,157,158,196,159,160,159,161,461,462,164,463 +,464,167,167,464,169,465,466,172,174,177,175,177,179,178,179,467,180,180,467,181,468,469,184,184,470,186,186,470,187,187,471,189,472,473,474,474,475,476,476,477,192,192,478,479,479,190,192,480,481,191 +,191,482,483,483,484,472,472,474,476,476,192,472,190,480,191,191,483,472,472,192,191,485,486,194,195,194,196,197,487,198,199,198,200,488,489,203,490,491,206,206,491,208,492,493,211,213,216,214,216,218 +,217,218,494,219,219,494,220,495,496,223,223,497,225,225,497,226,226,498,228,499,500,501,501,502,503,503,504,231,231,505,506,506,229,231,507,508,230,230,509,510,510,511,499,499,501,503,503,231,499,229 +,507,230,230,510,499,499,231,230,512,513,233,233,487,197,235,514,236,237,236,238,515,516,241,517,518,244,244,518,246,519,520,249,251,254,252,254,256,255,256,521,257,257,521,258,522,523,261,261,524,263 +,263,524,264,264,525,266,269,526,527,527,528,529,529,530,531,531,532,533,533,267,531,534,535,268,268,536,537,537,538,269,269,527,529,529,531,269,267,534,268,268,537,269,269,531,267,270,273,271,273,514 +,235,274,539,275,276,275,277,540,541,280,542,543,283,283,543,285,544,545,288,290,293,291,293,295,294,295,546,296,296,546,297,547,548,300,300,549,302,302,549,303,303,550,305,551,552,553,553,554,555,555 +,556,308,308,557,558,558,306,308,559,560,307,307,561,562,562,563,551,551,553,555,555,308,551,306,559,307,307,562,551,551,308,307,309,312,310,312,539,274,313,564,314,316,565,317,319,380,320,322,354,323 +,325,396,326,328,566,329,330,567,331,333,568,334,336,569,337,332,331,339,341,570,342,571,572,345,573,345,348,350,377,351,353,328,322,329,358,354,355,319,321,357,354,358,360,574,361,363,575,364,366,576 +,367,369,577,362,370,578,579,373,580,374,376,581,377,378,582,583,380,319,584,585,586,384,318,587,588,327,567,330,589,590,387,591,592,367,343,593,594,354,357,392,595,596,597,396,352,351] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":598,"indexStart":0,"indexCount":1146}] +,"instances":[]} +,{"name":"ObstacleBarTop","id":"ObstacleBarTop","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4825.8257,2239.5981],"rotation":[0,0,3.1416],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[107.9444,33.1536,-10,-107.9444,-27.2487,-10,107.9444,-27.2487,-10,-107.9444,33.1536,10,107.9444,33.1536,-10,107.9444,33.1536,10,-107.9444,22.6131,-9.9999,107.9444,22.6131,-11.9028,-107.9444,22.6131,-11.9028,-107.9444,33.1536,-12.5673,107.9444,31.0539,-14.5502,107.9444,33.1536,-12.5673,-107.9444,31.0539,-14.5502,107.9444,24.8714,-14.5502,107.9444,31.0539,-14.5502,107.9444,33.1536,-10,-107.9444,33.1536,-12.5673 +,107.9444,33.1536,-12.5673,107.9444,24.8714,-14.5502,-107.9444,24.8714,-14.5502,1.5065,9.4957,-14.5502,-0.5284,2.2795,-12.9352,0.9659,1.0714,-14.5502,-107.9444,-11.4326,-10.0001,-2.389,-10.5561,-12.9488,-107.9444,-10.7014,-12.9488,7.8289,-2.6114,-12.9488,8.6917,5.1751,-10.0001,7.8289,5.6939,-12.9488,6.5489,6.4637,-14.5502,0.9659,1.0714,-14.5502,6.3583,-1.8726,-14.5502,3.8758,-8.0208,-12.9488,6.3583,-1.8726,-14.5502 +,2.8589,-7.1679,-14.5502,-0.8145,-2.3523,-14.5502,-2.9478,-9.361,-14.5502,2.8589,-7.1679,-14.5502,-5.3724,-1.3634,-12.9352,-107.9444,-3.6916,-14.5502,-4.6521,-3.7396,-14.5502,-2.398,-0.9439,-12.9352,-4.6521,-3.7396,-14.5502,-0.8145,-2.3523,-14.5502,-4.6521,-3.7396,-14.5502,-107.9444,-9.4903,-14.5502,-0.5284,10.7194,-12.9352,-1.1384,2.6186,-10.0001,-0.5284,2.2795,-12.9352,-5.5747,-0.6963,-10.0001,-107.9444,-1.2404,-12.9352 +,-5.3724,-1.3634,-12.9352,-2.8425,-0.5485,-10.0001,-5.3724,-1.3634,-12.9352,-2.398,-0.9439,-12.9352,7.6173,9.136,-14.5502,8.4758,16.1069,-14.5502,3.9375,13.4831,-14.5502,4.5887,-8.4751,-10.0001,3.8758,-8.0208,-12.9488,7.8289,5.6939,-12.9488,6.5489,6.4637,-14.5502,-2.9478,-9.361,-14.5502,-107.9444,-9.4903,-14.5502,8.5336,8.0761,-13.2811,7.8289,5.6939,-12.9488,9.1576,7.3459,-10.0001,11.3456,9.0946,-13.6133 +,8.5336,8.0761,-13.2811,2.4837,15.1611,-12.9352,7.3581,18.8378,-10.0001,2.0755,15.6321,-10.0001,3.9375,13.4831,-14.5502,7.6031,18.2392,-12.9352,2.4837,15.1611,-12.9352,11.7309,8.1531,-10.0001,107.9444,8.1658,-13.6133,11.3456,9.0946,-13.6133,107.9444,9.4723,-14.5502,10.7931,10.4448,-14.5502,8.4758,16.1069,-14.5502,107.9444,18.0709,-12.9352,7.6031,18.2392,-12.9352,10.7931,10.4448,-14.5502,107.9444,16.2718,-14.5502 +,7.6031,18.2392,-12.9352,107.9444,18.576,-10.0001,-1.9712,-11.286,-10.0001,3.8758,-8.0208,-12.9488,-0.5284,2.2795,-12.9352,-2.8425,-0.5485,-10.0001,-2.398,-0.9439,-12.9352,-2.398,-0.9439,-12.9352,2.8589,-7.1679,-14.5502,-0.5284,10.7194,-12.9352,2.4837,15.1611,-12.9352,-1.0997,11.0629,-10.0001,2.4837,15.1611,-12.9352,2.0755,15.6321,-10.0001,9.1576,7.3459,-10.0001,10.7931,10.4448,-14.5502,8.5336,8.0761,-13.2811 +,11.3456,9.0946,-13.6133,1.5065,9.4957,-14.5502,-85.4727,4.5087,-10,-15.1682,6.026,-11.9028,-84.1008,6.026,-11.9028,-89.9244,11.931,-11.9028,-91.2963,22.6131,-10,-91.2963,10.4136,-10,-9.3447,11.931,-11.9028,-7.9728,22.6131,-10,-9.3447,22.6131,-11.9028,-91.2963,10.4136,-10,-84.1008,6.026,-11.9028,-89.9244,11.931,-11.9028,-15.1682,6.026,-11.9028,-7.9728,10.4136,-10,-9.3447,11.931,-11.9028 +,-84.1008,6.026,-11.9028,-15.1682,6.026,-11.9028,-89.9244,22.6131,-11.9028,91.0542,3.2758,-10,20.7497,1.7585,-11.9028,89.6823,1.7584,-11.9028,77.299,-7.2542,-13.8064,30.542,-5.7369,-11.9029,31.9138,-7.2542,-13.8064,77.299,-22.3274,-13.8064,77.299,-7.2542,-13.8064,31.9138,-7.2542,-13.8064,82.4278,-19.947,-11.9029,81.0559,-11.152,-13.8064,81.0559,-18.4297,-13.8064,96.8778,-2.6292,-10,89.6823,1.7584,-11.9028 +,95.5059,-4.1465,-11.9028,20.7497,1.7585,-11.9028,13.5543,-2.6291,-10,14.9261,-4.1465,-11.9028,30.542,-23.8447,-11.9029,77.299,-22.3274,-13.8064,31.9138,-22.3274,-13.8064,82.4278,-9.6346,-11.9029,77.299,-7.2542,-13.8064,81.0559,-11.152,-13.8064,31.9138,-7.2542,-13.8064,26.785,-9.6346,-11.9029,28.1569,-11.1519,-13.8064,95.5059,-25.7313,-11.9028,96.8778,-2.6292,-10,95.5059,-4.1465,-11.9028,-70.2511,19.8446,-11.9028 +,-68.692,18.2324,-14.5502,-68.1938,19.4354,-11.9028,-67.3703,17.3493,-14.5502,-66.4496,18.27,-11.9028,-66.4496,18.27,-11.9028,-66.4872,16.0275,-14.5502,-65.2842,16.5258,-11.9028,-66.4872,16.0275,-14.5502,-64.875,14.4685,-11.9028,-65.2842,16.5258,-11.9028,-66.4872,12.9094,-14.5502,-65.2842,12.4111,-11.9028,-66.4872,12.9094,-14.5502,-66.4496,10.667,-11.9028,-65.2842,12.4111,-11.9028,-67.3703,11.5877,-14.5502,-68.1938,9.5016,-11.9028 +,-66.4496,10.667,-11.9028,-68.692,10.7045,-14.5502,-70.2511,9.0923,-11.9028,-70.2511,10.3944,-14.5502,-72.3085,9.5016,-11.9028,-73.1319,11.5877,-14.5502,-74.0526,10.667,-11.9028,-74.0526,10.667,-11.9028,-74.0151,12.9094,-14.5502,-75.218,12.4111,-11.9028,-75.6273,14.4685,-11.9028,-74.0151,16.0275,-14.5502,-75.218,16.5258,-11.9028,-74.0526,18.27,-11.9028,-71.8102,10.7045,-14.5502,-67.3703,11.5877,-14.5502,-74.3252,14.4685,-14.5502 +,-74.0526,18.27,-11.9028,-71.8102,18.2324,-14.5502,-72.3085,19.4354,-11.9028,-70.2511,18.5425,-14.5502,-56.157,19.8446,-11.9028,-54.5979,18.2324,-14.5502,-54.0996,19.4354,-11.9028,-53.2762,17.3493,-14.5502,-52.3555,18.27,-11.9028,-52.3555,18.27,-11.9028,-52.393,16.0275,-14.5502,-51.1901,16.5258,-11.9028,-52.393,16.0275,-14.5502,-50.7808,14.4685,-11.9028,-51.1901,16.5258,-11.9028,-52.393,12.9094,-14.5502,-51.1901,12.4111,-11.9028 +,-52.393,12.9094,-14.5502,-52.3555,10.667,-11.9028,-51.1901,12.4111,-11.9028,-53.2762,11.5877,-14.5502,-54.0996,9.5016,-11.9028,-52.3555,10.667,-11.9028,-54.5979,10.7045,-14.5502,-56.157,9.0923,-11.9028,-56.157,10.3944,-14.5502,-58.2143,9.5016,-11.9028,-59.0378,11.5877,-14.5502,-59.9585,10.667,-11.9028,-59.9585,10.667,-11.9028,-59.9209,12.9094,-14.5502,-61.1239,12.4111,-11.9028,-61.5331,14.4685,-11.9028,-59.9209,16.0275,-14.5502 +,-61.1239,16.5258,-11.9028,-59.9585,18.27,-11.9028,-57.7161,10.7045,-14.5502,-53.2762,11.5877,-14.5502,-60.231,14.4685,-14.5502,-59.9585,18.27,-11.9028,-57.7161,18.2324,-14.5502,-58.2143,19.4354,-11.9028,-41.3207,19.8446,-11.9028,-39.7616,18.2324,-14.5502,-39.2633,19.4354,-11.9028,-38.4399,17.3493,-14.5502,-37.5192,18.27,-11.9028,-37.5192,18.27,-11.9028,-37.5567,16.0275,-14.5502,-36.3538,16.5258,-11.9028,-37.5567,16.0275,-14.5502 +,-35.9446,14.4685,-11.9028,-36.3538,16.5258,-11.9028,-37.5567,12.9094,-14.5502,-36.3538,12.4111,-11.9028,-37.5567,12.9094,-14.5502,-37.5192,10.667,-11.9028,-36.3538,12.4111,-11.9028,-38.4399,11.5877,-14.5502,-39.2633,9.5016,-11.9028,-37.5192,10.667,-11.9028,-39.7616,10.7045,-14.5502,-41.3207,9.0923,-11.9028,-41.3207,10.3944,-14.5502,-43.3781,9.5016,-11.9028,-44.2015,11.5877,-14.5502,-45.1222,10.667,-11.9028,-45.1222,10.667,-11.9028 +,-45.0847,12.9094,-14.5502,-46.2876,12.4111,-11.9028,-46.6968,14.4685,-11.9028,-45.0847,16.0275,-14.5502,-46.2876,16.5258,-11.9028,-45.1222,18.27,-11.9028,-42.8798,10.7045,-14.5502,-38.4399,11.5877,-14.5502,-38.4399,17.3493,-14.5502,-44.2015,17.3493,-14.5502,-43.3781,19.4354,-11.9028,-45.1222,18.27,-11.9028,-42.8798,18.2324,-14.5502,-25.8762,19.8446,-11.9028,-24.3171,18.2324,-14.5502,-23.8188,19.4354,-11.9028,-22.9954,17.3493,-14.5502 +,-22.0747,18.27,-11.9028,-22.0747,18.27,-11.9028,-22.1122,16.0275,-14.5502,-20.9092,16.5258,-11.9028,-22.1122,16.0275,-14.5502,-20.5,14.4685,-11.9028,-20.9092,16.5258,-11.9028,-22.1122,12.9094,-14.5502,-20.9092,12.4111,-11.9028,-22.1122,12.9094,-14.5502,-22.0747,10.667,-11.9028,-20.9092,12.4111,-11.9028,-22.9954,11.5877,-14.5502,-23.8188,9.5016,-11.9028,-22.0747,10.667,-11.9028,-24.3171,10.7045,-14.5502,-25.8762,9.0923,-11.9028 +,-27.4352,10.7045,-14.5502,-27.9335,9.5016,-11.9028,-28.757,11.5877,-14.5502,-29.6777,10.667,-11.9028,-29.6777,10.667,-11.9028,-29.6401,12.9094,-14.5502,-30.8431,12.4111,-11.9028,-31.2523,14.4685,-11.9028,-29.6401,16.0275,-14.5502,-30.8431,16.5258,-11.9028,-29.6777,18.27,-11.9028,-27.4352,10.7045,-14.5502,-22.9954,11.5877,-14.5502,-29.9502,14.4685,-14.5502,-29.6777,18.27,-11.9028,-27.4352,18.2324,-14.5502,-27.9335,19.4354,-11.9028 +,107.9444,33.1536,10,-107.9444,-27.2487,10,-107.9444,33.1536,10,-0.5284,2.2795,12.9352,1.5065,9.4957,14.5502,0.9659,1.0714,14.5502,-2.389,-10.5561,12.9488,-107.9444,-11.4326,10.0001,-107.9444,-10.7014,12.9488,7.8289,-2.6114,12.9488,8.6917,5.1751,10.0001,8.7251,-3.1065,10.0001,0.9659,1.0714,14.5502,6.5489,6.4637,14.5502,6.3583,-1.8726,14.5502,3.8758,-8.0208,12.9488,6.3583,-1.8726,14.5502 +,-0.8145,-2.3523,14.5502,-2.9478,-9.361,14.5502,-4.6521,-3.7396,14.5502,-5.3724,-1.3634,12.9352,-107.9444,-3.6916,14.5502,-107.9444,-1.2404,12.9352,-2.398,-0.9439,12.9352,-4.6521,-3.7396,14.5502,-5.3724,-1.3634,12.9352,-107.9444,-9.4903,14.5502,-107.9444,-3.6916,14.5502,-0.5284,10.7194,12.9352,-1.1384,2.6186,10.0001,-1.0997,11.0629,10.0001,-107.9444,-1.2404,12.9352,-5.5747,-0.6963,10.0001,-5.3724,-1.3634,12.9352 +,-5.3724,-1.3634,12.9352,-2.8425,-0.5485,10.0001,-2.398,-0.9439,12.9352,8.4758,16.1069,14.5502,7.6173,9.136,14.5502,3.9375,13.4831,14.5502,4.5887,-8.4751,10.0001,7.8289,5.6939,12.9488,-2.9478,-9.361,14.5502,-107.9444,-9.4903,14.5502,8.5336,8.0761,13.2811,6.5489,6.4637,14.5502,7.6173,9.136,14.5502,9.1576,7.3459,10.0001,11.3456,9.0946,13.6133,11.7309,8.1531,10.0001,7.3581,18.8378,10.0001 +,2.4837,15.1611,12.9352,2.0755,15.6321,10.0001,7.6031,18.2392,12.9352,3.9375,13.4831,14.5502,2.4837,15.1611,12.9352,107.9444,8.1658,13.6133,107.9444,9.4723,14.5502,11.3456,9.0946,13.6133,10.7931,10.4448,14.5502,107.9444,18.0709,12.9352,8.4758,16.1069,14.5502,7.6031,18.2392,12.9352,107.9444,16.2718,14.5502,10.7931,10.4448,14.5502,107.9444,18.576,10.0001,7.6031,18.2392,12.9352,-1.9712,-11.286,10.0001 +,3.8758,-8.0208,12.9488,4.5887,-8.4751,10.0001,-0.5284,2.2795,12.9352,-2.8425,-0.5485,10.0001,-2.398,-0.9439,12.9352,-2.389,-10.5561,12.9488,2.8589,-7.1679,14.5502,3.8758,-8.0208,12.9488,-0.5284,10.7194,12.9352,1.5065,9.4957,14.5502,2.4837,15.1611,12.9352,9.1576,7.3459,10.0001,8.5336,8.0761,13.2811,10.7931,10.4448,14.5502,11.3456,9.0946,13.6133,1.5065,9.4957,14.5502,26.785,-19.947,-11.9029 +,31.9138,-22.3274,-13.8064,28.1569,-18.4297,-13.8064,77.299,-22.3274,-13.8064,82.4278,-19.947,-11.9029,81.0559,-18.4297,-13.8064,20.7497,-31.6362,-11.9028,91.0542,-33.1536,-10,89.6823,-31.6363,-11.9028,20.7497,1.7585,-11.9028,20.7497,-31.6362,-11.9028,89.6823,-31.6363,-11.9028,13.5543,-27.2487,-10,20.7497,-31.6362,-11.9028,14.9261,-25.7313,-11.9028,89.6823,-31.6363,-11.9028,96.8778,-27.2487,-10,95.5059,-25.7313,-11.9028 +,14.9261,-4.1465,-11.9028,13.5543,-27.2487,-10,14.9261,-25.7313,-11.9028,28.1569,-11.1519,-13.8064,26.785,-19.947,-11.9029,28.1569,-18.4297,-13.8064,19.3778,-33.1536,-10,91.0542,-33.1536,-6.5845,91.0542,-33.1536,-10,96.8778,-27.2487,-10,91.0542,-33.1536,-6.5845,96.8778,-27.2487,-6.5845,13.5543,-27.2486,-6.5845,91.0542,-33.1536,-6.5845,19.3778,-33.1536,-6.5845,19.3778,-33.1536,-10,13.5543,-27.2486,-6.5845 +,19.3778,-33.1536,-6.5845,-107.9444,-27.2487,-10,107.9444,-27.2487,10,107.9444,-27.2487,-10,-107.9444,33.1536,-10,-107.9444,33.1536,-10,107.9444,22.6131,-9.9999,-107.9444,31.0539,-14.5502,-107.9444,24.8714,-14.5502,-107.9444,33.1536,-10,-0.5284,10.7194,-12.9352,8.7251,-3.1065,-10.0001,7.8289,-2.6114,-12.9488,-107.9444,-1.2404,-12.9352,-5.3724,-1.3634,-12.9352,-4.6521,-3.7396,-14.5502,-107.9444,-3.6916,-14.5502 +,-107.9444,-0.5523,-10.0001,-5.3724,-1.3634,-12.9352,7.8289,-2.6114,-12.9488,7.8289,5.6939,-12.9488,7.6173,9.136,-14.5502,7.6031,18.2392,-12.9352,8.4758,16.1069,-14.5502,107.9444,7.3714,-10.0001,11.3456,9.0946,-13.6133,107.9444,8.1658,-13.6133,107.9444,16.2718,-14.5502,107.9444,9.4723,-14.5502,7.6031,18.2392,-12.9352,4.5887,-8.4751,-10.0001,3.8758,-8.0208,-12.9488,-0.5284,2.2795,-12.9352,-2.398,-0.9439,-12.9352 +,-0.8145,-2.3523,-14.5502,3.8758,-8.0208,-12.9488,2.8589,-7.1679,-14.5502,-0.5284,10.7194,-12.9352,1.5065,9.4957,-14.5502,2.4837,15.1611,-12.9352,8.5336,8.0761,-13.2811,10.7931,10.4448,-14.5502,7.6173,9.136,-14.5502,8.5336,8.0761,-13.2811,-13.7964,4.5087,-10,-89.9244,22.6131,-11.9028,-7.9728,10.4136,-10,-85.4727,4.5087,-10,-13.7964,4.5087,-10,-9.3447,22.6131,-11.9028,-89.9244,11.931,-11.9028 +,-9.3447,11.931,-11.9028,19.3778,3.2758,-10,78.6708,-5.7369,-11.9029,28.1569,-11.1519,-13.8064,28.1569,-18.4297,-13.8064,31.9138,-22.3274,-13.8064,81.0559,-18.4297,-13.8064,81.0559,-11.152,-13.8064,82.4278,-9.6346,-11.9029,91.0542,3.2758,-10,19.3778,3.2758,-10,78.6708,-23.8448,-11.9029,78.6708,-5.7369,-11.9029,30.542,-5.7369,-11.9029,96.8778,-27.2487,-10,-66.4496,18.27,-11.9028,-67.3703,17.3493,-14.5502 +,-66.4872,16.0275,-14.5502,-66.177,14.4685,-14.5502,-66.4872,12.9094,-14.5502,-67.3703,11.5877,-14.5502,-71.8102,10.7045,-14.5502,-74.0526,10.667,-11.9028,-73.1319,11.5877,-14.5502,-74.3252,14.4685,-14.5502,-73.1319,17.3493,-14.5502,-67.3703,17.3493,-14.5502,-68.692,18.2324,-14.5502,-70.2511,18.5425,-14.5502,-71.8102,18.2324,-14.5502,-73.1319,17.3493,-14.5502,-74.0151,16.0275,-14.5502,-74.0151,12.9094,-14.5502,-73.1319,11.5877,-14.5502 +,-70.2511,10.3944,-14.5502,-68.692,10.7045,-14.5502,-66.4872,12.9094,-14.5502,-66.177,14.4685,-14.5502,-66.4872,16.0275,-14.5502,-74.0526,18.27,-11.9028,-73.1319,17.3493,-14.5502,-56.157,18.5425,-14.5502,-52.3555,18.27,-11.9028,-53.2762,17.3493,-14.5502,-52.393,16.0275,-14.5502,-52.0829,14.4685,-14.5502,-52.393,12.9094,-14.5502,-53.2762,11.5877,-14.5502,-57.7161,10.7045,-14.5502,-59.9585,10.667,-11.9028,-59.0378,11.5877,-14.5502 +,-60.231,14.4685,-14.5502,-59.0378,17.3493,-14.5502,-53.2762,17.3493,-14.5502,-54.5979,18.2324,-14.5502,-56.157,18.5425,-14.5502,-57.7161,18.2324,-14.5502,-59.0378,17.3493,-14.5502,-59.9209,16.0275,-14.5502,-59.9209,12.9094,-14.5502,-59.0378,11.5877,-14.5502,-56.157,10.3944,-14.5502,-54.5979,10.7045,-14.5502,-52.393,12.9094,-14.5502,-52.0829,14.4685,-14.5502,-52.393,16.0275,-14.5502,-59.9585,18.27,-11.9028,-59.0378,17.3493,-14.5502 +,-41.3207,18.5425,-14.5502,-37.5192,18.27,-11.9028,-38.4399,17.3493,-14.5502,-37.5567,16.0275,-14.5502,-37.2466,14.4685,-14.5502,-37.5567,12.9094,-14.5502,-38.4399,11.5877,-14.5502,-42.8798,10.7045,-14.5502,-45.1222,10.667,-11.9028,-44.2015,11.5877,-14.5502,-45.3948,14.4685,-14.5502,-44.2015,17.3493,-14.5502,-39.7616,18.2324,-14.5502,-41.3207,18.5425,-14.5502,-42.8798,18.2324,-14.5502,-44.2015,17.3493,-14.5502,-45.0847,16.0275,-14.5502 +,-45.3948,14.4685,-14.5502,-45.0847,12.9094,-14.5502,-44.2015,11.5877,-14.5502,-41.3207,10.3944,-14.5502,-39.7616,10.7045,-14.5502,-37.5567,12.9094,-14.5502,-37.2466,14.4685,-14.5502,-37.5567,16.0275,-14.5502,-25.8762,18.5425,-14.5502,-22.0747,18.27,-11.9028,-22.9954,17.3493,-14.5502,-22.1122,16.0275,-14.5502,-21.8021,14.4685,-14.5502,-22.1122,12.9094,-14.5502,-22.9954,11.5877,-14.5502,-25.8762,10.3944,-14.5502,-29.6777,10.667,-11.9028 +,-28.757,11.5877,-14.5502,-29.9502,14.4685,-14.5502,-28.757,17.3493,-14.5502,-22.9954,17.3493,-14.5502,-24.3171,18.2324,-14.5502,-25.8762,18.5425,-14.5502,-27.4352,18.2324,-14.5502,-28.757,17.3493,-14.5502,-29.6401,16.0275,-14.5502,-29.6401,12.9094,-14.5502,-28.757,11.5877,-14.5502,-25.8762,10.3944,-14.5502,-24.3171,10.7045,-14.5502,-22.1122,12.9094,-14.5502,-21.8021,14.4685,-14.5502,-22.1122,16.0275,-14.5502,-29.6777,18.27,-11.9028 +,-28.757,17.3493,-14.5502,107.9444,-27.2487,10,-0.5284,10.7194,12.9352,2.8589,-7.1679,14.5502,2.8589,-7.1679,14.5502,-4.6521,-3.7396,14.5502,-0.8145,-2.3523,14.5502,-0.5284,2.2795,12.9352,-107.9444,-1.2404,12.9352,-107.9444,-0.5523,10.0001,-5.3724,-1.3634,12.9352,8.5336,8.0761,13.2811,7.6031,18.2392,12.9352,8.4758,16.1069,14.5502,107.9444,7.3714,10.0001,107.9444,8.1658,13.6133,11.3456,9.0946,13.6133 +,107.9444,16.2718,14.5502,107.9444,9.4723,14.5502,107.9444,18.0709,12.9352,7.6031,18.2392,12.9352,3.8758,-8.0208,12.9488,-0.5284,2.2795,12.9352,-2.398,-0.9439,12.9352,-0.8145,-2.3523,14.5502,-2.398,-0.9439,12.9352,-2.389,-10.5561,12.9488,-2.9478,-9.361,14.5502,-0.5284,10.7194,12.9352,2.4837,15.1611,12.9352,2.0755,15.6321,10.0001,2.4837,15.1611,12.9352,8.5336,8.0761,13.2811,7.6173,9.136,14.5502 +,10.7931,10.4448,14.5502,30.542,-23.8447,-11.9029,78.6708,-23.8448,-11.9029,19.3778,-33.1536,-10,95.5059,-25.7313,-11.9028,95.5059,-4.1465,-11.9028,89.6823,1.7584,-11.9028,14.9261,-4.1465,-11.9028,14.9261,-25.7313,-11.9028,19.3778,-33.1536,-10,91.0542,-33.1536,-10,13.5543,-2.6291,-10,26.785,-9.6346,-11.9029,19.3778,-33.1536,-6.5845,91.0542,-33.1536,-10,96.8778,-27.2487,-6.5845,13.5543,-27.2487,-10 +,-107.9444,-27.2487,10] +,"normals":[0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,-1,0,0,-0.938,-0.346,0,-0.938,-0.346,0,0.687,-0.727,0,0.687,-0.727,0,0.687,-0.727,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0 +,0,1,0,0,-0.761,-0.649,0,-0.761,-0.649,-0.575,0.136,-0.807,-0.823,0.212,-0.526,-0.626,0.209,-0.751,0.001,-0.971,-0.241,0.169,-0.882,-0.44,0.001,-0.903,-0.431,0.817,-0.27,-0.509,0.951,-0.091,-0.296,0.865,-0.143,-0.481,0,0,-1,0,0,-1,0,0,-1,0.556,-0.699,-0.45,0.684,-0.201,-0.701 +,0.472,-0.613,-0.634,0,0,-1,0,0,-1,0,0,-1,-0.045,0.822,-0.567,0.001,0.55,-0.835,-0.076,0.572,-0.816,-0.469,0.657,-0.591,-0.076,0.572,-0.816,-0.409,0.45,-0.794,0,0,-1,0,0,-1,-0.815,0.25,-0.523,-0.948,0.229,-0.222,-0.823,0.212,-0.526,-0.025,0.974,-0.223,0.001,0.82,-0.572 +,-0.045,0.822,-0.567,-0.095,0.977,-0.189,-0.045,0.822,-0.567,-0.469,0.657,-0.591,0,0,-1,0,0,-1,0,0,-1,0.608,-0.747,-0.27,0.556,-0.699,-0.45,0.865,-0.143,-0.481,0.722,-0.173,-0.67,0.125,-0.774,-0.621,0.001,-0.798,-0.603,0.569,-0.581,-0.582,0.865,-0.143,-0.481,0.294,-0.918,-0.266,0.094,-0.787,-0.609 +,0.569,-0.581,-0.582,-0.584,0.619,-0.525,-0.265,0.941,-0.213,-0.669,0.713,-0.208,-0.403,0.417,-0.815,-0.226,0.82,-0.525,-0.584,0.619,-0.525,0.135,-0.955,-0.263,-0.007,-0.835,-0.55,0.094,-0.787,-0.609,-0.006,-0.583,-0.813,0.085,-0.577,-0.812,-0.137,0.562,-0.816,0,0.875,-0.484,-0.226,0.82,-0.525,0,0,-1,0,0,-1 +,-0.226,0.82,-0.525,0.002,0.985,-0.17,0.198,-0.946,-0.256,0.556,-0.699,-0.45,-0.823,0.212,-0.526,-0.852,0.479,-0.211,-0.469,0.657,-0.591,-0.469,0.657,-0.591,0.472,-0.613,-0.634,-0.815,0.25,-0.523,-0.584,0.619,-0.525,-0.93,0.299,-0.213,-0.584,0.619,-0.525,-0.669,0.713,-0.208,0.928,-0.244,-0.281,0.085,-0.577,-0.812,0.569,-0.581,-0.582 +,0.094,-0.787,-0.609,0,0,-1,0,-0.782,-0.623,0,-0.782,-0.623,0,-0.782,-0.623,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,-0.485,-0.479,-0.732,-0.485,-0.479,-0.732,-0.485,-0.479,-0.732,0.485,-0.479,-0.732,0.485,-0.479,-0.732,0.485,-0.479,-0.732 +,0,0,-1,0,0,-1,0,0,-1,0,0.782,-0.623,0,0.782,-0.623,0,0.782,-0.623,0,0.782,-0.623,0,0.782,-0.623,0,0.782,-0.623,0,0,-1,0,0,-1,0,0,-1,0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,0.485,0.479,-0.732,0.485,0.479,-0.732 +,0.485,0.479,-0.732,-0.485,0.479,-0.732,-0.485,0.479,-0.732,-0.485,0.479,-0.732,0,-0.782,-0.623,0,-0.782,-0.623,0,-0.782,-0.623,0.491,0.473,-0.731,0.491,0.473,-0.731,0.491,0.473,-0.731,-0.491,0.473,-0.731,-0.491,0.473,-0.731,-0.491,0.473,-0.731,0.811,0,-0.585,0.811,0,-0.585,0.811,0,-0.585,0,0.897,-0.441 +,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441 +,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1 +,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.343,0.829,-0.441,0,0.897,-0.441,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441 +,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441 +,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.343,0.829,-0.441,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441 +,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441,0,-0.897,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441 +,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.635,0.635,-0.441,-0.343,0.829,-0.441,0,0.897,-0.441,0.343,0.829,-0.441,0.343,0.829,-0.441,0.635,0.635,-0.441 +,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0.635,-0.635,-0.441,0.343,-0.829,-0.441,0,-0.897,-0.441 +,-0.343,-0.829,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.829,-0.343,-0.441,-0.829,-0.343,-0.441,-0.897,0,-0.441,-0.829,0.343,-0.441,-0.829,0.343,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.343,0.829,-0.441,-0.343,0.829,-0.441 +,0,0,1,0,0,1,0,0,1,-0.823,0.212,0.526,-0.575,0.136,0.807,-0.626,0.209,0.751,0.169,-0.882,0.44,0.001,-0.971,0.241,0.001,-0.903,0.431,0.817,-0.27,0.509,0.951,-0.091,0.296,0.893,-0.313,0.324,0,0,1,0,0,1,0,0,1,0.556,-0.699,0.45,0.684,-0.201,0.701 +,0,0,1,0,0,1,0,0,1,-0.045,0.822,0.567,0.001,0.55,0.835,0.001,0.82,0.572,-0.469,0.657,0.591,-0.076,0.572,0.816,-0.045,0.822,0.567,0,0,1,0,0,1,-0.815,0.25,0.523,-0.948,0.229,0.222,-0.93,0.299,0.213,0.001,0.82,0.572,-0.025,0.974,0.223,-0.045,0.822,0.567 +,-0.045,0.822,0.567,-0.095,0.977,0.189,-0.469,0.657,0.591,0,0,1,0,0,1,0,0,1,0.608,-0.747,0.27,0.865,-0.143,0.481,0.125,-0.774,0.621,0.001,-0.798,0.603,0.569,-0.581,0.582,0.722,-0.173,0.67,0.472,-0.478,0.74,0.294,-0.918,0.266,0.094,-0.787,0.609,0.135,-0.955,0.263,-0.265,0.941,0.213 +,-0.584,0.619,0.525,-0.669,0.713,0.208,-0.226,0.82,0.525,-0.403,0.417,0.815,-0.584,0.619,0.525,-0.007,-0.835,0.55,-0.006,-0.583,0.813,0.094,-0.787,0.609,0.085,-0.577,0.812,0,0.875,0.484,-0.137,0.562,0.816,-0.226,0.82,0.525,0,0,1,0,0,1,0.002,0.985,0.17,-0.226,0.82,0.525,0.198,-0.946,0.256 +,0.556,-0.699,0.45,0.608,-0.747,0.27,-0.823,0.212,0.526,-0.852,0.479,0.211,-0.469,0.657,0.591,0.169,-0.882,0.44,0.472,-0.613,0.634,0.556,-0.699,0.45,-0.815,0.25,0.523,-0.575,0.136,0.807,-0.584,0.619,0.525,0.928,-0.244,0.281,0.569,-0.581,0.582,0.085,-0.577,0.812,0.094,-0.787,0.609,0,0,1,-0.491,-0.473,-0.731 +,-0.491,-0.473,-0.731,-0.491,-0.473,-0.731,0.491,-0.473,-0.731,0.491,-0.473,-0.731,0.491,-0.473,-0.731,0,-0.782,-0.623,0,-0.782,-0.623,0,-0.782,-0.623,0,0,-1,0,0,-1,0,0,-1,-0.485,-0.479,-0.732,-0.485,-0.479,-0.732,-0.485,-0.479,-0.732,0.485,-0.479,-0.732,0.485,-0.479,-0.732,0.485,-0.479,-0.732 +,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,-0.811,0,-0.585,0,-1,0,0,-1,0,0,-1,0,0.712,-0.702,0,0.712,-0.702,0,0.712,-0.702,0,0,0,1,0,0,1,0,0,1,-0.712,-0.702,0,-0.712,-0.702,0 +,-0.712,-0.702,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,1,0,0,-1,0,0,0.687,-0.727,0,0,-1,0,1,0,-0.815,0.25,-0.523,0.893,-0.313,-0.324,0.817,-0.27,-0.509,0.001,0.82,-0.572,-0.045,0.822,-0.567,-0.076,0.572,-0.816,0,0,-1 +,0.001,0.974,-0.228,-0.045,0.822,-0.567,0.817,-0.27,-0.509,0.865,-0.143,-0.481,0.472,-0.478,-0.74,-0.226,0.82,-0.525,-0.137,0.562,-0.816,-0.008,-0.977,-0.215,0.094,-0.787,-0.609,-0.007,-0.835,-0.55,-0.001,0.668,-0.744,0,0,-1,-0.226,0.82,-0.525,0.608,-0.747,-0.27,0.556,-0.699,-0.45,-0.823,0.212,-0.526,-0.469,0.657,-0.591 +,-0.409,0.45,-0.794,0.556,-0.699,-0.45,0.472,-0.613,-0.634,-0.815,0.25,-0.523,-0.575,0.136,-0.807,-0.584,0.619,-0.525,0.569,-0.581,-0.582,0.085,-0.577,-0.812,0.472,-0.478,-0.74,0.569,-0.581,-0.582,0,-0.782,-0.623,-0.811,0,-0.585,0.811,0,-0.585,-0.485,-0.479,-0.732,0.485,-0.479,-0.732,0,0,-1,0,0,-1 +,0,0,-1,0,0.782,-0.623,0,0.782,-0.623,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.811,0,-0.585,0.485,0.479,-0.732,-0.485,0.479,-0.732,0,-0.782,-0.623,0.491,0.473,-0.731,-0.491,0.473,-0.731,0.811,0,-0.585,0.635,0.635,-0.441,0.635,0.635,-0.441 +,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.635,0.635,-0.441,0,0.897,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441 +,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441,-0.635,0.635,-0.441 +,0,0.897,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,-0.343,-0.829,-0.441,-0.635,-0.635,-0.441,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0.897,-0.441,0.635,0.635,-0.441,0.635,0.635,-0.441,0.829,0.343,-0.441,0.897,0,-0.441,0.829,-0.343,-0.441,0.635,-0.635,-0.441,0,-0.897,-0.441,-0.635,-0.635,-0.441 +,-0.635,-0.635,-0.441,-0.897,0,-0.441,-0.635,0.635,-0.441,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.635,0.635,-0.441 +,-0.635,0.635,-0.441,0,0,1,-0.815,0.25,0.523,0.472,-0.613,0.634,0,0,1,-0.076,0.572,0.816,-0.409,0.45,0.794,-0.823,0.212,0.526,0.001,0.82,0.572,0.001,0.974,0.228,-0.045,0.822,0.567,0.569,-0.581,0.582,-0.226,0.82,0.525,-0.137,0.562,0.816,-0.008,-0.977,0.215,-0.007,-0.835,0.55,0.094,-0.787,0.609 +,-0.001,0.668,0.744,0,0,1,0,0.875,0.484,-0.226,0.82,0.525,0.556,-0.699,0.45,-0.823,0.212,0.526,-0.469,0.657,0.591,-0.409,0.45,0.794,-0.469,0.657,0.591,0.169,-0.882,0.44,0.125,-0.774,0.621,-0.815,0.25,0.523,-0.584,0.619,0.525,-0.669,0.713,0.208,-0.584,0.619,0.525,0.569,-0.581,0.582,0.472,-0.478,0.74 +,0.085,-0.577,0.812,-0.491,-0.473,-0.731,0.491,-0.473,-0.731,0,-0.782,-0.623,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.485,-0.479,-0.732,0.485,-0.479,-0.732,-0.811,0,-0.585,-0.811,0,-0.585,0,-1,0,0.712,-0.702,0,0,0,1,-0.712,-0.702,0 +,0,-1,0] +,"uvs":[0.34,0.191,0.557,0.252,0.34,0.252,0.763,0.773,0.547,0.793,0.547,0.773,0.643,0.9,0.46,0.897,0.643,0.897,0.805,0.566,0.621,0.569,0.621,0.566,0.352,0.871,0.136,0.877,0.136,0.871,0.621,0.563,0.805,0.566,0.621,0.566,0.46,0.894,0.643,0.894,0.988,0.008,0.989,0.016,0.987,0.017,0.132,0.926,0.027,0.923 +,0.132,0.923,0.598,0.916,0.596,0.908,0.599,0.908,0.648,0.73,0.654,0.735,0.649,0.738,0.984,0.746,0.985,0.739,0.986,0.746,0.656,0.739,0.658,0.746,0.652,0.743,0.661,0.737,0.763,0.739,0.66,0.74,0.556,0.989,0.553,0.992,0.553,0.988,0.66,0.74,0.763,0.744,0.983,0.106,0.986,0.115,0.983,0.115,0.819,0.952 +,0.922,0.955,0.819,0.955,0.816,0.952,0.819,0.955,0.816,0.955,0.647,0.727,0.647,0.72,0.651,0.723,0.596,0.923,0.599,0.923,0.984,0.731,0.986,0.731,0.027,0.921,0.132,0.921,0.984,0.729,0.984,0.731,0.118,0.952,0.116,0.948,0.119,0.948,0.214,0.655,0.218,0.649,0.217,0.655,0.651,0.723,0.648,0.718,0.653,0.721 +,0.116,0.951,0.019,0.948,0.644,0.728,0.547,0.727,0.644,0.726,0.212,0.648,0.215,0.548,0.215,0.649,0.644,0.726,0.547,0.72,0.215,0.649,0.218,0.548,0.026,0.926,0.02,0.922,0.983,0.115,0.986,0.118,0.983,0.118,0.99,0.02,0.021,0.92,0.656,0.725,0.653,0.721,0.986,0.106,0.983,0.101,0.986,0.101,0.596,0.906 +,0.992,0.391,0.995,0.393,0.992,0.392,0.653,0.727,0.92,0.004,0.849,0.002,0.918,0.002,0.922,0.99,0.924,0.979,0.924,0.992,0.975,0.651,0.975,0.64,0.978,0.64,0.741,0.993,0.733,0.991,0.741,0.991,0.978,0.659,0.973,0.652,0.975,0.651,0.212,0.678,0.143,0.678,0.218,0.661,0.383,0.966,0.453,0.969,0.384,0.969 +,0.924,0.004,0.971,0.002,0.97,0.004,0.606,0.923,0.606,0.908,0.651,0.908,0.985,0.617,0.985,0.608,0.987,0.615,0.963,0.542,0.969,0.535,0.966,0.543,0.652,0.993,0.66,0.991,0.661,0.993,0.232,0.98,0.185,0.977,0.231,0.977,0.983,0.607,0.987,0.602,0.985,0.608,0.899,0.994,0.905,0.992,0.905,0.994,0.969,0.564 +,0.963,0.542,0.966,0.543,0.996,0.4,0.993,0.399,0.996,0.398,0.993,0.397,0.996,0.396,0.995,0.288,0.992,0.286,0.995,0.286,0.164,0.989,0.161,0.99,0.161,0.988,0.164,0.992,0.161,0.992,0.654,0.979,0.653,0.976,0.655,0.976,0.993,0.896,0.996,0.895,0.995,0.897,0.993,0.894,0.996,0.892,0.993,0.892,0.996,0.89 +,0.993,0.889,0.995,0.888,0.996,0.161,0.994,0.159,0.997,0.159,0.997,0.157,0.994,0.156,0.997,0.155,0.996,0.153,0.652,0.902,0.648,0.9,0.655,0.898,0.996,0.404,0.993,0.402,0.996,0.402,0.993,0.4,0.997,0.991,0.993,0.989,0.996,0.989,0.993,0.988,0.996,0.987,0.986,0.124,0.983,0.122,0.986,0.122,0.991,0.496 +,0.988,0.497,0.988,0.495,0.991,0.499,0.988,0.499,0.9,0.431,0.898,0.428,0.9,0.428,0.994,0.968,0.997,0.967,0.996,0.969,0.994,0.967,0.997,0.965,0.994,0.965,0.997,0.963,0.994,0.962,0.996,0.961,0.995,0.943,0.992,0.94,0.995,0.941,0.995,0.939,0.992,0.937,0.995,0.937,0.995,0.935,0.988,0.136,0.984,0.134 +,0.991,0.132,0.996,0.995,0.993,0.992,0.996,0.993,0.996,0.752,0.993,0.75,0.996,0.749,0.993,0.748,0.996,0.747,0.942,0.995,0.939,0.994,0.942,0.993,0.924,0.936,0.921,0.938,0.921,0.936,0.924,0.94,0.921,0.94,0.456,0.994,0.455,0.992,0.457,0.992,0.993,0.015,0.997,0.014,0.996,0.016,0.994,0.013,0.997,0.012 +,0.994,0.012,0.997,0.01,0.993,0.009,0.996,0.008,0.997,0.487,0.995,0.485,0.998,0.485,0.998,0.483,0.995,0.482,0.998,0.481,0.997,0.479,0.453,0.963,0.449,0.961,0.45,0.956,0.993,0.755,0.996,0.754,0.996,0.756,0.993,0.753,0.996,0.457,0.993,0.455,0.996,0.455,0.993,0.454,0.996,0.453,0.339,0.996,0.336,0.994 +,0.339,0.994,0.434,0.993,0.431,0.994,0.431,0.992,0.434,0.996,0.431,0.996,0.945,0.995,0.948,0.993,0.948,0.995,0.994,0.078,0.997,0.077,0.997,0.079,0.994,0.077,0.997,0.075,0.994,0.073,0.997,0.073,0.994,0.072,0.997,0.071,0.996,0.851,0.993,0.849,0.996,0.849,0.996,0.847,0.993,0.845,0.996,0.845,0.996,0.843 +,0.599,0.986,0.595,0.987,0.599,0.981,0.996,0.461,0.993,0.459,0.996,0.459,0.34,0.315,0.557,0.255,0.557,0.315,0.317,0.917,0.319,0.91,0.319,0.919,0.927,0.675,0.924,0.569,0.927,0.569,0.91,0.532,0.91,0.541,0.907,0.533,0.243,0.755,0.238,0.76,0.238,0.752,0.91,0.526,0.913,0.532,0.245,0.752,0.247,0.745 +,0.249,0.75,0.25,0.753,0.352,0.752,0.352,0.755,0.996,0.035,0.994,0.033,0.997,0.033,0.353,0.746,0.352,0.752,0.986,0.315,0.983,0.323,0.983,0.315,0.241,0.957,0.139,0.96,0.139,0.957,0.139,0.957,0.136,0.96,0.136,0.957,0.236,0.77,0.236,0.763,0.24,0.767,0.907,0.526,0.913,0.54,0.929,0.674,0.929,0.569 +,0.914,0.543,0.916,0.54,0.916,0.543,0.559,0.945,0.557,0.949,0.556,0.945,0.917,0.949,0.923,0.945,0.923,0.948,0.237,0.772,0.24,0.767,0.242,0.769,0.46,0.948,0.136,0.763,0.233,0.763,0.233,0.764,0.744,0.004,0.844,0.002,0.845,0.004,0.136,0.77,0.233,0.764,0.816,0.948,0.917,0.946,0.924,0.675,0.928,0.682 +,0.925,0.683,0.986,0.324,0.983,0.327,0.316,0.921,0.978,0.943,0.972,0.945,0.971,0.943,0.245,0.765,0.243,0.763,0.986,0.31,0.911,0.543,0.994,0.549,0.991,0.551,0.991,0.549,0.243,0.763,0.866,0.975,0.86,0.972,0.866,0.972,0.962,0.428,0.957,0.431,0.956,0.428,0.729,0.943,0.658,0.945,0.66,0.943,0.761,0.131 +,0.761,0.165,0.692,0.165,0.985,0.872,0.977,0.869,0.985,0.869,0.649,0.991,0.641,0.993,0.64,0.991,0.975,0.762,0.978,0.785,0.975,0.784,0.013,0.988,0.015,0.997,0.013,0.996,0.73,0.945,0.658,0.949,0.658,0.945,0.998,0.491,0.994,0.499,0.994,0.491,0.085,0.913,0.007,0.907,0.079,0.907,0.73,0.945,0.739,0.949 +,0.73,0.949,0.352,0.774,0.136,0.794,0.136,0.774,0.557,0.191,0.763,0.793,0.46,0.9,0.805,0.569,0.352,0.877,0.805,0.563,0.99,0.008,0.595,0.917,0.982,0.74,0.763,0.736,0.556,0.992,0.553,0.992,0.763,0.739,0.922,0.952,0.819,0.955,0.982,0.74,0.984,0.731,0.986,0.728,0.215,0.649,0.647,0.72,0.019,0.952 +,0.644,0.728,0.547,0.728,0.212,0.548,0.547,0.727,0.215,0.649,0.019,0.925,0.02,0.922,0.983,0.115,0.99,0.02,0.988,0.021,0.02,0.922,0.021,0.92,0.656,0.725,0.653,0.727,0.983,0.101,0.599,0.905,0.992,0.391,0.995,0.391,0.995,0.393,0.848,0.004,0.922,0.979,0.973,0.652,0.733,0.993,0.975,0.66,0.137,0.661 +,0.218,0.672,0.137,0.672,0.455,0.966,0.923,0.002,0.655,0.912,0.655,0.919,0.651,0.923,0.602,0.919,0.602,0.912,0.983,0.607,0.966,0.534,0.652,0.991,0.184,0.98,0.984,0.601,0.899,0.992,0.967,0.566,0.995,0.288,0.992,0.288,0.164,0.989,0.164,0.99,0.654,0.979,0.653,0.979,0.993,0.891,0.996,0.161,0.993,0.16 +,0.994,0.157,0.993,0.154,0.649,0.894,0.65,0.894,0.652,0.894,0.654,0.894,0.655,0.895,0.655,0.897,0.655,0.9,0.654,0.901,0.65,0.902,0.649,0.901,0.647,0.898,0.647,0.897,0.648,0.895,0.996,0.404,0.993,0.403,0.994,0.991,0.986,0.124,0.983,0.124,0.991,0.496,0.991,0.497,0.9,0.431,0.898,0.431,0.994,0.964 +,0.995,0.943,0.992,0.942,0.992,0.939,0.992,0.936,0.985,0.128,0.987,0.128,0.988,0.128,0.99,0.128,0.991,0.129,0.991,0.131,0.991,0.134,0.99,0.135,0.987,0.136,0.985,0.135,0.983,0.132,0.983,0.131,0.984,0.129,0.996,0.995,0.993,0.994,0.993,0.752,0.942,0.995,0.939,0.995,0.924,0.936,0.924,0.938,0.456,0.994 +,0.455,0.994,0.994,0.01,0.997,0.487,0.994,0.486,0.995,0.483,0.994,0.48,0.451,0.955,0.453,0.955,0.454,0.956,0.456,0.957,0.456,0.958,0.456,0.96,0.456,0.961,0.454,0.963,0.451,0.963,0.45,0.963,0.448,0.96,0.448,0.958,0.449,0.957,0.993,0.457,0.339,0.996,0.336,0.996,0.434,0.993,0.433,0.994,0.945,0.995 +,0.945,0.994,0.994,0.075,0.996,0.851,0.993,0.85,0.993,0.847,0.993,0.844,0.592,0.983,0.592,0.981,0.593,0.98,0.595,0.979,0.596,0.979,0.598,0.98,0.6,0.983,0.6,0.984,0.598,0.987,0.596,0.987,0.593,0.987,0.592,0.986,0.592,0.984,0.996,0.461,0.993,0.46,0.34,0.255,0.317,0.909,0.912,0.526,0.241,0.747 +,0.249,0.75,0.994,0.037,0.986,0.324,0.241,0.957,0.241,0.96,0.139,0.957,0.56,0.948,0.917,0.946,0.236,0.77,0.46,0.945,0.136,0.761,0.233,0.763,0.744,0.002,0.136,0.763,0.816,0.945,0.917,0.946,0.928,0.682,0.986,0.324,0.986,0.327,0.318,0.922,0.316,0.921,0.978,0.943,0.978,0.945,0.245,0.765,0.242,0.769 +,0.983,0.309,0.986,0.31,0.994,0.549,0.994,0.551,0.991,0.551,0.86,0.975,0.962,0.431,0.73,0.945,0.686,0.159,0.686,0.137,0.692,0.131,0.767,0.137,0.767,0.159,0.977,0.872,0.649,0.993,0.978,0.76,0.015,0.987,0.73,0.949,0.998,0.499,0.002,0.913,0.739,0.945,0.352,0.794] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,8,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,36,46,47 +,48,49,50,51,52,53,54,55,56,57,58,26,59,33,60,61,25,62,63,64,61,65,66,67,68,69,70,71,72,73,74,75,76,67,77,78,79,80,81,82,83,84,56,85,86,70,87,88,24,89 +,90,91,92,22,21,35,31,30,24,93,62,94,72,95,96,97,98,99,28,27,100,101,102,103,55,57,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127 +,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,154,155,156,157,158,159,160,161,162,161,163,164,165,166,167,168,169,170,171,172,169,173,174 +,172,174,175,176,177,178,179,178,180,179,180,181,182,181,183,182,184,185,186,187,188,189,189,190,152,191,192,193,193,194,195,196,197,198,199,200,201,200,202,203,204,205,206,207,208,209,210,211,208,212 +,213,211,213,214,215,216,217,218,217,219,218,219,220,221,220,222,221,223,224,225,226,227,228,227,191,228,229,230,231,231,232,233,234,235,236,237,238,239,238,240,241,242,243,244,245,246,247,248,249,246 +,250,251,249,251,252,253,254,255,256,255,257,256,257,258,259,258,260,259,261,262,263,264,265,266,267,229,265,268,269,270,270,271,272,273,274,275,276,277,278,277,279,280,281,282,283,284,285,286,287,288 +,285,288,289,290,290,291,292,293,294,295,294,296,295,296,297,298,297,299,298,300,301,302,303,304,305,304,268,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,315,323,324,325,326 +,327,328,329,330,331,325,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,315,317,322,347,315,348,314,349,350,351,352,353,354,355,356,357,358,359,360,361,362,355,354,363,364,365,366,367,368 +,369,370,343,371,372,356,373,374,375,376,377,335,311,378,309,320,323,318,379,380,381,382,360,383,336,384,334,347,385,316,386,387,388,389,344,319,390,391,392,393,394,395,396,397,398,399,400,401,402,403 +,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,0,429,1,3,430,4,6,431,7,9,432,10,12,433,13,15,434,16,8,7,18,20,435,21,23 +,87,24,26,436,27,29,103,30,32,437,33,35,44,36,38,438,39,41,439,440,44,441,45,46,96,47,49,442,50,52,49,443,55,83,56,58,436,26,33,444,445,25,24,62,64,446,61,66,75,67 +,69,447,70,72,448,73,75,449,76,450,451,78,80,452,81,83,453,84,454,81,86,87,455,456,457,47,90,458,459,22,35,37,31,24,460,461,462,463,72,96,46,464,99,465,28,466,467,468,103,29 +,55,104,469,105,107,470,108,110,471,111,113,472,114,116,473,117,474,121,120,475,119,121,120,476,474,122,477,123,125,478,126,130,479,480,480,481,130,128,482,129,483,129,482,130,481,128,131,484,132,134 +,485,135,137,486,138,140,487,141,143,488,144,146,489,147,149,490,150,152,190,153,154,153,155,491,492,158,493,494,161,161,494,163,495,496,166,168,171,169,171,173,172,173,497,174,174,497,175,498,499,178 +,178,500,180,180,500,181,181,501,183,502,503,504,504,505,506,506,507,186,186,508,509,509,184,186,510,511,185,185,512,513,513,514,502,502,504,506,506,186,502,184,510,185,185,513,502,502,186,185,515,516 +,188,189,188,190,191,517,192,193,192,194,518,519,197,520,521,200,200,521,202,522,523,205,207,210,208,210,212,211,212,524,213,213,524,214,525,526,217,217,527,219,219,527,220,220,528,222,529,530,531,531 +,532,533,533,534,225,225,535,536,536,223,225,537,538,224,224,539,540,540,541,529,529,531,533,533,225,529,223,537,224,224,540,529,529,225,224,542,543,227,227,517,191,229,544,230,231,230,232,545,546,235 +,547,548,238,238,548,240,549,550,243,245,248,246,248,250,249,250,551,251,251,551,252,552,553,255,255,554,257,257,554,258,258,555,260,263,556,557,557,558,559,559,560,561,561,562,563,563,261,561,564,565 +,262,262,566,567,567,568,263,263,557,559,559,561,263,261,564,262,262,567,263,263,561,261,264,267,265,267,544,229,268,569,269,270,269,271,570,571,274,572,573,277,277,573,279,574,575,282,284,287,285,287 +,576,288,288,576,289,290,289,291,577,578,294,294,579,296,296,579,297,297,580,299,581,582,583,583,584,585,585,586,302,302,587,588,588,300,302,589,590,301,301,591,592,592,593,581,581,583,585,585,302,581 +,300,589,301,301,592,581,581,302,301,594,595,304,304,569,268,306,596,307,309,597,310,312,373,313,315,347,316,318,389,319,321,598,322,323,599,324,326,600,327,329,601,330,325,324,332,334,602,335,603,604 +,338,605,338,341,343,370,344,346,321,315,322,351,347,348,312,314,350,347,351,353,606,354,356,607,357,359,608,360,362,609,355,363,610,611,366,612,367,369,613,370,371,614,615,373,312,616,617,618,377,311 +,619,620,320,599,323,621,622,380,623,624,360,336,625,626,347,350,385,627,628,629,389,345,344,390,630,391,393,631,394,396,632,397,401,633,634,634,635,401,399,636,637,637,400,399,401,635,399,402,638,403 +,405,639,406,408,640,409,411,641,412,414,642,415,417,643,418,420,644,421,423,645,424,426,646,427] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":647,"indexStart":0,"indexCount":1224}] +,"instances":[]} +,{"name":"ObstacleColumnLeft","id":"ObstacleColumnLeft","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[-49.2814,-4858.5029,1735.3668],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-50.7186,55.0656,13.0553,49.2814,55.0656,-4.7271,49.2814,55.0656,13.0553,49.2814,55.0656,13.0553,49.2814,52.8481,-6.9447,49.2814,-60.0741,13.0553,40.7129,52.8481,-12.7725,37.7148,-60.0741,-10.4883,40.7559,-60.0741,-12.7725,47.2556,52.8481,-12.7725,49.2814,-60.0741,-6.8751,49.2814,52.8481,-6.8751,40.7129,52.8481,-12.7725,47.1266,-60.0741,-12.7725,47.2556,52.8481,-12.7725,37.5858,52.8481,-10.4883,40.046,54.939,-13.4966 +,36.151,54.939,-10.6515,37.5761,59.9259,-6.8751,40.7096,59.9259,-12.7725,49.2814,59.9259,-6.8751,34.0952,52.8409,-12.7857,-2.6095,60.0634,-12.7895,-2.6095,52.8409,-12.7857,-2.6095,52.8481,-6.8882,-2.6095,60.0634,-12.7895,-2.6095,60.0706,-6.8921,34.0952,-60.0812,-12.7555,-2.6095,-60.0741,-6.8581,34.0952,-60.0741,-6.8581,34.0952,52.8409,-12.7857,34.0952,-60.0741,-6.8581,34.0952,52.8481,-6.8882,-2.6095,60.0634,-12.7895 +,34.0952,60.0706,-6.8921,-2.6095,60.0706,-6.8921,26.9028,43.7735,-17.4407,4.5828,54.3977,-17.4669,4.5828,43.7735,-17.4407,30.1715,42.2292,-12.7555,26.9028,54.3977,-17.4669,26.9028,43.7735,-17.4407,1.3142,55.9651,-12.7895,26.9028,54.3977,-17.4669,30.1715,55.9651,-12.7895,1.3142,42.2292,-12.7555,4.5828,54.3977,-17.4669,1.3142,55.9651,-12.7895,30.1715,42.2292,-12.7555,4.5828,43.7735,-17.4407,1.3142,42.2292,-12.7555 +,26.9028,26.6618,-17.4407,4.5828,37.2859,-17.4669,4.5828,26.6618,-17.4407,30.1715,38.8534,-12.7895,26.9028,26.6618,-17.4407,30.1715,25.1175,-12.7555,1.3142,38.8534,-12.7895,26.9028,37.2859,-17.4669,30.1715,38.8534,-12.7895,1.3142,25.1175,-12.7555,4.5828,37.2859,-17.4669,1.3142,38.8534,-12.7895,30.1715,25.1175,-12.7555,4.5828,26.6618,-17.4407,1.3142,25.1175,-12.7555,26.9028,9.4565,-17.4407,4.5828,20.0806,-17.4669 +,4.5828,9.4565,-17.4407,30.1715,7.9122,-12.7555,26.9028,20.0806,-17.4669,26.9028,9.4565,-17.4407,1.3142,21.6481,-12.7895,26.9028,20.0806,-17.4669,30.1715,21.6481,-12.7895,1.3142,7.9122,-12.7555,4.5828,20.0806,-17.4669,1.3142,21.6481,-12.7895,30.1715,7.9122,-12.7555,4.5828,9.4565,-17.4407,1.3142,7.9122,-12.7555,26.9028,-8.1266,-17.4407,4.5828,2.4975,-17.4669,4.5828,-8.1266,-17.4407,30.1715,4.0649,-12.7895 +,26.9028,-8.1266,-17.4407,30.1715,-9.6709,-12.7555,1.3142,4.0649,-12.7895,26.9028,2.4975,-17.4669,30.1715,4.0649,-12.7895,1.3142,4.0649,-12.7895,4.5828,-8.1266,-17.4407,4.5828,2.4975,-17.4669,30.1715,-9.6709,-12.7555,4.5828,-8.1266,-17.4407,1.3142,-9.6709,-12.7555,26.9028,-24.3045,-17.4407,4.5828,-13.6804,-17.4669,4.5828,-24.3045,-17.4407,30.1715,-12.1129,-12.7895,26.9028,-24.3045,-17.4407,30.1715,-25.8488,-12.7555 +,1.3142,-12.1129,-12.7895,26.9028,-13.6804,-17.4669,30.1715,-12.1129,-12.7895,1.3142,-25.8488,-12.7555,4.5828,-13.6804,-17.4669,1.3142,-12.1129,-12.7895,30.1715,-25.8488,-12.7555,4.5828,-24.3045,-17.4407,1.3142,-25.8488,-12.7555,-9.7468,22.3043,-10.6928,-50.7186,36.2318,-10.7268,-50.7186,22.3043,-10.6928,-9.7468,22.3043,-10.6928,-50.7186,22.3054,-6.8581,-9.7468,22.3054,-6.8581,-9.7468,36.2329,-6.8921,-9.7468,22.3043,-10.6928 +,-9.7468,22.3054,-6.8581,-50.7186,36.2318,-10.7268,-9.7468,36.2329,-6.8921,-50.7186,36.2329,-6.8921,-14.5824,20.4001,-12.2881,-20.7079,38.1357,-12.3221,-20.7079,20.4001,-12.2881,-20.7079,20.4001,-12.2881,-20.7079,38.1371,-6.8921,-20.7079,20.4015,-6.8581,-14.5824,20.4001,-12.2881,-20.7079,20.4015,-6.8581,-14.5824,20.4015,-6.8581,-14.5824,38.1371,-6.8921,-14.5824,20.4001,-12.2881,-14.5824,20.4015,-6.8581,-20.7079,38.1357,-12.3221 +,-14.5824,38.1371,-6.8921,-20.7079,38.1371,-6.8921,-9.7468,-1.0422,-10.6928,-50.7186,12.8853,-10.7268,-50.7186,-1.0422,-10.6928,-9.7468,-1.0422,-10.6928,-50.7186,-1.0411,-6.8581,-9.7468,-1.0411,-6.8581,-9.7468,12.8864,-6.8921,-9.7468,-1.0422,-10.6928,-9.7468,-1.0411,-6.8581,-50.7186,12.8853,-10.7268,-9.7468,12.8864,-6.8921,-50.7186,12.8864,-6.8921,-14.5824,-2.9464,-12.2881,-20.7079,14.7892,-12.3221,-20.7079,-2.9464,-12.2881 +,-20.7079,-2.9464,-12.2881,-20.7079,14.7906,-6.8921,-20.7079,-2.945,-6.8581,-14.5824,-2.9464,-12.2881,-20.7079,-2.945,-6.8581,-14.5824,-2.945,-6.8581,-14.5824,14.7906,-6.8921,-14.5824,-2.9464,-12.2881,-14.5824,-2.945,-6.8581,-20.7079,14.7892,-12.3221,-14.5824,14.7906,-6.8921,-20.7079,14.7906,-6.8921,-9.7468,-24.2674,-10.6928,-50.7186,-10.3398,-10.7268,-50.7186,-24.2674,-10.6928,-9.7468,-24.2674,-10.6928,-50.7186,-24.2662,-6.8581 +,-9.7468,-24.2662,-6.8581,-9.7468,-10.3387,-6.8921,-9.7468,-24.2674,-10.6928,-9.7468,-24.2662,-6.8581,-50.7186,-10.3398,-10.7268,-9.7468,-10.3387,-6.8921,-50.7186,-10.3387,-6.8921,-14.5824,-26.1716,-12.2881,-20.7079,-8.4359,-12.3221,-20.7079,-26.1716,-12.2881,-20.7079,-26.1716,-12.2881,-20.7079,-8.4345,-6.8921,-20.7079,-26.1701,-6.8581,-14.5824,-26.1716,-12.2881,-20.7079,-26.1701,-6.8581,-14.5824,-26.1701,-6.8581,-14.5824,-8.4345,-6.8921 +,-14.5824,-26.1716,-12.2881,-14.5824,-26.1701,-6.8581,-20.7079,-8.4359,-12.3221,-14.5824,-8.4345,-6.8921,-20.7079,-8.4345,-6.8921,26.9028,-41.2725,-17.4407,4.5828,-30.6484,-17.4669,4.5828,-41.2725,-17.4407,30.1715,-29.081,-12.7895,26.9028,-41.2725,-17.4407,30.1715,-42.8168,-12.7555,1.3142,-29.081,-12.7895,26.9028,-30.6484,-17.4669,30.1715,-29.081,-12.7895,1.3142,-29.081,-12.7895,4.5828,-41.2725,-17.4407,4.5828,-30.6484,-17.4669 +,30.1715,-42.8168,-12.7555,4.5828,-41.2725,-17.4407,1.3142,-42.8168,-12.7555,-50.7186,55.0656,-4.7271,49.2814,52.8481,-6.9447,49.2814,55.0656,-4.7271,49.2814,52.8481,-6.9447,-50.7186,-60.0741,-6.9447,49.2814,-60.0741,-6.9447,37.5858,52.8481,-10.4883,37.7148,-60.0741,-6.8751,37.7148,-60.0741,-10.4883,47.2653,59.9259,-12.7725,40.042,59.9259,-13.4966,48.2074,59.9259,-13.4966,49.2814,52.8481,-6.8751,48.1953,54.939,-13.4966 +,47.2556,52.8481,-12.7725,48.2074,59.9259,-13.4966,50.7186,59.9259,-6.151,36.1389,59.9259,-10.6515,37.5761,59.9259,-10.4883,36.1389,59.9259,-10.6515,36.151,54.939,-6.151,36.151,54.939,-10.6515,40.042,59.9259,-13.4966,48.1953,54.939,-13.4966,48.2074,59.9259,-13.4966,48.2074,59.9259,-13.4966,50.7186,54.939,-6.151,50.7186,59.9259,-6.151,40.042,59.9259,-13.4966,36.151,54.939,-10.6515,40.046,54.939,-13.4966 +,36.151,54.939,-6.151,50.7186,59.9259,-6.151,50.7186,54.939,-6.151,37.5858,52.8481,-6.8751,36.151,54.939,-10.6515,36.151,54.939,-6.151,36.1389,59.9259,-6.151,49.2814,52.8481,-6.8751,36.151,54.939,-6.151,50.7186,54.939,-6.151,40.042,59.9259,-13.4966,47.2556,52.8481,-12.7725,40.046,54.939,-13.4966,40.7129,52.8481,-12.7725,49.2814,55.0656,13.0553,-50.7186,-60.0741,13.0553,-50.7186,55.0656,13.0553 +,34.0952,60.0634,-12.7895,34.0952,60.0706,-6.8921,-2.6095,-60.0741,-6.8581,-2.6095,52.8409,-12.7857,34.0952,-60.0812,-12.7555,-2.6095,-60.0812,-12.7555,34.0952,52.855,13.0553,34.0952,-60.0703,17.4669,34.0952,60.0812,17.3664,-2.6095,60.0812,17.3664,-2.6095,52.855,13.0553,-2.6095,-60.0703,17.4669,-2.6095,-60.074,13.152,34.0952,60.0812,17.3664,-2.6095,-60.0703,17.4669,-2.6095,60.0812,17.3664,-50.7186,55.0656,-4.7271 +,49.2814,-60.0741,-6.9447,49.2814,55.0656,-4.7271,37.5858,52.8481,-10.4883,47.1266,-60.0741,-12.7725,40.7559,-60.0741,-12.7725,40.7129,52.8481,-12.7725,34.0952,60.0634,-12.7895,-2.6095,-60.0812,-12.7555,34.0952,-60.0812,-12.7555,34.0952,60.0634,-12.7895,26.9028,54.3977,-17.4669,30.1715,55.9651,-12.7895,4.5828,54.3977,-17.4669,4.5828,43.7735,-17.4407,26.9028,43.7735,-17.4407,26.9028,37.2859,-17.4669,26.9028,37.2859,-17.4669 +,4.5828,37.2859,-17.4669,4.5828,26.6618,-17.4407,26.9028,26.6618,-17.4407,26.9028,20.0806,-17.4669,30.1715,21.6481,-12.7895,4.5828,20.0806,-17.4669,4.5828,9.4565,-17.4407,26.9028,9.4565,-17.4407,26.9028,2.4975,-17.4669,26.9028,2.4975,-17.4669,4.5828,2.4975,-17.4669,1.3142,-9.6709,-12.7555,26.9028,-8.1266,-17.4407,26.9028,-13.6804,-17.4669,26.9028,-13.6804,-17.4669,4.5828,-13.6804,-17.4669,4.5828,-24.3045,-17.4407 +,26.9028,-24.3045,-17.4407,-9.7468,36.2318,-10.7268,-50.7186,22.3043,-10.6928,-9.7468,36.2318,-10.7268,-9.7468,36.2318,-10.7268,-14.5824,38.1357,-12.3221,-20.7079,38.1357,-12.3221,-20.7079,20.4001,-12.2881,-14.5824,38.1357,-12.3221,-14.5824,38.1357,-12.3221,-9.7468,12.8853,-10.7268,-50.7186,-1.0422,-10.6928,-9.7468,12.8853,-10.7268,-9.7468,12.8853,-10.7268,-14.5824,14.7892,-12.3221,-20.7079,14.7892,-12.3221,-20.7079,-2.9464,-12.2881 +,-14.5824,14.7892,-12.3221,-14.5824,14.7892,-12.3221,-9.7468,-10.3398,-10.7268,-50.7186,-24.2674,-10.6928,-9.7468,-10.3398,-10.7268,-9.7468,-10.3398,-10.7268,-14.5824,-8.4359,-12.3221,-20.7079,-8.4359,-12.3221,-20.7079,-26.1716,-12.2881,-14.5824,-8.4359,-12.3221,-14.5824,-8.4359,-12.3221,26.9028,-30.6484,-17.4669,26.9028,-30.6484,-17.4669,4.5828,-30.6484,-17.4669,1.3142,-42.8168,-12.7555,26.9028,-41.2725,-17.4407,-50.7186,52.8481,-6.9447 +,-50.7186,52.8481,-6.9447,37.5858,52.8481,-6.8751,50.7186,54.939,-6.151,36.1389,59.9259,-6.151,40.046,54.939,-13.4966,48.1953,54.939,-13.4966,36.1389,59.9259,-10.6515,36.1389,59.9259,-6.151,37.5858,52.8481,-10.4883,37.5858,52.8481,-6.8751,48.1953,54.939,-13.4966,49.2814,-60.0741,13.0553,-2.6095,-60.0812,-12.7555,34.0952,-60.074,13.152,34.0952,60.0812,17.3664,-2.6095,60.0812,17.3664,34.0952,-60.0703,17.4669 +] +,"normals":[0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,-0.59,-0.001,-0.807,-0.6,0,-0.8,-0.601,0,-0.8,0.946,0,-0.326,0.939,-0.001,-0.343,0.946,0,-0.325,0,0,-1,0,0,-1,0,0,-1,-0.534,-0.424,-0.731,-0.534,-0.424,-0.731 +,-0.534,-0.424,-0.731,0,1,0,0,1,0,0,1,0,0,0,-1,0,-0.001,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,-1,0.001,0,-1,0.001,0,-1,0.001,1,0,0,1,0,0,1,0,0,0,1,-0.001 +,0,1,-0.001,0,1,-0.001,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313 +,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1 +,0,-0.002,-1,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0.82,-0.001,-0.572 +,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572 +,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0 +,1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0 +,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1 +,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,-1,0,0,-1,0 +,0,-1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0 +,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572 +,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0,-1,0,0,-1,0,0,-1,-1,-0.001,0,-1,-0.001,0,-1,-0.001,0,0,1,0,0,1,0,0,1,0,0.833,-0.473,-0.286,0.833,-0.473,-0.286 +,0.833,-0.473,-0.286,0,1,0,0,1,0,0,1,0,0,1,0,-1,-0.002,0,-1,-0.002,0,-1,-0.002,0,0,0,-1,0,0,-1,0,0,-1,0.946,-0.001,-0.324,0.946,-0.001,-0.324,0.946,0,-0.323,-0.589,-0.001,-0.808,-0.589,-0.001,-0.808,-0.59,0,-0.807 +,0,0,1,0,0,1,0,0,1,-0.825,-0.566,0,-0.825,-0.566,0,-0.825,-0.566,0,0,1,0,0,-0.327,0.945,0,-0.327,0.945,0,-0.327,0.945,0,1,0,0,-0.327,-0.945,0,-0.327,-0.945,0,-0.327,-0.945,0,0,1,0,0,1,0,0,1 +,1,0,0,1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,0.001,1,0,0.001,1,0,0.001,1,0,1,0 +,1,0,0,1,0,0,-0.59,-0.001,-0.807,0.939,-0.001,-0.343,0,0,-1,-0.534,-0.424,-0.731,0,-0.001,-1,0,-1,0.001,1,0,0,0,1,-0.001,0,-0.002,-1,0.82,-0.001,-0.572,0,0.948,-0.318,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,0.82,-0.001,-0.572 +,0,0.948,-0.318,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,0.82,-0.001,-0.572,0,0.948,-0.318,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,0.82,-0.001,-0.572,0,0.948,-0.318,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,0.82,-0.001,-0.572,0,0.948,-0.318,-0.82,-0.001,-0.572 +,0,-0.95,-0.313,0,-0.002,-1,0,-1,0,1,0,0,0,1,0,0,-0.002,-1,-1,0,0,0,-1,0,1,0,0,0,1,0,0,-0.002,-1,0,-1,0,1,0,0,0,1,0,0,-0.002,-1,-1,0,0,0,-1,0 +,1,0,0,0,1,0,0,-0.002,-1,0,-1,0,1,0,0,0,1,0,0,-0.002,-1,-1,0,0,0,-1,0,1,0,0,0,1,0,0,-0.002,-1,0.82,-0.001,-0.572,0,0.948,-0.318,-0.82,-0.001,-0.572,0,-0.95,-0.313,0,0.707,-0.707 +,0,0,-1,-1,-0.001,0,0.833,-0.473,-0.286,-1,-0.002,0,0,0,-1,0.946,-0.002,-0.325,-0.589,-0.001,-0.808,0,0,1,-0.825,-0.566,0,0,-0.327,0.945,0,-0.327,-0.945,0,0,1,-1,0,0,1,0,0,0,1,0,-1,0,0,0,0.001,1 +] +,"uvs":[0.357,0.854,0.457,0.836,0.457,0.854,0.868,0.123,0.848,0.121,0.868,0.008,0.892,0.684,0.889,0.569,0.893,0.569,0.904,0.423,0.91,0.31,0.91,0.423,0.892,0.684,0.899,0.569,0.898,0.683,0.888,0.683,0.891,0.686,0.886,0.686,0.967,0.955,0.97,0.949,0.979,0.955,0.783,0.685,0.746,0.693,0.746,0.685,0.813,0.121 +,0.819,0.128,0.813,0.128,0.965,0.968,0.928,0.962,0.965,0.962,0.786,0.807,0.792,0.694,0.792,0.807,0.066,0.768,0.103,0.774,0.066,0.774,0.971,0.826,0.949,0.836,0.949,0.826,0.983,0.153,0.977,0.165,0.977,0.155,0.08,0.986,0.105,0.981,0.108,0.986,0.983,0.435,0.988,0.447,0.983,0.449,0.048,0.98,0.022,0.985 +,0.019,0.98,0.125,0.961,0.103,0.972,0.103,0.961,0.241,0.977,0.236,0.965,0.241,0.963,0.733,0.987,0.759,0.982,0.762,0.987,0.982,0.569,0.988,0.581,0.982,0.583,0.898,0.979,0.873,0.984,0.869,0.979,0.206,0.963,0.184,0.974,0.184,0.963,0.987,0.777,0.981,0.79,0.981,0.779,0.96,0.983,0.986,0.979,0.989,0.983 +,0.982,0.798,0.988,0.81,0.982,0.811,0.401,0.979,0.375,0.984,0.372,0.979,0.915,0.958,0.893,0.969,0.893,0.958,0.988,0.392,0.983,0.38,0.988,0.378,0.604,0.987,0.629,0.982,0.633,0.987,0.983,0.186,0.988,0.174,0.988,0.185,0.703,0.978,0.678,0.983,0.674,0.978,0.553,0.959,0.53,0.969,0.53,0.959,0.984,0.021 +,0.978,0.009,0.984,0.008,0.136,0.985,0.161,0.98,0.164,0.985,0.981,0.663,0.987,0.675,0.981,0.677,0.276,0.978,0.251,0.983,0.247,0.978,0.606,0.935,0.565,0.949,0.565,0.935,0.393,0.976,0.352,0.972,0.393,0.972,0.989,0.949,0.985,0.935,0.989,0.935,0.816,0.972,0.857,0.976,0.816,0.976,0.975,0.875,0.969,0.893 +,0.969,0.875,0.979,0.378,0.974,0.396,0.974,0.378,0.466,0.995,0.46,0.99,0.466,0.99,0.979,0.619,0.974,0.602,0.979,0.601,0.479,0.99,0.485,0.995,0.479,0.995,0.945,0.826,0.904,0.84,0.904,0.826,0.348,0.946,0.307,0.943,0.348,0.943,0.99,0.167,0.986,0.153,0.99,0.153,0.511,0.973,0.553,0.976,0.511,0.976 +,0.972,0.41,0.966,0.428,0.966,0.41,0.979,0.435,0.974,0.453,0.974,0.435,0.928,0.294,0.921,0.289,0.928,0.289,0.98,0.211,0.974,0.193,0.98,0.193,0.502,0.99,0.508,0.995,0.502,0.995,0.805,0.933,0.764,0.947,0.764,0.933,0.288,0.975,0.247,0.971,0.288,0.971,0.99,0.857,0.986,0.843,0.99,0.843,0.396,0.972 +,0.437,0.976,0.396,0.976,0.924,0.958,0.918,0.976,0.918,0.958,0.98,0.172,0.974,0.19,0.974,0.172,0.61,0.996,0.604,0.991,0.61,0.991,0.98,0.256,0.974,0.239,0.98,0.239,0.121,0.99,0.127,0.995,0.121,0.995,0.106,0.877,0.084,0.888,0.084,0.877,0.982,0.857,0.977,0.845,0.982,0.843,0.956,0.371,0.982,0.366 +,0.985,0.371,0.983,0.203,0.988,0.191,0.988,0.202,0.337,0.979,0.311,0.984,0.308,0.979,0.357,0.836,0.457,0.833,0.457,0.836,0.647,0.432,0.547,0.319,0.647,0.319,0.929,0.423,0.925,0.31,0.929,0.31,0.977,0.949,0.97,0.949,0.978,0.949,0.91,0.423,0.903,0.425,0.904,0.423,0.978,0.949,0.98,0.956,0.966,0.951 +,0.967,0.952,0.929,0.43,0.924,0.425,0.929,0.425,0.891,0.691,0.899,0.686,0.899,0.691,0.903,0.43,0.911,0.425,0.911,0.43,0.891,0.691,0.886,0.686,0.891,0.686,0.757,0.306,0.772,0.301,0.772,0.306,0.925,0.423,0.929,0.425,0.924,0.425,0.966,0.956,0.862,0.691,0.848,0.689,0.863,0.689,0.97,0.949,0.898,0.683 +,0.891,0.686,0.892,0.684,0.444,0.434,0.544,0.319,0.544,0.434,0.786,0.815,0.792,0.815,0.813,0.008,0.819,0.121,0.783,0.572,0.746,0.572,0.812,0.807,0.816,0.694,0.816,0.815,0.066,0.798,0.793,0.121,0.789,0.008,0.793,0.008,0.744,0.293,0.781,0.172,0.781,0.293,0.357,0.836,0.848,0.008,0.85,0.123,0.888,0.683 +,0.904,0.31,0.893,0.569,0.892,0.684,0.783,0.693,0.928,0.968,0.786,0.694,0.103,0.768,0.971,0.836,0.983,0.167,0.083,0.981,0.988,0.437,0.045,0.985,0.125,0.972,0.236,0.976,0.736,0.982,0.988,0.571,0.895,0.984,0.206,0.974,0.987,0.791,0.963,0.979,0.988,0.799,0.398,0.984,0.915,0.969,0.983,0.39,0.607,0.982 +,0.983,0.172,0.7,0.983,0.553,0.969,0.978,0.02,0.139,0.98,0.987,0.664,0.273,0.983,0.606,0.949,0.352,0.976,0.985,0.949,0.857,0.972,0.975,0.893,0.979,0.396,0.46,0.995,0.974,0.619,0.485,0.99,0.945,0.84,0.307,0.946,0.986,0.167,0.553,0.973,0.972,0.428,0.979,0.453,0.921,0.294,0.974,0.211,0.508,0.99 +,0.805,0.947,0.247,0.975,0.986,0.857,0.437,0.972,0.924,0.976,0.98,0.19,0.604,0.996,0.974,0.256,0.127,0.99,0.106,0.888,0.977,0.855,0.959,0.366,0.983,0.189,0.333,0.984,0.357,0.833,0.547,0.432,0.925,0.423,0.911,0.425,0.924,0.43,0.891,0.686,0.903,0.425,0.886,0.691,0.757,0.301,0.929,0.423,0.85,0.691 +,0.899,0.686,0.444,0.319,0.819,0.008,0.812,0.694,0.103,0.798,0.789,0.128,0.744,0.172] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 +,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99 +,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149 +,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199 +,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,20,222,223,18,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,20,244,18,245 +,246,247,225,248,19,249,250,251,252,253,254,255,32,256,257,258,24,259,23,260,261,262,263,34,264,35,26,265,24,256,261,263,265,266,267,268,269,270,0,271,1,272,5,4,3,273,4,6,274,7 +,9,275,10,12,276,13,15,277,16,216,20,19,18,225,19,21,278,22,24,258,25,27,279,28,30,280,31,33,281,34,36,282,37,39,283,40,42,284,43,45,285,46,48,286,49,51,287,52,54,288 +,55,57,289,58,60,290,61,63,291,64,66,292,67,69,293,70,72,294,73,75,295,76,78,296,79,81,297,82,84,298,85,87,299,88,90,300,91,93,301,94,96,302,97,99,303,100,102,304,103,105 +,305,106,108,306,109,111,307,112,114,308,115,117,309,118,120,310,121,123,311,124,126,312,127,129,313,130,132,314,133,135,315,136,138,316,139,141,317,142,144,318,145,147,319,148,150,320,151,153,321,154 +,156,322,157,159,323,160,162,324,163,165,325,166,168,326,169,171,327,172,174,328,175,177,329,178,180,330,181,183,331,184,186,332,187,189,333,190,192,334,193,195,335,196,198,336,199,201,337,202,204,338 +,205,207,339,208,210,340,211,213,341,214,216,19,217,219,342,220,20,216,222,18,244,224,226,343,227,229,344,230,232,345,233,235,346,236,238,347,239,241,348,242,20,223,244,245,349,246,225,224,248,249 +,350,250,252,351,253,255,30,32,257,352,258,259,21,23,261,353,262,34,354,264,26,355,265,256,32,261,265,355,266,268,356,269] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":357,"indexStart":0,"indexCount":582}] +,"instances":[]} +,{"name":"ObstacleColumnRight","id":"ObstacleColumnRight","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[57.2201,-4858.5034,1965.6718],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-49.2756,55.0661,-4.6326,50.7244,55.0661,13.1498,-49.2756,55.0661,13.1498,-49.2756,52.8485,-6.8502,-49.2756,55.0661,-4.6326,-49.2756,55.0661,13.1498,-40.7076,52.8485,-12.678,-37.709,-60.0736,-10.3939,-37.5814,52.8485,-10.3939,-47.2484,52.8485,-12.678,-49.2756,-60.0736,-6.7806,-47.1208,-60.0736,-12.678,-47.1208,-60.0736,-12.678,-40.7076,52.8485,-12.678,-47.2484,52.8485,-12.678,-37.5703,59.9264,-10.3939,-40.0308,59.9264,-13.9618 +,-36.1216,59.9264,-10.5017,-40.7039,59.9264,-12.678,-37.5703,59.9264,-10.3939,-37.1414,59.9264,-7.2593,2.6153,60.0639,-12.695,-34.0894,52.8485,-12.6921,2.6153,52.8485,-12.6921,2.6153,52.8557,-6.7947,2.6153,60.0639,-12.695,2.6153,52.8485,-12.6921,2.6153,-60.0736,-6.7636,-34.0894,-60.0808,-12.661,-34.0894,-60.0736,-6.7636,-34.0894,-60.0736,-6.7636,-34.0894,52.8485,-12.6921,-34.0894,52.8557,-6.7947,-34.0894,60.071,-6.7976 +,2.6153,60.0639,-12.695,2.6153,60.071,-6.7976,-4.5771,54.3981,-17.3725,-26.897,43.774,-17.3462,-4.5771,43.774,-17.3462,-30.1657,42.2297,-12.661,-26.897,54.3981,-17.3725,-30.1657,55.9655,-12.695,-26.897,54.3981,-17.3725,-1.3084,55.9655,-12.695,-30.1657,55.9655,-12.695,-4.5771,54.3981,-17.3725,-1.3084,42.2297,-12.661,-1.3084,55.9655,-12.695,-1.3084,42.2297,-12.661,-26.897,43.774,-17.3462,-30.1657,42.2297,-12.661 +,-4.5771,37.2864,-17.3725,-26.897,26.6622,-17.3462,-4.5771,26.6622,-17.3462,-26.897,26.6622,-17.3462,-30.1657,38.8538,-12.695,-30.1657,25.1179,-12.661,-26.897,37.2864,-17.3725,-1.3084,38.8538,-12.695,-30.1657,38.8538,-12.695,-1.3084,38.8538,-12.695,-4.5771,26.6622,-17.3462,-1.3084,25.1179,-12.661,-4.5771,26.6622,-17.3462,-30.1657,25.1179,-12.661,-1.3084,25.1179,-12.661,-4.5771,20.081,-17.3725,-26.897,9.4569,-17.3462 +,-4.5771,9.4569,-17.3462,-26.897,9.4569,-17.3462,-30.1657,21.6485,-12.695,-30.1657,7.9126,-12.661,-26.897,20.081,-17.3725,-1.3084,21.6485,-12.695,-30.1657,21.6485,-12.695,-4.5771,20.081,-17.3725,-1.3084,7.9126,-12.661,-1.3084,21.6485,-12.695,-4.5771,9.4569,-17.3462,-30.1657,7.9126,-12.661,-1.3084,7.9126,-12.661,-4.5771,2.4979,-17.3725,-26.897,-8.1262,-17.3462,-4.5771,-8.1262,-17.3462,-26.897,-8.1262,-17.3462 +,-30.1657,4.0654,-12.695,-30.1657,-9.6705,-12.661,-26.897,2.4979,-17.3725,-1.3084,4.0654,-12.695,-30.1657,4.0654,-12.695,-4.5771,2.4979,-17.3725,-1.3084,-9.6705,-12.661,-1.3084,4.0654,-12.695,-4.5771,-8.1262,-17.3462,-30.1657,-9.6705,-12.661,-1.3084,-9.6705,-12.661,-4.5771,-13.6799,-17.3725,-26.897,-24.3041,-17.3462,-4.5771,-24.3041,-17.3462,-26.897,-24.3041,-17.3462,-30.1657,-12.1125,-12.695,-30.1657,-25.8484,-12.661 +,-26.897,-13.6799,-17.3725,-1.3084,-12.1125,-12.695,-30.1657,-12.1125,-12.695,-4.5771,-13.6799,-17.3725,-1.3084,-25.8484,-12.661,-1.3084,-12.1125,-12.695,-1.3084,-25.8484,-12.661,-26.897,-24.3041,-17.3462,-30.1657,-25.8484,-12.661,50.7244,36.2323,-10.6323,9.7525,22.3047,-10.5983,50.7244,22.3047,-10.5983,50.7244,22.3058,-6.7636,9.7525,22.3047,-10.5983,9.7525,22.3058,-6.7636,9.7525,36.2334,-6.7976,9.7525,22.3047,-10.5983 +,9.7525,36.2323,-10.6323,9.7525,36.2334,-6.7976,50.7244,36.2323,-10.6323,50.7244,36.2334,-6.7976,20.7137,38.1361,-12.2276,14.5882,20.4005,-12.1936,20.7137,20.4005,-12.1936,20.7137,38.1376,-6.7976,20.7137,20.4005,-12.1936,20.7137,20.4019,-6.7636,20.7137,20.4019,-6.7636,14.5882,20.4005,-12.1936,14.5882,20.4019,-6.7636,14.5882,38.1376,-6.7976,14.5882,20.4005,-12.1936,14.5882,38.1361,-12.2276,14.5882,38.1376,-6.7976 +,20.7137,38.1361,-12.2276,20.7137,38.1376,-6.7976,50.7244,12.8857,-10.6323,9.7525,-1.0418,-10.5983,50.7244,-1.0418,-10.5983,50.7244,-1.0407,-6.7636,9.7525,-1.0418,-10.5983,9.7525,-1.0407,-6.7636,9.7525,12.8868,-6.7976,9.7525,-1.0418,-10.5983,9.7525,12.8857,-10.6323,9.7525,12.8868,-6.7976,50.7244,12.8857,-10.6323,50.7244,12.8868,-6.7976,20.7137,14.7896,-12.2276,14.5882,-2.946,-12.1936,20.7137,-2.946,-12.1936 +,20.7137,14.791,-6.7976,20.7137,-2.946,-12.1936,20.7137,-2.9446,-6.7636,20.7137,-2.9446,-6.7636,14.5882,-2.946,-12.1936,14.5882,-2.9446,-6.7636,14.5882,14.791,-6.7976,14.5882,-2.946,-12.1936,14.5882,14.7896,-12.2276,14.5882,14.791,-6.7976,20.7137,14.7896,-12.2276,20.7137,14.791,-6.7976,50.7244,-10.3394,-10.6323,9.7525,-24.2669,-10.5983,50.7244,-24.2669,-10.5983,50.7244,-24.2658,-6.7636,9.7525,-24.2669,-10.5983 +,9.7525,-24.2658,-6.7636,9.7525,-10.3383,-6.7976,9.7525,-24.2669,-10.5983,9.7525,-10.3394,-10.6323,9.7525,-10.3383,-6.7976,50.7244,-10.3394,-10.6323,50.7244,-10.3383,-6.7976,20.7137,-8.4355,-12.2276,14.5882,-26.1711,-12.1936,20.7137,-26.1711,-12.1936,20.7137,-8.4341,-6.7976,20.7137,-26.1711,-12.1936,20.7137,-26.1697,-6.7636,20.7137,-26.1697,-6.7636,14.5882,-26.1711,-12.1936,14.5882,-26.1697,-6.7636,14.5882,-8.4341,-6.7976 +,14.5882,-26.1711,-12.1936,14.5882,-8.4355,-12.2276,14.5882,-8.4341,-6.7976,20.7137,-8.4355,-12.2276,20.7137,-8.4341,-6.7976,-4.5771,-30.648,-17.3725,-26.897,-41.2721,-17.3462,-4.5771,-41.2721,-17.3462,-26.897,-41.2721,-17.3462,-30.1657,-29.0805,-12.695,-30.1657,-42.8164,-12.661,-26.897,-30.648,-17.3725,-1.3084,-29.0805,-12.695,-30.1657,-29.0805,-12.695,-1.3084,-29.0805,-12.695,-4.5771,-41.2721,-17.3462,-1.3084,-42.8164,-12.661 +,-1.3084,-42.8164,-12.661,-26.897,-41.2721,-17.3462,-30.1657,-42.8164,-12.661,-49.2756,52.8485,-6.8502,50.7244,55.0661,-4.6326,-49.2756,55.0661,-4.6326,50.7244,-60.0736,-6.8502,-49.2756,52.8485,-6.8502,-49.2756,-60.0736,-6.8502,-49.2756,-60.0736,13.1498,50.7244,55.0661,13.1498,50.7244,-60.0736,13.1498,-37.709,-60.0736,-6.7806,-37.5814,52.8485,-10.3939,-37.709,-60.0736,-10.3939,-47.2484,52.8485,-12.678,-50.7244,54.2827,-6.7806 +,-49.2756,52.8485,-6.7806,-36.1216,59.9264,-7.2593,-37.0831,54.2827,-6.7806,-37.1414,59.9264,-7.2593,-47.2484,52.8485,-12.678,-40.0354,54.2827,-13.9618,-48.1953,54.2827,-13.9618,-49.2756,52.8485,-6.7806,-50.7244,54.2827,-6.7806,-49.8014,54.2827,-6.7806,-36.1355,54.2827,-10.5017,-36.1216,59.9264,-7.2593,-36.1216,59.9264,-10.5017,-48.1953,54.2827,-13.9618,-40.0308,59.9264,-13.9618,-48.2092,59.9264,-13.9618,-50.7244,59.9264,-7.2594 +,-48.1953,54.2827,-13.9618,-48.2092,59.9264,-13.9618,-40.0308,59.9264,-13.9618,-36.1355,54.2827,-10.5017,-36.1216,59.9264,-10.5017,-37.5814,52.8485,-10.3939,-40.0354,54.2827,-13.9618,-40.7076,52.8485,-12.678,-37.1414,59.9264,-7.2593,-36.1216,59.9264,-10.5017,-36.1216,59.9264,-7.2593,-47.2595,59.9264,-12.678,-50.7244,59.9264,-7.2594,-48.2092,59.9264,-13.9618,-47.2595,59.9264,-12.678,-40.0308,59.9264,-13.9618,-40.7039,59.9264,-12.678 +,-37.5814,52.8485,-10.3939,-36.1355,54.2827,-6.7806,-36.1355,54.2827,-10.5017,-34.0894,60.0639,-12.695,-34.0894,60.071,-6.7976,2.6153,-60.0736,-6.7636,2.6153,-60.0808,-12.661,-34.0894,-60.0808,-12.661,2.6153,-60.0808,-12.661,-36.1355,54.2827,-6.7806,-37.5814,52.8485,-6.7806,-37.0831,54.2827,-6.7806,-49.7046,59.9264,-7.2593,-49.8014,54.2827,-6.7806,-50.7244,59.9264,-7.2594,-50.7244,54.2827,-6.7806,-34.0894,52.8631,13.1498 +,-34.0894,-60.0713,17.3725,-34.0894,-60.0736,13.1498,2.6153,60.071,-6.7976,2.6153,52.8631,13.1498,2.6153,60.0808,17.3695,-34.0894,60.0808,17.3695,2.6153,-60.0713,17.3725,2.6153,60.0808,17.3695,-34.0894,-60.0713,17.3725,-34.0894,60.0808,17.3695,50.7244,55.0661,-4.6326,-49.2756,-60.0736,13.1498,-49.2756,-60.0736,-6.8502,-40.7501,-60.0736,-12.678,-49.2756,52.8485,-6.7806,-40.7501,-60.0736,-12.678,-40.7039,59.9264,-12.678 +,-49.7046,59.9264,-7.2593,-47.2595,59.9264,-12.678,-34.0894,60.0639,-12.695,2.6153,-60.0808,-12.661,-34.0894,-60.0808,-12.661,-34.0894,60.0639,-12.695,-26.897,54.3981,-17.3725,-26.897,43.774,-17.3462,-4.5771,54.3981,-17.3725,-4.5771,43.774,-17.3462,-4.5771,43.774,-17.3462,-26.897,37.2864,-17.3725,-26.897,37.2864,-17.3725,-4.5771,37.2864,-17.3725,-4.5771,37.2864,-17.3725,-26.897,26.6622,-17.3462,-26.897,20.081,-17.3725 +,-26.897,20.081,-17.3725,-4.5771,20.081,-17.3725,-4.5771,9.4569,-17.3462,-26.897,9.4569,-17.3462,-26.897,2.4979,-17.3725,-26.897,2.4979,-17.3725,-4.5771,2.4979,-17.3725,-4.5771,-8.1262,-17.3462,-26.897,-8.1262,-17.3462,-26.897,-13.6799,-17.3725,-26.897,-13.6799,-17.3725,-4.5771,-13.6799,-17.3725,-4.5771,-24.3041,-17.3462,-4.5771,-24.3041,-17.3462,9.7525,36.2323,-10.6323,50.7244,22.3047,-10.5983,9.7525,22.3058,-6.7636 +,9.7525,36.2323,-10.6323,14.5882,38.1361,-12.2276,20.7137,38.1361,-12.2276,20.7137,20.4005,-12.1936,14.5882,20.4019,-6.7636,14.5882,38.1361,-12.2276,9.7525,12.8857,-10.6323,50.7244,-1.0418,-10.5983,9.7525,-1.0407,-6.7636,9.7525,12.8857,-10.6323,14.5882,14.7896,-12.2276,20.7137,14.7896,-12.2276,20.7137,-2.946,-12.1936,14.5882,-2.9446,-6.7636,14.5882,14.7896,-12.2276,9.7525,-10.3394,-10.6323,50.7244,-24.2669,-10.5983 +,9.7525,-24.2658,-6.7636,9.7525,-10.3394,-10.6323,14.5882,-8.4355,-12.2276,20.7137,-8.4355,-12.2276,20.7137,-26.1711,-12.1936,14.5882,-26.1697,-6.7636,14.5882,-8.4355,-12.2276,-26.897,-30.648,-17.3725,-26.897,-30.648,-17.3725,-4.5771,-30.648,-17.3725,-4.5771,-30.648,-17.3725,-4.5771,-41.2721,-17.3462,50.7244,52.8485,-6.8502,50.7244,52.8485,-6.8502,-49.2756,55.0661,13.1498,-37.5814,52.8485,-6.7806,-48.1953,54.2827,-13.9618 +,-36.1355,54.2827,-6.7806,-40.7076,52.8485,-12.678,-36.1355,54.2827,-6.7806,-40.0354,54.2827,-13.9618,-50.7244,54.2827,-6.7806,-40.0354,54.2827,-13.9618,-36.1355,54.2827,-10.5017,-37.1414,59.9264,-7.2593,-37.5703,59.9264,-10.3939,-36.1216,59.9264,-10.5017,-49.7046,59.9264,-7.2593,-47.2595,59.9264,-12.678,-48.2092,59.9264,-13.9618,-37.5814,52.8485,-6.7806,-34.0894,60.0808,17.3695,2.6153,60.0808,17.3695,2.6153,-60.0736,13.1498 +,2.6153,-60.0713,17.3725] +,"normals":[0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0.59,-0.001,-0.807,0.6,0,-0.8,0.59,-0.001,-0.807,-0.945,0,-0.326,-0.939,-0.001,-0.343,-0.939,-0.001,-0.343,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,-1,0.001,0,-1,0.001,0,-1,0.001,-1,0,0,-1,0,0,-1,0,0,0,1,-0.001 +,0,1,-0.001,0,1,-0.001,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313 +,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1 +,0,-0.002,-1,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-0.82,-0.001,-0.572 +,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572 +,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0 +,-1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0 +,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1 +,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,-1,0,0,-1,0 +,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0 +,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,-0.82,-0.001,-0.572,0,0.948,-0.318,0,0.948,-0.318,0,0.948,-0.318,0.82,-0.001,-0.572,0.82,-0.001,-0.572,0.82,-0.001,-0.572 +,0,-0.95,-0.313,0,-0.95,-0.313,0,-0.95,-0.313,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,1,-0.001,0,1,-0.001,0,1,-0.001,0,-0.693,-0.679,-0.243,-0.686,-0.688,-0.237 +,-0.684,-0.691,-0.235,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,0,-0.667,-0.745,0,-0.667,-0.745,0,-0.667,-0.745,0,0,1,0,0,1,0,0,1,1,-0.002,0,1,-0.002,0,1,-0.002,0,0,0,-1,0,0,-1,0,0,-1,-0.94,-0.018,-0.34 +,-0.939,-0.013,-0.343,-0.936,-0.002,-0.351,0.663,-0.001,-0.748,0.663,-0.001,-0.748,0.663,-0.002,-0.749,0.513,-0.614,-0.6,0.453,-0.675,-0.583,0.417,-0.707,-0.571,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0.704,-0.71,0,0.704,-0.71,0,0.704,-0.71,0,-1,0,0,-1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,-1,0,0 +,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,-1,0,0,-1,0,0,0.601,0,-0.8,-0.946,0,-0.325,0,0,-1,0,1,0 +,0,1,0,0,1,0,0,0,-1,0,-1,0.001,-1,0,0,0,1,-0.001,0,-0.002,-1,-0.82,-0.001,-0.572,0,0.948,-0.318,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,-0.82,-0.001,-0.572,0,0.948,-0.318,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1 +,-0.82,-0.001,-0.572,0,0.948,-0.318,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,-0.82,-0.001,-0.572,0,0.948,-0.318,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,-0.82,-0.001,-0.572,0,0.948,-0.318,0.82,-0.001,-0.572,0,-0.95,-0.313,0,-0.002,-1,0,-1,0,-1,0,0 +,0,1,0,0,-0.002,-1,1,0,0,0,-1,0,-1,0,0,0,1,0,0,-0.002,-1,0,-1,0,-1,0,0,0,1,0,0,-0.002,-1,1,0,0,0,-1,0,-1,0,0,0,1,0,0,-0.002,-1,0,-1,0 +,-1,0,0,0,1,0,0,-0.002,-1,1,0,0,0,-1,0,-1,0,0,0,1,0,0,-0.002,-1,-0.82,-0.001,-0.572,0,0.948,-0.318,0.82,-0.001,-0.572,0,-0.95,-0.313,0,0.707,-0.707,0,0,-1,0,0,1,1,-0.001,0,-0.694,-0.677,-0.244 +,0,0.085,0.996,0,-0.667,-0.745,1,-0.002,0,0,0,-1,-0.943,-0.028,-0.332,0.664,-0.001,-0.748,0.537,-0.587,-0.605,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.704,-0.71,0,-1,0,0,0,1,0,1,0,0 +,0,0,1] +,"uvs":[0.767,0.846,0.867,0.864,0.767,0.864,0.866,0.423,0.864,0.425,0.846,0.425,0.896,0.423,0.9,0.31,0.9,0.423,0.928,0.548,0.922,0.435,0.928,0.435,0.89,0.31,0.896,0.423,0.89,0.423,0.074,0.976,0.071,0.973,0.076,0.976,0.553,0.98,0.556,0.982,0.556,0.985,0.785,0.128,0.749,0.121,0.785,0.121,0.818,0.423 +,0.812,0.43,0.812,0.423,0.884,0.291,0.847,0.297,0.847,0.291,0.819,0.555,0.813,0.442,0.819,0.442,0.357,0.863,0.393,0.857,0.393,0.863,0.974,0.915,0.952,0.904,0.974,0.904,0.982,0.711,0.988,0.723,0.982,0.725,0.187,0.983,0.213,0.988,0.184,0.988,0.979,0.496,0.985,0.483,0.985,0.497,0.433,0.926,0.407,0.93 +,0.404,0.926,0.232,0.974,0.21,0.963,0.232,0.963,0.987,0.624,0.981,0.636,0.981,0.623,0.768,0.982,0.794,0.987,0.765,0.987,0.987,0.305,0.981,0.293,0.987,0.292,0.842,0.984,0.816,0.979,0.845,0.979,0.482,0.978,0.46,0.968,0.482,0.968,0.984,0.877,0.978,0.889,0.978,0.875,0.964,0.927,0.99,0.931,0.961,0.931 +,0.982,0.706,0.988,0.694,0.988,0.708,0.585,0.984,0.56,0.979,0.588,0.979,0.978,0.636,0.955,0.626,0.978,0.626,0.985,0.468,0.979,0.48,0.979,0.466,0.639,0.982,0.665,0.987,0.636,0.987,0.983,0.219,0.988,0.206,0.988,0.22,0.366,0.984,0.34,0.979,0.369,0.979,0.978,0.302,0.956,0.292,0.978,0.292,0.983,0.902 +,0.977,0.915,0.977,0.901,0.515,0.98,0.54,0.985,0.511,0.985,0.981,0.652,0.987,0.64,0.987,0.654,0.957,0.979,0.931,0.983,0.928,0.979,0.651,0.949,0.61,0.935,0.651,0.935,0.969,0.971,0.928,0.975,0.928,0.971,0.985,0.097,0.989,0.083,0.989,0.097,0.56,0.976,0.601,0.972,0.601,0.976,0.972,0.36,0.966,0.342 +,0.972,0.342,0.98,0.836,0.974,0.819,0.98,0.819,0.118,0.99,0.112,0.995,0.112,0.99,0.975,0.428,0.981,0.41,0.981,0.428,0.492,0.995,0.498,0.99,0.498,0.995,0.456,0.95,0.415,0.936,0.456,0.936,0.349,0.972,0.308,0.976,0.308,0.972,0.985,0.288,0.989,0.274,0.989,0.288,0.136,0.977,0.177,0.973,0.177,0.977 +,0.979,0.815,0.972,0.798,0.979,0.798,0.728,0.979,0.723,0.962,0.728,0.962,0.619,0.991,0.613,0.996,0.613,0.991,0.974,0.232,0.98,0.214,0.98,0.232,0.623,0.996,0.629,0.991,0.629,0.996,0.288,0.957,0.247,0.943,0.288,0.943,0.715,0.971,0.674,0.975,0.674,0.971,0.985,0.356,0.989,0.342,0.989,0.356,0.019,0.977 +,0.06,0.973,0.06,0.977,0.978,0.552,0.972,0.534,0.978,0.534,0.98,0.327,0.974,0.31,0.98,0.31,0.598,0.991,0.592,0.996,0.592,0.991,0.973,0.587,0.979,0.569,0.979,0.587,0.469,0.995,0.476,0.99,0.476,0.995,0.508,0.978,0.486,0.968,0.508,0.968,0.987,0.762,0.981,0.774,0.981,0.76,0.463,0.982,0.489,0.987 +,0.46,0.987,0.987,0.548,0.982,0.535,0.987,0.534,0.433,0.979,0.408,0.984,0.404,0.979,0.767,0.843,0.867,0.846,0.767,0.846,0.544,0.437,0.444,0.55,0.444,0.437,0.44,0.319,0.34,0.434,0.34,0.319,0.936,0.569,0.932,0.682,0.932,0.569,0.887,0.169,0.894,0.167,0.893,0.169,0.985,0.04,0.984,0.046,0.984,0.04 +,0.118,0.768,0.124,0.771,0.116,0.77,0.971,0.047,0.97,0.046,0.971,0.046,0.932,0.684,0.935,0.69,0.932,0.69,0.974,0.26,0.983,0.265,0.974,0.265,0.992,0.952,0.985,0.958,0.985,0.952,0.983,0.265,0.988,0.26,0.988,0.265,0.128,0.768,0.124,0.771,0.124,0.769,0.884,0.814,0.881,0.813,0.884,0.813,0.858,0.554 +,0.864,0.555,0.857,0.555,0.064,0.976,0.071,0.973,0.071,0.975,0.932,0.682,0.936,0.684,0.932,0.684,0.813,0.435,0.819,0.435,0.818,0.31,0.812,0.31,0.749,0.008,0.785,0.008,0.985,0.046,0.983,0.047,0.984,0.046,0.971,0.04,0.971,0.046,0.97,0.04,0.97,0.046,0.839,0.442,0.843,0.555,0.839,0.555,0.818,0.43 +,0.838,0.423,0.843,0.43,0.357,0.887,0.843,0.31,0.735,0.555,0.772,0.435,0.772,0.555,0.867,0.846,0.846,0.31,0.866,0.31,0.896,0.31,0.922,0.548,0.896,0.31,0.071,0.975,0.544,0.985,0.546,0.98,0.749,0.128,0.884,0.297,0.813,0.555,0.357,0.857,0.952,0.915,0.988,0.713,0.21,0.983,0.979,0.485,0.43,0.93 +,0.21,0.974,0.987,0.635,0.791,0.982,0.981,0.304,0.819,0.984,0.46,0.978,0.984,0.888,0.987,0.927,0.982,0.696,0.563,0.984,0.955,0.636,0.985,0.479,0.662,0.982,0.983,0.208,0.343,0.984,0.956,0.302,0.983,0.913,0.537,0.98,0.981,0.641,0.953,0.983,0.61,0.949,0.969,0.975,0.985,0.083,0.56,0.972,0.966,0.36 +,0.974,0.836,0.118,0.995,0.975,0.41,0.492,0.99,0.415,0.95,0.349,0.976,0.985,0.274,0.136,0.973,0.972,0.815,0.723,0.979,0.619,0.996,0.974,0.214,0.623,0.991,0.247,0.957,0.715,0.975,0.985,0.342,0.019,0.973,0.972,0.552,0.974,0.327,0.598,0.996,0.973,0.569,0.469,0.99,0.486,0.978,0.987,0.773,0.486,0.982 +,0.982,0.546,0.43,0.984,0.867,0.843,0.544,0.55,0.44,0.434,0.936,0.682,0.886,0.167,0.985,0.046,0.124,0.769,0.936,0.684,0.983,0.26,0.993,0.958,0.983,0.26,0.129,0.769,0.884,0.814,0.881,0.814,0.881,0.813,0.863,0.554,0.064,0.976,0.063,0.975,0.936,0.682,0.843,0.435,0.393,0.887,0.838,0.31,0.735,0.435 +] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 +,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99 +,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149 +,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199 +,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249 +,250,251,252,253,254,255,256,257,32,258,259,260,26,261,23,262,263,264,265,266,267,223,268,228,266,265,269,268,270,271,272,273,259,271,32,274,275,276,35,277,33,275,278,276,279,280,281,0,282,1 +,5,283,3,284,3,283,6,285,7,9,286,10,12,287,13,15,288,16,20,289,18,290,18,289,21,291,22,24,274,25,27,292,28,30,293,31,33,294,34,36,295,37,39,296,40,42,297,43,45,298 +,46,48,299,49,51,300,52,54,301,55,57,302,58,60,303,61,63,304,64,66,305,67,69,306,70,72,307,73,75,308,76,78,309,79,81,310,82,84,311,85,87,312,88,90,313,91,93,314,94,96 +,315,97,99,316,100,102,317,103,105,318,106,108,319,109,111,320,112,114,321,115,117,322,118,120,323,121,123,324,124,126,325,127,129,326,130,132,327,133,135,328,136,138,329,139,141,330,142,144,331,145 +,147,332,148,150,333,151,153,334,154,156,335,157,159,336,160,162,337,163,165,338,166,168,339,169,171,340,172,174,341,175,177,342,178,180,343,181,183,344,184,186,345,187,189,346,190,192,347,193,195,348 +,196,198,349,199,201,350,202,204,351,205,207,352,208,210,353,211,213,354,214,216,355,217,219,356,220,222,357,223,225,358,226,231,359,232,234,360,235,237,361,238,240,362,241,243,363,244,364,365,366,249 +,367,250,368,369,253,255,370,256,32,31,258,260,24,26,23,22,262,267,224,223,228,230,266,269,267,268,271,371,272,259,371,271,274,24,275,35,372,277,275,373,278,279,374,280] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":375,"indexStart":0,"indexCount":594}] +,"instances":[]} +,{"name":"ObstacleCornerBottomLeft","id":"ObstacleCornerBottomLeft","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[-53.903,-4883.5771,3655.447],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-54.0415,35,-6.8577,53.903,-35,-6.8577,53.903,35,-6.8577,53.903,35,-6.8577,53.903,-35,13.1423,53.903,35,13.1423,-54.0415,35,-6.8577,53.903,35,13.1423,-54.0415,35,13.1423,42.3361,21.3648,-10.4709,45.5159,-35,-12.7551,45.4697,21.9291,-12.7551,47.2815,34.1235,-9.8063,-54.0415,35,-6.8576,-54.0415,34.2688,-9.8063,53.0334,28.1078,-9.8063,53.9002,-35,-6.8576 +,54.0415,28.2865,-6.8576,45.4697,21.9291,-12.7551,51.8866,-35,-12.7551,52.0253,27.929,-12.7551,47.2815,34.1235,-9.8063,52.0253,27.929,-12.7551,53.0334,28.1078,-9.8063,45.4697,21.9291,-12.7551,46.8638,33.3936,-12.7551,40.1498,27.307,-12.7551,39.2272,24.2637,-10.4709,-54.0415,27.259,-12.7551,-54.0415,24.1197,-10.4709,42.3361,21.3648,-10.4709,40.1498,27.307,-12.7551,39.2272,24.2637,-10.4709,40.1498,27.307,-12.7551 +,-54.0415,33.5375,-12.7551,-54.0415,27.259,-12.7551,42.3361,21.3648,-10.4709,42.4749,-35,-6.8576,42.4749,-35,-10.4709,-54.0415,24.1197,-10.4709,39.2272,24.2637,-6.8576,39.2272,24.2637,-10.4709,39.2272,24.2637,-10.4709,42.3361,21.3648,-6.8576,42.3361,21.3648,-10.4709,47.6993,34.8534,-6.8576,54.0415,28.2865,-6.8576,52.0253,27.929,-12.7551,52.8934,-35,-9.8063,46.8638,33.3936,-12.7551,-54.0415,33.5375,-12.7551 +,-21.6058,12.5542,-9.7239,20.8656,2.6629,-9.7239,20.8656,12.5542,-9.7239,20.8656,12.5542,-9.7239,22.3139,1.3262,-6.8577,22.3139,13.891,-6.8577,-23.0541,1.3262,-6.8577,-21.6058,12.5542,-9.7239,-23.0541,13.891,-6.8577,-21.6058,12.5542,-9.7239,22.3139,13.891,-6.8577,-23.0541,13.891,-6.8577,22.3139,1.3262,-6.8577,-21.6058,2.663,-9.7239,-23.0541,1.3262,-6.8577,4.4116,4.4892,-8.2736,2.8478,-35,-8.2736 +,4.4116,-35,-8.2736,4.4116,4.4892,-8.2736,4.9377,-35,-6.8577,4.9377,4.4892,-6.8577,2.3216,-35,-6.8577,2.8478,4.4892,-8.2736,2.3216,4.4892,-6.8577,-1.5181,4.4892,-8.2736,0.0457,-35,-8.2736,0.0457,4.4892,-8.2736,0.0457,4.4892,-8.2736,0.5719,-35,-6.8577,0.5719,4.4892,-6.8577,-2.0442,-35,-6.8577,-1.5181,4.4892,-8.2736,-2.0442,4.4892,-6.8577,-5.7223,4.4892,-8.2736 +,-4.1584,-6.5008,-8.2736,-4.1584,4.4892,-8.2736,-4.1584,4.4892,-8.2736,-3.6323,-6.5008,-6.8577,-3.6323,4.4892,-6.8577,-6.2484,-6.5008,-6.8577,-5.7223,4.4892,-8.2736,-6.2484,4.4892,-6.8577,10.2685,4.7076,-11.8943,8.7619,4.0835,-10.5118,10.2685,3.7838,-10.5118,10.2685,6.09,-12.818,10.2685,7.7207,-13.1423,9.6445,6.2141,-12.818,8.6378,3.7838,-8.8812,10.2685,3.4595,-8.8812,10.2685,4.7076,-11.8943 +,9.1154,4.9369,-11.8943,7.4848,4.9369,-10.5118,7.2554,4.7076,-8.8812,9.1154,6.5676,-12.818,8.1379,5.5901,-11.8943,9.1154,4.9369,-11.8943,7.4848,6.5676,-11.8943,8.1379,5.5901,-11.8943,6.6314,6.2141,-10.5118,8.762,7.0966,-12.818,6.3317,6.09,-8.8812,7.2554,7.7207,-11.8943,6.3317,7.7207,-10.5118,8.6378,7.7207,-12.818,6.0073,7.7207,-8.8812,7.2554,7.7207,-11.8943,8.762,8.3447,-12.818 +,6.6314,9.2272,-10.5118,6.3317,9.3513,-8.8812,7.4848,8.8737,-11.8943,7.2554,7.7207,-11.8943,7.2554,7.7207,-11.8943,6.6314,9.2272,-10.5118,6.3317,7.7207,-10.5118,6.6314,9.2272,-10.5118,7.2554,10.7338,-8.8812,6.3317,9.3513,-8.8812,9.1154,8.8737,-12.818,8.1379,9.8513,-11.8943,7.4848,8.8737,-11.8943,7.4848,10.5044,-10.5118,6.6314,9.2272,-10.5118,9.1154,10.5044,-11.8943,8.762,11.3578,-10.5118 +,9.6445,9.2272,-12.818,8.6378,11.6575,-8.8812,9.1154,10.5044,-11.8943,10.2685,10.7338,-11.8943,10.2685,11.6575,-10.5118,10.2685,9.3513,-12.818,10.2685,11.9818,-8.8812,10.2685,10.7338,-11.8943,9.1154,10.5044,-11.8943,11.8992,11.6575,-8.8812,10.2685,10.7338,-11.8943,10.8925,9.2272,-12.818,11.4216,10.5044,-11.8943,11.7751,11.3578,-10.5118,13.0523,10.5044,-10.5118,13.2816,10.7338,-8.8812,11.4216,8.8737,-12.818 +,12.3991,9.8512,-11.8943,11.4216,10.5044,-11.8943,13.0523,10.5044,-10.5118,13.0523,8.8737,-11.8943,13.9057,9.2272,-10.5118,11.7751,8.3447,-12.818,13.2816,10.7338,-8.8812,14.2053,9.3513,-8.8812,13.0523,8.8737,-11.8943,13.2816,7.7207,-11.8943,14.2053,7.7207,-10.5118,11.8992,7.7207,-12.818,14.5297,7.7207,-8.8812,13.0523,8.8737,-11.8943,13.2816,7.7207,-11.8943,13.9057,6.2141,-10.5118,14.2053,6.09,-8.8812 +,13.0523,6.5676,-11.8943,13.2816,7.7207,-11.8943,11.7751,7.0966,-12.818,11.4216,6.5676,-12.818,12.3991,5.5901,-11.8943,13.0523,6.5676,-11.8943,13.0522,4.9369,-10.5118,13.2816,4.7075,-8.8812,11.4216,4.9369,-11.8943,11.7751,4.0835,-10.5118,10.8925,6.2141,-12.818,11.8992,3.7838,-8.8812,11.4216,4.9369,-11.8943,11.8992,3.7838,-8.8812,10.2685,4.7076,-11.8943,11.4216,4.9369,-11.8943,11.7751,4.0835,-10.5118 +,-0.7095,4.7076,-11.8943,-2.2161,4.0835,-10.5118,-0.7095,3.7838,-10.5118,-0.7095,6.09,-12.818,-0.7095,7.7207,-13.1423,-1.3336,6.2141,-12.818,-2.3402,3.7838,-8.8812,-0.7095,3.4595,-8.8812,-0.7095,4.7076,-11.8943,-1.8626,4.9369,-11.8943,-3.7227,4.7076,-8.8812,-2.8401,5.5901,-11.8943,-2.8401,5.5901,-11.8943,-3.4933,4.9369,-10.5118,-1.8626,6.5676,-12.818,-2.2161,7.0966,-12.818,-3.4933,6.5676,-11.8943 +,-3.4933,6.5676,-11.8943,-4.3467,6.2141,-10.5118,-4.6464,6.09,-8.8812,-3.7226,7.7207,-11.8943,-4.6464,7.7207,-10.5118,-2.3402,7.7207,-12.818,-4.9707,7.7207,-8.8812,-3.7226,7.7207,-11.8943,-2.2161,8.3447,-12.818,-4.6464,9.3514,-8.8812,-3.7226,7.7207,-11.8943,-3.4933,8.8737,-11.8943,-3.7226,7.7207,-11.8943,-4.3467,9.2272,-10.5118,-4.6464,7.7207,-10.5118,-4.3467,9.2272,-10.5118,-3.7226,10.7338,-8.8812 +,-4.6464,9.3514,-8.8812,-2.8401,9.8513,-11.8943,-3.4933,8.8737,-11.8943,-3.4933,10.5044,-10.5118,-4.3467,9.2272,-10.5118,-1.8626,8.8737,-12.818,-2.8401,9.8513,-11.8943,-2.2161,11.3578,-10.5118,-1.3336,9.2272,-12.818,-2.3402,11.6575,-8.8812,-1.8626,10.5044,-11.8943,-0.7095,10.7338,-11.8943,-0.7095,11.6575,-10.5118,-0.7095,9.3513,-12.818,-0.7095,11.9818,-8.8812,-0.7095,10.7338,-11.8943,0.797,11.3578,-10.5118 +,0.9212,11.6575,-8.8812,-0.7095,10.7338,-11.8943,-0.0855,9.2272,-12.818,0.4435,10.5044,-11.8943,0.4435,10.5044,-11.8943,2.0742,10.5044,-10.5118,2.3036,10.7338,-8.8812,0.4435,8.8737,-12.818,1.4211,9.8513,-11.8943,0.4435,10.5044,-11.8943,1.4211,9.8513,-11.8943,2.9276,9.2272,-10.5118,2.0742,10.5044,-10.5118,0.797,8.3447,-12.818,2.3036,10.7338,-8.8812,3.2273,9.3513,-8.8812,2.0742,8.8737,-11.8943 +,2.0742,8.8737,-11.8943,3.2273,7.7207,-10.5118,0.9212,7.7207,-12.818,3.5516,7.7207,-8.8812,2.3036,7.7207,-11.8943,2.9276,6.2141,-10.5118,3.2273,6.09,-8.8812,2.0742,6.5676,-11.8943,2.0742,6.5676,-11.8943,0.797,7.0966,-12.818,1.4211,5.5901,-11.8943,1.4211,5.5901,-11.8943,2.0742,4.9369,-10.5118,0.4435,6.5676,-12.818,2.3036,4.7076,-8.8812,0.4435,4.9369,-11.8943,0.797,4.0835,-10.5118 +,-0.0855,6.2141,-12.818,0.9211,3.7838,-8.8812,0.4435,4.9369,-11.8943,0.9211,3.7838,-8.8812,-0.7095,4.7076,-11.8943,0.4435,4.9369,-11.8943,0.4435,4.9369,-11.8943,0.797,4.0835,-10.5118,-11.4581,4.7076,-11.8943,-12.9646,4.0835,-10.5118,-11.4581,3.7838,-10.5118,-11.4581,6.09,-12.818,-11.4581,7.7207,-13.1423,-12.0821,6.2141,-12.818,-11.4581,3.4595,-8.8812,-13.0888,3.7838,-8.8812,-11.4581,4.7076,-11.8943 +,-12.6111,4.9369,-11.8943,-14.2418,4.9369,-10.5118,-14.4712,4.7076,-8.8812,-12.6111,6.5676,-12.818,-13.5887,5.5901,-11.8943,-12.6111,4.9369,-11.8943,-14.2418,6.5676,-11.8943,-13.5887,5.5901,-11.8943,-15.0952,6.2141,-10.5118,-12.9646,7.0966,-12.818,-15.3949,6.09,-8.8812,-14.4712,7.7207,-11.8943,-15.3949,7.7207,-10.5118,-13.0888,7.7207,-12.818,-15.7193,7.7207,-8.8812,-14.4712,7.7207,-11.8943,-12.9646,8.3447,-12.818 +,-15.3949,9.3514,-8.8812,-14.2418,8.8737,-11.8943,-14.4712,7.7207,-11.8943,-14.4712,7.7207,-11.8943,-15.0952,9.2272,-10.5118,-15.3949,7.7207,-10.5118,-15.0952,9.2272,-10.5118,-14.4712,10.7338,-8.8812,-15.3949,9.3514,-8.8812,-12.6111,8.8737,-12.818,-13.5887,9.8513,-11.8943,-15.0952,9.2272,-10.5118,-13.5887,9.8513,-11.8943,-14.2418,10.5044,-10.5118,-12.6111,10.5044,-11.8943,-12.9646,11.3578,-10.5118,-12.0821,9.2272,-12.818 +,-13.0888,11.6575,-8.8812,-12.6111,10.5044,-11.8943,-11.4581,10.7338,-11.8943,-11.4581,11.6575,-10.5118,-11.4581,9.3514,-12.818,-11.4581,11.9818,-8.8812,-11.4581,10.7338,-11.8943,-12.6111,10.5044,-11.8943,-9.8274,11.6575,-8.8812,-11.4581,10.7338,-11.8943,-10.834,9.2272,-12.818,-10.305,10.5044,-11.8943,-9.9515,11.3578,-10.5118,-8.6743,10.5044,-10.5118,-8.445,10.7338,-8.8812,-9.3275,9.8513,-11.8943,-10.305,10.5044,-11.8943 +,-10.305,8.8737,-12.818,-8.6743,10.5044,-10.5118,-8.6743,8.8737,-11.8943,-7.8209,9.2272,-10.5118,-9.9515,8.3447,-12.818,-8.6743,10.5044,-10.5118,-7.5213,9.3513,-8.8812,-8.445,10.7338,-8.8812,-8.6743,8.8737,-11.8943,-8.445,7.7207,-11.8943,-7.5213,7.7207,-10.5118,-9.8274,7.7207,-12.818,-7.1969,7.7207,-8.8812,-8.445,7.7207,-11.8943,-8.6743,8.8737,-11.8943,-7.8209,6.2141,-10.5118,-7.5213,6.09,-8.8812 +,-8.445,7.7207,-11.8943,-9.9515,7.0966,-12.818,-8.6743,6.5676,-11.8943,-8.6743,6.5676,-11.8943,-9.3275,5.5901,-11.8943,-8.6743,6.5676,-11.8943,-8.6743,4.9369,-10.5118,-10.305,6.5676,-12.818,-8.445,4.7076,-8.8812,-10.305,4.9369,-11.8943,-9.9515,4.0835,-10.5118,-10.834,6.2141,-12.818,-9.8274,3.7838,-8.8812,-10.305,4.9369,-11.8943,-9.8274,3.7838,-8.8812,-11.4581,4.7076,-11.8943,-10.305,4.9369,-11.8943 +,-9.9515,4.0835,-10.5118,-5.7223,-6.5008,-8.2736,-5.7928,-6.7639,-8.2736,-4.1584,-6.5008,-8.2736,-3.9828,-7.8089,-6.8577,-5.7223,-6.5008,-8.2736,-4.4384,-7.5458,-8.2736,-5.7928,-6.7639,-8.2736,-6.2484,-6.5008,-6.8577,-5.9854,-6.9565,-8.2736,-4.4384,-7.5458,-8.2736,-4.9404,-8.7664,-6.8577,-5.7928,-6.7639,-8.2736,-5.2034,-8.3108,-8.2736,-6.2484,-6.5008,-6.8577,-6.2484,-7.0269,-8.2736,-5.2034,-8.3108,-8.2736 +,-6.2484,-9.1169,-6.8577,-4.9404,-8.7664,-6.8577,-5.9854,-6.9565,-8.2736,-6.2484,-8.5908,-8.2736,-54.0415,-6.5008,-6.8577,-54.0415,-7.0269,-8.2736,-6.2484,-8.5908,-8.2736,-54.0415,-9.1169,-6.8577,-6.2484,-7.0269,-8.2736,-54.0415,-8.5908,-8.2736,-54.0415,35,13.1423,53.903,-35,13.1423,-54.0415,-35,13.1423,-54.0415,-35,-6.8577,53.903,-35,-6.8577,53.903,35,-6.8577,42.4749,-35,-10.4709 +,47.6993,34.8534,-6.8576,45.5159,-35,-12.7551,46.8638,33.3936,-12.7551,52.0253,27.929,-12.7551,40.1498,27.307,-12.7551,45.4697,21.9291,-12.7551,46.8638,33.3936,-12.7551,42.3361,21.3648,-6.8576,-54.0415,24.1197,-6.8576,39.2272,24.2637,-6.8576,51.8866,-35,-12.7551,-21.6058,2.663,-9.7239,20.8656,2.6629,-9.7239,-21.6058,2.663,-9.7239,20.8656,12.5542,-9.7239,20.8656,2.6629,-9.7239,2.8478,4.4892,-8.2736 +,4.4116,-35,-8.2736,2.8478,-35,-8.2736,-1.5181,-35,-8.2736,0.0457,-35,-8.2736,-1.5181,-35,-8.2736,9.1154,4.9369,-11.8943,10.2685,4.7076,-11.8943,9.1154,4.9369,-11.8943,8.1379,5.5901,-11.8943,8.1379,5.5901,-11.8943,7.4848,6.5676,-11.8943,7.4848,6.5676,-11.8943,7.2554,7.7207,-11.8943,7.2554,7.7207,-11.8943,6.6314,9.2272,-10.5118,6.6314,9.2272,-10.5118,7.4848,8.8737,-11.8943 +,8.1379,9.8513,-11.8943,8.1379,9.8513,-11.8943,9.1154,10.5044,-11.8943,10.2685,10.7338,-11.8943,10.2685,10.7338,-11.8943,11.4216,10.5044,-11.8943,11.4216,10.5044,-11.8943,12.3991,9.8512,-11.8943,13.0523,10.5044,-10.5118,12.3991,9.8512,-11.8943,13.2816,10.7338,-8.8812,13.0523,10.5044,-10.5118,13.0523,8.8737,-11.8943,13.0523,8.8737,-11.8943,13.0523,6.5676,-11.8943,13.0523,6.5676,-11.8943,12.3991,5.5901,-11.8943 +,12.3991,5.5901,-11.8943,11.4216,4.9369,-11.8943,11.8992,3.7838,-8.8812,11.7751,4.0835,-10.5118,10.2685,4.7076,-11.8943,11.7751,4.0835,-10.5118,11.4216,4.9369,-11.8943,-1.8626,4.9369,-11.8943,-0.7095,4.7076,-11.8943,-1.8626,4.9369,-11.8943,-2.8401,5.5901,-11.8943,-2.8401,5.5901,-11.8943,-3.4933,6.5676,-11.8943,-3.4933,6.5676,-11.8943,-3.7226,7.7207,-11.8943,-4.3467,9.2272,-10.5118,-3.7226,7.7207,-11.8943 +,-3.7226,7.7207,-11.8943,-4.3467,9.2272,-10.5118,-3.4933,8.8737,-11.8943,-2.8401,9.8513,-11.8943,-2.8401,9.8513,-11.8943,-1.8626,10.5044,-11.8943,-1.8626,10.5044,-11.8943,-0.7095,10.7338,-11.8943,0.4435,10.5044,-11.8943,0.4435,10.5044,-11.8943,1.4211,9.8513,-11.8943,1.4211,9.8513,-11.8943,2.0742,8.8737,-11.8943,2.3036,10.7338,-8.8812,2.0742,10.5044,-10.5118,2.0742,8.8737,-11.8943,2.3036,7.7207,-11.8943 +,2.3036,7.7207,-11.8943,2.0742,6.5676,-11.8943,2.0742,6.5676,-11.8943,1.4211,5.5901,-11.8943,1.4211,5.5901,-11.8943,0.4435,4.9369,-11.8943,0.9211,3.7838,-8.8812,0.797,4.0835,-10.5118,-0.7095,4.7076,-11.8943,0.4435,4.9369,-11.8943,-12.6111,4.9369,-11.8943,-11.4581,4.7076,-11.8943,-12.6111,4.9369,-11.8943,-13.5887,5.5901,-11.8943,-13.5887,5.5901,-11.8943,-14.2418,6.5676,-11.8943,-14.2418,6.5676,-11.8943 +,-15.0952,9.2272,-10.5118,-14.4712,7.7207,-11.8943,-15.0952,9.2272,-10.5118,-15.0952,9.2272,-10.5118,-14.2418,8.8737,-11.8943,-13.5887,9.8513,-11.8943,-13.5887,9.8513,-11.8943,-12.6111,10.5044,-11.8943,-11.4581,10.7338,-11.8943,-11.4581,10.7338,-11.8943,-10.305,10.5044,-11.8943,-10.305,10.5044,-11.8943,-9.3275,9.8513,-11.8943,-8.6743,10.5044,-10.5118,-9.3275,9.8513,-11.8943,-8.6743,10.5044,-10.5118,-8.445,7.7207,-11.8943 +,-8.445,7.7207,-11.8943,-8.6743,6.5676,-11.8943,-8.6743,6.5676,-11.8943,-9.3275,5.5901,-11.8943,-9.3275,5.5901,-11.8943,-10.305,4.9369,-11.8943,-9.8274,3.7838,-8.8812,-9.9515,4.0835,-10.5118,-11.4581,4.7076,-11.8943,-9.9515,4.0835,-10.5118,-10.305,4.9369,-11.8943,-5.2034,-8.3108,-8.2736,-6.2484,-6.5008,-6.8577,-54.0415,-8.5908,-8.2736,-54.0415,-7.0269,-8.2736,53.903,35,13.1423] +,"normals":[0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-0.589,0,-0.808,-0.6,-0.001,-0.8,-0.589,0,-0.808,0.001,0.971,-0.24,0.001,0.971,-0.241,0.001,0.971,-0.241,0.946,-0.002,-0.323,0.946,-0.002,-0.323 +,0.946,-0.002,-0.323,0,0,-1,0,0,-1,0,0,-1,0.698,0.665,-0.265,0.696,0.664,-0.275,0.693,0.666,-0.276,0,0,-1,0,0,-1,0,0,-1,0,-0.6,-0.8,0.001,-0.589,-0.808,0.001,-0.588,-0.809,-0.456,-0.46,-0.762,-0.445,-0.459,-0.769,-0.426,-0.457,-0.781,0,0,-1 +,0,0,-1,0,0,-1,-1,-0.002,0,-1,-0.002,0,-1,-0.002,0,0.002,-1,0,0.002,-1,0,0.002,-1,0,-0.682,-0.731,0,-0.682,-0.731,0,-0.682,-0.731,0,0.696,0.667,-0.267,0.691,0.668,-0.277,0.946,-0.002,-0.323,0.946,-0.002,-0.323,0.001,0.971,-0.24,0.001,0.971,-0.241 +,0,0,-1,0,0,-1,0,0,-1,0.893,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,-0.893,0,-0.451,-0.893,0,-0.451,-0.893,0,-0.451,0,0.906,-0.423,0,0.906,-0.423,0,0.906,-0.423,0,-0.906,-0.423,0,-0.906,-0.423,0,-0.906,-0.423,0,0,-1,0,0,-1 +,0,0,-1,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0,0,-1,0,0,-1,0,0,-1,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0,0,-1 +,0,0,-1,0,0,-1,0.937,0,-0.348,0.931,-0.119,-0.346,0.937,0,-0.348,-0.632,0.632,-0.448,-0.937,0,-0.348,-0.937,0,-0.348,0,-0.719,-0.695,-0.355,-0.857,-0.374,0,-0.927,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,0,-0.981,-0.195,0,-0.719,-0.695 +,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.664,-0.275,-0.695,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.906,-0.375,-0.195,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915 +,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.927,0,-0.374,-0.857,0.355,-0.374,-0.694,0.694,-0.195,-0.906,0.375,-0.195,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.656,0.656,-0.374,-0.857,0.355,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374 +,-0.154,0.372,-0.915,-0.375,0.906,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,-0.275,0.664,-0.695,0.375,0.906,-0.195,0,0.719,-0.695,0.154,0.372,-0.915,0.275,0.664,-0.695,0.355,0.857,-0.374,0.656,0.656,-0.374,0.694,0.694,-0.195,0.285,0.285,-0.915 +,0.508,0.508,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.857,-0.355,-0.374,0.906,-0.375,-0.195 +,0.664,-0.275,-0.695,0.719,0,-0.695,0.372,-0.154,-0.915,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0.375,-0.906,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,0.355,-0.857,-0.374 +,0,-0.719,-0.695,-0.355,-0.857,-0.374,0,-0.927,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,0,-0.981,-0.195,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.694,-0.694,-0.195,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.285,-0.285,-0.915,-0.372,-0.154,-0.915,-0.664,-0.275,-0.695 +,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.906,-0.375,-0.195,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.906,0.375,-0.195,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.927,0,-0.374,-0.857,0.355,-0.374,-0.694,0.694,-0.195 +,-0.906,0.375,-0.195,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.656,0.656,-0.374,-0.857,0.355,-0.374,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.375,0.906,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,0.355,0.857,-0.374 +,0.375,0.906,-0.195,0,0.719,-0.695,0.154,0.372,-0.915,0.275,0.664,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.694,0.694,-0.195,0.285,0.285,-0.915,0.508,0.508,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.857,0.355,-0.374,0.656,0.656,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.664,0.275,-0.695 +,0.664,0.275,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.372,-0.154,-0.915,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.285,-0.285,-0.915,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0.355,-0.857,-0.374 +,0.154,-0.372,-0.915,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0.375,-0.906,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0,-0.719,-0.695,-0.355,-0.857,-0.374,0,-0.927,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,0,-0.981,-0.195,-0.375,-0.906,-0.195,0,-0.719,-0.695 +,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.664,-0.275,-0.695,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.906,-0.375,-0.195,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915 +,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.927,0,-0.374,-0.857,0.355,-0.374,-0.694,0.694,-0.195,-0.906,0.375,-0.195,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.857,0.355,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915 +,-0.375,0.906,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,-0.275,0.664,-0.695,0.375,0.906,-0.195,0,0.719,-0.695,0.154,0.372,-0.915,0.275,0.664,-0.695,0.355,0.857,-0.374,0.656,0.656,-0.374,0.694,0.694,-0.195,0.508,0.508,-0.695,0.275,0.664,-0.695 +,0.285,0.285,-0.915,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.664,0.275,-0.695,0.857,-0.355,-0.374,0.906,-0.375,-0.195 +,0.719,0,-0.695,0.372,-0.154,-0.915,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.285,-0.285,-0.915,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0.375,-0.906,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695 +,0.355,-0.857,-0.374,-0.931,0.119,-0.346,-0.812,0.469,-0.348,0.93,-0.126,-0.346,0.812,-0.469,-0.348,0,0,-1,0,0,-1,-0.812,0.469,-0.348,-0.632,0.632,-0.448,-0.469,0.812,-0.348,0.812,-0.469,-0.348,0.469,-0.812,-0.348,0,0,-1,0,0,-1,-0.632,0.632,-0.448,-0.119,0.931,-0.346,0.469,-0.812,-0.348 +,0.119,-0.931,-0.346,0.469,-0.812,-0.348,0,0,-1,0,0,-1,0,0.937,-0.348,0,0.937,-0.348,0.126,-0.93,-0.346,0,-0.937,-0.348,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,1,0,0,0,1,0,-0.601,-0.001,-0.8 +,0.001,0.971,-0.24,0,0,-1,0.701,0.662,-0.263,0,0,-1,0,-0.6,-0.8,-0.467,-0.462,-0.754,0,0,-1,-1,-0.002,0,0.002,-1,0,-0.682,-0.731,0,0.946,-0.002,-0.323,0,0,-1,0.893,0,-0.451,-0.893,0,-0.451,0,0.906,-0.423,0,-0.906,-0.423,0,0,-1 +,0.937,0,-0.348,-0.937,0,-0.348,0,0,-1,0.937,0,-0.348,-0.937,0,-0.348,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.857,0.355,-0.374,-0.664,0.275,-0.695 +,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.664,0.275,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695 +,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.375,-0.906,-0.195,0.355,-0.857,-0.374,0,-0.719,-0.695,0.355,-0.857,-0.374,0.275,-0.664,-0.695,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.719,0,-0.695 +,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695 +,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.375,-0.906,-0.195,0.355,-0.857,-0.374,0,-0.719,-0.695,0.275,-0.664,-0.695,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.664,-0.275,-0.695 +,-0.857,0.355,-0.374,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.857,0.355,-0.374,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.656,0.656,-0.374,0.719,0,-0.695 +,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.375,-0.906,-0.195,0.355,-0.857,-0.374,0,-0.719,-0.695,0.355,-0.857,-0.374,0.275,-0.664,-0.695,0.469,-0.812,-0.348,-0.632,0.632,-0.448,0,-0.937,-0.348,0,0,-1,0,0,1] +,"uvs":[0.002,0.706,0.11,0.636,0.11,0.706,0.888,0.243,0.908,0.172,0.908,0.243,0.357,0.81,0.465,0.83,0.357,0.83,0.332,0.661,0.342,0.605,0.335,0.662,0.562,0.938,0.46,0.941,0.46,0.938,0.935,0.906,0.938,0.843,0.938,0.906,0.335,0.662,0.348,0.606,0.341,0.669,0.933,0.914,0.932,0.906,0.935,0.906,0.335,0.662 +,0.336,0.674,0.329,0.668,0.328,0.664,0.234,0.667,0.234,0.663,0.332,0.661,0.329,0.668,0.328,0.664,0.329,0.668,0.234,0.673,0.234,0.667,0.756,0.93,0.813,0.927,0.813,0.93,0.658,0.93,0.752,0.927,0.752,0.93,0.752,0.93,0.756,0.927,0.756,0.93,0.936,0.915,0.938,0.906,0.932,0.906,0.935,0.843,0.561,0.935 +,0.46,0.935,0.27,0.919,0.312,0.909,0.312,0.919,0.988,0.49,0.991,0.479,0.991,0.492,0.631,0.546,0.624,0.556,0.621,0.554,0.081,0.975,0.125,0.978,0.08,0.978,0.676,0.553,0.632,0.55,0.631,0.546,0.544,0.658,0.542,0.618,0.544,0.618,0.113,0.849,0.115,0.809,0.115,0.849,0.542,0.661,0.544,0.7,0.542,0.7 +,0.624,0.313,0.626,0.273,0.626,0.313,0.626,0.313,0.627,0.273,0.627,0.313,0.658,0.644,0.66,0.684,0.658,0.684,0.406,0.947,0.408,0.936,0.408,0.947,0.542,0.737,0.544,0.726,0.543,0.737,0.084,0.891,0.085,0.902,0.084,0.902,0.991,0.334,0.993,0.333,0.993,0.334,0.006,0.989,0.006,0.99,0.006,0.989,0.995,0.333 +,0.994,0.335,0.006,0.987,0.005,0.987,0.993,0.331,0.995,0.331,0.005,0.989,0.004,0.988,0.991,0.333,0.003,0.989,0.991,0.331,0.993,0.33,0.005,0.99,0.994,0.33,0.991,0.329,0.992,0.328,0.005,0.99,0.994,0.328,0.003,0.991,0.005,0.991,0.992,0.327,0.993,0.326,0.004,0.992,0.003,0.991,0.003,0.991,0.002,0.993 +,0.002,0.991,0.992,0.923,0.994,0.922,0.994,0.923,0.006,0.991,0.005,0.993,0.991,0.922,0.992,0.921,0.992,0.923,0.991,0.92,0.993,0.92,0.006,0.992,0.994,0.92,0.006,0.993,0.991,0.918,0.993,0.918,0.007,0.992,0.994,0.918,0.007,0.993,0.006,0.993,0.994,0.916,0.007,0.993,0.007,0.991,0.008,0.993,0.992,0.917 +,0.992,0.915,0.994,0.915,0.008,0.991,0.009,0.992,0.991,0.917,0.992,0.577,0.991,0.575,0.993,0.576,0.008,0.99,0.994,0.578,0.994,0.576,0.01,0.991,0.991,0.574,0.993,0.574,0.008,0.99,0.995,0.574,0.01,0.991,0.01,0.989,0.993,0.573,0.995,0.573,0.009,0.988,0.01,0.989,0.008,0.989,0.007,0.989,0.008,0.987 +,0.991,0.573,0.993,0.571,0.995,0.571,0.991,0.57,0.992,0.57,0.007,0.989,0.994,0.569,0.007,0.987,0.994,0.336,0.006,0.987,0.007,0.987,0.992,0.336,0.991,0.418,0.993,0.417,0.993,0.418,0.988,0.526,0.988,0.527,0.987,0.526,0.994,0.417,0.994,0.419,0.988,0.524,0.987,0.524,0.994,0.416,0.986,0.525,0.991,0.416 +,0.993,0.416,0.987,0.526,0.986,0.526,0.985,0.526,0.991,0.415,0.993,0.414,0.994,0.414,0.991,0.413,0.992,0.413,0.986,0.527,0.994,0.412,0.985,0.527,0.986,0.528,0.993,0.41,0.985,0.527,0.985,0.528,0.985,0.527,0.983,0.528,0.983,0.527,0.806,0.991,0.805,0.989,0.807,0.99,0.985,0.529,0.805,0.993,0.805,0.991 +,0.806,0.991,0.987,0.528,0.804,0.993,0.803,0.991,0.987,0.529,0.803,0.989,0.986,0.53,0.802,0.992,0.802,0.991,0.987,0.529,0.802,0.989,0.987,0.531,0.8,0.991,0.8,0.989,0.987,0.531,0.988,0.529,0.988,0.531,0.801,0.993,0.799,0.991,0.798,0.99,0.989,0.529,0.99,0.53,0.801,0.993,0.991,0.267,0.993,0.266 +,0.993,0.268,0.989,0.528,0.994,0.268,0.995,0.266,0.99,0.529,0.992,0.266,0.993,0.265,0.989,0.528,0.995,0.265,0.991,0.528,0.993,0.263,0.995,0.263,0.991,0.527,0.992,0.263,0.989,0.527,0.991,0.526,0.992,0.262,0.993,0.262,0.989,0.526,0.995,0.261,0.991,0.261,0.993,0.26,0.989,0.526,0.994,0.26,0.99,0.525 +,0.994,0.42,0.988,0.524,0.99,0.525,0.991,0.419,0.992,0.42,0.99,0.788,0.992,0.787,0.992,0.788,0.972,0.988,0.972,0.99,0.971,0.989,0.994,0.789,0.994,0.787,0.972,0.987,0.97,0.987,0.992,0.785,0.994,0.785,0.971,0.989,0.97,0.988,0.991,0.787,0.969,0.989,0.991,0.785,0.992,0.784,0.971,0.99,0.994,0.784 +,0.99,0.783,0.992,0.782,0.971,0.99,0.993,0.782,0.969,0.991,0.971,0.991,0.993,0.78,0.97,0.992,0.969,0.991,0.969,0.991,0.968,0.993,0.967,0.991,0.992,0.805,0.994,0.804,0.994,0.806,0.971,0.991,0.97,0.993,0.992,0.805,0.991,0.804,0.993,0.804,0.991,0.802,0.993,0.803,0.972,0.991,0.995,0.803,0.972,0.993 +,0.991,0.801,0.993,0.801,0.973,0.991,0.995,0.801,0.973,0.993,0.972,0.993,0.994,0.799,0.973,0.993,0.973,0.991,0.974,0.993,0.993,0.8,0.992,0.798,0.994,0.798,0.975,0.992,0.991,0.8,0.974,0.991,0.993,0.18,0.992,0.178,0.994,0.179,0.974,0.99,0.993,0.18,0.995,0.179,0.995,0.181,0.975,0.99,0.992,0.177 +,0.994,0.177,0.974,0.99,0.996,0.177,0.975,0.989,0.975,0.99,0.994,0.176,0.996,0.176,0.975,0.989,0.974,0.989,0.975,0.988,0.992,0.176,0.974,0.987,0.992,0.176,0.994,0.174,0.973,0.989,0.995,0.174,0.992,0.174,0.993,0.173,0.973,0.988,0.995,0.172,0.973,0.987,0.993,0.79,0.972,0.987,0.973,0.987,0.992,0.79 +,0.085,0.891,0.085,0.891,0.542,0.726,0.544,0.725,0.406,0.936,0.407,0.935,0.918,0.987,0.917,0.988,0.918,0.987,0.542,0.725,0.543,0.724,0.406,0.936,0.407,0.934,0.917,0.988,0.917,0.987,0.806,0.298,0.805,0.296,0.807,0.296,0.406,0.935,0.406,0.934,0.869,0.988,0.869,0.987,0.805,0.298,0.757,0.296,0.406,0.935 +,0.358,0.934,0.209,0.548,0.139,0.656,0.139,0.548,0.002,0.636,0.888,0.172,0.465,0.81,0.338,0.605,0.562,0.941,0.342,0.605,0.93,0.913,0.341,0.669,0.329,0.668,0.335,0.662,0.336,0.674,0.756,0.927,0.658,0.927,0.752,0.927,0.932,0.843,0.27,0.909,0.988,0.481,0.632,0.55,0.124,0.975,0.674,0.556,0.542,0.658 +,0.113,0.809,0.544,0.661,0.624,0.273,0.626,0.273,0.66,0.644,0.991,0.333,0.006,0.987,0.991,0.333,0.991,0.331,0.991,0.331,0.991,0.33,0.991,0.33,0.003,0.991,0.003,0.991,0.002,0.993,0.992,0.923,0.991,0.922,0.991,0.921,0.991,0.921,0.006,0.993,0.007,0.993,0.007,0.993,0.991,0.917,0.991,0.917,0.99,0.916 +,0.992,0.577,0.991,0.576,0.994,0.578,0.992,0.577,0.01,0.991,0.01,0.991,0.991,0.573,0.991,0.573,0.991,0.572,0.991,0.572,0.007,0.987,0.994,0.336,0.992,0.336,0.006,0.987,0.992,0.336,0.991,0.335,0.991,0.417,0.988,0.524,0.991,0.417,0.991,0.416,0.991,0.416,0.991,0.415,0.991,0.415,0.985,0.527,0.992,0.411 +,0.985,0.527,0.985,0.527,0.806,0.991,0.805,0.993,0.804,0.993,0.804,0.993,0.803,0.992,0.803,0.992,0.987,0.531,0.801,0.993,0.801,0.993,0.799,0.993,0.991,0.267,0.992,0.266,0.994,0.268,0.993,0.268,0.992,0.266,0.992,0.264,0.992,0.264,0.992,0.263,0.992,0.263,0.992,0.262,0.992,0.262,0.99,0.525,0.994,0.42 +,0.992,0.42,0.988,0.524,0.991,0.419,0.991,0.787,0.972,0.987,0.991,0.787,0.991,0.785,0.991,0.785,0.99,0.784,0.99,0.784,0.991,0.781,0.969,0.991,0.992,0.805,0.992,0.805,0.991,0.805,0.991,0.804,0.991,0.804,0.972,0.993,0.973,0.993,0.973,0.993,0.991,0.8,0.991,0.8,0.991,0.799,0.993,0.18,0.992,0.179 +,0.993,0.18,0.975,0.989,0.975,0.989,0.992,0.176,0.992,0.176,0.992,0.175,0.992,0.175,0.973,0.987,0.993,0.79,0.992,0.79,0.972,0.987,0.992,0.79,0.99,0.789,0.542,0.724,0.917,0.988,0.757,0.298,0.358,0.935,0.209,0.656] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,23,46,47,48 +,15,49,14,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96 +,97,98,95,99,100,101,98,102,99,103,104,102,105,106,107,103,94,98,97,105,105,108,106,109,110,103,105,97,111,104,110,112,110,113,114,111,97,115,110,116,112,111,117,108,115,97,118,116,119,120 +,115,121,122,123,124,125,126,127,128,121,129,130,131,132,133,118,97,129,132,134,135,129,97,136,132,137,127,129,138,130,135,139,140,136,97,141,135,142,137,136,143,144,140,145,142,146,147,148,139,149 +,140,141,97,147,145,150,151,148,152,153,154,150,149,147,97,152,155,156,157,152,97,158,159,157,160,152,161,153,157,162,163,158,97,164,157,165,160,166,164,167,165,168,169,164,170,171,162,168,163,164 +,97,172,170,173,174,175,176,168,172,97,173,168,177,169,176,178,179,173,97,180,176,181,177,173,182,174,180,97,96,183,95,100,180,184,185,186,93,95,187,188,189,190,191,192,189,193,194,195,192,196 +,188,197,193,192,198,196,188,199,200,192,191,201,198,202,203,200,204,205,201,191,202,200,206,197,205,207,208,202,191,209,205,210,206,202,211,203,209,191,212,208,213,210,214,212,215,216,217,218,219,220 +,221,212,222,215,223,224,225,212,191,226,227,228,224,226,191,229,220,228,230,222,229,231,228,232,233,229,191,234,230,233,235,231,234,236,235,237,238,239,240,241,233,242,237,234,191,240,238,243,244,241 +,245,246,247,243,237,240,191,245,248,249,250,245,191,251,252,249,253,246,251,254,255,256,249,251,191,257,249,258,253,254,257,259,258,260,261,257,262,259,256,263,260,257,191,264,264,265,262,260,266,267 +,264,191,268,261,267,269,267,270,271,268,191,272,269,271,273,268,274,265,272,191,190,275,189,194,272,276,277,278,189,279,280,281,282,283,284,285,286,281,287,288,285,289,287,290,291,289,292,293,294,290 +,281,285,284,292,292,295,293,296,297,290,292,284,298,291,297,299,297,300,301,298,284,302,297,303,299,295,302,304,302,284,305,301,306,303,302,307,308,309,310,311,312,313,314,307,315,316,317,318,319,305 +,284,315,319,320,321,315,284,322,319,323,313,315,324,316,321,325,326,322,284,327,321,328,323,322,329,330,326,331,328,332,333,334,325,335,326,327,284,333,331,336,337,333,338,334,339,336,335,333,284,340 +,341,342,343,340,284,344,345,346,347,338,344,348,343,349,350,344,284,351,346,350,352,344,353,354,352,355,356,357,358,359,350,360,355,351,284,358,358,361,359,362,363,355,358,284,364,356,363,365,363,366 +,367,364,284,368,365,367,369,364,370,361,368,284,283,371,282,286,368,372,373,374,280,282,375,90,376,377,378,88,379,380,85,381,382,383,384,385,378,386,387,380,383,388,389,390,391,392,393,394,387,389 +,395,396,397,398,391,399,400,394,401,402,403,0,404,1,3,405,4,6,406,7,9,407,10,12,408,13,15,48,16,18,409,19,21,410,22,24,411,25,27,412,28,30,413,31,33,414,34,36,415,37 +,39,416,40,42,417,43,45,21,23,47,418,48,49,12,14,51,419,52,54,420,55,57,421,58,60,422,61,63,423,64,66,424,67,69,425,70,72,426,73,75,427,76,78,428,79,81,429,82,84,379 +,85,87,377,88,90,375,91,93,430,94,95,94,99,431,96,98,99,94,103,102,98,105,432,433,103,105,111,108,434,435,110,104,103,110,110,436,113,110,114,116,111,115,437,116,114,119,115,118,121,438 +,121,439,440,132,127,121,118,129,441,442,132,132,443,134,132,135,137,129,136,444,135,134,139,135,140,142,136,141,445,140,149,145,446,141,147,139,447,149,145,149,150,148,147,152,448,449,150,450,451,156 +,452,453,157,152,158,454,157,156,162,157,163,165,455,158,164,165,163,168,164,172,170,162,456,168,170,172,173,457,458,176,168,176,177,176,459,178,176,179,181,173,180,460,461,462,95,180,96,463,464,465 +,93,187,466,188,189,188,193,467,190,192,188,200,197,192,201,198,188,468,469,198,201,202,200,470,471,200,205,206,205,472,207,205,208,210,202,209,473,208,474,213,475,209,212,476,215,217,477,224,220,212 +,226,222,478,479,224,480,481,228,220,224,228,222,226,229,228,482,232,230,228,233,231,229,234,235,233,237,483,234,240,233,232,484,238,237,243,241,240,245,485,486,243,487,488,249,489,490,249,246,245,251 +,491,492,256,249,256,258,254,251,257,258,256,260,257,264,262,256,493,494,264,268,265,260,495,496,261,260,267,267,497,270,269,267,271,268,272,498,499,500,189,272,190,501,502,187,189,280,503,281,286,282 +,281,504,283,285,287,281,290,289,285,292,505,506,290,292,298,295,507,508,297,291,290,297,297,509,300,297,301,303,295,298,302,301,510,306,302,305,307,511,307,310,512,319,313,307,305,315,513,514,515,319 +,516,320,319,321,323,315,322,517,321,320,325,321,326,328,322,327,518,326,335,331,519,327,333,325,520,335,331,335,336,333,340,338,521,522,336,523,524,342,525,343,346,338,340,344,343,342,349,346,343,350 +,344,351,526,352,350,355,527,351,358,350,349,528,358,364,361,529,530,363,356,355,363,363,531,366,365,363,367,364,368,532,533,534,282,368,283,535,536,537,280,377,384,378,379,386,380,384,538,385,386,393 +,387,390,397,391,393,399,394,389,539,395,397,540,398,399,541,400,401,542,402] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":543,"indexStart":0,"indexCount":1269}] +,"instances":[]} +,{"name":"ObstacleCornerBottomRight","id":"ObstacleCornerBottomRight","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[53.903,-4883.5771,3357.688],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-53.903,-35,-7.0513,54.0415,35,-7.0513,-53.903,35,-7.0513,-53.903,-35,12.9487,-53.903,35,-7.0513,-53.903,35,12.9487,-53.903,35,12.9487,54.0415,35,-7.0513,54.0415,35,12.9487,-45.516,-35,-12.9487,-42.3361,21.3649,-10.6645,-45.4697,21.9291,-12.9487,54.0415,35,-7.0512,-47.2815,34.1235,-10,54.0415,34.2687,-10,-53.0334,28.1078,-10,-53.9002,-35,-7.0512 +,-52.8934,-35,-10,-51.8866,-35,-12.9487,-45.4697,21.9291,-12.9487,-52.0253,27.929,-12.9487,-47.2815,34.1235,-10,-52.0253,27.929,-12.9487,-46.8637,33.3936,-12.9487,-45.4697,21.9291,-12.9487,-46.8637,33.3936,-12.9487,-52.0253,27.929,-12.9487,-39.2272,24.2637,-10.6645,54.0415,27.2589,-12.9487,-40.1498,27.307,-12.9487,-42.3361,21.3649,-10.6645,-40.1498,27.307,-12.9487,-45.4697,21.9291,-12.9487,-40.1498,27.307,-12.9487 +,54.0415,33.5375,-12.9487,-46.8637,33.3936,-12.9487,-42.4749,-35,-7.0512,-42.3361,21.3649,-10.6645,-42.4749,-35,-10.6645,-39.2272,24.2637,-7.0512,54.0415,24.1197,-10.6645,-39.2272,24.2637,-10.6645,-42.3361,21.3649,-7.0512,-39.2272,24.2637,-10.6645,-42.3361,21.3649,-10.6645,-47.6993,34.8534,-7.0512,-53.0334,28.1078,-10,-52.0253,27.929,-12.9487,-51.8866,-35,-12.9487,-46.8637,33.3936,-12.9487,54.0415,33.5375,-12.9487 +,-24.6012,-6.2637,-9.9175,24.2649,15.7861,-9.9175,-24.6012,15.7861,-9.9175,-24.6012,-6.2637,-7.0513,-24.6012,15.7861,-9.9175,-24.6012,15.7861,-7.0513,24.2649,15.7861,-7.0513,24.2649,-6.2637,-9.9175,24.2649,-6.2637,-7.0513,-24.6012,15.7861,-7.0513,24.2649,15.7861,-9.9175,24.2649,15.7861,-7.0513,24.2649,-6.2637,-7.0513,-24.6012,-6.2637,-9.9175,-24.6012,-6.2637,-7.0513,17.2603,-7.1485,-11.466,29.6397,16.671,-11.466 +,17.2603,16.671,-11.466,15.6198,-9.752,-7.0513,17.2603,16.671,-11.466,15.6198,19.2744,-7.0513,31.2801,19.2744,-7.0513,29.6397,-7.1486,-11.466,31.2801,-9.752,-7.0513,15.6198,19.2744,-7.0513,29.6397,16.671,-11.466,31.2801,19.2744,-7.0513,15.6198,-9.752,-7.0513,29.6397,-7.1486,-11.466,17.2603,-7.1485,-11.466,-6.3716,-7.1485,-11.466,6.0078,16.671,-11.466,-6.3716,16.671,-11.466,-8.0121,19.2744,-7.0513 +,-6.3716,-7.1485,-11.466,-6.3716,16.671,-11.466,7.6482,19.2744,-7.0513,6.0078,-7.1485,-11.466,7.6482,-9.752,-7.0513,-8.0121,19.2744,-7.0513,6.0078,16.671,-11.466,7.6482,19.2744,-7.0513,7.6482,-9.752,-7.0513,-6.3716,-7.1485,-11.466,-8.0121,-9.752,-7.0513,-30.036,-7.1485,-11.466,-17.6566,16.671,-11.466,-30.036,16.671,-11.466,-31.6764,19.2744,-7.0513,-30.036,-7.1485,-11.466,-30.036,16.671,-11.466 +,-16.0161,19.2744,-7.0513,-17.6566,-7.1485,-11.466,-16.0161,-9.752,-7.0513,-31.6764,19.2744,-7.0513,-17.6566,16.671,-11.466,-16.0161,19.2744,-7.0513,-31.6764,-9.752,-7.0513,-17.6566,-7.1485,-11.466,-30.036,-7.1485,-11.466,-53.903,35,12.9487,54.0414,-35,12.9487,-53.903,-35,12.9487,54.0415,-35,-7.0513,-53.903,-35,-7.0513,-53.903,35,-7.0513,-42.4749,-35,-10.6645,-47.6993,34.8534,-7.0512 +,-54.0415,28.2866,-7.0512,-45.516,-35,-12.9487,-40.1498,27.307,-12.9487,54.0415,24.1197,-10.6645,-39.2272,24.2637,-10.6645,54.0415,27.2589,-12.9487,-42.3361,21.3649,-7.0512,54.0415,24.1197,-7.0512,-39.2272,24.2637,-7.0512,-54.0415,28.2866,-7.0512,24.2649,-6.2637,-9.9175,-24.6012,-6.2637,-9.9175,24.2649,15.7861,-9.9175,-24.6012,15.7861,-9.9175,24.2649,-6.2637,-9.9175,29.6397,-7.1486,-11.466,17.2603,-7.1485,-11.466 +,29.6397,16.671,-11.466,17.2603,16.671,-11.466,31.2801,-9.752,-7.0513,6.0078,-7.1485,-11.466,-8.0121,-9.752,-7.0513,6.0078,16.671,-11.466,-6.3716,16.671,-11.466,6.0078,-7.1485,-11.466,-17.6566,-7.1485,-11.466,-31.6764,-9.752,-7.0513,-17.6566,16.671,-11.466,-30.036,16.671,-11.466,-16.0161,-9.752,-7.0513,54.0415,35,12.9487] +,"normals":[0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0.6,-0.001,-0.8,0.589,0,-0.808,0.589,0,-0.808,-0.001,0.971,-0.241,-0.001,0.971,-0.24,-0.001,0.971,-0.241,-0.946,-0.002,-0.323,-0.946,-0.002,-0.323 +,-0.946,-0.002,-0.323,0,0,-1,0,0,-1,0,0,-1,-0.698,0.665,-0.265,-0.696,0.664,-0.275,-0.701,0.662,-0.263,0,0,-1,0,0,-1,0,0,-1,0,-0.6,-0.8,-0.001,-0.589,-0.808,0,-0.6,-0.8,0.456,-0.46,-0.762,0.445,-0.459,-0.769,0.467,-0.462,-0.754,0,0,-1 +,0,0,-1,0,0,-1,1,-0.002,0,1,-0.002,0,1,-0.002,0,-0.002,-1,0,-0.002,-1,0,-0.002,-1,0,0.682,-0.731,0,0.682,-0.731,0,0.682,-0.731,0,-0.696,0.667,-0.267,-0.693,0.666,-0.276,-0.946,-0.002,-0.323,-0.946,-0.002,-0.323,-0.001,0.971,-0.24,-0.001,0.971,-0.241 +,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1 +,0,0,-1,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0,0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,0,-1,0,0,-1,0,0,-1,-0.937,0,-0.348 +,-0.937,0,-0.348,-0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0,0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,0,-1,0,0,-1,0,0,-1,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348 +,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0,0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,0,1,0,0,1,0,0,1,0,0,-1,-1,0,0,0,1,0,0.601,-0.001,-0.8,-0.001,0.971,-0.24 +,-0.946,-0.002,-0.323,0,0,-1,0,0,-1,-0.001,-0.588,-0.809,0.426,-0.457,-0.781,0,0,-1,1,-0.002,0,-0.002,-1,0,0.682,-0.731,0,-0.691,0.668,-0.277,0,0,-1,-1,0,0,1,0,0,0,1,0,0,-1,0,0,0,-1,-0.937,0,-0.348 +,0.937,0,-0.348,0,0.861,-0.508,0,-0.861,-0.508,0,0,-1,-0.937,0,-0.348,0.937,0,-0.348,0,0.861,-0.508,0,-0.861,-0.508,0,0,-1,-0.937,0,-0.348,0.937,0,-0.348,0,0.861,-0.508,0,-0.861,-0.508,0,0,1] +,"uvs":[0.547,0.644,0.655,0.714,0.547,0.714,0.114,0.634,0.134,0.704,0.114,0.704,0.002,0.829,0.11,0.809,0.11,0.829,0.553,0.573,0.563,0.628,0.56,0.63,0.918,0.942,0.816,0.939,0.918,0.939,0.936,0.071,0.935,0.008,0.938,0.008,0.547,0.573,0.56,0.63,0.554,0.636,0.938,0.079,0.939,0.071,0.941,0.078,0.56,0.63 +,0.559,0.641,0.554,0.636,0.566,0.631,0.66,0.635,0.565,0.635,0.563,0.628,0.565,0.635,0.56,0.63,0.565,0.635,0.66,0.641,0.559,0.641,0.46,0.928,0.517,0.932,0.46,0.932,0.521,0.928,0.614,0.932,0.521,0.932,0.517,0.928,0.521,0.932,0.517,0.932,0.935,0.08,0.936,0.071,0.939,0.071,0.941,0.008,0.817,0.936 +,0.918,0.936,0.767,0.867,0.816,0.889,0.767,0.889,0.977,0.128,0.98,0.15,0.977,0.15,0.919,0.126,0.897,0.129,0.897,0.126,0.846,0.431,0.895,0.428,0.895,0.431,0.897,0.126,0.848,0.129,0.848,0.126,0.961,0.101,0.973,0.124,0.961,0.124,0.964,0.466,0.969,0.493,0.964,0.495,0.937,0.125,0.939,0.098,0.945,0.097 +,0.971,0.923,0.985,0.918,0.987,0.923,0.937,0.083,0.939,0.098,0.933,0.087,0.957,0.798,0.969,0.821,0.957,0.821,0.965,0.598,0.97,0.572,0.97,0.596,0.005,0.958,0.008,0.931,0.013,0.929,0.492,0.987,0.506,0.982,0.508,0.987,0.013,0.929,0.002,0.92,0.005,0.916,0.957,0.64,0.969,0.664,0.957,0.664,0.966,0.407 +,0.971,0.381,0.971,0.405,0.949,0.545,0.951,0.518,0.957,0.517,0.112,0.987,0.126,0.981,0.127,0.987,0.949,0.504,0.951,0.518,0.945,0.508,0.691,0.435,0.621,0.543,0.621,0.435,0.655,0.644,0.134,0.634,0.002,0.809,0.557,0.572,0.816,0.942,0.933,0.071,0.553,0.573,0.565,0.635,0.66,0.631,0.566,0.631,0.66,0.635 +,0.517,0.928,0.614,0.928,0.521,0.928,0.933,0.071,0.816,0.867,0.98,0.128,0.919,0.129,0.846,0.428,0.897,0.129,0.973,0.101,0.969,0.469,0.933,0.121,0.973,0.918,0.945,0.097,0.969,0.798,0.965,0.569,0.002,0.954,0.494,0.982,0.008,0.931,0.969,0.64,0.966,0.378,0.945,0.541,0.113,0.981,0.957,0.517,0.691,0.543 +] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,21,47,17 +,48,14,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96 +,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,114,1,3,115,4,6,116,7,9,117,10,12,118,13,15,119,16,18,120,19,21,46,22,24,121,25,27,122,28,30,123,31 +,33,124,34,36,125,37,39,126,40,42,127,43,45,128,46,47,15,17,14,13,49,51,129,52,54,130,55,57,131,58,60,132,61,63,133,64,66,134,67,69,135,70,72,136,73,75,137,76,78,138 +,79,81,139,82,84,140,85,87,141,88,90,142,91,93,143,94,96,144,97,99,145,100,102,146,103,105,147,106,108,148,109,111,149,112] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":150,"indexStart":0,"indexCount":234}] +,"instances":[]} +,{"name":"ObstacleCornerTopLeft","id":"ObstacleCornerTopLeft","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[-53.181,-4820.8721,2909.3477],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-54.7634,22.295,13.344,53.181,22.295,-4.2378,53.181,22.295,13.344,53.181,22.295,13.344,53.181,19.8767,-6.656,53.181,-27.705,13.344,53.181,-27.705,13.344,-54.7634,-27.705,-6.656,-54.7634,-27.705,13.344,40.2213,27.705,-6.656,41.7111,19.8767,-6.656,40.1684,20.9816,-6.656,-54.7634,-27.705,-6.656,46.5595,-26.8285,-9.6047,-54.7634,-26.9738,-9.6047,41.7111,19.8767,-10.2693,40.1684,20.9816,-6.656 +,41.7111,19.8767,-6.656,41.7111,19.8767,-10.2693,44.06,20.9816,-13.344,40.1684,20.9816,-10.4474,46.5595,-26.8285,-9.6047,51.3033,-20.634,-12.5534,46.1417,-26.0986,-12.5534,44.7477,-14.6341,-12.5534,46.1417,-26.0986,-12.5534,51.3033,-20.634,-12.5534,38.5052,-16.9687,-10.2693,-54.7634,-19.964,-12.5534,39.4278,-20.012,-12.5534,41.6141,-14.0699,-10.2693,39.4278,-20.012,-12.5534,44.7477,-14.6341,-12.5534,39.4278,-20.012,-12.5534 +,-54.7634,-26.2425,-12.5534,46.1417,-26.0986,-12.5534,41.7111,19.8767,-6.656,41.6141,-14.0699,-10.2693,41.7111,19.8767,-10.2693,38.5052,-16.9687,-6.656,-54.7634,-16.8247,-10.2693,38.5052,-16.9687,-10.2693,41.6141,-14.0699,-6.656,38.5052,-16.9687,-10.2693,41.6141,-14.0699,-10.2693,46.9773,-27.5584,-6.656,52.3114,-20.8128,-9.6047,51.2064,19.8767,-12.5534,53.4863,20.9816,-9.6047,52.2091,20.9816,-13.344,46.1417,-26.0986,-12.5534 +,-54.7634,-26.2425,-12.5534,23.8791,12.5856,-9.5223,-24.9869,-9.4642,-9.5223,23.8791,-9.4642,-9.5223,23.8791,12.5856,-6.656,23.8791,-9.4642,-9.5223,23.8791,-9.4642,-6.656,-24.9869,-9.4642,-6.656,-24.9869,12.5856,-9.5223,-24.9869,12.5856,-6.656,23.8791,-9.4642,-6.656,-24.9869,-9.4642,-9.5223,-24.9869,-9.4642,-6.656,-24.9869,12.5856,-6.656,23.8791,12.5856,-9.5223,23.8791,12.5856,-6.656,-17.9823,13.4705,-11.0707 +,-30.3617,-10.349,-11.0707,-17.9823,-10.349,-11.0707,-16.3418,16.0739,-6.656,-17.9823,-10.349,-11.0707,-16.3418,-12.9525,-6.656,-32.0021,-12.9525,-6.656,-30.3617,13.4705,-11.0707,-32.0021,16.0739,-6.656,-16.3418,-12.9525,-6.656,-30.3617,-10.349,-11.0707,-32.0021,-12.9525,-6.656,-32.0021,16.0739,-6.656,-17.9823,13.4705,-11.0707,-16.3418,16.0739,-6.656,5.6496,13.4705,-11.0707,-6.7298,-10.349,-11.0707,5.6496,-10.349,-11.0707 +,7.2901,16.0739,-6.656,5.6496,-10.349,-11.0707,7.2901,-12.9525,-6.656,-8.3702,-12.9525,-6.656,-6.7298,13.4705,-11.0707,-8.3702,16.0739,-6.656,-8.3702,-12.9525,-6.656,5.6496,-10.349,-11.0707,-6.7298,-10.349,-11.0707,-8.3702,16.0739,-6.656,5.6496,13.4705,-11.0707,7.2901,16.0739,-6.656,29.314,13.4705,-11.0707,16.9346,-10.349,-11.0707,29.314,-10.349,-11.0707,30.9544,16.0739,-6.656,29.314,-10.349,-11.0707 +,30.9544,-12.9525,-6.656,15.2941,-12.9525,-6.656,16.9346,13.4705,-11.0707,15.2941,16.0739,-6.656,30.9544,-12.9525,-6.656,16.9346,-10.349,-11.0707,15.2941,-12.9525,-6.656,30.9544,16.0739,-6.656,16.9346,13.4705,-11.0707,29.314,13.4705,-11.0707,53.4329,27.705,-9.6047,40.2213,27.705,-6.656,44.0776,27.705,-13.344,-54.7634,22.295,-4.2378,53.181,19.8767,-6.656,53.181,22.295,-4.2378,53.181,19.8767,-6.656 +,-54.7634,-27.705,-6.656,53.181,-27.705,-6.656,51.3033,-20.634,-12.5534,52.2135,19.8767,-9.6047,51.2064,19.8767,-12.5534,51.2064,19.8767,-12.5534,44.7477,-14.6341,-12.5534,51.3033,-20.634,-12.5534,52.3114,-20.8128,-9.6047,53.2207,19.8767,-6.656,44.78,19.8767,-12.5534,41.6141,-14.0699,-10.2693,44.7477,-14.6341,-12.5534,44.06,20.9816,-13.344,40.2213,27.705,-10.4474,40.1684,20.9816,-10.4474,53.4863,20.9816,-9.6047 +,54.7095,27.705,-6.656,53.4329,27.705,-9.6047,52.1562,27.705,-13.344,44.06,20.9816,-13.344,52.2091,20.9816,-13.344,52.2091,20.9816,-13.344,52.1562,27.705,-13.344,40.2213,27.705,-6.656,40.1684,20.9816,-10.4474,40.2213,27.705,-10.4474,51.2064,19.8767,-12.5534,44.06,20.9816,-13.344,44.78,19.8767,-12.5534,53.2207,19.8767,-6.656,54.7095,27.705,-6.656,54.7634,20.9816,-6.656,53.2207,19.8767,-6.656 +,52.2135,19.8767,-9.6047,53.181,22.295,13.344,-54.7634,-27.705,13.344,-54.7634,22.295,13.344,-54.7634,22.295,-4.2378,53.181,-27.705,-6.656,53.181,22.295,-4.2378,53.181,-27.705,-6.656,46.9773,-27.5584,-6.656,40.1684,20.9816,-10.4474,41.7111,19.8767,-10.2693,44.78,19.8767,-12.5534,39.4278,-20.012,-12.5534,-54.7634,-16.8247,-10.2693,38.5052,-16.9687,-10.2693,-54.7634,-19.964,-12.5534,41.6141,-14.0699,-6.656 +,-54.7634,-16.8247,-6.656,38.5052,-16.9687,-6.656,53.3195,-20.9916,-6.656,-24.9869,12.5856,-9.5223,23.8791,12.5856,-9.5223,-24.9869,-9.4642,-9.5223,23.8791,-9.4642,-9.5223,-24.9869,12.5856,-9.5223,-30.3617,13.4705,-11.0707,-17.9823,13.4705,-11.0707,-30.3617,-10.349,-11.0707,-17.9823,-10.349,-11.0707,-30.3617,13.4705,-11.0707,-6.7298,13.4705,-11.0707,5.6496,13.4705,-11.0707,-6.7298,-10.349,-11.0707,7.2901,-12.9525,-6.656 +,-6.7298,13.4705,-11.0707,16.9346,13.4705,-11.0707,29.314,13.4705,-11.0707,16.9346,-10.349,-11.0707,29.314,-10.349,-11.0707,15.2941,16.0739,-6.656,54.7095,27.705,-6.656,40.2213,27.705,-10.4474,52.1562,27.705,-13.344,-54.7634,19.8767,-6.656,-54.7634,19.8767,-6.656,44.78,19.8767,-12.5534,53.3195,-20.9916,-6.656,41.7111,19.8767,-10.2693,44.0776,27.705,-13.344,54.7634,20.9816,-6.656,44.0776,27.705,-13.344 +,40.1684,20.9816,-6.656,52.2091,20.9816,-13.344,54.7634,20.9816,-6.656,53.181,-27.705,13.344] +,"normals":[0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0.001,-0.971,-0.241,0.001,-0.971,-0.24,0.001,-0.971,-0.241,-0.52,-0.781,-0.345,-0.582,-0.813,0 +,-0.582,-0.813,0,-0.52,-0.781,-0.345,-0.43,-0.694,-0.578,-0.548,-0.803,-0.235,0.698,-0.665,-0.265,0.696,-0.664,-0.275,0.701,-0.662,-0.263,0,0,-1,0,0,-1,0,0,-1,0,0.6,-0.8,0.001,0.589,-0.808,0,0.6,-0.8,-0.456,0.46,-0.762,-0.445,0.459,-0.769,-0.467,0.462,-0.754,0,0,-1 +,0,0,-1,0,0,-1,-1,0.003,0,-1,0.003,0,-1,0.003,0,0.002,1,0,0.002,1,0,0.002,1,0,-0.682,0.731,0,-0.682,0.731,0,-0.682,0.731,0,0.696,-0.667,-0.267,0.693,-0.666,-0.276,0.64,-0.737,-0.218,0.626,-0.747,-0.224,0.64,-0.737,-0.218,0.001,-0.971,-0.24 +,0.001,-0.971,-0.241,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,-1 +,0,0,-1,0,0,-1,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0,-0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,0,-1,0,0,-1,0,0,-1 +,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0,-0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,0,-1,0,0,-1,0,0,-1,0.937,0,-0.348,0.937,0,-0.348 +,0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0,-0.861,-0.508,0,-0.861,-0.508,0,-0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,0.861,-0.508,0,1,0,0,1,0,0,1,0,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0,-1 +,0,0,-1,0,0,-1,0.946,0.002,-0.323,0.946,0.002,-0.323,0.946,0.002,-0.323,0,0,-1,0,0,-1,0,0,-1,0.946,0.002,-0.323,0.946,0.002,-0.323,-0.596,0.002,-0.803,-0.589,0.001,-0.808,-0.589,0.001,-0.808,-0.598,0.003,-0.801,-0.599,0.003,-0.801,-0.597,0.005,-0.802,0.933,0.007,-0.361 +,0.918,0.007,-0.397,0.933,0.007,-0.36,0,0,-1,0,0,-1,0,0,-1,0.946,0.007,-0.323,0.946,0.007,-0.323,-1,0.008,0,-1,0.008,0,-1,0.008,0,0,-0.582,-0.813,0,-0.582,-0.813,0,-0.582,-0.813,0,0,1,0,0,1,0,0,1,0.587,-0.774,-0.237 +,0.64,-0.737,-0.218,0,0,1,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,-1,0,0.001,-0.971,-0.24,-0.548,-0.803,-0.235,-0.52,-0.781,-0.345,-0.43,-0.694,-0.578,0,0,-1,0.001,0.588,-0.809,-0.426,0.457,-0.781,0,0,-1,-1,0.003,0 +,0.002,1,0,-0.682,0.731,0,0.691,-0.668,-0.277,0,0,-1,1,0,0,-1,0,0,0,-1,0,0,1,0,0,0,-1,0.937,0,-0.348,-0.937,0,-0.348,0,-0.861,-0.508,0,0.861,-0.508,0,0,-1,0.937,0,-0.348,-0.937,0,-0.348,0,-0.861,-0.508 +,0,0.861,-0.508,0,0,-1,0.937,0,-0.348,-0.937,0,-0.348,0,-0.861,-0.508,0,0.861,-0.508,0,1,0,0,1,0,0,1,0,0,0.707,-0.707,0,0,-1,0,0,-1,0.946,0.002,-0.323,-0.597,0.002,-0.802,-0.601,0.002,-0.8,0.918,0.007,-0.397,0,0,-1 +,-1,0.008,0,0,-0.582,-0.813,0.565,-0.788,-0.245,0,0,1] +,"uvs":[0.632,0.07,0.741,0.053,0.741,0.07,0.908,0.296,0.888,0.293,0.908,0.246,0.655,0.82,0.547,0.84,0.547,0.82,0.441,0.972,0.442,0.98,0.441,0.979,0.019,0.938,0.121,0.941,0.019,0.941,0.944,0.08,0.948,0.078,0.948,0.08,0.943,0.913,0.946,0.915,0.942,0.915,0.949,0.641,0.948,0.649,0.946,0.642,0.733,0.085 +,0.734,0.074,0.739,0.079,0.727,0.084,0.632,0.08,0.728,0.08,0.73,0.086,0.728,0.08,0.733,0.085,0.728,0.08,0.632,0.074,0.734,0.074,0.97,0.162,0.974,0.128,0.974,0.162,0.949,0.698,0.946,0.792,0.946,0.698,0.949,0.694,0.946,0.698,0.946,0.694,0.952,0.64,0.951,0.649,0.987,0.002,0.991,0.003,0.987,0.003 +,0.12,0.944,0.019,0.944,0.446,0.879,0.397,0.857,0.446,0.857,0.979,0.742,0.976,0.72,0.979,0.72,0.976,0.694,0.979,0.716,0.976,0.716,0.879,0.165,0.83,0.168,0.83,0.165,0.604,0.973,0.653,0.97,0.653,0.973,0.969,0.691,0.957,0.667,0.969,0.667,0.971,0.268,0.967,0.241,0.971,0.239,0.966,0.31,0.971,0.336 +,0.966,0.339,0.232,0.983,0.218,0.988,0.216,0.983,0.441,0.988,0.455,0.983,0.456,0.988,0.304,0.967,0.292,0.943,0.304,0.943,0.973,0.756,0.968,0.729,0.973,0.727,0.969,0.843,0.974,0.87,0.969,0.872,0.973,0.59,0.987,0.595,0.975,0.595,0.974,0.461,0.988,0.456,0.99,0.461,0.972,0.527,0.96,0.504,0.972,0.504 +,0.975,0.037,0.97,0.01,0.975,0.008,0.968,0.694,0.973,0.721,0.968,0.723,0.99,0.399,0.976,0.404,0.974,0.399,0.988,0.691,0.974,0.686,0.987,0.686,0.811,0.983,0.798,0.986,0.802,0.979,0.632,0.053,0.741,0.049,0.741,0.053,0.741,0.049,0.632,0.002,0.741,0.002,0.948,0.649,0.949,0.69,0.946,0.689,0.744,0.119 +,0.733,0.085,0.739,0.079,0.951,0.649,0.952,0.69,0.737,0.12,0.73,0.086,0.733,0.085,0.737,0.121,0.733,0.128,0.732,0.121,0.82,0.987,0.823,0.994,0.82,0.994,0.745,0.127,0.737,0.121,0.745,0.12,0.816,0.987,0.816,0.994,0.992,0.691,0.995,0.684,0.995,0.691,0.744,0.119,0.737,0.121,0.737,0.12,0.454,0.98 +,0.455,0.972,0.455,0.979,0.993,0.002,0.99,0.002,0.632,0.131,0.683,0.239,0.632,0.239,0.632,0.053,0.888,0.246,0.891,0.296,0.655,0.84,0.121,0.938,0.944,0.078,0.943,0.913,0.947,0.913,0.728,0.08,0.632,0.084,0.727,0.084,0.632,0.08,0.97,0.128,0.949,0.792,0.949,0.698,0.954,0.649,0.397,0.879,0.976,0.742 +,0.979,0.694,0.879,0.168,0.604,0.97,0.957,0.691,0.967,0.265,0.971,0.312,0.23,0.988,0.442,0.983,0.292,0.967,0.968,0.753,0.974,0.846,0.989,0.59,0.975,0.456,0.96,0.527,0.97,0.034,0.973,0.697,0.988,0.404,0.973,0.691,0.813,0.986,0.798,0.982,0.81,0.979,0.632,0.049,0.632,0.049,0.737,0.12,0.954,0.649 +,0.734,0.12,0.738,0.127,0.823,0.987,0.738,0.127,0.992,0.684,0.745,0.12,0.994,0.003,0.683,0.131] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,21,47,48 +,49,14,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97 +,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,122,129,130,131,132,133,134,135,136,137,138,139,140,141,137,142,143,144,145 +,146,147,148,149,150,151,152,48,153,10,150,149,154,155,156,0,157,1,158,5,4,3,159,4,6,160,7,12,161,13,15,162,16,163,164,19,21,46,22,24,165,25,27,166,28,30,167,31,33,168 +,34,36,169,37,39,170,40,42,171,43,45,172,46,47,153,48,14,13,50,52,173,53,55,174,56,58,175,59,61,176,62,64,177,65,67,178,68,70,179,71,73,180,74,76,181,77,79,182,80,82 +,183,83,85,184,86,88,185,89,91,186,92,94,187,95,97,188,98,100,189,101,103,190,104,106,191,107,109,192,110,112,193,113,113,194,114,114,195,112,115,196,116,118,197,119,121,127,122,124,198,125 +,127,199,128,129,200,130,132,201,133,135,202,136,138,203,139,141,135,137,143,204,144,146,205,147,152,206,48,10,9,150,154,207,155] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":208,"indexStart":0,"indexCount":333}] +,"instances":[]} +,{"name":"ObstacleCornerTopRight","id":"ObstacleCornerTopRight","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[53.0691,-4820.8721,3103.9543],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-53.0691,22.295,-3.865,54.8753,22.295,13.402,-53.0691,22.295,13.402,-53.0691,19.562,-6.598,-53.0691,22.295,-3.865,-53.0691,22.295,13.402,54.8753,-27.705,-6.598,-53.0691,-27.705,13.402,54.8753,-27.705,13.402,-41.6013,19.562,-6.5979,-39.8845,27.705,-6.5981,-39.8327,20.5096,-6.5981,-46.4477,-26.8285,-9.5467,54.8753,-27.705,-6.598,54.8753,-26.9738,-9.5467,-53.1067,19.562,-6.598,-53.5585,20.5096,-9.5467 +,-54.8753,20.5096,-6.5981,-54.8225,27.705,-6.5981,-53.1067,19.562,-6.598,-54.8753,20.5096,-6.5981,-46.4477,-26.8285,-9.5467,-51.1915,-20.634,-12.4954,-52.1995,-20.8128,-9.5467,-44.6358,-14.6341,-12.4954,-46.0299,-26.0986,-12.4954,-39.3159,-20.012,-12.4954,-38.3933,-16.9687,-10.2112,54.8753,-19.964,-12.4954,54.8753,-16.8247,-10.2112,-41.5023,-14.0699,-10.2112,-39.3159,-20.012,-12.4954,-38.3933,-16.9687,-10.2112,-39.3159,-20.012,-12.4954 +,54.8753,-26.2425,-12.4954,54.8753,-19.964,-12.4954,-41.5023,-14.0699,-10.2112,-41.6013,19.562,-6.5979,-41.6013,19.562,-10.2112,54.8753,-16.8247,-10.2112,-38.3933,-16.9687,-6.5979,-38.3933,-16.9687,-10.2112,-38.3933,-16.9687,-10.2112,-41.5023,-14.0699,-6.5979,-41.5023,-14.0699,-10.2112,-46.8654,-27.5584,-6.598,-53.2076,-20.9916,-6.598,-51.0924,19.562,-12.4954,-43.8433,20.5096,-13.402,-52.2418,20.5096,-13.402,-46.0299,-26.0986,-12.4954 +,54.8753,-26.2425,-12.4954,-53.5062,27.705,-9.5467,-43.8606,27.705,-13.402,-39.8845,27.705,-6.5981,22.4397,-0.349,-9.4642,-20.0317,9.5423,-9.4642,-20.0317,-0.349,-9.4642,-20.0317,-0.349,-9.4642,-21.48,10.879,-6.598,-21.48,-1.6858,-6.598,23.888,10.879,-6.598,22.4397,-0.349,-9.4642,23.888,-1.6858,-6.598,22.4397,-0.349,-9.4642,-21.48,-1.6858,-6.598,23.888,-1.6858,-6.598,-20.0317,9.5423,-9.4642 +,23.888,10.879,-6.598,-21.48,10.879,-6.598,-2.0139,-16.9687,-8.0139,-3.5777,-0.349,-8.0139,-3.5777,-16.9687,-8.0139,-3.5777,-16.9687,-8.0139,-4.1039,-0.349,-6.598,-4.1039,-16.9687,-6.598,-1.4878,-0.349,-6.598,-2.0139,-16.9687,-8.0139,-1.4878,-16.9687,-6.598,2.352,-16.9687,-8.0139,0.7881,-0.349,-8.0139,0.7881,-16.9687,-8.0139,0.7881,-16.9687,-8.0139,0.262,-0.349,-6.598,0.262,-16.9687,-6.598 +,2.8781,-0.349,-6.598,2.352,-16.9687,-8.0139,2.8781,-16.9687,-6.598,6.5561,-7.9653,-8.0139,4.9923,-0.349,-8.0139,4.9923,-7.9653,-8.0139,4.9923,-7.9653,-8.0139,4.4662,-0.349,-6.598,4.4662,-7.9653,-6.598,7.0823,-0.349,-6.598,6.5561,-7.9653,-8.0139,7.0823,-7.9653,-6.598,-9.4346,8.4214,-10.2522,-8.2816,7.2683,-11.6346,-7.9281,8.1217,-10.2522,-9.4346,6.1152,-12.5583,-9.4346,4.4845,-12.8827 +,-8.8106,5.9911,-12.5583,-7.804,8.4214,-8.6215,-9.4346,8.7457,-8.6215,-9.4346,7.4977,-11.6346,-8.2816,7.2683,-11.6346,-6.6509,7.2683,-10.2522,-6.4215,7.4977,-8.6215,-8.2816,7.2683,-11.6346,-8.2816,5.6376,-12.5583,-7.304,6.6151,-11.6346,-6.6509,5.6376,-11.6346,-6.6509,7.2683,-10.2522,-6.6509,5.6376,-11.6346,-5.7975,5.9911,-10.2522,-7.9281,5.1086,-12.5583,-6.4215,7.4977,-8.6215,-5.4978,6.1152,-8.6215 +,-6.4215,4.4845,-11.6346,-5.4978,4.4845,-10.2522,-7.804,4.4845,-12.5583,-5.1735,4.4845,-8.6215,-6.4215,4.4845,-11.6346,-7.9281,3.8605,-12.5583,-5.7975,2.978,-10.2522,-5.4978,2.8539,-8.6215,-6.4215,4.4845,-11.6346,-6.6509,3.3315,-11.6346,-6.4215,1.4714,-8.6215,-8.2816,3.3315,-12.5583,-7.304,2.354,-11.6346,-7.304,2.354,-11.6346,-6.6509,1.7008,-10.2522,-6.6509,1.7008,-10.2522,-8.2816,1.7008,-11.6346 +,-7.9281,0.8474,-10.2522,-8.8106,2.978,-12.5583,-6.6509,1.7008,-10.2522,-7.804,0.5477,-8.6215,-6.4215,1.4714,-8.6215,-8.2816,1.7008,-11.6346,-9.4346,1.4714,-11.6346,-9.4346,0.5477,-10.2522,-9.4346,2.8539,-12.5583,-9.4346,0.2234,-8.6215,-9.4346,1.4714,-11.6346,-8.2816,1.7008,-11.6346,-11.0653,0.5477,-8.6215,-9.4346,1.4714,-11.6346,-10.0587,2.978,-12.5583,-10.5877,1.7008,-11.6346,-10.5877,1.7008,-11.6346 +,-10.9412,0.8474,-10.2522,-12.2184,1.7008,-10.2522,-12.4478,1.4714,-8.6215,-10.5877,3.3315,-12.5583,-11.5652,2.354,-11.6346,-10.5877,1.7008,-11.6346,-11.5652,2.354,-11.6346,-13.0718,2.978,-10.2522,-12.2184,1.7008,-10.2522,-10.9412,3.8605,-12.5583,-12.4478,1.4714,-8.6215,-13.3715,2.8539,-8.6215,-12.2184,3.3315,-11.6346,-12.4478,4.4845,-11.6346,-13.3715,4.4845,-10.2522,-11.0653,4.4845,-12.5583,-13.6958,4.4845,-8.6215 +,-12.4478,4.4845,-11.6346,-13.0718,5.9911,-10.2522,-13.3715,6.1152,-8.6215,-12.2184,5.6376,-11.6346,-12.4478,4.4845,-11.6346,-10.9412,5.1086,-12.5583,-10.5877,5.6376,-12.5583,-11.5652,6.6151,-11.6346,-11.5652,6.6151,-11.6346,-12.2184,7.2683,-10.2522,-12.4478,7.4977,-8.6215,-12.2184,7.2683,-10.2522,-10.5877,7.2683,-11.6346,-10.9412,8.1217,-10.2522,-10.0587,5.9911,-12.5583,-12.2184,7.2683,-10.2522,-11.0653,8.4214,-8.6215 +,-12.4478,7.4977,-8.6215,-10.5877,7.2683,-11.6346,-10.5877,7.2683,-11.6346,-9.4346,7.4977,-11.6346,1.5434,7.4977,-11.6346,3.05,8.1217,-10.2522,1.5434,8.4214,-10.2522,1.5434,6.1152,-12.5583,1.5434,4.4845,-12.8827,2.1674,5.9911,-12.5583,3.1741,8.4214,-8.6215,1.5434,8.7457,-8.6215,2.6965,7.2683,-11.6346,1.5434,7.4977,-11.6346,4.5565,7.4977,-8.6215,3.674,6.6151,-11.6346,3.674,6.6151,-11.6346 +,4.3272,7.2683,-10.2522,2.6965,5.6376,-12.5583,3.05,5.1086,-12.5583,4.3272,5.6376,-11.6346,4.3272,7.2683,-10.2522,4.3272,5.6376,-11.6346,5.1806,5.9911,-10.2522,4.5565,7.4977,-8.6215,5.4802,6.1152,-8.6215,4.5565,4.4845,-11.6346,5.4802,4.4845,-10.2522,3.1741,4.4845,-12.5583,5.8046,4.4845,-8.6215,4.5565,4.4845,-11.6346,3.05,3.8605,-12.5583,5.4802,2.8539,-8.6215,4.5565,4.4845,-11.6346 +,4.3272,3.3315,-11.6346,5.1806,2.978,-10.2522,4.5565,1.4714,-8.6215,3.674,2.354,-11.6346,4.3272,3.3315,-11.6346,4.3272,1.7008,-10.2522,2.6965,3.3315,-12.5583,3.674,2.354,-11.6346,3.05,0.8474,-10.2522,4.3272,1.7008,-10.2522,2.1674,2.978,-12.5583,4.5565,1.4714,-8.6215,3.1741,0.5477,-8.6215,2.6965,1.7008,-11.6346,1.5434,1.4714,-11.6346,1.5434,0.5477,-10.2522,1.5434,2.8539,-12.5583 +,1.5434,0.2234,-8.6215,1.5434,1.4714,-11.6346,0.0368,0.8474,-10.2522,-0.0873,0.5477,-8.6215,1.5434,1.4714,-11.6346,0.9194,2.978,-12.5583,0.3903,1.7008,-11.6346,0.3903,1.7008,-11.6346,-1.2403,1.7008,-10.2522,-1.4697,1.4714,-8.6215,0.3903,3.3315,-12.5583,-0.5872,2.354,-11.6346,0.3903,1.7008,-11.6346,-0.5872,2.354,-11.6346,-2.0937,2.978,-10.2522,-1.2403,1.7008,-10.2522,0.0368,3.8605,-12.5583 +,-1.4697,1.4714,-8.6215,-2.3934,2.8539,-8.6215,-1.2403,3.3315,-11.6346,-1.2403,3.3315,-11.6346,-2.3934,4.4845,-10.2522,-0.0873,4.4845,-12.5583,-2.7178,4.4845,-8.6215,-1.4697,4.4845,-11.6346,-2.0937,5.9911,-10.2522,-2.3934,6.1152,-8.6215,-1.2403,5.6376,-11.6346,-1.2403,5.6376,-11.6346,0.0369,5.1086,-12.5583,-0.5872,6.6151,-11.6346,-0.5872,6.6151,-11.6346,-1.2403,7.2683,-10.2522,0.3903,5.6376,-12.5583 +,-1.4697,7.4977,-8.6215,-0.5872,6.6151,-11.6346,0.0369,8.1217,-10.2522,-1.2403,7.2683,-10.2522,0.9194,5.9911,-12.5583,-1.4697,7.4977,-8.6215,-0.0873,8.4214,-8.6215,0.3903,7.2683,-11.6346,1.5434,7.4977,-11.6346,0.3903,7.2683,-11.6346,12.292,7.4977,-11.6346,13.7985,8.1217,-10.2522,12.292,8.4214,-10.2522,12.292,6.1152,-12.5583,12.292,4.4845,-12.8827,12.916,5.9911,-12.5583,12.292,8.7457,-8.6215 +,13.9226,8.4214,-8.6215,12.292,7.4977,-11.6346,13.445,7.2683,-11.6346,15.0757,7.2683,-10.2522,15.3051,7.4977,-8.6215,13.445,5.6376,-12.5583,14.4225,6.6151,-11.6346,13.445,7.2683,-11.6346,15.0757,5.6376,-11.6346,14.4225,6.6151,-11.6346,15.9291,5.9911,-10.2522,15.0757,7.2683,-10.2522,13.7985,5.1086,-12.5583,15.3051,7.4977,-8.6215,16.2288,6.1152,-8.6215,15.3051,4.4845,-11.6346,16.2288,4.4845,-10.2522 +,13.9226,4.4845,-12.5583,16.5531,4.4845,-8.6215,15.3051,4.4845,-11.6346,13.7985,3.8605,-12.5583,16.2288,2.8539,-8.6215,15.0757,3.3315,-11.6346,15.3051,4.4845,-11.6346,15.9291,2.978,-10.2522,15.3051,1.4714,-8.6215,13.445,3.3315,-12.5583,14.4225,2.354,-11.6346,14.4225,2.354,-11.6346,15.0757,1.7008,-10.2522,15.0757,1.7008,-10.2522,13.445,1.7008,-11.6346,13.7985,0.8474,-10.2522,12.916,2.978,-12.5583 +,15.0757,1.7008,-10.2522,13.9226,0.5477,-8.6215,15.3051,1.4714,-8.6215,13.445,1.7008,-11.6346,12.292,1.4714,-11.6346,12.292,0.5477,-10.2522,12.292,2.8539,-12.5583,12.292,0.2234,-8.6215,12.292,1.4714,-11.6346,13.445,1.7008,-11.6346,10.6613,0.5477,-8.6215,12.292,1.4714,-11.6346,11.6679,2.978,-12.5583,11.1389,1.7008,-11.6346,10.7854,0.8474,-10.2522,9.5082,1.7008,-10.2522,9.2788,1.4714,-8.6215 +,10.1614,2.354,-11.6346,11.1389,1.7008,-11.6346,11.1389,3.3315,-12.5583,9.5082,1.7008,-10.2522,9.5082,3.3315,-11.6346,8.6548,2.978,-10.2522,10.7854,3.8605,-12.5583,9.5082,1.7008,-10.2522,8.3551,2.8539,-8.6215,9.2788,1.4714,-8.6215,9.5082,3.3315,-11.6346,8.3551,4.4845,-10.2522,10.6613,4.4845,-12.5583,8.0308,4.4845,-8.6215,9.2788,4.4845,-11.6346,9.5082,3.3315,-11.6346,8.3551,6.1152,-8.6215 +,10.7854,5.1086,-12.5583,9.5082,5.6376,-11.6346,9.2788,4.4845,-11.6346,8.6548,5.9911,-10.2522,10.1614,6.6151,-11.6346,9.5082,5.6376,-11.6346,9.5082,7.2683,-10.2522,11.1389,5.6376,-12.5583,9.2788,7.4977,-8.6215,10.1614,6.6151,-11.6346,10.7854,8.1217,-10.2522,9.5082,7.2683,-10.2522,11.6679,5.9911,-12.5583,9.2788,7.4977,-8.6215,10.6613,8.4214,-8.6215,11.1389,7.2683,-11.6346,12.292,7.4977,-11.6346 +,11.1389,7.2683,-11.6346,6.6266,-8.2284,-8.0139,6.6266,-8.2284,-8.0139,5.2723,-9.0103,-8.0139,5.2723,-9.0103,-8.0139,6.8192,-8.4209,-8.0139,6.8192,-8.4209,-8.0139,4.8167,-9.2734,-6.598,6.0373,-9.7753,-8.0139,6.0373,-9.7753,-8.0139,7.0823,-8.4914,-8.0139,7.0823,-7.9653,-6.598,6.8192,-8.4209,-8.0139,7.0823,-8.4914,-8.0139,5.7742,-10.2309,-6.598,7.0823,-10.0553,-8.0139,6.0373,-9.7753,-8.0139 +,7.0823,-10.0553,-8.0139,54.8753,-8.4914,-8.0139,7.0823,-7.9653,-6.598,54.8753,-8.4914,-8.0139,54.8753,-7.9653,-6.598,7.0823,-10.5814,-6.598,54.8753,-10.0553,-8.0139,54.8753,19.562,-6.598,-53.0691,22.295,-3.865,-53.0691,19.562,-6.598,54.8753,-27.705,-6.598,-53.0691,19.562,-6.598,-53.0691,-27.705,-6.598,-51.1915,-20.634,-12.4954,-52.0995,19.562,-9.5467,-52.1995,-20.8128,-9.5467,-44.6358,-14.6341,-12.4954 +,-51.0924,19.562,-12.4954,-51.1915,-20.634,-12.4954,-53.1067,19.562,-6.598,-53.2076,-20.9916,-6.598,-41.5023,-14.0699,-10.2112,-44.6689,19.562,-12.4954,-44.6358,-14.6341,-12.4954,-43.8433,20.5096,-13.402,-39.8845,27.705,-10.4155,-43.8606,27.705,-13.402,-53.5585,20.5096,-9.5467,-54.8225,27.705,-6.5981,-54.8753,20.5096,-6.5981,-43.8433,20.5096,-13.402,-52.1899,27.705,-13.402,-52.2418,20.5096,-13.402,-52.2418,20.5096,-13.402 +,-53.5062,27.705,-9.5467,-39.8327,20.5096,-10.4155,-39.8845,27.705,-6.5981,-39.8845,27.705,-10.4155,-51.0924,19.562,-12.4954,-53.5585,20.5096,-9.5467,-52.0995,19.562,-9.5467,-41.6013,19.562,-10.2112,-43.8433,20.5096,-13.402,-44.6689,19.562,-12.4954,-41.6013,19.562,-10.2112,-39.8327,20.5096,-6.5981,-39.8327,20.5096,-10.4155,-53.0691,-27.705,13.402,54.8753,22.295,13.402,54.8753,-27.705,13.402,54.8753,22.295,-3.865 +,-53.0691,-27.705,13.402,-53.0691,-27.705,-6.598,-53.0691,-27.705,-6.598,-46.8654,-27.5584,-6.598,-52.0995,19.562,-9.5467,-46.0299,-26.0986,-12.4954,-51.1915,-20.634,-12.4954,-39.3159,-20.012,-12.4954,-44.6358,-14.6341,-12.4954,-46.0299,-26.0986,-12.4954,-41.5023,-14.0699,-6.5979,54.8753,-16.8247,-6.5979,-38.3933,-16.9687,-6.5979,-44.6689,19.562,-12.4954,-52.1899,27.705,-13.402,-39.8845,27.705,-10.4155,-54.8225,27.705,-6.5981 +,22.4397,9.5423,-9.4642,-20.0317,9.5423,-9.4642,22.4397,9.5423,-9.4642,-20.0317,-0.349,-9.4642,22.4397,9.5423,-9.4642,-2.0139,-0.349,-8.0139,-3.5777,-0.349,-8.0139,-2.0139,-0.349,-8.0139,2.352,-0.349,-8.0139,0.7881,-0.349,-8.0139,2.352,-0.349,-8.0139,6.5561,-0.349,-8.0139,4.9923,-0.349,-8.0139,6.5561,-0.349,-8.0139,-9.4346,7.4977,-11.6346,-8.2816,7.2683,-11.6346,-7.304,6.6151,-11.6346 +,-6.6509,7.2683,-10.2522,-7.304,6.6151,-11.6346,-6.6509,5.6376,-11.6346,-6.4215,7.4977,-8.6215,-6.6509,7.2683,-10.2522,-6.6509,5.6376,-11.6346,-6.4215,4.4845,-11.6346,-6.4215,4.4845,-11.6346,-6.6509,3.3315,-11.6346,-6.6509,3.3315,-11.6346,-7.304,2.354,-11.6346,-6.6509,1.7008,-10.2522,-7.304,2.354,-11.6346,-6.6509,1.7008,-10.2522,-8.2816,1.7008,-11.6346,-9.4346,1.4714,-11.6346,-9.4346,1.4714,-11.6346 +,-10.5877,1.7008,-11.6346,-10.5877,1.7008,-11.6346,-11.5652,2.354,-11.6346,-11.5652,2.354,-11.6346,-12.2184,3.3315,-11.6346,-12.4478,1.4714,-8.6215,-12.2184,1.7008,-10.2522,-12.2184,3.3315,-11.6346,-12.2184,5.6376,-11.6346,-12.2184,5.6376,-11.6346,-11.5652,6.6151,-11.6346,-12.2184,7.2683,-10.2522,-11.5652,6.6151,-11.6346,-12.2184,7.2683,-10.2522,-10.5877,7.2683,-11.6346,-9.4346,7.4977,-11.6346,2.6965,7.2683,-11.6346 +,2.6965,7.2683,-11.6346,3.674,6.6151,-11.6346,4.3272,7.2683,-10.2522,3.674,6.6151,-11.6346,4.3272,5.6376,-11.6346,4.5565,7.4977,-8.6215,4.3272,7.2683,-10.2522,4.3272,5.6376,-11.6346,4.5565,4.4845,-11.6346,4.5565,4.4845,-11.6346,4.3272,3.3315,-11.6346,4.3272,3.3315,-11.6346,3.674,2.354,-11.6346,3.674,2.354,-11.6346,2.6965,1.7008,-11.6346,4.5565,1.4714,-8.6215,4.3272,1.7008,-10.2522 +,2.6965,1.7008,-11.6346,1.5434,1.4714,-11.6346,0.3903,1.7008,-11.6346,0.3903,1.7008,-11.6346,-0.5872,2.354,-11.6346,-0.5872,2.354,-11.6346,-1.2403,3.3315,-11.6346,-1.4697,1.4714,-8.6215,-1.2403,1.7008,-10.2522,-1.2403,3.3315,-11.6346,-1.4697,4.4845,-11.6346,-1.4697,4.4845,-11.6346,-1.2403,5.6376,-11.6346,-1.2403,5.6376,-11.6346,-0.5872,6.6151,-11.6346,-0.5872,6.6151,-11.6346,0.3903,7.2683,-11.6346 +,-1.4697,7.4977,-8.6215,-1.2403,7.2683,-10.2522,1.5434,7.4977,-11.6346,0.3903,7.2683,-11.6346,13.445,7.2683,-11.6346,12.292,7.4977,-11.6346,13.445,7.2683,-11.6346,14.4225,6.6151,-11.6346,14.4225,6.6151,-11.6346,15.0757,5.6376,-11.6346,15.3051,7.4977,-8.6215,15.0757,7.2683,-10.2522,15.0757,5.6376,-11.6346,15.0757,3.3315,-11.6346,15.0757,3.3315,-11.6346,14.4225,2.354,-11.6346,15.0757,1.7008,-10.2522 +,14.4225,2.354,-11.6346,15.0757,1.7008,-10.2522,13.445,1.7008,-11.6346,12.292,1.4714,-11.6346,12.292,1.4714,-11.6346,11.1389,1.7008,-11.6346,11.1389,1.7008,-11.6346,10.1614,2.354,-11.6346,9.5082,1.7008,-10.2522,10.1614,2.354,-11.6346,9.5082,1.7008,-10.2522,9.5082,3.3315,-11.6346,9.2788,4.4845,-11.6346,9.2788,4.4845,-11.6346,9.5082,5.6376,-11.6346,9.5082,5.6376,-11.6346,10.1614,6.6151,-11.6346 +,10.1614,6.6151,-11.6346,11.1389,7.2683,-11.6346,9.2788,7.4977,-8.6215,9.5082,7.2683,-10.2522,12.292,7.4977,-11.6346,11.1389,7.2683,-11.6346,5.7742,-10.2309,-6.598,54.8753,-10.0553,-8.0139,7.0823,-7.9653,-6.598,54.8753,-10.5814,-6.598,54.8753,22.295,-3.865,54.8753,19.562,-6.598,-51.0924,19.562,-12.4954,-44.6689,19.562,-12.4954,-41.6013,19.562,-10.2112,-39.8327,20.5096,-10.4155,-43.8606,27.705,-13.402 +,-52.1899,27.705,-13.402,-39.8327,20.5096,-6.5981,-52.2418,20.5096,-13.402,-39.8327,20.5096,-10.4155,-41.6013,19.562,-6.5979,-53.0691,22.295,13.402] +,"normals":[0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,-0.001,-0.971,-0.24,-0.001,-0.971,-0.241,-0.001,-0.971,-0.241,-0.485,-0.852,-0.199,-0.511,-0.838,-0.191 +,-0.462,-0.862,-0.206,0,0,1,0,0,1,0,0,1,-0.698,-0.665,-0.265,-0.696,-0.664,-0.275,-0.693,-0.666,-0.276,0,0,-1,0,0,-1,0,0,-1,0,0.6,-0.8,-0.001,0.589,-0.808,-0.001,0.588,-0.809,0.456,0.46,-0.762,0.445,0.459,-0.769,0.426,0.457,-0.781,0,0,-1 +,0,0,-1,0,0,-1,1,0.003,0,1,0.003,0,1,0.003,0,-0.002,1,0,-0.002,1,0,-0.002,1,0,0.682,0.731,0,0.682,0.731,0,0.682,0.731,0,-0.696,-0.667,-0.267,-0.691,-0.668,-0.277,0,-0.691,-0.723,0,-0.691,-0.723,0,-0.691,-0.723,-0.001,-0.971,-0.24 +,-0.001,-0.971,-0.241,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,-0.893,0,-0.451,-0.893,0,-0.451,-0.893,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0.893,0,-0.451,0,-0.906,-0.423,0,-0.906,-0.423,0,-0.906,-0.423,0,0.906,-0.423 +,0,0.906,-0.423,0,0.906,-0.423,0,0,-1,0,0,-1,0,0,-1,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0,0,-1,0,0,-1,0,0,-1,-0.937,0,-0.348,-0.937,0,-0.348,-0.937,0,-0.348 +,0.937,0,-0.348,0.937,0,-0.348,0.937,0,-0.348,0,0,-1,0,0,-1,0,0,-1,-0.93,-0.126,-0.346,-0.937,0,-0.348,-0.931,-0.119,-0.346,0.937,0,-0.348,0.931,0.119,-0.346,0.632,0.632,-0.448,0,0.927,-0.374,0.275,0.664,-0.695,0.355,0.857,-0.374,0,0.403,-0.915,0,0,-1 +,0.154,0.372,-0.915,0.375,0.906,-0.195,0,0.981,-0.195,0,0.719,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.694,0.694,-0.195,0.275,0.664,-0.695,0.285,0.285,-0.915,0.508,0.508,-0.695,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195 +,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.372,-0.154,-0.915,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.719,0,-0.695,0.664,-0.275,-0.695,0.694,-0.694,-0.195,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.656,-0.656,-0.374,0.275,-0.664,-0.695 +,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695 +,-0.355,-0.857,-0.374,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.656,-0.656,-0.374,-0.372,-0.154,-0.915,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195 +,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195 +,-0.694,0.694,-0.195,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.719,-0.695,0.355,0.857,-0.374,0,0.927,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0.375,0.906,-0.195,0,0.981,-0.195,0.275,0.664,-0.695,0,0.719,-0.695,0.694,0.694,-0.195,0.508,0.508,-0.695,0.508,0.508,-0.695 +,0.656,0.656,-0.374,0.285,0.285,-0.915,0.372,0.154,-0.915,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.694,0.694,-0.195,0.906,0.375,-0.195,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.372,-0.154,-0.915,0.906,-0.375,-0.195,0.719,0,-0.695 +,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.355,-0.857,-0.374,0.656,-0.656,-0.374,0.154,-0.372,-0.915,0.694,-0.694,-0.195,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915 +,0,-0.981,-0.195,0,-0.719,-0.695,-0.355,-0.857,-0.374,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.656,-0.656,-0.374,-0.372,-0.154,-0.915 +,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.664,-0.275,-0.695,-0.664,-0.275,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.372,0.154,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.285,0.285,-0.915 +,-0.694,0.694,-0.195,-0.508,0.508,-0.695,-0.355,0.857,-0.374,-0.656,0.656,-0.374,-0.154,0.372,-0.915,-0.694,0.694,-0.195,-0.375,0.906,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.355,0.857,-0.374,0,0.927,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0,0.981,-0.195 +,0.375,0.906,-0.195,0,0.719,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.694,0.694,-0.195,0.285,0.285,-0.915,0.508,0.508,-0.695,0.275,0.664,-0.695,0.664,0.275,-0.695,0.508,0.508,-0.695,0.857,0.355,-0.374,0.656,0.656,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.719,0,-0.695,0.927,0,-0.374 +,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.372,-0.154,-0.915,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.719,0,-0.695,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915 +,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195 +,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.285,-0.285,-0.915,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.656,-0.656,-0.374,-0.906,-0.375,-0.195,-0.694,-0.694,-0.195,-0.664,-0.275,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.664,-0.275,-0.695,-0.906,0.375,-0.195 +,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.656,0.656,-0.374,-0.285,0.285,-0.915,-0.694,0.694,-0.195,-0.508,0.508,-0.695,-0.355,0.857,-0.374,-0.656,0.656,-0.374,-0.154,0.372,-0.915,-0.694,0.694,-0.195,-0.375,0.906,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695 +,-0.275,0.664,-0.695,0,0,-1,0.812,0.469,-0.348,-0.812,-0.469,-0.348,0,0,-1,0,0,-1,0.469,0.812,-0.348,-0.812,-0.469,-0.348,-0.469,-0.812,-0.348,0,0,-1,0,0,-1,0.632,0.632,-0.448,0.469,0.812,-0.348,0.119,0.931,-0.346,-0.469,-0.812,-0.348,-0.126,-0.93,-0.346,-0.469,-0.812,-0.348 +,0,0,-1,0,0,-1,0.632,0.632,-0.448,0,0.937,-0.348,0,0.937,-0.348,-0.119,-0.931,-0.346,0,-0.937,-0.348,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0,-1,0,0,-1,0,0,-1,-0.946,0.002,-0.323,-0.946,0.002,-0.323,-0.946,0.002,-0.323,0,0,-1 +,0,0,-1,0,0,-1,-0.946,0.002,-0.323,-0.946,0.002,-0.323,0.59,0.001,-0.808,0.597,0.002,-0.802,0.589,0.001,-0.808,0.598,0.003,-0.801,0.599,0.003,-0.801,0.601,0.001,-0.8,-0.931,0.007,-0.366,-0.913,0.007,-0.408,-0.913,0.007,-0.408,0,0,-1,0,0,-1,0,0,-1,-0.946,0.007,-0.323 +,-0.931,0.007,-0.366,1,0.007,0,1,0.007,0,1,0.007,0,-0.535,-0.824,-0.183,-0.535,-0.824,-0.183,-0.535,-0.824,-0.183,0.366,-0.79,-0.492,0.366,-0.79,-0.492,0.366,-0.79,-0.492,0.472,-0.881,0,0.472,-0.881,0,0.472,-0.881,0,0,0,1,0,0,1,0,0,1,0,1,0 +,-1,0,0,-1,0,0,0,-1,0,-0.001,-0.971,-0.24,-0.535,-0.824,-0.183,-0.701,-0.662,-0.263,0,0,-1,0,0.6,-0.8,0.467,0.462,-0.754,0,0,-1,1,0.003,0,-0.002,1,0,0.682,0.731,0,0,-0.691,-0.723,0,1,0,0,1,0,0,1,0 +,0,0,-1,-0.893,0,-0.451,0.893,0,-0.451,0,-0.906,-0.423,0,0.906,-0.423,0,0,-1,-0.937,0,-0.348,0.937,0,-0.348,0,0,-1,-0.937,0,-0.348,0.937,0,-0.348,0,0,-1,-0.937,0,-0.348,0.937,0,-0.348,0,0.719,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695 +,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.719,-0.695 +,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695 +,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.694,-0.694,-0.195,0.656,-0.656,-0.374 +,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695 +,-0.694,0.694,-0.195,-0.656,0.656,-0.374,0,0.719,-0.695,-0.275,0.664,-0.695,0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374 +,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695 +,-0.508,0.508,-0.695,-0.275,0.664,-0.695,-0.694,0.694,-0.195,-0.656,0.656,-0.374,0,0.719,-0.695,-0.275,0.664,-0.695,-0.469,-0.812,-0.348,0,0,-1,0.632,0.632,-0.448,0,-0.937,-0.348,0,0.707,-0.707,0,0,-1,-0.946,0.002,-0.323,0,0,-1,0.597,0.002,-0.802,0.597,0.004,-0.802,0,0,-1 +,-0.946,0.007,-0.323,1,0.007,0,-0.535,-0.824,-0.183,0.366,-0.79,-0.492,0.472,-0.881,0,0,0,1] +,"uvs":[0.651,0.413,0.759,0.43,0.651,0.43,0.862,0.915,0.86,0.917,0.842,0.917,0.767,0.84,0.658,0.82,0.767,0.82,0.748,0.404,0.75,0.396,0.75,0.403,0.659,0.936,0.76,0.933,0.76,0.936,0.93,0.775,0.928,0.774,0.931,0.774,0.735,0.396,0.736,0.404,0.735,0.403,0.96,0.24,0.962,0.248,0.959,0.248,0.019,0.722 +,0.018,0.71,0.024,0.716,0.026,0.72,0.12,0.716,0.12,0.72,0.022,0.723,0.024,0.716,0.026,0.72,0.024,0.716,0.12,0.71,0.12,0.716,0.972,0.466,0.976,0.5,0.972,0.5,0.558,0.952,0.464,0.955,0.464,0.952,0.464,0.952,0.46,0.955,0.46,0.952,0.957,0.239,0.956,0.248,0.898,0.921,0.905,0.923,0.897,0.922 +,0.659,0.939,0.76,0.939,0.291,0.983,0.301,0.979,0.305,0.986,0.908,0.907,0.866,0.917,0.866,0.907,0.993,0.102,0.99,0.113,0.99,0.101,0.993,0.322,0.989,0.311,0.993,0.309,0.648,0.979,0.604,0.976,0.649,0.976,0.871,0.972,0.915,0.975,0.869,0.975,0.544,0.704,0.542,0.72,0.542,0.704,0.991,0.64,0.99,0.656 +,0.99,0.64,0.991,0.777,0.99,0.76,0.991,0.76,0.115,0.852,0.113,0.868,0.113,0.852,0.991,0.663,0.99,0.68,0.99,0.663,0.992,0.618,0.99,0.601,0.992,0.601,0.757,0.953,0.754,0.96,0.755,0.952,0.997,0.058,0.996,0.066,0.995,0.058,0.913,0.916,0.911,0.908,0.913,0.908,0.997,0.666,0.995,0.665,0.997,0.665 +,0.86,0.993,0.861,0.992,0.861,0.993,0.998,0.665,0.998,0.666,0.859,0.994,0.86,0.995,0.996,0.663,0.998,0.663,0.86,0.995,0.861,0.993,0.862,0.995,0.863,0.994,0.209,0.997,0.208,0.996,0.209,0.996,0.862,0.993,0.211,0.998,0.211,0.996,0.208,0.995,0.209,0.995,0.862,0.993,0.211,0.995,0.864,0.993,0.862,0.992 +,0.209,0.993,0.211,0.993,0.864,0.993,0.864,0.992,0.211,0.991,0.862,0.991,0.864,0.991,0.207,0.992,0.209,0.992,0.716,0.998,0.715,0.996,0.717,0.996,0.862,0.991,0.716,0.998,0.718,0.997,0.718,0.998,0.864,0.99,0.715,0.995,0.717,0.995,0.862,0.99,0.719,0.995,0.863,0.989,0.864,0.99,0.718,0.993,0.863,0.989 +,0.861,0.99,0.862,0.988,0.715,0.994,0.717,0.993,0.716,0.992,0.718,0.992,0.861,0.99,0.86,0.988,0.715,0.994,0.782,0.996,0.784,0.995,0.783,0.997,0.86,0.99,0.785,0.997,0.785,0.996,0.859,0.989,0.782,0.994,0.784,0.994,0.86,0.991,0.785,0.994,0.858,0.99,0.784,0.993,0.785,0.992,0.858,0.991,0.858,0.99 +,0.859,0.991,0.859,0.992,0.858,0.992,0.782,0.992,0.783,0.991,0.785,0.991,0.996,0.669,0.995,0.667,0.997,0.668,0.86,0.993,0.996,0.669,0.998,0.668,0.998,0.67,0.858,0.993,0.858,0.993,0.995,0.666,0.224,0.995,0.225,0.993,0.225,0.995,0.85,0.993,0.851,0.992,0.851,0.993,0.227,0.993,0.227,0.995,0.851,0.995 +,0.85,0.994,0.226,0.991,0.852,0.995,0.223,0.992,0.225,0.992,0.852,0.993,0.852,0.993,0.853,0.994,0.996,0.149,0.995,0.147,0.997,0.147,0.998,0.149,0.998,0.148,0.995,0.146,0.997,0.146,0.853,0.992,0.998,0.146,0.854,0.993,0.853,0.992,0.998,0.144,0.854,0.993,0.855,0.992,0.997,0.144,0.998,0.142,0.855,0.991 +,0.995,0.145,0.996,0.143,0.853,0.991,0.789,0.996,0.791,0.995,0.79,0.997,0.853,0.991,0.792,0.997,0.792,0.996,0.854,0.99,0.789,0.994,0.791,0.994,0.852,0.99,0.792,0.994,0.853,0.989,0.791,0.993,0.792,0.992,0.853,0.989,0.852,0.99,0.852,0.988,0.789,0.993,0.79,0.991,0.792,0.991,0.851,0.99,0.851,0.988 +,0.789,0.993,0.448,0.997,0.45,0.996,0.449,0.998,0.85,0.99,0.451,0.998,0.451,0.997,0.85,0.989,0.448,0.996,0.45,0.995,0.85,0.991,0.451,0.995,0.849,0.99,0.45,0.993,0.451,0.993,0.848,0.991,0.448,0.994,0.85,0.991,0.848,0.992,0.448,0.992,0.449,0.992,0.85,0.992,0.451,0.992,0.223,0.997,0.225,0.996 +,0.225,0.998,0.85,0.992,0.226,0.998,0.227,0.996,0.849,0.993,0.85,0.994,0.223,0.996,0.722,0.995,0.724,0.993,0.724,0.995,0.548,0.993,0.547,0.991,0.548,0.992,0.725,0.995,0.725,0.993,0.549,0.994,0.55,0.993,0.723,0.992,0.725,0.992,0.548,0.992,0.55,0.992,0.722,0.994,0.55,0.991,0.216,0.997,0.218,0.996 +,0.218,0.998,0.548,0.991,0.219,0.998,0.22,0.996,0.217,0.995,0.218,0.995,0.548,0.991,0.22,0.995,0.55,0.99,0.548,0.99,0.22,0.993,0.549,0.989,0.55,0.99,0.218,0.993,0.219,0.991,0.547,0.99,0.547,0.988,0.216,0.992,0.218,0.992,0.442,0.998,0.441,0.996,0.443,0.996,0.547,0.99,0.442,0.998,0.444,0.997 +,0.444,0.998,0.546,0.988,0.441,0.995,0.443,0.995,0.546,0.99,0.444,0.995,0.545,0.989,0.546,0.988,0.444,0.993,0.545,0.989,0.545,0.991,0.544,0.99,0.443,0.993,0.442,0.992,0.444,0.992,0.544,0.991,0.441,0.994,0.545,0.991,0.237,0.998,0.236,0.996,0.238,0.996,0.545,0.992,0.237,0.998,0.239,0.997,0.239,0.998 +,0.544,0.992,0.238,0.995,0.546,0.992,0.239,0.995,0.544,0.993,0.544,0.992,0.239,0.993,0.546,0.993,0.545,0.994,0.236,0.995,0.238,0.994,0.546,0.995,0.236,0.994,0.237,0.992,0.547,0.993,0.239,0.992,0.722,0.997,0.724,0.996,0.723,0.998,0.547,0.993,0.725,0.998,0.725,0.997,0.547,0.995,0.549,0.994,0.722,0.996 +,0.757,0.952,0.911,0.908,0.997,0.057,0.756,0.951,0.757,0.952,0.911,0.907,0.995,0.057,0.997,0.056,0.756,0.951,0.757,0.952,0.387,0.989,0.387,0.987,0.387,0.987,0.323,0.92,0.324,0.922,0.323,0.922,0.758,0.951,0.805,0.96,0.387,0.989,0.435,0.987,0.435,0.989,0.324,0.92,0.372,0.922,0.759,0.409,0.651,0.413 +,0.651,0.409,0.759,0.319,0.651,0.366,0.651,0.319,0.962,0.248,0.96,0.288,0.959,0.248,0.019,0.722,0.009,0.755,0.013,0.715,0.957,0.288,0.956,0.248,0.022,0.723,0.015,0.756,0.019,0.722,0.01,0.976,0.015,0.984,0.01,0.984,0.109,0.724,0.105,0.731,0.105,0.724,0.01,0.976,0.002,0.984,0.002,0.976,0.113,0.724 +,0.109,0.731,0.991,0.717,0.995,0.724,0.991,0.724,0.924,0.775,0.928,0.774,0.927,0.775,0.908,0.921,0.905,0.923,0.904,0.922,0.976,0.527,0.979,0.529,0.976,0.529,0.632,0.293,0.741,0.243,0.741,0.293,0.759,0.413,0.842,0.867,0.862,0.867,0.658,0.84,0.658,0.933,0.927,0.775,0.963,0.24,0.013,0.715,0.024,0.716 +,0.019,0.722,0.018,0.71,0.976,0.466,0.558,0.955,0.464,0.955,0.904,0.922,0.292,0.979,0.305,0.982,0.29,0.986,0.908,0.917,0.993,0.112,0.989,0.321,0.605,0.979,0.913,0.972,0.544,0.72,0.991,0.656,0.99,0.777,0.115,0.868,0.991,0.68,0.99,0.618,0.755,0.96,0.997,0.066,0.911,0.916,0.995,0.666,0.86,0.995 +,0.995,0.664,0.209,0.997,0.207,0.997,0.208,0.996,0.211,0.998,0.209,0.997,0.208,0.996,0.864,0.993,0.864,0.993,0.208,0.993,0.208,0.993,0.207,0.992,0.716,0.998,0.715,0.997,0.716,0.998,0.864,0.99,0.863,0.989,0.863,0.989,0.715,0.994,0.715,0.994,0.715,0.993,0.782,0.996,0.782,0.995,0.785,0.997,0.783,0.997 +,0.782,0.995,0.782,0.993,0.782,0.993,0.782,0.992,0.996,0.669,0.995,0.669,0.996,0.669,0.858,0.993,0.995,0.666,0.223,0.993,0.223,0.993,0.223,0.992,0.996,0.149,0.995,0.148,0.995,0.147,0.998,0.149,0.996,0.149,0.995,0.147,0.854,0.993,0.854,0.993,0.995,0.145,0.995,0.145,0.995,0.143,0.789,0.996,0.789,0.995 +,0.792,0.997,0.79,0.997,0.789,0.995,0.853,0.989,0.789,0.993,0.789,0.993,0.789,0.992,0.448,0.997,0.448,0.996,0.451,0.998,0.449,0.998,0.448,0.996,0.448,0.995,0.448,0.995,0.448,0.994,0.448,0.994,0.448,0.992,0.223,0.997,0.223,0.996,0.226,0.998,0.225,0.998,0.85,0.994,0.223,0.996,0.722,0.994,0.549,0.994 +,0.722,0.994,0.722,0.993,0.216,0.997,0.217,0.996,0.219,0.998,0.218,0.998,0.217,0.996,0.217,0.993,0.217,0.993,0.216,0.992,0.442,0.998,0.441,0.997,0.442,0.998,0.546,0.988,0.545,0.989,0.545,0.989,0.441,0.994,0.441,0.994,0.441,0.993,0.237,0.998,0.236,0.997,0.237,0.998,0.544,0.992,0.236,0.995,0.236,0.995 +,0.236,0.994,0.236,0.994,0.236,0.993,0.722,0.997,0.722,0.996,0.725,0.998,0.723,0.998,0.549,0.994,0.722,0.996,0.996,0.055,0.805,0.959,0.387,0.989,0.372,0.92,0.759,0.413,0.759,0.366,0.963,0.288,0.015,0.756,0.019,0.756,0.015,0.976,0.01,0.984,0.113,0.731,0.995,0.717,0.924,0.774,0.91,0.922,0.979,0.527 +,0.632,0.243] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,23,46,47,48 +,49,50,14,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97 +,98,99,100,101,102,97,103,104,105,102,106,103,107,108,109,110,111,98,107,99,102,101,110,110,112,111,113,114,115,110,101,116,117,115,118,115,119,120,116,101,121,115,122,118,116,123,112,121,101,124 +,122,125,126,127,124,128,119,125,120,125,129,126,128,130,131,125,132,133,124,101,130,134,135,136,130,101,137,138,139,140,130,141,131,136,142,143,137,101,144,136,145,139,137,146,147,143,148,145,149,150 +,151,143,152,153,144,101,150,148,154,155,151,156,157,158,154,153,150,101,156,159,160,161,156,101,162,163,160,164,156,165,157,160,166,167,162,101,168,160,169,164,165,168,170,169,171,172,168,173,174,166 +,171,167,168,101,175,173,176,177,171,178,179,175,101,176,171,180,172,181,182,183,176,101,184,185,186,187,176,188,177,184,101,100,186,97,104,184,105,189,183,190,97,191,192,193,194,195,196,193,197,198 +,194,199,200,192,201,197,196,202,199,192,203,204,196,195,205,202,206,207,208,209,210,205,195,206,211,210,212,210,213,214,206,195,215,210,216,212,206,217,207,215,195,218,214,219,216,220,218,221,213,222 +,214,222,223,219,218,224,221,225,226,222,218,195,227,228,229,230,227,195,231,232,229,233,224,231,234,229,235,236,231,195,237,233,236,238,234,237,239,238,240,241,242,243,244,236,245,240,237,195,243,241 +,246,247,244,248,249,250,246,240,243,195,248,251,252,253,248,195,254,255,252,256,249,254,257,258,259,252,254,195,260,252,261,256,257,260,262,261,263,264,260,265,262,259,266,263,260,195,267,267,268,265 +,263,269,270,267,195,271,264,270,272,273,274,275,271,195,276,277,274,278,271,279,268,276,195,194,278,193,198,276,280,279,281,193,274,282,283,284,285,286,287,288,283,289,290,287,291,289,292,293,291,294 +,295,296,292,283,287,286,294,294,297,295,298,299,300,294,286,301,302,299,303,299,304,305,301,286,306,299,307,303,297,306,308,306,286,309,305,310,307,306,311,312,304,313,305,313,314,310,311,315,316,313 +,317,318,309,286,315,319,320,321,315,286,322,323,324,325,315,326,316,321,327,328,322,286,329,321,330,324,322,331,332,328,333,330,334,335,336,327,337,328,329,286,335,333,338,339,335,340,336,341,338,337 +,335,286,342,343,344,345,342,286,346,347,348,349,342,350,340,344,351,345,346,286,352,345,353,348,346,354,355,351,356,353,354,357,358,359,360,351,352,286,357,357,361,358,362,363,360,357,286,364,356,363 +,365,366,367,368,364,286,369,370,367,371,364,372,361,369,286,285,371,284,288,369,373,372,374,284,367,90,375,88,96,95,376,93,377,91,378,379,375,96,376,380,381,382,377,383,384,379,385,386,387,388 +,389,390,391,392,384,393,394,395,396,397,389,398,399,400,401,402,403,404,405,406,407,408,409,406,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,418,426,427,428,429,430,431,432,433,434 +,435,436,437,9,18,10,438,439,440,0,441,1,5,442,3,443,3,442,6,444,7,12,445,13,15,446,16,21,447,22,24,448,25,27,449,28,30,450,31,33,451,34,36,452,37,39,453,40,42,454 +,43,45,21,23,47,455,48,50,12,14,52,456,53,53,457,54,54,458,52,55,459,56,58,460,59,61,461,62,64,462,65,67,463,68,70,464,71,73,465,74,76,466,77,79,467,80,82,468,83,85 +,469,86,88,470,89,91,471,92,94,472,95,97,473,98,97,99,103,105,100,102,103,99,107,474,102,110,98,475,107,110,116,112,476,477,478,479,480,115,115,481,119,115,120,122,116,121,482,122,120,125 +,483,121,124,119,484,125,125,133,129,128,124,130,125,485,486,487,488,135,489,136,139,130,137,490,136,135,142,136,143,145,137,144,491,143,153,148,492,144,150,143,142,493,148,153,154,151,150,156,494,495 +,154,496,497,160,498,499,160,156,162,165,160,500,166,160,167,169,165,162,168,169,167,171,168,175,173,166,501,171,173,175,176,171,502,503,171,179,180,504,505,182,506,183,186,176,184,507,186,183,97,184 +,100,105,183,182,508,191,509,192,193,192,197,194,196,199,192,204,201,196,205,202,192,510,511,202,205,206,512,513,514,515,516,210,210,517,213,210,214,216,206,215,518,214,222,219,519,215,218,213,520,222 +,222,226,223,218,227,224,521,522,226,523,524,229,525,526,229,224,227,231,229,527,235,233,229,236,234,231,237,238,236,240,528,237,243,236,235,529,241,240,246,244,243,248,530,531,246,532,533,252,534,535 +,252,249,248,254,536,537,259,252,259,261,257,254,260,261,259,263,260,267,265,259,538,539,267,271,268,263,540,541,264,263,270,542,543,274,544,545,274,271,276,279,278,274,193,276,194,546,547,191,193,282 +,548,283,288,284,283,549,285,287,289,283,292,291,287,294,550,551,292,294,301,297,552,553,299,554,555,299,299,556,304,299,305,307,297,301,306,305,313,310,306,309,311,304,557,313,313,318,314,311,309,315 +,313,558,559,560,561,320,562,321,324,315,322,563,321,320,327,321,328,330,322,329,564,328,337,333,565,329,335,327,566,337,333,337,338,335,342,340,567,568,338,569,570,344,571,345,348,342,346,572,344,573 +,351,345,351,353,346,352,354,351,360,356,354,352,357,574,575,360,357,364,361,576,577,363,356,360,363,578,579,367,580,581,367,364,369,372,371,367,284,369,285,582,583,282,284,90,378,375,93,381,377,378 +,383,379,381,584,382,383,391,384,388,396,389,391,585,392,586,387,394,396,587,397,398,588,399,401,589,402,404,590,405,407,591,408,406,405,410,412,592,413,415,593,416,418,425,419,421,594,422,424,595,425 +,426,596,427,429,597,430,432,598,433,435,599,436,9,19,18,438,600,439] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":601,"indexStart":0,"indexCount":1368}] +,"instances":[]} +,{"name":"ObstacleHoleBottomLeft","id":"ObstacleHoleBottomLeft","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4857.6743,977.8547],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,0.0365,-7.5814,-107.9444,0.0365,10.4548,0,0.0365,10.4548,0,54.237,-5.7655,107.9444,51.9094,-7.6154,107.9444,54.237,-5.7655,-107.9444,54.237,10.4548,0,54.237,-5.7655,0,54.237,10.4548,-107.9444,54.237,-5.7655,0,51.9094,-7.6154,107.9444,54.237,-5.7655,107.9444,54.237,10.4548,-107.9444,0.0365,-7.5814,0,0.0365,-7.5814,0,-60.9513,-7.5814,0,0.0365,10.4548 +,0,-60.9513,10.4548,107.9444,0.0365,-7.5814,0,-60.9513,-7.5814,107.9444,-60.9513,-7.5814,40.5928,51.8968,-11.7045,45.8776,-60.9513,-7.5814,45.8776,51.9094,-7.6112,40.5928,60.9227,-11.7087,8.1531,60.937,-7.6154,12.2868,60.9227,-11.7087,12.2868,51.8968,-11.7045,8.1531,-60.9513,-7.5814,12.2868,-60.9513,-11.6747,40.5928,-60.9513,-11.6747,40.5928,51.8968,-11.7045,85.1471,51.8966,-11.705,90.4319,-60.9513,-7.5814 +,90.4319,51.9094,-7.6117,90.4319,60.937,-7.6154,58.5328,60.9227,-11.7087,85.1471,60.9227,-11.7087,85.1471,60.9227,-11.7087,58.5328,51.8966,-11.705,85.1471,51.8966,-11.705,52.7074,-60.9513,-7.5814,52.7074,51.9094,-7.6117,-56.1186,51.8951,-11.7026,-50.8337,7.774,-7.5814,-50.8337,51.9094,-7.6093,-56.1186,60.9227,-11.7087,-88.5583,60.937,-7.6154,-84.4246,60.9227,-11.7087,-84.4246,51.8951,-11.7026,-88.5583,7.774,-7.5814 +,-84.4246,7.7596,-11.6747,-56.1186,7.7596,-11.6747,-56.1186,51.8951,-11.7026,-10.5968,51.8951,-11.7034,-5.3119,7.774,-7.5814,-5.3119,51.9094,-7.6101,-10.5968,60.9227,-11.7087,-43.0364,60.937,-7.6154,-38.9027,60.9227,-11.7087,-43.0364,7.774,-7.5814,-38.9027,51.8951,-11.7034,-43.0364,51.9094,-7.6101,-10.5968,60.9227,-11.7087,-10.5968,51.8951,-11.7034,-107.9444,28.8494,-14.9548,107.9444,24.6396,-7.5814,107.9444,28.8494,-14.9548 +,-107.9444,40.7138,-7.6154,107.9444,36.4013,-14.9888,107.9444,40.7138,-7.6154,-107.9444,36.4013,-14.9888,107.9444,28.8494,-14.9548,107.9444,36.4013,-14.9888,-0.1387,-2.7184,-11.2287,3.0411,-60.9513,-13.5128,2.9948,-2.1541,-13.5128,-0.4798,9.3103,-13.5128,-107.9444,10.9168,-7.6154,-107.9444,9.4543,-13.5128,9.5505,-1.0256,-13.5128,11.4253,-60.9513,-7.6154,11.5666,-0.668,-7.6154,9.4118,-60.9513,-13.5128,9.5505,-1.0256,-13.5128 +,0.3558,10.7702,-7.6154,-0.4798,9.3103,-13.5128,-2.3251,3.2237,-13.5128,-3.2477,0.1804,-11.2287,-107.9444,3.1758,-13.5128,-107.9444,0.0365,-11.2287,-107.9444,9.4543,-13.5128,-0.1387,-2.7184,-11.2287,0,-60.9513,-7.6154,0,-60.9513,-11.2287,-107.9444,0.0365,-11.2287,-3.2477,0.1804,-7.6154,-3.2477,0.1804,-11.2287,-0.1387,-2.7184,-7.6154,-0.1387,-2.7184,-11.2287,0,0.0365,10.4548,-107.9444,54.237,10.4548 +,0,54.237,10.4548,107.9444,54.237,10.4548,107.9444,0.0365,10.4548,107.9444,-60.9513,10.4548,0,-60.9513,10.4548,58.5328,60.9227,-11.7087,52.7074,60.937,-7.6154,85.1471,51.8966,-11.705,58.5328,-60.9513,-11.6747,85.1471,-60.9513,-11.6747,85.1471,60.9227,-11.7087,90.4319,60.937,-7.6154,12.2868,60.9227,-11.7087,40.5928,51.8968,-11.7045,40.5928,60.9227,-11.7087,8.1531,51.9094,-7.6112,40.5928,60.9227,-11.7087 +,45.8776,60.937,-7.6154,-10.5968,51.8951,-11.7034,-38.9027,7.7596,-11.6747,-10.5968,7.7596,-11.6747,-38.9027,60.9227,-11.7087,-43.0364,60.937,-7.6154,-10.5968,60.9227,-11.7087,-5.3119,60.937,-7.6154,-84.4246,60.9227,-11.7087,-56.1186,51.8951,-11.7026,-56.1186,60.9227,-11.7087,-88.5583,51.9094,-7.6093,-56.1186,60.9227,-11.7087,-50.8337,60.937,-7.6154,-5.3119,60.9442,10.4487,-5.3119,51.9237,14.988,-5.3119,60.9513,14.9827 +,-50.8337,51.9237,14.9888,-88.5583,0.0436,14.9888,-88.5583,51.9237,14.9888,8.1531,51.9145,10.4553,8.1531,-60.9463,14.9869,8.1531,-60.9513,10.4553,8.1531,60.937,-7.6154,8.1531,51.9094,-7.6112,45.8776,60.937,-7.6154,45.8776,51.9145,10.4553,45.8776,60.9472,14.9827,45.8776,60.937,-7.6154,8.1531,60.9472,14.9827,90.4319,60.937,-7.6154,90.4319,51.9145,10.4548,90.4319,60.9472,14.9827,52.7074,60.937,-7.6154 +,52.7074,51.9145,10.4548,52.7074,51.9094,-7.6117,52.7074,60.9472,14.9827,52.7074,60.937,-7.6154,90.4319,60.9472,14.9827,52.7074,-60.9463,14.9864,52.7074,60.9472,14.9827,90.4319,-60.9463,14.9864,45.8776,-60.9463,14.9869,45.8776,60.9472,14.9827,8.1531,-60.9463,14.9869,8.1531,60.9472,14.9827,52.7074,-60.9463,14.9864,52.7074,-60.9513,10.4548,-5.3119,51.9237,14.988,-43.0364,60.9513,14.9827,-5.3119,60.9513,14.9827 +,-88.5583,60.9513,14.9827,-50.8337,60.9513,14.9827,-50.8337,60.9442,10.4487,-50.8337,51.9237,14.9888,-50.8337,60.9513,14.9827,-88.5583,60.9442,10.4487,-88.5583,51.9237,14.9888,-88.5583,51.9165,10.4548,-43.0364,60.9442,10.4487,-43.0364,51.9237,14.988,-43.0364,51.9165,10.4541,-50.8337,60.9442,10.4487,-88.5583,60.9513,14.9827,-88.5583,60.9442,10.4487,-5.3119,60.9442,10.4487,-43.0364,60.9513,14.9827,-43.0364,60.9442,10.4487 +,-5.3119,60.937,-7.6154,-43.0364,51.9094,-7.6101,-5.3119,51.9094,-7.6101,-5.3119,60.937,-7.6154,-50.8337,60.937,-7.6154,-88.5583,51.9094,-7.6093,-50.8337,51.9094,-7.6093,-50.8337,60.937,-7.6154,-43.0364,0.0365,10.4541,-5.3119,0.0436,14.988,-5.3119,0.0365,10.4541,-88.5583,0.0365,10.4548,-50.8337,0.0436,14.9888,-50.8337,0.0365,10.4548,-88.5583,0.0436,14.9888,-88.5583,0.0365,10.4548,-43.0364,0.0436,14.988 +,-43.0364,0.0365,10.4541,-5.3119,51.9165,10.4541,-5.3119,0.0436,14.988,-43.0364,0.0436,14.988,-43.0364,51.9237,14.988,-50.8337,51.9165,10.4548,-50.8337,0.0436,14.9888,-107.9444,0.0365,-7.5814,-107.9444,54.237,-5.7655,-107.9444,51.9094,-7.6154,0,0.0365,-7.5814,40.5928,-60.9513,-11.6747,85.1471,-60.9513,-11.6747,-56.1186,7.7596,-11.6747,-10.5968,7.7596,-11.6747,-107.9444,24.6396,-7.5814,-107.9444,36.4013,-14.9888 +,-107.9444,28.8494,-14.9548,0,-60.9513,-11.2287,0.3558,10.7702,-7.6154,9.4118,-60.9513,-13.5128,-0.4798,9.3103,-13.5128,-0.1387,-2.7184,-7.6154,-107.9444,0.0365,-7.6154,-107.9444,0.0365,10.4548,85.1471,51.8966,-11.705,85.1471,60.9227,-11.7087,40.5928,51.8968,-11.7045,8.1531,60.937,-7.6154,40.5928,60.9227,-11.7087,-10.5968,51.8951,-11.7034,-10.5968,60.9227,-11.7087,-56.1186,51.8951,-11.7026,-88.5583,60.937,-7.6154 +,-56.1186,60.9227,-11.7087,-50.8337,0.0436,14.9888,8.1531,60.9472,14.9827,45.8776,51.9094,-7.6112,45.8776,60.9472,14.9827,90.4319,51.9094,-7.6117,52.7074,60.9472,14.9827,90.4319,60.9472,14.9827,90.4319,-60.9463,14.9864,90.4319,-60.9513,10.4548,45.8776,-60.9513,10.4553,45.8776,-60.9463,14.9869,-88.5583,60.9513,14.9827,-43.0364,60.9513,14.9827,-50.8337,60.9513,14.9827,-5.3119,60.9513,14.9827,-43.0364,60.937,-7.6154 +,-88.5583,60.937,-7.6154,-43.0364,0.0436,14.988,-88.5583,0.0436,14.9888,-5.3119,0.0365,10.4541,-5.3119,0.0436,14.988,-50.8337,0.0365,10.4548] +,"normals":[0,-1,0,0,-1,0,0,-1,0,0,0.622,-0.783,0,0.329,-0.944,0,0.622,-0.783,0,1,0,0,1,0,0,1,0,0,0.622,-0.783,0,0.329,-0.944,0,1,0,0,1,0,0,-0.001,-1,0,0,-1,-1,0,0,-1,0,0 +,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0.324,0,-0.946,0.612,0,-0.791,0.612,0,-0.791,0,1,-0.003,0,1,-0.001,0,1,-0.003,-0.38,0,-0.925,-0.704,0,-0.711,-0.38,0,-0.925,0.324,0,-0.946,0.324,0,-0.946,0.324,0,-0.946,0.612,0,-0.791 +,0.612,0,-0.791,0,1,-0.001,0,1,-0.003,0,1,-0.003,0.324,0,-0.946,-0.301,0,-0.953,0.324,0,-0.946,-0.575,0,-0.818,-0.575,0,-0.818,0.324,-0.001,-0.946,0.612,0,-0.791,0.612,0,-0.791,0,1,-0.003,0,1,-0.001,0,1,-0.003,-0.38,-0.001,-0.925,-0.704,0,-0.711 +,-0.38,-0.001,-0.925,0.323,-0.001,-0.946,0.324,-0.001,-0.946,0.324,-0.001,-0.946,0.612,0,-0.791,0.612,0,-0.791,0,1,-0.003,0,1,-0.001,0,1,-0.003,-0.704,0,-0.711,-0.38,-0.001,-0.925,-0.704,0,-0.711,0.324,-0.001,-0.946,0.324,-0.001,-0.946,0,-0.868,-0.496,0,-0.868,-0.496,0,-0.868,-0.496 +,0,0.863,-0.505,0,0.863,-0.505,0,0.863,-0.505,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,-0.532,-0.26,-0.806,-0.316,-0.001,-0.949,-0.222,-0.083,-0.971,0.368,0.889,-0.272,0.001,0.971,-0.241,0.001,0.971,-0.241,0.871,0.373,-0.319,0.946,-0.002,-0.323,0.882,0.344,-0.322,0,0,-1,0,0,-1 +,0.381,0.883,-0.274,0,0,-1,-0.086,-0.22,-0.972,-0.226,-0.54,-0.811,0,-0.31,-0.951,0.001,-0.588,-0.809,0,0,-1,-1,-0.002,0,-1,-0.002,0,-1,-0.002,0,0.001,-1,0,-0.366,-0.931,0,-0.366,-0.931,0,-0.682,-0.731,0,-0.682,-0.731,0,0,0,1,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,-0.302,0,-0.953,-0.575,0,-0.818,0.324,0,-0.946,-0.301,0,-0.953,0.324,0,-0.946,0.324,0,-0.946,0.612,0,-0.791,-0.381,0,-0.925,0.324,0,-0.946,0.324,0,-0.946,-0.704,0,-0.711,0.324,0,-0.946 +,0.612,0,-0.791,0.324,-0.001,-0.946,-0.38,-0.001,-0.925,0.323,-0.001,-0.946,-0.381,-0.001,-0.925,-0.704,0,-0.711,0.324,-0.001,-0.946,0.612,0,-0.791,-0.381,-0.001,-0.925,0.324,-0.001,-0.946,0.324,-0.001,-0.946,-0.704,0,-0.711,0.324,-0.001,-0.946,0.612,-0.001,-0.791,1,0,0,1,0,0,1,0,0 +,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,1,-0.001,0,1,0,1,0,0,1,0,0,1,0,0,-1,0,0 +,-1,0,0,-1,0,0,0,1,0,0,1,-0.001,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,0,0,1,0,0.001,1,0,0.001,1 +,0,0.001,1,0,0.001,1,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,-0.001,0,1,-0.002,0,1,-0.001,0,1,-0.001,0,1,-0.002,0,1,-0.001 +,0,1,-0.001,-1,0,0,1,0,0,1,0,0,0,1,-0.001,-1,0,0,1,0,0,1,0,0,0,-1,0.002,0,-1,0.002,0,-1,0.002,0,-1,0.002,0,-1,0.002,0,-1,0.002,-1,0,0,-1,0,0,-1,0,0 +,-1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,-1,0,0,1,0,0,0.329,-0.944,-1,0,0,0.324,0,-0.946,0.324,0,-0.946,0.323,-0.001,-0.946,0.323,-0.001,-0.946,0,-0.868,-0.496,0,0.863,-0.505 +,0,-0.004,-1,-0.601,-0.001,-0.8,0.381,0.883,-0.274,0.946,-0.002,-0.323,0.368,0.889,-0.272,-1,-0.002,0,0.001,-1,0,0,0,1,0.324,0,-0.946,0.324,0,-0.946,0.324,0,-0.946,-0.704,0,-0.711,0.324,0,-0.946,0.324,-0.001,-0.946,0.324,-0.001,-0.946,0.324,-0.001,-0.946,-0.704,0,-0.711 +,0.324,-0.001,-0.946,0,0,1,-1,0,0,1,0,0,0,1,0,1,0,0,-1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,-1,0,0,-1,0,0,0,1,-0.002,0,1,-0.002,-1,0,0 +,-1,0,0,0,-1,0.002,0,-1,0.002,1,0,0,0,0,1,1,0,0] +,"uvs":[0.11,0.874,0.002,0.856,0.11,0.856,0.11,0.118,0.218,0.115,0.218,0.118,0.136,0.814,0.244,0.798,0.244,0.814,0.002,0.118,0.11,0.115,0.352,0.798,0.352,0.814,0.002,0.063,0.11,0.063,0.914,0.843,0.896,0.904,0.896,0.843,0.218,0.063,0.11,0.002,0.218,0.002,0.912,0.285,0.918,0.172,0.918,0.285,0.034,0.877 +,0.002,0.881,0.006,0.877,0.781,0.548,0.775,0.435,0.781,0.435,0.81,0.435,0.81,0.548,0.914,0.807,0.92,0.694,0.92,0.807,0.081,0.881,0.049,0.877,0.075,0.877,0.809,0.432,0.783,0.423,0.809,0.423,0.775,0.31,0.775,0.423,0.955,0.613,0.962,0.569,0.962,0.613,0.533,0.863,0.501,0.867,0.505,0.863,0.875,0.536 +,0.869,0.492,0.875,0.492,0.904,0.492,0.904,0.536,0.956,0.354,0.963,0.31,0.963,0.354,0.429,0.883,0.397,0.887,0.401,0.883,0.869,0.435,0.875,0.479,0.869,0.479,0.904,0.488,0.904,0.479,0.136,0.857,0.352,0.848,0.352,0.857,0.136,0.845,0.352,0.836,0.352,0.845,0.136,0.868,0.352,0.86,0.352,0.868,0.483,0.633 +,0.494,0.576,0.486,0.635,0.921,0.559,0.813,0.565,0.813,0.559,0.926,0.755,0.93,0.694,0.933,0.755,0.501,0.577,0.493,0.636,0.93,0.77,0.482,0.646,0.481,0.64,0.479,0.636,0.374,0.64,0.374,0.637,0.374,0.647,0.965,0.753,0.961,0.694,0.965,0.694,0.939,0.569,0.943,0.674,0.939,0.674,0.943,0.678,0.939,0.678 +,0.276,0.11,0.221,0.218,0.221,0.11,0.221,0.002,0.276,0.002,0.337,0.002,0.337,0.11,0.783,0.432,0.775,0.432,0.809,0.423,0.783,0.31,0.809,0.31,0.914,0.816,0.92,0.816,0.781,0.557,0.81,0.548,0.81,0.557,0.775,0.548,0.912,0.295,0.918,0.295,0.904,0.479,0.875,0.435,0.904,0.435,0.875,0.488,0.869,0.488 +,0.956,0.363,0.963,0.363,0.875,0.545,0.904,0.536,0.904,0.545,0.869,0.536,0.955,0.622,0.962,0.622,0.888,0.904,0.893,0.895,0.893,0.904,0.612,0.311,0.56,0.273,0.612,0.273,0.115,0.76,0.002,0.765,0.002,0.76,0.124,0.742,0.115,0.742,0.821,0.295,0.839,0.286,0.844,0.295,0.039,0.881,0.002,0.904,0.819,0.816 +,0.837,0.807,0.842,0.816,0.479,0.736,0.47,0.754,0.47,0.736,0.043,0.904,0.043,0.881,0.694,0.557,0.732,0.435,0.732,0.557,0.842,0.694,0.844,0.172,0.664,0.694,0.701,0.572,0.701,0.694,0.357,0.759,0.357,0.754,0.054,0.806,0.063,0.768,0.063,0.806,0.621,0.273,0.621,0.311,0.49,0.83,0.494,0.821,0.494,0.83 +,0.526,0.615,0.521,0.606,0.526,0.606,0.892,0.755,0.888,0.746,0.892,0.746,0.538,0.885,0.501,0.889,0.501,0.885,0.434,0.905,0.397,0.909,0.397,0.905,0.434,0.887,0.91,0.746,0.87,0.895,0.87,0.904,0.538,0.867,0.544,0.606,0.472,0.821,0.472,0.83,0.733,0.974,0.771,0.969,0.771,0.974,0.93,0.923,0.968,0.919 +,0.968,0.923,0.521,0.554,0.526,0.554,0.888,0.694,0.892,0.694,0.888,0.895,0.893,0.843,0.002,0.768,0.054,0.768,0.49,0.821,0.494,0.769,0.002,0.874,0.136,0.798,0.002,0.115,0.914,0.904,0.912,0.172,0.914,0.694,0.955,0.569,0.956,0.31,0.136,0.848,0.136,0.836,0.136,0.86,0.491,0.576,0.921,0.565,0.924,0.695 +,0.924,0.769,0.961,0.753,0.943,0.569,0.276,0.218,0.809,0.423,0.914,0.816,0.81,0.548,0.775,0.557,0.912,0.295,0.904,0.479,0.956,0.363,0.904,0.536,0.869,0.545,0.955,0.622,0.56,0.311,0.124,0.765,0.821,0.286,0.039,0.904,0.819,0.807,0.479,0.759,0.08,0.904,0.694,0.435,0.837,0.694,0.839,0.172,0.664,0.572 +,0.521,0.615,0.888,0.755,0.538,0.889,0.434,0.909,0.91,0.755,0.544,0.615,0.733,0.969,0.93,0.919,0.888,0.843,0.002,0.806,0.49,0.769] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,3,8,11,12,10,13,14,15,16,17,18,19,20,10,18,4,21,22,23,24,25,26,27,28,29,27,30,31,32,33,34,35,36,37,38,39,40,41,39 +,42,43,44,45,46,47,48,49,50,51,49,52,53,54,55,56,57,58,59,60,61,62,63,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,76,83,84,85,80,82,76 +,86,87,88,89,90,74,87,88,87,91,89,92,93,94,95,96,97,97,98,99,100,101,102,100,103,104,100,105,106,42,107,108,109,110,111,112,34,113,114,115,116,114,117,27,118,23,119,120,121,122 +,62,123,124,125,56,126,127,128,129,127,130,49,131,45,132,133,134,135,136,137,138,139,140,141,142,139,143,144,145,146,147,148,25,149,150,151,152,153,154,35,155,156,157,158,159,150,160,151,145,161 +,146,162,163,164,153,165,166,167,168,169,136,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,186,58,188,178,180,189,133,190,191,183,47,192,175,177,193,172,194,195,196,197,198 +,199,200,177,201,202,180,203,204,205,206,134,167,207,208,209,210,173,0,211,1,3,10,4,6,212,7,9,213,10,8,7,11,10,213,13,15,214,16,18,14,19,10,14,18,21,215,22,24,147,25 +,27,117,28,27,29,30,32,216,33,35,156,36,38,107,39,41,110,39,43,217,44,46,191,47,49,130,50,49,51,52,54,218,55,57,187,58,60,121,61,63,123,61,65,219,66,68,220,69,71,221 +,72,74,222,75,77,223,78,80,224,81,76,75,83,85,225,80,76,84,86,88,87,89,74,76,87,87,86,91,92,226,93,95,227,96,97,96,98,100,228,101,100,102,103,100,104,105,42,39,107,229 +,39,110,230,32,34,114,27,231,114,232,117,233,21,23,234,61,121,62,61,123,235,54,56,127,49,236,127,237,130,238,43,45,133,205,134,136,239,137,139,240,140,142,240,139,144,241,145,147,242,148 +,149,243,150,152,244,153,35,245,155,157,246,158,150,247,160,145,248,161,162,249,163,153,244,165,167,208,168,136,138,170,172,209,173,175,250,176,178,251,179,181,252,182,184,253,185,187,184,186,188,254 +,178,189,205,133,191,181,183,192,255,175,193,209,172,195,256,196,198,257,199,177,176,201,180,179,203,205,258,206,167,259,207,209,260,210] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":261,"indexStart":0,"indexCount":534}] +,"instances":[]} +,{"name":"ObstacleHoleBottomRight","id":"ObstacleHoleBottomRight","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4857.6816,700.3146],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,-60.9442,10.8303,0,0.0436,-9.1697,0,-60.9442,-9.1697,0,51.6769,-9.1698,107.9444,0.0436,-9.1697,107.9444,51.6768,-9.1698,-107.9445,-60.9442,-9.1697,0,0.0436,-9.1697,-107.9444,0.0437,-9.1697,107.9444,0.0436,10.8303,0,0.0436,-9.1697,0,0.0436,10.8303,-107.9444,54.2441,10.8302,0,54.2441,-6.6025,0,54.2441,10.8302,-107.9444,51.6769,-9.1698,107.9445,54.244,-6.6025 +,107.9445,54.244,10.8302,-22.7983,33.2442,-13.1028,107.9444,29.8627,-9.2038,107.9444,33.2441,-13.1028,-22.7983,41.3571,-9.1698,107.9444,38.0783,-13.0688,107.9444,41.357,-9.1698,-22.7983,33.2442,-13.1028,107.9444,38.0783,-13.0688,-22.7983,38.0783,-13.0688,-64.5352,-20.6695,-9.1697,-103.817,-24.2052,-14.2081,-62.8079,-24.2052,-14.2081,-76.5934,51.6769,-9.1697,-74.6153,-3.8551,-15.878,-74.6153,52.767,-15.878,-51.8318,51.4903,-14.1817 +,-55.1009,-6.8523,-9.153,-51.8318,-8.1366,-14.1941,-62.8079,-24.2052,-14.2081,-103.817,-45.5729,-14.2081,-44.1664,-45.5729,-14.2081,-9.4759,-60.9442,-15.0672,-2.9948,-2.147,-15.0673,-9.5505,-1.0184,-15.0673,107.9444,10.9239,-9.1698,0.062,10.0474,-12.1185,107.9444,10.1926,-12.1185,-2.9202,-60.9442,-15.0672,0.1387,-2.7112,-12.7831,-2.9948,-2.147,-15.0673,0,-60.9442,-12.7831,0.1387,-2.7112,-9.1698,0.1387,-2.7112,-12.7831 +,0.062,10.0474,-12.1185,-9.5505,-1.0184,-15.0673,0.4798,9.3175,-15.0673,0.4798,9.3175,-15.0673,3.2477,0.1876,-12.7831,107.9444,3.1828,-15.0673,2.3251,3.2309,-15.0673,2.3251,3.2309,-15.0673,107.9444,9.4613,-15.0673,-10.4186,-60.9442,-12.7831,-10.5585,-0.8397,-12.1185,3.2477,0.1876,-9.1698,107.9444,0.0436,-12.7831,3.2477,0.1876,-12.7831,0.1387,-2.7112,-12.7831,-0.3558,10.7773,-9.1698,0.062,10.0474,-12.1185 +,0.4798,9.3175,-15.0673,107.9444,9.4613,-15.0673,-41.1949,-48.6538,-9.1697,-103.817,-45.5729,-14.2081,-107.9445,-48.6538,-9.1697,-51.8318,-8.1366,-14.1941,-64.5352,-20.6695,-9.1697,-62.8079,-24.2052,-14.2081,-44.1664,-45.5729,-14.2081,-18.901,-20.4528,-9.1604,-23.0665,-17.7189,-14.2003,-23.0665,50.0981,-14.1826,-18.901,60.9442,-9.1357,-23.0665,60.9442,-14.1796,-23.0665,60.9442,-14.1796,-55.1009,60.9442,-9.1357,-51.8318,60.9442,-14.1796 +,-103.817,-24.2052,-14.2081,-107.9445,-48.6538,-9.1697,-103.817,-45.5729,-14.2081,53.9397,24.3781,-12.0484,51.3119,15.5259,-9.153,53.9397,17.1369,-12.0628,87.5118,15.5259,-9.1604,83.9876,24.378,-12.0484,83.9876,17.1369,-12.069,53.9397,17.1369,-12.0628,83.9876,24.378,-12.0484,53.9397,24.3781,-12.0484,83.9876,24.378,-12.0484,51.3119,25.989,-9.1357,53.9397,24.3781,-12.0484,83.9876,17.1369,-12.069,51.3119,15.5259,-9.153 +,87.5118,15.5259,-9.1604,77.3982,18.7973,-14.0188,76.4181,18.3913,-13.1195,77.3982,18.1964,-13.1195,77.3982,19.6966,-14.6197,77.3982,20.7575,-14.8307,76.9922,19.7774,-14.6197,76.3374,18.1964,-12.0587,77.3982,17.9854,-12.0587,77.3982,18.7973,-14.0188,76.6481,18.9465,-14.0188,75.5873,18.9465,-13.1195,75.438,18.7973,-12.0587,76.6481,20.0073,-14.6197,76.0122,19.3714,-14.0188,76.6481,18.9465,-14.0188,76.4181,20.3515,-14.6197 +,75.5873,20.0073,-14.0188,75.5873,18.9465,-13.1195,75.5873,20.0073,-14.0188,75.0321,19.7774,-13.1195,75.438,18.7973,-12.0587,74.8371,19.6966,-12.0587,75.438,20.7575,-14.0188,74.8371,20.7575,-13.1195,76.3374,20.7575,-14.6197,74.6261,20.7575,-12.0587,75.438,20.7575,-14.0188,76.4181,21.1634,-14.6197,75.0321,21.7375,-13.1195,74.8371,21.8183,-12.0587,76.3374,20.7575,-14.6197,75.5873,21.5076,-14.0188,75.438,22.7176,-12.0587 +,75.5873,21.5076,-14.0188,76.6481,21.5076,-14.6197,76.0122,22.1435,-14.0188,76.0122,22.1435,-14.0188,75.5873,22.5684,-13.1195,75.5873,22.5684,-13.1195,76.6481,22.5684,-14.0188,76.4181,23.1236,-13.1195,76.9922,21.7375,-14.6197,75.5873,22.5684,-13.1195,76.3374,23.3185,-12.0587,75.438,22.7176,-12.0587,76.6481,22.5684,-14.0188,77.3982,22.7176,-14.0188,77.3982,23.3185,-13.1195,77.3982,21.8183,-14.6197,77.3982,23.5295,-12.0587 +,77.3982,22.7176,-14.0188,76.6481,22.5684,-14.0188,78.459,23.3185,-12.0587,77.3982,22.7176,-14.0188,77.8042,21.7375,-14.6197,78.1483,22.5684,-14.0188,78.3783,23.1236,-13.1195,79.2092,22.5684,-13.1195,79.3584,22.7176,-12.0587,78.1483,21.5076,-14.6197,78.7842,22.1435,-14.0188,78.1483,22.5684,-14.0188,79.2092,22.5684,-13.1195,79.2092,21.5076,-14.0188,79.7643,21.7375,-13.1195,78.3783,21.1634,-14.6197,79.3584,22.7176,-12.0587 +,79.9593,21.8183,-12.0587,79.2092,21.5076,-14.0188,79.3584,20.7575,-14.0188,79.9593,20.7575,-13.1195,78.459,20.7575,-14.6197,80.1703,20.7575,-12.0587,79.2092,21.5076,-14.0188,79.3584,20.7575,-14.0188,79.7643,19.7774,-13.1195,79.9593,19.6966,-12.0587,79.2092,20.0073,-14.0188,79.3584,20.7575,-14.0188,79.2092,20.0073,-14.0188,78.3783,20.3515,-14.6197,78.1483,20.0073,-14.6197,78.7842,19.3714,-14.0188,79.2092,20.0073,-14.0188 +,79.2092,18.9465,-13.1195,79.3584,18.7973,-12.0587,79.2092,18.9465,-13.1195,78.1483,18.9465,-14.0188,78.3783,18.3913,-13.1195,77.8042,19.7774,-14.6197,79.2092,18.9465,-13.1195,78.459,18.1964,-12.0587,79.3584,18.7973,-12.0587,78.1483,18.9465,-14.0188,77.3982,18.7973,-14.0188,78.1483,18.9465,-14.0188,68.5006,18.7973,-14.0188,67.5206,18.3913,-13.1195,68.5006,18.1964,-13.1195,68.5006,19.6966,-14.6197,68.5006,20.7575,-14.8307 +,68.0947,19.7774,-14.6197,67.4398,18.1964,-12.0587,68.5006,17.9854,-12.0587,67.7505,18.9465,-14.0188,68.5006,18.7973,-14.0188,66.5405,18.7973,-12.0587,67.7505,20.0073,-14.6197,67.1146,19.3714,-14.0188,67.1146,19.3714,-14.0188,66.6897,18.9465,-13.1195,66.6897,20.0073,-14.0188,66.6897,18.9465,-13.1195,66.6897,20.0073,-14.0188,66.1345,19.7774,-13.1195,67.5206,20.3515,-14.6197,66.6897,18.9465,-13.1195,65.9396,19.6966,-12.0587 +,66.5405,18.7973,-12.0587,66.5405,20.7575,-14.0188,65.9396,20.7575,-13.1195,67.4398,20.7575,-14.6197,65.7286,20.7575,-12.0587,66.5405,20.7575,-14.0188,67.5206,21.1634,-14.6197,65.9396,21.8183,-12.0587,67.5206,21.1634,-14.6197,66.6897,21.5076,-14.0188,66.1345,21.7375,-13.1195,66.6897,22.5684,-13.1195,66.5405,22.7176,-12.0587,67.1146,22.1435,-14.0188,66.6897,21.5076,-14.0188,67.7505,21.5076,-14.6197,67.1146,22.1435,-14.0188 +,67.5206,23.1236,-13.1195,66.6897,22.5684,-13.1195,68.0947,21.7375,-14.6197,66.5405,22.7176,-12.0587,67.4398,23.3185,-12.0587,67.7505,22.5684,-14.0188,68.5006,22.7176,-14.0188,68.5006,23.3185,-13.1195,68.5006,21.8183,-14.6197,68.5006,23.5295,-12.0587,68.5006,22.7176,-14.0188,69.4807,23.1236,-13.1195,69.5615,23.3185,-12.0587,68.5006,22.7176,-14.0188,68.9066,21.7375,-14.6197,69.2508,22.5684,-14.0188,69.2508,22.5684,-14.0188 +,70.3116,22.5684,-13.1195,70.4608,22.7176,-12.0587,69.2508,21.5076,-14.6197,69.8867,22.1435,-14.0188,69.8867,22.1435,-14.0188,69.8867,22.1435,-14.0188,70.8668,21.7375,-13.1195,70.3116,22.5684,-13.1195,69.4807,21.1634,-14.6197,70.4608,22.7176,-12.0587,71.0617,21.8183,-12.0587,70.3116,21.5076,-14.0188,70.3116,21.5076,-14.0188,71.0617,20.7575,-13.1195,69.5615,20.7575,-14.6197,71.2727,20.7575,-12.0587,70.4608,20.7575,-14.0188 +,70.8668,19.7774,-13.1195,71.0617,19.6966,-12.0587,70.3116,20.0073,-14.0188,70.4608,20.7575,-14.0188,69.4807,20.3515,-14.6197,69.2508,20.0073,-14.6197,69.8867,19.3714,-14.0188,69.8867,19.3714,-14.0188,70.3116,18.9465,-13.1195,70.4608,18.7973,-12.0587,69.8867,19.3714,-14.0188,69.4807,18.3913,-13.1195,70.3116,18.9465,-13.1195,68.9066,19.7774,-14.6197,70.3116,18.9465,-13.1195,69.5615,18.1964,-12.0587,70.4608,18.7973,-12.0587 +,69.2508,18.9465,-14.0188,68.5006,18.7973,-14.0188,59.8727,18.1964,-13.1195,59.1226,18.9465,-14.0188,58.8926,18.3914,-13.1195,59.8727,19.6966,-14.6197,59.8727,20.7575,-14.8307,59.4667,19.7774,-14.6197,58.8119,18.1964,-12.0587,59.8727,17.9854,-12.0587,59.8727,18.7973,-14.0188,59.1226,18.9465,-14.0188,57.9126,18.7973,-12.0587,58.4867,19.3714,-14.0188,59.1226,18.9465,-14.0188,58.0618,18.9465,-13.1195,59.1226,20.0073,-14.6197 +,58.0618,20.0073,-14.0188,58.0618,18.9465,-13.1195,58.0618,20.0073,-14.0188,57.5066,19.7774,-13.1195,58.8926,20.3515,-14.6197,57.9126,18.7973,-12.0587,57.3116,19.6966,-12.0587,58.0618,20.0073,-14.0188,57.3116,20.7575,-13.1195,58.8119,20.7575,-14.6197,57.1006,20.7575,-12.0587,57.9126,20.7575,-14.0188,58.8926,21.1634,-14.6197,57.3116,21.8183,-12.0587,58.8119,20.7575,-14.6197,58.0618,21.5076,-14.0188,57.9126,20.7575,-14.0188 +,57.5066,21.7375,-13.1195,58.0618,22.5684,-13.1195,57.9126,22.7176,-12.0587,58.0618,21.5076,-14.0188,59.1226,21.5076,-14.6197,58.4867,22.1435,-14.0188,58.4867,22.1435,-14.0188,58.4867,22.1435,-14.0188,58.8926,23.1236,-13.1195,58.0618,22.5684,-13.1195,59.4667,21.7375,-14.6197,58.0618,22.5684,-13.1195,58.8119,23.3185,-12.0587,57.9126,22.7176,-12.0587,59.1226,22.5684,-14.0188,59.8727,22.7176,-14.0188,59.8727,23.3185,-13.1195 +,59.8727,21.8183,-14.6197,59.8727,23.5295,-12.0587,59.8727,22.7176,-14.0188,60.8528,23.1236,-13.1195,60.9335,23.3185,-12.0587,60.6228,22.5684,-14.0188,59.8727,22.7176,-14.0188,60.2787,21.7375,-14.6197,61.6837,22.5684,-13.1195,61.8329,22.7176,-12.0587,61.2587,22.1435,-14.0188,60.6228,22.5684,-14.0188,60.6228,21.5076,-14.6197,61.6837,22.5684,-13.1195,61.6837,21.5076,-14.0188,62.2388,21.7375,-13.1195,60.8528,21.1634,-14.6197 +,61.6837,22.5684,-13.1195,62.4338,21.8183,-12.0587,61.8329,22.7176,-12.0587,61.6837,21.5076,-14.0188,61.8329,20.7575,-14.0188,62.4338,20.7575,-13.1195,60.9335,20.7575,-14.6197,62.6448,20.7575,-12.0587,61.8329,20.7575,-14.0188,61.6837,21.5076,-14.0188,62.4338,19.6966,-12.0587,61.8329,20.7575,-14.0188,60.8528,20.3515,-14.6197,61.6837,20.0073,-14.0188,62.2388,19.7774,-13.1195,60.6228,20.0073,-14.6197,61.2587,19.3714,-14.0188 +,61.2587,19.3714,-14.0188,61.6837,18.9465,-13.1195,61.8329,18.7973,-12.0587,61.2587,19.3714,-14.0188,60.8528,18.3914,-13.1195,61.6837,18.9465,-13.1195,60.2787,19.7774,-14.6197,61.6837,18.9465,-13.1195,60.9335,18.1964,-12.0587,61.8329,18.7973,-12.0587,60.6228,18.9465,-14.0188,59.8727,18.7973,-14.0188,10.1476,24.3781,-12.0484,7.5198,15.5259,-9.153,10.1476,17.1369,-12.0628,43.7197,15.5259,-9.1604,40.1955,24.3781,-12.0484 +,40.1955,17.1369,-12.069,10.1476,17.1369,-12.0628,40.1955,24.3781,-12.0484,10.1476,24.3781,-12.0484,40.1955,24.3781,-12.0484,7.5198,25.9891,-9.1357,10.1476,24.3781,-12.0484,40.1955,17.1369,-12.069,7.5198,15.5259,-9.153,43.7197,15.5259,-9.1604,33.6061,18.1964,-13.1195,32.856,18.9465,-14.0188,32.6261,18.3914,-13.1195,33.6061,19.6966,-14.6197,33.6061,20.7575,-14.8307,33.2002,19.7774,-14.6197,32.5453,18.1964,-12.0587 +,33.6061,17.9854,-12.0587,33.6061,18.7973,-14.0188,32.856,18.9465,-14.0188,31.7952,18.9465,-13.1195,31.646,18.7973,-12.0587,32.856,18.9465,-14.0188,32.856,20.0074,-14.6197,32.2201,19.3714,-14.0188,31.7952,20.0074,-14.0188,31.7952,18.9465,-13.1195,31.7952,20.0074,-14.0188,31.24,19.7774,-13.1195,32.6261,20.3515,-14.6197,31.646,18.7973,-12.0587,31.0451,19.6966,-12.0587,31.646,20.7575,-14.0188,31.0451,20.7575,-13.1195 +,32.5453,20.7575,-14.6197,30.8341,20.7575,-12.0587,31.646,20.7575,-14.0188,32.6261,21.1634,-14.6197,31.24,21.7376,-13.1195,31.0451,21.8183,-12.0587,32.5453,20.7575,-14.6197,31.7952,21.5076,-14.0188,31.646,22.7176,-12.0587,31.7952,21.5076,-14.0188,32.856,21.5076,-14.6197,32.2201,22.1435,-14.0188,32.2201,22.1435,-14.0188,31.7952,22.5684,-13.1195,31.7952,22.5684,-13.1195,32.856,22.5684,-14.0188,32.6261,23.1236,-13.1195 +,33.2002,21.7376,-14.6197,31.7952,22.5684,-13.1195,32.5453,23.3185,-12.0587,31.646,22.7176,-12.0587,32.856,22.5684,-14.0188,33.6061,22.7176,-14.0188,33.6061,23.3185,-13.1195,33.6061,21.8183,-14.6197,33.6061,23.5296,-12.0587,33.6061,22.7176,-14.0188,32.856,22.5684,-14.0188,34.5862,23.1236,-13.1195,34.667,23.3185,-12.0587,34.3563,22.5684,-14.0188,33.6061,22.7176,-14.0188,34.3563,22.5684,-14.0188,34.0121,21.7376,-14.6197 +,35.4171,22.5684,-13.1195,35.5663,22.7176,-12.0587,34.3563,21.5076,-14.6197,34.9922,22.1435,-14.0188,34.3563,22.5684,-14.0188,34.9922,22.1435,-14.0188,35.9723,21.7376,-13.1195,35.4171,22.5684,-13.1195,34.5862,21.1634,-14.6197,35.5663,22.7176,-12.0587,36.1672,21.8183,-12.0587,35.4171,21.5076,-14.0188,35.5663,20.7575,-14.0188,36.1672,20.7575,-13.1195,34.667,20.7575,-14.6197,36.3782,20.7575,-12.0587,35.5663,20.7575,-14.0188 +,35.9723,19.7774,-13.1195,36.1672,19.6966,-12.0587,35.4171,20.0074,-14.0188,35.5663,20.7575,-14.0188,34.5862,20.3515,-14.6197,34.3563,20.0074,-14.6197,34.9922,19.3714,-14.0188,35.4171,20.0074,-14.0188,35.4171,18.9465,-13.1195,35.5663,18.7973,-12.0587,35.4171,18.9465,-13.1195,34.3563,18.9465,-14.0188,34.5862,18.3914,-13.1195,34.0121,19.7774,-14.6197,35.4171,18.9465,-13.1195,34.667,18.1964,-12.0587,35.5663,18.7973,-12.0587 +,34.3563,18.9465,-14.0188,34.3563,18.9465,-14.0188,33.6061,18.7973,-14.0188,24.7086,18.7973,-14.0188,23.7285,18.3914,-13.1195,24.7086,18.1964,-13.1195,24.7086,19.6967,-14.6197,24.7086,20.7575,-14.8307,24.3026,19.7774,-14.6197,23.6477,18.1964,-12.0587,24.7086,17.9854,-12.0587,23.9585,18.9465,-14.0188,24.7086,18.7973,-14.0188,22.7484,18.7973,-12.0587,23.3225,19.3714,-14.0188,23.3225,19.3714,-14.0188,22.8976,18.9465,-13.1195 +,23.9585,20.0074,-14.6197,22.8976,20.0074,-14.0188,22.8976,18.9465,-13.1195,22.8976,20.0074,-14.0188,22.3424,19.7774,-13.1195,23.7285,20.3515,-14.6197,22.7484,18.7973,-12.0587,22.1475,19.6967,-12.0587,22.8976,20.0074,-14.0188,22.1475,20.7575,-13.1195,23.6477,20.7575,-14.6197,21.9365,20.7575,-12.0587,22.7484,20.7575,-14.0188,23.7285,21.1634,-14.6197,22.3425,21.7376,-13.1195,22.1475,21.8183,-12.0587,22.7484,20.7575,-14.0188 +,23.7285,21.1634,-14.6197,22.8976,21.5076,-14.0188,22.7484,20.7575,-14.0188,22.7484,22.7176,-12.0587,23.3225,22.1435,-14.0188,22.8976,21.5076,-14.0188,22.8976,22.5684,-13.1195,23.9585,21.5076,-14.6197,23.3225,22.1435,-14.0188,23.7285,23.1236,-13.1195,22.8976,22.5684,-13.1195,24.3026,21.7376,-14.6197,22.8976,22.5684,-13.1195,23.6477,23.3185,-12.0587,22.7484,22.7176,-12.0587,23.9585,22.5684,-14.0188,24.7086,22.7176,-14.0188 +,24.7086,23.3185,-13.1195,24.7086,21.8183,-14.6197,24.7086,23.5296,-12.0587,24.7086,22.7176,-14.0188,25.7694,23.3185,-12.0587,25.4587,22.5684,-14.0188,24.7086,22.7176,-14.0188,25.4587,22.5684,-14.0188,25.6887,23.1236,-13.1195,25.1145,21.7376,-14.6197,26.6687,22.7176,-12.0587,25.4587,21.5076,-14.6197,26.0946,22.1435,-14.0188,25.4587,22.5684,-14.0188,26.5195,22.5684,-13.1195,26.0946,22.1435,-14.0188,27.0747,21.7376,-13.1195 +,26.5195,22.5684,-13.1195,25.6887,21.1634,-14.6197,26.5195,22.5684,-13.1195,27.2696,21.8183,-12.0587,26.6687,22.7176,-12.0587,26.5195,21.5076,-14.0188,26.5195,21.5076,-14.0188,27.2696,20.7575,-13.1195,25.7694,20.7575,-14.6197,27.4806,20.7575,-12.0587,26.6687,20.7575,-14.0188,27.2696,19.6966,-12.0587,26.5195,20.0074,-14.0188,26.5195,20.0074,-14.0188,27.0747,19.7774,-13.1195,25.6886,20.3515,-14.6197,26.0946,19.3714,-14.0188 +,26.0946,19.3714,-14.0188,26.5195,18.9465,-13.1195,25.4587,20.0074,-14.6197,26.6687,18.7973,-12.0587,26.5195,18.9465,-13.1195,25.4587,18.9465,-14.0188,25.6886,18.3914,-13.1195,25.1145,19.7774,-14.6197,26.6687,18.7973,-12.0587,25.7694,18.1964,-12.0587,25.4587,18.9465,-14.0188,25.4587,18.9465,-14.0188,24.7086,18.7973,-14.0188,16.0806,18.1964,-13.1195,15.3305,18.9465,-14.0188,15.1006,18.3914,-13.1195,16.0806,19.6967,-14.6197 +,16.0806,20.7575,-14.8307,15.6747,19.7774,-14.6197,16.0806,17.9854,-12.0587,15.0198,18.1964,-12.0587,15.3305,18.9465,-14.0188,16.0806,18.7973,-14.0188,14.1205,18.7973,-12.0587,14.6946,19.3714,-14.0188,15.3305,18.9465,-14.0188,14.6946,19.3714,-14.0188,14.2697,18.9465,-13.1195,15.3305,20.0074,-14.6197,15.1006,20.3515,-14.6197,14.2697,20.0074,-14.0188,14.2697,18.9465,-13.1195,14.2697,20.0074,-14.0188,13.7145,19.7774,-13.1195 +,14.1205,18.7973,-12.0587,13.5196,19.6967,-12.0587,14.1205,20.7575,-14.0188,13.5196,20.7575,-13.1195,15.0198,20.7575,-14.6197,13.3086,20.7575,-12.0587,14.1205,20.7575,-14.0188,15.1006,21.1634,-14.6197,13.5196,21.8183,-12.0587,15.0198,20.7575,-14.6197,14.2697,21.5076,-14.0188,13.7145,21.7376,-13.1195,14.1205,22.7176,-12.0587,14.6946,22.1435,-14.0188,14.2697,21.5076,-14.0188,14.6946,22.1435,-14.0188,14.2697,22.5684,-13.1195 +,15.3305,21.5076,-14.6197,14.2697,22.5684,-13.1195,15.3305,22.5684,-14.0188,15.1006,23.1236,-13.1195,15.6747,21.7376,-14.6197,14.2697,22.5684,-13.1195,15.0198,23.3186,-12.0587,14.1205,22.7176,-12.0587,15.3305,22.5684,-14.0188,16.0806,22.7176,-14.0188,16.0806,23.3186,-13.1195,16.0806,21.8183,-14.6197,16.0806,23.5296,-12.0587,15.3305,22.5684,-14.0188,16.0806,22.7176,-14.0188,17.0607,23.1236,-13.1195,17.1415,23.3185,-12.0587 +,16.8308,22.5684,-14.0188,16.0806,22.7176,-14.0188,16.4866,21.7376,-14.6197,18.0408,22.7176,-12.0587,17.4667,22.1435,-14.0188,16.8308,22.5684,-14.0188,17.8916,22.5684,-13.1195,16.8308,21.5076,-14.6197,17.8916,22.5684,-13.1195,17.8916,21.5076,-14.0188,18.4468,21.7376,-13.1195,17.0607,21.1634,-14.6197,17.8916,22.5684,-13.1195,18.6417,21.8183,-12.0587,18.0408,22.7176,-12.0587,17.8916,21.5076,-14.0188,18.0408,20.7575,-14.0188 +,18.6417,20.7575,-13.1195,17.1415,20.7575,-14.6197,18.8527,20.7575,-12.0587,17.8916,21.5076,-14.0188,18.0408,20.7575,-14.0188,18.6417,19.6967,-12.0587,18.0408,20.7575,-14.0188,17.0607,20.3515,-14.6197,17.8916,20.0074,-14.0188,18.4467,19.7774,-13.1195,17.4667,19.3714,-14.0188,17.8916,20.0074,-14.0188,17.8916,18.9465,-13.1195,16.8307,20.0074,-14.6197,18.0408,18.7973,-12.0587,17.4667,19.3714,-14.0188,17.0607,18.3914,-13.1195 +,17.8916,18.9465,-13.1195,16.4866,19.7774,-14.6197,17.8916,18.9465,-13.1195,17.1415,18.1964,-12.0587,18.0408,18.7973,-12.0587,16.8307,18.9465,-14.0188,16.0806,18.7973,-14.0188,-91.3327,51.6769,-9.1697,-89.3546,-3.8551,-15.878,-89.3546,52.767,-15.878,-67.084,-6.0353,-9.1697,-74.6153,-3.8551,-15.878,-76.5934,-6.0353,-9.1697,-76.5934,60.9442,-9.1698,-69.0621,60.9442,-15.878,-67.084,60.9442,-9.1698,-74.6153,-3.8551,-15.878 +,-69.0621,52.767,-15.878,-74.6153,52.767,-15.878,-67.084,60.9442,-9.1698,-69.0621,52.767,-15.878,-67.084,51.6769,-9.1697,-81.8234,-6.0352,-9.1697,-89.3546,-3.8551,-15.878,-91.3327,-6.0352,-9.1697,-91.3327,60.9442,-9.1698,-83.8015,60.9442,-15.878,-81.8233,60.9442,-9.1698,-89.3546,-3.8551,-15.878,-83.8015,52.767,-15.878,-89.3546,52.767,-15.878,-81.8233,60.9442,-9.1698,-83.8015,52.767,-15.878,-81.8234,51.6769,-9.1697 +,-11.4253,-60.9442,-9.1698,-11.5666,-0.6609,-9.1698,0,54.2441,-6.6025,-107.9444,51.6769,-9.1698,0,51.6769,-9.1698,107.9444,51.6768,-9.1698,107.9445,54.244,-6.6025,-23.0665,50.0981,-14.1826,-51.8318,51.4903,-14.1817,107.9445,54.244,10.8302,0,0.0436,10.8303,0,54.2441,10.8302,-107.9444,0.0437,10.8303,-107.9444,54.2441,10.8302,0,-60.9442,10.8303,-107.9445,-60.9442,10.8303,-23.0665,60.9442,-14.1796 +,-51.8318,60.9442,-14.1796,-18.901,49.7009,-9.1393,-51.8318,60.9442,-14.1796,-55.1009,51.6769,-9.1382,-69.0621,-3.8551,-15.878,-67.084,-6.0353,-9.1697,-69.0621,60.9442,-15.878,-74.6152,60.9442,-15.878,-76.5934,60.9442,-9.1698,-74.6152,60.9442,-15.878,-83.8015,-3.8551,-15.878,-81.8234,-6.0352,-9.1697,-89.3546,60.9442,-15.878,-83.8015,60.9442,-15.878,-91.3327,60.9442,-9.1698,-89.3546,60.9442,-15.878,-67.084,51.6769,-9.1697 +,-76.5934,60.9442,-9.1698,-67.084,60.9442,-9.1698,-81.8234,51.6769,-9.1697,-91.3327,60.9442,-9.1698,-81.8233,60.9442,-9.1698,-103.817,-24.2052,15.878,-64.5352,-20.6695,10.8396,-62.8079,-24.2052,15.878,-51.8318,51.4903,15.8517,-55.1009,-6.8523,10.8229,-55.1009,51.6769,10.8081,-103.817,-45.5729,15.878,-62.8079,-24.2052,15.878,-44.1664,-45.5729,15.878,-41.1949,-48.6538,10.8396,-103.817,-45.5729,15.878,-44.1664,-45.5729,15.878 +,-51.8318,-8.1366,15.864,-51.8318,-8.1366,15.864,-64.5352,-20.6695,10.8396,-44.1664,-45.5729,15.878,-18.901,-20.4528,10.8303,-41.1949,-48.6538,10.8396,-23.0665,50.0981,15.8526,-18.901,60.9442,10.8056,-18.901,49.7009,10.8092,-55.1009,60.9442,10.8056,-23.0665,60.9442,15.8496,-51.8318,60.9442,15.8496,-103.817,-24.2052,15.878,-107.9445,-48.6538,10.8396,-107.9444,-20.6695,10.8396,-23.0665,50.0981,15.8526,-51.8318,51.4903,15.8517 +,-23.0665,60.9442,15.8496,-51.8318,60.9442,15.8496,-23.0665,-17.7189,15.8702,-51.8318,60.9442,15.8496,-55.1009,60.9442,10.8056,-18.901,49.7009,-9.1393,-18.901,60.9442,10.8056,-18.901,60.9442,-9.1357,107.9444,29.8627,10.8643,-22.7983,33.2442,14.7633,107.9444,33.2441,14.7633,107.9444,38.0783,14.7293,-22.7983,41.3571,10.8303,107.9444,41.357,10.8303,107.9444,38.0783,14.7293,-22.7983,33.2442,14.7633,-22.7983,38.0783,14.7293 +,-18.901,60.9442,-9.1357,-55.1009,60.9442,-9.1357,-55.1009,51.6769,10.8081,-55.1009,51.6769,-9.1382,0,0.0436,10.8303,0,-60.9442,-9.1697,107.9444,0.0436,-9.1697,-107.9444,54.2441,-6.6025,-22.7983,29.8627,-9.2038,-22.7983,38.0783,-13.0688,107.9444,33.2441,-13.1028,-107.9444,-20.6695,-9.1697,-76.5934,-6.0353,-9.1697,-103.817,-24.2052,-14.2081,-2.9202,-60.9442,-15.0672,-0.3558,10.7773,-9.1698,0,-60.9442,-12.7831 +,0,-60.9442,-9.1698,0.062,10.0474,-12.1185,107.9444,0.0436,-12.7831,107.9444,3.1828,-15.0673,-9.4759,-60.9442,-15.0672,107.9444,0.0436,-9.1698,0.1387,-2.7112,-9.1698,0.4798,9.3175,-15.0673,-44.1664,-45.5729,-14.2081,-23.0665,-17.7189,-14.2003,-41.1949,-48.6538,-9.1697,-107.9444,-20.6695,-9.1697,51.3119,25.989,-9.1357,87.5118,25.989,-9.1357,83.9876,17.1369,-12.069,87.5118,25.989,-9.1357,53.9397,17.1369,-12.0628 +,76.6481,18.9465,-14.0188,77.3982,18.7973,-14.0188,76.6481,18.9465,-14.0188,76.0122,19.3714,-14.0188,75.5873,18.9465,-13.1195,76.0122,19.3714,-14.0188,75.5873,20.0073,-14.0188,75.438,18.7973,-12.0587,75.5873,18.9465,-13.1195,75.5873,20.0073,-14.0188,75.438,20.7575,-14.0188,76.3374,20.7575,-14.6197,76.4181,21.1634,-14.6197,75.5873,21.5076,-14.0188,76.0122,22.1435,-14.0188,75.5873,22.5684,-13.1195,76.0122,22.1435,-14.0188 +,75.5873,22.5684,-13.1195,76.6481,22.5684,-14.0188,77.3982,22.7176,-14.0188,77.3982,22.7176,-14.0188,78.1483,22.5684,-14.0188,78.1483,22.5684,-14.0188,78.7842,22.1435,-14.0188,79.2092,22.5684,-13.1195,78.7842,22.1435,-14.0188,79.3584,22.7176,-12.0587,79.2092,22.5684,-13.1195,79.2092,21.5076,-14.0188,79.2092,21.5076,-14.0188,79.2092,20.0073,-14.0188,79.2092,20.0073,-14.0188,78.7842,19.3714,-14.0188,79.2092,18.9465,-13.1195 +,78.7842,19.3714,-14.0188,79.2092,18.9465,-13.1195,78.1483,18.9465,-14.0188,77.3982,18.7973,-14.0188,67.7505,18.9465,-14.0188,67.7505,18.9465,-14.0188,67.1146,19.3714,-14.0188,66.6897,18.9465,-13.1195,67.1146,19.3714,-14.0188,66.6897,20.0073,-14.0188,66.6897,18.9465,-13.1195,66.6897,20.0073,-14.0188,66.5405,20.7575,-14.0188,67.4398,20.7575,-14.6197,67.5206,21.1634,-14.6197,67.1146,22.1435,-14.0188,67.1146,22.1435,-14.0188 +,67.7505,22.5684,-14.0188,66.5405,22.7176,-12.0587,66.6897,22.5684,-13.1195,67.7505,22.5684,-14.0188,68.5006,22.7176,-14.0188,69.2508,22.5684,-14.0188,69.2508,22.5684,-14.0188,69.8867,22.1435,-14.0188,69.8867,22.1435,-14.0188,70.3116,21.5076,-14.0188,70.4608,22.7176,-12.0587,70.3116,22.5684,-13.1195,70.3116,21.5076,-14.0188,70.4608,20.7575,-14.0188,70.4608,20.7575,-14.0188,70.3116,20.0073,-14.0188,70.3116,20.0073,-14.0188 +,69.8867,19.3714,-14.0188,69.8867,19.3714,-14.0188,69.2508,18.9465,-14.0188,70.3116,18.9465,-13.1195,68.5006,18.7973,-14.0188,69.2508,18.9465,-14.0188,59.8727,18.7973,-14.0188,58.4867,19.3714,-14.0188,58.0618,18.9465,-13.1195,58.4867,19.3714,-14.0188,58.0618,20.0073,-14.0188,57.9126,18.7973,-12.0587,58.0618,18.9465,-13.1195,58.0618,20.0073,-14.0188,57.9126,20.7575,-14.0188,58.8119,20.7575,-14.6197,58.8926,21.1634,-14.6197 +,57.9126,20.7575,-14.0188,58.0618,21.5076,-14.0188,58.4867,22.1435,-14.0188,58.4867,22.1435,-14.0188,59.1226,22.5684,-14.0188,58.0618,22.5684,-13.1195,59.1226,22.5684,-14.0188,60.6228,22.5684,-14.0188,60.6228,22.5684,-14.0188,61.2587,22.1435,-14.0188,61.6837,22.5684,-13.1195,61.2587,22.1435,-14.0188,61.6837,22.5684,-13.1195,61.6837,21.5076,-14.0188,61.8329,20.7575,-14.0188,61.8329,20.7575,-14.0188,61.6837,20.0073,-14.0188 +,61.6837,20.0073,-14.0188,61.2587,19.3714,-14.0188,61.2587,19.3714,-14.0188,60.6228,18.9465,-14.0188,61.6837,18.9465,-13.1195,60.6228,18.9465,-14.0188,59.8727,18.7973,-14.0188,7.5198,25.9891,-9.1357,43.7197,25.989,-9.1357,40.1955,17.1369,-12.069,43.7197,25.989,-9.1357,10.1476,17.1369,-12.0628,33.6061,18.7973,-14.0188,32.856,18.9465,-14.0188,32.2201,19.3714,-14.0188,31.7952,18.9465,-13.1195,32.2201,19.3714,-14.0188 +,31.7952,20.0074,-14.0188,31.646,18.7973,-12.0587,31.7952,18.9465,-13.1195,31.7952,20.0074,-14.0188,31.646,20.7575,-14.0188,32.5453,20.7575,-14.6197,32.6261,21.1634,-14.6197,31.7952,21.5076,-14.0188,32.2201,22.1435,-14.0188,31.7952,22.5684,-13.1195,32.2201,22.1435,-14.0188,31.7952,22.5684,-13.1195,32.856,22.5684,-14.0188,33.6061,22.7176,-14.0188,34.3563,22.5684,-14.0188,34.3563,22.5684,-14.0188,34.9922,22.1435,-14.0188 +,34.9922,22.1435,-14.0188,35.4171,21.5076,-14.0188,35.5663,22.7176,-12.0587,35.4171,22.5684,-13.1195,35.4171,21.5076,-14.0188,35.4171,20.0074,-14.0188,35.4171,20.0074,-14.0188,34.9922,19.3714,-14.0188,35.4171,18.9465,-13.1195,34.9922,19.3714,-14.0188,35.4171,18.9465,-13.1195,34.3563,18.9465,-14.0188,33.6061,18.7973,-14.0188,23.9585,18.9465,-14.0188,23.9585,18.9465,-14.0188,23.3225,19.3714,-14.0188,22.8976,18.9465,-13.1195 +,23.3225,19.3714,-14.0188,22.8976,20.0074,-14.0188,22.7484,18.7973,-12.0587,22.8976,18.9465,-13.1195,22.8976,20.0074,-14.0188,22.7484,20.7575,-14.0188,22.7484,20.7575,-14.0188,23.6477,20.7575,-14.6197,23.7285,21.1634,-14.6197,22.7484,20.7575,-14.0188,23.3225,22.1435,-14.0188,23.3225,22.1435,-14.0188,23.9585,22.5684,-14.0188,22.8976,22.5684,-13.1195,23.9585,22.5684,-14.0188,25.4587,22.5684,-14.0188,25.4587,22.5684,-14.0188 +,26.0946,22.1435,-14.0188,26.0946,22.1435,-14.0188,26.5195,21.5076,-14.0188,26.5195,22.5684,-13.1195,26.5195,21.5076,-14.0188,26.6687,20.7575,-14.0188,26.6687,20.7575,-14.0188,26.5195,20.0074,-14.0188,26.5195,20.0074,-14.0188,26.0946,19.3714,-14.0188,26.5195,18.9465,-13.1195,26.0946,19.3714,-14.0188,26.6687,18.7973,-12.0587,26.5195,18.9465,-13.1195,25.4587,18.9465,-14.0188,25.4587,18.9465,-14.0188,16.0806,18.7973,-14.0188 +,15.3305,18.9465,-14.0188,14.6946,19.3714,-14.0188,14.2697,18.9465,-13.1195,14.6946,19.3714,-14.0188,14.2697,20.0074,-14.0188,14.1205,18.7973,-12.0587,14.2697,18.9465,-13.1195,14.2697,20.0074,-14.0188,14.1205,20.7575,-14.0188,15.0198,20.7575,-14.6197,15.1006,21.1634,-14.6197,14.6946,22.1435,-14.0188,14.2697,22.5684,-13.1195,14.6946,22.1435,-14.0188,14.2697,22.5684,-13.1195,15.3305,22.5684,-14.0188,15.3305,22.5684,-14.0188 +,16.8308,22.5684,-14.0188,16.8308,22.5684,-14.0188,17.4667,22.1435,-14.0188,17.8916,22.5684,-13.1195,17.4667,22.1435,-14.0188,17.8916,22.5684,-13.1195,17.8916,21.5076,-14.0188,17.8916,21.5076,-14.0188,18.0408,20.7575,-14.0188,17.8916,20.0074,-14.0188,17.8916,20.0074,-14.0188,17.4667,19.3714,-14.0188,17.4667,19.3714,-14.0188,16.8307,18.9465,-14.0188,17.8916,18.9465,-13.1195,16.8307,18.9465,-14.0188,16.0806,18.7973,-14.0188 +,-91.3327,-6.0352,-9.1697,-69.0621,-3.8551,-15.878,-74.6152,60.9442,-15.878,-69.0621,-3.8551,-15.878,-69.0621,60.9442,-15.878,-83.8015,-3.8551,-15.878,-89.3546,60.9442,-15.878,-83.8015,-3.8551,-15.878,-83.8015,60.9442,-15.878,-107.9444,54.2441,-6.6025,107.9444,0.0436,10.8303,-55.1009,60.9442,-9.1357,-76.5934,51.6769,-9.1697,-91.3327,51.6769,-9.1697,-107.9444,-20.6695,10.8396,-103.817,-24.2052,15.878,-107.9445,-48.6538,10.8396 +,-23.0665,-17.7189,15.8702,-62.8079,-24.2052,15.878,-44.1664,-45.5729,15.878,-23.0665,60.9442,15.8496,-18.901,60.9442,10.8056,-103.817,-45.5729,15.878,-18.901,49.7009,10.8092,-22.7983,29.8627,10.8643,-22.7983,38.0783,14.7293,107.9444,33.2441,14.7633,-55.1009,60.9442,10.8056] +,"normals":[1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,1,0 +,0,1,0,0,-0.755,-0.655,0,-0.755,-0.655,0,-0.755,-0.655,0,0.765,-0.644,0,0.765,-0.644,0,0.765,-0.644,0,0.007,-1,0,0.007,-1,0,0.007,-1,0,0.819,-0.574,0,0.819,-0.574,0,0.819,-0.574,-0.959,0,-0.283,-0.959,0,-0.283,-0.959,0,-0.283,-0.839,0,-0.544 +,-0.787,0.235,-0.57,-0.783,0.248,-0.571,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.001,0.971,-0.241,-0.373,0.887,-0.273,-0.001,0.971,-0.241,0.615,-0.001,-0.789,0.532,-0.26,-0.806,0.552,-0.206,-0.808,1,-0.002,0,1,-0.002,0,1,-0.002,0 +,-0.373,0.887,-0.273,-0.87,0.374,-0.32,-0.368,0.889,-0.272,0,0,-1,0.226,-0.54,-0.811,-0.001,-0.589,-0.808,0.214,-0.549,-0.808,0,0,-1,0,0,-1,-0.946,0,-0.325,-0.876,0.36,-0.32,0.366,-0.931,0,-0.001,-1,0,0.366,-0.931,0,0.682,-0.731,0,-0.381,0.883,-0.273,-0.373,0.887,-0.273 +,-0.368,0.889,-0.272,-0.001,0.971,-0.241,0.368,-0.681,-0.633,0,-0.853,-0.522,0,-0.853,-0.522,0,0,-1,-0.683,0.467,-0.562,-0.683,0.467,-0.562,0.288,-0.729,-0.621,0.679,-0.252,-0.69,0.699,-0.2,-0.686,0.771,0,-0.637,0.771,0,-0.637,0.771,0,-0.637,0,1,0,0,1,0,0,1,0 +,-0.774,0,-0.634,-0.774,0,-0.634,-0.774,0,-0.634,-0.742,0.001,-0.67,-0.742,0.001,-0.67,-0.743,0.001,-0.67,0.637,0.002,-0.771,0.637,0.002,-0.771,0.637,0.002,-0.771,0,0.002,-1,0,0.003,-1,0,0.002,-1,0,0.875,-0.484,0,0.875,-0.484,0,0.875,-0.484,0,-0.875,-0.484,0,-0.875,-0.484 +,0,-0.875,-0.484,0,-0.719,-0.695,-0.355,-0.857,-0.374,0,-0.927,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,0,-0.981,-0.195,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.372,-0.154,-0.915 +,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.403,0,-0.915,-0.664,0.275,-0.695,-0.694,0.694,-0.195 +,-0.664,0.275,-0.695,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195 +,0,0.719,-0.695,-0.275,0.664,-0.695,0.375,0.906,-0.195,0,0.719,-0.695,0.154,0.372,-0.915,0.275,0.664,-0.695,0.355,0.857,-0.374,0.656,0.656,-0.374,0.694,0.694,-0.195,0.285,0.285,-0.915,0.508,0.508,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195 +,0.906,0.375,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.372,-0.154,-0.915,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.664,-0.275,-0.695 +,0.656,-0.656,-0.374,0.694,-0.694,-0.195,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.355,-0.857,-0.374,0,-0.927,-0.374,0,-0.403,-0.915,0,0,-1 +,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,0,-0.981,-0.195,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.656,-0.656,-0.374,-0.906,-0.375,-0.195 +,-0.694,-0.694,-0.195,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.906,0.375,-0.195,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.857,0.355,-0.374,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.285,0.285,-0.915,-0.508,0.508,-0.695 +,-0.355,0.857,-0.374,-0.656,0.656,-0.374,-0.154,0.372,-0.915,-0.694,0.694,-0.195,-0.375,0.906,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,0.355,0.857,-0.374,0.375,0.906,-0.195,0,0.719,-0.695,0.154,0.372,-0.915,0.275,0.664,-0.695,0.275,0.664,-0.695 +,0.656,0.656,-0.374,0.694,0.694,-0.195,0.285,0.285,-0.915,0.508,0.508,-0.695,0.508,0.508,-0.695,0.508,0.508,-0.695,0.857,0.355,-0.374,0.656,0.656,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.664,0.275,-0.695,0.664,0.275,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695 +,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.719,0,-0.695,0.372,-0.154,-0.915,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.694,-0.694,-0.195,0.508,-0.508,-0.695,0.355,-0.857,-0.374,0.656,-0.656,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195 +,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,0,-0.981,-0.195,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.694,-0.694,-0.195,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.285,-0.285,-0.915 +,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.664,-0.275,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.906,0.375,-0.195,-0.403,0,-0.915,-0.664,0.275,-0.695,-0.719,0,-0.695 +,-0.857,0.355,-0.374,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.664,0.275,-0.695,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.355,0.857,-0.374,-0.656,0.656,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374 +,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,0.355,0.857,-0.374,0.375,0.906,-0.195,0.275,0.664,-0.695,0,0.719,-0.695,0.154,0.372,-0.915,0.656,0.656,-0.374,0.694,0.694,-0.195,0.508,0.508,-0.695,0.275,0.664,-0.695,0.285,0.285,-0.915,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915 +,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.664,0.275,-0.695,0.906,-0.375,-0.195,0.719,0,-0.695,0.372,-0.154,-0.915,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.285,-0.285,-0.915,0.508,-0.508,-0.695 +,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.694,-0.694,-0.195,0.508,-0.508,-0.695,0.355,-0.857,-0.374,0.656,-0.656,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.742,0.001,-0.67,-0.742,0.001,-0.67,-0.743,0.001,-0.67,0.637,0.002,-0.771,0.637,0.002,-0.771 +,0.637,0.002,-0.771,0,0.002,-1,0,0.003,-1,0,0.002,-1,0,0.875,-0.484,0,0.875,-0.484,0,0.875,-0.484,0,-0.875,-0.484,0,-0.875,-0.484,0,-0.875,-0.484,0,-0.927,-0.374,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195 +,0,-0.981,-0.195,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.275,-0.664,-0.695,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.719,0,-0.695,-0.927,0,-0.374 +,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.403,0,-0.915,-0.664,0.275,-0.695,-0.694,0.694,-0.195,-0.664,0.275,-0.695,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374 +,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,-0.275,0.664,-0.695,0.355,0.857,-0.374,0.375,0.906,-0.195,0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.154,0.372,-0.915 +,0.656,0.656,-0.374,0.694,0.694,-0.195,0.285,0.285,-0.915,0.508,0.508,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.857,0.355,-0.374,0.656,0.656,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695 +,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.719,0,-0.695,0.372,-0.154,-0.915,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.694,-0.694,-0.195,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195 +,0.275,-0.664,-0.695,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.719,-0.695,-0.355,-0.857,-0.374,0,-0.927,-0.374,0,-0.403,-0.915,0,0,-1,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,0,-0.981,-0.195,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.694,-0.694,-0.195,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374 +,-0.285,-0.285,-0.915,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.664,-0.275,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.719,0,-0.695 +,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.694,0.694,-0.195,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.656,0.656,-0.374,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.355,0.857,-0.374,-0.656,0.656,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695 +,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,0,0.719,-0.695,0.375,0.906,-0.195,0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.355,0.857,-0.374,0.154,0.372,-0.915,0.694,0.694,-0.195,0.285,0.285,-0.915,0.508,0.508,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.857,0.355,-0.374 +,0.656,0.656,-0.374,0.372,0.154,-0.915,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.664,0.275,-0.695,0.664,0.275,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.719,0,-0.695,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.372,-0.154,-0.915,0.508,-0.508,-0.695 +,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.285,-0.285,-0.915,0.694,-0.694,-0.195,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.694,-0.694,-0.195,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,0,-0.403,-0.915 +,0,0,-1,-0.154,-0.372,-0.915,0,-0.981,-0.195,-0.375,-0.906,-0.195,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.694,-0.694,-0.195,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.285,-0.285,-0.915,-0.372,-0.154,-0.915,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374 +,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.906,0.375,-0.195,-0.403,0,-0.915,-0.664,0.275,-0.695,-0.857,0.355,-0.374,-0.694,0.694,-0.195,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374 +,-0.285,0.285,-0.915,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0,0.403,-0.915,0,0.981,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,0.355,0.857,-0.374,0.375,0.906,-0.195 +,0.275,0.664,-0.695,0,0.719,-0.695,0.154,0.372,-0.915,0.694,0.694,-0.195,0.508,0.508,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.285,0.285,-0.915,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.664,0.275,-0.695,0.719,0,-0.695 +,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.664,0.275,-0.695,0.719,0,-0.695,0.906,-0.375,-0.195,0.719,0,-0.695,0.372,-0.154,-0.915,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.285,-0.285,-0.915,0.694,-0.694,-0.195,0.508,-0.508,-0.695,0.355,-0.857,-0.374 +,0.656,-0.656,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.959,0,-0.283,-0.959,0,-0.283,-0.959,0,-0.283,0,-0.951,-0.309,0,-0.951,-0.309,0,-0.951,-0.309,0,1,0,0,1,0,0,1,0,0,0,-1 +,0,0,-1,0,0,-1,0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283,0,-0.951,-0.309,0,-0.951,-0.309,0,-0.951,-0.309,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283 +,-0.963,0.001,-0.27,-0.882,0.344,-0.322,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1 +,0,0,-1,0.771,0,-0.637,-0.839,0,-0.544,-0.839,0,-0.544,0.959,0,-0.283,0.959,0,-0.283,0,0,-1,0,0,-1,-0.959,0,-0.283,-0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283,0,0,-1,0,0,-1,-0.959,0,-0.283,-0.959,0,-0.283,0,0,1 +,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.819,0.574,0,0.819,0.574,0,0.819,0.574,-0.839,0,0.544,-0.787,0.235,0.57,-0.839,0,0.544,0,0,1,0,0,1,0,0,1,0.368,-0.681,0.633,0,-0.853,0.522,0.288,-0.729,0.621 +,0,0,1,-0.783,0.248,0.571,-0.683,0.467,0.562,0.288,-0.729,0.621,0.679,-0.252,0.69,0.368,-0.681,0.633,0.771,0,0.637,0.771,0,0.637,0.771,0,0.637,0,1,0,0,1,0,0,1,0,-0.774,0,0.634,-0.774,0,0.634,-0.774,0,0.634,0,0,1,0,0,1 +,0,0,1,0,0,1,0.699,-0.2,0.686,-0.839,0,0.544,-0.839,0,0.544,1,0,0,1,0,0,1,0,0,0,-0.755,0.655,0,-0.755,0.655,0,-0.755,0.655,0,0.765,0.644,0,0.765,0.644,0,0.765,0.644,0,0.007,1,0,0.007,1,0,0.007,1 +,0,1,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,0,0,-1,0,-1,0,0,1,0,0,-0.755,-0.655,0,0.765,-0.644,0,0.007,-1,0,0.819,-0.574,-0.959,0,-0.283,0,0,-1,0,0,-1,-0.381,0.883,-0.273,0.616,-0.001,-0.788 +,1,-0.002,0,-0.373,0.887,-0.273,-0.001,-0.588,-0.809,0,0,-1,-0.924,-0.001,-0.381,-0.001,-1,0,0.682,-0.731,0,-0.368,0.889,-0.272,0.288,-0.729,-0.621,0,0,-1,0.368,-0.681,-0.633,-0.774,0,-0.634,-0.742,0.001,-0.67,0.637,0.002,-0.771,0,0.003,-1,0,0.875,-0.484,0,-0.875,-0.484 +,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.403,0,-0.915,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695 +,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.664,0.275,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374 +,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.403,0,-0.915,-0.372,0.154,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695 +,-0.275,0.664,-0.695,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695 +,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.656,-0.656,-0.374,0,-0.719,-0.695,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.403,0,-0.915,-0.372,0.154,-0.915 +,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695 +,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.742,0.001,-0.67,0.637,0.002,-0.771,0,0.003,-1,0,0.875,-0.484,0,-0.875,-0.484,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695 +,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.403,0,-0.915,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695 +,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374 +,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.403,0,-0.915,-0.372,0.154,-0.915,-0.719,0,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695 +,0.508,0.508,-0.695,0.508,0.508,-0.695,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.694,-0.694,-0.195,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.275,-0.664,-0.695,0,-0.719,-0.695 +,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.403,0,-0.915,-0.372,0.154,-0.915,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.275,0.664,-0.695 +,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.664,0.275,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695 +,-0.959,0,-0.283,0,-0.951,-0.309,0,1,0,0,0,-1,0.959,0,-0.283,0,-0.951,-0.309,0,1,0,0,0,-1,0.959,0,-0.283,0,0.707,-0.707,0,0,1,-0.839,0,-0.544,0,0,1,0,0,1,0,0.819,0.574,0,0,1,0,-0.853,0.522 +,0,0,1,-0.683,0.467,0.562,0.288,-0.729,0.621,0.771,0,0.637,0,1,0,-0.774,0,0.634,1,0,0,0,-0.755,0.655,0,0.765,0.644,0,0.007,1,-1,0,0] +,"uvs":[0.908,0.759,0.888,0.82,0.888,0.759,0.11,0.471,0.218,0.42,0.218,0.471,0.002,0.358,0.11,0.42,0.002,0.42,0.465,0.787,0.357,0.807,0.357,0.787,0.547,0.77,0.655,0.752,0.655,0.77,0.002,0.471,0.763,0.752,0.763,0.77,0.46,0.909,0.591,0.904,0.591,0.909,0.658,0.915,0.79,0.91,0.79,0.915,0.46,0.92 +,0.591,0.925,0.46,0.925,0.913,0.554,0.874,0.548,0.915,0.548,0.942,0.901,0.949,0.845,0.949,0.902,0.918,0.513,0.912,0.455,0.918,0.453,0.615,0.583,0.656,0.604,0.597,0.604,0.229,0.514,0.243,0.571,0.236,0.573,0.128,0.935,0.02,0.932,0.128,0.932,0.236,0.513,0.247,0.57,0.243,0.571,0.127,0.706,0.131,0.765 +,0.127,0.765,0.924,0.918,0.924,0.903,0.927,0.917,0.247,0.583,0.25,0.573,0.355,0.579,0.249,0.577,0.249,0.577,0.355,0.585,0.921,0.843,0.921,0.903,0.942,0.177,0.938,0.282,0.938,0.177,0.938,0.172,0.921,0.919,0.924,0.918,0.02,0.929,0.128,0.929,0.445,0.957,0.382,0.963,0.378,0.957,0.604,0.567,0.907,0.439 +,0.912,0.435,0.848,0.573,0.866,0.604,0.859,0.606,0.85,0.674,0.855,0.685,0.848,0.684,0.811,0.135,0.779,0.14,0.782,0.135,0.971,0.228,0.964,0.204,0.971,0.207,0.132,0.975,0.128,0.966,0.132,0.968,0.114,0.877,0.109,0.886,0.109,0.878,0.686,0.229,0.716,0.236,0.686,0.236,0.341,0.987,0.308,0.991,0.31,0.987 +,0.807,0.972,0.774,0.969,0.81,0.969,0.697,0.995,0.698,0.994,0.698,0.995,0.894,0.993,0.894,0.994,0.894,0.993,0.699,0.994,0.699,0.995,0.894,0.992,0.893,0.992,0.698,0.993,0.699,0.993,0.893,0.993,0.893,0.992,0.697,0.994,0.893,0.993,0.892,0.992,0.413,0.995,0.411,0.995,0.412,0.994,0.413,0.994,0.413,0.993 +,0.411,0.995,0.411,0.994,0.893,0.993,0.412,0.993,0.892,0.993,0.893,0.994,0.41,0.993,0.411,0.992,0.41,0.996,0.41,0.994,0.41,0.992,0.892,0.994,0.893,0.994,0.892,0.995,0.409,0.994,0.409,0.993,0.704,0.997,0.703,0.996,0.704,0.996,0.893,0.995,0.704,0.997,0.705,0.996,0.705,0.997,0.893,0.995,0.703,0.995 +,0.704,0.995,0.894,0.995,0.705,0.995,0.893,0.996,0.893,0.995,0.705,0.994,0.893,0.996,0.894,0.995,0.894,0.996,0.704,0.994,0.704,0.993,0.705,0.993,0.894,0.994,0.895,0.995,0.703,0.994,0.996,0.765,0.995,0.763,0.996,0.764,0.895,0.994,0.997,0.765,0.997,0.764,0.896,0.995,0.995,0.763,0.996,0.763,0.895,0.994 +,0.997,0.763,0.896,0.995,0.896,0.994,0.996,0.762,0.997,0.762,0.896,0.993,0.896,0.994,0.995,0.762,0.895,0.993,0.895,0.993,0.896,0.992,0.995,0.762,0.996,0.761,0.997,0.76,0.698,0.997,0.697,0.996,0.698,0.996,0.894,0.993,0.698,0.997,0.699,0.996,0.699,0.997,0.895,0.992,0.894,0.992,0.895,0.992,0.586,0.99 +,0.587,0.989,0.587,0.99,0.927,0.687,0.926,0.688,0.926,0.687,0.588,0.989,0.588,0.99,0.927,0.686,0.927,0.686,0.588,0.987,0.926,0.687,0.926,0.686,0.586,0.988,0.587,0.988,0.925,0.686,0.42,0.995,0.419,0.995,0.42,0.994,0.926,0.687,0.42,0.995,0.42,0.993,0.421,0.994,0.418,0.995,0.419,0.994,0.925,0.687 +,0.419,0.993,0.924,0.686,0.925,0.688,0.418,0.992,0.417,0.995,0.417,0.994,0.418,0.993,0.417,0.993,0.417,0.992,0.924,0.688,0.924,0.688,0.925,0.688,0.81,0.993,0.811,0.992,0.811,0.993,0.925,0.688,0.812,0.993,0.812,0.992,0.924,0.689,0.81,0.991,0.811,0.991,0.925,0.689,0.812,0.991,0.925,0.69,0.811,0.99 +,0.812,0.99,0.925,0.69,0.926,0.689,0.926,0.69,0.81,0.99,0.811,0.989,0.812,0.989,0.926,0.689,0.926,0.69,0.81,0.99,0.995,0.772,0.996,0.771,0.996,0.772,0.927,0.689,0.997,0.772,0.997,0.771,0.927,0.69,0.995,0.771,0.996,0.77,0.927,0.688,0.997,0.77,0.928,0.689,0.996,0.769,0.997,0.769,0.928,0.688 +,0.995,0.77,0.927,0.688,0.927,0.688,0.928,0.688,0.995,0.769,0.996,0.768,0.997,0.768,0.586,0.991,0.587,0.991,0.587,0.992,0.927,0.687,0.587,0.992,0.588,0.991,0.588,0.992,0.928,0.687,0.927,0.686,0.995,0.929,0.993,0.928,0.994,0.928,0.972,0.166,0.972,0.167,0.971,0.166,0.996,0.928,0.996,0.929,0.972,0.165 +,0.971,0.165,0.995,0.927,0.97,0.166,0.971,0.165,0.994,0.927,0.971,0.166,0.97,0.166,0.99,0.069,0.99,0.07,0.989,0.07,0.971,0.167,0.989,0.068,0.988,0.069,0.99,0.07,0.989,0.07,0.971,0.167,0.988,0.07,0.97,0.167,0.971,0.168,0.987,0.071,0.991,0.072,0.989,0.072,0.99,0.071,0.988,0.071,0.988,0.072 +,0.987,0.072,0.97,0.168,0.971,0.168,0.971,0.169,0.989,0.072,0.994,0.837,0.995,0.837,0.995,0.838,0.972,0.168,0.995,0.838,0.996,0.837,0.996,0.838,0.972,0.169,0.994,0.836,0.995,0.836,0.972,0.168,0.996,0.836,0.973,0.169,0.995,0.835,0.996,0.834,0.973,0.169,0.973,0.169,0.973,0.168,0.995,0.834,0.996,0.833 +,0.974,0.168,0.994,0.835,0.973,0.168,0.254,0.997,0.253,0.996,0.254,0.996,0.973,0.167,0.254,0.997,0.255,0.996,0.255,0.998,0.974,0.167,0.253,0.995,0.254,0.995,0.973,0.167,0.255,0.995,0.974,0.167,0.974,0.167,0.255,0.994,0.974,0.167,0.973,0.166,0.974,0.166,0.254,0.994,0.973,0.166,0.973,0.165,0.253,0.994 +,0.254,0.993,0.255,0.993,0.993,0.93,0.994,0.93,0.994,0.931,0.972,0.166,0.994,0.931,0.995,0.93,0.995,0.931,0.972,0.165,0.993,0.929,0.993,0.737,0.989,0.728,0.993,0.73,0.99,0.961,0.986,0.97,0.986,0.963,0.912,0.298,0.942,0.305,0.912,0.305,0.987,0.076,0.954,0.079,0.957,0.076,0.099,0.805,0.066,0.801 +,0.102,0.801,0.709,0.995,0.708,0.994,0.709,0.994,0.397,0.993,0.396,0.994,0.396,0.993,0.71,0.994,0.711,0.995,0.397,0.992,0.396,0.992,0.709,0.993,0.71,0.993,0.396,0.992,0.396,0.993,0.395,0.992,0.395,0.993,0.405,0.995,0.404,0.995,0.405,0.994,0.396,0.994,0.406,0.994,0.405,0.993,0.403,0.995,0.404,0.994 +,0.395,0.994,0.404,0.993,0.394,0.994,0.395,0.994,0.403,0.993,0.403,0.992,0.403,0.996,0.402,0.994,0.402,0.992,0.394,0.995,0.396,0.995,0.395,0.995,0.402,0.994,0.402,0.993,0.675,0.997,0.675,0.996,0.676,0.996,0.396,0.995,0.675,0.997,0.677,0.996,0.676,0.997,0.395,0.996,0.675,0.995,0.676,0.995,0.396,0.995 +,0.677,0.995,0.396,0.996,0.395,0.996,0.676,0.994,0.677,0.994,0.397,0.996,0.396,0.996,0.675,0.994,0.397,0.995,0.675,0.993,0.676,0.993,0.397,0.995,0.398,0.996,0.675,0.994,0.276,0.997,0.277,0.996,0.277,0.997,0.397,0.995,0.278,0.998,0.278,0.996,0.398,0.995,0.276,0.995,0.277,0.995,0.397,0.994,0.278,0.995 +,0.398,0.995,0.277,0.994,0.278,0.994,0.398,0.994,0.398,0.995,0.397,0.994,0.397,0.994,0.398,0.993,0.276,0.995,0.277,0.993,0.278,0.993,0.709,0.997,0.708,0.996,0.709,0.996,0.397,0.993,0.709,0.997,0.71,0.996,0.71,0.997,0.398,0.992,0.398,0.992,0.708,0.995,0.046,0.99,0.047,0.989,0.047,0.99,0.388,0.993 +,0.389,0.994,0.388,0.994,0.048,0.989,0.048,0.99,0.387,0.993,0.388,0.992,0.048,0.988,0.387,0.994,0.045,0.989,0.046,0.988,0.388,0.994,0.387,0.994,0.911,0.994,0.91,0.995,0.911,0.994,0.388,0.994,0.912,0.994,0.911,0.993,0.91,0.995,0.91,0.993,0.388,0.995,0.91,0.992,0.387,0.995,0.388,0.995,0.909,0.993 +,0.909,0.992,0.909,0.994,0.908,0.995,0.909,0.994,0.909,0.994,0.908,0.992,0.389,0.996,0.388,0.996,0.908,0.993,0.389,0.995,0.995,0.613,0.996,0.612,0.996,0.613,0.389,0.995,0.996,0.613,0.997,0.612,0.997,0.613,0.39,0.996,0.995,0.611,0.996,0.611,0.39,0.995,0.997,0.611,0.39,0.996,0.997,0.61,0.391,0.995 +,0.39,0.996,0.995,0.611,0.996,0.61,0.39,0.995,0.997,0.609,0.39,0.994,0.391,0.994,0.995,0.611,0.996,0.609,0.995,0.905,0.996,0.904,0.996,0.905,0.39,0.994,0.996,0.905,0.997,0.904,0.997,0.905,0.391,0.994,0.995,0.904,0.996,0.903,0.39,0.994,0.997,0.903,0.391,0.993,0.997,0.902,0.39,0.992,0.995,0.902 +,0.996,0.902,0.39,0.993,0.389,0.992,0.995,0.901,0.996,0.901,0.389,0.993,0.997,0.901,0.046,0.992,0.046,0.991,0.047,0.991,0.389,0.993,0.048,0.992,0.048,0.991,0.389,0.992,0.389,0.992,0.388,0.992,0.996,0.526,0.994,0.526,0.995,0.525,0.282,0.98,0.282,0.981,0.282,0.979,0.997,0.526,0.997,0.525,0.282,0.978 +,0.283,0.979,0.996,0.524,0.281,0.978,0.282,0.978,0.994,0.525,0.995,0.524,0.282,0.979,0.281,0.98,0.281,0.979,0.242,0.953,0.241,0.953,0.241,0.952,0.243,0.952,0.242,0.951,0.24,0.953,0.241,0.952,0.281,0.98,0.241,0.951,0.28,0.979,0.281,0.98,0.24,0.95,0.24,0.954,0.239,0.952,0.24,0.951,0.239,0.95 +,0.28,0.981,0.28,0.98,0.239,0.952,0.239,0.951,0.281,0.981,0.02,0.998,0.019,0.997,0.02,0.997,0.281,0.981,0.02,0.998,0.021,0.997,0.021,0.998,0.28,0.982,0.019,0.996,0.02,0.996,0.281,0.981,0.021,0.996,0.28,0.982,0.281,0.982,0.02,0.995,0.021,0.995,0.281,0.983,0.281,0.982,0.282,0.982,0.021,0.994 +,0.282,0.983,0.019,0.995,0.02,0.994,0.282,0.982,0.681,0.997,0.68,0.996,0.681,0.996,0.282,0.981,0.681,0.997,0.682,0.996,0.682,0.997,0.283,0.982,0.68,0.995,0.681,0.995,0.283,0.981,0.682,0.995,0.283,0.982,0.283,0.982,0.682,0.994,0.283,0.982,0.283,0.981,0.284,0.981,0.681,0.994,0.284,0.98,0.68,0.994 +,0.681,0.993,0.283,0.98,0.682,0.993,0.994,0.528,0.995,0.527,0.995,0.528,0.283,0.98,0.995,0.528,0.997,0.527,0.996,0.529,0.283,0.979,0.994,0.526,0.944,0.065,0.951,0.01,0.951,0.066,0.992,0.514,0.985,0.521,0.983,0.514,0.983,0.256,0.991,0.249,0.993,0.256,0.954,0.008,0.96,0.064,0.954,0.064,0.73,0.235 +,0.723,0.227,0.73,0.226,0.993,0.239,0.985,0.246,0.983,0.239,0.925,0.566,0.933,0.559,0.935,0.566,0.953,0.694,0.958,0.751,0.953,0.751,0.741,0.235,0.734,0.227,0.741,0.226,0.917,0.843,0.917,0.903,0.655,0.752,0.547,0.749,0.655,0.749,0.763,0.749,0.763,0.752,0.576,0.508,0.605,0.507,0.337,0.438,0.282,0.33 +,0.337,0.33,0.282,0.221,0.337,0.221,0.221,0.33,0.221,0.221,0.576,0.497,0.605,0.497,0.856,0.674,0.918,0.523,0.912,0.513,0.723,0.17,0.73,0.168,0.96,0.073,0.954,0.073,0.942,0.91,0.949,0.91,0.734,0.17,0.741,0.168,0.953,0.759,0.958,0.759,0.944,0.075,0.951,0.075,0.972,0.093,0.982,0.083,0.982,0.093 +,0.972,0.564,0.982,0.555,0.982,0.564,0.14,0.97,0.179,0.963,0.181,0.97,0.485,0.755,0.491,0.696,0.491,0.755,0.129,0.63,0.107,0.589,0.128,0.57,0.375,0.963,0.312,0.957,0.372,0.957,0.091,0.578,0.485,0.695,0.496,0.68,0.543,0.743,0.526,0.775,0.537,0.741,0.542,0.844,0.537,0.856,0.535,0.845,0.779,0.16 +,0.811,0.165,0.782,0.165,0.964,0.46,0.971,0.435,0.971,0.463,0.032,0.549,0.031,0.578,0.022,0.549,0.022,0.578,0.533,0.777,0.485,0.764,0.491,0.764,0.827,0.14,0.815,0.16,0.815,0.14,0.906,0.306,0.775,0.301,0.906,0.301,0.591,0.917,0.46,0.912,0.591,0.912,0.401,0.926,0.27,0.93,0.27,0.926,0.815,0.14 +,0.779,0.14,0.77,0.16,0.77,0.14,0.908,0.82,0.11,0.358,0.465,0.807,0.547,0.752,0.46,0.904,0.658,0.91,0.591,0.92,0.869,0.554,0.942,0.843,0.656,0.583,0.236,0.513,0.019,0.935,0.239,0.512,0.131,0.706,0.924,0.918,0.355,0.575,0.355,0.579,0.924,0.843,0.942,0.282,0.942,0.172,0.02,0.929,0.442,0.963 +,0.575,0.576,0.854,0.57,0.964,0.232,0.128,0.977,0.114,0.887,0.716,0.229,0.344,0.991,0.777,0.972,0.697,0.994,0.894,0.992,0.697,0.994,0.697,0.993,0.413,0.995,0.412,0.996,0.411,0.995,0.413,0.994,0.413,0.995,0.411,0.995,0.892,0.993,0.41,0.996,0.41,0.996,0.892,0.994,0.409,0.994,0.704,0.997,0.703,0.997 +,0.704,0.997,0.893,0.995,0.893,0.996,0.893,0.996,0.703,0.994,0.703,0.994,0.703,0.993,0.996,0.765,0.995,0.764,0.997,0.765,0.996,0.765,0.896,0.995,0.896,0.995,0.995,0.762,0.995,0.762,0.995,0.761,0.698,0.997,0.697,0.997,0.698,0.997,0.895,0.992,0.894,0.992,0.586,0.989,0.586,0.989,0.586,0.988,0.42,0.995 +,0.419,0.996,0.419,0.995,0.42,0.995,0.419,0.995,0.924,0.686,0.418,0.996,0.417,0.995,0.417,0.994,0.81,0.993,0.81,0.992,0.812,0.993,0.811,0.993,0.81,0.992,0.925,0.69,0.81,0.99,0.81,0.99,0.81,0.99,0.995,0.772,0.995,0.771,0.997,0.772,0.996,0.772,0.995,0.771,0.995,0.77,0.995,0.77,0.995,0.769 +,0.995,0.769,0.995,0.769,0.586,0.991,0.586,0.99,0.587,0.992,0.927,0.686,0.586,0.99,0.993,0.929,0.993,0.927,0.99,0.069,0.991,0.07,0.99,0.07,0.989,0.068,0.99,0.069,0.99,0.07,0.99,0.071,0.991,0.072,0.99,0.072,0.99,0.071,0.97,0.168,0.989,0.072,0.994,0.837,0.994,0.836,0.995,0.838,0.994,0.836 +,0.994,0.835,0.994,0.835,0.994,0.834,0.254,0.997,0.253,0.997,0.254,0.997,0.974,0.167,0.974,0.167,0.974,0.167,0.253,0.995,0.253,0.995,0.253,0.994,0.993,0.93,0.993,0.93,0.994,0.931,0.993,0.93,0.993,0.929,0.989,0.739,0.99,0.972,0.942,0.298,0.991,0.079,0.069,0.805,0.708,0.995,0.396,0.992,0.708,0.993 +,0.405,0.995,0.404,0.996,0.404,0.995,0.406,0.994,0.405,0.995,0.404,0.995,0.394,0.994,0.403,0.996,0.402,0.996,0.394,0.995,0.402,0.994,0.675,0.997,0.674,0.997,0.675,0.997,0.395,0.996,0.396,0.996,0.675,0.994,0.675,0.994,0.674,0.993,0.276,0.997,0.276,0.996,0.278,0.998,0.277,0.997,0.276,0.996,0.276,0.995 +,0.276,0.995,0.276,0.994,0.709,0.997,0.708,0.997,0.709,0.997,0.398,0.992,0.708,0.995,0.046,0.989,0.046,0.989,0.045,0.989,0.911,0.994,0.911,0.995,0.91,0.995,0.912,0.994,0.911,0.994,0.91,0.995,0.909,0.994,0.909,0.994,0.909,0.995,0.908,0.995,0.909,0.994,0.908,0.994,0.995,0.613,0.995,0.612,0.996,0.613 +,0.995,0.612,0.995,0.611,0.995,0.611,0.995,0.61,0.995,0.905,0.995,0.904,0.996,0.905,0.995,0.904,0.995,0.903,0.995,0.903,0.995,0.902,0.995,0.902,0.995,0.901,0.046,0.992,0.045,0.992,0.048,0.992,0.046,0.992,0.389,0.992,0.389,0.992,0.994,0.526,0.282,0.978,0.994,0.525,0.242,0.953,0.241,0.954,0.241,0.953 +,0.243,0.952,0.242,0.953,0.241,0.953,0.28,0.979,0.24,0.954,0.239,0.953,0.239,0.952,0.02,0.998,0.019,0.997,0.02,0.998,0.28,0.982,0.28,0.982,0.019,0.995,0.019,0.995,0.019,0.994,0.681,0.997,0.68,0.997,0.681,0.997,0.283,0.982,0.283,0.982,0.283,0.982,0.68,0.994,0.68,0.994,0.68,0.994,0.994,0.528 +,0.994,0.527,0.995,0.528,0.994,0.527,0.994,0.526,0.944,0.008,0.99,0.521,0.985,0.249,0.96,0.008,0.723,0.235,0.991,0.246,0.927,0.559,0.958,0.694,0.734,0.235,0.547,0.752,0.282,0.438,0.912,0.523,0.972,0.083,0.972,0.555,0.136,0.963,0.107,0.63,0.308,0.963,0.1,0.549,0.491,0.676,0.543,0.743,0.543,0.855 +,0.815,0.16,0.964,0.438,0.827,0.16,0.775,0.306,0.46,0.917,0.401,0.93,0.779,0.16] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,3,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46 +,47,48,49,50,51,52,53,40,54,41,55,56,57,46,57,47,58,59,54,60,52,61,62,63,64,65,62,64,66,61,67,44,68,69,70,71,72,38,73,36,35,74,75,76,77,78,79,80,81,82 +,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,105,109,110,111,108,112,109,113,114,112,115,116,117,113,104,108,107,115,116,118,119,120,121,122 +,115,107,118,123,122,124,122,125,126,118,107,127,122,128,124,118,129,119,127,107,130,128,131,132,133,134,125,125,131,126,131,135,132,136,137,138,131,139,140,130,107,137,141,142,143,137,107,144,145,146 +,147,137,148,138,143,149,150,144,107,151,143,152,146,144,153,154,150,155,152,156,157,158,149,159,150,151,107,157,155,160,161,158,162,163,164,160,159,157,107,162,165,166,167,162,107,168,169,167,170,162 +,171,163,167,172,173,168,107,174,167,175,170,176,174,177,175,178,179,174,180,181,173,182,178,174,107,183,180,184,185,186,187,178,183,107,184,178,188,179,189,190,191,184,107,192,193,194,195,184,196,185 +,192,107,106,194,105,110,192,197,198,191,103,105,199,200,201,202,203,204,201,205,206,202,207,208,200,209,205,207,210,211,200,212,213,204,203,210,210,214,211,215,216,217,210,203,218,219,220,221,217,222 +,223,218,203,224,217,225,220,218,226,214,224,203,227,223,228,225,222,229,230,223,230,231,228,232,233,227,234,235,230,232,231,227,203,236,237,238,239,236,203,240,241,238,242,234,240,243,238,244,245,240 +,203,246,238,247,242,243,246,248,247,249,250,251,252,253,245,254,249,246,203,252,250,255,256,253,257,258,249,259,255,252,203,257,260,261,262,257,203,263,264,261,265,258,263,266,267,268,261,263,203,269 +,261,270,265,266,269,271,270,272,273,269,274,271,275,272,268,269,203,276,274,277,278,272,279,280,276,203,277,273,280,281,282,283,284,277,203,285,286,287,288,277,289,278,285,203,202,287,201,206,285,290 +,289,283,199,201,291,292,293,294,295,296,291,297,298,299,296,300,293,301,297,296,302,303,292,304,293,296,295,305,305,306,302,307,308,309,305,295,310,311,309,312,313,314,309,310,295,315,309,316,312,310 +,317,306,315,295,318,314,319,316,320,321,322,314,321,323,319,324,325,326,327,328,323,329,324,318,295,327,330,331,332,327,295,333,334,335,336,328,333,337,331,338,339,333,295,340,331,341,335,337,340,342 +,341,343,344,340,345,346,338,343,339,340,295,347,344,348,349,347,350,345,351,348,343,347,295,352,353,354,355,352,295,356,357,358,359,352,360,350,355,361,362,356,295,363,355,364,358,356,365,366,362,367 +,364,368,369,370,361,371,362,363,295,369,370,372,373,371,374,375,369,295,372,371,376,367,377,378,379,372,295,380,381,382,383,372,384,373,380,295,294,382,291,298,384,294,299,378,385,291,386,387,388,389 +,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,401,407,408,409,406,410,407,411,412,413,414,415,402,411,403,406,405,414,414,416,415,417,418,419,414,405,420,421,419,422,419,423,424 +,420,405,425,419,426,422,420,427,416,425,405,428,426,429,430,431,432,423,423,429,424,429,433,430,434,435,436,429,437,438,428,405,435,439,440,441,435,405,442,443,444,445,435,446,436,441,447,448,442,405 +,449,441,450,444,442,451,452,450,453,454,449,455,456,448,457,453,449,405,458,454,459,460,455,461,462,463,459,453,458,405,461,464,465,466,461,405,467,468,465,469,461,470,462,465,471,472,467,405,473,465 +,474,469,470,473,475,474,476,477,473,478,479,471,476,472,473,405,480,478,481,482,483,484,476,480,405,481,476,485,477,486,487,488,481,405,489,490,491,492,481,493,482,489,405,404,491,401,408,489,409,494 +,488,495,401,496,497,498,499,500,501,498,502,503,499,504,505,497,506,502,501,507,504,497,508,509,501,500,510,510,511,507,512,513,514,510,500,515,516,514,517,518,519,514,515,500,520,514,521,517,515,522 +,511,520,500,523,521,524,525,526,527,528,529,524,519,524,530,525,523,531,532,528,533,524,523,500,534,535,536,537,534,500,538,539,540,541,531,538,542,536,543,544,538,500,545,540,544,546,542,545,547,544 +,548,546,545,549,550,544,551,552,545,500,553,552,554,548,549,555,556,557,558,552,553,500,555,559,560,561,555,500,562,563,564,565,556,562,566,567,568,560,562,500,569,560,570,564,562,571,566,568,572,570 +,569,573,571,568,574,575,569,500,576,576,577,573,575,578,579,576,500,580,575,581,572,582,583,584,580,500,585,586,584,587,580,588,577,585,500,499,587,498,503,589,499,590,584,496,498,591,592,593,594,595 +,596,597,593,598,594,599,600,593,601,598,596,602,603,593,604,605,596,595,606,602,607,608,609,610,611,606,595,607,612,611,613,611,614,615,607,595,616,611,617,613,607,618,608,616,595,619,615,620,617,621 +,622,614,615,622,623,623,624,620,619,625,626,623,627,628,619,595,629,630,631,632,629,595,633,634,635,636,629,637,625,632,638,639,633,595,640,632,641,635,642,640,643,641,644,645,640,646,647,638,644,639 +,640,595,648,644,649,645,648,650,646,651,652,644,648,595,653,654,655,656,653,595,657,658,659,660,653,661,650,656,662,663,657,595,664,656,665,659,666,664,667,663,668,665,669,670,671,662,672,663,664,595 +,670,670,673,671,674,675,672,670,595,676,672,677,668,678,679,680,676,595,681,682,683,684,673,681,685,681,595,594,683,591,597,685,594,600,679,686,591,687,688,689,690,691,692,693,694,695,696,697,698,699 +,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,61,715,716,717,718,716,719,720,73,721,722,723,724,725,725,726,727,726,728,729,722,730,731,78,732,79,733,734,33,701,735,736,698,737,738 +,739,32,740,713,741,742,743,709,744,745,689,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,761,760,766,767,757,768,769,770,771,772,773,774,775,776,777,778,779,780,765 +,781,782,781,783,784,773,769,785,758,786,787,788,789,790,791,792,793,794,795,796,797,798,799,774,83,800,801,802,0,803,1,3,7,4,6,804,7,9,805,10,12,806,13,15,8,7,14,13,16,18 +,807,19,21,808,22,24,809,25,27,810,28,30,811,31,33,734,34,36,812,37,39,813,40,42,814,43,45,815,46,48,816,49,817,61,52,40,58,54,55,818,56,46,55,57,58,819,59,60,820,52 +,62,821,63,65,822,62,66,715,61,44,43,823,70,824,71,38,825,73,35,34,74,76,826,77,79,732,80,82,799,83,85,827,86,88,828,89,91,829,92,94,830,95,97,831,98,100,832,101,103,833 +,104,105,104,109,834,106,108,109,104,113,112,108,115,835,836,113,116,115,118,837,838,839,840,841,122,122,842,125,122,126,128,118,127,843,128,126,131,844,845,134,125,134,131,131,140,135,846,130,137,131 +,134,847,848,849,142,850,143,146,137,144,851,143,142,149,143,150,152,144,151,852,150,159,155,853,151,157,149,854,159,155,159,160,158,157,162,855,856,160,857,858,166,859,860,167,162,168,861,167,166,172 +,167,173,175,862,168,174,175,173,178,174,183,180,173,172,863,180,183,184,864,865,187,178,187,188,866,867,190,868,191,194,184,192,869,194,191,105,192,106,870,191,190,103,199,871,200,201,200,205,202,204 +,207,200,213,209,207,204,210,200,872,873,210,218,214,874,875,876,877,217,220,217,878,222,217,223,225,218,224,879,223,231,228,222,880,881,223,222,230,228,231,232,227,236,234,230,882,232,883,884,238,885 +,886,238,234,236,240,238,887,244,238,245,247,243,240,246,247,245,249,888,246,252,245,244,889,250,249,255,253,252,257,249,890,891,892,893,261,894,895,261,258,257,263,896,897,268,261,268,270,266,263,269 +,270,268,272,269,276,274,898,899,272,274,276,277,272,900,901,273,272,280,902,903,283,904,283,287,277,285,289,287,283,201,285,202,905,283,906,199,291,907,292,291,293,297,299,294,296,293,304,301,296,305 +,302,292,908,304,305,310,306,909,910,911,912,913,309,914,915,314,309,314,316,310,315,317,314,323,319,916,917,321,314,918,321,319,323,324,919,318,327,323,321,920,921,922,331,923,331,335,328,327,333,331 +,924,338,331,339,341,337,333,340,341,339,343,340,347,345,338,925,343,344,343,348,347,352,350,926,927,348,928,929,354,930,355,358,352,356,931,355,354,361,355,362,364,356,363,932,362,371,367,933,363,369 +,361,934,371,370,369,372,371,935,936,371,375,376,937,938,378,939,378,382,372,380,384,382,378,291,384,380,294,378,940,941,386,942,387,389,943,390,392,944,393,395,945,396,398,946,399,401,947,402,401,403 +,407,409,404,406,407,403,411,948,406,414,402,949,411,414,420,416,950,951,952,953,954,419,419,955,423,419,424,426,420,425,956,426,424,429,957,958,432,423,432,429,429,438,433,959,428,435,429,432,960,961 +,962,440,963,441,444,435,442,964,441,440,447,441,448,450,442,449,965,450,448,453,449,458,455,448,447,966,454,453,459,455,458,461,967,968,459,969,970,465,971,972,465,461,467,470,465,973,471,465,472,474 +,470,467,473,474,472,476,473,480,478,471,974,476,478,480,481,975,976,484,476,484,485,977,978,487,979,488,491,481,489,980,491,488,401,489,404,409,488,487,981,496,982,497,498,497,502,499,501,504,497,509 +,506,501,510,507,497,983,984,510,515,511,985,986,987,988,989,514,990,991,519,514,519,521,515,520,522,521,519,524,992,993,994,995,528,524,524,533,530,523,534,531,528,996,533,997,998,536,999,536,540,531 +,534,538,536,1000,543,540,536,544,542,538,545,544,552,548,545,553,549,544,543,1001,552,558,554,549,553,555,1002,1003,558,1004,1005,560,1006,560,564,556,555,562,1007,1008,568,560,568,570,562,569,571,568,575,572 +,569,576,573,568,1009,1010,576,580,577,575,1011,1012,575,579,581,1013,1014,583,1015,1016,584,580,585,1017,587,584,498,1018,585,499,584,583,496,591,1019,592,597,591,593,594,596,1020,593,605,601,596,606,602,593,592 +,1021,602,606,607,1022,1023,1024,1025,1026,611,611,1027,614,611,615,617,607,616,1028,615,623,620,1029,1030,622,615,614,622,623,628,624,619,629,625,623,622,1031,1032,1033,631,1034,632,635,629,633,1035,632,631,638,632 +,639,641,1036,633,640,641,639,644,640,648,646,638,1037,644,644,652,649,648,653,650,1038,1039,652,1040,1041,655,1042,656,659,653,657,1043,656,655,662,656,663,665,1044,657,664,663,672,668,1045,664,670,662,1046,672 +,670,676,673,1047,1048,675,672,675,677,1049,1050,679,1051,679,683,673,676,681,683,679,591,685,681,594,679,1052,1053,687,1054,688,690,1055,691,693,1056,694,696,1057,697,699,1058,700,702,1059,703,705,1060,706,708,1061 +,709,711,1062,712,714,60,61,716,1063,717,716,718,719,73,825,721,723,1064,724,725,724,726,726,724,728,722,721,730,78,77,732,733,1065,734,701,700,735,698,697,737,739,30,32,713,712,741,743,710,709,745 +,687,689,747,1066,748,750,1067,751,753,1068,754,756,766,757,759,1069,760,762,1070,763,765,1071,761,766,1072,767,1073,784,769,771,1074,772,774,1075,775,777,1076,778,780,1071,765,782,780,781,784,771,773,785,756,758 +,787,1077,788,790,1078,791,793,1079,794,796,1080,797,799,1075,774,800,1081,801] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":1082,"indexStart":0,"indexCount":2568}] +,"instances":[]} +,{"name":"ObstacleHoleTopLeft","id":"ObstacleHoleTopLeft","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4859.3438,1464.0668],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,55.9063,10.885,0,5.9063,10.885,0,53.2254,-9.115,107.9444,53.2254,-9.115,0,5.9063,-9.115,107.9444,5.9063,-9.115,-107.9444,5.9063,10.885,0,5.9063,-9.115,0,5.9063,10.885,0,-59.2334,-9.115,107.9444,-59.2334,-9.115,-107.9444,-59.2334,-9.115,22.7983,-27.8889,-13.048,-107.9444,-24.5074,-9.149,-107.9444,-27.8889,-13.048,-107.9444,-24.5074,10.885,22.7983,-27.8889,14.784 +,-107.9444,-27.8889,14.784,22.7983,-36.0018,-9.115,-107.9444,-32.723,-13.0141,-107.9444,-36.0018,-9.115,22.7983,-27.8889,-13.048,-107.9444,-32.723,-13.0141,22.7983,-32.723,-13.0141,-107.9444,-32.723,14.75,22.7983,-36.0018,10.851,-107.9444,-36.0018,10.851,64.5352,20.5405,-9.115,103.817,24.0762,-14.1534,62.8079,24.0762,-14.1534,51.8318,-59.2334,-14.1249,55.1009,6.7233,-9.0982,51.8318,8.0076,-14.1394,23.0665,17.5899,-14.1456 +,18.901,-59.2334,-9.081,23.0665,-59.2334,-14.1249,62.8079,24.0762,-14.1534,103.817,45.4439,-14.1534,44.1664,45.4439,-14.1534,-0.017,53.2254,-12.7284,-1.7869,54.1643,-9.1151,-0.017,53.2254,-9.1151,-107.9444,-4.7822,-9.1151,-0.062,-3.9057,-12.0638,-107.9444,-4.0509,-12.0638,9.4759,59.2334,-15.0125,11.8721,59.2334,-12.9336,10.4185,59.2334,-12.7284,9.485,53.2253,-15.0125,11.8946,54.1643,-12.8269,10.6502,54.1643,-15.9234 +,-0.062,-3.9057,-12.0638,9.5505,7.1601,-15.0125,-0.4798,-3.1758,-15.0125,2.9948,8.2887,-15.0125,-0.4798,-3.1758,-15.0125,9.5505,7.1601,-15.0125,-3.2477,5.9541,-12.7284,-107.9444,2.9589,-15.0125,-2.3251,2.9108,-15.0125,-0.1387,8.853,-12.7284,2.9948,8.2887,-15.0125,-2.3251,2.9108,-15.0125,-107.9444,-3.3197,-15.0125,10.4357,53.2253,-12.6468,9.5505,7.1601,-15.0125,10.5586,6.9814,-12.0638,-3.2477,5.9541,-9.1151 +,-107.9444,6.0981,-12.7284,-3.2477,5.9541,-12.7284,-0.1387,8.853,-9.1151,-0.1387,8.853,-12.7284,0.3558,-4.6356,-9.1151,10.5586,6.9814,-12.0638,-0.062,-3.9057,-12.0638,-0.4798,-3.1758,-15.0125,-107.9444,-3.3197,-15.0125,2.9202,59.2334,-15.0125,0,59.2334,-9.1151,41.1949,48.5248,-9.115,103.817,45.4439,-14.1534,107.9444,48.5248,-9.115,51.8318,8.0076,-14.1394,51.8318,8.0076,-14.1394,64.5352,20.5405,-9.115 +,62.8079,24.0762,-14.1534,44.1664,45.4439,-14.1534,18.901,20.3238,-9.1057,23.0665,-59.2334,-14.1249,51.8318,-59.2334,-14.1249,103.817,24.0762,-14.1534,107.9444,48.5248,-9.115,103.817,45.4439,-14.1534,-53.9397,-18.1194,-11.9936,-51.3119,-9.2673,-9.0983,-53.9397,-10.8783,-12.0081,-87.5118,-9.2673,-9.1057,-83.9876,-18.1194,-11.9936,-83.9876,-10.8783,-12.0143,-53.9397,-10.8783,-12.0081,-83.9876,-18.1194,-11.9936,-53.9397,-18.1194,-11.9936 +,-83.9876,-18.1194,-11.9936,-51.3119,-19.7304,-9.081,-53.9397,-18.1194,-11.9936,-83.9876,-10.8783,-12.0143,-51.3119,-9.2673,-9.0983,-87.5118,-9.2673,-9.1057,-77.3982,-12.5387,-13.9641,-76.4181,-12.1327,-13.0648,-77.3982,-11.9378,-13.0648,-77.3982,-13.438,-14.565,-77.3982,-14.4989,-14.776,-76.9922,-13.5188,-14.565,-77.3982,-11.7268,-12.0039,-76.3374,-11.9378,-12.0039,-77.3982,-12.5387,-13.9641,-76.6481,-12.6879,-13.9641,-75.5872,-12.6879,-13.0648 +,-75.438,-12.5387,-12.0039,-76.0122,-13.1128,-13.9641,-76.6481,-12.6879,-13.9641,-76.6481,-13.7487,-14.565,-75.5872,-13.7487,-13.9641,-75.5872,-12.6879,-13.0648,-75.5872,-13.7487,-13.9641,-75.0321,-13.5188,-13.0648,-76.4181,-14.0929,-14.565,-75.438,-12.5387,-12.0039,-74.8371,-13.438,-12.0039,-75.438,-14.4989,-13.9641,-74.8371,-14.4989,-13.0648,-76.3374,-14.4989,-14.565,-74.6261,-14.4989,-12.0039,-76.4181,-14.0929,-14.565,-75.438,-14.4989,-13.9641 +,-75.5872,-13.7487,-13.9641,-76.4181,-14.9048,-14.565,-75.0321,-15.4789,-13.0648,-74.8371,-15.5597,-12.0039,-75.438,-14.4989,-13.9641,-75.5872,-15.249,-13.9641,-75.0321,-15.4789,-13.0648,-75.438,-16.459,-12.0039,-74.8371,-15.5597,-12.0039,-76.6481,-15.249,-14.565,-76.0122,-15.8849,-13.9641,-75.0321,-15.4789,-13.0648,-76.0122,-15.8849,-13.9641,-75.5872,-16.3098,-13.0648,-75.5872,-16.3098,-13.0648,-76.6481,-16.3098,-13.9641,-76.4181,-16.865,-13.0648 +,-76.9922,-15.4789,-14.565,-75.5872,-16.3098,-13.0648,-76.3374,-17.0599,-12.0039,-75.438,-16.459,-12.0039,-76.6481,-16.3098,-13.9641,-77.3982,-16.459,-13.9641,-77.3982,-17.0599,-13.0648,-77.3982,-15.5597,-14.565,-77.3982,-17.2709,-12.0039,-77.3982,-16.459,-13.9641,-76.6481,-16.3098,-13.9641,-78.3783,-16.865,-13.0648,-78.459,-17.0599,-12.0039,-77.3982,-16.459,-13.9641,-77.8042,-15.4789,-14.565,-78.1483,-16.3098,-13.9641,-78.459,-17.0599,-12.0039 +,-79.2091,-16.3098,-13.0648,-79.3584,-16.459,-12.0039,-78.1483,-15.249,-14.565,-78.7842,-15.8849,-13.9641,-78.1483,-16.3098,-13.9641,-78.3783,-16.865,-13.0648,-78.7842,-15.8849,-13.9641,-79.7643,-15.4789,-13.0648,-79.2091,-16.3098,-13.0648,-78.3783,-14.9048,-14.565,-79.2091,-16.3098,-13.0648,-79.9593,-15.5597,-12.0039,-79.3584,-16.459,-12.0039,-79.2091,-15.249,-13.9641,-79.3584,-14.4989,-13.9641,-79.9593,-14.4989,-13.0648,-78.459,-14.4989,-14.565 +,-80.1703,-14.4989,-12.0039,-79.3584,-14.4989,-13.9641,-79.7643,-13.5188,-13.0648,-79.9593,-13.438,-12.0039,-79.2091,-13.7487,-13.9641,-79.3584,-14.4989,-13.9641,-78.3783,-14.0929,-14.565,-78.1483,-13.7487,-14.565,-78.7842,-13.1128,-13.9641,-79.2091,-13.7487,-13.9641,-79.2091,-12.6879,-13.0648,-79.3584,-12.5387,-12.0039,-79.2091,-12.6879,-13.0648,-78.1483,-12.6879,-13.9641,-78.3783,-12.1327,-13.0648,-77.8042,-13.5188,-14.565,-79.2091,-12.6879,-13.0648 +,-78.459,-11.9378,-12.0039,-79.3584,-12.5387,-12.0039,-78.1483,-12.6879,-13.9641,-77.3982,-12.5387,-13.9641,-78.1483,-12.6879,-13.9641,-68.5006,-12.5387,-13.9641,-67.5206,-12.1327,-13.0648,-68.5006,-11.9378,-13.0648,-68.5006,-13.438,-14.565,-68.5006,-14.4989,-14.776,-68.0947,-13.5188,-14.565,-67.4398,-11.9378,-12.0039,-68.5006,-11.7268,-12.0039,-67.7505,-12.6879,-13.9641,-68.5006,-12.5387,-13.9641,-66.5405,-12.5387,-12.0039,-67.1146,-13.1128,-13.9641 +,-67.1146,-13.1128,-13.9641,-66.6897,-12.6879,-13.0648,-67.7505,-13.7487,-14.565,-66.6897,-13.7487,-13.9641,-66.6897,-12.6879,-13.0648,-66.6897,-13.7487,-13.9641,-66.1345,-13.5188,-13.0648,-67.5206,-14.0929,-14.565,-66.6897,-12.6879,-13.0648,-65.9396,-13.438,-12.0039,-66.5405,-12.5387,-12.0039,-66.6897,-13.7487,-13.9641,-65.9396,-14.4989,-13.0648,-67.4398,-14.4989,-14.565,-65.7285,-14.4989,-12.0039,-67.5206,-14.0929,-14.565,-66.5405,-14.4989,-13.9641 +,-66.6897,-13.7487,-13.9641,-67.5206,-14.9048,-14.565,-65.9396,-15.5597,-12.0039,-66.5405,-14.4989,-13.9641,-66.6897,-15.249,-13.9641,-66.6897,-15.249,-13.9641,-66.1345,-15.4789,-13.0648,-66.1345,-15.4789,-13.0648,-66.5405,-16.459,-12.0039,-65.9396,-15.5597,-12.0039,-67.1146,-15.8849,-13.9641,-66.6897,-15.249,-13.9641,-66.6897,-16.3098,-13.0648,-66.1345,-15.4789,-13.0648,-67.7505,-15.249,-14.565,-67.1146,-15.8849,-13.9641,-67.5206,-16.865,-13.0648 +,-66.6897,-16.3098,-13.0648,-68.0947,-15.4789,-14.565,-66.5405,-16.459,-12.0039,-67.4398,-17.0599,-12.0039,-67.7505,-16.3098,-13.9641,-67.7505,-16.3098,-13.9641,-68.5006,-17.0599,-13.0648,-68.5006,-15.5597,-14.565,-68.5006,-17.2709,-12.0039,-68.5006,-16.459,-13.9641,-69.4807,-16.865,-13.0648,-69.5615,-17.0599,-12.0039,-68.9066,-15.4789,-14.565,-69.2507,-16.3098,-13.9641,-69.2507,-16.3098,-13.9641,-69.4807,-16.865,-13.0648,-70.4608,-16.459,-12.0039 +,-69.5615,-17.0599,-12.0039,-69.2507,-15.249,-14.565,-69.8867,-15.8849,-13.9641,-69.2507,-16.3098,-13.9641,-70.3116,-16.3098,-13.0648,-69.4807,-16.865,-13.0648,-69.8867,-15.8849,-13.9641,-70.8667,-15.4789,-13.0648,-70.3116,-16.3098,-13.0648,-69.4807,-14.9048,-14.565,-70.3116,-16.3098,-13.0648,-71.0617,-15.5597,-12.0039,-70.4608,-16.459,-12.0039,-70.3116,-15.249,-13.9641,-70.4608,-14.4989,-13.9641,-71.0617,-14.4989,-13.0648,-69.5615,-14.4989,-14.565 +,-71.2727,-14.4989,-12.0039,-70.4608,-14.4989,-13.9641,-70.8667,-13.5188,-13.0648,-71.0617,-13.438,-12.0039,-70.3116,-13.7487,-13.9641,-70.4608,-14.4989,-13.9641,-70.3116,-13.7487,-13.9641,-69.4807,-14.0929,-14.565,-69.2507,-13.7487,-14.565,-69.8867,-13.1128,-13.9641,-69.8867,-13.1128,-13.9641,-70.3116,-12.6879,-13.0648,-70.4608,-12.5387,-12.0039,-69.8867,-13.1128,-13.9641,-69.4807,-12.1327,-13.0648,-70.3116,-12.6879,-13.0648,-68.9066,-13.5188,-14.565 +,-70.3116,-12.6879,-13.0648,-69.5615,-11.9378,-12.0039,-70.4608,-12.5387,-12.0039,-69.2507,-12.6879,-13.9641,-68.5006,-12.5387,-13.9641,-69.2507,-12.6879,-13.9641,-59.8727,-11.9378,-13.0648,-59.1226,-12.6879,-13.9641,-58.8926,-12.1327,-13.0648,-59.8727,-13.438,-14.565,-59.8727,-14.4989,-14.776,-59.4667,-13.5188,-14.565,-59.8727,-11.7268,-12.0039,-58.8119,-11.9378,-12.0039,-59.8727,-12.5387,-13.9641,-59.1226,-12.6879,-13.9641,-57.9125,-12.5387,-12.0039 +,-59.1226,-12.6879,-13.9641,-59.1226,-13.7487,-14.565,-58.4867,-13.1128,-13.9641,-58.0617,-12.6879,-13.0648,-58.8926,-14.0929,-14.565,-58.0617,-13.7487,-13.9641,-58.0617,-12.6879,-13.0648,-58.0617,-13.7487,-13.9641,-57.5066,-13.5188,-13.0648,-58.0617,-12.6879,-13.0648,-57.3116,-13.438,-12.0039,-57.9125,-12.5387,-12.0039,-58.0617,-13.7487,-13.9641,-57.3116,-14.4989,-13.0648,-58.8119,-14.4989,-14.565,-57.1006,-14.4989,-12.0039,-58.8926,-14.0929,-14.565 +,-57.9125,-14.4989,-13.9641,-58.0617,-13.7487,-13.9641,-58.8926,-14.9048,-14.565,-57.5066,-15.4789,-13.0648,-57.3116,-15.5597,-12.0039,-57.9125,-14.4989,-13.9641,-58.0617,-15.249,-13.9641,-58.0617,-15.249,-13.9641,-57.5066,-15.4789,-13.0648,-57.9125,-16.459,-12.0039,-57.3116,-15.5597,-12.0039,-58.4867,-15.8849,-13.9641,-58.0617,-15.249,-13.9641,-58.0617,-16.3098,-13.0648,-57.5066,-15.4789,-13.0648,-59.1226,-15.249,-14.565,-58.0617,-16.3098,-13.0648 +,-59.1226,-16.3098,-13.9641,-58.8926,-16.865,-13.0648,-59.4667,-15.4789,-14.565,-58.0617,-16.3098,-13.0648,-58.8119,-17.0599,-12.0039,-57.9125,-16.459,-12.0039,-59.1226,-16.3098,-13.9641,-59.8727,-16.459,-13.9641,-59.8727,-17.0599,-13.0648,-59.8727,-15.5597,-14.565,-59.8727,-17.2709,-12.0039,-59.1226,-16.3098,-13.9641,-59.8727,-16.459,-13.9641,-60.8528,-16.865,-13.0648,-60.9335,-17.0599,-12.0039,-59.8727,-16.459,-13.9641,-60.2787,-15.4789,-14.565 +,-60.6228,-16.3098,-13.9641,-60.9335,-17.0599,-12.0039,-61.6836,-16.3098,-13.0648,-61.8328,-16.459,-12.0039,-60.6228,-15.249,-14.565,-61.2587,-15.8849,-13.9641,-60.8528,-16.865,-13.0648,-61.2587,-15.8849,-13.9641,-61.6836,-16.3098,-13.0648,-61.6836,-15.249,-13.9641,-62.2388,-15.4789,-13.0648,-60.8528,-14.9048,-14.565,-61.6836,-16.3098,-13.0648,-62.4338,-15.5597,-12.0039,-61.8328,-16.459,-12.0039,-61.6836,-15.249,-13.9641,-61.8328,-14.4989,-13.9641 +,-62.4338,-14.4989,-13.0648,-60.9335,-14.4989,-14.565,-62.6448,-14.4989,-12.0039,-61.8328,-14.4989,-13.9641,-61.6836,-15.249,-13.9641,-62.4338,-13.438,-12.0039,-61.8328,-14.4989,-13.9641,-60.8528,-14.0929,-14.565,-61.6836,-13.7487,-13.9641,-62.2388,-13.5188,-13.0648,-61.2587,-13.1128,-13.9641,-61.6836,-13.7487,-13.9641,-61.6836,-12.6879,-13.0648,-60.6228,-13.7487,-14.565,-61.8328,-12.5387,-12.0039,-61.6836,-12.6879,-13.0648,-60.6228,-12.6879,-13.9641 +,-60.8528,-12.1327,-13.0648,-60.2787,-13.5188,-14.565,-61.8328,-12.5387,-12.0039,-60.9335,-11.9378,-12.0039,-60.6228,-12.6879,-13.9641,-60.6228,-12.6879,-13.9641,-59.8727,-12.5387,-13.9641,-10.1476,-18.1194,-11.9936,-7.5198,-9.2673,-9.0983,-10.1476,-10.8783,-12.0081,-43.7197,-9.2673,-9.1057,-40.1955,-18.1194,-11.9936,-40.1955,-10.8783,-12.0143,-10.1476,-10.8783,-12.0081,-40.1955,-18.1194,-11.9936,-10.1476,-18.1194,-11.9936,-40.1955,-18.1194,-11.9936 +,-7.5198,-19.7304,-9.081,-10.1476,-18.1194,-11.9936,-40.1955,-10.8783,-12.0143,-7.5198,-9.2673,-9.0983,-43.7197,-9.2673,-9.1057,-33.6061,-12.5387,-13.9641,-32.626,-12.1327,-13.0648,-33.6061,-11.9378,-13.0648,-33.6061,-13.438,-14.565,-33.6061,-14.4989,-14.776,-33.2002,-13.5188,-14.565,-32.5453,-11.9378,-12.0039,-33.6061,-11.7268,-12.0039,-33.6061,-12.5387,-13.9641,-32.856,-12.6879,-13.9641,-31.7952,-12.6879,-13.0648,-31.646,-12.5387,-12.0039 +,-32.856,-13.7487,-14.565,-32.2201,-13.1128,-13.9641,-32.856,-12.6879,-13.9641,-31.7952,-13.7487,-13.9641,-31.7952,-12.6879,-13.0648,-31.7952,-13.7487,-13.9641,-31.24,-13.5188,-13.0648,-32.626,-14.0929,-14.565,-31.646,-12.5387,-12.0039,-31.0451,-13.438,-12.0039,-31.646,-14.4989,-13.9641,-31.0451,-14.4989,-13.0648,-32.5453,-14.4989,-14.565,-30.834,-14.4989,-12.0039,-32.626,-14.0929,-14.565,-31.646,-14.4989,-13.9641,-31.7952,-13.7487,-13.9641 +,-32.626,-14.9048,-14.565,-31.0451,-15.5597,-12.0039,-31.7952,-15.249,-13.9641,-31.646,-14.4989,-13.9641,-31.24,-15.4789,-13.0648,-31.24,-15.4789,-13.0648,-31.646,-16.459,-12.0039,-31.0451,-15.5597,-12.0039,-32.856,-15.249,-14.565,-32.2201,-15.8849,-13.9641,-31.7952,-15.249,-13.9641,-31.7952,-16.3098,-13.0648,-31.24,-15.4789,-13.0648,-31.7952,-16.3098,-13.0648,-32.856,-16.3098,-13.9641,-32.626,-16.865,-13.0648,-33.2002,-15.4789,-14.565 +,-31.7952,-16.3098,-13.0648,-32.5453,-17.0599,-12.0039,-31.646,-16.459,-12.0039,-32.856,-16.3098,-13.9641,-33.6061,-16.459,-13.9641,-33.6061,-17.0599,-13.0648,-33.6061,-15.5597,-14.565,-33.6061,-17.2709,-12.0039,-33.6061,-16.459,-13.9641,-32.856,-16.3098,-13.9641,-34.667,-17.0599,-12.0039,-33.6061,-16.459,-13.9641,-34.0121,-15.4789,-14.565,-34.3562,-16.3098,-13.9641,-34.3562,-16.3098,-13.9641,-34.5862,-16.865,-13.0648,-34.667,-17.0599,-12.0039 +,-35.4171,-16.3098,-13.0648,-35.5663,-16.459,-12.0039,-34.3562,-15.249,-14.565,-34.9922,-15.8849,-13.9641,-34.3562,-16.3098,-13.9641,-34.5862,-16.865,-13.0648,-34.9922,-15.8849,-13.9641,-35.9722,-15.4789,-13.0648,-35.4171,-16.3098,-13.0648,-34.5862,-14.9048,-14.565,-35.5663,-16.459,-12.0039,-36.1672,-15.5597,-12.0039,-35.4171,-15.249,-13.9641,-35.5663,-14.4989,-13.9641,-36.1672,-14.4989,-13.0648,-34.667,-14.4989,-14.565,-36.3782,-14.4989,-12.0039 +,-35.5663,-14.4989,-13.9641,-35.9722,-13.5188,-13.0648,-36.1672,-13.438,-12.0039,-35.4171,-13.7487,-13.9641,-35.5663,-14.4989,-13.9641,-34.5862,-14.0929,-14.565,-34.3562,-13.7487,-14.565,-34.9922,-13.1128,-13.9641,-34.9922,-13.1128,-13.9641,-35.4171,-12.6879,-13.0648,-35.5663,-12.5387,-12.0039,-35.4171,-12.6879,-13.0648,-34.3562,-12.6879,-13.9641,-34.5862,-12.1327,-13.0648,-34.0121,-13.5188,-14.565,-35.4171,-12.6879,-13.0648,-34.6669,-11.9378,-12.0039 +,-35.5663,-12.5387,-12.0039,-34.3562,-12.6879,-13.9641,-33.6061,-12.5387,-13.9641,-34.3562,-12.6879,-13.9641,-24.7086,-12.5387,-13.9641,-23.7285,-12.1327,-13.0648,-24.7086,-11.9378,-13.0648,-24.7086,-13.438,-14.565,-24.7086,-14.4989,-14.776,-24.3026,-13.5188,-14.565,-23.6477,-11.9378,-12.0039,-24.7086,-11.7268,-12.0039,-23.9584,-12.6879,-13.9641,-24.7086,-12.5387,-13.9641,-22.7484,-12.5387,-12.0039,-23.3225,-13.1128,-13.9641,-23.3225,-13.1128,-13.9641 +,-22.8976,-12.6879,-13.0648,-23.9584,-13.7487,-14.565,-23.7285,-14.0929,-14.565,-22.8976,-13.7487,-13.9641,-22.8976,-12.6879,-13.0648,-22.8976,-13.7487,-13.9641,-22.3424,-13.5188,-13.0648,-22.8976,-12.6879,-13.0648,-22.1475,-13.438,-12.0039,-22.7484,-12.5387,-12.0039,-22.7484,-14.4989,-13.9641,-22.1475,-14.4989,-13.0648,-23.6477,-14.4989,-14.565,-21.9365,-14.4989,-12.0039,-22.8976,-13.7487,-13.9641,-23.6477,-14.4989,-14.565,-22.7484,-14.4989,-13.9641 +,-23.7285,-14.9048,-14.565,-22.1475,-15.5597,-12.0039,-22.8976,-15.249,-13.9641,-22.7484,-14.4989,-13.9641,-22.8976,-15.249,-13.9641,-22.3424,-15.4789,-13.0648,-22.3424,-15.4789,-13.0648,-22.7484,-16.459,-12.0039,-22.1475,-15.5597,-12.0039,-23.3225,-15.8849,-13.9641,-22.8976,-15.249,-13.9641,-22.8976,-16.3098,-13.0648,-22.3424,-15.4789,-13.0648,-23.9584,-15.249,-14.565,-23.3225,-15.8849,-13.9641,-23.7285,-16.865,-13.0648,-22.8976,-16.3098,-13.0648 +,-24.3026,-15.4789,-14.565,-22.7484,-16.459,-12.0039,-23.6477,-17.0599,-12.0039,-23.9584,-16.3098,-13.9641,-24.7086,-16.459,-13.9641,-24.7086,-17.0599,-13.0648,-24.7086,-15.5597,-14.565,-24.7086,-17.2709,-12.0039,-24.7086,-16.459,-13.9641,-25.7694,-17.0599,-12.0039,-24.7086,-16.459,-13.9641,-25.1145,-15.4789,-14.565,-25.4587,-16.3098,-13.9641,-25.4587,-16.3098,-13.9641,-25.6886,-16.865,-13.0648,-25.6886,-16.865,-13.0648,-26.6687,-16.459,-12.0039 +,-25.7694,-17.0599,-12.0039,-25.4587,-15.249,-14.565,-26.0946,-15.8849,-13.9641,-25.6886,-16.865,-13.0648,-26.0946,-15.8849,-13.9641,-26.5195,-16.3098,-13.0648,-26.0946,-15.8849,-13.9641,-27.0747,-15.4789,-13.0648,-26.5195,-16.3098,-13.0648,-25.6886,-14.9048,-14.565,-26.6687,-16.459,-12.0039,-27.2696,-15.5597,-12.0039,-26.5195,-15.249,-13.9641,-26.5195,-15.249,-13.9641,-27.2696,-14.4989,-13.0648,-25.7694,-14.4989,-14.565,-27.4806,-14.4989,-12.0039 +,-26.6687,-14.4989,-13.9641,-27.0747,-13.5188,-13.0648,-27.2696,-13.438,-12.0039,-26.5195,-13.7487,-13.9641,-26.5195,-13.7487,-13.9641,-25.6886,-14.0929,-14.565,-25.4587,-13.7487,-14.565,-26.0946,-13.1128,-13.9641,-26.0946,-13.1128,-13.9641,-26.5195,-12.6879,-13.0648,-26.6687,-12.5387,-12.0039,-26.5195,-12.6879,-13.0648,-25.4587,-12.6879,-13.9641,-25.6886,-12.1327,-13.0648,-25.1145,-13.5188,-14.565,-26.5195,-12.6879,-13.0648,-25.7694,-11.9378,-12.0039 +,-26.6687,-12.5387,-12.0039,-25.4587,-12.6879,-13.9641,-25.4587,-12.6879,-13.9641,-24.7086,-12.5387,-13.9641,-16.0806,-11.9378,-13.0648,-15.3305,-12.6879,-13.9641,-15.1005,-12.1327,-13.0648,-16.0806,-13.438,-14.565,-16.0806,-14.4989,-14.776,-15.6747,-13.5188,-14.565,-15.0198,-11.9378,-12.0039,-16.0806,-11.7268,-12.0039,-16.0806,-12.5387,-13.9641,-15.3305,-12.6879,-13.9641,-14.1205,-12.5387,-12.0039,-15.3305,-12.6879,-13.9641,-15.3305,-13.7487,-14.565 +,-14.6946,-13.1128,-13.9641,-14.6946,-13.1128,-13.9641,-14.2697,-12.6879,-13.0648,-14.2697,-13.7487,-13.9641,-14.2697,-12.6879,-13.0648,-14.2697,-13.7487,-13.9641,-13.7145,-13.5188,-13.0648,-15.1005,-14.0929,-14.565,-14.1205,-12.5387,-12.0039,-13.5196,-13.438,-12.0039,-14.2697,-13.7487,-13.9641,-13.5196,-14.4989,-13.0648,-15.0198,-14.4989,-14.565,-13.3085,-14.4989,-12.0039,-15.1005,-14.0929,-14.565,-14.1205,-14.4989,-13.9641,-14.2697,-13.7487,-13.9641 +,-15.1005,-14.9048,-14.565,-13.5196,-15.5597,-12.0039,-14.1205,-14.4989,-13.9641,-14.2697,-15.249,-13.9641,-14.2697,-15.249,-13.9641,-13.7145,-15.4789,-13.0648,-13.7145,-15.4789,-13.0648,-14.1205,-16.459,-12.0039,-13.5196,-15.5597,-12.0039,-14.6946,-15.8849,-13.9641,-13.7145,-15.4789,-13.0648,-14.6946,-15.8849,-13.9641,-14.2697,-16.3098,-13.0648,-15.3305,-15.249,-14.565,-14.2697,-16.3098,-13.0648,-15.3305,-16.3098,-13.9641,-15.1005,-16.865,-13.0648 +,-15.6747,-15.4789,-14.565,-14.1205,-16.459,-12.0039,-15.0198,-17.0599,-12.0039,-15.3305,-16.3098,-13.9641,-16.0806,-16.459,-13.9641,-16.0806,-17.0599,-13.0648,-16.0806,-15.5597,-14.565,-16.0806,-17.2709,-12.0039,-16.0806,-16.459,-13.9641,-15.3305,-16.3098,-13.9641,-17.1414,-17.0599,-12.0039,-16.8307,-16.3098,-13.9641,-16.0806,-16.459,-13.9641,-17.0607,-16.865,-13.0648,-16.4866,-15.4789,-14.565,-17.1414,-17.0599,-12.0039,-17.8916,-16.3098,-13.0648 +,-18.0408,-16.459,-12.0039,-17.4667,-15.8849,-13.9641,-16.8307,-16.3098,-13.9641,-17.0607,-16.865,-13.0648,-16.8307,-15.249,-14.565,-17.8916,-16.3098,-13.0648,-17.8916,-15.249,-13.9641,-18.4467,-15.4789,-13.0648,-17.0607,-14.9048,-14.565,-17.8916,-16.3098,-13.0648,-18.6417,-15.5597,-12.0039,-18.0408,-16.459,-12.0039,-17.8916,-15.249,-13.9641,-18.6417,-14.4989,-13.0648,-17.1414,-14.4989,-14.565,-18.8527,-14.4989,-12.0039,-17.8916,-15.249,-13.9641 +,-18.0408,-14.4989,-13.9641,-18.6417,-13.438,-12.0039,-17.0607,-14.0929,-14.565,-17.8916,-13.7487,-13.9641,-18.0408,-14.4989,-13.9641,-18.4467,-13.5188,-13.0648,-17.4667,-13.1128,-13.9641,-17.4667,-13.1128,-13.9641,-17.8916,-12.6879,-13.0648,-16.8307,-13.7487,-14.565,-18.0408,-12.5387,-12.0039,-17.8916,-12.6879,-13.0648,-16.8307,-12.6879,-13.9641,-17.0607,-12.1327,-13.0648,-16.4866,-13.5188,-14.565,-17.8916,-12.6879,-13.0648,-17.1414,-11.9378,-12.0039 +,-18.0408,-12.5387,-12.0039,-16.8307,-12.6879,-13.9641,-16.8307,-12.6879,-13.9641,-16.0806,-12.5387,-13.9641,74.6153,3.7261,-15.8233,69.0621,-59.2334,-15.8233,74.6153,-59.2334,-15.8233,76.5934,5.9063,-9.115,69.0621,3.7261,-15.8233,74.6153,3.7261,-15.8233,67.084,-59.2334,-9.115,69.0621,3.7261,-15.8233,67.084,5.9063,-9.115,76.5934,-59.2334,-9.115,74.6153,3.7261,-15.8233,74.6153,-59.2334,-15.8233,89.3546,3.7261,-15.8233 +,83.8015,-59.2334,-15.8233,89.3546,-59.2334,-15.8233,91.3327,5.9063,-9.115,83.8015,3.7261,-15.8233,89.3546,3.7261,-15.8233,81.8234,-59.2334,-9.115,83.8015,3.7261,-15.8233,81.8234,5.9063,-9.115,91.3327,-59.2334,-9.115,89.3546,3.7261,-15.8233,89.3546,-59.2334,-15.8233,0,55.9063,-6.4341,107.9444,53.2254,-9.115,107.9444,55.9063,-6.4341,0,55.9063,10.885,107.9444,55.9063,-6.4341,107.9444,55.9063,10.885 +,0,59.2334,-9.1151,-1.7869,54.1643,-9.1151,-1.7646,59.2334,-9.1151,11.4427,53.2253,-9.1151,11.5666,6.8026,-9.1151,9.485,53.2253,-15.0125,2.0696,54.1643,-15.9234,2.9294,53.2254,-15.0125,-0.017,53.2254,-12.7284,-0.1387,8.853,-9.1151,-0.1387,8.853,-12.7284,2.9294,53.2254,-15.0125,9.485,53.2253,-15.0125,10.6382,59.2334,-15.9234,2.0696,54.1643,-15.9234,10.6502,54.1643,-15.9234,2.0696,54.1643,-15.9234 +,-1.7646,59.2334,-12.9336,-1.7869,54.1643,-12.9336,-1.7869,54.1643,-12.9336,-1.7646,59.2334,-9.1151,-1.7869,54.1643,-9.1151,13.1899,59.2334,-9.1151,11.8946,54.1643,-12.8269,13.2126,54.1643,-9.1151,11.8721,59.2334,-12.9336,10.6502,54.1643,-15.9234,11.4253,59.2334,-9.1151,13.2126,54.1643,-9.1151,11.4427,53.2253,-9.1151,2.0576,59.2334,-15.9234,10.6382,59.2334,-15.9234,-0.017,53.2254,-12.7284,2.0696,54.1643,-15.9234 +,-1.7869,54.1643,-12.9336,0,59.2334,-12.7284,2.0576,59.2334,-15.9234,11.4427,53.2253,-9.1151,10.4357,53.2253,-12.6468,11.4253,59.2334,-9.1151,13.1899,59.2334,-9.1151,-1.7646,59.2334,-9.1151,-1.7646,59.2334,-12.9336,11.4253,59.2334,-9.1151,-0.017,53.2254,-9.1151,0,59.2334,-9.1151,0,5.9063,10.885,107.9444,55.9063,10.885,107.9444,5.9063,10.885,0,-59.2334,10.885,-107.9444,-59.2334,10.885 +,-107.9444,5.9063,10.885,103.817,24.0762,15.9234,64.5352,20.5405,10.885,62.8079,24.0762,15.9234,51.8318,-59.2334,15.8949,55.1009,6.7233,10.8682,55.1009,-59.2334,10.851,23.0665,17.5899,15.9156,18.901,-59.2334,10.851,18.901,20.3238,10.8757,103.817,45.4439,15.9234,62.8079,24.0762,15.9234,44.1664,45.4439,15.9234,41.1949,48.5248,10.885,103.817,45.4439,15.9234,44.1664,45.4439,15.9234,51.8318,8.0076,15.9094 +,51.8318,8.0076,15.9094,64.5352,20.5405,10.885,44.1664,45.4439,15.9234,18.901,20.3238,10.8757,41.1949,48.5248,10.885,23.0665,-59.2334,15.8949,51.8318,-59.2334,15.8949,103.817,24.0762,15.9234,107.9444,48.5248,10.885,107.9444,20.5405,10.885,-107.9444,-32.723,14.75,22.7983,-27.8889,14.784,22.7983,-32.723,14.75,0,5.9063,-9.115,0,55.9063,-6.4341,0,53.2254,-9.115,-107.9444,5.9063,-9.115 +,-107.9444,5.9063,-9.115,22.7983,-24.5074,-9.149,22.7983,-24.5074,10.885,22.7983,-32.723,-13.0141,-107.9444,-27.8889,-13.048,22.7983,-32.723,14.75,107.9444,20.5405,-9.115,55.1009,-59.2334,-9.081,103.817,24.0762,-14.1534,-1.7869,54.1643,-12.9336,0.3558,-4.6356,-9.1151,10.6382,59.2334,-15.9234,-0.062,-3.9057,-12.0638,10.5586,6.9814,-12.0638,-107.9444,6.0981,-12.7284,-107.9444,2.9589,-15.0125,9.485,53.2253,-15.0125 +,9.5505,7.1601,-15.0125,-107.9444,6.0981,-9.1151,11.5666,6.8026,-9.1151,10.5586,6.9814,-12.0638,-0.4798,-3.1758,-15.0125,44.1664,45.4439,-14.1534,23.0665,17.5899,-14.1456,51.8318,8.0076,-14.1394,55.1009,6.7233,-9.0982,41.1949,48.5248,-9.115,107.9444,20.5405,-9.115,-51.3119,-19.7304,-9.081,-87.5118,-19.7304,-9.081,-83.9876,-10.8783,-12.0143,-87.5118,-19.7304,-9.081,-53.9397,-10.8783,-12.0081,-76.6481,-12.6879,-13.9641 +,-77.3982,-12.5387,-13.9641,-76.6481,-12.6879,-13.9641,-76.0122,-13.1128,-13.9641,-75.5872,-12.6879,-13.0648,-76.0122,-13.1128,-13.9641,-75.5872,-13.7487,-13.9641,-75.438,-12.5387,-12.0039,-75.5872,-12.6879,-13.0648,-75.5872,-13.7487,-13.9641,-76.4181,-14.0929,-14.565,-76.3374,-14.4989,-14.565,-75.438,-14.4989,-13.9641,-75.438,-14.4989,-13.9641,-75.5872,-15.249,-13.9641,-75.0321,-15.4789,-13.0648,-75.0321,-15.4789,-13.0648,-75.5872,-15.249,-13.9641 +,-76.0122,-15.8849,-13.9641,-75.5872,-16.3098,-13.0648,-76.0122,-15.8849,-13.9641,-75.5872,-16.3098,-13.0648,-76.6481,-16.3098,-13.9641,-77.3982,-16.459,-13.9641,-77.3982,-16.459,-13.9641,-78.1483,-16.3098,-13.9641,-78.459,-17.0599,-12.0039,-78.3783,-16.865,-13.0648,-78.1483,-16.3098,-13.9641,-78.7842,-15.8849,-13.9641,-78.7842,-15.8849,-13.9641,-79.2091,-15.249,-13.9641,-79.2091,-16.3098,-13.0648,-79.2091,-15.249,-13.9641,-79.2091,-13.7487,-13.9641 +,-79.2091,-13.7487,-13.9641,-78.7842,-13.1128,-13.9641,-79.2091,-12.6879,-13.0648,-78.7842,-13.1128,-13.9641,-79.2091,-12.6879,-13.0648,-77.3982,-12.5387,-13.9641,-67.7505,-12.6879,-13.9641,-67.7505,-12.6879,-13.9641,-67.1146,-13.1128,-13.9641,-66.6897,-12.6879,-13.0648,-67.1146,-13.1128,-13.9641,-66.6897,-13.7487,-13.9641,-66.6897,-12.6879,-13.0648,-66.6897,-13.7487,-13.9641,-66.5405,-14.4989,-13.9641,-67.5206,-14.0929,-14.565,-67.4398,-14.4989,-14.565 +,-66.5405,-14.4989,-13.9641,-66.5405,-14.4989,-13.9641,-66.6897,-15.249,-13.9641,-66.1345,-15.4789,-13.0648,-66.6897,-15.249,-13.9641,-67.1146,-15.8849,-13.9641,-67.1146,-15.8849,-13.9641,-67.7505,-16.3098,-13.9641,-66.5405,-16.459,-12.0039,-66.6897,-16.3098,-13.0648,-67.7505,-16.3098,-13.9641,-68.5006,-16.459,-13.9641,-68.5006,-16.459,-13.9641,-69.2507,-16.3098,-13.9641,-69.4807,-16.865,-13.0648,-69.2507,-16.3098,-13.9641,-69.8867,-15.8849,-13.9641 +,-69.8867,-15.8849,-13.9641,-70.3116,-15.249,-13.9641,-70.3116,-16.3098,-13.0648,-70.3116,-15.249,-13.9641,-70.3116,-13.7487,-13.9641,-70.3116,-13.7487,-13.9641,-69.8867,-13.1128,-13.9641,-69.8867,-13.1128,-13.9641,-69.2507,-12.6879,-13.9641,-70.3116,-12.6879,-13.0648,-68.5006,-12.5387,-13.9641,-69.2507,-12.6879,-13.9641,-59.8727,-12.5387,-13.9641,-59.1226,-12.6879,-13.9641,-58.4867,-13.1128,-13.9641,-58.0617,-12.6879,-13.0648,-58.4867,-13.1128,-13.9641 +,-58.0617,-13.7487,-13.9641,-58.0617,-12.6879,-13.0648,-58.0617,-13.7487,-13.9641,-57.9125,-14.4989,-13.9641,-58.8926,-14.0929,-14.565,-58.8119,-14.4989,-14.565,-57.9125,-14.4989,-13.9641,-57.9125,-14.4989,-13.9641,-58.0617,-15.249,-13.9641,-57.5066,-15.4789,-13.0648,-58.0617,-15.249,-13.9641,-58.4867,-15.8849,-13.9641,-58.0617,-16.3098,-13.0648,-58.4867,-15.8849,-13.9641,-58.0617,-16.3098,-13.0648,-59.1226,-16.3098,-13.9641,-59.8727,-16.459,-13.9641 +,-60.6228,-16.3098,-13.9641,-60.9335,-17.0599,-12.0039,-60.8528,-16.865,-13.0648,-60.8528,-16.865,-13.0648,-60.6228,-16.3098,-13.9641,-61.2587,-15.8849,-13.9641,-61.6836,-16.3098,-13.0648,-61.2587,-15.8849,-13.9641,-61.6836,-16.3098,-13.0648,-61.8328,-14.4989,-13.9641,-61.8328,-14.4989,-13.9641,-61.6836,-13.7487,-13.9641,-61.6836,-13.7487,-13.9641,-61.2587,-13.1128,-13.9641,-61.6836,-12.6879,-13.0648,-61.2587,-13.1128,-13.9641,-61.8328,-12.5387,-12.0039 +,-61.6836,-12.6879,-13.0648,-60.6228,-12.6879,-13.9641,-60.6228,-12.6879,-13.9641,-59.8727,-12.5387,-13.9641,-7.5198,-19.7304,-9.081,-43.7197,-19.7304,-9.081,-40.1955,-10.8783,-12.0143,-43.7197,-19.7304,-9.081,-10.1476,-10.8783,-12.0081,-32.856,-12.6879,-13.9641,-33.6061,-12.5387,-13.9641,-32.856,-12.6879,-13.9641,-32.2201,-13.1128,-13.9641,-31.7952,-12.6879,-13.0648,-32.2201,-13.1128,-13.9641,-31.7952,-13.7487,-13.9641,-31.646,-12.5387,-12.0039 +,-31.7952,-12.6879,-13.0648,-31.7952,-13.7487,-13.9641,-32.626,-14.0929,-14.565,-32.5453,-14.4989,-14.565,-31.646,-14.4989,-13.9641,-31.7952,-15.249,-13.9641,-31.24,-15.4789,-13.0648,-31.7952,-15.249,-13.9641,-32.2201,-15.8849,-13.9641,-31.7952,-16.3098,-13.0648,-32.2201,-15.8849,-13.9641,-31.7952,-16.3098,-13.0648,-32.856,-16.3098,-13.9641,-33.6061,-16.459,-13.9641,-33.6061,-16.459,-13.9641,-34.3562,-16.3098,-13.9641,-34.667,-17.0599,-12.0039 +,-34.5862,-16.865,-13.0648,-34.3562,-16.3098,-13.9641,-34.9922,-15.8849,-13.9641,-34.9922,-15.8849,-13.9641,-35.4171,-15.249,-13.9641,-35.5663,-16.459,-12.0039,-35.4171,-16.3098,-13.0648,-35.4171,-15.249,-13.9641,-35.4171,-13.7487,-13.9641,-35.4171,-13.7487,-13.9641,-34.9922,-13.1128,-13.9641,-35.4171,-12.6879,-13.0648,-34.9922,-13.1128,-13.9641,-35.4171,-12.6879,-13.0648,-34.3562,-12.6879,-13.9641,-33.6061,-12.5387,-13.9641,-23.9584,-12.6879,-13.9641 +,-23.9584,-12.6879,-13.9641,-23.3225,-13.1128,-13.9641,-22.8976,-12.6879,-13.0648,-23.3225,-13.1128,-13.9641,-22.8976,-13.7487,-13.9641,-22.8976,-12.6879,-13.0648,-22.8976,-13.7487,-13.9641,-22.8976,-13.7487,-13.9641,-23.7285,-14.0929,-14.565,-23.6477,-14.4989,-14.565,-22.8976,-15.249,-13.9641,-22.3424,-15.4789,-13.0648,-22.8976,-15.249,-13.9641,-23.3225,-15.8849,-13.9641,-23.3225,-15.8849,-13.9641,-23.9584,-16.3098,-13.9641,-22.7484,-16.459,-12.0039 +,-22.8976,-16.3098,-13.0648,-23.9584,-16.3098,-13.9641,-24.7086,-16.459,-13.9641,-25.4587,-16.3098,-13.9641,-25.6886,-16.865,-13.0648,-25.6886,-16.865,-13.0648,-25.4587,-16.3098,-13.9641,-26.0946,-15.8849,-13.9641,-26.0946,-15.8849,-13.9641,-26.5195,-15.249,-13.9641,-26.6687,-16.459,-12.0039,-26.5195,-16.3098,-13.0648,-26.5195,-15.249,-13.9641,-26.6687,-14.4989,-13.9641,-26.6687,-14.4989,-13.9641,-26.5195,-13.7487,-13.9641,-26.5195,-13.7487,-13.9641 +,-26.0946,-13.1128,-13.9641,-26.5195,-12.6879,-13.0648,-26.0946,-13.1128,-13.9641,-26.5195,-12.6879,-13.0648,-25.4587,-12.6879,-13.9641,-25.4587,-12.6879,-13.9641,-16.0806,-12.5387,-13.9641,-15.3305,-12.6879,-13.9641,-14.6946,-13.1128,-13.9641,-14.2697,-12.6879,-13.0648,-14.6946,-13.1128,-13.9641,-14.2697,-13.7487,-13.9641,-14.1205,-12.5387,-12.0039,-14.2697,-12.6879,-13.0648,-14.2697,-13.7487,-13.9641,-14.1205,-14.4989,-13.9641,-15.1005,-14.0929,-14.565 +,-15.0198,-14.4989,-14.565,-14.1205,-14.4989,-13.9641,-14.1205,-14.4989,-13.9641,-14.2697,-15.249,-13.9641,-13.7145,-15.4789,-13.0648,-13.7145,-15.4789,-13.0648,-14.2697,-15.249,-13.9641,-14.6946,-15.8849,-13.9641,-14.2697,-16.3098,-13.0648,-14.6946,-15.8849,-13.9641,-14.1205,-16.459,-12.0039,-14.2697,-16.3098,-13.0648,-16.0806,-16.459,-13.9641,-16.8307,-16.3098,-13.9641,-17.1414,-17.0599,-12.0039,-17.0607,-16.865,-13.0648,-16.8307,-16.3098,-13.9641 +,-17.4667,-15.8849,-13.9641,-17.8916,-16.3098,-13.0648,-17.4667,-15.8849,-13.9641,-17.8916,-16.3098,-13.0648,-18.0408,-14.4989,-13.9641,-17.8916,-15.249,-13.9641,-18.0408,-14.4989,-13.9641,-17.8916,-13.7487,-13.9641,-17.8916,-13.7487,-13.9641,-17.4667,-13.1128,-13.9641,-17.8916,-12.6879,-13.0648,-17.4667,-13.1128,-13.9641,-17.8916,-12.6879,-13.0648,-16.0806,-12.5387,-13.9641,69.0621,3.7261,-15.8233,67.084,5.9063,-9.115,69.0621,-59.2334,-15.8233 +,76.5934,5.9063,-9.115,83.8015,3.7261,-15.8233,81.8234,5.9063,-9.115,83.8015,-59.2334,-15.8233,91.3327,5.9063,-9.115,0,53.2254,-9.115,0,55.9063,-6.4341,-0.017,53.2254,-9.1151,10.6502,54.1643,-15.9234,-0.017,53.2254,-9.1151,-0.017,53.2254,-12.7284,2.9294,53.2254,-15.0125,2.0576,59.2334,-15.9234,2.0576,59.2334,-15.9234,-1.7646,59.2334,-12.9336,10.6382,59.2334,-15.9234,13.1899,59.2334,-9.1151 +,-0.017,53.2254,-12.7284,2.9294,53.2254,-15.0125,13.2126,54.1643,-9.1151,11.4253,59.2334,-9.1151,11.4427,53.2253,-9.1151,0,55.9063,10.885,107.9444,-59.2334,10.885,107.9444,20.5405,10.885,23.0665,-59.2334,15.8949,103.817,24.0762,15.9234,107.9444,48.5248,10.885,23.0665,17.5899,15.9156,62.8079,24.0762,15.9234,44.1664,45.4439,15.9234,23.0665,17.5899,15.9156,18.901,20.3238,10.8757,103.817,45.4439,15.9234 +,-107.9444,-27.8889,14.784] +,"normals":[-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0.755,-0.655,0,0.755,-0.655,0,0.755,-0.655,0,0.755,0.655,0,0.755,0.655 +,0,0.755,0.655,0,-0.765,-0.644,0,-0.765,-0.644,0,-0.765,-0.644,0,-0.007,-1,0,-0.007,-1,0,-0.007,-1,0,-0.765,0.644,0,-0.765,0.644,0,-0.765,0.644,0,-0.819,-0.574,0,-0.819,-0.574,0,-0.819,-0.574,0.839,0,-0.544,0.787,-0.235,-0.57,0.783,-0.248,-0.571,-0.699,0.2,-0.686 +,-0.771,0,-0.637,-0.771,0,-0.637,0,0,-1,0,0,-1,0,0,-1,-0.424,-0.861,-0.281,-0.469,-0.883,0,-0.469,-0.883,0,0.001,-0.971,-0.241,0.373,-0.887,-0.273,0.001,-0.971,-0.241,0,1,0,0,1,0,0,1,0,0.512,-0.834,-0.206,0.508,-0.843,-0.176,0.512,-0.834,-0.206 +,0.373,-0.887,-0.273,0.87,-0.374,-0.32,0.368,-0.889,-0.272,0,0,-1,0,0,-1,0,0,-1,-0.226,0.54,-0.811,0.001,0.589,-0.808,-0.214,0.549,-0.808,-0.532,0.26,-0.806,-0.552,0.206,-0.808,0,0,-1,0,0,-1,0.946,0,-0.323,0.87,-0.374,-0.32,0.876,-0.36,-0.32,-0.366,0.931,0 +,0.001,1,0,-0.366,0.931,0,-0.682,0.731,0,-0.682,0.731,0,0.381,-0.883,-0.273,0.876,-0.36,-0.32,0.373,-0.887,-0.273,0.368,-0.889,-0.272,0.001,-0.971,-0.241,0,1,0,0,1,0,-0.368,0.681,-0.633,0,0.853,-0.522,0,0.853,-0.522,0,0,-1,0.783,-0.248,-0.571,0.683,-0.467,-0.562 +,0.683,-0.467,-0.562,-0.288,0.729,-0.621,-0.679,0.252,-0.69,0,0,-1,0,0,-1,0.774,0,-0.634,0.774,0,-0.634,0.774,0,-0.634,0.742,-0.001,-0.67,0.742,-0.001,-0.67,0.743,-0.001,-0.67,-0.637,-0.002,-0.771,-0.637,-0.002,-0.771,-0.637,-0.002,-0.771,0,-0.002,-1,0,-0.003,-1,0,-0.002,-1 +,0,-0.875,-0.484,0,-0.875,-0.484,0,-0.875,-0.484,0,0.875,-0.484,0,0.875,-0.484,0,0.875,-0.484,0,0.719,-0.695,0.355,0.857,-0.374,0,0.927,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0,0.981,-0.195,0.375,0.906,-0.195,0,0.719,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374 +,0.694,0.694,-0.195,0.508,0.508,-0.695,0.275,0.664,-0.695,0.285,0.285,-0.915,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.372,0.154,-0.915,0.719,0,-0.695 +,0.664,0.275,-0.695,0.372,-0.154,-0.915,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.906,-0.375,-0.195,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.857,-0.355,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374 +,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.375,-0.906,-0.195 +,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.656,-0.656,-0.374,-0.372,-0.154,-0.915,-0.656,-0.656,-0.374,-0.906,-0.375,-0.195,-0.694,-0.694,-0.195,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915 +,-0.981,0,-0.195,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374 +,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.355,0.857,-0.374,0,0.927,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0.375,0.906,-0.195,0,0.981,-0.195,0.275,0.664,-0.695,0,0.719,-0.695,0.694,0.694,-0.195,0.508,0.508,-0.695 +,0.508,0.508,-0.695,0.656,0.656,-0.374,0.285,0.285,-0.915,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.664,0.275,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.372,0.154,-0.915,0.719,0,-0.695 +,0.664,0.275,-0.695,0.372,-0.154,-0.915,0.906,-0.375,-0.195,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.906,-0.375,-0.195,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.857,-0.355,-0.374,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.355,-0.857,-0.374 +,0.656,-0.656,-0.374,0.154,-0.372,-0.915,0.694,-0.694,-0.195,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0.275,-0.664,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,-0.355,-0.857,-0.374,-0.375,-0.906,-0.195,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.694,-0.694,-0.195 +,-0.375,-0.906,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.656,-0.656,-0.374,-0.355,-0.857,-0.374,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.656,-0.656,-0.374,-0.372,-0.154,-0.915,-0.656,-0.656,-0.374,-0.906,-0.375,-0.195,-0.694,-0.694,-0.195,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915 +,-0.981,0,-0.195,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.372,0.154,-0.915,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.508,0.508,-0.695,-0.355,0.857,-0.374,-0.656,0.656,-0.374,-0.154,0.372,-0.915 +,-0.656,0.656,-0.374,-0.375,0.906,-0.195,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,-0.275,0.664,-0.695,0,0.927,-0.374,0.275,0.664,-0.695,0.355,0.857,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0,0.981,-0.195,0.375,0.906,-0.195,0,0.719,-0.695,0.275,0.664,-0.695,0.694,0.694,-0.195 +,0.275,0.664,-0.695,0.285,0.285,-0.915,0.508,0.508,-0.695,0.656,0.656,-0.374,0.372,0.154,-0.915,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.664,0.275,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.372,0.154,-0.915 +,0.719,0,-0.695,0.664,0.275,-0.695,0.372,-0.154,-0.915,0.857,-0.355,-0.374,0.906,-0.375,-0.195,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.906,-0.375,-0.195,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.857,-0.355,-0.374,0.285,-0.285,-0.915,0.656,-0.656,-0.374 +,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.355,-0.857,-0.374,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915 +,-0.275,-0.664,-0.695,-0.375,-0.906,-0.195,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.355,-0.857,-0.374,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.656,-0.656,-0.374,-0.906,-0.375,-0.195,-0.694,-0.694,-0.195,-0.664,-0.275,-0.695,-0.719,0,-0.695 +,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.719,0,-0.695,-0.664,-0.275,-0.695,-0.906,0.375,-0.195,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.857,0.355,-0.374,-0.508,0.508,-0.695,-0.664,0.275,-0.695,-0.656,0.656,-0.374,-0.285,0.285,-0.915,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695 +,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.694,0.694,-0.195,-0.375,0.906,-0.195,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.742,-0.001,-0.67,0.742,-0.001,-0.67,0.743,-0.001,-0.67,-0.637,-0.002,-0.771,-0.637,-0.002,-0.771,-0.637,-0.002,-0.771,0,-0.002,-1,0,-0.003,-1,0,-0.002,-1,0,-0.875,-0.484 +,0,-0.875,-0.484,0,-0.875,-0.484,0,0.875,-0.484,0,0.875,-0.484,0,0.875,-0.484,0,0.719,-0.695,0.355,0.857,-0.374,0,0.927,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0.375,0.906,-0.195,0,0.981,-0.195,0,0.719,-0.695,0.275,0.664,-0.695,0.656,0.656,-0.374,0.694,0.694,-0.195 +,0.285,0.285,-0.915,0.508,0.508,-0.695,0.275,0.664,-0.695,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.372,0.154,-0.915,0.719,0,-0.695,0.664,0.275,-0.695 +,0.372,-0.154,-0.915,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.719,0,-0.695,0.857,-0.355,-0.374,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.906,-0.375,-0.195,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.857,-0.355,-0.374,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374,0.154,-0.372,-0.915 +,0.656,-0.656,-0.374,0.375,-0.906,-0.195,0.694,-0.694,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.375,-0.906,-0.195 +,-0.656,-0.656,-0.374,-0.694,-0.694,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.656,-0.656,-0.374,-0.372,-0.154,-0.915,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195 +,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.372,0.154,-0.915,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195 +,-0.694,0.694,-0.195,-0.275,0.664,-0.695,0,0.719,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.355,0.857,-0.374,0,0.927,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0.375,0.906,-0.195,0,0.981,-0.195,0.275,0.664,-0.695,0,0.719,-0.695,0.694,0.694,-0.195,0.508,0.508,-0.695,0.508,0.508,-0.695 +,0.656,0.656,-0.374,0.285,0.285,-0.915,0.372,0.154,-0.915,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.656,0.656,-0.374,0.906,0.375,-0.195,0.694,0.694,-0.195,0.719,0,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.664,0.275,-0.695,0.403,0,-0.915,0.719,0,-0.695 +,0.372,-0.154,-0.915,0.906,-0.375,-0.195,0.664,-0.275,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.906,-0.375,-0.195,0.508,-0.508,-0.695,0.664,-0.275,-0.695,0.656,-0.656,-0.374,0.857,-0.355,-0.374,0.285,-0.285,-0.915,0.508,-0.508,-0.695,0.355,-0.857,-0.374,0.656,-0.656,-0.374 +,0.154,-0.372,-0.915,0.694,-0.694,-0.195,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,-0.375,-0.906,-0.195,0,-0.719,-0.695,-0.154,-0.372,-0.915,-0.275,-0.664,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.355,-0.857,-0.374,-0.694,-0.694,-0.195 +,-0.375,-0.906,-0.195,-0.285,-0.285,-0.915,-0.508,-0.508,-0.695,-0.355,-0.857,-0.374,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.857,-0.355,-0.374,-0.656,-0.656,-0.374,-0.372,-0.154,-0.915,-0.694,-0.694,-0.195,-0.906,-0.375,-0.195,-0.664,-0.275,-0.695,-0.664,-0.275,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195 +,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.906,0.375,-0.195,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.372,0.154,-0.915,-0.285,0.285,-0.915,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195 +,-0.694,0.694,-0.195,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0,0.927,-0.374,0.275,0.664,-0.695,0.355,0.857,-0.374,0,0.403,-0.915,0,0,-1,0.154,0.372,-0.915,0.375,0.906,-0.195,0,0.981,-0.195,0,0.719,-0.695,0.275,0.664,-0.695,0.694,0.694,-0.195,0.275,0.664,-0.695,0.285,0.285,-0.915 +,0.508,0.508,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.857,0.355,-0.374,0.372,0.154,-0.915,0.694,0.694,-0.195,0.906,0.375,-0.195,0.664,0.275,-0.695,0.927,0,-0.374,0.403,0,-0.915,0.981,0,-0.195,0.372,0.154,-0.915,0.719,0,-0.695,0.664,0.275,-0.695 +,0.372,-0.154,-0.915,0.906,-0.375,-0.195,0.719,0,-0.695,0.664,-0.275,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.857,-0.355,-0.374,0.694,-0.694,-0.195,0.906,-0.375,-0.195,0.508,-0.508,-0.695,0.857,-0.355,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.285,-0.285,-0.915,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0.355,-0.857,-0.374 +,0.154,-0.372,-0.915,0.694,-0.694,-0.195,0.375,-0.906,-0.195,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.927,-0.374,0,-0.403,-0.915,0,-0.981,-0.195,0,-0.719,-0.695,0.275,-0.664,-0.695,-0.375,-0.906,-0.195,-0.275,-0.664,-0.695,0,-0.719,-0.695,-0.355,-0.857,-0.374,-0.154,-0.372,-0.915,-0.375,-0.906,-0.195,-0.656,-0.656,-0.374 +,-0.694,-0.694,-0.195,-0.508,-0.508,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.285,-0.285,-0.915,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.857,-0.355,-0.374,-0.372,-0.154,-0.915,-0.656,-0.656,-0.374,-0.906,-0.375,-0.195,-0.694,-0.694,-0.195,-0.664,-0.275,-0.695,-0.927,0,-0.374,-0.403,0,-0.915,-0.981,0,-0.195,-0.664,-0.275,-0.695 +,-0.719,0,-0.695,-0.906,0.375,-0.195,-0.372,0.154,-0.915,-0.664,0.275,-0.695,-0.719,0,-0.695,-0.857,0.355,-0.374,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.285,0.285,-0.915,-0.694,0.694,-0.195,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.355,0.857,-0.374,-0.154,0.372,-0.915,-0.656,0.656,-0.374,-0.375,0.906,-0.195 +,-0.694,0.694,-0.195,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0,0,-1,0,0,-1,0,0,-1,0,0.951,-0.309,0,0.951,-0.309,0,0.951,-0.309,-0.959,0,-0.283,-0.959,0,-0.283,-0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283,0,0,-1 +,0,0,-1,0,0,-1,0,0.951,-0.309,0,0.951,-0.309,0,0.951,-0.309,-0.959,0,-0.283,-0.959,0,-0.283,-0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283,0.959,0,-0.283,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,1,0,0,1,0,0,1,0 +,0,0,1,0,0,1,0,0,1,0.961,-0.001,-0.276,0.882,-0.344,-0.322,0,-0.696,-0.718,0,-0.696,-0.718,0,-0.696,-0.718,-1,0.003,0,-1,0.003,0,-1,0.003,0,-0.611,0.002,-0.791,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-0.614,0.001,-0.789 +,-0.614,0.001,-0.789,-0.613,0.003,-0.79,-1,0.004,0,-1,0.004,0,-1,0.004,0,0.944,0,-0.33,0.936,-0.001,-0.352,0.942,0.004,-0.335,0.936,-0.001,-0.353,0.927,-0.002,-0.376,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,-0.424,-0.861,-0.281,-0.369,-0.799,-0.475 +,-0.444,-0.877,-0.184,0,1,0,0,1,0,0.478,-0.864,-0.16,0.516,-0.837,-0.18,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,0,0,1,0,-0.819,0.574,0,-0.819,0.574,0,-0.819,0.574,0.839,0,0.544,0.787,-0.235,0.57,0.839,0,0.544,-0.699,0.2,0.686,-0.771,0,0.637,-0.679,0.252,0.69,0,0,1,0,0,1,0,0,1,-0.368,0.681,0.633,0,0.853,0.522,-0.288,0.729,0.621,0,0,1 +,0.783,-0.248,0.571,0.683,-0.467,0.562,-0.288,0.729,0.621,-0.679,0.252,0.69,-0.368,0.681,0.633,0,0,1,0,0,1,0.774,0,0.634,0.774,0,0.634,0.774,0,0.634,0,-0.007,1,0,-0.007,1,0,-0.007,1,-1,0,0,-1,0,0,0,0,-1,0,1,0 +,0,0,-1,0,0.755,-0.655,0,0.755,0.655,0,-0.765,-0.644,0,-0.007,-1,0,-0.765,0.644,0,-0.819,-0.574,0.839,0,-0.544,0,0,-1,-0.444,-0.877,-0.184,0.381,-0.883,-0.273,0,1,0,0.373,-0.887,-0.273,0.876,-0.36,-0.32,0.001,0.588,-0.809,0,0,-1,0.928,0.001,-0.373 +,0.87,-0.374,-0.32,0.001,1,0,0.882,-0.344,-0.322,0.876,-0.36,-0.32,0.368,-0.889,-0.272,-0.288,0.729,-0.621,0,0,-1,0.783,-0.248,-0.571,0.787,-0.235,-0.57,-0.368,0.681,-0.633,0.774,0,-0.634,0.742,-0.001,-0.67,-0.637,-0.002,-0.771,0,-0.003,-1,0,-0.875,-0.484,0,0.875,-0.484,0.275,0.664,-0.695 +,0,0.719,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.372,0.154,-0.915,0.403,0,-0.915,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.857,-0.355,-0.374,0.664,-0.275,-0.695 +,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.375,-0.906,-0.195,-0.355,-0.857,-0.374,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.664,0.275,-0.695 +,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,0,0.719,-0.695,0.275,0.664,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.372,0.154,-0.915,0.403,0,-0.915 +,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.694,-0.694,-0.195,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695 +,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.508,0.508,-0.695,-0.275,0.664,-0.695,-0.656,0.656,-0.374,0,0.719,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695 +,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.372,0.154,-0.915,0.403,0,-0.915,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695 +,-0.275,-0.664,-0.695,-0.375,-0.906,-0.195,-0.355,-0.857,-0.374,-0.355,-0.857,-0.374,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.719,0,-0.695,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.694,0.694,-0.195 +,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.742,-0.001,-0.67,-0.637,-0.002,-0.771,0,-0.003,-1,0,-0.875,-0.484,0,0.875,-0.484,0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195 +,0.656,0.656,-0.374,0.664,0.275,-0.695,0.372,0.154,-0.915,0.403,0,-0.915,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.375,-0.906,-0.195 +,-0.355,-0.857,-0.374,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695 +,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.656,0.656,-0.374,0.664,0.275,-0.695,0.664,0.275,-0.695,0.372,0.154,-0.915,0.403,0,-0.915,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.508,-0.508,-0.695,0.275,-0.664,-0.695,0.694,-0.694,-0.195 +,0.656,-0.656,-0.374,0.275,-0.664,-0.695,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.355,-0.857,-0.374,-0.355,-0.857,-0.374,-0.275,-0.664,-0.695,-0.508,-0.508,-0.695,-0.508,-0.508,-0.695,-0.664,-0.275,-0.695,-0.694,-0.694,-0.195,-0.656,-0.656,-0.374,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695 +,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.275,0.664,-0.695,-0.275,0.664,-0.695,0,0.719,-0.695,0.275,0.664,-0.695,0.508,0.508,-0.695,0.656,0.656,-0.374,0.508,0.508,-0.695,0.664,0.275,-0.695,0.694,0.694,-0.195,0.656,0.656,-0.374,0.664,0.275,-0.695,0.719,0,-0.695,0.372,0.154,-0.915 +,0.403,0,-0.915,0.719,0,-0.695,0.719,0,-0.695,0.664,-0.275,-0.695,0.857,-0.355,-0.374,0.857,-0.355,-0.374,0.664,-0.275,-0.695,0.508,-0.508,-0.695,0.656,-0.656,-0.374,0.508,-0.508,-0.695,0.694,-0.694,-0.195,0.656,-0.656,-0.374,0,-0.719,-0.695,-0.275,-0.664,-0.695,-0.375,-0.906,-0.195,-0.355,-0.857,-0.374,-0.275,-0.664,-0.695 +,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.508,-0.508,-0.695,-0.656,-0.656,-0.374,-0.719,0,-0.695,-0.664,-0.275,-0.695,-0.719,0,-0.695,-0.664,0.275,-0.695,-0.664,0.275,-0.695,-0.508,0.508,-0.695,-0.656,0.656,-0.374,-0.508,0.508,-0.695,-0.656,0.656,-0.374,0,0.719,-0.695,0,0,-1,0,0.951,-0.309,-0.959,0,-0.283 +,0.959,0,-0.283,0,0,-1,0,0.951,-0.309,-0.959,0,-0.283,0.959,0,-0.283,0,0.707,-0.707,0,1,0,0,0,1,0,-0.696,-0.718,-1,0.003,0,-0.613,0.002,-0.79,0,0,-1,0,0,-1,-0.616,-0.001,-0.788,-1,0.004,0,0.924,0.002,-0.381,0,0,1 +,-0.424,-0.861,-0.281,-0.369,-0.799,-0.475,0.462,-0.871,-0.164,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.819,0.574,-0.771,0,0.637,0,0,1,0,0.853,0.522,0,0,1,0.683,-0.467,0.562,-0.288,0.729,0.621,-0.699,0.2,0.686,-0.679,0.252,0.69,0.774,0,0.634 +,0,-0.007,1] +,"uvs":[0.819,0.917,0.819,0.867,0.839,0.915,0.438,0.554,0.33,0.506,0.438,0.506,0.002,0.852,0.11,0.832,0.11,0.852,0.33,0.441,0.438,0.441,0.221,0.441,0.901,0.835,0.77,0.84,0.77,0.835,0.658,0.902,0.79,0.907,0.658,0.907,0.267,0.909,0.136,0.914,0.136,0.909,0.79,0.923,0.658,0.918,0.79,0.918,0.136,0.917 +,0.267,0.922,0.136,0.922,0.676,0.962,0.715,0.968,0.674,0.968,0.946,0.569,0.952,0.635,0.946,0.637,0.876,0.387,0.88,0.31,0.886,0.31,0.637,0.103,0.679,0.124,0.619,0.124,0.985,0.361,0.989,0.359,0.989,0.361,0.136,0.934,0.244,0.937,0.136,0.937,0.978,0.282,0.98,0.284,0.979,0.285,0.908,0.167,0.911,0.169 +,0.908,0.169,0.979,0.342,0.975,0.357,0.975,0.342,0.469,0.688,0.465,0.676,0.475,0.686,0.462,0.686,0.357,0.683,0.463,0.683,0.465,0.689,0.469,0.688,0.463,0.683,0.357,0.676,0.959,0.425,0.956,0.378,0.96,0.378,0.943,0.314,0.939,0.419,0.939,0.314,0.943,0.31,0.939,0.31,0.982,0.342,0.979,0.357,0.979,0.342 +,0.243,0.94,0.136,0.94,0.971,0.282,0.968,0.288,0.46,0.965,0.523,0.959,0.527,0.965,0.626,0.087,0.449,0.857,0.455,0.875,0.449,0.877,0.886,0.42,0.869,0.389,0.597,0.02,0.626,0.019,0.964,0.176,0.971,0.2,0.964,0.197,0.99,0.624,0.994,0.633,0.99,0.631,0.928,0.959,0.932,0.95,0.932,0.957,0.963,0.957 +,0.932,0.95,0.963,0.95,0.678,0.99,0.711,0.986,0.708,0.99,0.931,0.987,0.964,0.99,0.928,0.99,0.691,0.995,0.692,0.994,0.693,0.995,0.708,0.981,0.709,0.98,0.709,0.981,0.694,0.995,0.694,0.994,0.708,0.982,0.709,0.982,0.692,0.993,0.693,0.993,0.71,0.982,0.691,0.994,0.709,0.981,0.71,0.982,0.123,0.951 +,0.122,0.95,0.124,0.95,0.709,0.981,0.124,0.951,0.125,0.95,0.122,0.949,0.124,0.949,0.71,0.98,0.125,0.949,0.517,0.58,0.518,0.581,0.517,0.581,0.71,0.98,0.123,0.948,0.124,0.948,0.711,0.98,0.711,0.98,0.561,0.315,0.562,0.314,0.562,0.315,0.709,0.98,0.71,0.979,0.561,0.315,0.56,0.314,0.561,0.314 +,0.581,0.996,0.58,0.995,0.581,0.995,0.709,0.979,0.581,0.996,0.582,0.995,0.582,0.996,0.71,0.978,0.58,0.994,0.581,0.994,0.709,0.979,0.582,0.994,0.709,0.978,0.71,0.978,0.581,0.993,0.582,0.993,0.709,0.978,0.708,0.979,0.708,0.978,0.567,0.315,0.566,0.314,0.567,0.314,0.708,0.979,0.707,0.978,0.565,0.315 +,0.566,0.315,0.264,0.997,0.266,0.996,0.265,0.997,0.708,0.98,0.265,0.997,0.267,0.996,0.266,0.998,0.707,0.979,0.265,0.995,0.266,0.995,0.708,0.98,0.267,0.995,0.706,0.98,0.266,0.994,0.267,0.994,0.706,0.981,0.706,0.98,0.708,0.98,0.708,0.981,0.707,0.981,0.264,0.995,0.265,0.993,0.266,0.993,0.692,0.997 +,0.691,0.996,0.692,0.996,0.708,0.981,0.692,0.997,0.694,0.996,0.693,0.997,0.707,0.982,0.708,0.982,0.707,0.982,0.248,0.995,0.249,0.994,0.249,0.995,0.886,0.994,0.886,0.994,0.886,0.995,0.25,0.994,0.25,0.995,0.886,0.996,0.885,0.995,0.249,0.993,0.887,0.996,0.247,0.994,0.248,0.993,0.887,0.995,0.887,0.996 +,0.309,0.997,0.308,0.996,0.309,0.996,0.887,0.995,0.309,0.997,0.31,0.996,0.31,0.997,0.308,0.996,0.309,0.995,0.887,0.994,0.31,0.995,0.517,0.584,0.518,0.585,0.517,0.585,0.887,0.994,0.31,0.994,0.888,0.995,0.889,0.994,0.308,0.994,0.309,0.994,0.577,0.315,0.578,0.314,0.578,0.315,0.888,0.993,0.576,0.315 +,0.577,0.314,0.577,0.315,0.887,0.993,0.324,0.997,0.326,0.996,0.325,0.997,0.887,0.993,0.326,0.997,0.327,0.996,0.888,0.992,0.324,0.996,0.326,0.995,0.887,0.993,0.327,0.995,0.888,0.992,0.325,0.994,0.327,0.994,0.887,0.993,0.887,0.992,0.324,0.994,0.518,0.566,0.517,0.564,0.518,0.564,0.886,0.993,0.886,0.992 +,0.518,0.567,0.517,0.566,0.518,0.566,0.03,0.997,0.031,0.997,0.031,0.998,0.886,0.993,0.031,0.998,0.033,0.997,0.032,0.998,0.885,0.992,0.03,0.996,0.032,0.996,0.886,0.993,0.033,0.996,0.885,0.992,0.031,0.995,0.033,0.995,0.884,0.993,0.885,0.992,0.03,0.995,0.885,0.993,0.885,0.994,0.884,0.994,0.03,0.994 +,0.031,0.994,0.032,0.994,0.247,0.997,0.249,0.996,0.248,0.997,0.886,0.994,0.248,0.997,0.25,0.996,0.249,0.998,0.885,0.995,0.885,0.995,0.248,0.996,0.283,0.995,0.281,0.995,0.282,0.994,0.872,0.995,0.871,0.994,0.872,0.994,0.284,0.995,0.284,0.994,0.873,0.995,0.873,0.995,0.283,0.993,0.873,0.995,0.873,0.994 +,0.874,0.994,0.282,0.993,0.873,0.993,0.874,0.993,0.917,0.982,0.917,0.981,0.918,0.981,0.917,0.982,0.919,0.982,0.919,0.983,0.917,0.981,0.918,0.981,0.872,0.993,0.919,0.98,0.517,0.588,0.518,0.589,0.517,0.589,0.872,0.993,0.917,0.98,0.919,0.979,0.873,0.992,0.873,0.992,0.916,0.98,0.593,0.315,0.594,0.314 +,0.594,0.315,0.872,0.992,0.592,0.315,0.593,0.314,0.593,0.315,0.872,0.993,0.32,0.997,0.319,0.996,0.32,0.996,0.871,0.993,0.32,0.997,0.321,0.996,0.321,0.997,0.871,0.992,0.319,0.995,0.32,0.995,0.871,0.993,0.321,0.995,0.871,0.992,0.87,0.992,0.32,0.994,0.321,0.994,0.87,0.992,0.871,0.993,0.87,0.992 +,0.518,0.559,0.517,0.56,0.517,0.559,0.87,0.993,0.869,0.993,0.518,0.56,0.517,0.561,0.996,0.659,0.995,0.658,0.996,0.658,0.87,0.994,0.996,0.659,0.997,0.658,0.997,0.659,0.869,0.994,0.995,0.657,0.996,0.657,0.871,0.994,0.997,0.657,0.87,0.995,0.869,0.994,0.997,0.656,0.87,0.995,0.871,0.995,0.87,0.995 +,0.996,0.656,0.871,0.996,0.995,0.656,0.996,0.655,0.871,0.995,0.997,0.655,0.282,0.997,0.281,0.996,0.282,0.996,0.872,0.995,0.283,0.998,0.284,0.996,0.872,0.996,0.872,0.996,0.281,0.995,0.99,0.293,0.994,0.302,0.99,0.3,0.816,0.969,0.821,0.96,0.821,0.967,0.851,0.967,0.821,0.96,0.851,0.96,0.251,0.99 +,0.284,0.987,0.281,0.99,0.351,0.987,0.384,0.991,0.347,0.991,0.686,0.995,0.687,0.994,0.687,0.995,0.993,0.812,0.993,0.811,0.993,0.812,0.688,0.994,0.688,0.995,0.992,0.813,0.993,0.813,0.687,0.993,0.688,0.993,0.993,0.812,0.994,0.813,0.686,0.994,0.995,0.813,0.353,0.946,0.352,0.945,0.353,0.945,0.994,0.812 +,0.354,0.946,0.354,0.945,0.352,0.944,0.353,0.944,0.994,0.811,0.354,0.944,0.517,0.575,0.518,0.576,0.517,0.576,0.994,0.811,0.354,0.943,0.995,0.811,0.995,0.812,0.353,0.943,0.572,0.315,0.573,0.314,0.573,0.315,0.994,0.811,0.995,0.81,0.571,0.315,0.572,0.314,0.572,0.315,0.575,0.996,0.574,0.995,0.575,0.995 +,0.993,0.81,0.575,0.996,0.577,0.995,0.576,0.996,0.994,0.809,0.574,0.994,0.575,0.994,0.993,0.81,0.577,0.994,0.993,0.809,0.994,0.809,0.576,0.993,0.993,0.809,0.993,0.81,0.992,0.809,0.574,0.994,0.575,0.993,0.6,0.315,0.599,0.314,0.6,0.314,0.992,0.81,0.992,0.81,0.597,0.315,0.599,0.315,0.27,0.997 +,0.271,0.996,0.271,0.997,0.992,0.811,0.272,0.998,0.272,0.996,0.991,0.81,0.27,0.995,0.271,0.995,0.992,0.811,0.272,0.995,0.991,0.811,0.271,0.994,0.272,0.994,0.991,0.812,0.991,0.811,0.992,0.811,0.992,0.812,0.991,0.812,0.27,0.994,0.271,0.993,0.272,0.993,0.687,0.997,0.686,0.996,0.687,0.996,0.992,0.812 +,0.687,0.997,0.688,0.996,0.688,0.997,0.992,0.813,0.992,0.813,0.992,0.813,0.995,0.675,0.996,0.674,0.996,0.675,0.878,0.994,0.879,0.994,0.879,0.995,0.997,0.674,0.997,0.675,0.878,0.996,0.878,0.995,0.997,0.673,0.879,0.996,0.995,0.674,0.996,0.673,0.879,0.995,0.88,0.995,0.88,0.996,0.314,0.997,0.313,0.996 +,0.315,0.996,0.314,0.997,0.316,0.996,0.315,0.997,0.313,0.995,0.315,0.995,0.88,0.994,0.316,0.995,0.517,0.594,0.517,0.592,0.518,0.594,0.88,0.994,0.315,0.994,0.881,0.994,0.881,0.995,0.313,0.994,0.314,0.994,0.582,0.315,0.583,0.314,0.583,0.315,0.881,0.993,0.581,0.315,0.582,0.314,0.582,0.315,0.88,0.993 +,0.933,0.996,0.935,0.995,0.934,0.996,0.88,0.993,0.935,0.997,0.936,0.995,0.881,0.992,0.933,0.995,0.935,0.994,0.88,0.993,0.936,0.994,0.88,0.992,0.935,0.993,0.88,0.992,0.879,0.993,0.879,0.992,0.933,0.994,0.934,0.993,0.518,0.571,0.517,0.57,0.518,0.57,0.879,0.993,0.879,0.992,0.518,0.571,0.517,0.572 +,0.517,0.571,0.025,0.997,0.026,0.997,0.026,0.998,0.878,0.993,0.027,0.998,0.027,0.997,0.878,0.992,0.025,0.997,0.026,0.996,0.878,0.993,0.027,0.996,0.877,0.992,0.026,0.995,0.027,0.995,0.877,0.993,0.025,0.995,0.878,0.993,0.878,0.994,0.877,0.994,0.025,0.994,0.026,0.994,0.027,0.994,0.996,0.677,0.995,0.676 +,0.996,0.676,0.878,0.994,0.996,0.677,0.997,0.676,0.997,0.677,0.877,0.995,0.877,0.995,0.878,0.995,0.996,0.604,0.995,0.603,0.996,0.603,0.62,0.929,0.62,0.929,0.621,0.929,0.997,0.603,0.997,0.604,0.621,0.93,0.621,0.93,0.997,0.601,0.621,0.93,0.621,0.929,0.622,0.929,0.995,0.602,0.996,0.602,0.622,0.928 +,0.231,0.994,0.23,0.993,0.231,0.993,0.621,0.928,0.232,0.995,0.232,0.994,0.23,0.993,0.231,0.992,0.621,0.928,0.232,0.992,0.517,0.597,0.518,0.598,0.517,0.598,0.62,0.928,0.232,0.991,0.621,0.927,0.621,0.927,0.23,0.992,0.231,0.991,0.588,0.315,0.589,0.314,0.589,0.315,0.62,0.927,0.588,0.315,0.587,0.314 +,0.588,0.314,0.62,0.928,0.929,0.996,0.928,0.995,0.929,0.995,0.619,0.928,0.93,0.997,0.93,0.995,0.619,0.927,0.928,0.995,0.929,0.994,0.619,0.928,0.93,0.994,0.618,0.927,0.619,0.927,0.93,0.993,0.618,0.928,0.618,0.927,0.929,0.993,0.619,0.928,0.518,0.554,0.517,0.555,0.517,0.554,0.618,0.928,0.518,0.556 +,0.518,0.555,0.619,0.928,0.26,0.993,0.261,0.995,0.26,0.994,0.619,0.929,0.26,0.993,0.259,0.994,0.259,0.993,0.618,0.929,0.26,0.995,0.619,0.929,0.259,0.995,0.618,0.929,0.618,0.93,0.259,0.996,0.619,0.93,0.619,0.93,0.261,0.995,0.26,0.996,0.619,0.931,0.261,0.997,0.26,0.997,0.62,0.93,0.259,0.998 +,0.996,0.606,0.995,0.604,0.996,0.605,0.62,0.93,0.996,0.606,0.997,0.605,0.997,0.606,0.62,0.931,0.62,0.931,0.995,0.604,0.961,0.498,0.955,0.435,0.961,0.435,0.992,0.23,0.985,0.223,0.99,0.223,0.946,0.31,0.953,0.373,0.946,0.375,0.952,0.435,0.945,0.498,0.945,0.435,0.961,0.235,0.956,0.172,0.961,0.172 +,0.992,0.511,0.985,0.504,0.99,0.504,0.945,0.241,0.952,0.304,0.945,0.306,0.952,0.172,0.945,0.235,0.945,0.172,0.357,0.766,0.465,0.762,0.465,0.766,0.357,0.783,0.465,0.766,0.465,0.783,0.975,0.794,0.977,0.789,0.977,0.794,0.963,0.425,0.963,0.378,0.392,0.92,0.385,0.922,0.385,0.921,0.967,0.052,0.963,0.008 +,0.967,0.008,0.475,0.732,0.482,0.732,0.99,0.756,0.981,0.751,0.99,0.751,0.981,0.751,0.976,0.756,0.976,0.751,0.755,0.943,0.76,0.947,0.755,0.947,0.087,0.995,0.083,0.99,0.087,0.99,0.083,0.995,0.08,0.99,0.66,0.693,0.658,0.688,0.66,0.687,0.97,0.281,0.979,0.281,0.382,0.92,0.385,0.922,0.38,0.921 +,0.968,0.285,0.97,0.281,0.915,0.167,0.911,0.167,0.98,0.288,0.982,0.288,0.967,0.288,0.967,0.284,0.988,0.86,0.977,0.866,0.977,0.86,0.11,0.29,0.218,0.24,0.218,0.29,0.11,0.355,0.002,0.355,0.002,0.29,0.96,0.161,0.92,0.168,0.919,0.161,0.77,0.82,0.836,0.826,0.77,0.826,0.936,0.771,0.942,0.694 +,0.942,0.774,0.509,0.112,0.55,0.091,0.569,0.113,0.674,0.952,0.737,0.958,0.677,0.958,0.561,0.075,0.837,0.82,0.852,0.831,0.106,0.803,0.113,0.768,0.113,0.804,0.59,0.008,0.561,0.008,0.967,0.131,0.961,0.156,0.961,0.128,0.136,0.93,0.267,0.926,0.267,0.93,0.839,0.867,0.836,0.917,0.33,0.554,0.002,0.832 +,0.221,0.506,0.901,0.84,0.79,0.902,0.267,0.914,0.658,0.923,0.267,0.917,0.72,0.962,0.952,0.569,0.678,0.102,0.985,0.359,0.244,0.934,0.979,0.281,0.979,0.342,0.979,0.357,0.357,0.687,0.357,0.683,0.956,0.425,0.956,0.378,0.943,0.419,0.982,0.358,0.979,0.357,0.243,0.94,0.463,0.959,0.597,0.097,0.449,0.857 +,0.455,0.858,0.88,0.423,0.971,0.172,0.994,0.623,0.928,0.949,0.932,0.957,0.674,0.986,0.961,0.987,0.691,0.994,0.708,0.982,0.691,0.994,0.691,0.993,0.123,0.951,0.122,0.951,0.122,0.95,0.124,0.951,0.123,0.951,0.122,0.95,0.517,0.58,0.517,0.58,0.518,0.581,0.711,0.98,0.122,0.948,0.561,0.315,0.561,0.315 +,0.56,0.315,0.56,0.314,0.581,0.996,0.58,0.996,0.581,0.996,0.71,0.978,0.709,0.978,0.709,0.978,0.58,0.994,0.567,0.315,0.566,0.315,0.565,0.315,0.565,0.314,0.264,0.997,0.264,0.996,0.265,0.997,0.264,0.996,0.264,0.995,0.264,0.995,0.264,0.994,0.692,0.997,0.691,0.997,0.692,0.997,0.708,0.982,0.248,0.995 +,0.248,0.995,0.247,0.994,0.309,0.997,0.308,0.997,0.308,0.996,0.309,0.997,0.308,0.996,0.308,0.995,0.517,0.584,0.517,0.584,0.888,0.995,0.308,0.995,0.308,0.994,0.577,0.315,0.576,0.315,0.576,0.314,0.324,0.997,0.324,0.996,0.326,0.997,0.325,0.997,0.324,0.996,0.324,0.995,0.324,0.995,0.324,0.994,0.518,0.566 +,0.518,0.567,0.517,0.567,0.03,0.997,0.03,0.997,0.031,0.998,0.03,0.997,0.03,0.995,0.03,0.995,0.03,0.994,0.247,0.997,0.248,0.996,0.248,0.997,0.885,0.995,0.248,0.996,0.281,0.995,0.873,0.995,0.281,0.994,0.917,0.982,0.916,0.982,0.917,0.981,0.917,0.982,0.917,0.981,0.917,0.981,0.517,0.588,0.517,0.588 +,0.873,0.992,0.917,0.981,0.916,0.98,0.593,0.315,0.592,0.315,0.592,0.314,0.32,0.997,0.319,0.997,0.32,0.997,0.871,0.992,0.87,0.992,0.319,0.994,0.518,0.559,0.518,0.56,0.518,0.56,0.518,0.561,0.517,0.561,0.996,0.659,0.995,0.658,0.996,0.659,0.87,0.995,0.87,0.995,0.995,0.656,0.995,0.656,0.995,0.655 +,0.282,0.997,0.281,0.997,0.283,0.998,0.282,0.997,0.872,0.996,0.872,0.996,0.281,0.995,0.994,0.292,0.816,0.958,0.821,0.967,0.247,0.987,0.381,0.987,0.686,0.994,0.992,0.813,0.686,0.994,0.686,0.993,0.353,0.946,0.352,0.945,0.352,0.945,0.354,0.946,0.353,0.946,0.352,0.945,0.517,0.575,0.517,0.575,0.518,0.576 +,0.352,0.943,0.572,0.315,0.571,0.315,0.571,0.314,0.575,0.996,0.574,0.996,0.575,0.996,0.994,0.809,0.993,0.809,0.993,0.809,0.574,0.994,0.6,0.315,0.599,0.315,0.597,0.315,0.597,0.314,0.27,0.997,0.27,0.996,0.272,0.998,0.271,0.997,0.27,0.996,0.27,0.995,0.27,0.995,0.27,0.994,0.687,0.997,0.686,0.997 +,0.687,0.997,0.992,0.813,0.992,0.813,0.995,0.674,0.995,0.674,0.995,0.674,0.314,0.997,0.313,0.997,0.313,0.996,0.314,0.997,0.313,0.996,0.517,0.594,0.517,0.592,0.517,0.592,0.313,0.994,0.582,0.315,0.581,0.315,0.581,0.314,0.933,0.996,0.933,0.995,0.935,0.997,0.934,0.996,0.933,0.995,0.88,0.992,0.933,0.994 +,0.518,0.571,0.518,0.571,0.518,0.572,0.517,0.572,0.025,0.997,0.025,0.997,0.027,0.998,0.026,0.998,0.025,0.997,0.025,0.996,0.025,0.996,0.025,0.995,0.025,0.995,0.025,0.994,0.996,0.677,0.995,0.677,0.996,0.677,0.877,0.995,0.877,0.995,0.995,0.604,0.621,0.93,0.995,0.602,0.231,0.994,0.23,0.994,0.23,0.993 +,0.232,0.995,0.231,0.994,0.23,0.993,0.23,0.993,0.517,0.597,0.517,0.597,0.621,0.927,0.23,0.993,0.23,0.992,0.588,0.315,0.588,0.315,0.587,0.315,0.587,0.314,0.929,0.996,0.928,0.996,0.93,0.997,0.929,0.996,0.618,0.927,0.928,0.994,0.518,0.554,0.518,0.555,0.518,0.556,0.517,0.556,0.26,0.993,0.261,0.994 +,0.26,0.993,0.261,0.995,0.618,0.929,0.261,0.995,0.261,0.996,0.261,0.996,0.261,0.997,0.996,0.606,0.995,0.605,0.996,0.606,0.995,0.604,0.955,0.498,0.983,0.23,0.953,0.31,0.952,0.5,0.956,0.235,0.983,0.511,0.952,0.241,0.952,0.238,0.357,0.762,0.357,0.766,0.975,0.788,0.393,0.921,0.963,0.052,0.472,0.733 +,0.475,0.732,0.981,0.756,0.981,0.756,0.76,0.943,0.08,0.995,0.658,0.693,0.382,0.92,0.385,0.921,0.915,0.169,0.988,0.86,0.988,0.866,0.11,0.24,0.218,0.355,0.964,0.168,0.936,0.694,0.509,0.091,0.741,0.952,0.59,0.085,0.856,0.826,0.106,0.803,0.106,0.768,0.113,0.768,0.967,0.153,0.136,0.926] +,"indices":[0,1,2,3,4,5,6,7,8,5,9,10,4,11,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46 +,47,48,49,50,51,52,53,54,55,56,57,58,59,60,59,61,62,63,55,64,65,66,67,68,69,70,69,71,72,73,74,44,75,76,77,47,78,79,80,81,38,82,36,83,84,85,86,87,33,82 +,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,109,115,116,113,117,115,118,119,113,120,117,121,118,109,113,112,122,122,123,120,124,125,126 +,122,112,127,128,126,129,126,130,131,127,112,132,129,131,133,134,135,136,132,112,137,133,138,139,140,137,141,130,138,131,142,143,144,141,145,146,147,148,149,137,112,145,150,151,152,145,112,153,154,155 +,156,145,157,146,152,158,159,153,112,160,152,161,155,153,162,163,161,164,165,166,167,168,158,164,159,160,112,167,169,170,171,168,172,173,174,170,175,167,112,172,176,177,178,172,112,179,180,181,182,172 +,183,173,177,184,185,179,112,186,177,187,181,183,186,188,187,189,190,186,191,192,184,189,185,186,112,193,191,194,195,196,197,189,193,112,194,189,198,190,199,200,201,194,112,202,203,204,205,195,202,206 +,202,112,111,201,114,204,202,207,208,201,108,110,209,210,211,212,213,214,211,215,216,212,217,218,210,219,215,214,220,217,210,221,222,214,213,223,223,224,220,225,226,227,223,213,228,229,230,231,232,233 +,227,228,213,234,227,235,230,236,237,238,234,213,239,233,240,235,241,239,242,233,243,244,245,246,247,239,248,242,249,250,251,239,213,252,253,254,255,252,213,256,257,254,258,248,256,259,260,261,254,256 +,213,262,258,261,263,259,262,264,263,265,266,264,267,268,261,269,265,262,213,267,270,271,272,268,273,274,275,276,277,267,213,273,278,279,280,273,213,281,282,283,284,274,281,285,279,286,287,281,213,288 +,279,289,283,285,288,290,289,291,292,288,293,294,287,295,291,288,213,296,293,297,298,291,299,300,296,213,297,291,301,292,302,303,304,297,213,305,306,307,308,297,309,298,305,213,212,307,211,216,305,310 +,309,311,211,303,312,313,314,315,316,317,318,314,319,320,317,321,314,322,319,323,324,325,313,326,314,317,316,324,325,327,328,329,330,331,324,316,327,332,333,334,335,336,331,327,316,337,333,336,338,339 +,340,341,337,316,342,338,343,344,345,342,346,336,347,343,348,349,350,342,351,346,352,353,354,342,316,355,356,357,358,355,316,359,360,361,362,351,359,363,358,364,365,359,316,366,358,367,361,368,366,369 +,367,370,371,372,373,374,364,370,365,366,316,373,375,376,377,374,378,379,380,381,376,373,316,378,382,383,384,378,316,385,386,387,388,379,385,389,384,390,391,385,316,392,384,393,387,385,394,395,391,396 +,393,397,398,399,390,400,391,392,316,398,398,401,399,402,403,400,398,316,404,400,405,396,406,407,408,404,316,409,410,408,411,404,412,401,409,316,315,408,318,411,413,315,320,408,414,312,415,416,417,418 +,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,432,436,437,438,435,439,436,440,441,439,442,443,444,440,431,435,434,442,442,445,443,446,447,448,442,434,449,450,448,451,448,452,453 +,449,434,454,448,455,451,456,457,458,454,434,459,453,460,455,454,461,462,452,463,453,464,465,466,461,467,468,469,470,471,459,434,467,472,473,474,467,434,475,476,477,478,467,479,468,474,480,481,475,434 +,482,477,481,483,475,484,485,481,486,483,487,488,489,481,490,491,482,434,488,492,493,494,489,495,496,497,493,498,488,434,495,499,500,501,495,434,502,503,500,504,495,505,496,500,506,507,502,434,508,500 +,509,504,505,508,510,509,511,512,508,513,514,506,511,507,508,434,515,513,516,517,511,518,519,515,434,516,511,520,512,521,522,523,516,434,524,525,526,527,516,528,517,524,434,433,526,432,437,524,529,530 +,523,430,432,531,532,533,534,535,536,533,537,538,534,539,540,532,541,537,536,542,539,532,543,544,536,535,545,542,546,547,548,549,550,545,535,546,551,552,553,550,554,555,546,535,556,550,557,552,558,559 +,560,556,535,561,555,562,557,556,563,564,555,565,566,567,568,569,561,570,563,571,572,573,561,535,574,575,576,577,574,535,578,579,576,580,570,578,581,576,582,583,578,535,584,580,583,585,581,584,586,583 +,587,585,588,589,590,583,591,592,584,535,589,593,594,595,590,596,597,598,599,600,589,535,596,601,602,603,596,535,604,605,602,606,597,604,607,608,609,602,604,535,610,602,611,606,604,612,607,611,613,614 +,610,615,612,609,616,613,610,535,617,615,618,619,613,620,621,617,535,618,614,621,622,623,624,625,618,535,626,627,628,629,618,630,619,626,535,534,628,533,538,631,534,632,625,531,533,633,634,635,636,637 +,638,633,639,640,641,638,642,635,643,639,644,645,646,635,647,648,638,637,645,645,649,646,650,651,652,645,637,653,654,652,655,656,657,652,653,637,658,652,659,655,660,661,662,658,637,663,657,664,659,665 +,663,666,657,667,668,669,670,671,663,672,666,673,674,675,663,637,676,677,678,679,676,637,680,681,679,682,672,680,683,679,684,685,680,637,686,679,687,682,680,688,689,685,690,687,686,691,692,684,693,685 +,686,637,694,695,696,697,694,698,691,699,696,700,694,637,701,702,703,704,701,637,705,706,707,708,698,705,709,703,710,704,705,637,711,704,712,707,713,711,714,710,715,712,714,716,717,718,719,710,711,637 +,716,716,720,717,719,721,722,716,637,723,719,724,715,725,726,727,723,637,728,729,730,731,720,728,732,728,637,636,730,633,640,728,641,733,727,734,633,735,736,737,738,739,740,741,742,743,744,745,746,747 +,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,66,769,770,771,772,773,774,775,776,60,61,777,54,56,778,779,780,781,782,783,784,785,786,787,788,789,790,791,788 +,792,793,794,45,795,796,797,798,799,800,801,77,802,49,803,804,46,805,800,806,807,808,809,810,811,812,813,813,814,811,811,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,828 +,827,833,834,821,835,836,837,838,832,839,840,841,842,843,844,845,846,2,1,847,0,2,3,848,4,6,849,7,5,4,9,4,850,11,12,851,13,15,852,16,18,853,19,21,854,22,24,855,25,27 +,856,28,30,857,31,33,87,34,36,858,37,39,859,40,42,860,43,45,861,46,48,803,49,862,863,52,54,62,55,57,864,58,60,57,59,62,865,63,64,866,867,67,868,68,70,67,69,72,869,870 +,44,43,871,78,800,77,77,45,47,47,804,78,79,872,80,38,873,82,874,875,84,86,876,87,82,873,88,90,877,91,93,878,94,96,879,97,99,880,100,102,881,103,105,882,106,108,883,109,114,110 +,109,884,111,113,115,109,118,113,122,120,885,886,118,122,127,123,887,888,889,890,891,126,126,892,130,129,126,131,893,894,895,133,131,138,896,132,137,130,897,138,898,149,143,141,137,145,899,900,901,902 +,903,151,904,152,155,145,153,905,152,151,158,152,159,161,153,160,906,161,159,164,907,160,167,158,908,164,909,910,170,168,167,172,911,912,170,913,914,177,915,177,181,172,179,183,177,916,184,177,185,187 +,183,179,186,187,185,189,186,193,191,184,917,189,191,193,194,918,919,197,189,197,198,920,921,200,922,201,204,195,194,202,201,110,114,202,111,923,201,200,108,209,924,210,211,210,215,212,214,217,210,222 +,219,214,223,220,210,925,926,223,228,224,927,928,929,930,227,230,931,932,233,227,233,235,933,934,237,233,244,240,935,234,239,233,936,937,938,250,246,239,252,248,939,940,250,941,942,254,943,944,254,248 +,252,256,945,946,261,258,254,261,259,256,262,263,261,265,264,262,267,261,947,948,949,276,271,268,267,273,950,951,276,952,953,279,954,279,283,274,273,281,279,955,286,279,287,289,285,281,288,289,287,291 +,288,296,293,287,286,956,293,296,297,291,957,958,291,300,301,959,960,303,961,303,307,297,305,309,307,303,211,305,212,962,963,209,211,312,964,313,318,312,314,320,315,317,314,326,322,965,317,324,313,966 +,326,325,324,327,967,968,969,970,331,333,971,972,336,333,331,336,973,974,340,338,336,343,975,337,342,336,976,977,978,353,349,342,355,351,979,980,353,981,982,357,983,358,361,351,355,359,358,357,364,358 +,365,367,984,359,366,367,365,370,985,366,373,364,986,370,987,988,376,374,373,378,989,990,991,992,993,383,994,384,387,379,378,385,384,383,390,384,391,393,385,392,995,391,400,396,996,392,398,390,997,400 +,398,404,401,998,999,403,400,403,405,1000,1001,407,1002,1003,408,404,409,1004,408,312,318,1005,409,315,408,407,1006,415,1007,416,418,1008,419,421,1009,422,424,1010,425,427,1011,428,430,1012,431,432,431,436,1013,433 +,435,436,431,440,439,435,442,1014,1015,440,442,449,445,1016,1017,1018,1019,1020,448,448,1021,452,448,453,455,1022,1023,1024,453,463,460,454,459,461,452,1025,463,1026,470,465,461,459,467,1027,1028,470,1029,1030,473,1031 +,474,477,467,475,1032,474,473,480,477,474,481,475,482,1033,481,491,486,1034,482,488,481,480,1035,1036,1037,493,489,488,495,1038,1039,493,1040,1041,500,1042,1043,500,495,502,505,500,1044,506,500,507,509,505,502,508 +,509,507,511,508,515,513,506,1045,511,513,515,516,511,1046,1047,511,519,520,1048,1049,522,1050,523,526,516,524,1051,526,523,432,524,433,1052,523,522,430,531,1053,532,533,532,537,534,536,539,532,544,541,536,545 +,542,532,1054,1055,542,545,546,1056,1057,1058,1059,550,552,550,1060,554,550,555,557,1061,1062,1063,555,566,562,556,561,563,555,554,1064,1065,572,568,561,574,570,1066,1067,572,1068,1069,576,1070,1071,576,570,574,578,576 +,1072,582,580,576,583,581,578,584,583,592,587,1073,584,589,583,582,1074,1075,600,594,590,589,596,1076,1077,1078,1079,1080,602,1081,1082,602,597,596,604,1083,1084,609,602,609,611,604,610,612,611,609,613,610,617,615 +,609,1085,1086,615,617,618,613,1087,1088,614,613,621,1089,1090,624,1091,625,628,618,626,1092,628,625,533,1093,626,534,625,624,531,633,1094,634,633,635,639,641,636,638,635,648,643,1095,638,645,635,634,1096,645,653 +,649,1097,1098,1099,1100,1101,652,1102,1103,657,652,657,659,1104,1105,661,657,668,664,1106,658,663,657,1107,1108,1109,675,670,663,676,672,1110,1111,1112,1113,1114,678,1115,1116,679,672,676,680,679,678,684,679,685,687,680 +,686,1117,685,693,690,686,694,691,684,1118,693,1119,1120,696,694,701,698,1121,1122,696,1123,1124,703,1125,704,707,698,701,705,703,1126,710,704,710,712,1127,705,711,710,719,715,714,711,716,1128,1129,719,716,723,720 +,719,1130,1131,719,722,724,1132,1133,726,1134,727,730,720,723,728,730,727,633,728,636,641,727,726,1135,735,1136,736,738,1137,739,741,1138,742,744,1139,745,747,1140,748,750,1141,751,753,1142,754,756,1143,757,759,1144 +,760,762,1145,763,765,1146,766,768,64,66,770,1147,771,773,1148,774,776,1149,60,777,1150,54,778,1151,779,781,1152,782,784,1153,785,787,790,788,790,1154,791,792,1155,793,45,77,795,1156,1157,798,800,807,801,802 +,1158,49,804,47,46,800,78,806,1159,1160,809,811,1161,812,813,1162,814,811,814,815,817,1163,818,820,833,821,823,1164,824,826,1165,827,829,1166,830,832,1167,828,833,1168,834,1169,1170,1171,838,1167,832,840,1172,841 +,843,1173,844] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":1174,"indexStart":0,"indexCount":2553}] +,"instances":[]} +,{"name":"ObstacleHoleTopRight","id":"ObstacleHoleTopRight","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4859.3467,1213.074],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[0,6.0342,-7.0933,107.9444,6.0342,10.9429,0,6.0342,10.9429,-107.9444,6.0342,-7.0933,0,53.1766,-7.0933,-107.9444,53.1766,-7.0933,0,-59.2301,-7.1273,107.9444,6.0342,-7.0933,0,6.0342,-7.0933,0,53.1766,-7.0933,0,6.0342,-7.0933,0,6.0342,10.9429,-107.9444,-59.2301,-7.1273,-53.6485,53.1766,-7.0966,-48.3636,59.2367,-11.1866,-53.6485,59.2367,-7.0933,-15.9239,53.1766,-7.0966 +,-20.0576,59.2367,-11.1866,-20.0576,53.178,-11.1899,-20.0576,53.178,-11.1899,-48.3636,59.2367,-11.1866,-48.3636,53.178,-11.1899,-15.9239,59.2367,-7.0933,-48.3636,59.2367,-11.1866,-20.0576,59.2367,-11.1866,-92.9179,59.2367,-11.1866,-98.2028,53.1766,-7.0975,-92.9179,53.1784,-11.1909,-92.9179,-59.1771,-11.2206,-66.3037,53.1784,-11.1909,-92.9179,53.1784,-11.1909,-60.4782,53.1766,-7.0975,-66.3037,59.2367,-11.1866,-66.3037,53.1784,-11.1909 +,-66.3037,59.2367,-11.1866,-98.2028,59.2367,-7.0933,-92.9179,59.2367,-11.1866,56.1186,-59.1771,-11.2206,50.8337,-1.7032,-7.0933,50.8337,-59.1915,-7.1273,84.4246,-59.1771,-11.2206,88.5583,-1.7032,-7.0933,84.4246,-1.6889,-11.1866,84.4246,-59.1771,-11.2206,56.1186,-1.6889,-11.1866,56.1186,-59.1771,-11.2206,10.5968,-59.1771,-11.2206,5.3119,-1.7032,-7.0933,5.3119,-59.1915,-7.1273,43.0365,-1.7032,-7.0933,38.9028,-59.1771,-11.2206 +,43.0365,-59.1915,-7.1273,10.5968,-59.1771,-11.2206,38.9028,-1.6889,-11.1866,10.5968,-1.6889,-11.1866,107.9444,-27.1038,-14.4667,-107.9444,-22.894,-7.0933,-107.9444,-27.1038,-14.4667,107.9444,-38.9682,-7.1273,-107.9444,-34.6557,-14.5007,-107.9444,-38.9682,-7.1273,107.9444,-34.6557,-14.5007,-107.9444,-27.1038,-14.4667,-107.9444,-34.6557,-14.5007,-9.4118,59.2367,-13.0248,-2.2619,59.2367,-13.8847,-3.0411,59.2367,-13.0248,0.4798,-3.2396,-13.0247 +,107.9444,-4.8461,-7.1273,107.9444,-3.3836,-13.0247,-11.4253,59.2367,-7.1273,-10.4905,59.2367,-13.8847,-9.4118,59.2367,-13.0248,-11.4398,53.1766,-7.1273,-10.5089,55.1069,-13.8847,-13.11,55.1069,-7.1274,-0.3558,-4.6995,-7.1273,-9.5505,7.0963,-13.0247,-11.5666,6.7387,-7.1273,-2.9948,8.2248,-13.0248,0.4798,-3.2396,-13.0247,2.3251,2.847,-13.0248,3.2477,5.8903,-10.7406,107.9444,2.8949,-13.0248,107.9444,6.0342,-10.7406 +,0.1387,8.7891,-10.7406,2.3251,2.847,-13.0248,107.9444,-3.3836,-13.0247,107.9444,2.8949,-13.0248,0.1387,8.7891,-10.7406,0.0143,53.1766,-7.1273,0.0143,53.1766,-10.7406,107.9444,6.0342,-10.7406,3.2477,5.8903,-7.1273,3.2477,5.8903,-10.7406,0.1387,8.7891,-7.1273,0.1387,8.7891,-10.7406,-3.0411,59.2367,-13.0248,0,59.2367,-7.1273,-11.4253,59.2367,-7.1273,-107.9444,55.9096,-4.3604,0,53.1766,-7.0933 +,0,55.9096,-4.3604,-107.9444,55.9096,10.9429,0,55.9096,-4.3604,0,55.9096,10.9429,0,59.2367,-10.7406,-2.2619,59.2367,-13.8847,1.666,59.2367,-10.9344,-9.426,53.1766,-13.0248,-9.5505,7.0963,-13.0247,-9.5505,7.0963,-13.0247,-11.4398,53.1766,-7.1273,-11.5666,6.7387,-7.1273,-3.0363,53.1766,-13.0248,-2.9948,8.2248,-13.0248,-2.2558,55.1069,-13.8847,1.666,59.2367,-10.9344,-2.2619,59.2367,-13.8847 +,-10.5089,55.1069,-13.8847,-13.0912,59.2367,-7.1274,-13.11,55.1069,-7.1274,-2.2558,55.1069,-13.8847,-10.4905,59.2367,-13.8847,-10.5089,55.1069,-13.8847,1.6844,55.1069,-10.9344,1.666,59.2367,-7.1274,1.666,59.2367,-10.9344,0.0143,53.1766,-10.7406,-2.2558,55.1069,-13.8847,-3.0363,53.1766,-13.0248,0,59.2367,-10.7406,1.666,59.2367,-7.1274,0,59.2367,-7.1273,0.0143,53.1766,-10.7406,1.6844,55.1069,-7.1274 +,1.6844,55.1069,-10.9344,-11.4253,59.2367,-7.1273,-13.11,55.1069,-7.1274,-13.0912,59.2367,-7.1274,-9.426,53.1766,-13.0248,-2.2558,55.1069,-13.8847,-10.5089,55.1069,-13.8847,0,59.2367,-7.1273,1.6844,55.1069,-7.1274,0.0143,53.1766,-7.1273,-20.0576,-59.1771,-11.2206,-48.3636,-59.1771,-11.2206,-20.0576,-59.1771,-11.2206,-48.3636,-59.1771,-11.2206,-53.6485,-59.1915,-7.1273,-66.3037,-59.1771,-11.2206,-60.4782,-59.1915,-7.1273 +,-66.3037,59.2367,-11.1866,-92.9179,59.2367,-11.1866,-92.9179,-59.1771,-11.2206,-98.2028,-59.1915,-7.1273,0,55.9096,10.9429,-107.9444,6.0342,10.9429,-107.9444,55.9096,10.9429,0,6.0342,10.9429,-107.9444,-59.2301,10.9429,107.9444,6.0342,10.9429,0,-59.2301,10.9429,-15.9239,53.17,10.9428,-15.9239,-59.2367,14.4974,-15.9239,59.2235,14.5007,-15.9239,59.2367,-7.0933,-53.6485,59.2235,14.5007,-53.6485,59.2367,-7.0933 +,-53.6485,59.2367,-7.0933,-53.6485,53.17,10.9428,-53.6485,53.1766,-7.0966,-60.4782,59.2367,-7.0933,-60.4782,53.17,10.9419,-60.4782,59.2235,14.5007,-60.4782,59.2367,-7.0933,-98.2028,59.2235,14.5007,-98.2028,59.2367,-7.0933,-98.2028,53.17,10.9419,-98.2028,53.1766,-7.0975,-60.4782,59.2235,14.5007,-98.2028,-59.2367,14.4964,-98.2028,59.2235,14.5007,-15.9239,59.2235,14.5007,-53.6485,-59.2367,14.4974,-53.6485,59.2235,14.5007 +,-98.2028,-59.2367,14.4964,-98.2028,-59.2301,10.9419,-60.4782,-59.2367,14.4964,-53.6485,-59.2367,14.4974,-53.6485,-59.2301,10.9428,107.9444,6.0342,-7.0933,107.9444,-59.2301,-7.1273,0,55.9096,10.9429,0,55.9096,-4.3604,-48.3636,53.178,-11.1899,-15.9239,59.2367,-7.0933,-20.0576,59.2367,-11.1866,-98.2028,59.2367,-7.0933,-66.3037,-59.1771,-11.2206,-60.4782,59.2367,-7.0933,56.1186,-1.6889,-11.1866,88.5583,-59.1915,-7.1273 +,84.4246,-1.6889,-11.1866,10.5968,-1.6889,-11.1866,38.9028,-1.6889,-11.1866,38.9028,-59.1771,-11.2206,107.9444,-22.894,-7.0933,107.9444,-34.6557,-14.5007,107.9444,-27.1038,-14.4667,-10.4905,59.2367,-13.8847,-0.3558,-4.6995,-7.1273,-13.0912,59.2367,-7.1274,-9.426,53.1766,-13.0248,0.4798,-3.2396,-13.0247,0.1387,8.7891,-7.1273,107.9444,6.0342,-7.1273,-11.4253,59.2367,-7.1273,-9.4118,59.2367,-13.0248,-3.0411,59.2367,-13.0248 +,-3.0411,59.2367,-13.0248,0,59.2367,-10.7406,-107.9444,53.1766,-7.0933,-107.9444,55.9096,-4.3604,-3.0363,53.1766,-13.0248,-9.5505,7.0963,-13.0247,-9.426,53.1766,-13.0248,0.0143,53.1766,-10.7406,1.6844,55.1069,-10.9344,-10.4905,59.2367,-13.8847,-2.2619,59.2367,-13.8847,1.6844,55.1069,-7.1274,1.6844,55.1069,-10.9344,0,59.2367,-10.7406,1.666,59.2367,-10.9344,0.0143,53.1766,-10.7406,0.0143,53.1766,-7.1273 +,-11.4398,53.1766,-7.1273,-3.0363,53.1766,-13.0248,1.666,59.2367,-7.1274,-15.9239,-59.1915,-7.1273,107.9444,-59.2301,10.9429,-15.9239,-59.2301,10.9428,-15.9239,53.1766,-7.0966,-15.9239,59.2235,14.5007,-53.6485,59.2235,14.5007,-60.4782,53.1766,-7.0975,-60.4782,59.2235,14.5007,-98.2028,59.2235,14.5007,-60.4782,-59.2367,14.4964,-15.9239,-59.2367,14.4974,-60.4782,-59.2301,10.9419] +,"normals":[0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0.001,-1,0,0.001,-1,0,0,-1,1,0,0,1,0,0,1,0,0,0,0.001,-1,-0.612,0,-0.791,-0.612,0,-0.791,-0.612,0,-0.791,0.704,0,-0.711 +,0.704,0,-0.711,0.704,0,-0.711,0,0,-1,0,0.001,-1,0,0,-1,0,1,0,0,1,0,0,1,0,-0.612,0.001,-0.791,-0.612,0,-0.791,-0.612,0,-0.791,0,0,-1,0,0,-1,0,0,-1,0.575,0,-0.818,0.575,0.001,-0.818,0.575,0,-0.818 +,0,1,0,0,1,0,0,1,0,-0.612,0,-0.791,-0.612,0,-0.791,-0.612,0,-0.791,0.704,0,-0.711,0.704,0,-0.711,0.704,0,-0.711,0,0.001,-1,0,0.001,-1,0,0.001,-1,-0.612,0,-0.791,-0.612,0,-0.791,-0.612,0,-0.791,0.704,0,-0.711,0.704,0,-0.711 +,0.704,0,-0.711,0,0.001,-1,0,0.001,-1,0,0.001,-1,0,0.868,-0.496,0,0.868,-0.496,0,0.868,-0.496,0,-0.863,-0.505,0,-0.863,-0.505,0,-0.863,-0.505,0,0.004,-1,0,0.004,-1,0,0.004,-1,0,1,0,0,1,0,0,1,0,-0.368,-0.889,-0.272 +,-0.001,-0.971,-0.241,-0.001,-0.971,-0.241,0,1,0,0,1,0,0,1,0,-0.737,-0.616,-0.277,-0.77,-0.577,-0.271,-0.726,-0.628,-0.279,-0.381,-0.883,-0.274,-0.871,-0.373,-0.319,-0.882,-0.344,-0.322,0,0,-1,0,0,-1,0,0,-1,0.226,0.54,-0.811,-0.001,0.589,-0.808,-0.001,0.588,-0.809 +,0.532,0.26,-0.806,0.214,0.549,-0.808,0,0,-1,0,0,-1,1,0.003,0,1,0.003,0,1,0.003,0,-0.001,1,0,0.366,0.931,0,0.366,0.931,0,0.682,0.731,0,0.682,0.731,0,0,1,0,0,1,0,0,1,0,0,0.707,-0.707,0,0.707,-0.707 +,0,0.707,-0.707,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,-0.871,-0.373,-0.319,-0.946,0.003,-0.323,-0.882,-0.344,-0.322,0.599,0.002,-0.801,0.552,0.206,-0.808,0.6,0.002,-0.8,0.6,0.002,-0.8,0.601,0.001,-0.8 +,-0.933,0.004,-0.359,-0.933,0.004,-0.359,-0.933,0.004,-0.359,0,0,-1,0,0,-1,0,0,-1,1,0.004,0,1,0.004,0,1,0.004,0,0.668,-0.62,-0.411,0.514,-0.514,-0.687,0.514,-0.514,-0.687,0,1,0,0,1,0,0,1,0,0.668,-0.62,-0.411,0.756,-0.654,0 +,0.704,-0.64,-0.308,0,0,1,0,0,1,0,0,1,0,-0.407,-0.913,0,-0.407,-0.913,0,-0.407,-0.913,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0.704,0,-0.711,-0.612,0,-0.791,-0.612,0,-0.791,0.575,0,-0.818,0.575,0,-0.818 +,0,0.001,-1,0,0.001,-1,-0.612,0,-0.791,-0.612,0,-0.791,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0.001,0,1,0 +,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0.001,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 +,-1,0,0,-1,0,0,1,0,0,-1,0,0,-1,0,0,0,1,0,0,0.001,-1,1,0,0,1,0,0,-0.612,0,-0.791,0.704,0,-0.711,0,0.001,-1,-0.612,0.001,-0.791,0,0,-1,0.575,0.001,-0.818,-0.612,0,-0.791,0.704,0,-0.711 +,0,0.001,-1,-0.612,0,-0.791,0.704,0,-0.711,0,0.001,-1,0,0.868,-0.496,0,-0.863,-0.505,0,0.004,-1,0,1,0,-0.381,-0.883,-0.274,0,1,0,-0.784,-0.559,-0.268,-0.368,-0.889,-0.272,1,0.003,0,-0.001,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,0.707,-0.707,0,1,0,0,0,-1,-0.871,-0.373,-0.319,-0.946,0.003,-0.323,0.599,0.002,-0.8,0.599,0.003,-0.8,-0.933,0.004,-0.359,0,0,-1,1,0.004,0,0.704,-0.64,-0.308,0,1,0,0,1,0,0.668,-0.62,-0.411,0.756,-0.654,0 +,0,0,1,0,-0.407,-0.913,0,0,1,0.704,0,-0.711,0,0,1,1,0,0,1,0,0,0,1,0.001,-1,0,0,1,0,0,0,1,0.001,-1,0,0,0,0,1,0,0,1,1,0,0] +,"uvs":[0.547,0.855,0.655,0.873,0.547,0.873,0.34,0.067,0.448,0.114,0.34,0.114,0.448,0.002,0.557,0.067,0.448,0.067,0.438,0.93,0.438,0.883,0.456,0.883,0.34,0.002,0.914,0.422,0.921,0.428,0.914,0.428,0.818,0.285,0.812,0.291,0.812,0.285,0.812,0.285,0.784,0.291,0.784,0.285,0.132,0.895,0.1,0.891,0.128,0.891 +,0.921,0.688,0.914,0.682,0.921,0.682,0.786,0.572,0.812,0.685,0.786,0.685,0.82,0.685,0.812,0.691,0.812,0.685,0.387,0.891,0.356,0.895,0.361,0.891,0.957,0.101,0.951,0.158,0.951,0.101,0.714,0.168,0.72,0.226,0.714,0.226,0.714,0.168,0.686,0.226,0.686,0.168,0.959,0.843,0.952,0.901,0.952,0.843,0.494,0.891 +,0.488,0.833,0.494,0.833,0.46,0.833,0.488,0.891,0.46,0.891,0.352,0.825,0.136,0.833,0.136,0.825,0.763,0.843,0.547,0.852,0.547,0.843,0.352,0.817,0.136,0.825,0.136,0.817,0.941,0.822,0.948,0.82,0.948,0.821,0.817,0.933,0.925,0.927,0.925,0.933,0.853,0.554,0.846,0.555,0.847,0.554,0.947,0.425,0.953,0.427 +,0.946,0.427,0.744,0.944,0.751,0.959,0.744,0.96,0.367,0.619,0.371,0.607,0.373,0.613,0.374,0.617,0.48,0.612,0.48,0.615,0.371,0.62,0.373,0.613,0.48,0.605,0.48,0.612,0.962,0.843,0.966,0.888,0.962,0.888,0.938,0.435,0.942,0.54,0.938,0.54,0.942,0.544,0.938,0.544,0.986,0.025,0.989,0.03,0.978,0.03 +,0.632,0.3,0.741,0.296,0.741,0.3,0.632,0.315,0.741,0.3,0.741,0.315,0.951,0.822,0.948,0.82,0.953,0.822,0.355,0.663,0.361,0.617,0.953,0.379,0.947,0.425,0.947,0.378,0.362,0.663,0.367,0.619,0.362,0.665,0.366,0.67,0.362,0.669,0.953,0.427,0.946,0.431,0.946,0.427,0.362,0.665,0.354,0.669,0.354,0.665 +,0.962,0.89,0.966,0.894,0.962,0.894,0.985,0.68,0.981,0.682,0.981,0.68,0.964,0.5,0.968,0.499,0.968,0.5,0.962,0.888,0.966,0.89,0.962,0.89,0.85,0.979,0.848,0.983,0.848,0.979,0.355,0.663,0.362,0.665,0.354,0.665,0.861,0.979,0.863,0.983,0.861,0.985,0.812,0.172,0.784,0.172,0.812,0.172,0.921,0.31 +,0.914,0.31,0.812,0.572,0.82,0.572,0.812,0.691,0.786,0.691,0.921,0.569,0.914,0.569,0.11,0.121,0.002,0.171,0.002,0.121,0.11,0.171,0.002,0.236,0.218,0.171,0.11,0.236,0.519,0.853,0.523,0.741,0.522,0.859,0.501,0.859,0.094,0.917,0.095,0.895,0.844,0.691,0.827,0.682,0.845,0.685,0.845,0.813,0.863,0.807 +,0.867,0.813,0.393,0.895,0.356,0.916,0.844,0.128,0.827,0.119,0.845,0.122,0.501,0.737,0.538,0.619,0.538,0.737,0.705,0.691,0.742,0.572,0.742,0.691,0.841,0.008,0.845,0.008,0.867,0.694,0.842,0.57,0.845,0.571,0.655,0.855,0.557,0.002,0.456,0.933,0.44,0.933,0.921,0.422,0.818,0.291,0.812,0.291,0.914,0.688 +,0.812,0.572,0.82,0.691,0.957,0.158,0.72,0.168,0.714,0.226,0.959,0.901,0.488,0.891,0.488,0.833,0.352,0.833,0.763,0.852,0.352,0.825,0.94,0.822,0.816,0.927,0.853,0.555,0.953,0.425,0.751,0.944,0.966,0.843,0.942,0.435,0.978,0.03,0.98,0.025,0.986,0.025,0.986,0.025,0.989,0.027,0.632,0.296,0.632,0.3 +,0.362,0.663,0.953,0.379,0.953,0.425,0.365,0.664,0.367,0.666,0.953,0.431,0.362,0.669,0.966,0.89,0.986,0.682,0.964,0.5,0.964,0.499,0.962,0.888,0.966,0.888,0.85,0.985,0.362,0.663,0.863,0.979,0.818,0.172,0.218,0.237,0.519,0.741,0.501,0.853,0.132,0.917,0.823,0.688,0.845,0.807,0.393,0.916,0.822,0.125 +,0.501,0.619,0.705,0.572,0.863,0.694] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,6,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 +,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,82,81,87,88,89,90,91,92,93,94,94 +,95,96,97,98,99,100,101,102,103,104,105,106,107,108,79,109,110,111,112,113,85,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142 +,143,144,145,145,137,143,146,21,147,148,16,18,149,13,150,31,151,152,30,153,154,155,26,156,157,158,159,160,161,158,162,163,160,164,165,166,167,164,166,22,168,169,170,171,172,173,174,175,176,177 +,35,178,179,180,181,182,183,184,185,186,179,187,188,174,189,175,171,190,191,0,192,1,3,8,4,6,193,7,11,194,9,195,9,194,6,8,3,13,196,14,16,197,17,19,198,20,22,169,23,25 +,199,26,28,200,29,31,201,32,34,176,35,37,202,38,40,203,41,43,204,44,46,205,47,49,206,50,52,207,53,55,208,56,58,209,59,61,210,62,64,211,65,67,212,68,70,213,71,73,214,74 +,76,215,77,79,110,80,82,86,83,85,115,86,81,80,87,89,216,90,92,217,93,94,93,95,218,219,220,221,222,98,100,223,101,103,224,104,106,66,107,79,225,109,226,227,112,85,228,114,116,229 +,117,119,230,120,122,231,123,125,232,126,128,233,129,234,235,132,236,237,135,137,238,138,140,239,141,143,240,144,145,238,137,146,19,21,148,241,16,149,196,13,31,33,151,30,29,153,155,27,26,157 +,160,158,160,163,161,162,242,163,164,243,165,167,244,164,22,245,168,170,246,171,173,247,174,176,248,177,178,249,179,181,250,182,184,251,185,179,249,187,174,252,189,171,246,190] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":253,"indexStart":0,"indexCount":444}] +,"instances":[]} +,{"name":"ObstaclePole","id":"ObstaclePole","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[0,-4858.5034,3963.7747],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-21.4012,52.8485,-6.8502,-21.4012,55.0661,-4.6326,-21.4012,55.0661,13.1498,-12.8331,52.8485,-12.678,-9.8345,-60.0736,-10.3939,-9.707,52.8485,-10.3939,-19.3739,52.8485,-12.678,-21.4012,-60.0736,-6.7806,-19.2463,-60.0736,-12.678,-19.2463,-60.0736,-12.678,-12.8331,52.8485,-12.678,-19.3739,52.8485,-12.678,-9.6958,59.9264,-10.3939,-12.1563,59.9264,-13.9618,-8.2471,59.9264,-10.5017,-12.8294,59.9264,-12.678,-9.6958,59.9264,-10.3939 +,-9.2669,59.9264,-7.2593,4.7795,6.3466,-12.661,-2.9888,7.4335,-17.3462,-4.7795,6.3466,-12.661,-2.9888,19.4769,-17.3462,-4.7795,28.0574,-12.695,-4.7795,18.39,-12.661,-4.7795,28.0574,-12.695,2.9888,26.9542,-17.3725,4.7795,28.0574,-12.695,4.7795,-5.7627,-12.661,-2.9888,-4.6758,-17.3462,-4.7795,-5.7627,-12.661,-2.9888,7.4335,-17.3462,-4.7795,16.014,-12.695,-4.7795,6.3466,-12.661,-4.7795,16.014,-12.695 +,2.9888,14.9108,-17.3725,4.7795,16.014,-12.695,-2.9888,-4.6758,-17.3462,-4.7795,3.9048,-12.695,-4.7795,-5.7627,-12.661,-4.7795,3.9048,-12.695,2.9888,2.8016,-17.3725,4.7795,3.9048,-12.695,-21.4012,-60.0736,13.1498,-6.9967,55.0661,13.1498,-6.9967,-60.0736,13.1498,-9.8345,-60.0736,-10.3939,-9.707,52.8485,-6.7806,-9.707,52.8485,-10.3939,-19.3739,52.8485,-12.678,-22.8499,54.2827,-6.7806,-21.4012,52.8485,-6.7806 +,-8.2471,59.9264,-7.2593,-9.2087,54.2827,-6.7806,-9.2669,59.9264,-7.2593,-19.3739,52.8485,-12.678,-12.1609,54.2827,-13.9618,-20.3208,54.2827,-13.9618,-21.4012,52.8485,-6.7806,-22.8499,54.2827,-6.7806,-21.9269,54.2827,-6.7806,-8.261,54.2827,-10.5017,-8.2471,59.9264,-7.2593,-8.2471,59.9264,-10.5017,-20.3208,54.2827,-13.9618,-12.1563,59.9264,-13.9618,-20.3347,59.9264,-13.9618,-22.8499,59.9264,-7.2594,-20.3208,54.2827,-13.9618 +,-20.3347,59.9264,-13.9618,-12.1563,59.9264,-13.9618,-8.261,54.2827,-10.5017,-8.2471,59.9264,-10.5017,-9.707,52.8485,-10.3939,-12.1609,54.2827,-13.9618,-12.8331,52.8485,-12.678,-9.2669,59.9264,-7.2593,-8.2471,59.9264,-10.5017,-8.2471,59.9264,-7.2593,-19.385,59.9264,-12.678,-22.8499,59.9264,-7.2594,-20.3347,59.9264,-13.9618,-19.385,59.9264,-12.678,-12.1563,59.9264,-13.9618,-12.8294,59.9264,-12.678,-9.707,52.8485,-10.3939 +,-8.261,54.2827,-6.7806,-8.261,54.2827,-10.5017,4.7795,18.39,-12.661,-2.9888,19.4769,-17.3462,-4.7795,18.39,-12.661,-8.261,54.2827,-6.7806,-9.707,52.8485,-6.7806,-9.2087,54.2827,-6.7806,-21.8301,59.9264,-7.2593,-21.9269,54.2827,-6.7806,-22.8499,59.9264,-7.2594,-22.8499,54.2827,-6.7806,-6.9967,52.8485,-6.8502,-6.9967,60.0639,-12.695,-6.9967,55.0661,-4.6326,-6.9967,-60.0808,-12.661,-6.9967,-60.0736,-6.8502 +,-21.4012,52.8485,-6.8502,-21.4012,-60.0736,-6.8502,-21.4012,52.8485,-6.8502,-6.9967,55.0661,-4.6326,-21.4012,55.0661,-4.6326,-21.4012,55.0661,-4.6326,-6.9967,55.0661,13.1498,-21.4012,55.0661,13.1498,-6.9967,60.0808,17.3695,-6.9967,55.0661,-4.6326,-6.9967,60.0639,-12.695,-6.9967,-60.0713,17.3725,-6.9967,55.0661,13.1498,-6.9967,60.0808,17.3695,6.9967,60.0808,17.3695,-6.9967,60.0639,-12.695,6.9967,60.0639,-12.695 +,6.9967,-60.0808,-12.661,-6.9967,60.0639,-12.695,-6.9967,-60.0808,-12.661,2.9888,19.4769,-17.3462,-2.9888,26.9542,-17.3725,-2.9888,19.4769,-17.3462,2.9888,7.4335,-17.3462,-2.9888,14.9108,-17.3725,-2.9888,7.4335,-17.3462,2.9888,-4.6758,-17.3462,-2.9888,2.8016,-17.3725,-2.9888,-4.6758,-17.3462,21.4012,55.0661,13.1498,21.4012,52.8485,-6.8502,21.4012,-60.0736,13.1498,12.8331,52.8485,-12.678,9.8345,-60.0736,-10.3939 +,12.8756,-60.0736,-12.678,19.3739,52.8485,-12.678,21.4012,-60.0736,-6.7806,21.4012,52.8485,-6.7806,12.8331,52.8485,-12.678,19.2463,-60.0736,-12.678,19.3739,52.8485,-12.678,9.6958,59.9264,-10.3939,12.1563,59.9264,-13.9618,12.8294,59.9264,-12.678,9.2669,59.9264,-7.2593,12.8294,59.9264,-12.678,21.8301,59.9264,-7.2593,4.7795,28.0574,-12.695,2.9888,19.4769,-17.3462,4.7795,18.39,-12.661,4.7795,16.014,-12.695 +,2.9888,7.4335,-17.3462,4.7795,6.3466,-12.661,4.7795,3.9048,-12.695,2.9888,-4.6758,-17.3462,4.7795,-5.7627,-12.661,6.9967,55.0661,13.1498,21.4012,-60.0736,13.1498,6.9967,-60.0736,13.1498,9.8345,-60.0736,-10.3939,9.707,52.8485,-6.7806,9.8345,-60.0736,-6.7806,22.8499,54.2827,-6.7806,19.3739,52.8485,-12.678,21.4012,52.8485,-6.7806,9.2087,54.2827,-6.7806,8.2471,59.9264,-7.2593,9.2669,59.9264,-7.2593 +,19.3739,52.8485,-12.678,12.1609,54.2827,-13.9618,12.8331,52.8485,-12.678,21.4012,52.8485,-6.7806,21.9269,54.2827,-6.7806,22.8499,54.2827,-6.7806,8.261,54.2827,-10.5017,8.2471,59.9264,-7.2593,8.261,54.2827,-6.7806,12.1563,59.9264,-13.9618,20.3208,54.2827,-13.9618,20.3347,59.9264,-13.9618,20.3208,54.2827,-13.9618,22.8499,59.9264,-7.2594,20.3347,59.9264,-13.9618,12.1563,59.9264,-13.9618,8.261,54.2827,-10.5017 +,12.1609,54.2827,-13.9618,12.1609,54.2827,-13.9618,9.707,52.8485,-10.3939,12.8331,52.8485,-12.678,9.2669,59.9264,-7.2593,8.2471,59.9264,-10.5017,9.6958,59.9264,-10.3939,19.385,59.9264,-12.678,22.8499,59.9264,-7.2594,21.8301,59.9264,-7.2593,12.1563,59.9264,-13.9618,19.385,59.9264,-12.678,9.707,52.8485,-10.3939,8.261,54.2827,-6.7806,9.707,52.8485,-6.7806,8.261,54.2827,-6.7806,9.2087,54.2827,-6.7806 +,9.707,52.8485,-6.7806,21.8301,59.9264,-7.2593,22.8499,59.9264,-7.2594,21.9269,54.2827,-6.7806,6.9967,52.8485,-6.8502,6.9967,55.0661,-4.6326,6.9967,60.0639,-12.695,6.9967,-60.0808,-12.661,21.4012,52.8485,-6.8502,6.9967,-60.0736,-6.8502,21.4012,-60.0736,-6.8502,6.9967,55.0661,-4.6326,21.4012,52.8485,-6.8502,21.4012,55.0661,-4.6326,6.9967,55.0661,13.1498,21.4012,55.0661,-4.6326,21.4012,55.0661,13.1498 +,6.9967,60.0808,17.3695,6.9967,55.0661,-4.6326,6.9967,55.0661,13.1498,6.9967,55.0661,13.1498,6.9967,-60.0713,17.3725,6.9967,60.0808,17.3695,6.9967,-60.0713,17.3725,-6.9967,60.0808,17.3695,6.9967,60.0808,17.3695,-21.4012,-60.0736,13.1498,-21.4012,-60.0736,-6.8502,-12.8756,-60.0736,-12.678,-21.4012,52.8485,-6.7806,-12.8756,-60.0736,-12.678,-12.8294,59.9264,-12.678,-21.8301,59.9264,-7.2593,-19.385,59.9264,-12.678 +,2.9888,7.4335,-17.3462,-2.9888,26.9542,-17.3725,-2.9888,26.9542,-17.3725,2.9888,-4.6758,-17.3462,-2.9888,14.9108,-17.3725,-2.9888,14.9108,-17.3725,-2.9888,2.8016,-17.3725,-2.9888,2.8016,-17.3725,-21.4012,55.0661,13.1498,-9.8345,-60.0736,-6.7806,-20.3208,54.2827,-13.9618,-8.261,54.2827,-6.7806,-12.8331,52.8485,-12.678,-8.261,54.2827,-6.7806,-12.1609,54.2827,-13.9618,-22.8499,54.2827,-6.7806,-12.1609,54.2827,-13.9618 +,-8.261,54.2827,-10.5017,-9.2669,59.9264,-7.2593,-9.6958,59.9264,-10.3939,-8.2471,59.9264,-10.5017,-21.8301,59.9264,-7.2593,-19.385,59.9264,-12.678,-20.3347,59.9264,-13.9618,-9.707,52.8485,-6.7806,2.9888,19.4769,-17.3462,-6.9967,-60.0736,-6.8502,-6.9967,52.8485,-6.8502,-6.9967,52.8485,-6.8502,-6.9967,55.0661,-4.6326,-6.9967,55.0661,13.1498,-6.9967,55.0661,-4.6326,-6.9967,-60.0736,13.1498,-6.9967,60.0808,17.3695 +,6.9967,60.0639,-12.695,2.9888,26.9542,-17.3725,2.9888,14.9108,-17.3725,2.9888,2.8016,-17.3725,21.4012,-60.0736,-6.8502,21.4012,55.0661,-4.6326,9.707,52.8485,-10.3939,19.2463,-60.0736,-12.678,12.8756,-60.0736,-12.678,8.2471,59.9264,-10.5017,19.385,59.9264,-12.678,12.8294,59.9264,-12.678,9.6958,59.9264,-10.3939,12.8294,59.9264,-12.678,2.9888,26.9542,-17.3725,2.9888,14.9108,-17.3725,2.9888,2.8016,-17.3725 +,21.4012,55.0661,13.1498,9.707,52.8485,-10.3939,20.3208,54.2827,-13.9618,8.261,54.2827,-6.7806,20.3208,54.2827,-13.9618,8.2471,59.9264,-10.5017,12.1609,54.2827,-13.9618,22.8499,54.2827,-6.7806,8.2471,59.9264,-10.5017,8.261,54.2827,-10.5017,9.2669,59.9264,-7.2593,8.2471,59.9264,-7.2593,20.3347,59.9264,-13.9618,20.3347,59.9264,-13.9618,19.385,59.9264,-12.678,8.261,54.2827,-10.5017,22.8499,54.2827,-6.7806 +,6.9967,-60.0736,-6.8502,6.9967,52.8485,-6.8502,6.9967,52.8485,-6.8502,6.9967,55.0661,-4.6326,6.9967,60.0639,-12.695,6.9967,55.0661,-4.6326,6.9967,55.0661,13.1498,6.9967,-60.0736,13.1498,-6.9967,-60.0713,17.3725] +,"normals":[-1,0,0,-1,0,0,-1,0,0,0.59,-0.001,-0.807,0.6,0,-0.8,0.59,-0.001,-0.807,-0.945,0,-0.326,-0.939,-0.001,-0.343,-0.939,-0.001,-0.343,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,-0.974,-0.226,0,-0.974,-0.226,0,-0.974,-0.226,-0.934,-0.001,-0.357,-0.934,-0.001,-0.357,-0.934,-0.001,-0.357,0,0.973,-0.23,0,0.973,-0.23,0,0.973,-0.23,0,-0.974,-0.226,0,-0.974,-0.226,0,-0.974,-0.226,-0.934,-0.001,-0.357,-0.934,-0.001,-0.357,-0.934,-0.001,-0.357,0,0.973,-0.23 +,0,0.973,-0.23,0,0.973,-0.23,-0.934,-0.001,-0.357,-0.934,-0.001,-0.357,-0.934,-0.001,-0.357,0,0.973,-0.23,0,0.973,-0.23,0,0.973,-0.23,0,0,1,0,0,1,0,0,1,1,-0.001,0,1,-0.001,0,1,-0.001,0,-0.693,-0.679,-0.243,-0.686,-0.688,-0.237,-0.684,-0.691,-0.235 +,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,0,-0.667,-0.745,0,-0.667,-0.745,0,-0.667,-0.745,0,0,1,0,0,1,0,0,1,1,-0.002,0,1,-0.002,0,1,-0.002,0,0,0,-1,0,0,-1,0,0,-1,-0.94,-0.018,-0.34,-0.939,-0.013,-0.343 +,-0.936,-0.002,-0.351,0.663,-0.001,-0.748,0.663,-0.001,-0.748,0.663,-0.002,-0.749,0.513,-0.614,-0.6,0.453,-0.675,-0.583,0.417,-0.707,-0.571,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.704,-0.71,0 +,0.704,-0.71,0,0.704,-0.71,0,0,-0.974,-0.226,0,-0.974,-0.226,0,-0.974,-0.226,0,0,1,0,0,1,0,0,1,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1 +,0,0,-1,0,0,-1,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,-0.001,0,1,-0.001,0,1,-0.001 +,0,0,-1,0,0,-1,0,0,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,1,0,0,1,0,0,1,0,0,-0.59,-0.001,-0.807,-0.6,0,-0.8 +,-0.601,0,-0.8,0.945,0,-0.326,0.939,-0.001,-0.343,0.946,0,-0.325,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0.934,-0.001,-0.357 +,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0,0,1,0,0,1,0,0,1,-1,-0.001,0,-1,-0.001,0,-1,-0.001,0,0.686,-0.688,-0.237,0.693,-0.679,-0.243,0.684,-0.691,-0.235,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996 +,0,-0.667,-0.745,0,-0.667,-0.745,0,-0.667,-0.745,0,0,1,0,0,1,0,0,1,-1,-0.002,0,-1,-0.002,0,-1,-0.002,0,0,0,-1,0,0,-1,0,0,-1,0.939,-0.013,-0.343,0.94,-0.018,-0.34,0.936,-0.002,-0.351,-0.663,-0.001,-0.748,-0.663,-0.001,-0.748 +,-0.664,-0.001,-0.748,-0.453,-0.675,-0.583,-0.513,-0.614,-0.6,-0.417,-0.707,-0.571,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.704,-0.71,0,-0.704,-0.71,0,-0.704,-0.71,0,0,0,1,0,0,1 +,0,0,1,0,0.085,0.996,0,0.085,0.996,0,0.085,0.996,1,0,0,1,0,0,1,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,0.707,-0.707,0,0.707,-0.707,0,0.707,-0.707,0,1,0,0,1,0,0,1,0 +,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,-1,0,0,-1,0,0,0.601,0,-0.8,-0.946,0,-0.325,0,0,-1,0,1,0,0,1,0,0,1,0 +,0,-0.974,-0.226,-0.934,-0.001,-0.357,0,0.973,-0.23,0,-0.974,-0.226,-0.934,-0.001,-0.357,0,0.973,-0.23,-0.934,-0.001,-0.357,0,0.973,-0.23,0,0,1,1,-0.001,0,-0.694,-0.677,-0.244,0,0.085,0.996,0,-0.667,-0.745,1,-0.002,0,0,0,-1,-0.943,-0.028,-0.332,0.664,-0.001,-0.748 +,0.537,-0.587,-0.605,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.704,-0.71,0,0,-0.974,-0.226,-1,0,0,0,0,-1,0,0.707,-0.707,0,1,0,-1,0,0,-1,0,0,-1,0,0,0,1,-0.001 +,0,0,-1,0,-0.004,-1,0,-0.004,-1,0,-0.004,-1,1,0,0,1,0,0,-0.59,-0.001,-0.807,0.939,-0.001,-0.343,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.934,-0.001,-0.357,0.934,-0.001,-0.357,0.934,-0.001,-0.357 +,0,0,1,-1,-0.001,0,0.694,-0.677,-0.244,0,0.085,0.996,0,-0.667,-0.745,-1,-0.002,0,0,0,-1,0.943,-0.028,-0.332,-0.663,-0.002,-0.749,-0.537,-0.587,-0.605,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.704,-0.71,0,0,0.085,0.996 +,1,0,0,0,0,-1,0,0.707,-0.707,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1] +,"uvs":[0.866,0.548,0.864,0.55,0.846,0.55,0.909,0.121,0.913,0.008,0.913,0.121,0.928,0.286,0.921,0.172,0.928,0.172,0.903,0.008,0.909,0.121,0.902,0.121,0.989,0.037,0.986,0.034,0.991,0.036,0.177,0.98,0.18,0.982,0.18,0.985,0.145,0.988,0.137,0.993,0.136,0.988,0.561,0.96,0.556,0.968,0.556,0.959,0.524,0.993 +,0.532,0.988,0.534,0.993,0.158,0.988,0.15,0.993,0.148,0.988,0.992,0.876,0.987,0.885,0.987,0.875,0.051,0.993,0.059,0.988,0.061,0.993,0.991,0.902,0.986,0.91,0.986,0.901,0.511,0.993,0.519,0.988,0.521,0.993,0.885,0.172,0.871,0.288,0.871,0.172,0.931,0.435,0.935,0.548,0.931,0.548,0.811,0.298,0.817,0.296 +,0.817,0.298,0.982,0.961,0.982,0.967,0.981,0.961,0.469,0.762,0.476,0.765,0.468,0.764,0.969,0.968,0.968,0.967,0.969,0.967,0.931,0.55,0.934,0.556,0.931,0.556,0.974,0.331,0.982,0.336,0.974,0.336,0.753,0.397,0.759,0.404,0.753,0.404,0.982,0.336,0.987,0.331,0.987,0.336,0.479,0.762,0.476,0.765,0.476,0.763 +,0.521,0.969,0.518,0.968,0.521,0.968,0.637,0.904,0.643,0.905,0.636,0.905,0.979,0.037,0.986,0.034,0.986,0.035,0.931,0.548,0.935,0.55,0.931,0.55,0.836,0.987,0.828,0.992,0.826,0.987,0.982,0.967,0.981,0.968,0.982,0.967,0.969,0.961,0.969,0.967,0.968,0.961,0.968,0.967,0.764,0.423,0.77,0.43,0.762,0.425 +,0.77,0.31,0.885,0.008,0.871,0.121,0.871,0.008,0.816,0.914,0.801,0.91,0.816,0.91,0.816,0.91,0.801,0.893,0.816,0.893,0.797,0.893,0.775,0.898,0.767,0.893,0.926,0.008,0.93,0.123,0.926,0.128,0.953,0.762,0.967,0.793,0.953,0.793,0.883,0.57,0.869,0.691,0.869,0.57,0.655,0.959,0.649,0.966,0.649,0.959 +,0.994,0.366,0.988,0.374,0.988,0.366,0.996,0.116,0.99,0.124,0.99,0.116,0.867,0.288,0.847,0.286,0.867,0.172,0.893,0.121,0.889,0.008,0.893,0.008,0.916,0.121,0.922,0.008,0.922,0.121,0.893,0.121,0.899,0.008,0.899,0.121,0.169,0.991,0.172,0.989,0.173,0.99,0.292,0.975,0.295,0.97,0.304,0.975,0.993,0.476 +,0.988,0.467,0.993,0.466,0.993,0.05,0.988,0.041,0.993,0.04,0.992,0.065,0.987,0.056,0.992,0.055,0.885,0.81,0.87,0.694,0.885,0.694,0.936,0.31,0.932,0.423,0.932,0.31,0.905,0.169,0.898,0.167,0.904,0.167,0.967,0.277,0.967,0.271,0.968,0.271,0.945,0.128,0.938,0.131,0.938,0.129,0.98,0.278,0.98,0.277 +,0.981,0.277,0.936,0.425,0.933,0.431,0.932,0.425,0.72,0.988,0.728,0.983,0.728,0.988,0.064,0.988,0.071,0.994,0.064,0.994,0.72,0.988,0.715,0.983,0.72,0.983,0.938,0.131,0.935,0.128,0.938,0.129,0.514,0.968,0.511,0.969,0.511,0.968,0.871,0.814,0.877,0.813,0.877,0.814,0.172,0.989,0.179,0.991,0.936,0.423 +,0.932,0.425,0.932,0.423,0.967,0.277,0.967,0.277,0.968,0.278,0.98,0.271,0.981,0.271,0.98,0.277,0.908,0.682,0.911,0.685,0.903,0.69,0.903,0.569,0.132,0.888,0.118,0.774,0.132,0.774,0.942,0.566,0.939,0.551,0.942,0.551,0.96,0.566,0.942,0.551,0.96,0.551,0.655,0.932,0.633,0.927,0.651,0.927,0.931,0.288 +,0.935,0.172,0.935,0.293,0.768,0.696,0.783,0.816,0.768,0.816,0.846,0.435,0.866,0.435,0.909,0.008,0.921,0.286,0.909,0.008,0.986,0.035,0.168,0.985,0.17,0.98,0.143,0.993,0.561,0.967,0.526,0.988,0.156,0.993,0.992,0.884,0.053,0.988,0.991,0.909,0.513,0.988,0.885,0.288,0.935,0.435,0.81,0.296,0.982,0.967 +,0.476,0.763,0.935,0.55,0.982,0.331,0.759,0.396,0.982,0.331,0.481,0.763,0.521,0.969,0.518,0.969,0.518,0.968,0.643,0.904,0.979,0.037,0.978,0.036,0.935,0.548,0.834,0.992,0.764,0.31,0.885,0.121,0.801,0.914,0.801,0.91,0.793,0.898,0.775,0.898,0.93,0.008,0.967,0.762,0.883,0.691,0.655,0.966,0.994,0.374 +,0.996,0.124,0.847,0.172,0.849,0.288,0.889,0.121,0.916,0.008,0.893,0.008,0.168,0.991,0.302,0.97,0.295,0.97,0.292,0.972,0.295,0.97,0.988,0.475,0.988,0.048,0.987,0.064,0.87,0.81,0.936,0.423,0.897,0.169,0.967,0.277,0.946,0.13,0.936,0.431,0.72,0.983,0.072,0.988,0.715,0.988,0.933,0.129,0.514,0.968 +,0.514,0.969,0.87,0.813,0.18,0.99,0.179,0.991,0.936,0.425,0.981,0.277,0.908,0.569,0.118,0.888,0.939,0.566,0.942,0.566,0.625,0.932,0.633,0.927,0.931,0.288,0.931,0.172,0.783,0.696] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 +,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,52,94,57,92,91,95 +,94,96,97,98,99,97,100,98,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142 +,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192 +,193,194,195,196,197,198,145,199,200,201,202,203,204,205,167,169,203,173,204,206,207,205,208,209,210,211,208,210,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,2,230,0,231 +,0,230,3,232,4,6,233,7,9,234,10,12,235,13,17,236,15,237,15,236,18,238,19,21,239,22,24,240,25,27,241,28,30,242,31,33,243,34,36,244,37,39,245,40,42,246,43,45,247,46 +,48,248,49,51,249,52,54,250,55,60,251,61,63,252,64,66,253,67,69,254,70,72,255,73,256,257,258,78,259,79,260,261,82,84,262,85,87,263,88,93,53,52,57,59,92,95,93,94,97,264 +,100,101,265,102,104,266,105,107,267,108,110,268,269,113,270,114,116,271,117,119,272,120,122,273,123,125,274,126,128,275,129,276,133,132,131,277,132,134,278,135,137,279,138,140,280,141,143,281,144,282 +,148,283,146,284,285,149,286,150,152,287,153,155,288,156,158,289,159,161,290,162,164,291,165,167,292,168,170,293,171,176,294,177,179,295,180,182,296,183,185,297,186,188,298,189,299,300,192,194,301,195 +,197,302,303,199,304,200,205,207,167,203,174,173,206,305,207,211,306,208,212,307,213,215,308,216,218,309,219,221,310,311,312,313,225,227,314,228] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":315,"indexStart":0,"indexCount":486}] +,"instances":[]} +,{"name":"Turret","id":"Turret","materialId":"game_scene.ObstaclesMaterial","billboardMode":0,"position":[68.6706,-4894.894,-4.6448],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false,"pickable":true,"tags":"" +,"positions":[-11.8111,-15.1455,-17.3229,0,-13.8051,-18.5071,-12.6023,-13.8051,-18.5071,-23.5394,-13.8051,16.5521,-22.1843,-15.1455,-7.0131,-23.5394,-13.8051,-7.6367,-22.1843,-15.1455,15.9285,-20.337,-15.1455,-5.1994,-22.1843,-15.1455,-7.0131,-6.761,-23.7314,-15.5092,0,-15.1455,-15.5092,-9.9638,-15.1455,-15.5092,0,-15.1455,24.4246,-6.761,-23.7314,24.4246,-9.9638,-15.1455,24.4246,0,-15.1455,26.2383,-9.9638,-15.1455,24.4246 +,-11.8111,-15.1455,26.2383,-9.9638,-15.1455,-15.5092,0,-15.1455,-17.3229,-11.8111,-15.1455,-17.3229,-20.337,-15.1455,-5.1994,-17.1341,-23.7314,14.1148,-17.1341,-23.7314,-5.1994,-12.6023,-10.2565,27.4225,-15.7808,-8.9161,25.4535,-11.8111,-8.9161,26.2383,-16.7878,-10.2565,26.595,-19.146,-8.9161,23.2186,-22.7069,-10.2565,20.712,-19.146,-8.9161,23.2186,-20.336,-10.2565,24.2386,-23.5394,-10.2565,16.5521,-21.3946,-8.9161,19.8739 +,-19.5474,-15.1455,-9.1448,-22.1843,-15.1455,-7.0131,-17.2987,-15.1455,-12.4895,-21.3946,-15.1455,-10.9585,-15.7808,-15.1455,-16.5381,-19.146,-15.1455,-14.3032,-13.9335,-15.1455,-14.7244,-15.7808,-15.1455,-16.5381,-16.7878,-13.8051,-17.6796,-19.146,-15.1455,-14.3032,-15.7808,-15.1455,-16.5381,-22.7069,-13.8051,-11.7966,-19.146,-15.1455,-14.3032,-20.336,-13.8051,-15.3232,-21.3946,-15.1455,-10.9585,-10.7306,-23.7314,-14.7244,-13.9335,-15.1455,-14.7244 +,-14.0959,-23.7314,-12.4895,-17.2987,-15.1455,-12.4895,-16.3445,-23.7314,-9.1448,-14.0959,-23.7314,-12.4895,-19.5474,-15.1455,-9.1448,-10.7306,-23.7314,23.6398,-14.0959,-23.7314,21.4049,-13.9335,-15.1455,23.6398,-16.3445,-23.7314,18.0602,-17.2987,-15.1455,21.4049,-14.0959,-23.7314,21.4049,-19.5474,-15.1455,18.0602,-13.9335,-15.1455,23.6398,-17.2987,-15.1455,21.4049,-15.7808,-15.1455,25.4535,-21.3946,-15.1455,19.8739,-19.146,-15.1455,23.2186 +,-19.5474,-15.1455,18.0602,0,-13.8051,27.4225,-11.8111,-15.1455,26.2383,-12.6023,-13.8051,27.4225,0,-8.9161,-17.3229,0,-8.9161,26.2383,-22.1843,-8.9161,-7.0131,0,-10.2565,27.4225,0,-8.9161,26.2383,0,-13.8051,27.4225,-12.6023,-10.2565,27.4225,0,-10.2565,27.4225,-21.3946,-8.9161,-10.9585,-23.5394,-10.2565,-7.6367,-22.7069,-10.2565,-11.7966,-23.5394,-10.2565,-7.6367,-22.7069,-13.8051,-11.7966 +,-22.7069,-10.2565,-11.7966,-19.146,-8.9161,-14.3032,-20.336,-10.2565,-15.3232,-20.336,-13.8051,-15.3232,-20.336,-10.2565,-15.3232,-19.146,-8.9161,-14.3032,-16.7878,-10.2565,-17.6796,-15.7807,-8.9161,-16.5381,-20.336,-10.2565,-15.3232,-16.7878,-13.8051,-17.6796,-16.7878,-10.2565,-17.6796,-12.6023,-10.2565,-18.5071,-11.8111,-8.9161,-17.3229,-12.6023,-10.2565,-18.5071,-12.6023,-13.8051,-18.5071,-21.3946,-15.1455,19.8739,-22.7069,-13.8051,20.712 +,-23.5394,-13.8051,16.5521,-22.7069,-10.2565,20.712,-22.7069,-13.8051,20.712,-19.146,-15.1455,23.2186,-20.336,-13.8051,24.2386,-20.336,-10.2565,24.2386,-20.336,-13.8051,24.2386,-19.146,-15.1455,23.2186,-16.7878,-13.8051,26.595,-15.7808,-15.1455,25.4535,-16.7878,-13.8051,26.595,-20.336,-10.2565,24.2386,-16.7878,-10.2565,26.595,-15.7808,-15.1455,25.4535,-12.6023,-13.8051,27.4225,-22.1843,-8.9161,-7.0131,-23.5394,-10.2565,16.5521 +,-23.5394,-13.8051,-7.6367,0,-10.2565,-18.5071,0,-8.9161,-17.3229,0,-10.2565,-18.5071,-5.5552,22.9167,-2.9821,-8.6487,20.4712,-8.6266,-4.3244,20.4712,-8.6266,-9.0303,20.3373,18.9181,-5.8764,22.7675,13.4429,-4.5152,20.3373,19.0005,-11.7528,22.9111,5.4338,-5.8764,23.4555,5.4338,-11.1103,22.3722,-2.9821,-6.3749,3.3093,-3.0349,-9.925,4.4422,-8.5281,-12.7498,4.3143,-3.0349,-6.7435,4.1263,13.4697 +,-10.3628,7.5915,18.9181,-5.1814,7.5925,18.9181,-13.487,4.3143,5.2205,-13.487,4.9501,13.6238,-6.7435,3.3651,5.2205,-5.0541,10.1591,-8.9817,-9.925,4.4422,-8.5281,-4.9625,4.4422,-8.5281,-13.7361,10.8374,14.3682,-10.3628,7.5915,18.9181,-13.487,4.9501,13.6238,-13.7361,11.017,5.2916,-13.487,4.3143,5.2205,-12.9853,10.8374,-3.0173,-12.7498,4.3143,-3.0349,-10.1083,10.1591,-8.9817,-9.925,4.4422,-8.5281 +,0,-1.3955,11.0679,-1.8301,0.832,9.0561,0,0.832,9.4201,-2.4607,-1.3955,10.5785,-3.3816,0.832,8.0194,-5.9407,-1.3955,7.0985,-3.3816,0.832,8.0194,-4.5468,-1.3955,9.1846,-6.4302,-1.3955,4.6378,-4.4183,0.832,6.4679,-5.9407,-1.3955,2.1771,-4.7823,0.832,4.6378,-3.3816,0.832,1.2562,-4.4183,0.832,2.8077,-2.4607,-1.3955,-1.3029,-3.3816,0.832,1.2562,-4.5468,-1.3955,0.091 +,-4.5468,-1.3955,0.091,-3.0873,-1.7704,-2.8156,-2.4607,-1.3955,-1.3029,0,-1.3955,-1.7924,-1.8301,0.832,0.2195,-8.0675,-1.7704,4.6378,-5.9407,-1.3955,2.1771,-6.4302,-1.3955,4.6378,-5.7046,-1.7704,10.3424,-5.9407,-1.3955,7.0985,-4.5468,-1.3955,9.1846,-2.2329,1.4577,-0.753,-3.3816,0.832,1.2562,-1.8301,0.832,0.2195,0,-1.7704,12.7053,-2.4607,-1.3955,10.5785,0,-1.3955,11.0679 +,-5.8349,1.4577,4.6378,-4.4183,0.832,6.4679,-4.7823,0.832,4.6378,-1.8301,0.832,9.0561,0,1.4577,10.4727,0,0.832,9.4201,-5.3908,1.4577,2.4049,-4.4183,0.832,2.8077,-7.4534,-1.7704,7.7251,-11.9779,-2.5976,4.6378,-11.0661,-2.5976,9.2215,-5.7046,-1.7704,-1.0668,-4.5838,-2.5976,-6.4283,-11.0661,-2.5976,0.054,-7.4534,-1.7704,1.5505,-8.4697,-2.5976,-3.8319,0,-2.5976,-7.3401 +,0,-1.7704,-3.4297,-4.5838,-2.5976,15.7039,-8.4697,-2.5976,13.1074,-3.0873,-1.7704,12.0912,0,-1.3955,-1.7924,-4.1259,3.8787,0.5119,-5.3908,1.4577,2.4049,-4.1259,1.4577,0.5119,0,3.8787,-1.1971,-2.2329,1.4577,-0.753,0,1.4577,-1.1971,-5.3908,3.8787,6.8707,-4.1259,1.4577,8.7637,-5.3908,1.4577,6.8707,-5.3908,3.8787,2.4049,-5.8349,1.4577,4.6378,-2.2329,3.8787,-0.753 +,-4.1259,1.4577,0.5119,-4.1259,3.8787,8.7637,-2.2329,1.4577,10.0285,-4.1259,1.4577,8.7637,-2.2329,3.8787,10.0285,0,1.4577,10.4727,-5.8349,3.8787,4.6378,-3.3816,0.832,8.0194,-2.2329,1.4577,10.0285,0,1.4577,-1.1971,0,0.832,-0.1446,-5.3908,1.4577,6.8707,-1.6959,16.9332,-11.1493,-5.2158,18.0547,-9.8535,-3.1337,15.9725,-11.1493,-7.3763,12.8388,-9.8535,-4.0943,11.1429,-11.1493 +,-4.4317,12.8388,-11.1493,-1.6959,8.7445,-11.1493,0,5.4625,-9.8535,0,8.4072,-11.1493,-6.8148,15.6616,-9.8535,-4.0943,14.5348,-11.1493,-5.2158,18.0547,-7.8651,-6.8148,15.6616,-9.8535,-5.2158,18.0547,-9.8535,0,20.2151,-7.8651,-2.8228,19.6537,-9.8535,0,20.2151,-9.8535,-6.8148,10.016,-7.8651,-5.2158,7.623,-9.8535,-6.8148,10.016,-9.8535,-7.3763,12.8388,-7.8651,-7.3763,12.8388,-9.8535 +,-2.8228,19.6537,-7.8651,-5.2158,18.0547,-9.8535,-5.2158,7.623,-7.8651,-2.8228,6.024,-9.8535,-5.2158,7.623,-9.8535,-2.8228,6.024,-7.8651,0,5.4625,-9.8535,-5.2158,7.623,-9.8535,-3.1337,9.7052,-11.1493,0,20.2151,-9.8535,0,17.2705,-11.1493,-6.8148,10.016,-9.8535,-2.5969,10.2419,-16.0846,-4.0943,11.1429,-11.1493,-3.1337,9.7052,-11.1493,0,8.4072,-11.1493,-1.4054,9.4458,-16.0846 +,-1.6959,8.7445,-11.1493,-1.4054,16.2318,-16.0846,0,17.2705,-11.1493,-1.6959,16.9332,-11.1493,-3.393,14.2443,-16.0846,-3.1337,15.9725,-11.1493,-4.0943,14.5348,-11.1493,-3.393,11.4334,-16.0846,-4.4317,12.8388,-11.1493,-2.5969,10.2419,-16.0846,-3.1337,9.7052,-11.1493,-2.5969,15.4357,-16.0846,-3.1337,15.9725,-11.1493,-12.3037,-6.5057,-0.4586,-11.9779,-2.5976,4.6378,-13.3174,-6.5057,4.6378,-5.0964,-6.5057,-7.6659 +,-8.4697,-2.5976,-3.8319,-9.4168,-6.5057,-4.779,-12.3037,-6.5057,9.7341,-4.5838,-2.5976,15.7039,0,-6.5057,17.9552,-5.0964,-6.5057,16.9414,-11.0661,-2.5976,9.2215,-9.4168,-6.5057,14.0546,-8.4697,-2.5976,13.1074,-9.4168,-6.5057,14.0546,-8.4697,-2.5976,-3.8319,-9.4168,-6.5057,-4.779,0,11.6265,19.5195,-5.1814,7.5925,18.9181,-5.2771,11.6265,19.5195,0,-2.5976,-7.3401,0,-6.5057,-8.6796 +,0,9.1663,-16.0846,-1.0265,10.3606,-16.0846,-1.4054,9.4458,-16.0846,-1.8967,10.9421,-16.0846,-2.5969,10.2419,-16.0846,-3.393,11.4334,-16.0846,-2.4782,11.8123,-16.0846,-3.6726,12.8388,-16.0846,-2.6824,12.8388,-16.0846,-3.393,14.2443,-16.0846,-1.8967,14.7356,-16.0846,-2.5969,15.4357,-16.0846,-1.0265,15.317,-16.0846,-1.4054,16.2318,-16.0846,0,15.5212,-16.0846,0,16.5114,-16.0846,-2.6824,12.8388,-27.2286 +,-2.4782,13.8653,-16.0846,-2.6824,12.8388,-16.0846,-2.4782,13.8653,-27.2286,-1.8967,14.7356,-16.0846,0,10.1565,-27.2286,-1.0265,10.3606,-16.0846,0,10.1565,-16.0846,-1.8967,14.7356,-27.2286,-1.0265,15.317,-16.0846,-1.8967,14.7356,-16.0846,-1.0265,15.317,-27.2286,0,15.5212,-16.0846,-1.0265,10.3606,-27.2286,-1.8967,10.9421,-16.0846,-1.8967,10.9421,-27.2286,-2.4782,11.8123,-16.0846,-1.8967,10.9421,-16.0846 +,-2.4782,11.8123,-27.2286,-1.158,11.6808,-27.4225,-2.4782,11.8123,-27.2286,-1.8967,10.9421,-27.2286,-1.513,12.2121,-27.4225,-2.6824,12.8388,-27.2286,-1.6377,12.8388,-27.4225,-2.4782,13.8653,-27.2286,-1.513,13.4655,-27.4225,-1.8967,14.7356,-27.2286,-0.6267,14.3519,-27.4225,-1.0265,15.317,-27.2286,0,15.5212,-27.2286,0,10.1565,-27.2286,-0.6267,11.3258,-27.4225,-1.0265,10.3606,-27.2286,-0.6267,14.3519,-23.2772 +,0,14.4765,-27.4225,-0.6267,14.3519,-27.4225,0,11.2012,-23.2772,-0.6267,11.3258,-27.4225,0,11.2012,-27.4225,-0.6267,11.3258,-23.2772,-1.158,11.6808,-27.4225,-1.158,11.6808,-23.2772,-1.513,12.2121,-27.4225,-1.158,11.6808,-27.4225,-1.513,12.2121,-23.2772,-1.6377,12.8388,-27.4225,-1.6377,12.8388,-23.2772,-1.513,13.4655,-27.4225,-1.513,13.4655,-23.2772,-1.158,13.9968,-27.4225,-1.158,13.9968,-23.2772 +,-1.158,13.9968,-27.4225,0,14.4765,-23.2772,-1.6377,12.8388,-23.2772,0,11.2012,-23.2772,-13.7386,-6.5057,10.3285,-13.3174,-6.5057,4.6378,-12.3037,-6.5057,9.7341,-9.4168,-6.5057,14.0546,-5.6907,-6.5057,18.3763,-5.0964,-6.5057,16.9414,0,-6.5057,19.5083,0,-6.5057,17.9552,-5.0964,-6.5057,-7.6659,0,-6.5057,-10.2327,0,-6.5057,-8.6796,-5.6907,-8.9161,18.3763,0,-6.5057,19.5083 +,0,-8.9161,19.5083,-10.5151,-8.9161,15.1528,-5.6907,-6.5057,18.3763,-13.7386,-8.9161,10.3285,-10.5151,-6.5057,15.1528,-10.5151,-8.9161,15.1528,-14.8705,-8.9161,4.6378,-13.7386,-6.5057,10.3285,-13.7386,-8.9161,-1.0529,-14.8705,-6.5057,4.6378,-10.5151,-8.9161,-5.8773,-13.7386,-6.5057,-1.0529,-5.6907,-8.9161,-9.1008,-10.5151,-6.5057,-5.8773,-10.5151,-8.9161,-5.8773,0,-8.9161,-10.2327,-5.6907,-6.5057,-9.1008 +,-14.8705,-6.5057,4.6378,-12.3037,-6.5057,-0.4586,-13.7386,-6.5057,-1.0529,-9.4168,-6.5057,-4.779,-5.6907,-6.5057,-9.1008,-4.5152,20.3373,19.0005,0,16.7156,19.5195,-5.0408,16.7156,19.5195,-8.6487,20.4712,-8.6266,-12.4037,16.6048,-2.9997,-9.6556,15.2482,-8.9817,-11.1103,22.3722,-2.9821,-13.121,16.964,5.3627,-11.7528,22.2231,13.4429,-11.7528,22.9111,5.4338,-13.121,16.6048,14.3779,-9.0303,20.3373,18.9181 +,-10.5542,11.6265,19.5195,-8.6487,20.4712,-8.6266,-4.8278,15.2482,-8.9817,-4.3244,20.4712,-8.6266,-9.6556,15.2482,-8.9817,-15.563,17.5015,6.1258,-14.2494,17.7906,8.7547,-15.6129,16.5943,7.4855,-14.4816,13.5641,10.508,-15.8635,12.0338,8.394,-15.7755,13.6352,8.7131,-15.9879,9.7689,6.1258,-14.8101,7.587,4.5219,-16.0054,9.4504,4.5219,-14.3559,15.8514,10.0523,-15.6875,15.2367,8.394,-14.2494,17.7906,8.7547 +,-11.4216,15.6902,10.0523,-14.3559,15.8514,10.0523,-11.2188,19.3799,4.5219,-14.1782,19.0862,6.8127,-14.1532,19.5412,4.5219,-14.6073,11.2768,10.0523,-11.7795,9.1764,8.7547,-14.7139,9.3377,8.7547,-11.5473,13.4029,10.508,-14.4816,13.5641,10.508,-11.2438,18.925,6.8127,-14.2494,17.7906,8.7547,-11.7795,9.1764,8.7547,-14.7851,8.042,6.8127,-14.7139,9.3377,8.7547,-11.8507,7.8808,6.8127,-14.8101,7.587,4.5219 +,-11.673,11.1155,10.0523,-15.9381,10.6761,7.4855,-14.7851,8.042,6.8127,-14.1532,19.5412,4.5219,-15.5455,17.8201,4.5219,-14.6073,11.2768,10.0523,-15.563,17.5015,2.918,-14.2494,17.7906,0.2891,-14.1782,19.0862,2.2311,-15.8635,12.0338,0.6498,-14.4816,13.5641,-1.4642,-15.7755,13.6352,0.3307,-15.9879,9.7689,2.918,-14.7851,8.042,2.2311,-15.6129,16.5943,1.5583,-14.3559,15.8514,-1.0085,-14.2494,17.7906,0.2891 +,-11.4216,15.6902,-1.0085,-11.315,17.6293,0.2891,-14.1782,19.0862,2.2311,-14.6073,11.2768,-1.0085,-11.7795,9.1764,0.2891,-11.673,11.1155,-1.0085,-14.4816,13.5641,-1.4642,-14.3559,15.8514,-1.0085,-14.2494,17.7906,0.2891,-11.2438,18.925,2.2311,-14.7139,9.3377,0.2891,-11.8507,7.8808,2.2311,-11.7795,9.1764,0.2891,-14.7851,8.042,2.2311,-11.5473,13.4029,-1.4642,-15.9381,10.6761,1.5583,-14.7139,9.3377,0.2891 +,-15.6875,15.2367,0.6498,-14.6073,11.2768,-1.0085,-15.563,17.5015,6.1258,-15.6875,15.2367,8.394,-15.9879,9.7689,6.1258,0,10.1591,-8.9817,0,15.2482,-8.9817,0,20.4712,-8.6266,-10.0816,16.7156,19.5195,-10.5542,11.6265,19.5195,-9.0303,20.3373,18.9181,-10.3628,7.5915,18.9181,0,4.4422,-8.5281,0,3.3651,5.2205,0,4.2784,13.4697,0,7.5934,18.9181,0,3.3093,-3.0349 +,-4.9625,4.4422,-8.5281,0,23.7314,5.4338,0,23.1926,-2.9821,0,23.0434,13.4429,0,20.3373,19.0829,0,20.4712,-8.6266,0,-2.5976,16.6157,11.8111,-15.1455,-17.3229,12.6023,-13.8051,-18.5071,22.1843,-15.1455,-7.0131,23.5394,-13.8051,16.5521,23.5394,-13.8051,-7.6367,22.1843,-15.1455,-7.0131,20.337,-15.1455,14.1148,22.1843,-15.1455,15.9285,6.761,-23.7314,-15.5092,9.9638,-15.1455,-15.5092 +,6.761,-23.7314,24.4246,0,-23.7314,24.4246,9.9638,-15.1455,24.4246,0,-15.1455,24.4246,9.9638,-15.1455,-15.5092,11.8111,-15.1455,-17.3229,20.337,-15.1455,-5.1994,17.1341,-23.7314,14.1148,20.337,-15.1455,14.1148,12.6023,-10.2565,27.4225,15.7808,-8.9161,25.4535,16.7878,-10.2565,26.595,19.146,-8.9161,23.2186,20.336,-10.2565,24.2386,19.146,-8.9161,23.2186,22.7069,-10.2565,20.712,20.336,-10.2565,24.2386 +,21.3946,-8.9161,19.8739,23.5394,-10.2565,16.5521,22.1843,-15.1455,-7.0131,19.5474,-15.1455,-9.1448,20.337,-15.1455,-5.1994,21.3946,-15.1455,-10.9585,17.2987,-15.1455,-12.4895,15.7808,-15.1455,-16.5381,13.9335,-15.1455,-14.7244,15.7808,-15.1455,-16.5381,16.7878,-13.8051,-17.6796,19.146,-15.1455,-14.3032,20.336,-13.8051,-15.3232,19.146,-15.1455,-14.3032,22.7069,-13.8051,-11.7966,20.336,-13.8051,-15.3232,21.3946,-15.1455,-10.9585 +,10.7306,-23.7314,-14.7244,13.9335,-15.1455,-14.7244,14.0959,-23.7314,-12.4895,17.2987,-15.1455,-12.4895,17.2987,-15.1455,-12.4895,16.3445,-23.7314,-9.1448,19.5474,-15.1455,-9.1448,17.1341,-23.7314,-5.1994,9.9638,-15.1455,24.4246,10.7306,-23.7314,23.6398,13.9335,-15.1455,23.6398,14.0959,-23.7314,21.4049,17.2987,-15.1455,21.4049,16.3445,-23.7314,18.0602,14.0959,-23.7314,21.4049,19.5474,-15.1455,18.0602,11.8111,-15.1455,26.2383 +,13.9335,-15.1455,23.6398,15.7808,-15.1455,25.4535,17.2987,-15.1455,21.4049,21.3946,-15.1455,19.8739,19.5474,-15.1455,18.0602,11.8111,-15.1455,26.2383,0,-15.1455,26.2383,11.8111,-8.9161,-17.3229,22.1843,-8.9161,-7.0131,11.8111,-8.9161,26.2383,12.6023,-10.2565,27.4225,21.3946,-8.9161,-10.9585,23.5394,-10.2565,-7.6367,22.1843,-8.9161,-7.0131,22.7069,-13.8051,-11.7966,23.5394,-10.2565,-7.6367,22.7069,-10.2565,-11.7966 +,19.146,-8.9161,-14.3032,22.7069,-10.2565,-11.7966,20.336,-13.8051,-15.3232,20.336,-10.2565,-15.3232,16.7878,-10.2565,-17.6796,19.146,-8.9161,-14.3032,15.7807,-8.9161,-16.5381,16.7878,-13.8051,-17.6796,20.336,-10.2565,-15.3232,16.7878,-10.2565,-17.6796,12.6023,-10.2565,-18.5071,11.8111,-8.9161,-17.3229,12.6023,-10.2565,-18.5071,21.3946,-15.1455,19.8739,22.1843,-15.1455,15.9285,22.7069,-10.2565,20.712,23.5394,-13.8051,16.5521 +,22.7069,-13.8051,20.712,19.146,-15.1455,23.2186,22.7069,-13.8051,20.712,21.3946,-15.1455,19.8739,20.336,-10.2565,24.2386,20.336,-13.8051,24.2386,16.7878,-13.8051,26.595,19.146,-15.1455,23.2186,15.7808,-15.1455,25.4535,16.7878,-13.8051,26.595,20.336,-10.2565,24.2386,20.336,-13.8051,24.2386,12.6023,-13.8051,27.4225,15.7808,-15.1455,25.4535,12.6023,-13.8051,27.4225,16.7878,-10.2565,26.595,22.1843,-8.9161,15.9285 +,23.5394,-13.8051,-7.6367,23.5394,-10.2565,16.5521,12.6023,-13.8051,-18.5071,5.5552,22.9167,-2.9821,8.6487,20.4712,-8.6266,11.1103,22.3722,-2.9821,5.8764,22.7675,13.4429,9.0303,20.3373,18.9181,4.5152,20.3373,19.0005,11.7528,22.9111,5.4338,11.7528,22.2231,13.4429,5.8764,23.4555,5.4338,6.3749,3.3093,-3.0349,9.925,4.4422,-8.5281,4.9625,4.4422,-8.5281,10.3628,7.5915,18.9181,6.7435,4.1263,13.4697 +,5.1814,7.5925,18.9181,13.487,4.3143,5.2205,6.7435,3.3651,5.2205,12.7498,4.3143,-3.0349,5.0541,10.1591,-8.9817,9.925,4.4422,-8.5281,10.1083,10.1591,-8.9817,13.7361,10.8374,14.3682,10.3628,7.5915,18.9181,10.5542,11.6265,19.5195,13.7361,11.017,5.2916,13.487,4.9501,13.6238,12.9853,10.8374,-3.0173,13.487,4.3143,5.2205,10.1083,10.1591,-8.9817,12.7498,4.3143,-3.0349,1.8301,0.832,9.0561 +,2.4607,-1.3955,10.5785,3.3816,0.832,8.0194,4.5468,-1.3955,9.1846,3.3816,0.832,8.0194,5.9407,-1.3955,7.0985,4.5468,-1.3955,9.1846,4.4183,0.832,6.4679,6.4302,-1.3955,4.6378,4.7823,0.832,4.6378,5.9407,-1.3955,2.1771,3.3816,0.832,1.2562,4.5468,-1.3955,0.091,3.3816,0.832,1.2562,2.4607,-1.3955,-1.3029,4.5468,-1.3955,0.091,4.5468,-1.3955,0.091,3.0873,-1.7704,-2.8156 +,5.7046,-1.7704,-1.0668,1.8301,0.832,0.2195,5.9407,-1.3955,2.1771,8.0675,-1.7704,4.6378,6.4302,-1.3955,4.6378,5.9407,-1.3955,7.0985,5.7046,-1.7704,10.3424,4.5468,-1.3955,9.1846,3.3816,0.832,1.2562,2.2329,1.4577,-0.753,1.8301,0.832,0.2195,2.4607,-1.3955,10.5785,4.4183,0.832,6.4679,5.8349,1.4577,4.6378,4.7823,0.832,4.6378,1.8301,0.832,9.0561,2.2329,1.4577,10.0285 +,5.3908,1.4577,2.4049,4.1259,1.4577,0.5119,11.9779,-2.5976,4.6378,7.4534,-1.7704,7.7251,11.0661,-2.5976,9.2215,4.5838,-2.5976,-6.4283,11.0661,-2.5976,0.054,7.4534,-1.7704,1.5505,4.5838,-2.5976,15.7039,3.0873,-1.7704,12.0912,2.4607,-1.3955,-1.3029,5.3908,1.4577,2.4049,4.1259,3.8787,0.5119,4.1259,1.4577,0.5119,2.2329,1.4577,-0.753,4.1259,1.4577,8.7637,5.3908,3.8787,6.8707 +,5.3908,1.4577,6.8707,5.8349,1.4577,4.6378,5.3908,3.8787,2.4049,4.1259,1.4577,0.5119,2.2329,3.8787,-0.753,2.2329,1.4577,10.0285,4.1259,3.8787,8.7637,4.1259,1.4577,8.7637,2.2329,3.8787,10.0285,5.8349,3.8787,4.6378,3.3816,0.832,8.0194,4.1259,1.4577,8.7637,4.4183,0.832,2.8077,5.3908,1.4577,6.8707,1.6959,16.9332,-11.1493,5.2158,18.0547,-9.8535,2.8228,19.6537,-9.8535 +,4.0943,11.1429,-11.1493,7.3763,12.8388,-9.8535,4.4317,12.8388,-11.1493,1.6959,8.7445,-11.1493,2.8228,6.024,-9.8535,3.1337,15.9725,-11.1493,6.8148,15.6616,-9.8535,6.8148,15.6616,-9.8535,5.2158,18.0547,-7.8651,5.2158,18.0547,-9.8535,2.8228,19.6537,-9.8535,5.2158,7.623,-9.8535,6.8148,10.016,-7.8651,6.8148,10.016,-9.8535,7.3763,12.8388,-7.8651,6.8148,15.6616,-7.8651,5.2158,18.0547,-9.8535 +,2.8228,19.6537,-7.8651,2.8228,6.024,-9.8535,5.2158,7.623,-7.8651,5.2158,7.623,-9.8535,2.8228,6.024,-7.8651,7.3763,12.8388,-9.8535,5.2158,7.623,-9.8535,3.1337,9.7052,-11.1493,4.0943,14.5348,-11.1493,6.8148,10.016,-9.8535,4.0943,11.1429,-11.1493,2.5969,10.2419,-16.0846,3.1337,9.7052,-11.1493,1.4054,9.4458,-16.0846,0,9.1663,-16.0846,1.6959,16.9332,-11.1493,0,16.5114,-16.0846 +,1.4054,16.2318,-16.0846,4.0943,14.5348,-11.1493,2.5969,15.4357,-16.0846,3.393,14.2443,-16.0846,4.4317,12.8388,-11.1493,3.393,11.4334,-16.0846,1.6959,8.7445,-11.1493,2.5969,10.2419,-16.0846,2.5969,15.4357,-16.0846,3.1337,15.9725,-11.1493,3.6726,12.8388,-16.0846,12.3037,-6.5057,-0.4586,11.9779,-2.5976,4.6378,11.0661,-2.5976,0.054,5.0964,-6.5057,-7.6659,8.4697,-2.5976,-3.8319,4.5838,-2.5976,-6.4283 +,13.3174,-6.5057,4.6378,11.0661,-2.5976,9.2215,4.5838,-2.5976,15.7039,5.0964,-6.5057,16.9414,9.4168,-6.5057,14.0546,12.3037,-6.5057,9.7341,8.4697,-2.5976,13.1074,9.4168,-6.5057,14.0546,8.4697,-2.5976,-3.8319,9.4168,-6.5057,-4.779,5.1814,7.5925,18.9181,5.2771,11.6265,19.5195,1.0265,10.3606,-16.0846,0,10.1565,-16.0846,1.4054,9.4458,-16.0846,1.8967,10.9421,-16.0846,3.393,11.4334,-16.0846 +,2.5969,10.2419,-16.0846,3.6726,12.8388,-16.0846,2.4782,11.8123,-16.0846,3.393,14.2443,-16.0846,2.6824,12.8388,-16.0846,2.5969,15.4357,-16.0846,2.4782,13.8653,-16.0846,1.4054,16.2318,-16.0846,1.8967,14.7356,-16.0846,1.0265,15.317,-16.0846,2.4782,13.8653,-16.0846,2.6824,12.8388,-27.2286,2.6824,12.8388,-16.0846,1.8967,14.7356,-16.0846,2.4782,13.8653,-27.2286,1.0265,10.3606,-16.0846,1.0265,15.317,-16.0846 +,1.8967,14.7356,-27.2286,1.8967,14.7356,-16.0846,1.0265,15.317,-27.2286,1.8967,10.9421,-16.0846,1.0265,10.3606,-27.2286,2.4782,11.8123,-16.0846,1.8967,10.9421,-27.2286,1.8967,10.9421,-16.0846,2.4782,11.8123,-27.2286,2.4782,11.8123,-27.2286,1.158,11.6808,-27.4225,1.8967,10.9421,-27.2286,2.6824,12.8388,-27.2286,1.513,12.2121,-27.4225,2.4782,13.8653,-27.2286,1.6377,12.8388,-27.4225,1.8967,14.7356,-27.2286 +,1.513,13.4655,-27.4225,0.6267,14.3519,-27.4225,1.158,13.9968,-27.4225,1.0265,15.317,-27.2286,0.6267,11.3258,-27.4225,0,11.2012,-27.4225,1.0265,10.3606,-27.2286,0.6267,14.3519,-23.2772,0.6267,14.3519,-27.4225,0.6267,11.3258,-27.4225,1.158,11.6808,-27.4225,0.6267,11.3258,-23.2772,1.513,12.2121,-27.4225,1.158,11.6808,-23.2772,1.158,11.6808,-27.4225,1.6377,12.8388,-27.4225,1.513,12.2121,-23.2772 +,1.513,13.4655,-27.4225,1.6377,12.8388,-23.2772,1.158,13.9968,-27.4225,1.513,13.4655,-23.2772,1.158,13.9968,-23.2772,1.158,13.9968,-27.4225,0.6267,11.3258,-23.2772,1.513,13.4655,-23.2772,13.3174,-6.5057,4.6378,13.7386,-6.5057,10.3285,12.3037,-6.5057,9.7341,9.4168,-6.5057,14.0546,10.5151,-6.5057,15.1528,5.6907,-6.5057,18.3763,5.0964,-6.5057,16.9414,5.0964,-6.5057,-7.6659,5.6907,-6.5057,-9.1008 +,5.6907,-8.9161,18.3763,5.6907,-6.5057,18.3763,10.5151,-8.9161,15.1528,10.5151,-6.5057,15.1528,13.7386,-8.9161,10.3285,10.5151,-8.9161,15.1528,13.7386,-6.5057,10.3285,14.8705,-8.9161,4.6378,14.8705,-6.5057,4.6378,13.7386,-8.9161,-1.0529,13.7386,-6.5057,-1.0529,10.5151,-8.9161,-5.8773,10.5151,-6.5057,-5.8773,5.6907,-8.9161,-9.1008,10.5151,-8.9161,-5.8773,5.6907,-6.5057,-9.1008,12.3037,-6.5057,-0.4586 +,14.8705,-6.5057,4.6378,9.4168,-6.5057,-4.779,13.7386,-6.5057,-1.0529,10.5151,-6.5057,-5.8773,4.5152,20.3373,19.0005,0,20.3373,19.0829,5.0408,16.7156,19.5195,8.6487,20.4712,-8.6266,12.4037,16.6048,-2.9997,11.1103,22.3722,-2.9821,9.6556,15.2482,-8.9817,13.121,16.964,5.3627,11.7528,22.9111,5.4338,11.7528,22.2231,13.4429,13.121,16.6048,14.3779,9.0303,20.3373,18.9181,10.0816,16.7156,19.5195 +,4.8278,15.2482,-8.9817,8.6487,20.4712,-8.6266,4.3244,20.4712,-8.6266,9.6556,15.2482,-8.9817,15.563,17.5015,6.1258,14.2494,17.7906,8.7547,14.1782,19.0862,6.8127,15.8635,12.0338,8.394,14.4816,13.5641,10.508,15.7755,13.6352,8.7131,15.9879,9.7689,6.1258,14.8101,7.587,4.5219,14.7851,8.042,6.8127,15.6129,16.5943,7.4855,14.3559,15.8514,10.0523,14.2494,17.7906,8.7547,11.4216,15.6902,10.0523 +,11.315,17.6293,8.7547,14.1532,19.5412,4.5219,11.2438,18.925,6.8127,11.2188,19.3799,4.5219,14.6073,11.2768,10.0523,11.7795,9.1764,8.7547,11.673,11.1155,10.0523,14.3559,15.8514,10.0523,11.5473,13.4029,10.508,14.2494,17.7906,8.7547,14.1782,19.0862,6.8127,14.7851,8.042,6.8127,11.7795,9.1764,8.7547,14.7139,9.3377,8.7547,14.8101,7.587,4.5219,11.8507,7.8808,6.8127,14.4816,13.5641,10.508 +,15.9381,10.6761,7.4855,14.7139,9.3377,8.7547,14.1532,19.5412,4.5219,15.5455,17.8201,4.5219,15.6875,15.2367,8.394,14.6073,11.2768,10.0523,15.563,17.5015,2.918,14.2494,17.7906,0.2891,15.6129,16.5943,1.5583,14.4816,13.5641,-1.4642,15.8635,12.0338,0.6498,15.7755,13.6352,0.3307,15.9879,9.7689,2.918,16.0054,9.4504,4.5219,14.3559,15.8514,-1.0085,15.6875,15.2367,0.6498,14.2494,17.7906,0.2891 +,11.4216,15.6902,-1.0085,14.3559,15.8514,-1.0085,14.1782,19.0862,2.2311,14.6073,11.2768,-1.0085,11.7795,9.1764,0.2891,14.7139,9.3377,0.2891,11.5473,13.4029,-1.4642,14.4816,13.5641,-1.4642,11.2438,18.925,2.2311,14.2494,17.7906,0.2891,14.7139,9.3377,0.2891,11.8507,7.8808,2.2311,14.7851,8.042,2.2311,11.673,11.1155,-1.0085,15.9381,10.6761,1.5583,14.7851,8.042,2.2311,14.6073,11.2768,-1.0085 +,15.563,17.5015,2.918,15.6875,15.2367,0.6498,15.9879,9.7689,2.918,10.0816,16.7156,19.5195,9.0303,20.3373,18.9181,10.3628,7.5915,18.9181,10.5542,11.6265,19.5195,4.9625,4.4422,-8.5281,0,4.4422,-8.5281,4.3244,20.4712,-8.6266,0,-15.1455,-17.3229,-22.1843,-15.1455,15.9285,-20.337,-15.1455,14.1148,0,-23.7314,-15.5092,0,-15.1455,-15.5092,-20.337,-15.1455,14.1148,-20.336,-10.2565,24.2386 +,-19.146,-8.9161,23.2186,-22.1843,-8.9161,15.9285,-22.1843,-15.1455,-7.0131,-15.7808,-15.1455,-16.5381,-20.336,-13.8051,-15.3232,-19.146,-15.1455,-14.3032,-21.3946,-15.1455,-10.9585,-19.146,-15.1455,-14.3032,-21.3946,-15.1455,-10.9585,-17.2987,-15.1455,-12.4895,-17.2987,-15.1455,21.4049,-21.3946,-8.9161,19.8739,-22.1843,-8.9161,15.9285,-19.146,-8.9161,23.2186,-21.3946,-8.9161,-10.9585,-19.146,-8.9161,-14.3032,-15.7807,-8.9161,-16.5381 +,-11.8111,-8.9161,-17.3229,-11.8111,-8.9161,26.2383,-15.7808,-8.9161,25.4535,-19.146,-8.9161,-14.3032,-20.336,-10.2565,-15.3232,-20.336,-10.2565,-15.3232,-20.336,-13.8051,-15.3232,-21.3946,-15.1455,19.8739,-22.1843,-15.1455,15.9285,-19.146,-15.1455,23.2186,-21.3946,-15.1455,19.8739,-19.146,-15.1455,23.2186,-20.336,-13.8051,24.2386,-20.336,-13.8051,24.2386,-20.336,-10.2565,24.2386,-15.7808,-15.1455,25.4535,0,-13.8051,-18.5071 +,-11.7528,22.2231,13.4429,-10.1083,10.1591,-8.9817,-4.5468,-1.3955,9.1846,-3.3816,0.832,8.0194,-4.5468,-1.3955,0.091,-3.3816,0.832,1.2562,0,0.832,-0.1446,-4.1259,1.4577,0.5119,-4.1259,3.8787,8.7637,-4.1259,3.8787,0.5119,-4.1259,1.4577,0.5119,0,3.8787,10.4727,-4.1259,1.4577,8.7637,-2.8228,19.6537,-9.8535,-2.8228,6.024,-9.8535,-6.8148,15.6616,-7.8651,-5.2158,7.623,-7.8651 +,-5.2158,18.0547,-7.8651,-5.2158,18.0547,-9.8535,0,5.4625,-7.8651,-2.5969,15.4357,-16.0846,-3.6726,12.8388,-16.0846,-2.5969,10.2419,-16.0846,-11.0661,-2.5976,0.054,-4.5838,-2.5976,-6.4283,0,-2.5976,16.6157,-8.4697,-2.5976,13.1074,-8.4697,-2.5976,-3.8319,0,7.5934,18.9181,-2.4782,13.8653,-16.0846,-1.8967,14.7356,-27.2286,0,15.5212,-27.2286,-1.8967,10.9421,-27.2286,-1.158,13.9968,-27.4225 +,0,14.4765,-27.4225,0,14.4765,-23.2772,-1.158,11.6808,-23.2772,-1.158,13.9968,-23.2772,-0.6267,11.3258,-23.2772,-1.158,11.6808,-23.2772,-0.6267,14.3519,-23.2772,-1.158,13.9968,-23.2772,-1.513,13.4655,-23.2772,-1.513,12.2121,-23.2772,-10.5151,-6.5057,15.1528,-10.5151,-6.5057,15.1528,-10.5151,-6.5057,-5.8773,0,-6.5057,-10.2327,-10.5151,-6.5057,-5.8773,-10.0816,16.7156,19.5195,-14.1782,19.0862,6.8127 +,-11.315,17.6293,8.7547,-11.315,17.6293,8.7547,-14.2494,17.7906,8.7547,-11.7795,9.1764,8.7547,-11.8757,7.4258,4.5219,-14.7139,9.3377,8.7547,-14.7139,9.3377,0.2891,-14.2494,17.7906,0.2891,-11.315,17.6293,0.2891,-16.0054,9.4504,4.5219,-15.8635,12.0338,0.6498,-15.9879,9.7689,2.918,-15.9381,10.6761,1.5583,-15.7755,13.6352,0.3307,-15.6875,15.2367,0.6498,-15.6129,16.5943,1.5583,-15.563,17.5015,2.918 +,-15.5455,17.8201,4.5219,-15.6129,16.5943,7.4855,-15.7755,13.6352,8.7131,-15.8635,12.0338,8.394,-15.9381,10.6761,7.4855,22.1843,-15.1455,15.9285,22.1843,-15.1455,-7.0131,19.146,-8.9161,23.2186,22.1843,-15.1455,-7.0131,19.146,-15.1455,-14.3032,19.146,-15.1455,-14.3032,15.7808,-15.1455,-16.5381,15.7808,-15.1455,-16.5381,19.146,-15.1455,-14.3032,21.3946,-15.1455,-10.9585,21.3946,-15.1455,-10.9585,17.2987,-15.1455,-12.4895 +,14.0959,-23.7314,-12.4895,17.2987,-15.1455,21.4049,19.146,-15.1455,23.2186,19.146,-15.1455,23.2186,22.1843,-8.9161,15.9285,21.3946,-8.9161,19.8739,19.146,-8.9161,23.2186,15.7808,-8.9161,25.4535,11.8111,-8.9161,26.2383,15.7807,-8.9161,-16.5381,19.146,-8.9161,-14.3032,21.3946,-8.9161,-10.9585,20.336,-10.2565,-15.3232,20.336,-10.2565,-15.3232,19.146,-8.9161,-14.3032,20.336,-13.8051,-15.3232,20.336,-10.2565,-15.3232 +,21.3946,-15.1455,19.8739,20.336,-13.8051,24.2386,20.336,-13.8051,24.2386,19.146,-15.1455,23.2186,20.336,-10.2565,24.2386,15.7808,-15.1455,25.4535,13.487,4.9501,13.6238,9.925,4.4422,-8.5281,3.3816,0.832,8.0194,4.4183,0.832,2.8077,3.3816,0.832,1.2562,8.4697,-2.5976,13.1074,8.4697,-2.5976,-3.8319,4.1259,3.8787,8.7637,4.1259,1.4577,0.5119,4.1259,3.8787,0.5119,5.2158,7.623,-7.8651 +,5.2158,18.0547,-9.8535,5.2158,18.0547,-7.8651,3.1337,15.9725,-11.1493,3.1337,9.7052,-11.1493,2.5969,10.2419,-16.0846,2.5969,15.4357,-16.0846,9.4168,-6.5057,-4.779,8.4697,-2.5976,13.1074,8.4697,-2.5976,-3.8319,1.8967,14.7356,-27.2286,1.8967,10.9421,-27.2286,1.158,11.6808,-23.2772,1.158,13.9968,-23.2772,1.158,11.6808,-23.2772,1.513,12.2121,-23.2772,1.6377,12.8388,-23.2772,1.158,13.9968,-23.2772 +,0.6267,14.3519,-23.2772,10.5151,-6.5057,15.1528,10.5151,-6.5057,-5.8773,14.7139,9.3377,8.7547,14.2494,17.7906,8.7547,11.315,17.6293,8.7547,11.7795,9.1764,8.7547,11.8757,7.4258,4.5219,14.1782,19.0862,2.2311,11.315,17.6293,0.2891,11.315,17.6293,0.2891,14.2494,17.7906,0.2891,14.7139,9.3377,0.2891,11.7795,9.1764,0.2891,14.7139,9.3377,0.2891,16.0054,9.4504,4.5219,15.8635,12.0338,8.394 +,15.9879,9.7689,6.1258,15.9381,10.6761,7.4855,15.7755,13.6352,8.7131,15.563,17.5015,6.1258,15.6875,15.2367,8.394,15.6129,16.5943,7.4855,15.5455,17.8201,4.5219,15.6129,16.5943,1.5583,15.7755,13.6352,0.3307,15.8635,12.0338,0.6498,15.9381,10.6761,1.5583] +,"normals":[-0.055,-0.679,-0.732,0,-0.662,-0.749,-0.086,-0.688,-0.721,-0.683,-0.726,0.078,-0.391,-0.92,-0.032,-0.683,-0.726,-0.078,-0.391,-0.92,0.032,0,-1,0,-0.391,-0.92,-0.032,-0.075,-0.028,-0.997,0,0,-1,-0.119,-0.044,-0.992,0,0,1,-0.075,-0.028,0.997,-0.119,-0.044,0.992,0,-1,0,0,-1,0 +,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-0.933,-0.348,-0.09,-0.933,-0.348,0.095,-0.933,-0.348,-0.095,-0.086,0.688,0.721,-0.239,0.727,0.643,-0.055,0.679,0.732,-0.275,0.735,0.62,-0.455,0.759,0.466,-0.603,0.754,0.261,-0.455,0.759,0.466,-0.462,0.759,0.459,-0.683,0.726,0.078,-0.613,0.752,0.242 +,0,-1,0,-0.391,-0.92,-0.032,0,-1,0,-0.363,-0.921,-0.143,-0.142,-0.913,-0.382,-0.269,-0.923,-0.275,0,-1,0,-0.142,-0.913,-0.382,-0.275,-0.735,-0.62,-0.269,-0.923,-0.275,-0.142,-0.913,-0.382,-0.603,-0.754,-0.261,-0.269,-0.923,-0.275,-0.462,-0.759,-0.459,-0.363,-0.921,-0.143,-0.339,-0.127,-0.932,-0.412,-0.154,-0.898 +,-0.661,-0.246,-0.709,-0.701,-0.261,-0.664,-0.867,-0.323,-0.379,-0.661,-0.246,-0.709,-0.878,-0.327,-0.349,-0.339,-0.127,0.932,-0.661,-0.246,0.709,-0.412,-0.154,0.898,-0.867,-0.323,0.379,-0.701,-0.261,0.664,-0.661,-0.246,0.709,-0.878,-0.327,0.349,0,-1,0,0,-1,0,-0.142,-0.913,0.382,-0.363,-0.921,0.143,-0.269,-0.923,0.275 +,0,-1,0,0,-0.662,0.749,-0.055,-0.679,0.732,-0.086,-0.688,0.721,0,1,0,0,1,0,0,1,0,0,0.662,0.749,0,0.662,0.749,0,0,1,-0.097,0,0.995,0,0,1,-0.613,0.752,-0.242,-0.683,0.726,-0.078,-0.603,0.754,-0.261,-0.995,0,-0.099,-0.923,0,-0.385 +,-0.923,0,-0.385,-0.455,0.759,-0.466,-0.462,0.759,-0.459,-0.705,0,-0.709,-0.705,0,-0.709,-0.455,0.759,-0.466,-0.275,0.735,-0.62,-0.239,0.727,-0.643,-0.705,0,-0.709,-0.381,0,-0.925,-0.381,0,-0.925,-0.086,0.688,-0.721,-0.055,0.679,-0.732,-0.097,0,-0.995,-0.097,0,-0.995,-0.363,-0.921,0.143,-0.603,-0.754,0.261 +,-0.995,0,0.099,-0.923,0,0.385,-0.923,0,0.385,-0.269,-0.923,0.275,-0.462,-0.759,0.459,-0.705,0,0.709,-0.705,0,0.709,-0.269,-0.923,0.275,-0.275,-0.735,0.62,-0.142,-0.913,0.382,-0.381,0,0.925,-0.705,0,0.709,-0.381,0,0.925,-0.142,-0.913,0.382,-0.097,0,0.995,-0.689,0.723,-0.057,-0.995,0,0.099 +,-0.995,0,-0.099,0,0.662,-0.749,0,0.662,-0.749,0,0,-1,-0.063,0.971,-0.229,-0.04,0.925,-0.379,-0.012,0.912,-0.411,-0.043,0.922,0.384,-0.06,0.969,0.241,-0.017,0.91,0.413,-0.092,0.996,0.009,-0.07,0.997,0.009,-0.095,0.977,-0.192,-0.063,-0.994,-0.084,-0.08,-0.985,-0.152,-0.151,-0.987,-0.044,-0.042,-0.95,0.31 +,-0.046,-0.856,0.514,0.006,-0.847,0.531,-0.135,-0.99,0.037,-0.111,-0.959,0.259,-0.072,-0.996,0.046,0,-0.04,-0.999,0,-0.079,-0.997,0,-0.079,-0.997,-0.959,0.005,0.283,-0.835,-0.112,0.539,-0.974,-0.067,0.215,-0.998,0.034,-0.044,-0.998,-0.037,-0.045,-0.964,0.032,-0.265,-0.962,-0.042,-0.271,-0.896,0.014,-0.443,-0.887,-0.065,-0.458 +,0,0.595,0.804,-0.308,0.595,0.743,0,0.595,0.804,-0.308,0.595,0.743,-0.568,0.595,0.568,-0.743,0.595,0.308,-0.568,0.595,0.568,-0.568,0.595,0.568,-0.804,0.595,0,-0.743,0.595,0.308,-0.743,0.595,-0.308,-0.804,0.595,0,-0.568,0.595,-0.568,-0.743,0.595,-0.308,-0.308,0.595,-0.743,-0.568,0.595,-0.568,-0.568,0.595,-0.568 +,-0.158,0.975,-0.158,-0.082,0.977,-0.198,-0.085,0.975,-0.206,0,0.595,-0.804,-0.308,0.595,-0.743,-0.214,0.977,0,-0.206,0.975,-0.085,-0.223,0.975,0,-0.151,0.977,0.151,-0.206,0.975,0.085,-0.158,0.975,0.158,-0.196,-0.86,-0.472,-0.361,-0.86,-0.361,-0.196,-0.86,-0.472,0,0.977,0.214,-0.085,0.975,0.206,0,0.975,0.223 +,-0.511,-0.86,0,-0.472,-0.86,0.196,-0.511,-0.86,0,-0.196,-0.86,0.472,0,-0.86,0.511,0,-0.86,0.511,-0.472,-0.86,-0.196,-0.472,-0.86,-0.196,-0.198,0.977,0.082,-0.207,0.978,0,-0.191,0.978,0.079,-0.151,0.977,-0.151,-0.079,0.978,-0.191,-0.191,0.978,-0.079,-0.198,0.977,-0.082,-0.146,0.978,-0.146,0,0.978,-0.207 +,0,0.977,-0.214,-0.079,0.978,0.191,-0.146,0.978,0.146,-0.082,0.977,0.198,0,0.975,-0.223,-0.707,0,-0.707,-0.924,0,-0.383,-0.707,0,-0.707,0,0,-1,-0.383,0,-0.924,0,0,-1,-0.924,0,0.383,-0.707,0,0.707,-0.924,0,0.383,-0.924,0,-0.383,-1,0,0,-0.383,0,-0.924 +,-0.707,0,-0.707,-0.707,0,0.707,-0.383,0,0.924,-0.707,0,0.707,-0.383,0,0.924,0,0,1,-1,0,0,-0.361,-0.86,0.361,-0.196,-0.86,0.472,0,-0.86,-0.511,0,-0.86,-0.511,-0.472,-0.86,0.196,-0.154,0.372,-0.915,-0.285,0.285,-0.915,-0.285,0.285,-0.915,-0.403,0,-0.915,-0.372,-0.154,-0.915 +,-0.403,0,-0.915,-0.154,-0.372,-0.915,0,-0.403,-0.915,0,-0.403,-0.915,-0.372,0.154,-0.915,-0.372,0.154,-0.915,-0.707,0.707,0,-0.924,0.383,0,-0.707,0.707,0,0,1,0,-0.383,0.924,0,0,1,0,-0.924,-0.383,0,-0.707,-0.707,0,-0.924,-0.383,0,-1,0,0,-1,0,0 +,-0.383,0.924,0,-0.707,0.707,0,-0.707,-0.707,0,-0.383,-0.924,0,-0.707,-0.707,0,-0.383,-0.924,0,0,-1,0,-0.285,-0.285,-0.915,-0.285,-0.285,-0.915,0,0.403,-0.915,0,0.403,-0.915,-0.372,-0.154,-0.915,-0.699,-0.699,-0.152,-0.913,-0.378,-0.152,-0.699,-0.699,-0.152,0,-0.988,-0.152,-0.378,-0.913,-0.152 +,-0.378,-0.913,-0.152,-0.378,0.913,-0.152,0,0.988,-0.152,-0.378,0.913,-0.152,-0.913,0.378,-0.152,-0.699,0.699,-0.152,-0.913,0.378,-0.152,-0.913,-0.378,-0.152,-0.988,0,-0.152,-0.699,-0.699,-0.152,-0.699,-0.699,-0.152,-0.699,0.699,-0.152,-0.699,0.699,-0.152,-0.874,0.324,-0.362,-0.946,0.324,0,-0.946,0.324,0,-0.362,0.324,-0.874 +,-0.669,0.324,-0.669,-0.669,0.324,-0.669,-0.874,0.324,0.362,-0.362,0.324,0.874,0,0.324,0.946,-0.362,0.324,0.874,-0.874,0.324,0.362,-0.669,0.324,0.669,-0.669,0.324,0.669,-0.669,0.324,0.669,-0.669,0.324,-0.669,-0.669,0.324,-0.669,0,-0.074,0.997,0,-0.147,0.989,0,-0.074,0.997,0,0.324,-0.946,0,0.324,-0.946 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-1,0,0 +,-0.924,0.383,0,-1,0,0,-0.924,0.383,0,-0.707,0.707,0,0,-1,0,-0.383,-0.924,0,0,-1,0,-0.707,0.707,0,-0.383,0.924,0,-0.707,0.707,0,-0.383,0.924,0,0,1,0,-0.383,-0.924,0,-0.707,-0.707,0,-0.707,-0.707,0,-0.924,-0.383,0,-0.707,-0.707,0 +,-0.924,-0.383,0,-0.129,-0.129,-0.983,-0.169,-0.07,-0.983,-0.129,-0.129,-0.983,-0.169,-0.07,-0.983,-0.182,0,-0.983,-0.182,0,-0.983,-0.169,0.07,-0.983,-0.169,0.07,-0.983,-0.129,0.129,-0.983,-0.07,0.169,-0.983,-0.07,0.169,-0.983,0,0.182,-0.983,0,-0.182,-0.983,-0.07,-0.169,-0.983,-0.07,-0.169,-0.983,0.383,-0.924,0 +,0,-1,0,0.383,-0.924,0,0,1,0,0.383,0.924,0,0,1,0,0.383,0.924,0,0.707,0.707,0,0.707,0.707,0,0.924,0.383,0,0.707,0.707,0,0.924,0.383,0,1,0,0,1,0,0,0.924,-0.383,0,0.924,-0.383,0,0.707,-0.707,0,0.707,-0.707,0 +,0.707,-0.707,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.383,0,0.924,0,0,1 +,0,0,1,-0.707,0,0.707,-0.383,0,0.924,-0.924,0,0.383,-0.707,0,0.707,-0.707,0,0.707,-1,0,0,-0.924,0,0.383,-0.924,0,-0.383,-1,0,0,-0.707,0,-0.707,-0.924,0,-0.383,-0.383,0,-0.924,-0.707,0,-0.707,-0.707,0,-0.707,0,0,-1,-0.383,0,-0.924 +,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-0.012,0.138,0.99,0,0.065,0.998,-0.003,0.074,0.997,-0.873,0.198,-0.446,-0.95,0.157,-0.269,-0.887,0.136,-0.442,-0.942,0.214,-0.258,-0.985,0.166,-0.04,-0.94,0.262,0.22,-0.974,0.224,-0.035,-0.944,0.185,0.274,-0.818,0.301,0.49 +,-0.852,-0.004,0.523,0,0.068,-0.998,0,0.034,-0.999,0,0.068,-0.998,0,0.031,-1,-0.78,0.584,0.224,-0.787,0.458,0.414,-0.787,0.458,0.414,-0.81,0.044,0.585,-0.822,-0.179,0.541,-0.81,0.044,0.585,-0.839,-0.495,0.224,-0.842,-0.54,0,-0.842,-0.54,0,-0.797,0.268,0.541,-0.797,0.268,0.541,0.039,0.706,0.707 +,0.021,0.382,0.924,0.021,0.382,0.924,0.055,0.998,0,0.051,0.922,0.383,0.055,0.998,0,-0.021,-0.382,0.924,-0.039,-0.706,0.707,-0.039,-0.706,0.707,0,0,1,0,0,1,0.051,0.922,0.383,0.039,0.706,0.707,-0.039,-0.706,0.707,-0.051,-0.922,0.383,-0.039,-0.706,0.707,-0.051,-0.922,0.383,-0.055,-0.998,0 +,-0.021,-0.382,0.924,-0.832,-0.369,0.414,-0.839,-0.495,0.224,-0.777,0.629,0,-0.777,0.629,0,-0.822,-0.179,0.541,-0.78,0.584,-0.224,-0.787,0.458,-0.414,-0.78,0.584,-0.224,-0.822,-0.179,-0.541,-0.81,0.044,-0.585,-0.81,0.044,-0.585,-0.839,-0.495,-0.224,-0.839,-0.495,-0.224,-0.787,0.458,-0.414,-0.797,0.268,-0.541,0.039,0.706,-0.707 +,0.021,0.382,-0.924,0.039,0.706,-0.707,0.051,0.922,-0.383,-0.021,-0.382,-0.924,-0.039,-0.706,-0.707,-0.021,-0.382,-0.924,0,0,-1,0.021,0.382,-0.924,0.039,0.706,-0.707,0.051,0.922,-0.383,-0.039,-0.706,-0.707,-0.051,-0.922,-0.383,-0.039,-0.706,-0.707,-0.051,-0.922,-0.383,0,0,-1,-0.832,-0.369,-0.414,-0.832,-0.369,-0.414 +,-0.797,0.268,-0.541,-0.822,-0.179,-0.541,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,0,-0.04,-0.999,0,0.034,-0.999,0,0.068,-0.998,0,0.072,0.997,0,-0.075,0.997,-0.007,0.156,0.988,0,-0.147,0.989,0,-0.079,-0.997,0,-0.999,0.053,0,-0.945,0.328,0,-0.854,0.52,0,-0.995,-0.098 +,0,-0.979,-0.202,0,1,0.01,0,0.97,-0.243,0,0.967,0.255,0,0.902,0.433,0,0.901,-0.434,0,0.978,0.207,0.055,-0.679,-0.732,0.086,-0.688,-0.721,0.391,-0.92,-0.032,0.683,-0.726,0.078,0.683,-0.726,-0.078,0.391,-0.92,-0.032,0,-1,0,0.391,-0.92,0.032,0.075,-0.028,-0.997,0.119,-0.044,-0.992 +,0.075,-0.028,0.997,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0.933,-0.348,-0.09,0.933,-0.348,0.095,0.933,-0.348,0.09,0.086,0.688,0.721,0.239,0.727,0.643,0.275,0.735,0.62,0.455,0.759,0.466,0.462,0.759,0.459,0.455,0.759,0.466,0.603,0.754,0.261,0.462,0.759,0.459 +,0.613,0.752,0.242,0.683,0.726,0.078,0.391,-0.92,-0.032,0,-1,0,0,-1,0,0.363,-0.921,-0.143,0,-1,0,0.142,-0.913,-0.382,0,-1,0,0.142,-0.913,-0.382,0.275,-0.735,-0.62,0.269,-0.923,-0.275,0.462,-0.759,-0.459,0.269,-0.923,-0.275,0.603,-0.754,-0.261,0.462,-0.759,-0.459,0.363,-0.921,-0.143 +,0.339,-0.127,-0.932,0.412,-0.154,-0.898,0.661,-0.246,-0.709,0.701,-0.261,-0.664,0.701,-0.261,-0.664,0.867,-0.323,-0.379,0.878,-0.327,-0.349,0.933,-0.348,-0.095,0.119,-0.044,0.992,0.339,-0.127,0.932,0.412,-0.154,0.898,0.661,-0.246,0.709,0.701,-0.261,0.664,0.867,-0.323,0.379,0.661,-0.246,0.709,0.878,-0.327,0.349,0,-1,0 +,0,-1,0,0.142,-0.913,0.382,0,-1,0,0.363,-0.921,0.143,0,-1,0,0.055,-0.679,0.732,0,-0.662,0.749,0,1,0,0,1,0,0.055,0.679,0.732,0.097,0,0.995,0.613,0.752,-0.242,0.683,0.726,-0.078,0.689,0.723,-0.057,0.923,0,-0.385,0.995,0,-0.099,0.923,0,-0.385 +,0.455,0.759,-0.466,0.603,0.754,-0.261,0.705,0,-0.709,0.705,0,-0.709,0.275,0.735,-0.62,0.455,0.759,-0.466,0.239,0.727,-0.643,0.381,0,-0.925,0.705,0,-0.709,0.381,0,-0.925,0.086,0.688,-0.721,0.055,0.679,-0.732,0.097,0,-0.995,0.363,-0.921,0.143,0.391,-0.92,0.032,0.923,0,0.385,0.995,0,0.099 +,0.923,0,0.385,0.269,-0.923,0.275,0.603,-0.754,0.261,0.363,-0.921,0.143,0.705,0,0.709,0.705,0,0.709,0.275,-0.735,0.62,0.269,-0.923,0.275,0.142,-0.913,0.382,0.381,0,0.925,0.705,0,0.709,0.705,0,0.709,0.086,-0.688,0.721,0.142,-0.913,0.382,0.097,0,0.995,0.381,0,0.925,0.689,0.723,0.057 +,0.995,0,-0.099,0.995,0,0.099,0.097,0,-0.995,0.063,0.971,-0.229,0.04,0.925,-0.379,0.095,0.977,-0.192,0.06,0.969,0.241,0.043,0.922,0.384,0.017,0.91,0.413,0.092,0.996,0.009,0.09,0.974,0.206,0.07,0.997,0.009,0.063,-0.994,-0.084,0.08,-0.985,-0.152,0,-0.979,-0.202,0.046,-0.856,0.514,0.042,-0.95,0.31 +,-0.006,-0.847,0.531,0.135,-0.99,0.037,0.072,-0.996,0.046,0.151,-0.987,-0.044,0,-0.04,-0.999,0,-0.079,-0.997,0,-0.04,-0.999,0.959,0.005,0.283,0.835,-0.112,0.539,0.852,-0.004,0.523,0.998,0.034,-0.044,0.974,-0.067,0.215,0.964,0.032,-0.265,0.998,-0.037,-0.045,0.896,0.014,-0.443,0.962,-0.042,-0.271,0.308,0.595,0.743 +,0.308,0.595,0.743,0.568,0.595,0.568,0.568,0.595,0.568,0.568,0.595,0.568,0.743,0.595,0.308,0.568,0.595,0.568,0.743,0.595,0.308,0.804,0.595,0,0.804,0.595,0,0.743,0.595,-0.308,0.568,0.595,-0.568,0.568,0.595,-0.568,0.568,0.595,-0.568,0.308,0.595,-0.743,0.568,0.595,-0.568,0.158,0.975,-0.158,0.082,0.977,-0.198 +,0.151,0.977,-0.151,0.308,0.595,-0.743,0.206,0.975,-0.085,0.214,0.977,0,0.223,0.975,0,0.206,0.975,0.085,0.151,0.977,0.151,0.158,0.975,0.158,0.361,-0.86,-0.361,0.196,-0.86,-0.472,0.196,-0.86,-0.472,0.085,0.975,0.206,0.472,-0.86,0.196,0.511,-0.86,0,0.511,-0.86,0,0.196,-0.86,0.472,0.196,-0.86,0.472 +,0.472,-0.86,-0.196,0.361,-0.86,-0.361,0.207,0.978,0,0.198,0.977,0.082,0.191,0.978,0.079,0.079,0.978,-0.191,0.191,0.978,-0.079,0.198,0.977,-0.082,0.079,0.978,0.191,0.082,0.977,0.198,0.085,0.975,-0.206,0.924,0,-0.383,0.707,0,-0.707,0.707,0,-0.707,0.383,0,-0.924,0.707,0,0.707,0.924,0,0.383 +,0.924,0,0.383,1,0,0,0.924,0,-0.383,0.707,0,-0.707,0.383,0,-0.924,0.383,0,0.924,0.707,0,0.707,0.707,0,0.707,0.383,0,0.924,1,0,0,0.361,-0.86,0.361,0.361,-0.86,0.361,0.472,-0.86,-0.196,0.472,-0.86,0.196,0.154,0.372,-0.915,0.285,0.285,-0.915,0.154,0.372,-0.915 +,0.372,-0.154,-0.915,0.403,0,-0.915,0.403,0,-0.915,0.154,-0.372,-0.915,0.154,-0.372,-0.915,0.285,0.285,-0.915,0.372,0.154,-0.915,0.924,0.383,0,0.707,0.707,0,0.707,0.707,0,0.383,0.924,0,0.707,-0.707,0,0.924,-0.383,0,0.924,-0.383,0,1,0,0,0.924,0.383,0,0.707,0.707,0 +,0.383,0.924,0,0.383,-0.924,0,0.707,-0.707,0,0.707,-0.707,0,0.383,-0.924,0,1,0,0,0.285,-0.285,-0.915,0.285,-0.285,-0.915,0.372,0.154,-0.915,0.372,-0.154,-0.915,0.913,-0.378,-0.152,0.699,-0.699,-0.152,0.699,-0.699,-0.152,0.378,-0.913,-0.152,0,-0.988,-0.152,0.378,0.913,-0.152,0,0.988,-0.152 +,0.378,0.913,-0.152,0.913,0.378,-0.152,0.699,0.699,-0.152,0.913,0.378,-0.152,0.988,0,-0.152,0.913,-0.378,-0.152,0.378,-0.913,-0.152,0.699,-0.699,-0.152,0.699,0.699,-0.152,0.699,0.699,-0.152,0.988,0,-0.152,0.874,0.324,-0.362,0.946,0.324,0,0.874,0.324,-0.362,0.362,0.324,-0.874,0.669,0.324,-0.669,0.362,0.324,-0.874 +,0.946,0.324,0,0.874,0.324,0.362,0.362,0.324,0.874,0.362,0.324,0.874,0.669,0.324,0.669,0.874,0.324,0.362,0.669,0.324,0.669,0.669,0.324,0.669,0.669,0.324,-0.669,0.669,0.324,-0.669,0,-0.147,0.989,0,-0.074,0.997,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0.924,0.383,0,1,0,0,1,0,0,0.707,0.707,0,0.924,0.383,0,0.383,-0.924,0,0.383,0.924,0 +,0.707,0.707,0,0.707,0.707,0,0.383,0.924,0,0.707,-0.707,0,0.383,-0.924,0,0.924,-0.383,0,0.707,-0.707,0,0.707,-0.707,0,0.924,-0.383,0,0.169,-0.07,-0.983,0.129,-0.129,-0.983,0.129,-0.129,-0.983,0.182,0,-0.983,0.169,-0.07,-0.983,0.169,0.07,-0.983,0.182,0,-0.983,0.129,0.129,-0.983 +,0.169,0.07,-0.983,0.07,0.169,-0.983,0.129,0.129,-0.983,0.07,0.169,-0.983,0.07,-0.169,-0.983,0,-0.182,-0.983,0.07,-0.169,-0.983,-0.383,-0.924,0,-0.383,-0.924,0,-0.383,0.924,0,-0.707,0.707,0,-0.383,0.924,0,-0.924,0.383,0,-0.707,0.707,0,-0.707,0.707,0,-1,0,0,-0.924,0.383,0 +,-0.924,-0.383,0,-1,0,0,-0.707,-0.707,0,-0.924,-0.383,0,-0.707,-0.707,0,-0.707,-0.707,0,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0.383,0,0.924,0.383,0,0.924,0.707,0,0.707,0.707,0,0.707,0.924,0,0.383,0.707,0,0.707,0.924,0,0.383,1,0,0,1,0,0,0.924,0,-0.383,0.924,0,-0.383,0.707,0,-0.707,0.707,0,-0.707,0.383,0,-0.924,0.707,0,-0.707,0.383,0,-0.924,0,1,0 +,0,1,0,0,1,0,0,1,0,0,1,0,0.012,0.138,0.99,0,0.12,0.993,0.003,0.074,0.997,0.873,0.198,-0.446,0.95,0.157,-0.269,0.942,0.214,-0.258,0.887,0.136,-0.442,0.985,0.166,-0.04,0.974,0.224,-0.035,0.94,0.262,0.22,0.944,0.185,0.274,0.818,0.301,0.49,0.845,0.203,0.495 +,0,0.034,-0.999,0,0.068,-0.998,0,0.068,-0.998,0,0.031,-1,0.78,0.584,0.224,0.787,0.458,0.414,0.78,0.584,0.224,0.822,-0.179,0.541,0.81,0.044,0.585,0.81,0.044,0.585,0.839,-0.495,0.224,0.842,-0.54,0,0.839,-0.495,0.224,0.787,0.458,0.414,0.797,0.268,0.541,-0.039,0.706,0.707,-0.021,0.382,0.924 +,-0.039,0.706,0.707,-0.055,0.998,0,-0.051,0.922,0.383,-0.055,0.998,0,0.021,-0.382,0.924,0.039,-0.706,0.707,0.021,-0.382,0.924,-0.021,0.382,0.924,0,0,1,-0.039,0.706,0.707,-0.051,0.922,0.383,0.051,-0.922,0.383,0.039,-0.706,0.707,0.039,-0.706,0.707,0.055,-0.998,0,0.051,-0.922,0.383,0,0,1 +,0.832,-0.369,0.414,0.832,-0.369,0.414,0.777,0.629,0,0.777,0.629,0,0.797,0.268,0.541,0.822,-0.179,0.541,0.78,0.584,-0.224,0.787,0.458,-0.414,0.787,0.458,-0.414,0.81,0.044,-0.585,0.822,-0.179,-0.541,0.81,0.044,-0.585,0.839,-0.495,-0.224,0.842,-0.54,0,0.797,0.268,-0.541,0.797,0.268,-0.541,-0.039,0.706,-0.707 +,-0.021,0.382,-0.924,-0.021,0.382,-0.924,-0.051,0.922,-0.383,0.021,-0.382,-0.924,0.039,-0.706,-0.707,0.039,-0.706,-0.707,0,0,-1,0,0,-1,-0.051,0.922,-0.383,-0.039,0.706,-0.707,0.039,-0.706,-0.707,0.051,-0.922,-0.383,0.051,-0.922,-0.383,0.021,-0.382,-0.924,0.832,-0.369,-0.414,0.839,-0.495,-0.224,0.822,-0.179,-0.541 +,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0,0.072,0.997,0.007,0.156,0.988,0,-0.147,0.989,0,-0.075,0.997,0,-0.079,-0.997,0,-0.979,-0.202,0.012,0.912,-0.411,0,-0.662,-0.749,-0.391,-0.92,0.032,0,-1,0,0,0,-1,0,-1,0,-0.933,-0.348,0.09,-0.462,0.759,0.459 +,-0.455,0.759,0.466,-0.689,0.723,0.057,-0.391,-0.92,-0.032,-0.142,-0.913,-0.382,-0.462,-0.759,-0.459,-0.269,-0.923,-0.275,-0.363,-0.921,-0.143,-0.269,-0.923,-0.275,-0.363,-0.921,-0.143,-0.701,-0.261,-0.664,-0.701,-0.261,0.664,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 +,0,1,0,0,1,0,0,1,0,-0.455,0.759,-0.466,-0.462,0.759,-0.459,-0.705,0,-0.709,-0.705,0,-0.709,-0.363,-0.921,0.143,-0.391,-0.92,0.032,-0.269,-0.923,0.275,-0.363,-0.921,0.143,-0.269,-0.923,0.275,-0.462,-0.759,0.459,-0.705,0,0.709,-0.705,0,0.709,-0.142,-0.913,0.382,0,0,-1 +,-0.09,0.974,0.206,0,-0.04,-0.999,-0.568,0.595,0.568,-0.568,0.595,0.568,-0.568,0.595,-0.568,-0.568,0.595,-0.568,0,0.595,-0.804,-0.361,-0.86,-0.361,-0.707,0,0.707,-0.707,0,-0.707,-0.707,0,-0.707,0,0,1,-0.361,-0.86,0.361,-0.154,0.372,-0.915,-0.154,-0.372,-0.915,-0.924,0.383,0,-0.707,-0.707,0 +,-0.707,0.707,0,-0.707,0.707,0,0,-1,0,-0.699,0.699,-0.152,-0.988,0,-0.152,-0.699,-0.699,-0.152,-0.874,0.324,-0.362,-0.362,0.324,-0.874,0,0.324,0.946,-0.669,0.324,0.669,-0.669,0.324,-0.669,0,-0.147,0.989,0,0,-1,-0.707,0.707,0,0,1,0,-0.707,-0.707,0,-0.129,0.129,-0.983 +,0,0.182,-0.983,0,-1,0,0.707,0.707,0,0.707,-0.707,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,-0.707,0,0.707,-0.707,0,-0.707,0,0,-1,0,1,0,-0.845,0.203,0.495,-0.78,0.584,0.224 +,0.039,0.706,0.707,0.039,0.706,0.707,0.039,0.706,0.707,-0.039,-0.706,0.707,-0.055,-0.998,0,-0.832,-0.369,0.414,-0.039,-0.706,-0.707,0.039,0.706,-0.707,0.039,0.706,-0.707,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0 +,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,-0.998,0.055,0,0.391,-0.92,0.032,0.391,-0.92,-0.032,0.455,0.759,0.466,0.391,-0.92,-0.032,0.269,-0.923,-0.275,0.269,-0.923,-0.275,0.142,-0.913,-0.382,0.142,-0.913,-0.382,0.269,-0.923,-0.275,0.363,-0.921,-0.143,0.363,-0.921,-0.143,0.701,-0.261,-0.664 +,0.661,-0.246,-0.709,0.701,-0.261,0.664,0.269,-0.923,0.275,0.269,-0.923,0.275,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0.462,0.759,-0.459,0.462,0.759,-0.459,0.455,0.759,-0.466,0.705,0,-0.709,0.705,0,-0.709 +,0.363,-0.921,0.143,0.462,-0.759,0.459,0.462,-0.759,0.459,0.269,-0.923,0.275,0.705,0,0.709,0.142,-0.913,0.382,0.111,-0.959,0.259,0.887,-0.065,-0.458,0.568,0.595,0.568,0.743,0.595,-0.308,0.568,0.595,-0.568,0.146,0.978,0.146,0.146,0.978,-0.146,0.707,0,0.707,0.707,0,-0.707,0.707,0,-0.707,0.707,-0.707,0 +,0.707,0.707,0,0.707,0.707,0,0.699,0.699,-0.152,0.699,-0.699,-0.152,0.699,-0.699,-0.152,0.699,0.699,-0.152,0.669,0.324,-0.669,0.669,0.324,0.669,0.669,0.324,-0.669,0.707,0.707,0,0.707,-0.707,0,-0.707,0.707,0,-0.707,-0.707,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1 +,0,0,-1,0.707,0,0.707,0.707,0,-0.707,0.039,-0.706,0.707,-0.039,0.706,0.707,-0.039,0.706,0.707,0.039,-0.706,0.707,0.055,-0.998,0,0.78,0.584,-0.224,-0.039,0.706,-0.707,-0.039,0.706,-0.707,-0.039,0.706,-0.707,0.039,-0.706,-0.707,0.039,-0.706,-0.707,0.832,-0.369,-0.414,0.998,0.055,0,0.998,0.055,0 +,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0,0.998,0.055,0] +,"uvs":[0.868,0.824,0.88,0.826,0.867,0.826,0.052,0.967,0.028,0.969,0.028,0.967,0.706,0.865,0.708,0.886,0.706,0.888,0.075,0.961,0.081,0.97,0.071,0.97,0.415,0.922,0.421,0.913,0.425,0.922,0.728,0.855,0.718,0.857,0.717,0.855,0.718,0.897,0.728,0.898,0.717,0.898,0.881,0.969,0.862,0.959,0.881,0.959,0.612,0.961 +,0.609,0.959,0.613,0.959,0.608,0.961,0.604,0.959,0.056,0.964,0.06,0.961,0.06,0.963,0.052,0.964,0.055,0.962,0.709,0.89,0.706,0.888,0.711,0.894,0.707,0.892,0.713,0.898,0.709,0.895,0.714,0.896,0.864,0.824,0.863,0.826,0.86,0.823,0.864,0.824,0.024,0.967,0.02,0.969,0.019,0.967,0.024,0.969,0.07,0.961 +,0.067,0.97,0.066,0.961,0.889,0.968,0.885,0.959,0.889,0.958,0.885,0.968,0.425,0.913,0.43,0.913,0.429,0.922,0.858,0.959,0.854,0.968,0.854,0.958,0.858,0.968,0.714,0.857,0.711,0.86,0.713,0.856,0.707,0.861,0.709,0.858,0.709,0.863,0.625,0.965,0.613,0.966,0.612,0.965,0.681,0.855,0.681,0.898,0.658,0.865 +,0.625,0.961,0.625,0.959,0.625,0.965,0.612,0.961,0.625,0.961,0.024,0.962,0.028,0.964,0.024,0.964,0.028,0.964,0.024,0.967,0.024,0.964,0.02,0.961,0.019,0.963,0.019,0.967,0.019,0.963,0.86,0.831,0.863,0.829,0.864,0.831,0.859,0.829,0.863,0.826,0.863,0.829,0.867,0.829,0.868,0.831,0.867,0.829,0.867,0.826 +,0.055,0.969,0.056,0.967,0.052,0.967,0.056,0.964,0.056,0.967,0.06,0.969,0.06,0.967,0.06,0.963,0.06,0.967,0.604,0.967,0.608,0.964,0.609,0.966,0.608,0.964,0.604,0.961,0.608,0.961,0.609,0.966,0.612,0.965,0.028,0.962,0.052,0.964,0.028,0.967,0.88,0.829,0.88,0.831,0.88,0.829,0.925,0.152,0.919,0.155 +,0.919,0.151,0.947,0.156,0.941,0.152,0.947,0.151,0.933,0.158,0.933,0.152,0.925,0.158,0.329,0.897,0.323,0.893,0.329,0.89,0.345,0.897,0.352,0.893,0.352,0.898,0.337,0.89,0.346,0.89,0.337,0.897,0.748,0.704,0.743,0.698,0.748,0.698,0.952,0.939,0.957,0.942,0.951,0.945,0.943,0.939,0.943,0.945,0.934,0.939 +,0.934,0.945,0.928,0.939,0.928,0.945,0.977,0.975,0.975,0.972,0.977,0.972,0.974,0.975,0.973,0.971,0.792,0.979,0.793,0.976,0.794,0.978,0.789,0.979,0.791,0.976,0.787,0.979,0.789,0.976,0.786,0.976,0.787,0.976,0.921,0.552,0.92,0.555,0.918,0.553,0.741,0.378,0.742,0.374,0.743,0.376,0.923,0.551,0.921,0.554 +,0.738,0.383,0.74,0.38,0.74,0.382,0.742,0.388,0.741,0.385,0.743,0.386,0.686,0.558,0.684,0.557,0.686,0.557,0.748,0.389,0.745,0.387,0.748,0.387,0.68,0.556,0.68,0.553,0.681,0.555,0.681,0.55,0.682,0.547,0.682,0.548,0.681,0.557,0.682,0.556,0.74,0.386,0.735,0.383,0.736,0.388,0.74,0.377,0.74,0.371 +,0.735,0.379,0.738,0.38,0.736,0.374,0.744,0.369,0.745,0.373,0.744,0.393,0.74,0.391,0.745,0.389,0.745,0.375,0.778,0.993,0.776,0.991,0.778,0.991,0.979,0.004,0.977,0.002,0.979,0.002,0.772,0.993,0.769,0.991,0.772,0.991,0.776,0.993,0.774,0.991,0.977,0.004,0.974,0.002,0.754,0.993,0.751,0.991,0.754,0.991 +,0.751,0.993,0.749,0.991,0.774,0.993,0.68,0.551,0.68,0.549,0.688,0.557,0.687,0.556,0.679,0.554,0.93,0.791,0.927,0.793,0.929,0.791,0.924,0.788,0.927,0.786,0.927,0.788,0.929,0.783,0.93,0.779,0.93,0.783,0.925,0.791,0.927,0.789,0.996,0.819,0.994,0.821,0.994,0.819,0.544,0.867,0.542,0.87,0.542,0.867 +,0.996,0.827,0.994,0.83,0.994,0.827,0.996,0.824,0.994,0.824,0.544,0.87,0.542,0.873,0.997,0.128,0.995,0.131,0.995,0.128,0.997,0.131,0.995,0.133,0.925,0.783,0.927,0.784,0.933,0.794,0.932,0.791,0.924,0.785,0.996,0.424,0.991,0.425,0.991,0.424,0.104,0.99,0.102,0.995,0.102,0.99,0.092,0.99,0.094,0.995 +,0.092,0.995,0.996,0.429,0.991,0.431,0.991,0.429,0.996,0.426,0.991,0.427,0.101,0.995,0.1,0.99,0.091,0.99,0.09,0.995,0.968,0.06,0.973,0.056,0.973,0.061,0.966,0.935,0.962,0.94,0.961,0.936,0.979,0.06,0.969,0.065,0.973,0.069,0.968,0.069,0.978,0.056,0.984,0.059,0.964,0.064,0.963,0.068,0.964,0.055 +,0.963,0.059,0.959,0.092,0.953,0.096,0.953,0.092,0.971,0.939,0.971,0.935,0.99,0.555,0.989,0.556,0.989,0.555,0.988,0.556,0.988,0.555,0.986,0.555,0.987,0.556,0.985,0.556,0.986,0.557,0.985,0.558,0.986,0.559,0.985,0.559,0.986,0.56,0.985,0.56,0.987,0.561,0.986,0.561,0.979,0.989,0.99,0.988,0.99,0.989 +,0.979,0.988,0.99,0.987,0.902,0.981,0.913,0.98,0.913,0.981,0.659,0.979,0.67,0.978,0.67,0.979,0.659,0.978,0.67,0.977,0.902,0.98,0.913,0.979,0.979,0.991,0.99,0.99,0.99,0.991,0.979,0.99,0.633,0.992,0.632,0.993,0.632,0.992,0.633,0.993,0.632,0.994,0.633,0.994,0.632,0.995,0.633,0.994,0.633,0.996 +,0.634,0.995,0.634,0.996,0.635,0.996,0.634,0.991,0.634,0.992,0.633,0.991,0.04,0.994,0.036,0.995,0.036,0.994,0.996,0.096,0.992,0.097,0.992,0.096,0.996,0.097,0.992,0.097,0.564,0.993,0.56,0.994,0.56,0.993,0.564,0.994,0.56,0.994,0.564,0.994,0.56,0.995,0.564,0.995,0.56,0.996,0.04,0.994,0.036,0.994 +,0.962,0.759,0.962,0.757,0.964,0.756,0.888,0.158,0.888,0.152,0.89,0.157,0.893,0.16,0.898,0.164,0.898,0.162,0.904,0.164,0.903,0.162,0.893,0.138,0.898,0.135,0.898,0.136,0.025,0.99,0.031,0.988,0.031,0.99,0.019,0.99,0.025,0.988,0.565,0.987,0.56,0.99,0.56,0.987,0.571,0.987,0.565,0.99,0.577,0.987 +,0.571,0.99,0.583,0.987,0.577,0.99,0.919,0.82,0.914,0.822,0.914,0.82,0.925,0.82,0.919,0.822,0.886,0.152,0.888,0.147,0.886,0.146,0.89,0.142,0.893,0.137,0.954,0.083,0.959,0.087,0.953,0.087,0.928,0.928,0.935,0.933,0.928,0.934,0.935,0.927,0.943,0.933,0.951,0.927,0.943,0.927,0.952,0.933,0.958,0.929 +,0.958,0.938,0.744,0.714,0.748,0.709,0.748,0.714,0.743,0.709,0.666,0.961,0.668,0.96,0.667,0.962,0.671,0.964,0.669,0.966,0.669,0.964,0.667,0.968,0.666,0.971,0.666,0.969,0.67,0.961,0.668,0.963,0.938,0.285,0.941,0.287,0.938,0.287,0.942,0.427,0.939,0.429,0.939,0.427,0.938,0.292,0.941,0.294,0.938,0.294 +,0.941,0.289,0.938,0.289,0.942,0.429,0.939,0.431,0.995,0.184,0.992,0.186,0.992,0.184,0.995,0.186,0.992,0.189,0.941,0.292,0.668,0.967,0.668,0.97,0.664,0.959,0.664,0.961,0.671,0.966,0.663,0.962,0.66,0.962,0.661,0.96,0.661,0.967,0.659,0.966,0.661,0.966,0.664,0.969,0.664,0.971,0.661,0.963,0.659,0.964 +,0.992,0.206,0.995,0.204,0.995,0.206,0.939,0.424,0.992,0.199,0.995,0.197,0.995,0.199,0.992,0.201,0.992,0.204,0.939,0.422,0.942,0.424,0.992,0.193,0.995,0.191,0.995,0.193,0.992,0.191,0.995,0.201,0.663,0.968,0.661,0.97,0.661,0.964,0.66,0.969,0.666,0.961,0.668,0.963,0.667,0.968,0.753,0.704,0.753,0.709 +,0.753,0.714,0.948,0.087,0.948,0.092,0.949,0.083,0.948,0.096,0.753,0.698,0.337,0.903,0.345,0.903,0.352,0.903,0.329,0.903,0.323,0.898,0.933,0.146,0.925,0.146,0.941,0.146,0.948,0.146,0.919,0.146,0.749,0.393,0.892,0.824,0.893,0.826,0.256,0.96,0.28,0.962,0.256,0.962,0.751,0.888,0.749,0.867,0.751,0.865 +,0.088,0.961,0.091,0.97,0.408,0.913,0.415,0.913,0.738,0.857,0.728,0.857,0.738,0.897,0.74,0.898,0.573,0.969,0.593,0.96,0.593,0.969,0.637,0.961,0.641,0.959,0.642,0.961,0.645,0.959,0.646,0.961,0.288,0.968,0.284,0.966,0.288,0.966,0.283,0.968,0.28,0.966,0.751,0.888,0.748,0.89,0.749,0.886,0.75,0.892 +,0.746,0.894,0.744,0.898,0.742,0.896,0.896,0.824,0.897,0.826,0.9,0.823,0.901,0.825,0.248,0.96,0.252,0.962,0.247,0.962,0.252,0.96,0.092,0.961,0.095,0.97,0.096,0.961,0.099,0.97,0.565,0.968,0.569,0.96,0.569,0.969,0.573,0.96,0.405,0.922,0.404,0.913,0.401,0.922,0.4,0.913,0.601,0.968,0.597,0.96 +,0.601,0.959,0.597,0.969,0.74,0.855,0.742,0.857,0.744,0.856,0.746,0.86,0.75,0.861,0.748,0.863,0.637,0.966,0.625,0.966,0.693,0.855,0.703,0.865,0.637,0.959,0.637,0.961,0.252,0.968,0.256,0.966,0.256,0.968,0.252,0.962,0.256,0.966,0.252,0.966,0.248,0.968,0.252,0.966,0.247,0.962,0.247,0.966,0.897,0.829 +,0.9,0.831,0.896,0.831,0.897,0.826,0.901,0.829,0.897,0.829,0.893,0.829,0.892,0.831,0.893,0.829,0.283,0.96,0.279,0.96,0.284,0.966,0.28,0.962,0.284,0.962,0.288,0.96,0.284,0.962,0.283,0.96,0.288,0.966,0.288,0.962,0.642,0.964,0.645,0.967,0.641,0.966,0.642,0.964,0.646,0.961,0.646,0.965,0.637,0.965 +,0.641,0.966,0.637,0.965,0.642,0.961,0.279,0.968,0.256,0.962,0.28,0.966,0.893,0.826,0.925,0.141,0.919,0.138,0.925,0.135,0.941,0.141,0.947,0.137,0.947,0.142,0.933,0.135,0.941,0.135,0.933,0.141,0.329,0.91,0.323,0.913,0.323,0.908,0.351,0.914,0.345,0.91,0.352,0.908,0.337,0.917,0.337,0.91,0.329,0.916 +,0.758,0.704,0.763,0.698,0.763,0.704,0.948,0.804,0.953,0.801,0.954,0.805,0.939,0.804,0.947,0.798,0.93,0.804,0.939,0.798,0.924,0.804,0.93,0.798,0.979,0.972,0.979,0.975,0.981,0.971,0.982,0.974,0.298,0.993,0.297,0.989,0.299,0.99,0.296,0.992,0.294,0.989,0.294,0.992,0.292,0.989,0.291,0.993,0.29,0.99 +,0.927,0.555,0.926,0.552,0.928,0.553,0.75,0.376,0.748,0.373,0.751,0.374,0.925,0.554,0.752,0.378,0.754,0.38,0.753,0.38,0.753,0.382,0.753,0.386,0.752,0.385,0.69,0.553,0.69,0.556,0.689,0.555,0.75,0.386,0.687,0.548,0.69,0.549,0.689,0.55,0.684,0.548,0.684,0.546,0.691,0.551,0.691,0.554,0.758,0.379 +,0.754,0.383,0.758,0.383,0.749,0.369,0.757,0.374,0.753,0.377,0.753,0.391,0.751,0.388,0.748,0.375,0.759,0.991,0.757,0.993,0.757,0.991,0.981,0.002,0.766,0.991,0.764,0.993,0.764,0.991,0.762,0.991,0.759,0.993,0.983,0.002,0.981,0.004,0.747,0.991,0.745,0.993,0.745,0.991,0.747,0.993,0.762,0.993,0.686,0.548 +,0.686,0.546,0.69,0.551,0.688,0.547,0.934,0.791,0.937,0.791,0.935,0.793,0.935,0.784,0.939,0.785,0.935,0.786,0.932,0.783,0.933,0.779,0.935,0.789,0.939,0.788,0.995,0.648,0.997,0.651,0.995,0.651,0.542,0.864,0.995,0.64,0.997,0.643,0.995,0.643,0.997,0.646,0.997,0.648,0.542,0.861,0.544,0.864,0.995,0.136 +,0.997,0.139,0.995,0.139,0.997,0.136,0.995,0.646,0.935,0.781,0.934,0.783,0.935,0.788,0.937,0.783,0.844,0.989,0.839,0.988,0.844,0.987,0.105,0.995,0.104,0.995,0.095,0.995,0.094,0.99,0.095,0.99,0.844,0.993,0.839,0.994,0.839,0.992,0.844,0.991,0.839,0.989,0.105,0.99,0.107,0.995,0.096,0.99,0.097,0.995 +,0.839,0.991,0.056,0.98,0.061,0.984,0.057,0.984,0.977,0.935,0.981,0.94,0.976,0.939,0.061,0.98,0.066,0.984,0.978,0.065,0.979,0.069,0.072,0.981,0.067,0.98,0.983,0.064,0.984,0.068,0.052,0.985,0.051,0.981,0.964,0.096,0.964,0.092,0.991,0.557,0.99,0.556,0.991,0.556,0.991,0.558,0.992,0.559,0.992,0.558 +,0.991,0.56,0.991,0.559,0.99,0.561,0.991,0.56,0.989,0.562,0.99,0.561,0.988,0.562,0.989,0.561,0.988,0.561,0.989,0.895,0.978,0.894,0.989,0.894,0.989,0.897,0.978,0.895,0.913,0.982,0.67,0.976,0.659,0.975,0.67,0.975,0.659,0.976,0.913,0.983,0.902,0.982,0.989,0.893,0.978,0.892,0.989,0.892,0.978,0.893 +,0.637,0.992,0.635,0.992,0.636,0.991,0.637,0.993,0.636,0.992,0.637,0.994,0.636,0.993,0.637,0.995,0.636,0.994,0.635,0.995,0.636,0.994,0.636,0.996,0.635,0.992,0.634,0.992,0.635,0.991,0.04,0.996,0.036,0.996,0.992,0.095,0.992,0.095,0.996,0.095,0.567,0.995,0.571,0.996,0.567,0.996,0.567,0.994,0.571,0.995 +,0.567,0.994,0.571,0.994,0.567,0.993,0.571,0.994,0.04,0.996,0.036,0.996,0.964,0.757,0.964,0.759,0.914,0.147,0.915,0.152,0.914,0.152,0.912,0.157,0.913,0.158,0.909,0.162,0.908,0.16,0.903,0.136,0.904,0.135,0.036,0.99,0.036,0.988,0.042,0.99,0.882,0.82,0.876,0.818,0.882,0.818,0.876,0.82,0.871,0.818 +,0.871,0.82,0.865,0.818,0.865,0.82,0.859,0.818,0.937,0.822,0.931,0.82,0.937,0.82,0.931,0.822,0.912,0.142,0.915,0.146,0.908,0.138,0.913,0.141,0.909,0.137,0.963,0.083,0.959,0.083,0.964,0.087,0.924,0.814,0.93,0.81,0.93,0.816,0.924,0.809,0.939,0.81,0.939,0.816,0.947,0.816,0.948,0.81,0.953,0.815 +,0.953,0.811,0.757,0.709,0.761,0.714,0.757,0.714,0.762,0.709,0.007,0.971,0.009,0.973,0.007,0.973,0.012,0.968,0.013,0.97,0.011,0.969,0.011,0.965,0.011,0.962,0.013,0.963,0.009,0.971,0.011,0.972,0.942,0.682,0.939,0.684,0.939,0.682,0.671,0.987,0.668,0.989,0.668,0.987,0.942,0.689,0.939,0.691,0.939,0.689 +,0.942,0.684,0.939,0.686,0.671,0.992,0.671,0.989,0.969,0.9,0.971,0.897,0.971,0.9,0.966,0.9,0.969,0.897,0.942,0.686,0.012,0.966,0.014,0.966,0.004,0.972,0.006,0.97,0.01,0.97,0.014,0.968,0.004,0.969,0.002,0.968,0.004,0.968,0.003,0.963,0.006,0.964,0.004,0.965,0.009,0.963,0.01,0.964,0.002,0.966 +,0.004,0.966,0.994,0.387,0.992,0.385,0.994,0.385,0.671,0.985,0.994,0.38,0.992,0.378,0.994,0.378,0.992,0.383,0.994,0.383,0.668,0.985,0.671,0.982,0.962,0.9,0.964,0.897,0.964,0.9,0.992,0.38,0.007,0.963,0.009,0.961,0.004,0.962,0.004,0.969,0.004,0.966,0.009,0.963,0.969,0.087,0.968,0.083,0.969,0.096 +,0.969,0.092,0.758,0.698,0.323,0.903,0.919,0.142,0.88,0.824,0.051,0.969,0.708,0.867,0.081,0.961,0.728,0.897,0.862,0.969,0.604,0.961,0.06,0.961,0.051,0.962,0.706,0.888,0.864,0.824,0.859,0.825,0.86,0.823,0.024,0.969,0.02,0.969,0.024,0.969,0.063,0.97,0.433,0.921,0.659,0.892,0.658,0.888,0.662,0.895 +,0.659,0.861,0.662,0.858,0.665,0.856,0.669,0.855,0.669,0.898,0.665,0.898,0.86,0.831,0.859,0.829,0.859,0.829,0.859,0.825,0.055,0.969,0.051,0.969,0.06,0.969,0.055,0.969,0.604,0.967,0.604,0.965,0.604,0.965,0.604,0.961,0.609,0.966,0.88,0.826,0.941,0.158,0.743,0.704,0.972,0.974,0.793,0.976,0.784,0.978 +,0.92,0.555,0.923,0.554,0.684,0.558,0.769,0.993,0.974,0.004,0.974,0.002,0.749,0.993,0.679,0.551,0.93,0.794,0.927,0.781,0.996,0.821,0.996,0.83,0.544,0.873,0.542,0.873,0.997,0.133,0.996,0.43,0.996,0.427,0.101,0.995,0.969,0.056,0.967,0.939,0.973,0.065,0.983,0.055,0.964,0.055,0.959,0.096,0.986,0.558 +,0.979,0.987,0.659,0.977,0.902,0.979,0.634,0.995,0.635,0.995,0.04,0.995,0.996,0.097,0.564,0.996,0.963,0.756,0.963,0.756,0.962,0.758,0.961,0.758,0.961,0.757,0.962,0.756,0.893,0.162,0.019,0.988,0.583,0.99,0.925,0.822,0.888,0.141,0.958,0.933,0.666,0.959,0.941,0.285,0.942,0.431,0.939,0.431,0.995,0.184 +,0.995,0.189,0.67,0.969,0.992,0.197,0.939,0.422,0.942,0.422,0.666,0.969,0.661,0.967,0.664,0.969,0.663,0.968,0.661,0.966,0.661,0.964,0.661,0.963,0.663,0.962,0.664,0.961,0.667,0.962,0.669,0.964,0.669,0.966,0.668,0.967,0.279,0.96,0.751,0.888,0.288,0.968,0.751,0.888,0.748,0.895,0.748,0.895,0.896,0.824 +,0.896,0.824,0.248,0.96,0.252,0.96,0.252,0.96,0.565,0.968,0.565,0.959,0.397,0.921,0.748,0.858,0.748,0.858,0.703,0.888,0.702,0.892,0.7,0.895,0.697,0.898,0.693,0.898,0.697,0.856,0.7,0.858,0.702,0.861,0.247,0.966,0.901,0.829,0.9,0.831,0.901,0.825,0.901,0.829,0.283,0.96,0.288,0.962,0.646,0.965 +,0.645,0.967,0.646,0.961,0.641,0.966,0.345,0.917,0.924,0.798,0.298,0.993,0.293,0.992,0.927,0.555,0.756,0.388,0.753,0.371,0.766,0.993,0.983,0.002,0.983,0.004,0.997,0.64,0.542,0.861,0.544,0.861,0.844,0.994,0.107,0.99,0.107,0.995,0.096,0.99,0.982,0.936,0.071,0.985,0.052,0.985,0.978,0.897,0.902,0.983 +,0.996,0.095,0.571,0.993,0.965,0.757,0.965,0.758,0.964,0.758,0.963,0.759,0.963,0.759,0.042,0.988,0.859,0.82,0.942,0.691,0.671,0.992,0.668,0.992,0.971,0.897,0.966,0.897,0.003,0.97,0.992,0.387,0.668,0.982,0.671,0.982,0.962,0.9,0.962,0.897,0.007,0.961,0.01,0.964,0.012,0.968,0.011,0.965,0.012,0.966 +,0.011,0.969,0.007,0.971,0.01,0.97,0.009,0.971,0.006,0.97,0.004,0.968,0.004,0.965,0.006,0.964,0.007,0.963] +,"indices":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,25,29,30,31,32,33,29,34,35,7,36,37,34,36,38,39,40,20,38,2,41 +,0,42,43,44,45,46,47,5,48,45,11,49,9,50,51,49,52,53,54,55,23,53,56,14,13,57,58,56,59,60,61,22,62,59,63,17,16,64,65,63,64,66,67,68,6,66,69,70,71,72 +,73,74,75,26,76,77,78,79,80,81,82,83,84,85,86,82,87,85,88,89,90,91,92,93,94,95,92,96,97,98,94,99,100,3,101,102,103,104,105,101,106,104,107,108,109,110,111,112,113,114 +,115,71,70,116,114,78,117,32,81,118,119,83,97,120,121,99,122,98,123,124,125,126,127,128,127,129,130,130,131,123,132,133,134,135,136,137,135,138,139,140,134,138,141,142,143,144,145,146,147,146 +,148,149,148,150,151,150,152,153,154,155,156,157,154,158,159,160,161,162,158,163,164,161,163,165,166,167,168,169,170,171,172,173,174,167,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190 +,191,192,182,193,194,195,196,175,178,197,195,198,199,171,175,200,201,198,200,202,171,203,204,178,205,206,207,180,185,179,175,177,201,170,176,172,204,208,209,210,211,212,213,214,215,216,217,218,219,210 +,220,221,213,222,223,224,225,226,223,227,217,219,228,229,190,230,183,231,193,189,194,232,228,188,233,234,235,236,237,238,239,240,241,235,242,243,244,245,246,247,248,249,250,251,252,245,253,254,255,256 +,248,257,258,259,260,261,258,253,252,254,262,239,263,264,233,265,242,238,243,266,263,237,267,268,269,270,271,272,273,274,275,276,277,278,279,280,268,272,281,282,283,275,284,280,276,278,285,286,287,288 +,289,290,286,291,287,292,293,294,295,296,291,297,294,298,299,285,300,301,302,303,304,288,305,306,307,308,308,309,310,309,311,310,312,313,311,314,315,313,315,316,317,317,318,319,319,320,321,322,323,324 +,325,326,323,327,328,329,330,331,332,333,334,331,335,336,328,337,338,339,340,324,338,341,342,343,344,345,342,346,347,345,348,349,347,349,350,351,350,352,351,353,354,355,355,341,343,356,357,358,359,360 +,361,362,363,360,364,365,366,367,368,365,369,370,368,371,372,370,373,358,374,375,376,377,378,379,380,381,378,380,382,381,383,384,383,385,386,387,388,389,390,391,392,393,389,394,395,396,397,398,394,399 +,400,397,401,402,399,403,404,405,406,407,403,408,409,379,410,411,409,411,412,386,413,414,415,415,301,303,416,417,418,418,149,151,419,420,417,417,147,149,421,420,422,423,147,420,424,423,421,423,425,144 +,426,427,428,429,141,427,430,431,432,433,434,435,436,437,438,432,439,440,441,442,443,444,445,446,447,448,449,443,450,451,452,453,445,454,455,456,457,458,455,451,459,447,460,461,436,462,430,463,440,433 +,435,464,460,434,465,466,467,468,469,470,471,437,472,473,474,466,475,476,477,478,444,446,479,480,481,482,476,483,484,485,478,486,487,488,458,487,489,482,481,490,491,472,492,465,462,463,493,469,474,491 +,494,468,495,496,497,427,498,499,428,499,500,501,303,502,503,415,501,303,504,502,498,143,505,506,132,140,506,135,507,507,137,508,509,510,132,511,123,512,513,130,511,128,513,514,512,125,515,207,516,205 +,1,517,518,519,520,521,522,523,524,10,525,526,12,527,528,15,529,530,19,531,532,533,534,535,536,537,538,538,539,540,541,542,543,544,545,542,546,547,548,549,550,547,550,551,552,552,532,531,518,553 +,554,554,555,556,557,558,559,560,521,558,526,561,562,562,563,564,565,566,567,567,568,533,569,570,527,571,572,570,573,574,575,576,534,574,577,578,529,579,580,578,580,581,582,582,524,523,69,583,584,72 +,585,586,587,75,76,588,77,79,589,590,591,592,593,594,595,596,589,597,594,598,599,600,601,602,603,604,605,601,606,607,602,604,608,520,609,610,611,612,613,614,615,616,612,617,618,619,620,621,622,623 +,624,625,583,626,627,621,591,545,628,629,630,593,606,120,605,122,631,607,632,633,634,635,636,637,635,638,639,640,634,638,641,642,643,644,645,646,645,647,648,648,649,641,650,651,652,653,654,655,656,657 +,653,658,659,656,660,661,658,153,662,663,663,664,665,666,667,668,669,670,667,671,672,670,672,673,674,675,676,677,678,679,680,681,173,676,682,683,684,685,686,687,688,689,690,691,184,186,692,693,694,695 +,191,696,688,697,698,699,700,683,701,686,700,702,680,679,703,683,704,680,703,704,203,679,204,686,705,706,687,706,691,684,700,685,678,704,682,707,204,679,708,709,710,711,212,214,712,713,714,715,716,708 +,717,718,711,719,720,721,226,722,719,714,723,715,724,696,725,690,230,231,694,697,726,724,727,692,728,729,730,731,732,733,734,240,735,736,737,729,738,739,740,741,247,249,742,743,744,738,745,746,747,748 +,741,749,750,751,261,752,749,744,745,753,734,754,755,728,264,265,733,737,756,755,757,731,758,759,760,270,761,762,763,764,765,766,767,768,769,770,758,771,772,761,763,773,774,769,768,775,776,777,778,779 +,780,781,782,783,777,293,784,785,786,783,787,785,788,789,776,790,791,792,301,793,779,304,305,306,794,795,796,797,794,798,797,799,800,801,798,802,803,800,804,805,802,806,807,804,806,320,808,809,810,811 +,812,813,809,814,327,329,815,816,817,334,818,815,819,820,814,821,822,823,811,824,821,825,826,827,828,829,825,830,831,828,832,833,830,832,834,835,352,834,836,353,837,838,839,826,837,357,840,841,842,359 +,361,843,844,842,845,846,847,848,849,845,850,851,848,852,853,850,841,854,855,856,857,375,858,859,860,861,859,862,861,863,864,864,384,385,865,387,866,390,867,391,868,869,867,870,871,872,873,874,871,875 +,876,874,877,878,876,879,880,881,882,406,880,883,884,858,885,886,883,885,866,887,888,414,889,890,301,414,891,892,893,894,658,892,893,895,896,892,656,895,895,897,896,656,898,895,898,899,897,898,655,900 +,901,902,903,650,904,901,905,906,907,908,909,910,911,912,913,914,915,906,916,917,918,919,920,921,922,923,924,925,926,917,927,920,928,929,930,931,932,933,929,934,924,926,935,913,936,905,937,938,939,909 +,915,935,940,908,941,942,943,944,945,946,947,912,948,943,949,950,951,952,953,921,954,919,955,956,957,953,958,959,960,961,954,962,963,964,963,932,964,959,965,955,966,967,947,937,941,938,949,946,950,968 +,966,945,969,970,971,498,901,499,499,903,500,972,793,890,973,890,888,974,793,975,498,976,650,506,641,509,645,506,507,646,507,508,509,643,977,511,632,640,513,640,635,513,637,514,512,978,632,706,516,184 +,0,979,1,3,980,4,6,981,7,9,982,10,12,528,13,15,530,16,18,983,19,21,984,22,24,27,25,27,985,28,29,33,986,32,987,33,34,37,988,36,39,37,36,40,38,40,18,20,2,42 +,989,42,990,991,45,992,993,5,4,994,11,50,49,50,995,51,52,55,53,55,21,23,56,58,14,57,996,58,59,62,60,22,984,62,63,65,17,64,67,65,64,68,66,68,981,6,69,584,70,997 +,998,999,74,1000,1001,1001,1002,74,1003,72,74,73,1004,998,1005,999,998,998,74,73,1002,1003,74,1004,1005,998,75,24,26,77,116,78,80,117,81,83,119,84,86,80,82,85,84,88,1006,1007,91,1008,1009,94 +,92,91,96,98,95,94,1010,1011,3,102,118,103,1012,1013,101,104,103,107,1014,1015,110,112,1016,1017,1018,110,71,116,112,114,117,987,32,118,102,119,97,96,120,99,1019,122,123,131,124,126,1020,127,127,1020 +,129,130,129,131,132,510,133,135,139,136,135,140,138,140,132,134,141,1021,142,144,425,145,147,144,146,149,147,148,151,149,150,153,156,154,156,1022,157,158,162,1023,161,164,162,163,166,164,163,1024,165,167 +,174,1025,170,198,171,173,1026,174,175,201,176,178,195,179,181,1027,182,184,207,185,187,232,188,190,229,191,182,1027,193,195,197,196,178,206,197,198,202,199,175,196,200,198,201,200,171,199,203,178,207,205 +,207,178,180,179,195,175,201,198,170,172,171,204,209,218,210,212,220,213,215,1028,216,218,227,219,220,1029,1030,222,225,223,225,1031,226,227,215,217,228,1032,229,230,181,183,193,187,189,232,1032,228,233,1033 +,234,236,266,237,239,1034,240,235,234,242,244,1035,245,247,255,248,250,1036,251,245,1035,253,255,1037,1038,257,260,258,260,1039,261,253,250,252,262,1034,239,264,1033,233,242,236,238,266,262,263,267,279,268,270 +,762,271,273,764,274,276,1040,277,279,1041,280,272,271,1042,283,273,275,280,1041,276,285,1043,286,288,1044,289,286,295,291,292,1045,293,295,1046,296,297,292,294,1047,1043,285,301,1048,302,304,1044,288,306,795,307 +,308,307,309,309,312,311,312,314,313,314,1049,315,315,1049,316,317,316,318,319,318,320,322,325,323,325,1050,326,327,335,328,330,333,331,333,1051,334,335,1052,336,337,340,338,340,322,324,341,344,342,344,346 +,345,346,348,347,348,1053,349,349,1053,350,350,1054,352,353,838,354,355,354,341,356,1055,357,359,362,360,362,1056,363,364,367,365,367,369,368,369,371,370,371,1057,372,373,356,358,1058,377,1059,375,1060,1061,1061 +,1062,376,376,1063,1059,1059,377,376,375,1061,376,378,408,379,381,1064,378,382,1064,381,384,382,383,386,412,387,389,393,390,392,1065,393,394,398,395,397,400,398,399,402,400,401,1066,402,403,407,404,406,1067,407 +,408,410,409,410,1068,411,411,1068,412,413,889,414,415,414,301,416,419,417,418,417,149,419,422,420,417,420,147,421,423,420,423,144,147,424,1069,423,423,1069,425,426,429,427,429,1021,141,430,1070,431,433,464 +,434,436,461,437,432,431,439,441,1071,442,444,452,445,447,459,448,443,442,450,452,1072,1073,1074,457,455,457,1075,458,451,450,459,460,1076,461,462,1070,430,440,439,433,464,1076,460,465,473,466,468,494,469,471 +,438,437,473,493,474,475,483,476,478,485,444,479,1077,480,482,490,476,1078,1079,485,486,489,487,458,1075,487,482,479,481,491,471,472,465,467,462,493,470,469,491,492,494,497,1080,1081,1082,1083,1081,1081,1084,1085 +,1085,1086,1081,1087,1088,495,495,1089,496,496,1090,497,1091,1092,497,1080,1082,1081,1081,1086,1087,1087,495,497,1090,1091,497,497,1081,1087,427,141,498,428,427,499,501,415,303,503,413,415,303,302,504,498,141,143,506,509 +,132,506,140,135,507,135,137,509,977,510,511,130,123,513,127,130,128,127,513,512,123,125,207,184,516,1,979,517,519,1093,520,1094,548,523,10,982,525,12,569,527,15,577,529,19,983,531,533,568,534,536 +,587,537,538,537,539,1095,544,542,544,628,545,1096,549,547,549,1097,550,550,1098,551,552,551,532,518,517,1099,554,1100,555,1101,1102,558,1103,519,521,526,525,561,562,561,563,1104,1105,566,567,566,568,569,571,570 +,571,1106,572,573,576,574,576,535,534,577,579,578,579,1107,580,580,1108,581,582,581,524,69,624,583,586,1109,73,1110,1111,1109,1112,1113,1109,73,72,586,585,1114,586,1115,1116,586,1109,1111,1112,1113,73,1109,1114,1115 +,586,587,536,75,588,626,77,589,596,590,592,629,593,595,1117,596,597,592,594,599,1118,1119,602,1120,1121,605,599,601,607,631,602,1122,614,520,610,630,611,613,1123,614,616,610,612,618,1124,1125,621,627,1126,624 +,618,1127,626,588,627,591,590,545,629,611,630,606,121,120,122,1019,631,632,978,633,635,639,636,635,640,638,640,632,634,641,649,642,644,1128,645,645,1128,647,648,647,649,650,976,651,653,657,654,656,659,657 +,658,661,659,660,1129,661,153,155,662,663,662,664,1130,669,667,669,671,670,671,1131,672,672,1131,673,1132,681,676,678,707,679,681,1026,173,682,704,683,685,700,686,688,698,689,691,706,184,692,727,693,695,192 +,191,688,726,697,699,701,700,701,1133,686,702,1134,680,703,699,683,680,1134,703,203,702,679,686,1133,705,687,686,706,684,683,700,678,680,704,707,208,204,708,716,709,711,718,212,712,1135,713,715,723,716,1136 +,1137,718,719,722,720,226,1031,722,714,713,723,724,695,696,690,689,230,694,693,697,724,725,727,728,736,729,731,757,732,734,241,240,736,756,737,738,746,739,741,748,247,742,1138,743,738,753,745,1139,1140,748 +,749,752,750,261,1039,752,744,743,745,734,735,754,728,730,264,733,732,737,755,754,757,758,770,759,270,771,761,763,274,764,766,1141,767,769,775,770,771,1142,1143,763,765,1144,769,766,768,776,782,777,779,1145 +,780,782,787,783,293,1045,784,786,1146,783,785,784,788,776,778,1147,792,1048,301,779,781,304,306,796,794,796,799,797,798,801,797,800,803,801,802,805,803,804,807,805,806,808,807,806,321,320,809,813,810,812 +,1148,813,814,820,327,815,818,816,334,1051,818,819,1149,820,821,824,822,811,810,824,825,829,826,828,831,829,830,833,831,832,835,833,832,836,834,352,1054,834,353,839,837,839,827,826,357,1055,840,842,844,359 +,843,1150,844,845,849,846,848,851,849,850,853,851,852,1151,853,841,840,854,375,377,856,856,1152,1153,1153,1154,857,857,1155,1156,1156,375,857,856,1153,857,858,884,859,861,860,859,861,862,863,864,863,384,865,388 +,387,390,868,867,868,1157,869,870,873,871,873,875,874,875,877,876,877,1158,878,879,882,880,882,1067,406,883,886,884,885,887,886,885,865,866,888,890,414,890,793,301,891,894,892,894,660,658,893,892,895,892 +,658,656,895,898,897,656,653,898,898,900,899,898,653,655,901,904,902,650,652,904,905,914,906,908,940,909,911,948,912,914,939,915,916,925,917,919,928,920,922,1159,923,925,934,926,1160,1161,920,929,933,1162 +,932,1163,933,934,922,924,935,911,913,905,907,937,939,910,909,935,936,940,941,1164,942,944,968,945,947,967,912,943,942,949,951,1165,952,921,960,954,955,965,956,953,952,958,960,1166,1167,1168,1169,963,963,1163 +,932,959,958,965,966,1170,967,937,1164,941,949,944,946,968,1170,966,971,1171,1172,1173,1174,1172,1172,1175,1176,1177,1178,1176,1176,1179,969,969,1180,970,970,1181,1182,1182,1183,971,1171,1173,1172,1175,1177,1176,1176,969,971,970 +,1182,971,971,1172,1176,498,650,901,499,901,903,972,975,793,973,972,890,974,792,793,498,505,976,506,648,641,645,648,506,646,645,507,509,641,643,511,512,632,513,511,640,513,635,637,512,515,978,706,705,516 +] +,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":1184,"indexStart":0,"indexCount":3150}] +,"instances":[]} +], +"morphTargetManagers":[], +"cameras":[{"name":"Camera","id":"Camera","position":[-1.2203,-4855.2349,-465.7115],"rotation":[0,0,0],"fov":0.8576,"minZ":0.1,"maxZ":10000,"speed":1,"inertia":0.9,"checkCollisions":false,"applyGravity":false,"ellipsoid":[0.2,0.9,0.2],"cameraRigMode":0,"interaxial_distance":0.0637,"type":"UniversalCamera"}],"activeCamera":"Camera", +"lights":[], +"shadowGenerators":[] +} \ No newline at end of file diff --git a/games/x-trench-run/media/scenes/obstacles.png b/games/x-trench-run/media/scenes/obstacles.png new file mode 100644 index 00000000..24fddb5f Binary files /dev/null and b/games/x-trench-run/media/scenes/obstacles.png differ diff --git a/games/x-trench-run/media/scenes/power_ups.png b/games/x-trench-run/media/scenes/power_ups.png new file mode 100644 index 00000000..9a4a35e0 Binary files /dev/null and b/games/x-trench-run/media/scenes/power_ups.png differ diff --git a/games/x-trench-run/media/scenes/shield_bubble.png b/games/x-trench-run/media/scenes/shield_bubble.png new file mode 100644 index 00000000..e3c5702c Binary files /dev/null and b/games/x-trench-run/media/scenes/shield_bubble.png differ diff --git a/games/x-trench-run/media/scenes/spacecraft.png b/games/x-trench-run/media/scenes/spacecraft.png new file mode 100644 index 00000000..533872e1 Binary files /dev/null and b/games/x-trench-run/media/scenes/spacecraft.png differ diff --git a/games/x-trench-run/media/scenes/stars_skybox.png b/games/x-trench-run/media/scenes/stars_skybox.png new file mode 100644 index 00000000..8775ca61 Binary files /dev/null and b/games/x-trench-run/media/scenes/stars_skybox.png differ diff --git a/games/x-trench-run/media/scenes/trench_main.png b/games/x-trench-run/media/scenes/trench_main.png new file mode 100644 index 00000000..9d68b7b8 Binary files /dev/null and b/games/x-trench-run/media/scenes/trench_main.png differ diff --git a/games/x-trench-run/media/scenes/trench_side.png b/games/x-trench-run/media/scenes/trench_side.png new file mode 100644 index 00000000..d64855d4 Binary files /dev/null and b/games/x-trench-run/media/scenes/trench_side.png differ diff --git a/games/x-trench-run/media/scenes/wall_breaker.png b/games/x-trench-run/media/scenes/wall_breaker.png new file mode 100644 index 00000000..e13ca870 Binary files /dev/null and b/games/x-trench-run/media/scenes/wall_breaker.png differ diff --git a/imgs/icon-256-256.png b/imgs/icon-256-256.png new file mode 100644 index 00000000..e786579f Binary files /dev/null and b/imgs/icon-256-256.png differ diff --git a/imgs/icon.png b/imgs/icon.png deleted file mode 100644 index 1f92630c..00000000 Binary files a/imgs/icon.png and /dev/null differ diff --git a/imgs/secret-icon.png b/imgs/secret-icon.png deleted file mode 100644 index 00c09f9e..00000000 Binary files a/imgs/secret-icon.png and /dev/null differ diff --git a/imgs/violet-256-256.png b/imgs/violet-256-256.png new file mode 100644 index 00000000..8c9c27c4 Binary files /dev/null and b/imgs/violet-256-256.png differ diff --git a/index.html b/index.html index 8527f81e..947df5aa 100644 --- a/index.html +++ b/index.html @@ -1,20 +1,23 @@ + MonkeyGG2 - + - - + + - + +